master
王文杰 7 months ago
parent d02920c43e
commit 04febf5dbe

@ -163,35 +163,6 @@
}
}
]
},
{
"root": "pagesOrder",
"pages": [{
"path": "create/create",
"style": {
"navigationBarTitleText": "填写订单"
}
},
{
"path": "detail/detail",
"style": {
"navigationBarTitleText": "订单详情",
"navigationStyle": "custom"
}
},
{
"path": "payment/payment",
"style": {
"navigationBarTitleText": "支付结果"
}
},
{
"path": "list/list",
"style": {
"navigationBarTitleText": "订单列表"
}
}
]
}
],
//

@ -79,19 +79,23 @@ const getNearbySite = async () => {
const obj = res.data
console.log('getNearbySiteAPI', res.data.stationProducts)
if (obj) {
categoryList.forEach((e) => {
const target = obj.stationProducts.find((q) => q.code == e.code)
if (!target) {
e.disabled = true
e.selected = false
} else {
e.disabled = false
e.productId = target.productId
e.recoveryPrice = target.recoveryPrice
}
})
recycleStationId.value = obj.id
console.log('categoryList', categoryList)
if (obj.stationProducts && obj.stationProducts.length) {
categoryList.forEach((e) => {
const target = obj.stationProducts.find((q) => q.code == e.code)
if (!target) {
e.disabled = true
e.selected = false
} else {
e.disabled = false
e.productId = target.productId
e.recoveryPrice = target.recoveryPrice
}
})
recycleStationId.value = obj.id
console.log('categoryList', categoryList)
} else {
uni.showToast({ icon: 'none', title: '当前位置的回收站点没有配置回收品类...' })
}
} else {
categoryList.forEach((e) => {
e.disabled = true

@ -9,7 +9,7 @@ import PageSkeleton from './components/PageSkeleton.vue'
import PhoneContact from './components/PhoneContact.vue'
import NeighborhoodSite from './components/NeighborhoodSite.vue'
import { getHomeCategoryAPI, getNearbySiteAPI } from '@/services/home'
import { categoryListDefault, serviceDomain } from '@/services/constants'
import { serviceDomain } from '@/services/constants'
import { useCategoryStore } from '@/stores/modules/category'
const memberStore = useMemberStore()

@ -1,6 +1,6 @@
<script setup lang="ts">
import { OrderState } from '@/services/constants'
import { orderStateList, serviceDomain } from '@/services/constants'
import { serviceDomain } from '@/services/constants'
import { putMemberOrderReceiptByIdAPI } from '@/services/order'
import { getMemberOrderAPI, cancleOrderAPI } from '@/services/order'
import { getPayMockAPI, getPayWxPayMiniPayAPI } from '@/services/pay'

@ -1,6 +1,5 @@
<script setup lang="ts">
import { OrderState } from '@/services/constants'
import { orderStateList } from '@/services/constants'
import { postPayDetailAPI } from '@/services/pay'
import { ref, reactive, watch } from 'vue'
import { onReady, onShow } from '@dcloudio/uni-app'

@ -94,20 +94,24 @@ const onSubmit = async () => {
if (isLoading.value) return
isLoading.value = true
const { nickName, gender, birthday } = profile.value
const params = {
headIcon: headIcon.value,
nickName,
gender,
birthday: birthday + ' ' + '00:00:01',
if (!nickName || !gender || !birthday) {
uni.showToast({ icon: 'success', title: '请填写完整数据...' })
} else {
const params = {
headIcon: headIcon.value,
nickName,
gender,
birthday: birthday + ' ' + '00:00:01',
}
const res = await postMemberProfileAPI(params)
isLoading.value = false
// Store
// memberStore.profile!.nickName = nickName
uni.showToast({ icon: 'success', title: '保存成功' })
setTimeout(() => {
uni.navigateBack()
}, 0)
}
const res = await postMemberProfileAPI(params)
isLoading.value = false
// Store
// memberStore.profile!.nickName = nickName
uni.showToast({ icon: 'success', title: '保存成功' })
setTimeout(() => {
uni.navigateBack()
}, 400)
}
</script>

@ -1,392 +0,0 @@
<script setup lang="ts">
import {
getMemberOrderPreAPI,
getMemberOrderPreNowAPI,
getMemberOrderRepurchaseByIdAPI,
postMemberOrderAPI,
} from '@/services/order'
import { useAddressStore } from '@/stores/modules/address'
import type { OrderPreResult } from '@/types/order'
import { onLoad } from '@dcloudio/uni-app'
import { computed, ref } from 'vue'
//
const { safeAreaInsets } = uni.getSystemInfoSync()
//
const buyerMessage = ref('')
//
const deliveryList = ref([
{ type: 1, text: '时间不限 (周一至周日)' },
{ type: 2, text: '工作日送 (周一至周五)' },
{ type: 3, text: '周末配送 (周六至周日)' },
])
//
const activeIndex = ref(0)
//
const activeDelivery = computed(() => deliveryList.value[activeIndex.value])
//
const onChangeDelivery: UniHelper.SelectorPickerOnChange = (ev) => {
activeIndex.value = ev.detail.value
}
//
const query = defineProps<{
skuId?: string
count?: string
orderId?: string
}>()
//
const orderPre = ref<OrderPreResult>()
const getMemberOrderPreData = async () => {
if (query.count && query.skuId) {
const res = await getMemberOrderPreNowAPI({
count: query.count,
skuId: query.skuId,
})
orderPre.value = res.result
} else if (query.orderId) {
//
const res = await getMemberOrderRepurchaseByIdAPI(query.orderId)
orderPre.value = res.result
} else {
const res = await getMemberOrderPreAPI()
orderPre.value = res.result
}
}
onLoad(() => {
getMemberOrderPreData()
})
const addressStore = useAddressStore()
//
const selecteAddress = computed(() => {
return addressStore.selectedAddress || orderPre.value?.userAddresses.find((v) => v.isDefault)
})
//
const onOrderSubmit = async () => {
//
if (!selecteAddress.value?.id) {
return uni.showToast({ icon: 'none', title: '请选择收货地址' })
}
//
const res = await postMemberOrderAPI({
addressId: selecteAddress.value?.id,
buyerMessage: buyerMessage.value,
deliveryTimeType: activeDelivery.value.type,
goods: orderPre.value!.goods.map((v) => ({ count: v.count, skuId: v.skuId })),
payChannel: 2,
payType: 1,
})
// id
uni.redirectTo({ url: `/pagesOrder/detail/detail?id=${res.result.id}` })
}
</script>
<template>
<scroll-view enable-back-to-top scroll-y class="viewport">
<!-- 收货地址 -->
<navigator
v-if="selecteAddress"
class="shipment"
hover-class="none"
url="/pagesMember/address/address?from=order"
>
<view class="user"> {{ selecteAddress.receiver }} {{ selecteAddress.contact }} </view>
<view class="address"> {{ selecteAddress.fullLocation }} {{ selecteAddress.address }} </view>
<text class="icon icon-right"></text>
</navigator>
<navigator
v-else
class="shipment"
hover-class="none"
url="/pagesMember/address/address?from=order"
>
<view class="address"> 请选择收货地址 </view>
<text class="icon icon-right"></text>
</navigator>
<!-- 商品信息 -->
<view class="goods">
<navigator
v-for="item in orderPre?.goods"
:key="item.skuId"
:url="`/pages/goods/goods?id=${item.id}`"
class="item"
hover-class="none"
>
<image class="picture" :src="item.picture" />
<view class="meta">
<view class="name ellipsis"> {{ item.name }} </view>
<view class="attrs">{{ item.attrsText }}</view>
<view class="prices">
<view class="pay-price symbol">{{ item.payPrice }}</view>
<view class="price symbol">{{ item.price }}</view>
</view>
<view class="count">x{{ item.count }}</view>
</view>
</navigator>
</view>
<!-- 配送及支付方式 -->
<view class="related">
<view class="item">
<text class="text">配送时间</text>
<picker :range="deliveryList" range-key="text" @change="onChangeDelivery">
<view class="icon-fonts picker">{{ activeDelivery.text }}</view>
</picker>
</view>
<view class="item">
<text class="text">订单备注</text>
<input
class="input"
:cursor-spacing="30"
placeholder="选题,建议留言前先与商家沟通确认"
v-model="buyerMessage"
/>
</view>
</view>
<!-- 支付金额 -->
<view class="settlement">
<view class="item">
<text class="text">商品总价: </text>
<text class="number symbol">{{ orderPre?.summary.totalPrice.toFixed(2) }}</text>
</view>
<view class="item">
<text class="text">运费: </text>
<text class="number symbol">{{ orderPre?.summary.postFee.toFixed(2) }}</text>
</view>
</view>
</scroll-view>
<!-- 吸底工具栏 -->
<view class="toolbar" :style="{ paddingBottom: safeAreaInsets?.bottom + 'px' }">
<view class="total-pay symbol">
<text class="number">{{ orderPre?.summary.totalPayPrice.toFixed(2) }}</text>
</view>
<view class="button" :class="{ disabled: !selecteAddress?.id }" @tap="onOrderSubmit">
提交订单
</view>
</view>
</template>
<style lang="scss">
page {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
background-color: #f4f4f4;
}
.symbol::before {
content: '¥';
font-size: 80%;
margin-right: 5rpx;
}
.shipment {
margin: 20rpx;
padding: 30rpx 30rpx 30rpx 84rpx;
font-size: 26rpx;
border-radius: 10rpx;
background: url(https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/images/locate.png)
20rpx center / 50rpx no-repeat #fff;
position: relative;
.icon {
font-size: 36rpx;
color: #333;
transform: translateY(-50%);
position: absolute;
top: 50%;
right: 20rpx;
}
.user {
color: #333;
margin-bottom: 5rpx;
}
.address {
color: #666;
}
}
.goods {
margin: 20rpx;
padding: 0 20rpx;
border-radius: 10rpx;
background-color: #fff;
.item {
display: flex;
padding: 30rpx 0;
border-top: 1rpx solid #eee;
&:first-child {
border-top: none;
}
.picture {
width: 170rpx;
height: 170rpx;
border-radius: 10rpx;
margin-right: 20rpx;
}
.meta {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
position: relative;
}
.name {
height: 80rpx;
font-size: 26rpx;
color: #444;
}
.attrs {
line-height: 1.8;
padding: 0 15rpx;
margin-top: 6rpx;
font-size: 24rpx;
align-self: flex-start;
border-radius: 4rpx;
color: #888;
background-color: #f7f7f8;
}
.prices {
display: flex;
align-items: baseline;
margin-top: 6rpx;
font-size: 28rpx;
.pay-price {
margin-right: 10rpx;
color: #cf4444;
}
.price {
font-size: 24rpx;
color: #999;
text-decoration: line-through;
}
}
.count {
position: absolute;
bottom: 0;
right: 0;
font-size: 26rpx;
color: #444;
}
}
}
.related {
margin: 20rpx;
padding: 0 20rpx;
border-radius: 10rpx;
background-color: #fff;
.item {
display: flex;
justify-content: space-between;
align-items: center;
min-height: 80rpx;
font-size: 26rpx;
color: #333;
}
.input {
flex: 1;
text-align: right;
margin: 20rpx 0;
padding-right: 20rpx;
font-size: 26rpx;
color: #999;
}
.item .text {
width: 125rpx;
}
.picker {
color: #666;
}
.picker::after {
content: '\e6c2';
}
}
/* 结算清单 */
.settlement {
margin: 20rpx;
padding: 0 20rpx;
border-radius: 10rpx;
background-color: #fff;
.item {
display: flex;
align-items: center;
justify-content: space-between;
height: 80rpx;
font-size: 26rpx;
color: #333;
}
.danger {
color: #cf4444;
}
}
/* 吸底工具栏 */
.toolbar {
position: fixed;
left: 0;
right: 0;
bottom: calc(var(--window-bottom));
z-index: 1;
background-color: #fff;
height: 100rpx;
padding: 0 20rpx;
border-top: 1rpx solid #eaeaea;
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: content-box;
.total-pay {
font-size: 40rpx;
color: #cf4444;
.decimal {
font-size: 75%;
}
}
.button {
width: 220rpx;
text-align: center;
line-height: 72rpx;
font-size: 26rpx;
color: #fff;
border-radius: 72rpx;
background-color: #3775F6;
}
.disabled {
opacity: 0.6;
}
}
</style>

@ -1,430 +0,0 @@
<template name="skeleton">
<view class="sk-container">
<scroll-view
:scroll-y="true"
class="viewport sk-transparent"
id="scroller"
:enable-back-to-top="true"
>
<view class="overview sk-image" style="padding-top: 64px">
<view class="status sk-transparent sk-text-0-0000-826 sk-text">待收货</view>
</view>
<view class="shipment">
<navigator class="logistics sk-image sk-pseudo sk-pseudo-circle" hover-class="none">
<view class="message sk-transparent sk-text-14-2857-512 sk-text"
>到了小福家里请签收</view
>
<view class="date sk-transparent sk-text-14-2857-990 sk-text">2023-04-15 23:23:04</view>
</navigator>
<view class="locate sk-image">
<view class="user sk-transparent sk-text-14-2857-630 sk-text">苏东坡 13633336666</view>
<view class="address sk-transparent sk-text-14-2857-606 sk-text"
>广东省 广州市 天河区吉山幼儿园</view
>
</view>
</view>
<view class="goods">
<view class="item">
<navigator class="navigator" hover-class="none">
<image class="cover sk-image"></image>
<view class="meta">
<view class="name ellipsis sk-transparent sk-text-14-2857-474 sk-text"
>厚厚一按就干爽埃及进口长绒棉毛巾</view
>
<view class="type sk-transparent sk-text-22-2222-237 sk-text"
>超值4条装灰蓝色+粉色+银灰+嫩黄</view
>
<view class="price">
<view class="actual">
<text class="symbol sk-transparent sk-opacity">¥</text>
<text class="sk-transparent sk-text-14-2857-102 sk-text">68</text>
</view>
</view>
<view class="quantity sk-transparent sk-opacity">x1</view>
</view>
</navigator>
<navigator class="navigator" hover-class="none">
<image class="cover sk-image"></image>
<view class="meta">
<view class="name ellipsis sk-transparent sk-text-14-2857-969 sk-text"
>KJE金属色系轻量电动车骑行盔男女通用</view
>
<view class="type sk-transparent sk-text-22-2222-510 sk-text">玫瑰金L</view>
<view class="price">
<view class="actual">
<text class="symbol sk-transparent sk-opacity">¥</text>
<text class="sk-transparent sk-text-14-2857-431 sk-text">120</text>
</view>
</view>
<view class="quantity sk-transparent sk-opacity">x1</view>
</view>
</navigator>
<navigator class="navigator" hover-class="none">
<image class="cover sk-image"></image>
<view class="meta">
<view class="name ellipsis sk-transparent sk-text-14-2857-130 sk-text"
>源自澳洲进口羊毛儿童奢暖羊毛被升级款</view
>
<view class="type sk-transparent sk-text-22-2222-110 sk-text"
>春秋款 100%羊毛款150x200cm适合1.2/1.35米床</view
>
<view class="price">
<view class="actual">
<text class="symbol sk-transparent sk-opacity">¥</text>
<text class="sk-transparent sk-text-14-2857-273 sk-text">289</text>
</view>
</view>
<view class="quantity sk-transparent sk-opacity">x1</view>
</view>
</navigator>
</view>
<view class="total">
<view class="row">
<view class="text sk-transparent sk-text-0-0000-302 sk-text">商品总价: </view>
<view
class="symbol sk-transparent sk-text-0-0000-998 sk-text sk-pseudo sk-pseudo-circle"
>477</view
>
</view>
<view class="row">
<view class="text sk-transparent sk-text-0-0000-912 sk-text">运费: </view>
<view
class="symbol sk-transparent sk-text-0-0000-208 sk-text sk-pseudo sk-pseudo-circle"
>2</view
>
</view>
<view class="row">
<view class="text sk-transparent sk-text-0-0000-538 sk-text">应付金额: </view>
<view
class="symbol primary sk-transparent sk-text-0-0000-858 sk-text sk-pseudo sk-pseudo-circle"
>479</view
>
</view>
</view>
</view>
<view class="detail">
<view class="title sk-transparent sk-text-0-0000-66 sk-text">订单信息</view>
<view class="row">
<view class="item sk-transparent">
订单编号: 1645809639951962113
<text class="copy sk-transparent sk-text-0-0000-522 sk-text">复制</text>
</view>
<view class="item sk-transparent sk-text-0-0000-353 sk-text"
>下单时间: 2023-04-11 23:22:50</view
>
</view>
</view>
<view class="toolbar" style="padding-bottom: 34px">
<view
class="button primary sk-transparent sk-text-31-9444-411 sk-text"
style="background-position-x: 50%"
>再次购买</view
>
</view>
</scroll-view>
</view>
</template>
<style>
.sk-transparent {
color: transparent !important;
}
.sk-text-14-2857-107 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 44.8rpx;
position: relative !important;
}
.sk-text {
background-origin: content-box !important;
background-clip: content-box !important;
background-color: transparent !important;
color: transparent !important;
background-repeat: repeat-y !important;
}
.sk-text-0-0000-826 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 36rpx;
position: relative !important;
}
.sk-text-14-2857-512 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 36.4rpx;
position: relative !important;
}
.sk-text-14-2857-990 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 33.6rpx;
position: relative !important;
}
.sk-text-14-2857-630 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 36.4rpx;
position: relative !important;
}
.sk-text-14-2857-606 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 33.6rpx;
position: relative !important;
}
.sk-text-14-2857-474 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 36.4rpx;
position: relative !important;
}
.sk-text-22-2222-237 {
background-image: linear-gradient(
transparent 22.2222%,
#eeeeee 0%,
#eeeeee 77.7778%,
transparent 0%
) !important;
background-size: 100% 43.2rpx;
position: relative !important;
}
.sk-opacity {
opacity: 0 !important;
}
.sk-text-14-2857-102 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 33.6rpx;
position: relative !important;
}
.sk-text-14-2857-969 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 36.4rpx;
position: relative !important;
}
.sk-text-22-2222-510 {
background-image: linear-gradient(
transparent 22.2222%,
#eeeeee 0%,
#eeeeee 77.7778%,
transparent 0%
) !important;
background-size: 100% 43.2rpx;
position: relative !important;
}
.sk-text-14-2857-431 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 33.6rpx;
position: relative !important;
}
.sk-text-14-2857-130 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 36.4rpx;
position: relative !important;
}
.sk-text-22-2222-110 {
background-image: linear-gradient(
transparent 22.2222%,
#eeeeee 0%,
#eeeeee 77.7778%,
transparent 0%
) !important;
background-size: 100% 43.2rpx;
position: relative !important;
}
.sk-text-14-2857-273 {
background-image: linear-gradient(
transparent 14.2857%,
#eeeeee 0%,
#eeeeee 85.7143%,
transparent 0%
) !important;
background-size: 100% 33.6rpx;
position: relative !important;
}
.sk-text-0-0000-302 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 26rpx;
position: relative !important;
}
.sk-text-0-0000-998 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 26rpx;
position: relative !important;
}
.sk-text-0-0000-912 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 26rpx;
position: relative !important;
}
.sk-text-0-0000-208 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 26rpx;
position: relative !important;
}
.sk-text-0-0000-538 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 26rpx;
position: relative !important;
}
.sk-text-0-0000-858 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 36rpx;
position: relative !important;
}
.sk-text-0-0000-66 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 30rpx;
position: relative !important;
}
.sk-text-0-0000-522 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 20rpx;
position: relative !important;
}
.sk-text-0-0000-353 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 26rpx;
position: relative !important;
}
.sk-text-0-0000-375 {
background-image: linear-gradient(
transparent 0%,
#eeeeee 0%,
#eeeeee 100%,
transparent 0%
) !important;
background-size: 100% 32rpx;
position: relative !important;
}
.sk-text-31-9444-411 {
background-image: linear-gradient(
transparent 31.9444%,
#eeeeee 0%,
#eeeeee 68.0556%,
transparent 0%
) !important;
background-size: 100% 72rpx;
position: relative !important;
}
.sk-image {
background: #efefef !important;
}
.sk-pseudo::before,
.sk-pseudo::after {
background: #efefef !important;
background-image: none !important;
color: transparent !important;
border-color: transparent !important;
}
.sk-pseudo-rect::before,
.sk-pseudo-rect::after {
border-radius: 0 !important;
}
.sk-pseudo-circle::before,
.sk-pseudo-circle::after {
border-radius: 50% !important;
}
.sk-container {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: hidden;
background-color: transparent;
}
</style>

@ -1,522 +0,0 @@
<script setup lang="ts">
import { useGuessList } from '@/composables'
import { OrderState, orderStateList } from '@/services/constants'
import {
deleteMemberOrderAPI,
getMemberOrderByIdAPI,
getMemberOrderCancelByIdAPI,
getMemberOrderLogisticsByIdAPI,
getMemberOrderConsignmentByIdAPI,
putMemberOrderReceiptByIdAPI,
} from '@/services/order'
import type { LogisticItem, OrderResult } from '@/types/order'
import { onLoad, onReady } from '@dcloudio/uni-app'
import { ref } from 'vue'
import PageSkeleton from './components/PageSkeleton.vue'
import { getPayMockAPI, getPayWxPayMiniPayAPI } from '@/services/pay'
//
const { safeAreaInsets } = uni.getSystemInfoSync()
//
const { guessRef, onScrolltolower } = useGuessList()
//
const popup = ref<UniHelper.UniPopupInstance>()
//
// const reasonList = ref([
// '',
// '',
// '',
// '',
// '',
// '',
// ])
const latitude = ref('37.488')
const longitude = ref('121.4499')
const polyline = ref({
points: [
{
longitude: 121.44577861,
latitude: 37.4820526,
},
{
longitude: 121.44611657,
latitude: 37.48207388,
},
{
longitude: 121.44725382,
latitude: 37.48224841,
},
],
color: '#0091ff',
width: 6,
dottedLine: true,
})
//
const reason = ref('')
//
const onCopy = (id: string) => {
//
uni.setClipboardData({ data: id })
}
//
const query = defineProps<{
id: string
}>()
//
const pages = getCurrentPages()
// Page uni-app Page
type PageInstance = Page.PageInstance & WechatMiniprogram.Page.InstanceMethods<any>
// #ifdef MP-WEIXIN
//
const pageInstance = pages.at(-1) as PageInstance
//
onReady(() => { })
// #endif
//
const order = ref<OrderResult>()
const getMemberOrderByIdData = async () => {
const res = await getMemberOrderByIdAPI(query.id)
order.value = res.result
if (
[OrderState.DaiShouHuo, OrderState.DaiPingJia, OrderState.YiWanCheng].includes(
order.value.orderState,
)
) {
getMemberOrderLogisticsByIdData()
}
}
//
const logisticList = ref<LogisticItem[]>([])
const getMemberOrderLogisticsByIdData = async () => {
const res = await getMemberOrderLogisticsByIdAPI(query.id)
logisticList.value = res.result.list
}
onLoad(() => {
// getMemberOrderByIdData()
// buttonDriving()
})
//
const onTimeup = () => {
//
order.value!.orderState = OrderState.YiQuXiao
}
//
const onOrderPay = async () => {
if (import.meta.env.DEV) {
//
await getPayMockAPI({ orderId: query.id })
} else {
// #ifdef MP-WEIXIN
// 1.2.API
// const res = await getPayWxPayMiniPayAPI({ orderId: query.id })
// await wx.requestPayment(res.result)
// 线 0.01
await getPayMockAPI({ orderId: query.id })
// #endif
// #ifdef H5 || APP-PLUS
// H5 App -
await getPayMockAPI({ orderId: query.id })
// #endif
}
//
uni.redirectTo({ url: `/pagesOrder/payment/payment?id=${query.id}` })
}
//
const isDev = import.meta.env.DEV
//
const onOrderSend = async () => {
if (isDev) {
await getMemberOrderConsignmentByIdAPI(query.id)
uni.showToast({ icon: 'success', title: '模拟发货完成' })
//
order.value!.orderState = OrderState.DaiShouHuo
}
}
const phone = async () => {
uni
.makePhoneCall({
phoneNumber: '13601921745',
})
.catch((e) => {
// console.log(e) //catch(e){makePhoneCall:fail cancel}
})
}
//
const onOrderConfirm = () => {
//
uni.showModal({
content: '为保障您的权益,请收到货并确认无误后,再确认收货',
confirmColor: '#3775F6',
success: async (success) => {
if (success.confirm) {
const res = await putMemberOrderReceiptByIdAPI(query.id)
//
order.value = res.result
}
},
})
const handlePay = (item: object) => {
uni.navigateTo({ url: '/payment/detail/detail' })
}
const buttonDriving = () => {
//wx.requestHTTPS
wx.request({
//WebserviceAPI线 使
url: 'https://apis.map.qq.com/ws/direction/v1/driving/?key=ZHGBZ-L3L3M-7C46H-6CX3A-L5MOO-BFBRO&from=39.894772,116.321668&to=39.902781,116.427171',
success(res) {
const result = res.data.result
const route = result.routes[0]
const coors = route.polyline,
pl = []
//
const kr = 1000000
for (let i = 2; i < coors.length; i++) {
coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr
}
//pl
for (let i = 0; i < coors.length; i += 2) {
pl.push({ latitude: coors[i], longitude: coors[i + 1] })
}
// _this.setData({
// // 线
// latitude:pl[0].latitude,
// longitude:pl[0].longitude,
// // 线
// polyline: [{
// points: pl,
// color: '#58c16c',
// width: 6,
// borderColor: '#2f693c',
// borderWidth: 1
// }]
// })
},
})
}
//
// const onOrderDelete = () => {
// //
// uni.showModal({
// content: '',
// confirmColor: '#3775F6',
// success: async (success) => {
// if (success.confirm) {
// await deleteMemberOrderAPI({ ids: [query.id] })
// uni.redirectTo({ url: '/pagesOrder/list/list' })
// }
// },
// })
}
</script>
<template>
<view class="viewport">
<template v-if="1">
<view class="map">
<map
style="width: 100%; height: 200px"
:polyline="polyline"
:latitude="latitude"
:longitude="longitude"
>
</map>
</view>
<view class="card">
<view class="title">已达到</view>
<view class="cont">
<view class="info1">
<view class="loction">
<view class="text ellipsis">上海市松江区新松江路92弄开元地中海园区</view>
<view class="num">0.4km</view>
</view>
<view class="coming-time">
<view class="label">上门时间</view>
<view class="val">今天上午 12:00</view>
</view>
<view class="people"> 曾先生 18526235487 </view>
</view>
<view class="info2">
<view class="item">
<view class="label">回收品类</view>
<view class="val">塑料瓶/纸箱</view>
</view>
<view class="item">
<view class="label">预计重量</view>
<view class="val">2kg</view>
</view>
<view class="item">
<view class="label">备注</view>
<view class="val"></view>
</view>
</view>
<view class="time-status">剩余接单时间<text class="time">06:25:52</text></view>
</view>
</view>
<!-- 底部操作栏 -->
<view class="toolbar-height" :style="{ paddingBottom: safeAreaInsets?.bottom + 'px' }"></view>
<view class="toolbar" :style="{ paddingBottom: safeAreaInsets?.bottom + 'px' }">
<view class="button" @tap="phone">
<image
class="concat-img"
src="../../../static/images/detail_iphone.png"
mode="scaleToFill"
/>
</view>
<view class="button">
<image
class="concat-img"
src="../../../static/images/detail_concat.png"
mode="scaleToFill"
/>
</view>
<view class="button primary" @click="handlePay"></view>
</view>
</template>
<template v-else>
<PageSkeleton />
</template>
</view>
<!-- // <uni-popup ref="popup" type="bottom" background-color="#fff">
// <view class="popup-root">
// <view class="title"></view>
// <view class="description">
// <view class="tips"></view>
// <view class="cell" v-for="item in reasonList" :key="item" @tap="reason = item">
// <text class="text">{{ item }}</text>
// <text class="icon" :class="{ checked: item === reason }"></text>
// </view>
// </view>
// <view class="footer">
// <view class="button" @tap="popup?.close?.()"></view>
// <view class="button primary" @tap="onOrderCancel"></view>
// </view>
// </view>
// </uni-popup> -->
</template>
<style lang="scss">
page {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
scrollbar-width: none;
}
.viewport {
background-color: #f7f7f8;
margin-bottom: 100rpx;
overflow: auto;
scrollbar-width: none;
.card {
display: flex;
flex-direction: column;
width: 718rpx;
margin: 0 auto;
border-radius: 16rpx;
background: linear-gradient(180deg, #d2eeff -7%, rgba(255, 255, 255, 0) 38%), #ffffff;
box-shadow: 0px -2px 8px 0px rgba(133, 155, 180, 0.4);
padding: 20rpx;
.title {
color: #0d0d26;
font-size: 44rpx;
margin: 10rpx;
padding-bottom: 20rpx;
border-bottom: 2rpx solid #e1e7f2;
}
.info1 {
padding: 20rpx 0;
min-height: 100rpx;
width: 100%;
border-bottom: 2rpx solid #e1e7f2;
.loction {
display: flex;
flex-direction: row;
width: 100%;
justify-content: space-between;
.text {
color: #3d3d3d;
width: 80%;
-webkit-line-clamp: 1;
}
.num {}
}
.coming-time {
margin: 10rpx 0;
display: flex;
flex-direction: row;
color: #3d3d3d;
.label {}
}
.people {
color: #3d3d3d;
.label {}
}
}
.info2 {
padding: 20rpx 0;
min-height: 100rpx;
border-bottom: 2rpx solid #e1e7f2;
.item {
display: flex;
flex-direction: row;
margin: 20rpx 0;
.label {
color: #999a9f;
}
}
}
.time-status {
margin: 20rpx 0;
font-size: 32rpx;
.time {
color: #e30000;
}
}
}
.toolbar-height {
height: 100rpx;
box-sizing: content-box;
}
.toolbar {
position: fixed;
left: 0;
right: 0;
bottom: calc(var(--window-bottom));
z-index: 1;
height: 100rpx;
display: flex;
align-items: center;
justify-content: space-around;
border-top: 1rpx solid #ededed;
border-bottom: 1rpx solid #ededed;
background-color: #fff;
box-sizing: content-box;
.button {
display: flex;
justify-content: center;
align-items: center;
flex: 1;
height: 100%;
font-size: 26rpx;
border-right: 1rpx solid #ccc;
color: #fff;
.concat {
width: 48rpx;
height: 44rpx;
}
.concat-img {
width: 48rpx;
height: 44rpx;
}
}
.primary {
color: #fff;
background: linear-gradient(158deg, #51b6ff -10%, #3775f6 129%);
}
}
}
.popup-root {
padding: 30rpx 30rpx 0;
border-radius: 10rpx 10rpx 0 0;
overflow: hidden;
.title {
font-size: 30rpx;
text-align: center;
margin-bottom: 30rpx;
}
.description {
font-size: 28rpx;
padding: 0 20rpx;
.tips {
color: #444;
margin-bottom: 12rpx;
}
.cell {
display: flex;
justify-content: space-between;
align-items: center;
padding: 15rpx 0;
color: #666;
}
.icon::before {
content: '\e6cd';
font-family: 'erabbit' !important;
font-size: 38rpx;
color: #999;
}
.icon.checked::before {
content: '\e6cc';
font-size: 38rpx;
color: #3775F6;
}
}
.footer {
display: flex;
justify-content: space-between;
padding: 30rpx 0 40rpx;
font-size: 28rpx;
color: #444;
.button {
flex: 1;
height: 72rpx;
text-align: center;
line-height: 72rpx;
margin: 0 20rpx;
color: #444;
border-radius: 72rpx;
border: 1rpx solid #ccc;
}
.primary {
color: #fff;
background-color: #3775F6;
border: none;
}
}
}
</style>

@ -1,392 +0,0 @@
<script setup lang="ts">
import { OrderState } from '@/services/constants'
import { orderStateList } from '@/services/constants'
import { putMemberOrderReceiptByIdAPI } from '@/services/order'
import { deleteMemberOrderAPI } from '@/services/order'
import { getMemberOrderAPI } from '@/services/order'
import { getPayMockAPI, getPayWxPayMiniPayAPI } from '@/services/pay'
import type { OrderItem } from '@/types/order'
import type { OrderListParams } from '@/types/order'
import { onMounted, ref } from 'vue'
import { useMemberStore } from '@/stores'
//
const { safeAreaInsets } = uni.getSystemInfoSync()
const memberStore = useMemberStore()
// porps
const props = defineProps<{
orderState: string
}>()
//
const location = uni.getStorageSync('location')
//
const queryParams: Required<OrderListParams> = {
pageNo: 1,
pageSize: 5,
status: props.orderState,
location: location,
id: memberStore.profile?.id,
}
//
const orderList = ref<OrderItem[]>([])
//
const isLoading = ref(false)
const getMemberOrderData = async () => {
// 退
if (isLoading.value) return
// 退
if (isFinish.value === true) {
return uni.showToast({ icon: 'none', title: '没有更多数据~' })
}
//
isLoading.value = true
//
const res = await getMemberOrderAPI(queryParams)
//
isLoading.value = false
//
orderList.value.push(...res.data.list)
//
if (queryParams.pageNo < res.data.pages) {
//
queryParams.pageNo++
} else {
//
isFinish.value = true
}
}
onMounted(() => {
getMemberOrderData()
})
//
const onOrderPay = async (id: string) => {
if (import.meta.env.DEV) {
//
await getPayMockAPI({ orderId: id })
} else {
// #ifdef MP-WEIXIN
// 1.2.API
// const res = await getPayWxPayMiniPayAPI({ orderId: id })
// await wx.requestPayment(res.result)
// 线 0.01
await getPayMockAPI({ orderId: id })
// #endif
}
//
uni.showToast({ title: '模拟支付成功' })
//
setTimeout(() => {
wx.showModal({
title: '温馨提示',
content: '此交易是模拟支付,您并未付款,不会导致实际购买商品或服务',
confirmText: '知道了',
showCancel: false,
})
}, 2000)
//
const order = orderList.value.find((v) => v.id === id)
order!.orderState = OrderState.DaiFaHuo
}
//
const onOrderConfirm = (id: string) => {
uni.showModal({
content: '为保障您的权益,请收到货并确认无误后,再确认收货',
confirmColor: '#3775F6',
success: async (res) => {
if (res.confirm) {
await putMemberOrderReceiptByIdAPI(id)
uni.showToast({ icon: 'success', title: '确认收货成功' })
//
const order = orderList.value.find((v) => v.id === id)
order!.orderState = OrderState.DaiPingJia
}
},
})
}
//
const onOrderDelete = (id: string) => {
uni.showModal({
content: '你确定要删除该订单?',
confirmColor: '#3775F6',
success: async (res) => {
if (res.confirm) {
await deleteMemberOrderAPI({ ids: [id] })
//
const index = orderList.value.findIndex((v) => v.id === id)
orderList.value.splice(index, 1)
}
},
})
}
//
const isFinish = ref(false)
//
const isTriggered = ref(false)
//
const onRefresherrefresh = async () => {
//
isTriggered.value = true
//
queryParams.pageNo = 1
orderList.value = []
isFinish.value = false
//
await getMemberOrderData()
//
isTriggered.value = false
}
</script>
<template>
<scroll-view
enable-back-to-top
scroll-y
class="orders"
refresher-enabled
:refresher-triggered="isTriggered"
@refresherrefresh="onRefresherrefresh"
@scrolltolower="getMemberOrderData"
>
<view class="card" v-for="order in orderList" :key="order.id">
<!-- 订单信息 -->
<view class="status">
<text class="date">{{ order.createTime }}</text>
<!-- 订单状态文字 -->
<text>{{ orderStateList[order.orderState].text }}</text>
<!-- 待评价/已完成/已取消 状态: 展示删除订单 -->
<text
v-if="order.orderState >= OrderState.DaiPingJia"
class="icon-delete"
@tap="onOrderDelete(order.id)"
></text>
</view>
<!-- 商品信息点击商品跳转到订单详情不是商品详情 -->
<navigator
v-for="item in order.skus"
:key="item.id"
class="goods"
:url="`/pagesOrder/detail/detail?id=${order.id}`"
hover-class="none"
>
<view class="cover">
<image class="image" mode="aspectFit" :src="item.image"></image>
</view>
<view class="meta">
<view class="name ellipsis">{{ item.name }}</view>
<view class="type">{{ item.attrsText }}</view>
</view>
</navigator>
<!-- 支付信息 -->
<view class="payment">
<text class="quantity">{{ order.totalNum }}件商品</text>
<text>实付</text>
<text class="amount"> <text class="symbol">¥</text>{{ order.payMoney }}</text>
</view>
<!-- 订单操作按钮 -->
<view class="action">
<!-- 待付款状态显示去支付按钮 -->
<template v-if="order.orderState === OrderState.DaiFuKuan">
<view class="button primary" @tap="onOrderPay(order.id)"></view>
</template>
<template v-else>
<navigator
class="button secondary"
:url="`/pagesOrder/create/create?orderId=${order.id}`"
hover-class="none"
>
再次购买
</navigator>
<!-- 待收货状态: 展示确认收货 -->
<view
v-if="order.orderState === OrderState.DaiShouHuo"
class="button primary"
@tap="onOrderConfirm(order.id)"
>
确认收货
</view>
</template>
</view>
</view>
<!-- 底部提示文字 -->
<view class="loading-text" :style="{ paddingBottom: safeAreaInsets?.bottom + 'px' }">
{{ isFinish ? '没有更多数据~' : '正在加载...' }}
</view>
</scroll-view>
</template>
<style lang="scss">
//
.orders {
.card {
min-height: 100rpx;
padding: 20rpx;
margin: 20rpx 20rpx 0;
border-radius: 10rpx;
background-color: #fff;
&:last-child {
padding-bottom: 40rpx;
}
}
.status {
display: flex;
align-items: center;
justify-content: space-between;
font-size: 28rpx;
color: #999;
margin-bottom: 15rpx;
.date {
color: #666;
flex: 1;
}
.primary {
color: #ff9240;
}
.icon-delete {
line-height: 1;
margin-left: 10rpx;
padding-left: 10rpx;
border-left: 1rpx solid #e3e3e3;
}
}
.goods {
display: flex;
margin-bottom: 20rpx;
.cover {
width: 170rpx;
height: 170rpx;
margin-right: 20rpx;
border-radius: 10rpx;
overflow: hidden;
position: relative;
.image {
width: 170rpx;
height: 170rpx;
}
}
.quantity {
position: absolute;
bottom: 0;
right: 0;
line-height: 1;
padding: 6rpx 4rpx 6rpx 8rpx;
font-size: 24rpx;
color: #fff;
border-radius: 10rpx 0 0 0;
background-color: rgba(0, 0, 0, 0.6);
}
.meta {
flex: 1;
display: flex;
flex-direction: column;
justify-content: center;
}
.name {
height: 80rpx;
font-size: 26rpx;
color: #444;
}
.type {
line-height: 1.8;
padding: 0 15rpx;
margin-top: 10rpx;
font-size: 24rpx;
align-self: flex-start;
border-radius: 4rpx;
color: #888;
background-color: #f7f7f8;
}
.more {
flex: 1;
display: flex;
align-items: center;
justify-content: center;
font-size: 22rpx;
color: #333;
}
}
.payment {
display: flex;
justify-content: flex-end;
align-items: center;
line-height: 1;
padding: 20rpx 0;
text-align: right;
color: #999;
font-size: 28rpx;
border-bottom: 1rpx solid #eee;
.quantity {
font-size: 24rpx;
margin-right: 16rpx;
}
.amount {
color: #444;
margin-left: 6rpx;
}
.symbol {
font-size: 20rpx;
}
}
.action {
display: flex;
justify-content: flex-end;
align-items: center;
padding-top: 20rpx;
.button {
width: 180rpx;
height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
margin-left: 20rpx;
border-radius: 60rpx;
border: 1rpx solid #ccc;
font-size: 26rpx;
color: #444;
}
.secondary {
color: #3775F6;
border-color: #3775F6;
}
.primary {
color: #fff;
background-color: #3775F6;
border-color: #3775F6;
}
}
.loading-text {
text-align: center;
font-size: 28rpx;
color: #666;
padding: 20rpx 0;
}
}
</style>

@ -1,106 +0,0 @@
<script setup lang="ts">
import { ref } from 'vue'
import OrderList from './components/OrderList.vue'
//
const query = defineProps<{
type: string
}>()
// tabs
const orderTabs = ref([
// { orderState: 0, title: '', isRender: false },
{ orderState: 'PENDING', title: '待接单', isRender: false },
{ orderState: 'UNPROCESSED', title: '待上门/待服务', isRender: false },
{ orderState: 'RECYCLING', title: '回收中', isRender: false },
{ orderState: 'FINISHED', title: '已完成', isRender: false },
{ orderState: 'CANCELED', title: '已取消,可用', isRender: false },
])
//
const activeIndex = ref(orderTabs.value.findIndex((v) => v.orderState === 'PENDING'))
//
orderTabs.value[activeIndex.value].isRender = true
</script>
<template>
<view class="viewport">
<!-- tabs -->
<view class="tabs">
<text
class="item"
v-for="(item, index) in orderTabs"
:key="item.title"
@tap="
() => {
activeIndex = index
item.isRender = true
}
"
>
{{ item.title }}
</text>
<!-- 游标 -->
<view class="cursor" :style="{ left: activeIndex * 20 + '%' }"></view>
</view>
<!-- 滑动容器 -->
<swiper class="swiper" :current="activeIndex" @change="activeIndex = $event.detail.current">
<!-- 滑动项 -->
<swiper-item v-for="item in orderTabs" :key="item.title">
<!-- 订单列表 -->
<OrderList v-if="item.isRender" :order-state="item.orderState" />
</swiper-item>
</swiper>
</view>
</template>
<style lang="scss">
page {
height: 100%;
overflow: hidden;
}
.viewport {
height: 100%;
display: flex;
flex-direction: column;
background-color: #fff;
}
// tabs
.tabs {
display: flex;
justify-content: space-around;
line-height: 60rpx;
margin: 0 10rpx;
background-color: #fff;
box-shadow: 0 4rpx 6rpx rgba(240, 240, 240, 0.6);
position: relative;
z-index: 9;
.item {
flex: 1;
text-align: center;
padding: 20rpx;
font-size: 28rpx;
color: #262626;
}
.cursor {
position: absolute;
left: 0;
bottom: 0;
width: 20%;
height: 6rpx;
padding: 0 50rpx;
background-color: #3775F6;
/* 过渡效果 */
transition: all 0.4s;
}
}
// swiper
.swiper {
background-color: #f7f7f8;
}
</style>

@ -1,115 +0,0 @@
<script setup lang="ts">
import { useGuessList } from '@/composables'
import { onLoad } from '@dcloudio/uni-app'
//
const query = defineProps<{
id: string
}>()
//
const { guessRef, onScrolltolower } = useGuessList()
//
onLoad(() => {
wx.showModal({
title: '温馨提示',
content: '此交易是模拟支付,您并未付款,不会导致实际购买商品或服务',
confirmText: '知道了',
showCancel: false,
})
})
</script>
<template>
<scroll-view enable-back-to-top class="viewport" scroll-y @scrolltolower="onScrolltolower">
<!-- 订单状态 -->
<view class="overview">
<view class="status icon-checked">模拟支付成功</view>
<view class="tips">提示: 本小程序仅为教学演示用途并未实际支付或购买商品或服务</view>
<view class="buttons">
<navigator
hover-class="none"
class="button navigator"
url="/pages/index/index"
open-type="switchTab"
>
返回首页
</navigator>
<navigator
hover-class="none"
class="button navigator"
:url="`/pagesOrder/detail/detail?id=${query.id}`"
open-type="redirect"
>
查看订单
</navigator>
</view>
</view>
<!-- 猜你喜欢 -->
<XtxGuess ref="guessRef" />
</scroll-view>
</template>
<style lang="scss">
page {
display: flex;
flex-direction: column;
height: 100%;
overflow: hidden;
}
.viewport {
background-color: #f7f7f8;
}
.overview {
line-height: 1;
padding: 50rpx 0;
color: #fff;
background-color: #3775F6;
.tips {
width: 70%;
font-size: 24rpx;
text-align: center;
line-height: 1.5;
margin: 60rpx auto;
}
.status {
font-size: 36rpx;
font-weight: 500;
text-align: center;
}
.status::before {
display: block;
font-size: 110rpx;
margin-bottom: 20rpx;
}
.buttons {
height: 60rpx;
line-height: 60rpx;
display: flex;
justify-content: center;
align-items: center;
margin-top: 60rpx;
}
.button {
text-align: center;
margin: 0 10rpx;
font-size: 28rpx;
color: #fff;
&:first-child {
width: 200rpx;
border-radius: 64rpx;
border: 1rpx solid #fff;
}
}
}
</style>

@ -2,7 +2,7 @@
* @Author:
* @Date: 2024-01-04 12:54:56
* @LastEditors:
* @LastEditTime: 2024-03-18 09:53:00
* @LastEditTime: 2024-03-22 09:37:01
* @FilePath: /app-nx-personal/src/services/constants.ts
* @Description: ,`customMade`, koroFileHeader : https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
@ -21,67 +21,6 @@ export enum OrderState {
/** 已取消 */
YiQuXiao = 6,
}
/** 订单状态列表 */
export const orderStateList = [
{ id: 0, text: '' },
{ id: 1, text: '待付款' },
{ id: 2, text: '待发货' },
{ id: 3, text: '待收货' },
{ id: 4, text: '待评价' },
{ id: 5, text: '已完成' },
{ id: 6, text: '已取消' },
]
/** 订单状态列表 */
export const categoryListDefault = [
{
id: '1',
code: 'SPHS2024030500001',
name: '旧衣服',
desc: '旧衣服回收不浪费',
weightNum: '',
icon: 'http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-05-06/4b02f01f-a365-4b6c-9f7a-8b0f591dda02.png?quality=95&imageView',
},
{
id: '2',
code: 'SPHS2024030500002',
name: '家用电器',
desc: '旧衣服回收不浪费',
weightNum: '',
icon: 'http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-05-06/9660870d-6a59-4624-8064-b3a8cbf50d5c.png?quality=95&imageView',
},
{
id: '3',
code: 'SPHS2024030500003',
name: '废纸废书',
desc: '旧衣服回收不浪费',
weightNum: '',
icon: 'http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-05-06/7d19752c-baff-49b6-bd02-5ece1d729214.png?quality=95&imageView',
},
{
id: '4',
code: 'SPHS2024030500004',
name: '废金属',
desc: '旧衣服回收不浪费',
weightNum: '',
icon: 'http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-05-06/4ff20b9e-8150-4bd3-87a3-0cd6766938dd.png?quality=95&imageView',
},
{
id: '5',
code: 'SPHS2024030500005',
name: '废玻璃',
desc: '旧衣服回收不浪费',
weightNum: '',
icon: 'http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-05-06/d9ee4919-0d2c-4383-9916-2dd25f12610c.png?quality=95&imageView',
},
{
id: '6',
code: 'SPHS2024030500006',
name: '废塑料',
desc: '旧衣服回收不浪费',
weightNum: '',
icon: 'http://yjy-xiaotuxian-dev.oss-cn-beijing.aliyuncs.com/picture/2021-05-06/d9ee4919-0d2c-4383-9916-2dd25f12610c.png?quality=95&imageView',
},
]
export const weightMenuList = [
{
val: 'I',
@ -97,8 +36,8 @@ export const weightMenuList = [
},
]
// 文件路径
// export const serviceDomain = 'https://nxhs.cjyx.cc'
export const serviceDomain = 'http://222.71.165.188:8808'
export const serviceDomain = 'https://nxhs.cjyx.cc'
// export const serviceDomain = 'http://222.71.165.188:8808'
export const storage_userInfo = {
userType: {

Loading…
Cancel
Save