| | |
| | | |
| | | <script> |
| | | import { mapState } from 'vuex' |
| | | import { checkLocationPermission } from '@/utils/utils' |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | |
| | | this.scrollHeight = Math.max(windowHeight - this.headerHeight, 0) |
| | | if (this.userInfo.auditStatus === 99) return; |
| | | this.acceptingStatus = this.userInfo.acceptingStatus || 0 |
| | | this.$u.api.centerInfo().then(res => { |
| | | if (res.code === 200) { |
| | | this.acceptingStatus = res.data.acceptingStatus |
| | | if (res.data.acceptingStatus === 1) { |
| | | this.loadOrdersByTab(this.activeTab) |
| | | } |
| | | } |
| | | this.init() |
| | | uni.$on('locationPermissionGranted', () => { |
| | | this.init() |
| | | }) |
| | | uni.$on('jiedanSuccess', () => { |
| | | this.loadOrdersByTab(this.activeTab) |
| | |
| | | }, |
| | | |
| | | methods: { |
| | | init() { |
| | | console.log('index-init') |
| | | this.$u.api.centerInfo().then(res => { |
| | | if (res.code === 200) { |
| | | this.acceptingStatus = res.data.acceptingStatus |
| | | if (res.data.acceptingStatus === 1) { |
| | | this.loadOrdersByTab(this.activeTab) |
| | | } |
| | | } |
| | | }) |
| | | }, |
| | | handleScrollToLower() { |
| | | if (this.acceptingStatus === 0) return; |
| | | this.hallPage++ |
| | |
| | | }) |
| | | }, |
| | | getActiveOrderCount() { |
| | | this.$u.api.activeOrderCount().then(res => { |
| | | if (res.code === 200) { |
| | | this.activeOrderCount = res.data |
| | | checkLocationPermission().then((granted) => { |
| | | if (granted) { |
| | | console.log('已有位置权限-订单数量') |
| | | this.$u.api.activeOrderCount().then(res => { |
| | | if (res.code === 200) { |
| | | this.activeOrderCount = res.data |
| | | } |
| | | }).catch((err) => { |
| | | this.activeOrderCount = null |
| | | }) |
| | | } else { |
| | | console.log('还没有位置权限-订单数量') |
| | | } |
| | | }).catch((err) => { |
| | | this.activeOrderCount = null |
| | | }) |
| | | }, |
| | | |
| | |
| | | if (this.userInfo.auditStatus === 99) return; |
| | | if (this.acceptingStatus === 0) return; |
| | | if (tab === 'hall') { |
| | | console.log('抢单大厅') |
| | | this.hallPage = 1 |
| | | this.hallHasMore = true |
| | | this.orderList = [] |
| | | this.getHallOrders() |
| | | } else if (tab === 'pickup') { |
| | | console.log('待取货') |
| | | this.pickupOrderList = [] |
| | | this.getPickupOrders() |
| | | } else if (tab === 'delivering') { |
| | | console.log('配送中') |
| | | this.deliveringOrderList = [] |
| | | this.getDeliveringOrders() |
| | | } |
| | |
| | | if (this.hallLoading || !this.hallHasMore) { |
| | | return |
| | | } |
| | | this.hallLoading = true |
| | | |
| | | let distance = null |
| | | if (this.selectedFilters.distance !== '不限') { |
| | | const distanceText = this.selectedFilters.distance |
| | | if (distanceText.includes('km')) { |
| | | distance = parseInt(distanceText) * 1000 |
| | | |
| | | checkLocationPermission().then((granted) => { |
| | | if (granted) { |
| | | console.log('已有位置权限') |
| | | this.hallLoading = true |
| | | |
| | | let distance = null |
| | | if (this.selectedFilters.distance !== '不限') { |
| | | const distanceText = this.selectedFilters.distance |
| | | if (distanceText.includes('km')) { |
| | | distance = parseInt(distanceText) * 1000 |
| | | } else { |
| | | distance = parseInt(distanceText) |
| | | } |
| | | } |
| | | |
| | | const sortTypeMap = { |
| | | '综合排序': 1, |
| | | '距离最近': 2 |
| | | } |
| | | const sortType = this.selectedFilters.sort !== '不限' ? (sortTypeMap[this.selectedFilters.sort] || null) : null |
| | | |
| | | let gradeId = null |
| | | if (this.selectedFilters.level !== '不限') { |
| | | const selectedCategory = this.categoryList.find(item => item.name === this.selectedFilters.level) |
| | | if (selectedCategory) { |
| | | gradeId = selectedCategory.id |
| | | } |
| | | } |
| | | |
| | | this.$u.api.grabOrderHall({ |
| | | capacity: this.hallPageSize, |
| | | page: this.hallPage, |
| | | model: { |
| | | distance: distance, |
| | | gradeId: gradeId, |
| | | sortType: sortType |
| | | } |
| | | }).then(res => { |
| | | this.hallLoading = false |
| | | if (res.code === 200) { |
| | | const list = res.data.records || [] |
| | | this.orderList = this.hallPage === 1 ? list : this.orderList.concat(list) |
| | | this.hallHasMore = list.length >= this.hallPageSize |
| | | } |
| | | }).finally(() => { |
| | | this.hallLoading = false |
| | | }) |
| | | } else { |
| | | distance = parseInt(distanceText) |
| | | console.log('还没有位置权限') |
| | | } |
| | | } |
| | | |
| | | const sortTypeMap = { |
| | | '综合排序': 1, |
| | | '距离最近': 2 |
| | | } |
| | | const sortType = this.selectedFilters.sort !== '不限' ? (sortTypeMap[this.selectedFilters.sort] || null) : null |
| | | |
| | | let gradeId = null |
| | | if (this.selectedFilters.level !== '不限') { |
| | | const selectedCategory = this.categoryList.find(item => item.name === this.selectedFilters.level) |
| | | if (selectedCategory) { |
| | | gradeId = selectedCategory.id |
| | | } |
| | | } |
| | | |
| | | console.log('接单大厅:', { distance, gradeId, sortType }) |
| | | this.$u.api.grabOrderHall({ |
| | | capacity: this.hallPageSize, |
| | | page: this.hallPage, |
| | | model: { |
| | | distance: distance, |
| | | gradeId: gradeId, |
| | | sortType: sortType |
| | | } |
| | | }).then(res => { |
| | | console.log('接单大厅', res) |
| | | this.hallLoading = false |
| | | if (res.code === 200) { |
| | | const list = res.data.records || [] |
| | | this.orderList = this.hallPage === 1 ? list : this.orderList.concat(list) |
| | | this.hallHasMore = list.length >= this.hallPageSize |
| | | } |
| | | }).finally(() => { |
| | | this.hallLoading = false |
| | | }) |
| | | }, |
| | | |
| | | getPickupOrders() { |
| | | if (this.acceptingStatus === 0) return; |
| | | if (this.pickupLoading) return |
| | | this.pickupLoading = true |
| | | this.$u.api.activeOrders({ status: 3 }).then(res => { |
| | | console.log('待取货:', res) |
| | | this.pickupLoading = false |
| | | if (res.code === 200) { |
| | | this.pickupOrderList = res.data.records || res.data || [] |
| | | |
| | | checkLocationPermission().then((granted) => { |
| | | if (granted) { |
| | | console.log('已有位置权限') |
| | | this.pickupLoading = true |
| | | this.$u.api.activeOrders({ status: 3 }).then(res => { |
| | | console.log('待取货:', res) |
| | | this.pickupLoading = false |
| | | if (res.code === 200) { |
| | | this.pickupOrderList = res.data.records || res.data || [] |
| | | } |
| | | }).catch((err) => { |
| | | this.pickupLoading = false |
| | | }) |
| | | } else { |
| | | console.log('还没有位置权限') |
| | | } |
| | | }).catch((err) => { |
| | | this.pickupLoading = false |
| | | }) |
| | | }, |
| | | |
| | | getDeliveringOrders() { |
| | | if (this.acceptingStatus === 0) return; |
| | | if (this.deliveringLoading) return |
| | | this.deliveringLoading = true |
| | | this.$u.api.activeOrders({ status: 4 }).then(res => { |
| | | console.log('配送中:', res) |
| | | this.deliveringLoading = false |
| | | if (res.code === 200) { |
| | | this.deliveringOrderList = res.data || [] |
| | | |
| | | checkLocationPermission().then((granted) => { |
| | | if (granted) { |
| | | console.log('已有位置权限') |
| | | this.deliveringLoading = true |
| | | this.$u.api.activeOrders({ status: 4 }).then(res => { |
| | | console.log('配送中:', res) |
| | | this.deliveringLoading = false |
| | | if (res.code === 200) { |
| | | this.deliveringOrderList = res.data || [] |
| | | } |
| | | }).catch((err) => { |
| | | this.deliveringLoading = false |
| | | }) |
| | | } else { |
| | | console.log('还没有位置权限') |
| | | } |
| | | }).catch((err) => { |
| | | this.deliveringLoading = false |
| | | }) |
| | | }, |
| | | |