109 lines
3.0 KiB
Vue
109 lines
3.0 KiB
Vue
|
<!-- 取件页面 -->
|
|||
|
<template>
|
|||
|
<view class="pickup">
|
|||
|
<!-- 搜索nav -->
|
|||
|
<SearchPage @handleSearch="handleSearch"></SearchPage>
|
|||
|
<!-- end -->
|
|||
|
<view class="boxTop" :style="{'paddingTop':capsuleBottom +'px'}">
|
|||
|
<!-- tab切换 -->
|
|||
|
<UniTab :tabBars="tabBars" ref="tab" @getTabIndex="getTabIndex" :staticNum="staticNum.data"></UniTab>
|
|||
|
</view>
|
|||
|
<!-- 运单列表 -->
|
|||
|
<OrderList ref='orderListRef' :serchValue="serchValue" @stopRefresh="stopRefreshFunc"></OrderList>
|
|||
|
</view>
|
|||
|
<!-- end -->
|
|||
|
</template>
|
|||
|
|
|||
|
<script setup>
|
|||
|
import {
|
|||
|
ref,
|
|||
|
reactive,
|
|||
|
} from 'vue';
|
|||
|
import {
|
|||
|
onLoad,
|
|||
|
onShow
|
|||
|
} from '@dcloudio/uni-app';
|
|||
|
|
|||
|
// 基本数据
|
|||
|
import {
|
|||
|
DeliveryData
|
|||
|
} from '@/utils/commonData.js';
|
|||
|
import {
|
|||
|
getGoodsNum
|
|||
|
} from '@/pages/api/order.js'
|
|||
|
// 导入组件
|
|||
|
// 搜索组件
|
|||
|
import SearchPage from '@/components/uni-search/index.vue';
|
|||
|
// tab切换
|
|||
|
import UniTab from '@/components/uni-tab/index.vue';
|
|||
|
//运单列表
|
|||
|
import OrderList from './components/orderList';
|
|||
|
// 筛选
|
|||
|
|
|||
|
const emit = defineEmits(''); //子组件向父组件事件传递
|
|||
|
const tab = ref();
|
|||
|
const tabBars = DeliveryData;
|
|||
|
let tabIndex = ref(0); //当前tab
|
|||
|
let staticNum = reactive({
|
|||
|
data: [0, 0]
|
|||
|
})
|
|||
|
// 存储已选内容, 因为这个列表是增删很频繁的,所以选用map而不是数组,key对应的是数据的下标。至于value存放什么,完全由自己定
|
|||
|
let selected = reactive(new Map());
|
|||
|
let orderListRef = ref() //列表组件引用
|
|||
|
//设备栏高度
|
|||
|
let deviceNavHeight = ref()
|
|||
|
//胶囊顶部距离头部的距离
|
|||
|
let capsuleTop = ref()
|
|||
|
//胶囊底部距离头部的距离
|
|||
|
let capsuleBottom = ref()
|
|||
|
//导航栏高度
|
|||
|
let all = ref()
|
|||
|
//胶囊高度
|
|||
|
let capsuleHeight = ref()
|
|||
|
let serchValue = ref()//头部搜索栏的关键字
|
|||
|
// ------生命周期------
|
|||
|
onShow(() => {
|
|||
|
getStaticNum()
|
|||
|
orderListRef.value && getTabIndex(tabIndex.value)
|
|||
|
});
|
|||
|
onLoad(() => {
|
|||
|
uni.getSystemInfo({
|
|||
|
success: (res) => {
|
|||
|
deviceNavHeight.value = res.statusBarHeight
|
|||
|
capsuleTop.value = uni.getMenuButtonBoundingClientRect().top
|
|||
|
capsuleBottom.value = uni.getMenuButtonBoundingClientRect().bottom
|
|||
|
all.value = (capsuleTop.value + capsuleBottom.value - deviceNavHeight.value) + 'px'
|
|||
|
capsuleHeight.value = uni.getMenuButtonBoundingClientRect().height
|
|||
|
|
|||
|
}
|
|||
|
})
|
|||
|
})
|
|||
|
// ------定义方法------
|
|||
|
|
|||
|
// 搜索
|
|||
|
const handleSearch = (index) => {
|
|||
|
serchValue.value = index.value
|
|||
|
orderListRef.value.indexGetOrderListFunc({
|
|||
|
keyword: index.value
|
|||
|
}) //触发子组件获取列表数据的方法
|
|||
|
};
|
|||
|
// 获取寄件和收件的数量
|
|||
|
const getStaticNum = () => {
|
|||
|
getGoodsNum().then((res) => {
|
|||
|
if(res.code === 200){
|
|||
|
staticNum.data = [res.data['1'],res.data['2']]
|
|||
|
}
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
// 获取tab切换当前的index
|
|||
|
const getTabIndex = index => {
|
|||
|
tabIndex.value = index
|
|||
|
orderListRef.value.indexGetOrderListFunc({
|
|||
|
mailType: index + 1,
|
|||
|
}) //触发子组件获取列表数据的方法
|
|||
|
};
|
|||
|
</script>
|
|||
|
<style src="../../styles/expressage.scss" lang="scss" scoped></style>
|
|||
|
<style src="./index.scss" lang="scss" scoped></style>
|