|
|
|
@ -49,7 +49,10 @@ onLoad(() => {
|
|
|
|
|
const categoryListStore = categoryStore.categoryVal
|
|
|
|
|
categoryList = Object.assign([], categoryListStore)
|
|
|
|
|
})
|
|
|
|
|
onShow(async () => {
|
|
|
|
|
onShow(() => {
|
|
|
|
|
init()
|
|
|
|
|
})
|
|
|
|
|
const init = async () => {
|
|
|
|
|
// 分类
|
|
|
|
|
const productCode = uni.getStorageSync('productCode')
|
|
|
|
|
categoryList.forEach((e) => {
|
|
|
|
@ -64,7 +67,18 @@ onShow(async () => {
|
|
|
|
|
await getMemberAddressData()
|
|
|
|
|
// 获取默认地址的站点类目
|
|
|
|
|
await getNearbySite()
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// 是否触发下拉刷新
|
|
|
|
|
const isTriggered = ref(false)
|
|
|
|
|
// 自定义下拉刷新被触发
|
|
|
|
|
const onRefresherrefresh = async () => {
|
|
|
|
|
// 开始动画
|
|
|
|
|
isTriggered.value = true
|
|
|
|
|
// 加载数据
|
|
|
|
|
await init()
|
|
|
|
|
// 关闭动画
|
|
|
|
|
isTriggered.value = false
|
|
|
|
|
}
|
|
|
|
|
/**
|
|
|
|
|
* 地址下的站点类目
|
|
|
|
|
*
|
|
|
|
@ -141,6 +155,12 @@ const activeWeightKey = ref(0)
|
|
|
|
|
const handleWeightChange = (val) => {
|
|
|
|
|
activeWeightKey.value = val
|
|
|
|
|
}
|
|
|
|
|
// 是否单位订单
|
|
|
|
|
const isUnit = ref(false)
|
|
|
|
|
const switchChange = (e) => {
|
|
|
|
|
const flag = e.detail.value
|
|
|
|
|
isUnit.value = flag
|
|
|
|
|
}
|
|
|
|
|
// 分类切换选中
|
|
|
|
|
const handleCategoryChange = (item) => {
|
|
|
|
|
if (!item.disabled) {
|
|
|
|
@ -185,6 +205,7 @@ const handleBooking = async () => {
|
|
|
|
|
orderDetails: orderDetails,
|
|
|
|
|
clientAddressId: clientAddressId.value,
|
|
|
|
|
recycleStationId: recycleStationId.value,
|
|
|
|
|
// clientType: isUnit.value ? 2 : 1,
|
|
|
|
|
remark: '请尽快上门',
|
|
|
|
|
}
|
|
|
|
|
console.log('params', params)
|
|
|
|
@ -239,7 +260,8 @@ const handlePopClose = (item) => {
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
<template>
|
|
|
|
|
<view class="booking">
|
|
|
|
|
<scroll-view enable-back-to-top scroll-y class="booking" refresher-enabled :refresher-triggered="isTriggered"
|
|
|
|
|
@refresherrefresh="onRefresherrefresh">
|
|
|
|
|
<view class="module section-map">
|
|
|
|
|
<map id="map" class="map" show-location :latitude="location.latitude" :longitude="location.longitude"></map>
|
|
|
|
|
</view>
|
|
|
|
@ -248,10 +270,10 @@ const handlePopClose = (item) => {
|
|
|
|
|
<view class="module-title">回收品类<span class="tip">(请选择品类)</span></view>
|
|
|
|
|
<view class="category-list">
|
|
|
|
|
<view v-for="item in categoryList" :key="item.code" :class="[
|
|
|
|
|
item.selected ? 'category-selected' : '',
|
|
|
|
|
item.disabled ? 'category-disabled' : '',
|
|
|
|
|
'category-item',
|
|
|
|
|
]" hover-class="none" @click="handleCategoryChange(item)">
|
|
|
|
|
item.selected ? 'category-selected' : '',
|
|
|
|
|
item.disabled ? 'category-disabled' : '',
|
|
|
|
|
'category-item',
|
|
|
|
|
]" hover-class="none" @click="handleCategoryChange(item)">
|
|
|
|
|
<view class="right">
|
|
|
|
|
<image class="icon" :src="item.imgUrl"></image>
|
|
|
|
|
</view>
|
|
|
|
@ -269,18 +291,10 @@ const handlePopClose = (item) => {
|
|
|
|
|
<text class="label">时间:</text>
|
|
|
|
|
<text class="text ellipsis"> {{ appointmentTime || '请选择回收时间' }} </text>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- <view @tap="handlePointer()" class="item arrow">
|
|
|
|
|
<text class="label">地址:</text>
|
|
|
|
|
<text class="text ellipsis"> {{ recycleAddress || '请选择回收地址' }} </text>
|
|
|
|
|
</view> -->
|
|
|
|
|
<view @tap="openPopup('address')" class="item arrow">
|
|
|
|
|
<text class="label">地址:</text>
|
|
|
|
|
<text class="text ellipsis"> {{ recycleAddress }} </text>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- <view @tap="openPopup('site')" class="item arrow">
|
|
|
|
|
<text class="label">站点:</text>
|
|
|
|
|
<text class="text ellipsis">{{ siteObj?.stationName || '请选择回收站点' }}</text>
|
|
|
|
|
</view> -->
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<view class="weight">
|
|
|
|
@ -295,12 +309,15 @@ const handlePopClose = (item) => {
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<!-- <view class="switch">
|
|
|
|
|
<view class="label">是否单位订单</view>
|
|
|
|
|
<switch color="#3775F6" :checked="isUnit" @change="switchChange" style="transform:scale(0.7)" />
|
|
|
|
|
</view> -->
|
|
|
|
|
</view>
|
|
|
|
|
<view :class="[!isBooking ? 'disabled' : '', 'submit']" @click="handleBooking">
|
|
|
|
|
立即预约回收
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<!-- uni-ui 弹出层 -->
|
|
|
|
|
<uni-popup ref="popup" :mask-click="false" type="bottom" background-color="#fff">
|
|
|
|
|
<AddressPanel v-if="popupName === 'address'" @close="handlePopClose" />
|
|
|
|
@ -309,7 +326,7 @@ const handlePopClose = (item) => {
|
|
|
|
|
</uni-popup>
|
|
|
|
|
<!-- 底部占位空盒子 -->
|
|
|
|
|
<view class="toolbar-height" safe-area-inset-bottom></view>
|
|
|
|
|
</view>
|
|
|
|
|
</scroll-view>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<style lang="scss">
|
|
|
|
@ -524,6 +541,21 @@ page {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.switch {
|
|
|
|
|
border-bottom: 2rpx solid #e1e7f2;
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
|
|
|
|
|
padding: 20rpx 0rpx 20rpx;
|
|
|
|
|
margin-left: 20rpx;
|
|
|
|
|
display: flex;
|
|
|
|
|
justify-content: space-between;
|
|
|
|
|
align-items: center;
|
|
|
|
|
|
|
|
|
|
.label {
|
|
|
|
|
color: #3d3d3d;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.submit {
|
|
|
|
|