From 1dcbd2046b8869541cc8e6cf706d6a60a96220e3 Mon Sep 17 00:00:00 2001
From: 1154079537 <1154079537@qq.com>
Date: Thu, 6 Jun 2024 18:26:47 +0800
Subject: [PATCH] 1

---
 pages/index/index - 副本.vue | 898 -----------------------------------
 pages/index/test.vue         | 349 --------------
 pages/my/my.vue              |  12 +-
 pagesOrder/order/order.vue   |  20 +-
 pagesOrder/settle/settle.vue |  28 +-
 static/icon/back.webp        | Bin 0 -> 1084 bytes
 6 files changed, 40 insertions(+), 1267 deletions(-)
 delete mode 100644 pages/index/index - 副本.vue
 delete mode 100644 pages/index/test.vue
 create mode 100644 static/icon/back.webp

diff --git a/pages/index/index - 副本.vue b/pages/index/index - 副本.vue
deleted file mode 100644
index 676697a..0000000
--- a/pages/index/index - 副本.vue	
+++ /dev/null
@@ -1,898 +0,0 @@
-<template>
-	<view class="content">
-		<up-navbar placeholder style="z-index: 10080;">
-			<template #left>
-				<view style="font-size: 30rpx;font-weight: bold;" @click="test">惠农批发 </view>
-			</template>
-		</up-navbar>
-		<view class="navbar">
-			<view style="width: 400rpx;">
-				<up-search placeholder="请输入商品" @search="searchKeyword" @clear="searchKeyword" v-model="keyword"
-					:showAction="false"></up-search>
-			</view>
-			<view class="nav-item" @click="navTo('/pages/cart/cart')">
-				<image src="@/static/tab/ba.png"></image>
-				<text>购物车</text>
-			</view>
-			<view class="nav-item" @click="navTo('/pagesOrder/order/order?type=0')">
-				<image src="@/static/tab/da.png"></image>
-				<text>我的订单</text>
-			</view>
-			<view class="nav-item" @click="navTo('/pages/my/my')">
-				<image src="@/static/tab/ca.png"></image>
-				<text>个人中心</text>
-			</view>
-		</view>
-		<view class='headScoll' ref='headscroll' :style="{height:isScroll?'0':'200rpx'}">
-			<scroll-view class="head-view" scroll-x @scrolltolower="getgoodClassList(0)">
-				<view class="list">
-					<view class="item" :class="{'item-active': topActive===item.id}"
-						v-for="(item, index) in goodClassList" :key="index" @click="changeOne(item, index)">
-						<view class="c-img"><up-image height="100rpx" width="100rpx" :src="item.pic"></up-image></view>
-						<view class="c-text u-line-1">{{item.name}}</view>
-					</view>
-					<view class="item" style="width: 80rpx;height: 20rpx;">
-					</view>
-				</view>
-			</scroll-view>
-			<view class="r-btn" @click="show=1">
-				<view>全</view>
-				<view>部</view>
-				<up-icon name="list"></up-icon>
-			</view>
-		</view>
-		<viewPopup nav v-if="show===1" @close="show=0">
-			<view class="cateOne">
-				<view class="head-title">全部分类</view>
-				<scroll-view scroll-y style="height: 600rpx;">
-					<view class="list">
-						<view class="item" :class="{'item-active': topActive===item.id}"
-							v-for="(item, index) in goodClassList" :key="index" @click="changeOne(item, index)">
-							<view class="c-img"><up-image height="100rpx" width="100rpx" :src="item.pic"></up-image>
-							</view>
-							<view class="c-text u-line-1">{{item.name}}</view>
-						</view>
-					</view>
-				</scroll-view>
-			</view>
-		</viewPopup>
-		<view class="scroll-box">
-			<scroll-view class="left" scroll-y @scrolltolower="getgoodClassList(topActive)">
-				<view class="item u-line-1" :class="{'item-active': leftActive===item.id}"
-					v-for="(item, index) in goodClassTow" :key="index" @click="changeTwo(item, index)">{{item.name}}
-				</view>
-				<view style="width: 100%;height: 450rpx;"></view>
-			</scroll-view>
-			<view class="right">
-				<view class="classify">
-					<scroll-view style="height: 90rpx;" scroll-x @scrolltolower="getgoodClassList(leftActive)">
-						<view class="classify-list">
-							<view class="classify-list-item u-line-1" :class="{'item-active': rightActive===item.id}"
-								v-for="(item, index) in goodClassThree" :key="index" @click="changeThree(item, index)">
-								{{item.name}}
-							</view>
-							<view style="width: 70rpx;flex-shrink: 0;"></view>
-						</view>
-					</scroll-view>
-					<view class="done" @click="show=2">
-						<up-icon name="arrow-down"></up-icon>
-					</view>
-					<view class="order-by">
-						<view class="item" :class="{'order-active': where.order==''}" @click="changeOrder('')">综合</view>
-						<view class="item" :class="{'order-active': where.order=='desc'||where.order=='asc'}"
-							@click="changeOrder(where.order=='asc'?'desc':'asc')">价格</view>
-						<view class="item" :class="{'order-active': where.order=='sales'}"
-							@click="changeOrder('sales')">销量</view>
-					</view>
-				</view>
-				<viewPopup v-if="show===2" @close="show=0">
-					<view class="cateOne">
-						<scroll-view scroll-y style="height: 230rpx;" @scrolltolower="getgoodClassList(leftActive)">
-							<view class="classify-list">
-								<view class="classify-list-item u-line-1"
-									:class="{'item-active': rightActive===item.id}"
-									v-for="(item, index) in goodClassThree" :key="index"
-									@click="changeThree(item, index)">
-									{{item.name}}
-								</view>
-							</view>
-						</scroll-view>
-					</view>
-				</viewPopup>
-				<scroll-view class="list" id='drag_area' style="overscroll-behavior: none;" @scroll="hideHeadView"
-					scroll-y @scrolltolower="loadMoreGood">
-					<view class="shop-item" v-for="(item, index) in goodList" :key="item.id"
-						@click="openGoodPopup(item)">
-						<view class="shop-img">
-							<up-image width="120rpx" height="120rpx" :src="item.image"></up-image>
-						</view>
-						<view class="shop-content">
-							<view class="title">
-								<view class="name u-line-2">{{item.store_name}}</view>
-								<view class="tip u-line-1">
-									<text>{{item.spec}}</text>
-									<!-- <text>{{item.brand_name}}|</text> -->
-									<!-- <text>{{item.class_name}}|</text> -->
-									<!-- <text>{{item.unit_name}}</text> -->
-								</view>
-							</view>
-							<view class="price-btn">
-								<view class="price">¥{{item.price}}</view>
-								<view class="btn">
-									<u--icon name="plus-circle-fill" size="20" color="#20b128"></u--icon>
-								</view>
-							</view>
-						</view>
-					</view>
-					<view style="width: 100%;height: 350rpx;"></view>
-				</scroll-view>
-			</view>
-		</view>
-		<view class="fiexd-btn-box">
-			<view class="price-info">
-				<view class="row">
-					<view>合计</view>
-					<view class="price">¥<text style="font-size: 36rpx;">{{cartInfo.total_price}}</text></view>
-				</view>
-				<!-- <view class="row">
-          <view style="color: #777;">原价 ¥50.00</view>
-          <view class="price">优惠 ¥0.00</view>
-        </view> -->
-			</view>
-			<view class="btn">
-				<up-button color="#20b128" :disabled="cartInfo.count==0" @click="settleAccounts">结算</up-button>
-			</view>
-			<view class="cart" @click="navTo('/pages/cart/cart')">
-				<image src="@/static/icon/cart.png"></image>
-				<view class="badge">{{cartInfo.count}}</view>
-			</view>
-		</view>
-
-		<goodPopup ref="goodRef" :show="showGoodPopup" @close="showGoodPopup=false" @change="changeGood" />
-	</view>
-</template>
-
-<script setup>
-	import {
-		onLoad,
-		onShow
-	} from "@dcloudio/uni-app"
-	import {
-		reactive,
-		ref,
-		onMounted
-	} from "vue"
-	import {
-		goodListApi,
-		goodClassListApi
-	} from "@/api/good.js"
-	import {
-		cartCreateApi,
-		cartChangeApi,
-		cartListApi
-	} from "@/api/cart.js"
-	import viewPopup from "@/components/viewPopup.vue"
-	import goodPopup from "@/components/goodPopup.vue"
-	import useCartStore from "@/store/cart.js"
-	import {
-		getCurrentInstance
-	} from 'vue';
-
-	import useUserStore from "@/store/user";
-	const userStore = useUserStore();
-
-
-
-	const test = () => {
-		uni.navigateTo({
-			url: '/pageQuota/quotation/index'
-		})
-	}
-
-
-
-
-
-	/*商品列表滚动隐藏头部导航 */
-	const instance = getCurrentInstance(); // 获取组件实例
-	const targetHeight = ref(0)
-	const isScroll = ref(false)
-	let lastScollTop = 0
-	const hideHeadView = (e) => {
-		if (e.detail.scrollTop <= 0 || e.detail.scrollTop >= targetHeight.value) return
-		isScroll.value = e.detail.scrollTop > lastScollTop
-		lastScollTop = e.detail.scrollTop
-
-	}
-	/*商品列表滚动隐藏头部导航结束 */
-
-	const cartStore = useCartStore();
-	const show = ref(0);
-	const topActive = ref(0);
-	const changeOne = async (item, index) => {
-		topActive.value = item.id;
-		show.value = 0;
-		goodClassTow.value = item?.children || [];
-		goodClassThree.value = goodClassTow.value[0]?.children || [];
-		leftActive.value = goodClassTow.value[0]?.id || '';
-		rightActive.value = goodClassThree.value[0]?.id || '';
-		getGoodList();
-		if (!item.isLoading && item.id) getgoodClassList(topActive.value); // 判断是否加载过数据, 加载过则不进行加载,节约资源
-	}
-
-	const leftActive = ref(0);
-	const changeTwo = (item, index) => {
-		leftActive.value = item.id;
-		show.value = 0;
-		goodClassThree.value = item?.children || [];
-		rightActive.value = goodClassThree.value[0]?.id || '';
-		getGoodList();
-		if (!item.isLoading && item.id) getgoodClassList(leftActive.value, 1); // 判断是否加载过数据, 加载过则不进行加载,节约资源
-	}
-
-	const rightActive = ref(0);
-	const changeThree = (item, index) => {
-		rightActive.value = item.id;
-		show.value = 0;
-		getGoodList();
-	}
-
-	const addCart = (id, cart_num) => { //加入购物车
-		cartCreateApi({
-			cart_num: cart_num,
-			is_new: 0, // 是否直接购买0否1是
-			goods_id: id
-		}).then(res => {
-			getCartList();
-		}).catch(err => {
-			console.log(err);
-			uni.$u.toast('添加失败')
-		})
-	}
-
-	const keyword = ref('');
-
-	const searchKeyword = () => {
-		where.value.name = keyword.value;
-		getGoodList();
-	}
-
-	const changeOrder = (order) => {
-		console.log('排序', order);
-		where.value.order = order;
-		getGoodList();
-	}
-
-	const where = ref({
-		page_no: 1,
-		page_size: 25,
-		name: '',
-		order: ''
-	})
-	const loading = ref(true);
-	const goodList = ref([]);
-	const getGoodList = (loadmore = false) => {
-		loading.value = true;
-		let class_id = rightActive.value || leftActive.value || topActive.value || '';
-		let class_all = '';
-		// 若分类没有选中时,则直接查询上一级分类
-		if (rightActive.value == '') class_all = leftActive.value;
-		if (leftActive.value == '') class_all = topActive.value;
-		if (topActive.value == '') class_all = '';
-		if (class_all) class_id = ""; //只能带其中一个
-		if (loadmore) where.value.page_no++;
-		else where.value.page_no = 1;
-		goodListApi({
-			...where.value,
-			class_all: class_all,
-			class: class_id
-		}).then(res => {
-			if (loadmore) goodList.value.push(...res.data.lists);
-			else goodList.value = res.data.lists;
-		})
-	}
-
-	// 商品列表触底
-	const loadMoreGood = () => {
-		console.log('触底了');
-		getGoodList(true);
-	}
-
-	const goodClassList = ref([]); // 一级分类
-	const goodClassTow = ref([]); // 二级分类
-	const goodClassThree = ref([]); // 三级分类
-	const classMap = new Map();
-	const getgoodClassList = (pid = 0, three = 0) => {
-		let page_no = classMap.get(pid) || 1;
-		console.log(classMap.get(pid));
-		goodClassListApi({
-			pid: pid,
-			page_no: page_no,
-			page_size: 30,
-			three: three
-		}).then(res => {
-			if (pid == 0) { // 加载一级分类时设置全部分类
-				if (!res.data?.lists?.length) return;
-				res.data?.lists?.unshift({
-					id: "",
-					name: "全部",
-					pic: "https://lihai001.oss-cn-chengdu.aliyuncs.com/def/35adb202404271727457954.png",
-					children: []
-				})
-				res.data.lists = res.data.lists.map(item => {
-					if (!item.children) item.children = [];
-					item.children?.unshift({
-						id: "",
-						pid: item.id, //子分类的全部选项其实就是它本身
-						name: "全部",
-					})
-					item.children = item.children.map(t => {
-						if (!t.children) t.children = [];
-						t.children?.unshift({
-							id: "",
-							pid: t.id,
-							name: "全部",
-						})
-						return t;
-					})
-					return item;
-				})
-				// 给所有子级分配
-				goodClassList.value = [...goodClassList.value, ...res.data?.lists];
-				goodClassTow.value = goodClassList.value[0]?.children || [];
-				goodClassThree.value = goodClassTow.value[0]?.children || [];
-				topActive.value = goodClassList.value[0]?.id;
-				leftActive.value = goodClassTow.value[0]?.id;
-				rightActive.value = goodClassThree.value[0]?.id;
-			} else {
-				let flag = 1;
-				goodClassList.value.forEach(item => { // 给相应的一级分类添加子菜单
-					if (item.id == pid) {
-						if (!item.children) {
-							item.children = [];
-							item.children.unshift({
-								id: "",
-								pid: item.id,
-								name: "全部",
-							})
-						}
-						item.children = [...item.children, ...res.data.lists];
-						item.isLoading = true;
-						goodClassTow.value = item.children;
-						flag = 0;
-					}
-				})
-				if (flag) goodClassTow.value.forEach(item => { //给响应的二级子分类添加菜单
-					if (item.id == pid) {
-						if (!item.children) {
-							item.children = [];
-							item.children.unshift({
-								id: "",
-								pid: item.id,
-								name: "全部",
-							})
-						}
-						item.children = [...item.children, ...res.data.lists];
-						item.isLoading = true;
-						goodClassThree.value = item.children;
-					}
-				})
-			}
-			page_no++;
-			classMap.set(pid, page_no);
-		})
-	}
-
-	const navTo = (url) => {
-		if (!userStore.token) return uni.showModal({
-			content: '您需要先登录才可使用该功能, 是否前去登录',
-			success: (e) => {
-				if (e.confirm) {
-					userStore.setToken('');
-					userStore.setUserInfo({});
-					uni.navigateTo({
-						url: '/pages/login/login'
-					})
-				} else {
-					userStore.setToken('');
-					userStore.setUserInfo({});
-				}
-			}
-		})
-		uni.navigateTo({
-			url: url
-		})
-	}
-
-	// 选择商品相关
-	const showGoodPopup = ref(false);
-	const goodRef = ref(null);
-	const goodData = ref({});
-	const openGoodPopup = (item) => { // 打开数量/重量弹窗
-		goodData.value = item;
-		goodRef.value.setData(item);
-		showGoodPopup.value = true;
-	};
-	const changeGood = (data) => { // 确定选择商品重量
-		showGoodPopup.value = false;
-		if (!userStore.token) return uni.showModal({
-			content: '您需要先登录才可使用该功能, 是否前去登录',
-			success: (e) => {
-				if (e.confirm) {
-					userStore.setToken('');
-					userStore.setUserInfo({});
-					uni.navigateTo({
-						url: '/pages/login/login'
-					})
-				} else {
-					userStore.setToken('');
-					userStore.setUserInfo({});
-				}
-			}
-		})
-		addCart(data.id, data.cart_num);
-	}
-	// 结算
-	const settleAccounts = () => {
-		uni.navigateTo({
-			url: '/pagesOrder/settle/settle'
-		})
-	}
-
-	// 购物车相关
-	const cartInfo = ref({
-		total_price: '0.00',
-		count: 0
-	})
-	const getCartList = (res) => {
-		cartListApi({
-			page_no: 1,
-			page_size: 100,
-		}).then(res => {
-			cartInfo.value = {
-				total_price: res.data?.extend?.total_price || '0.00',
-				count: res.data?.count || 0
-			}
-			cartStore.setCartList(res.data?.lists.map(item => item.cart_id))
-		})
-	}
-
-	onLoad(() => {
-		getgoodClassList(0);
-		getGoodList();
-
-	})
-	onShow(() => {
-		getCartList();
-	})
-	onMounted(() => {
-		const instance = getCurrentInstance(); // 获取组件实例
-		const getWXDom = () => {
-			let query = uni.createSelectorQuery().in(instance).select("#drag_area");
-			query
-				.fields({
-						size: true,
-						scrollOffset: true,
-					},
-					(data) => {
-						targetHeight.value = data.scrollHeight - data.height
-					}
-				)
-				.exec();
-		}
-		setTimeout(() => {
-			getWXDom()
-		}, 500)
-
-	})
-</script>
-
-<style lang="scss">
-	.content {
-		background-color: #fff;
-	}
-
-	.navbar {
-		padding: 0 20rpx;
-		display: flex;
-		align-items: center;
-		justify-content: space-between;
-		font-size: 22rpx;
-		color: #777;
-
-		.nav-item {
-			display: flex;
-			flex-direction: column;
-			align-items: center;
-			justify-content: center;
-
-			image {
-				height: 40rpx;
-				width: 40rpx;
-			}
-		}
-	}
-
-	.head-view {
-		background-color: #fff;
-		height: 180rpx;
-		width: 750rpx;
-
-		.list {
-			height: 100%;
-			display: flex;
-			align-items: center;
-			padding: 0 20rpx;
-			font-size: 22rpx;
-
-			.item {
-				width: 120rpx;
-				flex-shrink: 0;
-				margin-right: 20rpx;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-
-				.c-img {
-					height: 100rpx;
-					width: 100rpx;
-					flex-shrink: 0;
-					border-radius: 50%;
-					border: 2px solid transparent;
-					overflow: hidden;
-				}
-
-				.c-text {
-					width: 100%;
-					text-align: center;
-					box-sizing: border-box;
-					padding: 2rpx 4rpx 3rpx 4rpx;
-					border-radius: 50rpx;
-					margin-top: 5rpx;
-				}
-			}
-
-			.item-active {
-				.c-img {
-					border: 2px solid #20b128;
-				}
-
-				.c-text {
-					background-color: #20b128;
-					color: #fff;
-				}
-			}
-		}
-	}
-
-	.r-btn {
-		position: absolute;
-		right: 0;
-		top: 0;
-		height: 100%;
-		width: 60rpx;
-		font-size: 24rpx;
-		background-color: #fff;
-		display: flex;
-		flex-direction: column;
-		align-items: center;
-		justify-content: center;
-		box-shadow: -10rpx 0 60rpx 1rpx rgba(0, 0, 0, 0.3);
-	}
-
-	.cateOne {
-		background-color: #fff;
-
-		.head-title {
-			color: #666666;
-			font-size: 30rpx;
-			height: 80rpx;
-			line-height: 80rpx;
-			padding-left: 30rpx;
-		}
-
-		.list {
-			padding: 20rpx 20rpx;
-			font-size: 22rpx;
-			display: grid;
-			grid-template-columns: repeat(5, 1fr);
-			justify-content: center;
-			grid-gap: 20rpx;
-
-
-			.item {
-				width: 120rpx;
-				margin: 0 auto;
-				display: flex;
-				flex-direction: column;
-				align-items: center;
-
-				.c-img {
-					height: 100rpx;
-					width: 100rpx;
-					flex-shrink: 0;
-					border-radius: 50%;
-					border: 2px solid transparent;
-					overflow: hidden;
-				}
-
-				.c-text {
-					width: 100%;
-					text-align: center;
-					box-sizing: border-box;
-					padding: 2rpx 4rpx 3rpx 4rpx;
-					border-radius: 50rpx;
-					margin-top: 5rpx;
-				}
-			}
-
-			.item-active {
-				.c-img {
-					border: 2px solid #20b128;
-				}
-
-				.c-text {
-					background-color: #20b128;
-					color: #fff;
-				}
-			}
-		}
-
-		.classify-list {
-			padding: 20rpx 30rpx;
-			font-size: 22rpx;
-			display: grid;
-			grid-template-columns: repeat(3, 1fr);
-			justify-content: center;
-			grid-gap: 20rpx;
-
-			.classify-list-item {
-				flex-shrink: 0;
-				text-align: center;
-				width: 150rpx;
-				height: 42rpx;
-				line-height: 42rpx;
-				background: #F6F6F6;
-				border-radius: 22rpx 22rpx 22rpx 22rpx;
-				border: 1rpx solid transparent;
-			}
-
-			.item-active {
-				border: 1rpx solid #20b128;
-				color: #20b128;
-				background-color: rgba(#20b128, 0.1);
-			}
-		}
-	}
-
-	.scroll-box {
-		// background-color: red;
-		display: flex;
-
-		.left {
-			height: calc(100vh - var(--window-top) - var(--window-bottom) - 300rpx);
-			/* #ifdef H5 */
-			height: calc(100vh - 44px - 100rpx);
-			/* #endif */
-			width: 170rpx;
-			box-sizing: border-box;
-			background-color: #f6f6f6;
-			font-size: 24rpx;
-
-			.item {
-				height: 96rpx;
-				line-height: 96rpx;
-				text-align: center;
-			}
-
-			.item-active {
-				background-color: #fff;
-				position: relative;
-				color: #20b128;
-
-				&::before {
-					content: '';
-					background-color: #20b128;
-					width: 6rpx;
-					height: 48rpx;
-					border-radius: 10rpx;
-					position: absolute;
-					left: 0;
-					top: 50%;
-					transform: translate(0, -50%);
-				}
-			}
-		}
-
-		.right {
-			height: calc(100vh - var(--window-top) - 300rpx);
-			/* #ifdef H5 */
-			height: calc(100vh - 96px + 20rpx);
-			/* #endif */
-			width: 580rpx;
-			box-sizing: border-box;
-			position: relative;
-			overflow: hidden;
-
-			.classify {
-				height: 150rpx;
-				background-color: #fff;
-				border-bottom: 1rpx solid #f6f6f6;
-				position: relative;
-				font-size: 24rpx;
-
-				.classify-list {
-					display: flex;
-					padding: 20rpx;
-
-					.classify-list-item {
-						flex-shrink: 0;
-						text-align: center;
-						width: 108rpx;
-						height: 42rpx;
-						line-height: 42rpx;
-						background: #F6F6F6;
-						border-radius: 22rpx 22rpx 22rpx 22rpx;
-						margin-right: 20rpx;
-						border: 1rpx solid transparent;
-					}
-
-					.item-active {
-						border: 1rpx solid #20b128;
-						color: #20b128;
-						background-color: rgba(#20b128, 0.1);
-					}
-				}
-
-				.done {
-					height: 90rpx;
-					width: 60rpx;
-					position: absolute;
-					top: 0;
-					right: 0;
-					display: flex;
-					justify-content: center;
-					align-items: center;
-					background-color: #fff;
-				}
-
-				.order-by {
-					display: flex;
-					justify-content: flex-end;
-					align-items: center;
-
-					.item {
-						padding-right: 20rpx;
-					}
-
-					.order-active {
-						color: #20b128;
-					}
-				}
-			}
-
-			.list {
-				height: calc(100vh - var(--window-top) - 400rpx);
-				/* #ifdef H5 */
-				height: calc(100vh - 44px - 200rpx);
-
-				/* #endif */
-				.shop-item {
-					padding: 20rpx;
-					border-bottom: 1rpx solid #f6f6f6;
-					background-color: #fff;
-					display: flex;
-
-					.shop-img {
-						height: 120rpx;
-						width: 120rpx;
-						margin-right: 20rpx;
-						border-radius: 14rpx;
-						overflow: hidden;
-					}
-
-					.shop-content {
-						width: 380rpx;
-						display: flex;
-						flex-direction: column;
-						justify-content: space-between;
-
-						.title {
-							.name {
-								font-size: 28rpx;
-							}
-
-							.tip {
-								color: #999;
-								font-size: 24rpx;
-								margin: 2rpx 0;
-							}
-						}
-
-						.price {
-							font-size: 30rpx;
-							font-weight: bold;
-							color: #F55726;
-						}
-
-						.price-btn {
-							display: flex;
-							justify-content: space-between;
-
-							.btn {
-								display: flex;
-								align-items: center;
-
-								.num {
-									width: 60rpx;
-									text-align: center;
-								}
-							}
-						}
-					}
-				}
-			}
-		}
-	}
-
-	.fiexd-btn-box {
-		box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.1);
-		height: 140rpx;
-		height: calc(constant(safe-area-inset-bottom) + 140rpx);
-		/* 适用于iOS设备 */
-		height: calc(env(safe-area-inset-bottom) + 140rpx);
-		/* 适用于Android设备 */
-		padding-top: 40rpx;
-
-		.price-info {
-			.row {
-				display: flex;
-				font-size: 26rpx;
-				align-items: center;
-
-				&>view {
-					margin-right: 15rpx;
-				}
-
-				.price {
-					color: #F55726;
-				}
-			}
-		}
-
-		.btn {
-			width: 200rpx;
-		}
-
-		.cart {
-			position: absolute;
-			top: -40rpx;
-			left: 40rpx;
-
-			image {
-				width: 80rpx;
-				height: 80rpx;
-			}
-
-			.badge {
-				position: absolute;
-				top: 0;
-				right: 0;
-				background-color: #F55726;
-				color: #fff;
-				border-radius: 50%;
-				width: 26rpx;
-				height: 26rpx;
-				text-align: center;
-				line-height: 26rpx;
-				font-size: 18rpx;
-			}
-		}
-	}
-
-	.headScoll {
-		position: relative;
-		overflow: hidden;
-		transition: 400ms;
-	}
-</style>
\ No newline at end of file
diff --git a/pages/index/test.vue b/pages/index/test.vue
deleted file mode 100644
index cfea4a8..0000000
--- a/pages/index/test.vue
+++ /dev/null
@@ -1,349 +0,0 @@
-<template>
-	<view class="multiple">
-		<view class="multiple-search">
-			<u-search v-model="queryParams.name" :animation="true" :showAction="false" bgColor="#f6f6f6"
-				placeholder="请输入门店"></u-search>
-			<view class="multiple-search-txt" @click.native="handleSearch">搜索</view>
-		</view>
-
-		<view class="multiple-card">
-			<scroll-view :scroll-y="true" style="height:100%;" @scrolltolower="onReachBottom">
-				<view class="multiple-card-wrap" style="padding-top: 12rpx;">
-					<block v-for="(item,indx) in shopList" :key="indx">
-						<view class="multiple-card-item" :class="{active:currShop == item.id}"
-							@click="onChooseShop(item.id)">
-							<view class="multiple-card-item-left">
-								<view class="multiple-card-item-left-title">{{item.name}}</view>
-								<view class="multiple-card-item-left-tag">
-									<text class="yellow" v-if="item.is_store == 1">可自提</text>
-									<text class="green" v-if="item.is_send == 1">可配送</text>
-								</view>
-								<view class="multiple-card-item-left-info">
-									<u-image src="../../multipleShop/images/location_small.webp" width="24rpx"
-										height="24rpx" />
-									<text>{{item.detailed_address || '-'}}</text>
-								</view>
-								<view class="multiple-card-item-left-info">
-									<u-image src="../../multipleShop/images/time.webp" width="24rpx" height="24rpx" />
-									<text
-										v-if="item.day_start && item.day_end">{{item.day_start + '-' + item.day_end}}</text>
-									<text v-else>9:00-18:00</text>
-								</view>
-							</view>
-							<view class="multiple-card-item-right">
-								<view class="multiple-card-item-right-distance">距离{{parseDistance(item.distance)}}
-								</view>
-								<view class="multiple-card-item-right-icon">
-									<view style="margin-right: 30rpx;" @click.stop="onPhoneCall(item.phone)">
-										<u-image src="../../multipleShop/images/phone.webp" width="48rpx"
-											height="48rpx" />
-									</view>
-									<view @click.stop="onNavgation(item)">
-										<u-image src="../../multipleShop/images/location.webp" width="48rpx"
-											height="48rpx" />
-									</view>
-								</view>
-							</view>
-						</view>
-					</block>
-				</view>
-
-				<u-loadmore :status="status" iconColor="#666" />
-			</scroll-view>
-		</view>
-	</view>
-</template>
-
-<script setup>
-	import {
-		reactive,
-		ref,
-	} from "vue";
-	import {
-		shopListApi
-	} from "@/api/multipleShop.js";
-	import {
-		onLoad,
-		onShow
-	} from "@dcloudio/uni-app";
-
-	const currShop = ref(''); // 选择门店
-	const shopList = ref([]); // 门店列表
-	const status = ref(''); // 滚动状态
-
-	// 查询参数
-	const queryParams = reactive({
-		longitude: '',
-		latitude: '',
-		phone: '',
-		name: '',
-		page_no: 1,
-		page_size: 6
-	})
-
-	// 初始化
-	onLoad(() => {
-		// 获取定位
-		getLocation();
-	});
-
-	// 门店选择
-	const onChooseShop = (id) => {
-		currShop.value = id;
-
-		setTimeout(() => {
-			uni.reLaunch({
-				url: '/pages/index/index?id=' + id,
-				fail(err) {
-					console.log(err);
-				}
-			})
-		}, 300)
-	}
-
-	// 触底刷新
-	const onReachBottom = () => {
-		getShopList();
-	}
-
-	// 搜索
-	const handleSearch = () => {
-		shopList.value = [];
-		queryParams.page_no = 1;
-		status.value = '';
-		getShopList();
-	}
-
-	// 获取门店
-	const getShopList = () => {
-		if (status.value == 'nomore') return;
-		if (status.value == 'loading') return;
-
-		status.value == 'loading';
-		shopListApi(queryParams).then(res => {
-			let len = res.data.lists;
-			status.value = queryParams.page_size > len ? 'nomore' : 'loadmore';
-			shopList.value = shopList.value.concat(res.data.lists);
-			if (status.value == 'loadmore') queryParams.page_no += 1;
-		})
-	}
-
-	// 门店距离处理
-	const parseDistance = (e) => {
-		if (!e) return '-';
-		if (e > 1) {
-			return (e.toFixed(1)) + 'km';
-		} else {
-			return (e * 1000).toFixed(0) + 'm';
-		}
-	}
-
-	// 拨打门店电话
-	const onPhoneCall = (phone) => {
-		if (!phone) return;
-		uni.makePhoneCall({
-			phoneNumber: phone
-		})
-	}
-
-	// 导航
-	const onNavgation = (item) => {
-		uni.openLocation({
-			latitude: Number(item.latitude),
-			longitude: Number(item.longitude),
-		})
-	}
-
-	// 获取定位
-	const getLocation = () => {
-		let location = uni.getStorageSync('location');
-		if (location) {
-			let [lng, lat] = location.split(',');
-			queryParams.longitude = lng;
-			queryParams.latitude = lat;
-
-			// 加载店铺列表
-			getShopList();
-		} else {
-			uni.getLocation({
-				type: "gcj02",
-				success(res) {
-					queryParams.latitude = res.latitude;
-					queryParams.longitude = res.longitude;
-
-					// 加载店铺列表
-					getShopList();
-
-					// 避免下次再获取
-					uni.setStorageSync('location', `${res.longitude},${res.latitude}`)
-				}
-			})
-		}
-	}
-</script>
-
-
-<style lang="scss">
-	page {
-		background: #FAFAFA;
-	}
-
-	.multiple {
-		padding-bottom: 30rpx;
-
-		.multiple-search {
-			position: sticky;
-			top: 0;
-			z-index: 10;
-			display: flex;
-			height: 90rpx;
-			background-color: #fff;
-			padding: 0 24rpx;
-			box-sizing: border-box;
-
-			.multiple-search-txt {
-				position: absolute;
-				right: 28rpx;
-				top: 50%;
-				z-index: 11;
-				transform: translateY(-50%);
-				width: 110rpx;
-				height: 52rpx;
-				line-height: 52rpx;
-				text-align: center;
-				background: #FFFFFF;
-				border-radius: 30rpx 30rpx 30rpx 30rpx;
-				font-size: 28rpx;
-				color: #20B128;
-			}
-		}
-
-		.multiple-card {
-			height: calc(100vh - 90rpx);
-			padding-bottom: 12rpx;
-
-			.u-loadmore {
-				padding-bottom: 40rpx;
-			}
-
-			.multiple-card-item {
-				display: flex;
-				background: #FFFFFF;
-				border-radius: 16rpx;
-				margin: 0 24rpx 20rpx;
-				padding: 30rpx 0 42rpx 30rpx;
-				overflow: hidden;
-
-				.multiple-card-item-left {
-					width: 70%;
-					border-right: 2rpx solid #F1F1F1;
-
-					.multiple-card-item-left-title {
-						margin-bottom: 14rpx;
-						font-weight: bold;
-						font-size: 28rpx;
-						color: #444444;
-						white-space: nowrap;
-						overflow: hidden;
-						text-overflow: ellipsis;
-					}
-
-					.multiple-card-item-left-tag {
-						display: flex;
-						flex-wrap: wrap;
-						align-items: center;
-						margin-bottom: 16rpx;
-
-						text {
-							width: 90rpx;
-							height: 42rpx;
-							line-height: 42rpx;
-							text-align: center;
-							border-radius: 8rpx;
-							font-size: 24rpx;
-							margin-right: 16rpx;
-							padding: 4rpx 10rpx;
-						}
-
-						.yellow {
-							background-color: #FFF8F1;
-							color: #FFB76D;
-						}
-
-						.green {
-							color: #20B128;
-							background-color: #F2FFF3;
-						}
-					}
-
-					.multiple-card-item-left-info {
-						display: flex;
-						padding-right: 10rpx;
-
-						&:nth-child(1) {
-							margin-bottom: 16rpx;
-						}
-
-						text {
-							font-weight: 400;
-							font-size: 24rpx;
-							color: #777777;
-							margin-left: 4rpx;
-						}
-					}
-				}
-
-				.multiple-card-item-right {
-					display: flex;
-					flex-direction: column;
-					justify-content: center;
-					align-items: center;
-					width: 30%;
-					flex-shrink: 0;
-
-					.multiple-card-item-right-distance {
-						margin-bottom: 20rpx;
-						font-size: 22rpx;
-						color: #777777;
-					}
-
-					.multiple-card-item-right-icon {
-						display: flex;
-						align-items: center;
-					}
-				}
-			}
-
-			.active {
-				position: relative;
-				border: 2rpx solid #20B128;
-
-				&::after {
-					content: "";
-					display: block;
-					position: absolute;
-					right: -34rpx;
-					bottom: -8rpx;
-					width: 0;
-					height: 0;
-					border-left: 50rpx solid transparent;
-					border-right: 50rpx solid transparent;
-					border-bottom: 50rpx solid #20B128;
-					transform: rotate(135deg);
-				}
-
-				&::before {
-					content: "√";
-					display: block;
-
-					position: absolute;
-					right: 10rpx;
-					bottom: 4rpx;
-					color: #fff;
-					z-index: 11;
-					font-weight: bold;
-				}
-			}
-		}
-	}
-</style>
\ No newline at end of file
diff --git a/pages/my/my.vue b/pages/my/my.vue
index 928be91..c3cd4ba 100644
--- a/pages/my/my.vue
+++ b/pages/my/my.vue
@@ -71,7 +71,7 @@
 						<image src="/static/icon/wait.webp">
 						</image>
 						<view class="">待核销</view>
-						<view class="badge" v-if="orderCount.receiving">{{orderCount.receiving}}</view>
+						<view class="badge" v-if="orderCount.waiting">{{orderCount.waiting}}</view>
 					</view>
 
 					<view class="list-item" @click="navTo(2)">
@@ -82,9 +82,10 @@
 					</view>
 
 					<view class="list-item" @click="navTo()">
-						<image src="https://lihai001.oss-cn-chengdu.aliyuncs.com/def/abdcd202404261406199643.png">
+						<image src="/static/icon/back.webp">
 						</image>
-						<view class="">全部订单</view>
+						<view class="">售后/退款</view>
+						<view class="badge" v-if="orderCount.applyRefund">{{orderCount.applyRefund}}</view>
 					</view>
 				</view>
 			</view>
@@ -126,7 +127,8 @@
 	const orderCount = ref({
 		no_pay: 0,
 		receiving: 0,
-		waiting: 0
+		waiting: 0,
+		applyRefund: 0
 	})
 	const getOrderCount = () => {
 		orderCountApi().then(res => {
@@ -136,8 +138,6 @@
 
 	// 返回下单 或者充值
 	const handleBack = (e) => {
-		console.log(userInfo.user_ship);
-
 		if (e > 0) {
 			uni.navigateTo({
 				url: "/pages/charge/charge"
diff --git a/pagesOrder/order/order.vue b/pagesOrder/order/order.vue
index 04c56a3..601263e 100644
--- a/pagesOrder/order/order.vue
+++ b/pagesOrder/order/order.vue
@@ -74,16 +74,16 @@
 		swiperCurrent.value = index;
 	}
 	const tablist = ref([{
-			name: '全部'
-		},
-		{
-			name: '待付款'
-		},
-		{
-			name: '待收货'
-		},
-		// { name: '退款/售后' },
-	]);
+		name: '全部'
+	}, {
+		name: '待付款'
+	}, {
+		name: '待核销'
+	}, {
+		name: '已核销'
+	}, {
+		name: '退款/售后'
+	}]);
 
 	const swiperCurrent = ref(0);
 	const animationfinish = ({
diff --git a/pagesOrder/settle/settle.vue b/pagesOrder/settle/settle.vue
index 9650784..824bfc6 100644
--- a/pagesOrder/settle/settle.vue
+++ b/pagesOrder/settle/settle.vue
@@ -89,12 +89,26 @@
 		</view>
 		<view class="m-card good-info">
 			<view class="head-title">支付方式</view>
+
+			<view class="row">
+				<view class="icon-text">
+					<up-icon name="weixin-circle-fill" color="#20b128" size="22" style="margin-right: 10rpx;"></up-icon>
+					<text style="margin-left: 20rpx;font-size: 26rpx;">微信支付</text>
+				</view>
+				<view class="icon" @click="onChoosePaytype(1)">
+					<image v-if="payType == 1" src="@/static/icon/check.png" />
+					<image v-if="payType != 1 || payType == 3 || !payType" src="@/static/icon/n-check.png" />
+				</view>
+			</view>
+
 			<view class="row">
 				<view class="icon-text"><up-icon name="weixin-circle-fill" color="#20b128" size="22"
-						style="margin-right: 10rpx;"></up-icon> 微信支付</view>
-				<view class="icon">
-					<image v-if="true" src="@/static/icon/check.png"></image>
-					<image v-else src="@/static/icon/n-check.png"></image>
+						style="margin-right: 10rpx;"></up-icon>
+					<text style="margin-left: 20rpx;font-size: 26rpx;">余额支付</text>
+				</view>
+				<view class="icon" @click="onChoosePaytype(3)">
+					<image v-if="payType == 3" src="@/static/icon/check.png" />
+					<image v-if="payType != 3 || payType == 1 || !payType" src="@/static/icon/n-check.png" />
 				</view>
 			</view>
 		</view>
@@ -167,7 +181,12 @@
 
 	const isAddress = ref(false);
 	const toastAddressShow = ref(false);
+	const payType = ref('');
 
+	const onChoosePaytype = (e) => {
+		console.log(e);
+		payType.value = e;
+	}
 
 	// 选择地址
 	const addressRef = ref(null);
@@ -496,6 +515,7 @@
 
 			.icon-text {
 				display: flex;
+				align-items: center;
 			}
 
 			.icon {
diff --git a/static/icon/back.webp b/static/icon/back.webp
new file mode 100644
index 0000000000000000000000000000000000000000..62e9dadde81452642795cb54fc57d22d805b12ce
GIT binary patch
literal 1084
zcmWIYbaOLdVPFV%bqWXzu!!JdU|=u+VtX+1baoCn!3g9sFrEOBEI_H;ypp0IcPE92
z$S4K&2Mmlr2nLDC#RU)+RuZV{+ck*V%eq)q;1}dfNi9wWD)|7!Dn&rcfo>83vPIG%
zYz+`Q3BtAkvCB&eN`PttK<uKBAZH*u1<2M&M`9--v6BmmK<aydYHV_IN<nsk0LXVd
zsd=HnK$-)HWf+PXf*9NxoIw5u@_`_K5d(w8R|W>=2?(*InG6iuTNxN6ZXv`}7BDdI
zw=ghlJC6`Ugh@eSQ6ktlU~DijrKK@2d|J-Hz#GZHAbf#=fh!s;2PAN~O#vt+19VqD
z5T-NaFr+dlFnBWLF(fnS0a-@CNHt_I1IDnAD-#2QzWo7yf&B{><Vv5s`XgEL&~N@D
z4H`MOw@sW}GUwv|dL5SuxzfKlwuv)di@)<@YFWdgCpUx`b2=Hj*=pD?cuY{eop;+~
z`R<c1#jF@7Z}`8~O0(ioyvu*d9l1+ZoG!7MxmO?NSjuUeUc+M&$vr59zjgI9_i{Aw
z{rH`U_jc{>U$N({=l9<8caI-^o~ym9zo+>0?|+qR>ekKw_AvYV#*eQL&)W3+#f;ni
zbq@~a`>(<Ys(#Iu_??}G3p{(R8~WW=>{`6v`t`@Nq$3{%<T6~IncSXbJJ<8m-+;Bt
zxCLZy?`>VxUwqE;`5X{Y^K+xW_Vvv-cf^%tvUaM!zVk}ro5{6~vc^rRk<*~)XVJcC
z-(`ctCRP+qjCT0D<FUi-8NYUx>AwH5?eFfp3{N*JN0*vD|GxWf-nPKnQvMH**C@aJ
z_WM`4^p86Kygl>gKZ)J(x$@`Dc&p>PUp!n^yodk0-1+Nei5>Fo1;v*w*W3O1Q(gG~
z(2>4Ns}%3KT&n$2v{qQ)TgG+q(%T>JEAL&G^LwA{{C#V4{`7q)iq_b$?{iIG2NqCK
L_oM!gKMMl@^yXm?

literal 0
HcmV?d00001