Browse Source

订单例表页加载,地址加载,宠物宝贝加载

master
chenlong 1 year ago
parent
commit
29526d3934
  1. 2
      api/order.js
  2. 1
      pages/Addr/components/index.scss
  3. 13
      pages/Addr/index.vue
  4. 4
      pages/Card/index.vue
  5. 4
      pages/Index/components/HomePage/index.vue
  6. 4
      pages/Index/components/OrderPage/components/index.scss
  7. 91
      pages/Index/components/OrderPage/index.vue
  8. 10
      pages/Index/index.vue
  9. 20
      pages/Pet/index.vue

2
api/order.js

@ -24,7 +24,7 @@ export function cardOrder(card_id)
*/
export function getOrderList(data = {
"page": 1,
"limit": 10,
"limit": 110,
"is_worker": 0,
"status": 0,
"start_time": "",

1
pages/Addr/components/index.scss

@ -138,6 +138,7 @@
position: fixed;
bottom:0;
left:0;
z-index: 9999;
width: 100%;
background: #FFFFFF;
border: 2rpx solid #262626;

13
pages/Addr/index.vue

@ -7,7 +7,7 @@
<view class="addr-list-container row">
<!-- <view @touchstart="touchstart" @touchend="touchend" @touchmove="touchmove" v-for="item in addrList" class="addr-list-item row" :style="{backgroundImage:'url('+staticImage.addrBg+')'}">-->
<uni-swipe-action v-for="item in addrList" style="width:100%;">
<uni-swipe-action v-for="(item, index) in addrList" wx:key="index" style="width:100%;">
<uni-swipe-action-item :right-options="options1" style="width:100%;">
<view class="addr-list-item-container" @click="(type === 'select')?navBack(item):''">
<view class="addr-list-item row" :style="{backgroundImage:'url('+staticImage.addrBg+')'}">
@ -48,7 +48,11 @@
</uni-swipe-action-item>
</uni-swipe-action>
<u-loadmore :status="status" fontSize="28"
color="#ACB4B6"
line
line-color="#ACB4B6"
marginBottom="30" marginTop="30" @loadmore="getAddressList()"/>
</view>
</view>
@ -131,7 +135,7 @@
type:'',
pages:{
page:1,
limit:10,
limit:6,
},
status:'loadmore',
}
@ -235,7 +239,8 @@
if(this.status === 'nomore'){
return false;
}
getAdressList(this.pages).then(res => {
this.status = 'loading';
getAddressList(this.pages).then(res => {
this.addrList.push.apply(this.addrList,res.data)
this.pages.page++;
if(res.data.length === 0){

4
pages/Card/index.vue

@ -99,6 +99,8 @@
},
onLoad() {
},
methods: {
navTo(url){
@ -107,7 +109,7 @@
})
},
getCardList(){
if(this.status === 'nomre'){
if(this.status === 'nomore'){
return false;
}
this.status = 'loading';

4
pages/Index/components/HomePage/index.vue

@ -4,7 +4,7 @@
}">
<view class="index-banner">
<view class="index-banner-container">
<image class="img" v-for="item in indexBanner" mode="widthFix" :src="item.image" alt=""/>
<image class="img" v-for="(item, index) in indexBanner" mode="widthFix" wx:key="index" :src="item.image" alt=""/>
</view>
</view>
<view class="index-user-detail">
@ -38,7 +38,7 @@
</view>
</view>
<view class="index-button-group row">
<view class="index-button-detail col-6" v-for="(item) in staticImage.indexButtonGroup">
<view class="index-button-detail col-6" v-for="(item, index) in staticImage.indexButtonGroup" wx:key="index">
<view class="index-button-detail-container row" :style="{
backgroundImage:'url('+item.backgroundImage+')'
}" @click="navTo(item.url)">

4
pages/Index/components/OrderPage/components/index.scss

@ -96,9 +96,9 @@
}
.order-list-container{
width:100%;
max-height: 1000rpx;
//max-height: 1000rpx;
height: 100%;
overflow: auto;
//overflow: auto;
box-sizing: border-box;
.order-list-item{

91
pages/Index/components/OrderPage/index.vue

@ -3,31 +3,22 @@
backgroundImage:'url('+staticImage.wallpaperBgImage+')'
}">
<view class="order-screen-top" :style="{
// top:(uni.$u.)
}">
<view class="order-capsule-container row">
<view class="order-capsule col-4"
v-for="(item,index) in screenMenu"
:class="{active:(index === screenCheck)}"
@click="selectScreen(index)"
:class="{active:(item.value === screenCheck)}"
@click="selectScreen(item)"
>
{{ item.name }}
</view>
</view>
<view class="order-screen-container row">
<view class="order-screen active">
全部
<view class="order-screen-active">
<image mode="widthFix" class="img" :src="staticImage.screenActiveImg" />
</view>
</view>
<view class="order-screen">
明天
<view class="order-screen-active">
<image mode="widthFix" class="img" :src="staticImage.screenActiveImg" />
</view>
</view>
<view class="order-screen">
后天
<view class="order-screen" v-for="(date, index) in dateSelectData" @click="dayActiveToggle(date)" :class="{active:dayActive === date.value}">
{{ date.title }}
<view class="order-screen-active">
<image mode="widthFix" class="img" :src="staticImage.screenActiveImg" />
</view>
@ -43,8 +34,11 @@
</view>
</view>
</view>
</view>
</view>
<view class="order-list-container">
<view class="order-list-item" v-for="item in orderCardList">
<view class="order-list-item" v-for="(item,index) in orderList">
<view class="order-card-container row">
<view class="order-card-container-background col-12"></view>
<view class="order-card-container-background-main row">
@ -55,7 +49,7 @@
<view class="order-card-right">
<view class="order-card-title">{{item.addr}}</view>
<view class="order-card-tag-container row">
<view class="order-card-tag" v-for="server in item.services">{{ server }}</view>
<view class="order-card-tag" v-for="(server, i) in item.services" wx:key="i">{{ server }}</view>
</view>
<view class="order-card-day"><text class="card-label">上门</text>{{item.do_date}} {{ item.do_time }}
</view>
@ -83,7 +77,11 @@
</view>
</view>
</view>
</view>
<u-loadmore :status="status" fontSize="28"
color="#ACB4B6"
line
line-color="#ACB4B6"
marginBottom="30" marginTop="30" @loadmore="getOrderList()"/>
</view>
<!-- <RightNav></RightNav> -->
@ -111,18 +109,24 @@
return {
title: 'Hello',
loading: true,
screenCheck:0,
status: 'loadmore',
screenCheck:'',
screenMenu:[
{
name:'全部',
value:'',
},{
name:'待服务',
value:'1',
value:'0',
},{
name:'已完成',
value:'2',
},
],
dateSelectData:[
{title:"全部", value: 0},
{title:"今天", value: 1},
{title:"明天", value: 2},
],
staticImage: {
screenActiveImg: imghost + '/static/image/order-screen-active.png',
@ -143,40 +147,58 @@
pagePadding: 100,
petImage: imghost + '/static/image/pet_avatar1.jpeg',
orderList:[],
dayActive: 1,
dayActive: 0,
statusActive: 1,
page:1
}
},
onLoad() {
},
methods: {
selectScreen(index){
this.screenCheck = index;
selectScreen(item){
this.screenCheck = item.value;
this.page = 1;
this.status = "loadmore";
this.orderList = [];
this.getOrderList();
},
navTo(url){
uni.navigateTo({
url:url
})
},
getOrderList(page = 1, filter = {
getOrderList(filter = {
status: "",
start_time: "",
end_time: ""
}){
filter.is_worker = this.$store.state.userInfo.store_id ? 1 : 0;
filter.page = page;
filter.limit = 10;
filter.page = this.page++;
filter.limit = 1;
if (this.screenCheck !== '') {
filter.status = this.screenCheck;
}
if (this.status === 'nomore') {
return;
}
this.status = 'loading';
getOrderList(filter).then(data => {
this.orderList = data.data;
})
},
dayActiveToggle(daySign){
this.dayActive = daySign;
this.orderList.push.apply(this.orderList,data.data);
this.orderList.push.apply(this.orderList,data.data);
if (data.data.length < filter.limit) {
this.status = 'nomore';
}else{
this.status = 'loadmore';
}
});
},
statusActiveToggle(statusSign){
this.statusActive = statusSign;
dayActiveToggle(date){
this.dayActive = date.value;
this.page = 1;
this.orderList = [];
this.status = "loadmore";
},
},
@ -187,6 +209,7 @@
uni.$emit('isTop', false);
}
},
mounted() {
this.getOrderList();
},

10
pages/Index/index.vue

@ -4,7 +4,7 @@
<HomePage v-if="(footCheck === 'home')"></HomePage>
</view>
<view :class="{show:(footCheck === 'order')}">
<OrderPage v-if="(footCheck === 'order')"></OrderPage>
<OrderPage ref="orderList" v-if="(footCheck === 'order')"></OrderPage>
</view>
<view :class="{show:(footCheck === 'chat')}">
<ChatPage v-if="(footCheck === 'chat')"></ChatPage>
@ -27,6 +27,7 @@
import ChatPage from '@/pages/Index/components/ChatPage/Index.vue';
import UserPage from '@/pages/Index/components/UserPage/Index.vue';
import {imghost} from "@/config/host";
import log from "@/utils/log";
export default {
components: {
FooterNav,
@ -88,6 +89,13 @@
},
// store.
},
onReachBottom() {
log(this.footCheck);
if(this.footCheck === 'order'){
this.$refs.orderList.getOrderList();
}
},
onPageScroll(res) {
if (res.scrollTop <= 20) {
uni.$emit('isTop', true);

20
pages/Pet/index.vue

@ -6,7 +6,7 @@
<view class="order-screen-container row">
<view class="order-list-container">
<view class="order-list-item" v-for="(item,index) in petList" @click="navTo('/pages/PetDetail/index?id=' + item.id)">
<view class="order-list-item" v-for="(item,index) in petList" wx:key="index" @click="navTo('/pages/PetDetail/index?id=' + item.id)">
<view v-show="index!==0" class="pet-gun" :style="{
backgroundImage:'url('+staticImage.petGun+')'
}"></view>
@ -36,7 +36,13 @@
</view>
</view>
</view>
<u-loadmore :status="status" fontSize="28"
color="#ACB4B6"
line
line-color="#ACB4B6"
marginBottom="30" marginTop="30" @loadmore="getMyPets()"/>
</view>
<view class="right-nav row">
<view class="right-nav-button col-12" :style="{backgroundImage:'url('+staticImage.addPet+')'}"></view>
</view>
@ -85,7 +91,8 @@
pagePadding: 100,
currentPage:1,
petImage: imghost + '/static/image/pet_avatar1.jpeg',
petList:[]
petList:[],
status:"loadmore"
}
},
onLoad() {
@ -98,13 +105,20 @@
})
},
getMyPets(page = 1){
if (this.status === 'nomore') {
return;
}
this.status = 'loading';
getMyPets(page).then(data => {
if (page === 1){
this.petList = data.data;
}else{
this.petList.push.apply(this.petList,data.data);
}
})
if (data.data.length < 10) {
this.status = 'nomore';
}
});
}
},
onReachBottom() {

Loading…
Cancel
Save