From 1db31e0ed7e80e646680fc58e94aac26d0cb85e3 Mon Sep 17 00:00:00 2001
From: 1154079537 <1154079537@qq.com>
Date: Mon, 3 Jun 2024 18:25:34 +0800
Subject: [PATCH] =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 api/cart.js                               |   30 +-
 api/good.js                               |    8 +-
 api/multipleShop.js                       |    5 +
 components/goodPopup.vue                  |  260 ++--
 config/app.js                             |    8 +-
 multipleShop/images/circle_bg.png         |  Bin 0 -> 9246 bytes
 multipleShop/images/location.webp         |  Bin 0 -> 1422 bytes
 multipleShop/images/location_small.webp   |  Bin 0 -> 1390 bytes
 multipleShop/images/phone.webp            |  Bin 0 -> 2340 bytes
 multipleShop/images/scan.png              |  Bin 0 -> 2533 bytes
 multipleShop/images/time.png              |  Bin 0 -> 569 bytes
 multipleShop/images/time.webp             |  Bin 0 -> 760 bytes
 multipleShop/index/index.vue              |  214 +++
 multipleShop/orderVerification/index.vue  |  226 +++
 multipleShop/verificationOrder/detail.vue |  119 ++
 multipleShop/verificationOrder/index.vue  |  191 +++
 node_modules/.package-lock.json           |    2 +-
 package-lock.json                         |    2 +-
 pages.json                                |   40 +
 pages/index/index.vue                     | 1604 +++++++++++----------
 pages/index/test.vue                      |  127 ++
 pages/login/login.vue                     |    6 +-
 22 files changed, 1886 insertions(+), 956 deletions(-)
 create mode 100644 api/multipleShop.js
 create mode 100644 multipleShop/images/circle_bg.png
 create mode 100644 multipleShop/images/location.webp
 create mode 100644 multipleShop/images/location_small.webp
 create mode 100644 multipleShop/images/phone.webp
 create mode 100644 multipleShop/images/scan.png
 create mode 100644 multipleShop/images/time.png
 create mode 100644 multipleShop/images/time.webp
 create mode 100644 multipleShop/index/index.vue
 create mode 100644 multipleShop/orderVerification/index.vue
 create mode 100644 multipleShop/verificationOrder/detail.vue
 create mode 100644 multipleShop/verificationOrder/index.vue
 create mode 100644 pages/index/test.vue

diff --git a/api/cart.js b/api/cart.js
index d025b43..e707284 100644
--- a/api/cart.js
+++ b/api/cart.js
@@ -1,33 +1,33 @@
 import request from '@/utils/request';
 
 //添加购物车数量
-export const cartCreateApi = (data)=>{
-  return request.post('/order/cart/create', data);
+export const cartCreateApi = (data) => {
+	return request.post('/order/cart/create', data);
 }
 
 //购物车-调整数量
-export const cartChangeApi = (data)=>{
-  return request.post('/order/cart/change', data);
+export const cartChangeApi = (data) => {
+	return request.post('/order/cart/change', data);
 }
 
 //购物车-清空
-export const cartDeleteApi = (data)=>{
-  return request.post('/order/cart/delete', data);
+export const cartDeleteApi = (data) => {
+	return request.post('/order/cart/delete', data);
 }
 
 //购物车-零售列表
-export const cartListApi = (data)=>{
-  return request.get('/order/cart/list', data, {
-    noAuth: true
-  });
+export const cartListApi = (data) => {
+	return request.get('/order/cart/list', data, {
+		noAuth: true
+	});
 }
 
 //购物车-常买记录
-export const frequentlyPurchaseApi = (data)=>{
-  return request.get('/order/RetailOrder/frequently_purchase', data);
+export const frequentlyPurchaseApi = (data) => {
+	return request.get('/order/order/frequently_purchase', data);
 }
 
 //购物车-零售购物车预检
-export const checkOrderApi = (data)=>{
-  return request.post('/order/RetailOrder/checkOrder', data);
-}
+export const checkOrderApi = (data) => {
+	return request.post('/order/RetailOrder/checkOrder', data);
+}
\ No newline at end of file
diff --git a/api/good.js b/api/good.js
index 84f653b..a61c66a 100644
--- a/api/good.js
+++ b/api/good.js
@@ -1,9 +1,9 @@
 import request from '@/utils/request';
 
-export const goodListApi = (data)=>{
-  return request.get('/goods/goods/lists', data);
+export const goodListApi = (data) => {
+	return request.get('/product/product/lists', data);
 }
 
-export const goodClassListApi = (data)=>{
-  return request.get('/goods/goodsclass/lists', data);
+export const goodClassListApi = (data) => {
+	return request.get('/cate/cate/lists', data);
 }
\ No newline at end of file
diff --git a/api/multipleShop.js b/api/multipleShop.js
new file mode 100644
index 0000000..7a4a0d3
--- /dev/null
+++ b/api/multipleShop.js
@@ -0,0 +1,5 @@
+import request from '@/utils/request';
+
+export const shopListApi = (data) => {
+	return request.get('/store/store/lists', data);
+}
\ No newline at end of file
diff --git a/components/goodPopup.vue b/components/goodPopup.vue
index 160e6fb..55c428e 100644
--- a/components/goodPopup.vue
+++ b/components/goodPopup.vue
@@ -1,152 +1,152 @@
 <template>
-  <up-popup :show="show" closeable round="10" @close="close" :safeAreaInsetBottom="false">
-    <view class="good-popup">
-      <view class="head-title">
-        {{datas.is_bulk ? '称重商品' : '计件商品'}}
-      </view>
-      <view class="row">
-        <view>商品名称</view>
-        <view>{{datas.name || datas.goods_name}}</view>
-      </view>
-      <view class="row">
-        <view>商品单位</view>
-        <view>{{datas.unit_name}}</view>
-      </view>
-      <view class="row">
-        <view>商品价格</view>
-        <view>¥ {{datas.sell}}</view>
-      </view>
-      <view class="row">
-        <view>小计</view>
-        <view style="color: #F55726;">¥ {{subtotal}}</view>
-      </view>
-      <view v-if="datas.is_bulk" class="row">
-        <view>购买重量<text style="color: #F55726;">*</text></view>
-        <view style="flex: 1;">
-          <up-input v-model="datas.cart_num" :cursorSpacing='120' type="number" border="none" placeholder="请输入购买重量"
-            inputAlign="right"></up-input>
-        </view>
-      </view>
-      <view v-else class="row">
-        <view>购买数量<text style="color: #F55726;">*</text></view>
-        <view style="flex: 1;">
-          <up-input v-model="datas.cart_num" :cursorSpacing='120' type="number" border="none" placeholder="请输入购买数量"
-            inputAlign="right">
-            <template #suffix>
-              <span style="color: #20b128;">{{datas.unit_name}}</span>
-            </template>
-          </up-input>
-        </view>
-      </view>
-      <view class="row" style="padding-top: 30px;padding-bottom: 30rpx;">
-        <view style="width: 30%;margin-right: 30rpx;">
-          <up-button @click="close" color="#f7f7f7"><text style="color: #333;">取消</text></up-button>
-        </view>
-        <view style="flex: 1;">
-          <up-button @click="change" color="#20b128">确定</up-button>
-        </view>
-      </view>
-    </view>
-  </up-popup>
+	<up-popup :show="show" closeable round="10" @close="close" :safeAreaInsetBottom="false">
+		<view class="good-popup">
+			<view class="head-title">
+				{{datas.is_bulk ? '称重商品' : '计件商品'}}
+			</view>
+			<view class="row">
+				<view>商品名称</view>
+				<view>{{datas.name || datas.goods_name}}</view>
+			</view>
+			<view class="row">
+				<view>商品单位</view>
+				<view>{{datas.unit_name}}</view>
+			</view>
+			<view class="row">
+				<view>商品价格</view>
+				<view>¥ {{datas.sell}}</view>
+			</view>
+			<view class="row">
+				<view>小计</view>
+				<view style="color: #F55726;">¥ {{subtotal}}</view>
+			</view>
+			<view v-if="datas.is_bulk" class="row">
+				<view>购买重量<text style="color: #F55726;">*</text></view>
+				<view style="flex: 1;">
+					<up-input v-model="datas.cart_num" :cursorSpacing='120' type="number" border="none"
+						placeholder="请输入购买重量" inputAlign="right"></up-input>
+				</view>
+			</view>
+			<view v-else class="row">
+				<view>购买数量<text style="color: #F55726;">*</text></view>
+				<view style="flex: 1;">
+					<up-input v-model="datas.cart_num" :cursorSpacing='120' type="number" border="none"
+						placeholder="请输入购买数量" inputAlign="right">
+						<template #suffix>
+							<span style="color: #20b128;">{{datas.unit_name}}</span>
+						</template>
+					</up-input>
+				</view>
+			</view>
+			<view class="row" style="padding-top: 30px;padding-bottom: 30rpx;">
+				<view style="width: 30%;margin-right: 30rpx;">
+					<up-button @click="close" color="#f7f7f7"><text style="color: #333;">取消</text></up-button>
+				</view>
+				<view style="flex: 1;">
+					<up-button @click="change" color="#20b128">确定</up-button>
+				</view>
+			</view>
+		</view>
+	</up-popup>
 </template>
 
 <script setup>
-  import {
-    computed,
-    ref
-  } from "vue"
-  import {
-    toast
-  } from "../uni_modules/uview-plus";
+	import {
+		computed,
+		ref
+	} from "vue"
+	import {
+		toast
+	} from "../uni_modules/uview-plus";
 
-  const props = defineProps({
-    show: {
-      type: Boolean,
-      default: false
-    },
-  })
+	const props = defineProps({
+		show: {
+			type: Boolean,
+			default: false
+		},
+	})
 
-  const datas = ref({
-    cart_num: ''
-  });
-  const setData = (e) => {
-    datas.value = e;
-  }
+	const datas = ref({
+		cart_num: ''
+	});
+	const setData = (e) => {
+		datas.value = e;
+	}
 
-  const emit = defineEmits(['close', 'change']);
-  const close = () => {
-    emit('close');
-  }
+	const emit = defineEmits(['close', 'change']);
+	const close = () => {
+		emit('close');
+	}
 
-  const change = () => {
-    if (subtotal.value <= 0) {
-      uni.$u.toast('金额不可小于等于0');
-      datas.value.cart_num = '';
-      return;
-    }
-    emit('change', datas.value);
-  }
+	const change = () => {
+		if (subtotal.value <= 0) {
+			uni.$u.toast('金额不可小于等于0');
+			datas.value.cart_num = '';
+			return;
+		}
+		emit('change', datas.value);
+	}
 
-  const subtotal = computed(() => {
-    let num = +datas.value.cart_num || 0;
-    let sell = +datas.value.sell;
-    return Math.ceil(num * sell * 100) / 100
-  })
+	const subtotal = computed(() => {
+		let num = +datas.value.cart_num || 0;
+		let sell = +datas.value.price;
+		return Math.ceil(num * sell * 100) / 100
+	})
 
-  defineExpose({
-    setData
-  })
+	defineExpose({
+		setData
+	})
 </script>
 
 <style scoped lang="scss">
-  .good-popup {
-    padding: 30rpx;
+	.good-popup {
+		padding: 30rpx;
 
-    .head-title {
-      font-weight: bold;
-      text-align: center;
-      margin-bottom: 20rpx;
-    }
+		.head-title {
+			font-weight: bold;
+			text-align: center;
+			margin-bottom: 20rpx;
+		}
 
-    .row {
-      display: flex;
-      align-items: center;
-      justify-content: space-between;
-      padding-bottom: 20rpx;
-      border-bottom: 1rpx solid #f6f6f6;
-      margin-bottom: 20rpx;
+		.row {
+			display: flex;
+			align-items: center;
+			justify-content: space-between;
+			padding-bottom: 20rpx;
+			border-bottom: 1rpx solid #f6f6f6;
+			margin-bottom: 20rpx;
 
-      &:last-child {
-        border-bottom: none;
-        margin-bottom: 0;
-      }
+			&:last-child {
+				border-bottom: none;
+				margin-bottom: 0;
+			}
 
-      .content {
-        .top {
-          display: flex;
+			.content {
+				.top {
+					display: flex;
 
-          view {
-            margin-right: 20rpx;
-          }
-        }
+					view {
+						margin-right: 20rpx;
+					}
+				}
 
-        .bottom {}
-      }
+				.bottom {}
+			}
 
-      image {
-        width: 40rpx;
-        height: 40rpx;
-        flex-shrink: 0;
-      }
-    }
-  }
+			image {
+				width: 40rpx;
+				height: 40rpx;
+				flex-shrink: 0;
+			}
+		}
+	}
 
-  @keyframes disappear {
-    to {
-      opacity: 0;
-      /* 渐隐 */
-      transform: scale(0);
-      /* 缩小 */
-    }
-  }
+	@keyframes disappear {
+		to {
+			opacity: 0;
+			/* 渐隐 */
+			transform: scale(0);
+			/* 缩小 */
+		}
+	}
 </style>
\ No newline at end of file
diff --git a/config/app.js b/config/app.js
index 840fb8a..58b2350 100644
--- a/config/app.js
+++ b/config/app.js
@@ -3,8 +3,9 @@ import store from "@/store/user.js"
 // 环境
 // let env = "dev"
 // let env = "test"
-let env = "prod"
+// let env = "prod"
 // let env = "local"
+let env = "liu";
 
 switch (env) {
 	case 'prod':
@@ -13,8 +14,11 @@ switch (env) {
 	case 'test':
 		BASE_URL = 'https://ceshi-erp.lihaink.cn';
 		break;
+	case 'liu':
+		BASE_URL = 'http://192.168.1.201:8545';
+		break;
 	default:
-		BASE_URL = 'http://192.168.1.22:8546';
+		BASE_URL = 'https://test-multi-store.lihaink.cn';
 }
 
 let HTTP_REQUEST_URL
diff --git a/multipleShop/images/circle_bg.png b/multipleShop/images/circle_bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..1b19efdca8990ccaf2ffaa5357a3507e5f682628
GIT binary patch
literal 9246
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
F{u}07(;EN)

literal 0
HcmV?d00001

diff --git a/multipleShop/images/location.webp b/multipleShop/images/location.webp
new file mode 100644
index 0000000000000000000000000000000000000000..0f6e146e2b2ca9a6fcee8f09a23e3fd95ca7429c
GIT binary patch
literal 1422
zcmWIYbaQKCWnc(*bqWXzu!!JdU|=u+Vtp|3baoCn!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@eSQ6ktl79h!#md3#FX*mM}ZzKbQ@C612u4u3vkig+K1)!7+&|UdJ
zn9h*HkjkLI;K`83kj$V5WElY?)sVpq7{fl(nSoKOe}G$H{<9SmRouH|4$nW&xcmCc
zYfTMTJSM4}v{_Z1uW(xa&c3uX#qGT+o{KhRrG5L9`nNnMzT2}c_qIjf#eKiyt}e?x
z@J4eNbKn2D98F0|K&+tg>F;mvP?nWlVXtq<oOu6n|00f{w^v>Mt^eK~#(nMoYukxg
z^%2Ma$8j`8ifVVs{Qs?Zwd~LP{t)KRtOtWc4>rpDw+?(#X1i1CM6&zE^Y8PSER|mF
zJGQegfJyMwpC1=2kL-|ZS=1xj6yagvHEq!Z9mg2{$VI%DN;O#pr5^JrS-C$~aPsUk
zx+mw9`tMHwm-Oq`!hu!wnVHQQHz)RdUv74*@W{V^%ObKOj{Q~HCBMl;$8m9S&+kna
zcWRyEaN(Sr=$v`@*bY5Mmn22^9^OSEExi}|l(o7hMNBbMNW8u6vw!%PGj7*%Zf`qV
ze$S}Ar~b6=?XtD0*JqgCpP%t-@A>!Q7wg&bZXYvDTC@AE_BrVeC^&K9oVkjUp}oDL
z(vj=uCO}0CQ>VFCD1xF?q;2Qz6`3>HMHv|u)GR!3zv;Hor<3dqe#+->&p5i1li@(_
zk@JZKo_Y(^jKsWO1~IMZR#NATWpv0r96GVPYpcV?OTM>D9J)QW&vkqp;V`>n=EhTd
z7}p-EmeMWW;=Jvp2-8*1>aTH;t^coV4Den3J16vO`BT%JrFo}*>*eYQuWny5S^ijF
z?e0rzv&=fVg$xr@Vvgke-E&RnRlnWcyC0&q$$XWqTw7oMt*fo?`Hz6@Z>RfAw9UT6
z{{F2XZ~J`49g2P@m)k|$ld4=GoD}}tqG4n0qt1}ff+Zmy*C)Cy+-+~;dwBX(?O#ha
zDG93@$-U0fF1z<iQfBtDN9!yU-<K{*5wz10Pm1*Z{42TrS`14;(4A?@?oIz^U(daH
z;Z~Tsmewl!qy+cN>1-+LkCp4|zm(NieNNi_!fE*p`%@O3Pu8vaEc(1)*P~A@azB+9
z#_SPc-?#1h{?r$osqYv4dluUN>h^zwFDzD@rdPIG=$$KgVlhjkurOFhbncul=|}Fn
zzt38Ajn8N0#J9?#zrTF{bgKDGN@nb--nEacoV`~ron>NHGIj0=pP;R$lQS>>J??A0
z!}t8^s=z42sC>6a+dM9{oqWc1%wYa|<x`eL^RC%FRrq{R>8jle9n*8IGhfZv)R1^)
zbMh5~b6u%_*ycsv37a;Zar-6%?gv*D>(W-elKE~BIam0d;@aXJr6EprbxNE2lo$Y(
CAQ&nD

literal 0
HcmV?d00001

diff --git a/multipleShop/images/location_small.webp b/multipleShop/images/location_small.webp
new file mode 100644
index 0000000000000000000000000000000000000000..d69b6c6c352d9dd9fe12ef11103ecbffdbef4ec5
GIT binary patch
literal 1390
zcmWIYbaP8%Wnc(*bqWXzu!!JdU|=u+VsS9?baoCn!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@eSQ6ktl79h!#md3#FX*mM}ZzKbQ@C612u4u3vkig+K1)!7+&|UdJ
zn9h*HkjkLI;K`83kj$V5WElY?)sVpq7{fm0%nS_r;s;m-ma|!I%e{Op=J%byIs51R
zJ8$1Kza@9;ytD6R6x=5*@#tDJFDmVx{GGY~gysmH@mZgGtWCyql9J}8s;rrn^#$d>
zybHVxjQ38Hluo+sHtC7N(^)t7sx!_vWaHuBkodsB%*4dRCm|qU@Sq`HA>ly7KL%zt
z9tnXDHgz>ItFLo&SR@=^=CMfldvQh3TCood>^v3jmotABRW5$HMWD%NVZyEmnG63)
zem(J0z3%UyUAFton})U9ZvQ_oVeioWb(hb=f&()ne_zgA{PIiJ)vVWd^&W`5E?pUu
zclvCaL)telub@eC5AMGC&Zuf6IVmc4d-w9oX21XL{QYco=z#_&j`vmDwI`muleS-f
znpb4*_L-8N&)=!seDht`eD<cJNw*I#e3`V-MNK(aW6Qm_Mdd&@x~L`Zy{)>^MeXq2
zyL<Od)1La|bgKOS|EilKCxy)R^`Ae#Rbbk==TA?khWGaa$(J?rRE}m{eR}vXpT3@p
z=c7me?2Lo+x68)IUVTyGG3ng%R4&$yA*WuS_rIAGxb^0jA0IE4Y?KJt7^S-MWKCSY
zh0Owirt=cU#_#Nmg`En%|N7M;P;+d?OwSafGd(Kv4b#%@%-#LF$I!UAr1Gb7r^=)m
zlE%s>>y1Io7J(U(o+^dqlm2v0YEcQCWMB*w+F|XnA@}x{#j>}}>T+&x%e}pA?WVb#
z-uLH5`|f)G*F<sA|E@dRa;IFJw<(?xn2t(?y^C{!^tAc0dC&j9-oLl`9WdHF-#-)Y
z)AI{Y-~ZfW<4lKxTHk}+S2!2Eyz%Qyg9Z1^?9IAuA*@oF-b>skB<9(tw=<^xpJBik
zu%lAQWp)7P%u7x8nm>P?{CwSnm+EUjiLhO^{&=C%bzkp4waaE7toCkQTCj7^CZ{*g
zo-?@iciuFrJJ;Tv(be&|{#eu2J5`Aa`Ahx%-rh_zay@Z#uBMdu?vzHWcglumPtFbD
zdOh3NzC!+7D9bbb{38c{eY-K;X=SI)Q}>VW-dwyDw4J5v+I{H@3xl@RTR3VwJb8Qi
z%t;Sw=B!RS6a3v!Q=C<#C*)_tnxppL&irhD|JL2m>%*T-bIxrNzv%v?S2?utU-qY<
z*4&9{`X?r6F?=lhbb4m(N4xlw&YTO1^7JQNpR4k&(0#)0oe^h$HyDXMliudB`Gl=r
cc1qiX!bpPz+eNcxn`J(*)5=gh90n|90S4y^=l}o!

literal 0
HcmV?d00001

diff --git a/multipleShop/images/phone.webp b/multipleShop/images/phone.webp
new file mode 100644
index 0000000000000000000000000000000000000000..0a3479e0636148292f073ecb826feeaa2beefb50
GIT binary patch
literal 2340
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

literal 0
HcmV?d00001

diff --git a/multipleShop/images/scan.png b/multipleShop/images/scan.png
new file mode 100644
index 0000000000000000000000000000000000000000..f5f48361f4e2a9650ab1fa1c51d723aeb33cb9b9
GIT binary patch
literal 2533
zcmV<B2^#i^P)<h;3K|Lk000e1NJLTq002w?002w~1^@s6$Cptn00001b5ch_0Itp)
z=>Px;pGibPRCr$PTzhO&=N11Q#|h7dX@x>bAQu{9hgN%NEl?(P>Pkby!%haJ?WDc6
zwc9EIo2o&jZtc+8qE!OaRx9hoR3@z*gT+pGcWg!5I$o1nZ6kIFa2+U*LboQ+Cg9|r
z?KrV>o!Iex`H{5WKen&W>-*jFefNClJKrVbsg*ZX&2ej(3C7I~nhIbl^?foRzd^t`
z0OuGS`=q|l9v4oX@wFVyhv}3vrN>Y_?Y#GHm&SDf{C(h9Rv!bA5nyNyZRIBp;&wzW
z3p2r(Rlp`~n>~KasGeG4)Df^4L=#NdW}K9{oe4WZ)bL@KYu}|6$FCY^Hb<Eizyzpq
zCE8;Q{D27K&6#AEny+Zg&wWU=;j%w`#jdo0{LTWlZFY$=y61afJPyz#r;Rlyk1uIN
z>)N_po3Y~fb#uJwsht6g;ZhpCUjgGO5GtH9&Jj5bRU>|)%@_VH2%24)wgH<K^!Qv%
zKO@3zc8$p@Kl4ACw6ziciCuQ|SO<*Zs%Z4QOrUStF(B8x4Bis)g}-gp+bjWAzO8&r
z(Wr4d2vnQv4m+Wb!FzhHeX#88inE<&<(UR-YE#w3VvY6?=ytQp3W=V<$D%H-J-4*w
zvKhNf0XBW-teMp9+D}Bcm{C%ww9I^x-C9lCk`t$l+GrTCX~9`{6~VPV|KWnst{J7{
zOPWTtZS|pl7~wDk*u<dchVe|tK&UbzbokM5xTCmd&VLrQc4V?WGhhr-f}TAfT9`@L
zaQ<H&1QB0&F$g?VKQaQQ1U%1z=tsjD48yiFuUG5BYb*m+(dhXWG5yN0!Vy5I5kJu8
z3vWx;m9!pK5%A6@;0+LpM*t3nyTHty#M*qd{={3Um{J2KYr~-TBnXOOO(Teq!KWj>
zaAm61KuW-rpyv^Qeqk4bWz*_VGi3p4ZoX%bsE6MC8V+4PVp+w!iF5Gk{8t9?i_Gn3
z8nEL`z_RRKM*gnq55F`}$RNOaLkP5j=q9TgON&df`Htryol4iT1z23)@%9izM@KYc
zq>#?Ui|*p?iq=J~*YpH~08@hAC;t!cPppC^d~)Z90!wJJ4VdT<&=w!8x84=j)~a<a
z&!z=z%I?ZZqoYNw0F_$RvV3|ye*T%K6YQ^FIDjpuw%QtgMs1OsR5Rrsd}HQU6D*It
z^*FY-H5e6<Ovl{bsdZOf{L;yH<9{T1m=f^31fqwnN$=(Q<(wCA@08v-OThZhkw@)_
zv&8%3+twyPv+ZTzO{zb<Y7k&Ec2!qsQSBrV6<M;fkLm5&BPcDtA@<Aeu(N8%zz4#N
z#%imgWb*HVM%8M4NEIOo4|D3tc-q&TFfLz!i2-^$>;Wdy`k$EnfCW5zomel9NWhr)
zsdeG|5+2r<jkpX#i4EV4u?_{8%q`WW-Xs+}&IS^bvOF-BmCHUapuawQLN%VaHT@E=
zxg&(1{_B|}xsG}m<9bI)_aw<?#5_z1Ry_!~UbPEWCcs|%{8r4p@s1=lo5C+*WB7&G
zwN;)+vC{MX*mwQ)bU|ud(Bb!v;=#Z5KN+1Lk^o#<y}Gm|&<j|=^BRaA_!zJu5MbV{
z)`cJG^Ds}lo!CpSMjx=sBV8Y9=hDOUcGy{h#rr0;91(xGjFiU8d0_Y7o$#(qGI9x6
zCR;51Pu+Kt(&$+QrVW+^m}DCMfbnX|Wkz+_1ID~w0JFUuGU{j}0I<!n!4Uw+Z?w~P
z=p@c6A5)ej;?R3X5({&gsOR0-n-bDrFCSZm<<rt<9nN;XV|{^bszV$kCEz^-!dz2)
zA5~(;VF65aqC`oe@q4Fyv0$Nm{lcGcyuE*&YspYXM22J+K%*=P&@ugG!5<+*r%+o*
z^a?(`Cw&IknB9C$CjIxFs6GAbf&(ZU8!LV;$aW=q1)s7D7<0RLSO_4G-CoL&lx%0A
zw*40l*dLPMFeyRr8vwpgs2wdZyAH~bbZp_BsdExml#NLqwvuUxuk|FXh-WkO*JW;$
zExUB>oz8Q)2`iX?Cqr^0Kr1tK)`|azec%e-L`tA)4ak+8eRBex6f%ZAU?gkFM(@|b
z_;r>rN)kKl0fY7sDNR*gXfB%(T|X}RjB0a7IB)qdy&W<iI?`NPbzjESnP^{(8Y-us
zOAm82r!O62MAW*F5>HV(ma!PQfF-A>?*nL$6K*?V0Rz{n{_x)3eMvb~HL9n>i8W=W
zZ8ljE=$n)##cLlVPK&2;^w)()w&>C|SyX3tn~mGm^6(@%llk#RuAyPYLDe6QMb3_w
z3g{Q%`6?A~wzeWR<0p#i5`dLARh1QKbcR3~E31dPDf;T2{pSzh;iI{)-jQ-E8Q#+D
zRuD0m(d{aWENecW<YDr|iDlBjyDOk=IrR!0i-m@`TM~Q892f^nNNv@J#dM`9capy*
z|KXOK#<<)qcJpI;FH6@yyTdh8`GDw6RYG8B%1RJ%M^|xA<%LD9m*SVQQnD#EuFrk;
z=|o{&DkHNEn1Ch4d^T!a#q6h4e@IGL6KxP+pWIzpS{ik?h{Kt?8-uCiVZy)y6rs!(
zV9o6zY&pHve!7SG-K&Jkfd}nVm!0QuH{9+`$r?ZLYSkCsI8c5{z$$lFj*3Q$nh7)`
zYX%jvV20{0>GlpRIUn?t)c4_|dUOViC|uolslL`jsqX2JF_%+yuZ8SPgKbNF0wnEI
za-e`*)?VZv*yNbYw1>qQ{tUO$?veM}jOYWVvM5k}p@p^&m<nbi{|GZqTm^s5$h&$B
zuN%voX3lbJ#mAf~?acr1>$QNvmwV8C=UM;BRwFhU226y>X%X($_5ze#J8nc%LDKNs
z*D2~d=R4JA)I3vwC59*Pn_ShD8SRK!ItF%9Y1jSg-D;N^Uekc}`LS#OKQkN;&r7<7
znV)R)x2(%F!CQMu4gr5f!24woUM66ynY)xPS~<@R((bqOh9_$trt7iN;8j4p0YvGG
zAM%BeUN3V1OsnIk(yW?f8?d-ySxSL;Q=z@YNM1?=rj?Pp(3@64((^e6SbT1q-so9Q
z!1{bI+~v&xOjy&lH2ixjb5%NUodqneCAMv+{Se@_0QH_W%~50Ezr@-)^}72-C*OS-
zH$OXo^+}(+Z}Pa&ofB#RT1tc^*?Th-UjoxErk<v*(H;9PF1+|bw(d_>0ZTGkUIDn%
zJC`*qCBR3(t#&%az`u#m#DvDklF(tRujn&tL+$_@V42dOe1hC170jf7V{c&T|CH~&
vP0m?MS$yJ?h*j>s9#QMn_sw?J3Htv5rcvb1t5bKW00000NkvXXu0mjf4jbqd

literal 0
HcmV?d00001

diff --git a/multipleShop/images/time.png b/multipleShop/images/time.png
new file mode 100644
index 0000000000000000000000000000000000000000..327d87537771c10d10bc57fa149fdc74b7fca876
GIT binary patch
literal 569
zcmV-90>=G`P)<h;3K|Lk000e1NJLTq000;O000;W1^@s6;CDUv00001b5ch_0Itp)
z=>Px$^GQTOR7gv;Rl#xFFc7@ML;9+Oq=Lj1Sn0s7z)A(79|HLc{Ue}<=?Y9&5O)xD
zV7mglgnWSqE<6sP5ov%FGci8W5ajONVsC-)!3#eaA7&A3x7)8=&~CSTKDDq>f-K8c
z%jNQlh&G7Wfrmvz&xqI<V;<_d{*xk15)?(Tan9W$BEQoR(OwAA0XgSZh`0uT4H1zL
z;<~D;CPoq^U~nS32Y@?cOqr_CcUS_z4@CSPBY8&<z+)fed0umsN~!F)+OcnX1YFT#
zv3Nzqham_9N-6jJtF>l%dW*@4=*n9A`MBdAfs`_9B`=LJpJK9%5qP=Yh^W+Bcb)R;
z5#)K!_S?s*pXz}3eHZ6i>$4OAo8nSy{TOq^SO>m<3q<^-lsXiC_`^dagm^;4Z&g)w
zT1Rw#B%*Uf><t>vgx31HD2jEv|Jylt7KU*afiI#YqSY}u6SAzM1YW~YiBi)Vo=Yjy
z5_y8rL!Kh=bFx-S9b)C3O#$HN(92W6ydP$$b>>adroqdcJt?cE$fT4_dlnbN8JZOp
zDe#k{A^?OBTDR2J+M9{6yX90pIqU``oG-+Zweh@n&UJAugjlul-NiM>IU;7W;yRG{
zgJX~l0DKup^g=|9wYK@E3n!-cf4?$MvFFq~vo8H9u-N`z|7t@h7P!J700000NkvXX
Hu0mjf!rTPE

literal 0
HcmV?d00001

diff --git a/multipleShop/images/time.webp b/multipleShop/images/time.webp
new file mode 100644
index 0000000000000000000000000000000000000000..914682aebb5c304492b99f529468dc6b577a5c33
GIT binary patch
literal 760
zcmWIYbaVT_#J~{l>J$(bU=hK^z`$St#NuG&>FgYEf)U7NU_1dLS%6Zxc_l?b?oJ93
zkx>fl4;UDM5DXHNiwhtutRzs?w`&l!mvynKz%R&|l3JV$RPq6cRf>R?1KlJ7WQ(Lj
z*cu>q5`=97VwaZ`lmOKPfY?PLLC!#S3XrXlj>JwvVkZ|Afz<Z^)!5|bl!EL60g&%_
zQu9KCfiwpY%P<r(1TnZXIDz~R<O4zeA_fMFuM7;#6A)raGZ`4Rw=ytD+(L+{EMQ>Z
zZ((5Ab{-*y2$O=uqC~K9EI^VeEscTU({cs|-be-p;R_55T+v`TAc4be3P33tpu6&c
zFr6WXA(cUa!IL46A(=rB$T9*(sv(0JFou1Y7#SG!#SgFwtZ!J6E3JCF@BPRBEo`^8
z<tnSb-2b;;5W#BNmMgtma0$;hhI{|(-|yw$vU`=5@#a-r1zHQbtQK%hSY;(DAmKJ?
zNlHPbqyGO0&Af{&O25t@$i40MF0Q<7QaH@TP&)PJlQl2IjW;jV&x_jrcH!FBW^ba)
z@9Kzrnw@Yr^s}6kfbg#*?sx2;dw$<ho7cWqptAb+gROFlPw{vEZ`@j*bvAj+t=}hZ
zoA_S#$X)7T@w{^0^8zoiQ!(OIuBzc-KPNQoI#5yL;c%DdWa1vDb!vG`##wt7-DN4d
be{9*RS%tTE@2-)!W-NbgVZ}82dNp|fm@L9W

literal 0
HcmV?d00001

diff --git a/multipleShop/index/index.vue b/multipleShop/index/index.vue
new file mode 100644
index 0000000..7b059db
--- /dev/null
+++ b/multipleShop/index/index.vue
@@ -0,0 +1,214 @@
+<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%;
+				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 {
+			padding-top: 24rpx;
+
+			.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;
+					}
+
+					.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;
+
+						&:nth-child(1) {
+							margin-bottom: 10rpx;
+						}
+
+						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%;
+
+					.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>
+<template>
+	<view class="multiple">
+		<view class="multiple-search">
+			<u-search :animation="true" :showAction="false" bgColor="#f6f6f6" placeholder="请输入门店"></u-search>
+			<view class="multiple-search-txt">搜索</view>
+		</view>
+
+		<view class="multiple-card">
+			<view class="multiple-card-item active" v-for="item in 10">
+				<view class="multiple-card-item-left">
+					<view class="multiple-card-item-left-title">泸州春雨路自提中转中心</view>
+					<view class="multiple-card-item-left-tag">
+						<text class="yellow">可自提</text>
+						<text class="green">可配送</text>
+					</view>
+					<view class="multiple-card-item-left-info">
+						<u-image src="../images/location_small.webp" width="24rpx" height="24rpx" />
+						<text>四川省泸州市龙马潭区一环春雨路一段107号一环路117号</text>
+					</view>
+					<view class="multiple-card-item-left-info">
+						<u-image src="../images/time.webp" width="24rpx" height="24rpx" />
+						<text>09:00-20:00</text>
+					</view>
+				</view>
+				<view class="multiple-card-item-right">
+					<view class="multiple-card-item-right-distance">距离1km</view>
+					<view class="multiple-card-item-right-icon">
+						<view style="margin-right: 30rpx;">
+							<u-image src="../images/phone.webp" width="48rpx" height="48rpx" />
+						</view>
+						<u-image src="../images/location.webp" width="48rpx" height="48rpx" />
+					</view>
+				</view>
+			</view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import {
+		shopListApi
+	} from "@/api/multipleShop.js";
+	import {
+		onLoad
+	} from "@dcloudio/uni-app"
+
+
+
+
+	// 获取门店
+	const getShopList = () => {
+		shopListApi().then(res => {
+			console.log(res);
+		})
+	}
+
+
+	onLoad(() => {
+		getShopList();
+	})
+</script>
\ No newline at end of file
diff --git a/multipleShop/orderVerification/index.vue b/multipleShop/orderVerification/index.vue
new file mode 100644
index 0000000..d7d69c6
--- /dev/null
+++ b/multipleShop/orderVerification/index.vue
@@ -0,0 +1,226 @@
+<style lang="scss" scoped>
+	.orderVerification {
+		padding-top: 68rpx;
+
+		.verification {
+			position: relative;
+			width: 710rpx;
+			height: 390rpx;
+			background-image: url(../images/circle_bg.png);
+			background-size: 100%;
+			background-repeat: no-repeat;
+			margin: 0 auto 66rpx;
+			padding: 70rpx 30rpx 0 30rpx;
+			box-sizing: border-box;
+
+			.num {
+				position: absolute;
+				left: 50%;
+				top: -36rpx;
+				transform: translateX(-50%);
+				width: 72rpx;
+				height: 72rpx;
+				line-height: 72rpx;
+				border-radius: 50%;
+				background: #20B128;
+				font-size: 36rpx;
+				color: #FFFFFF;
+				text-align: center;
+			}
+
+			.verification-title {
+				margin-bottom: 24rpx;
+				font-weight: 600;
+				font-size: 32rpx;
+				color: #333333;
+				text-align: center;
+			}
+
+
+
+			.scan {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				box-shadow: 0 0 4rpx 16rpx rgba(32, 177, 40, .1);
+				width: 160rpx;
+				height: 160rpx;
+				border-radius: 50%;
+				margin: 0 auto;
+			}
+
+			.scan1 {
+				display: flex;
+				align-items: center;
+				justify-content: center;
+				width: 152rpx;
+				height: 152rpx;
+				background-color: #20B128;
+				border-radius: 50%;
+				box-shadow: 0 0 0 8rpx rgba(32, 177, 40, .3);
+			}
+		}
+
+		.verification-btn {
+			width: 648rpx;
+			height: 94rpx;
+			line-height: 94rpx;
+			background: #38BE41;
+			border-radius: 48rpx;
+			margin-top: 40rpx;
+			font-weight: 600;
+			font-size: 32rpx;
+			color: #FFFFFF;
+			text-align: center;
+		}
+
+		::v-deep .u-popup__content {
+			background-color: transparent;
+		}
+
+		.popup {
+			.popup-wrap {
+				width: 710rpx;
+				border-radius: 12rpx;
+				padding: 40rpx;
+				box-sizing: border-box;
+				background-color: #fff;
+
+				.popup-title {
+					margin-bottom: 60rpx;
+					font-weight: 600;
+					font-size: 32rpx;
+					color: #333333;
+					text-align: center;
+				}
+
+				.popup-order_num {
+					margin-bottom: 36rpx;
+					font-weight: bold;
+					font-size: 24rpx;
+					color: #333333;
+				}
+
+				.popup-goods {
+					display: flex;
+					justify-content: space-between;
+					width: 630rpx;
+					height: 190rpx;
+					background: #F7F7F7;
+					border-radius: 16rpx;
+					margin-bottom: 36rpx;
+					padding: 24rpx;
+					box-sizing: border-box;
+
+					.popup-goods-left {
+						margin-right: 24rpx;
+					}
+
+					.popup-goods-right {
+						flex-grow: 1;
+
+						.popup-goods-right-info {
+							display: flex;
+							justify-content: space-between;
+							align-items: center;
+							margin-bottom: 20rpx;
+
+							.goods_name {
+								font-size: 24rpx;
+								color: #333333;
+							}
+
+							.goods_price {
+								font-weight: bold;
+								font-size: 24rpx;
+								color: #060606;
+							}
+						}
+
+						.popup-goods-num {
+							margin-bottom: 20rpx;
+							font-size: 24rpx;
+							color: #777777;
+							text-align: right;
+						}
+
+						.popup-goods-total {
+							text-align: right;
+
+							.popup-goods-total-num {
+								font-size: 24rpx;
+								color: #666666;
+
+							}
+
+							.popup-goods-total-price {
+								font-size: 24rpx;
+								color: #F55726;
+							}
+						}
+					}
+				}
+			}
+		}
+	}
+</style>
+<template>
+	<view class="orderVerification">
+
+		<!-- 输入核销码 -->
+		<view class="verification">
+			<view class="num">1</view>
+			<view class="verification-title">核销券码</view>
+			<u-input inputAlign="center" :customStyle="{'border-color':'#38BE41 !important'}"
+				placeholder="请输入核销券码"></u-input>
+			<view class="verification-btn">确认核销</view>
+		</view>
+
+		<!-- 二维码 -->
+		<view class="verification">
+			<view class="num">2</view>
+			<view class="verification-title" style="margin-bottom: 48rpx;">二维码核销</view>
+			<view class="scan">
+				<view class="scan1">
+					<u-image width="54rpx" height="50rpx" src="../images/scan.png"></u-image>
+				</view>
+			</view>
+		</view>
+
+		<!-- 弹框 -->
+		<u-popup :show="show" @close="close" @open="open" mode="center">
+			<view class="popup">
+				<view class="popup-wrap">
+					<view class="popup-title">请确认核销订单</view>
+					<view class="popup-order_num">订单编号:wxo1709797879549583601</view>
+					<view class="popup-goods">
+						<view class="popup-goods-left">
+							<u-image width="100rpx" height="100rpx" radius="8rpx" />
+						</view>
+						<view class="popup-goods-right">
+							<view class="popup-goods-right-info">
+								<text class='goods_name'>黄牛牛肉</text>
+								<text class="goods_price">¥10.00</text>
+							</view>
+							<view class="popup-goods-num">x5</view>
+							<view class="popup-goods-total">
+								<text class="popup-goods-total-num">共5件商品,总金额</text>
+								<text class="popup-goods-total-price">¥50.00</text>
+							</view>
+						</view>
+					</view>
+
+					<view class="verification-btn">确认核销</view>
+				</view>
+			</view>
+		</u-popup>
+	</view>
+</template>
+
+<script setup>
+	import {
+		ref
+	} from "vue";
+
+	const show = ref(true);
+</script>
\ No newline at end of file
diff --git a/multipleShop/verificationOrder/detail.vue b/multipleShop/verificationOrder/detail.vue
new file mode 100644
index 0000000..158293e
--- /dev/null
+++ b/multipleShop/verificationOrder/detail.vue
@@ -0,0 +1,119 @@
+<style lang="scss">
+	.detail {
+		width: 710rpx;
+		background: #FFFFFF;
+		border-radius: 12rpx;
+		margin: 24rpx auto 0;
+		padding: 0 30rpx 24rpx;
+		box-sizing: border-box;
+
+		.detail-order_num {
+			height: 78rpx;
+			line-height: 78rpx;
+			margin-bottom: 24rpx;
+			font-weight: 600;
+			font-size: 26rpx;
+			color: #333333;
+			border-bottom: 2rpx solid #f1f1f1;
+		}
+
+		.detail-form {
+			border-bottom: 2rpx solid #f1f1f1;
+			margin-bottom: 24rpx;
+
+			.detail-form-item {
+				margin-bottom: 16rpx;
+				font-size: 26rpx;
+				color: #333333;
+			}
+		}
+
+		.popup-goods {
+			display: flex;
+			justify-content: space-between;
+			width: 630rpx;
+			border-radius: 16rpx;
+			margin-bottom: 20rpx;
+			padding-bottom: 1rpx;
+			box-sizing: border-box;
+			border-bottom: 2rpx solid #f1f1f1;
+
+			.popup-goods-left {
+				margin-right: 24rpx;
+			}
+
+			.popup-goods-right {
+				flex-grow: 1;
+
+				.popup-goods-right-info {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+
+					.goods_name {
+						font-size: 24rpx;
+						color: #333333;
+					}
+
+					.goods_price {
+						font-weight: bold;
+						font-size: 24rpx;
+						color: #060606;
+					}
+				}
+
+				.popup-goods-num {
+					margin-bottom: 20rpx;
+					font-size: 24rpx;
+					color: #777777;
+					text-align: right;
+				}
+			}
+		}
+
+		.popup-goods-total {
+			text-align: right;
+
+			.popup-goods-total-num {
+				font-size: 24rpx;
+				color: #666666;
+			}
+
+			.popup-goods-total-price {
+				font-size: 26rpx;
+				color: #333;
+			}
+		}
+	}
+</style>
+
+<template>
+	<view class="detail">
+		<view class="detail-order_num">订单编号:123123123</view>
+		<view class="detail-form">
+			<view class="detail-form-item">收货人:</view>
+			<view class="detail-form-item">核销码:</view>
+			<view class="detail-form-item">核销门店:</view>
+			<view class="detail-form-item">核销时间:</view>
+		</view>
+
+		<view class="popup-goods">
+			<view class="popup-goods-left">
+				<u-image width="100rpx" height="100rpx" radius="8rpx" />
+			</view>
+			<view class="popup-goods-right">
+				<view class="popup-goods-right-info">
+					<text class='goods_name'>黄牛牛肉</text>
+					<text class="goods_price">¥10.00</text>
+				</view>
+				<view class="popup-goods-num">x5</view>
+			</view>
+		</view>
+
+		<view class="popup-goods-total">
+			<text class="popup-goods-total-num">共5件商品,总金额</text>
+			<text class="popup-goods-total-price">¥50.00</text>
+		</view>
+	</view>
+</template>
\ No newline at end of file
diff --git a/multipleShop/verificationOrder/index.vue b/multipleShop/verificationOrder/index.vue
new file mode 100644
index 0000000..e4939e3
--- /dev/null
+++ b/multipleShop/verificationOrder/index.vue
@@ -0,0 +1,191 @@
+<style lang="scss">
+	page {
+		background: #FAFAFA;
+	}
+
+	.order {
+		padding-bottom: 30rpx;
+
+		.order-search {
+			position: sticky;
+			top: 0;
+			z-index: 10;
+			display: flex;
+			height: 90rpx;
+			background-color: #fff;
+			padding: 0 24rpx;
+			box-sizing: border-box;
+
+			.order-search-txt {
+				position: absolute;
+				right: 28rpx;
+				top: 50%;
+				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;
+			}
+		}
+
+		.order-list {
+			padding-top: 24rpx;
+			height: calc(100vh - 90rpx - 24rpx - 30rpx);
+
+			.order-list-item {
+				width: 710rpx;
+				background: #FFFFFF;
+				border-radius: 12rpx;
+				margin: 0 auto 24rpx;
+				padding: 0 30rpx;
+				box-sizing: border-box;
+
+				.order-list-item-order_num {
+					height: 74rpx;
+					line-height: 74rpx;
+					font-weight: 600;
+					font-size: 26rpx;
+					color: #333333;
+					border-bottom: 2rpx solid #F1F1F1;
+				}
+
+				.order-list-item-trans {
+					display: flex;
+					justify-content: space-between;
+					padding: 16rpx 0 24rpx 0;
+
+					.order-list-item-trans-left {
+						display: flex;
+						justify-content: center;
+						align-items: center;
+						margin-right: 38rpx;
+					}
+
+					.order-list-item-trans-right {
+						.order-type {
+							margin-bottom: 10rpx;
+							font-weight: 600;
+							font-size: 32rpx;
+							color: #444444;
+						}
+
+						.order-reciver {
+							margin-bottom: 10rpx;
+							font-size: 26rpx;
+							color: #777777;
+						}
+
+						.order-verification-time {
+							width: 500rpx;
+							font-size: 26rpx;
+							color: #777777;
+							overflow: hidden;
+							white-space: nowrap;
+							text-overflow: ellipsis;
+						}
+					}
+				}
+			}
+		}
+
+		.order-tab {
+			display: flex;
+			align-items: center;
+			justify-content: space-around;
+			width: 100%;
+			height: 102rpx;
+			background-color: #fff;
+
+			.order-tab-item {
+				font-size: 32rpx;
+				color: #444444;
+			}
+
+			.order-tab-active {
+				position: relative;
+				font-weight: bold;
+				font-size: 32rpx;
+				color: #20B128;
+
+				&::after {
+					content: "";
+					display: block;
+					position: absolute;
+					width: 52rpx;
+					height: 6rpx;
+					border-radius: 6rpx;
+					background-color: #20B128;
+					bottom: -20rpx;
+					left: 50%;
+					transform: translateX(-50%);
+				}
+			}
+		}
+	}
+</style>
+<template>
+	<view class="order">
+		<view class="order-search">
+			<u-search :animation="true" :showAction="false" bgColor="#f6f6f6" placeholder="请输入门店"></u-search>
+			<view class="order-search-txt">搜索</view>
+		</view>
+
+		<view class="order-tab">
+			<view class="order-tab-item" @click="onTabChange(1)" :class="{'order-tab-active':orderTab==1}">待配送(0)</view>
+			<view class="order-tab-item" @click="onTabChange(2)" :class="{'order-tab-active':orderTab==2}">已配送(0)</view>
+		</view>
+
+		<view class="order-list">
+			<scroll-view style="height: 100%;" :scroll-y="true" @scroll="onScroll">
+				<view class="order-list-wrap">
+					<view class="order-list-item" v-for="item in 10">
+						<view class="order-list-item-order_num">订单编号:123123123123</view>
+						<view class="order-list-item-trans">
+							<view class="order-list-item-trans-right">
+								<view class="order-type">配送订单</view>
+								<view class="order-reciver">收货人:李斯</view>
+								<view class="order-verification-time">商品信息:黄牛牛腩块2kg*5</view>
+							</view>
+
+							<view class="order-list-item-trans-left">
+								<u-image width="76rpx" height="76rpx" src="../../multipleShop/images/scan.png" />
+							</view>
+						</view>
+					</view>
+				</view>
+				<u-empty mode="data" icon="http://cdn.uviewui.com/uview/empty/data.png">
+				</u-empty>
+			</scroll-view>
+		</view>
+	</view>
+</template>
+
+<script setup>
+	import {
+		onLoad
+	} from "@dcloudio/uni-app";
+	import {
+		ref
+	} from "vue";
+
+	// tab切换
+	const orderTab = ref(1);
+	const onTabChange = (e) => {
+		orderTab.value = e;
+	}
+
+
+	uni.login({
+		success(res) {
+			console.log(res);
+		}
+	})
+
+	const onScroll = (e) => {
+		console.log(e);
+	}
+</script>
\ No newline at end of file
diff --git a/node_modules/.package-lock.json b/node_modules/.package-lock.json
index b8a6273..084bb82 100644
--- a/node_modules/.package-lock.json
+++ b/node_modules/.package-lock.json
@@ -1,5 +1,5 @@
 {
-  "name": "purchase-let",
+  "name": "purchase_let",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
diff --git a/package-lock.json b/package-lock.json
index a22d4b0..959fbf3 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,5 +1,5 @@
 {
-  "name": "purchase-let",
+  "name": "purchase_let",
   "lockfileVersion": 3,
   "requires": true,
   "packages": {
diff --git a/pages.json b/pages.json
index 1787b7b..dcd2c8b 100644
--- a/pages.json
+++ b/pages.json
@@ -22,6 +22,18 @@
 				}
 			}
 		},
+		{
+			"path": "pages/index/test",
+			"style": {
+				"navigationBarTitleText": "购物",
+				"disableScroll": true,
+				"enablePullDownRefresh": false,
+				"app-plus": {
+					// 将回弹属性关掉
+					"bounce": "none"
+				}
+			}
+		},
 		{
 			"path": "pages/login/login",
 			"style": {
@@ -56,6 +68,34 @@
 
 	],
 	"subPackages": [{
+			"root": "multipleShop",
+			"pages": [{
+				"path": "index/index",
+				"style": {
+					"navigationBarTitleText": "选择门店",
+					"enablePullDownRefresh": false
+				}
+
+			}, {
+				"path": "verificationOrder/index",
+				"style": {
+					"navigationBarTitleText": "核销订单",
+					"enablePullDownRefresh": false
+				}
+			}, {
+				"path": "verificationOrder/detail",
+				"style": {
+					"navigationBarTitleText": "核销订单详情",
+					"enablePullDownRefresh": false
+				}
+			}, {
+				"path": "orderVerification/index",
+				"style": {
+					"navigationBarTitleText": "订单核销",
+					"enablePullDownRefresh": false
+				}
+			}]
+		}, {
 			"root": "pagesOrder",
 			"pages": [{
 					"path": "order/order",
diff --git a/pages/index/index.vue b/pages/index/index.vue
index 9979a56..676697a 100644
--- a/pages/index/index.vue
+++ b/pages/index/index.vue
@@ -1,894 +1,898 @@
 <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.imgs"></up-image>
-            </view>
-            <view class="shop-content">
-              <view class="title">
-                <view class="name u-line-2">{{item.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.sell}}</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 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>
+			</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>
+		<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 {
+		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();
+	import useUserStore from "@/store/user";
+	const userStore = useUserStore();
 
 
 
-  const test = () => {
-    uni.navigateTo({
-      url: '/pageQuota/quotation/index'
-    })
-  }
+	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 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 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 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 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 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 keyword = ref('');
 
-  const searchKeyword = () => {
-    where.value.name = keyword.value;
-    getGoodList();
-  }
+	const searchKeyword = () => {
+		where.value.name = keyword.value;
+		getGoodList();
+	}
 
-  const changeOrder = (order) => {
-    console.log('排序', order);
-    where.value.order = order;
-    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 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 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 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 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 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))
-    })
-  }
+	// 购物车相关
+	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();
+	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)
+	})
+	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;
-  }
+	.content {
+		background-color: #fff;
+	}
 
-  .navbar {
-    padding: 0 20rpx;
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-    font-size: 22rpx;
-    color: #777;
+	.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;
+		.nav-item {
+			display: flex;
+			flex-direction: column;
+			align-items: center;
+			justify-content: center;
 
-      image {
-        height: 40rpx;
-        width: 40rpx;
-      }
-    }
-  }
+			image {
+				height: 40rpx;
+				width: 40rpx;
+			}
+		}
+	}
 
-  .head-view {
-    background-color: #fff;
-    height: 180rpx;
-    width: 750rpx;
+	.head-view {
+		background-color: #fff;
+		height: 180rpx;
+		width: 750rpx;
 
-    .list {
-      height: 100%;
-      display: flex;
-      align-items: center;
-      padding: 0 20rpx;
-      font-size: 22rpx;
+		.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;
+			.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-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;
-        }
-      }
+				.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;
-        }
+			.item-active {
+				.c-img {
+					border: 2px solid #20b128;
+				}
 
-        .c-text {
-          background-color: #20b128;
-          color: #fff;
-        }
-      }
-    }
-  }
+				.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);
-  }
+	.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;
+	.cateOne {
+		background-color: #fff;
 
-    .head-title {
-      color: #666666;
-      font-size: 30rpx;
-      height: 80rpx;
-      line-height: 80rpx;
-      padding-left: 30rpx;
-    }
+		.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;
+		.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;
+			.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-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;
-        }
-      }
+				.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;
-        }
+			.item-active {
+				.c-img {
+					border: 2px solid #20b128;
+				}
 
-        .c-text {
-          background-color: #20b128;
-          color: #fff;
-        }
-      }
-    }
+				.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 {
+			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;
-      }
+			.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);
-      }
-    }
-  }
+			.item-active {
+				border: 1rpx solid #20b128;
+				color: #20b128;
+				background-color: rgba(#20b128, 0.1);
+			}
+		}
+	}
 
-  .scroll-box {
-    // background-color: red;
-    display: flex;
+	.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;
+		.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 {
+				height: 96rpx;
+				line-height: 96rpx;
+				text-align: center;
+			}
 
-      .item-active {
-        background-color: #fff;
-        position: relative;
-        color: #20b128;
+			.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%);
-        }
-      }
-    }
+				&::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;
+		.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 {
+				height: 150rpx;
+				background-color: #fff;
+				border-bottom: 1rpx solid #f6f6f6;
+				position: relative;
+				font-size: 24rpx;
 
-        .classify-list {
-          display: flex;
-          padding: 20rpx;
+				.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;
-          }
+					.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);
-          }
-        }
+					.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;
-        }
+				.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;
+				.order-by {
+					display: flex;
+					justify-content: flex-end;
+					align-items: center;
 
-          .item {
-            padding-right: 20rpx;
-          }
+					.item {
+						padding-right: 20rpx;
+					}
 
-          .order-active {
-            color: #20b128;
-          }
-        }
-      }
+					.order-active {
+						color: #20b128;
+					}
+				}
+			}
 
-      .list {
-        height: calc(100vh - var(--window-top) - 400rpx);
-        /* #ifdef H5 */
-        height: calc(100vh - 44px - 200rpx);
+			.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;
+				/* #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-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;
+					.shop-content {
+						width: 380rpx;
+						display: flex;
+						flex-direction: column;
+						justify-content: space-between;
 
-            .title {
-              .name {
-                font-size: 28rpx;
-              }
+						.title {
+							.name {
+								font-size: 28rpx;
+							}
 
-              .tip {
-                color: #999;
-                font-size: 24rpx;
-                margin: 2rpx 0;
-              }
-            }
+							.tip {
+								color: #999;
+								font-size: 24rpx;
+								margin: 2rpx 0;
+							}
+						}
 
-            .price {
-              font-size: 30rpx;
-              font-weight: bold;
-              color: #F55726;
-            }
+						.price {
+							font-size: 30rpx;
+							font-weight: bold;
+							color: #F55726;
+						}
 
-            .price-btn {
-              display: flex;
-              justify-content: space-between;
+						.price-btn {
+							display: flex;
+							justify-content: space-between;
 
-              .btn {
-                display: flex;
-                align-items: center;
+							.btn {
+								display: flex;
+								align-items: center;
 
-                .num {
-                  width: 60rpx;
-                  text-align: 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;
+	.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;
+		.price-info {
+			.row {
+				display: flex;
+				font-size: 26rpx;
+				align-items: center;
 
-        &>view {
-          margin-right: 15rpx;
-        }
+				&>view {
+					margin-right: 15rpx;
+				}
 
-        .price {
-          color: #F55726;
-        }
-      }
-    }
+				.price {
+					color: #F55726;
+				}
+			}
+		}
 
-    .btn {
-      width: 200rpx;
-    }
+		.btn {
+			width: 200rpx;
+		}
 
-    .cart {
-      position: absolute;
-      top: -40rpx;
-      left: 40rpx;
+		.cart {
+			position: absolute;
+			top: -40rpx;
+			left: 40rpx;
 
-      image {
-        width: 80rpx;
-        height: 80rpx;
-      }
+			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;
-      }
-    }
-  }
+			.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;
-  }
+	.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
new file mode 100644
index 0000000..2c4d29f
--- /dev/null
+++ b/pages/index/test.vue
@@ -0,0 +1,127 @@
+<style lang="scss">
+	.detail {
+		width: 710rpx;
+		background: #FFFFFF;
+		border-radius: 12rpx;
+		margin: 24rpx auto 0;
+		padding: 0 30rpx 24rpx;
+		box-sizing: border-box;
+
+		.detail-order_num {
+			height: 78rpx;
+			line-height: 78rpx;
+			margin-bottom: 24rpx;
+			font-weight: 600;
+			font-size: 26rpx;
+			color: #333333;
+			border-bottom: 2rpx solid #f1f1f1;
+		}
+
+		.detail-form {
+			border-bottom: 2rpx solid #f1f1f1;
+			margin-bottom: 24rpx;
+
+			.detail-form-item {
+				margin-bottom: 16rpx;
+				font-size: 26rpx;
+				color: #333333;
+			}
+		}
+
+		.popup-goods {
+			display: flex;
+			justify-content: space-between;
+			width: 630rpx;
+			border-radius: 16rpx;
+			margin-bottom: 20rpx;
+			padding-bottom: 1rpx;
+			box-sizing: border-box;
+			border-bottom: 2rpx solid #f1f1f1;
+
+			.popup-goods-left {
+				margin-right: 24rpx;
+			}
+
+			.popup-goods-right {
+				flex-grow: 1;
+
+				.popup-goods-right-info {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					margin-bottom: 20rpx;
+
+					.goods_name {
+						font-size: 24rpx;
+						color: #333333;
+					}
+
+					.goods_price {
+						font-weight: bold;
+						font-size: 24rpx;
+						color: #060606;
+					}
+				}
+
+				.popup-goods-num {
+					margin-bottom: 20rpx;
+					font-size: 24rpx;
+					color: #777777;
+					text-align: right;
+				}
+			}
+		}
+
+		.popup-goods-total {
+			text-align: right;
+
+			.popup-goods-total-num {
+				font-size: 24rpx;
+				color: #666666;
+			}
+
+			.popup-goods-total-price {
+				font-size: 26rpx;
+				color: #333;
+			}
+		}
+	}
+</style>
+
+<template>
+	<view class="detail">
+		<view class="detail-order_num">订单编号:123123123</view>
+		<view class="detail-form">
+			<view class="detail-form-item">收货人:</view>
+			<view class="detail-form-item">核销码:</view>
+			<view class="detail-form-item">联系电话:</view>
+			<view class="detail-form-item">核销门店:</view>
+			<view class="detail-form-item">核销时间:</view>
+		</view>
+
+		<view class="popup-goods">
+			<view class="popup-goods-left">
+				<u-image width="100rpx" height="100rpx" radius="8rpx" />
+			</view>
+			<view class="popup-goods-right">
+				<view class="popup-goods-right-info">
+					<text class='goods_name'>黄牛牛肉</text>
+					<text class="goods_price">¥10.00</text>
+				</view>
+				<view class="popup-goods-num">x5</view>
+			</view>
+		</view>
+
+		<view class="popup-goods-total">
+			<text class="popup-goods-total-num">共5件商品,总金额</text>
+			<text class="popup-goods-total-price">¥50.00</text>
+		</view>
+	</view>
+</template>
+<script setup>
+	uni.login({
+		success(res) {
+			console.log(res);
+		}
+	})
+</script>
\ No newline at end of file
diff --git a/pages/login/login.vue b/pages/login/login.vue
index a8410d3..a69bb94 100644
--- a/pages/login/login.vue
+++ b/pages/login/login.vue
@@ -95,9 +95,9 @@
 
 	const showOfficial = ref(false);
 	const navToIndex = () => {
-    if (userStore.userInfo && userStore.token) uni.reLaunch({
-    	url: '/pages/index/index'
-    })
+		if (userStore.userInfo && userStore.token) uni.reLaunch({
+			url: '/pages/index/index'
+		})
 		// if (!userStore.userInfo.supplier) uni.reLaunch({
 		// 	url: '/pages/index/index'
 		// })