<template>
|
|
<view>
|
|
<up-sticky bgColor="#fff">
|
|
<view class="container-tabs">
|
|
<up-tabs :list="list" lineWidth="68rpx" :activeStyle="{
|
|
color: '#FFFFFF',
|
|
fontWeight: 'bold',
|
|
transform: 'scale(1.05)'
|
|
}" :inactiveStyle="{
|
|
color: '#FFFFFF',
|
|
transform: 'scale(1)'
|
|
}" :itemStyle="{height:'88rpx',padding:'0 52rpx'}" lineColor="#FFFFFF" @click="clickEvent"></up-tabs>
|
|
</view>
|
|
</up-sticky>
|
|
|
|
<view class="container">
|
|
<List :orderList="orderlist" :current="current" @update="updateList"></List>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
import {
|
|
computed,
|
|
reactive,
|
|
ref
|
|
} from "vue";
|
|
import List from "./components/list.vue";
|
|
import {
|
|
onShow
|
|
} from "@dcloudio/uni-app"
|
|
import { getLoginStatus } from "@/utils/useMixin.js"
|
|
import {
|
|
orderList
|
|
} from "@/api/receivingHall/index.js"
|
|
import submitBut from "@/components/submitBut/index.vue"
|
|
import {
|
|
useStore
|
|
} from "vuex"
|
|
import dayjs from "dayjs";
|
|
|
|
const current = ref(0)
|
|
const list = reactive([{
|
|
name: '系统派单',
|
|
badge: {
|
|
value: 0,
|
|
}
|
|
},
|
|
{
|
|
name: '个人订单',
|
|
badge: {
|
|
value: 0,
|
|
}
|
|
},
|
|
{
|
|
name: '流失订单',
|
|
badge: {
|
|
value: 0,
|
|
}
|
|
},
|
|
])
|
|
const store = useStore();
|
|
const userInfo = computed(() => {
|
|
return store.getters.userInfo
|
|
})
|
|
const orderlist = ref([]);
|
|
|
|
onShow(() => {
|
|
if (!getLoginStatus()) return;
|
|
getOrderList();
|
|
})
|
|
|
|
// 获取接单大厅列表
|
|
const getOrderList = async () => {
|
|
let response = await orderList({
|
|
type: current.value,
|
|
userIdJson: userInfo.value.userId
|
|
});
|
|
if (response.code == 200 && response.data) {
|
|
orderlist.value = response.data.rows;
|
|
|
|
orderlist.value.forEach(item => {
|
|
item.h5OrderVO.petVOList.forEach(pet => {
|
|
pet.orderServiceText = getOrderServiceText(pet.id, item.h5OrderVO.orderServiceList)
|
|
pet.productNameText = getProductNameText(pet.id, item.h5OrderVO.orderItemList, item.h5OrderVO.orderServiceList)
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
function getOrderServiceText(petId, orderServiceList){
|
|
|
|
let YYYY = undefined
|
|
|
|
return orderServiceList
|
|
.filter(service => service.petId == petId)//过滤
|
|
.map(service => dayjs(service.serviceDate))//转成时间
|
|
.sort((a, b) => a.valueOf() - b.valueOf())//排序
|
|
.map((service, i) => {
|
|
if(YYYY && YYYY.format('YYYY-MM') == service.format('YYYY-MM')){
|
|
return service.format('DD')
|
|
}
|
|
if(YYYY && YYYY.format('YYYY') == service.format('YYYY')){
|
|
return service.format('MM-DD')
|
|
}
|
|
YYYY = service
|
|
return service.format('YYYY-MM-DD')
|
|
})
|
|
}
|
|
function getProductNameText(petId, productList, orderServiceList){
|
|
|
|
let orderService = orderServiceList.filter(service => service.petId == petId)
|
|
|
|
return productList
|
|
.filter(product => orderService.filter(service => service.id == product.orderServiceId).length > 0)
|
|
.map(product => product.productName)
|
|
}
|
|
|
|
const clickEvent = (item) => {
|
|
current.value = item.index;
|
|
getOrderList();
|
|
}
|
|
|
|
const updateList = () => {
|
|
getOrderList();
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@import "index.scss";
|
|
</style>
|