From 0375a599e25b7f27c57d8c00f801761d9cce8aa2 Mon Sep 17 00:00:00 2001
From: yiming <m13691596795@163.com>
Date: 星期二, 05 三月 2024 18:12:17 +0800
Subject: [PATCH] revert: 阿斯顿

---
 static/images/bookExhibitionList/banner.png       |    0 
 pages/goods/details/components/buy-bar/index.js   |   19 
 pages/goods/details/components/buy-bar/index.wxml |   61 
 pages/retrievalPage/index.json                    |   10 
 static/video/sea.mp4                              |    0 
 pages/bookExhibitionList/index.js                 |   21 
 pages/resourceDetails/index.js                    |   76 ++
 pages/bookExhibitionDetails/index.js              |   10 
 pages/bookServices/assort/index.js                |   16 
 pages/resourceDetails/index.json                  |    4 
 pages/aboutUs/index.js                            |   17 
 pages/aboutUs/index.wxml                          |   17 
 pages/bibliographyList/index.json                 |    2 
 pages/retrievalPage/index.js                      |  522 ++++++++++++++
 pages/cart/index.wxss                             |  144 +++
 pages/bookExhibitionDetails/index.wxss            |   17 
 pages/cart/index.wxml                             |   40 +
 pages/cart/paymentPage/index.wxml                 |   74 ++
 pages/cart/paymentPage/index.wxss                 |  144 +++
 pages/bookExhibitionList/index.wxss               |   41 
 pages/resourceDetails/index.wxss                  |   25 
 pages/bookExhibitionList/index.wxml               |   28 
 pages/resourceDetails/index.wxml                  |   13 
 pages/retrievalPage/index.wxml                    |  164 ++++
 pages/retrievalPage/index.wxss                    |  289 +++++++
 app.json                                          |    3 
 /dev/null                                         |   68 -
 pages/cart/index.json                             |    4 
 pages/cart/index.js                               |  140 ++-
 pages/cart/paymentPage/index.json                 |   10 
 pages/cart/paymentPage/js/weapp.qrcode.js         |    0 
 pages/cart/paymentPage/index.js                   |  200 +++++
 pages/bibliographyList/index.wxml                 |    2 
 pages/bibliographyList/index.js                   |    8 
 pages/aboutUs/index.json                          |    1 
 35 files changed, 1,973 insertions(+), 217 deletions(-)

diff --git a/app.json b/app.json
index 1c8cfeb..d43ff7c 100644
--- a/app.json
+++ b/app.json
@@ -1,5 +1,8 @@
 {
   "pages": [
+    "pages/resourceDetails/index",
+    "pages/retrievalPage/index",
+    "pages/cart/paymentPage/index",
     "pages/cart/index",
     "pages/home/home",
     "pages/aboutUs/index",
diff --git a/pages/aboutUs/index.js b/pages/aboutUs/index.js
index 7f5f5f5..135af2c 100644
--- a/pages/aboutUs/index.js
+++ b/pages/aboutUs/index.js
@@ -1,6 +1,6 @@
 // pages/aboutUs/index.js
 const app = getApp()
-import drawQrcode from './js/weapp.qrcode'
+// import drawQrcode from './js/weapp.qrcode'
 Page({
 
   /**
@@ -9,7 +9,6 @@
   data: {
     aboutText: null,
     swiperList: null,
-    qrcodeWidth: 0,
     current: 1,//杞挱鍥惧弬鏁�
     autoplay: true, //杞挱鍥惧弬鏁�
     duration: '500',//杞挱鍥惧弬鏁�
@@ -104,22 +103,21 @@
 
   },
   getBanner() {
+
     app.MG.resource.getItem({
       path: 'jsek_banner\\jsek_aboutUsBanner',
       paging: { start: 0, size: 9 },
-      coverSize: {
-        width: 250
-      },
+
       fields: {
         jsek_link: []
       }
     }).then(res => {
-      // console.log(res.datas[0].icon, 'res');
+
       this.setData({
         bannerList: res.datas[0].icon,
         swiperList: res.datas[0].icon
       })
-      // console.log(this.data.swiperList);
+      console.log(this.data.bannerList, 789);
     })
   },
   getAboutText() {
@@ -128,6 +126,9 @@
       fields: {
         content: []
       },
+      coverSize: {
+        width: 750
+      },
     }).then(res => {
       console.log(res);
 
@@ -135,7 +136,7 @@
         aboutText: res.datas[0].content
       })
 
-      console.log(this.data.aboutText);
+
     })
   }
 })
\ No newline at end of file
diff --git a/pages/aboutUs/index.json b/pages/aboutUs/index.json
index 81e41cd..45f3c00 100644
--- a/pages/aboutUs/index.json
+++ b/pages/aboutUs/index.json
@@ -1,4 +1,5 @@
 {
+  "component": true,
   "usingComponents": {
     "t-swiper": "tdesign-miniprogram/swiper/swiper",
     "t-swiper-nav": "tdesign-miniprogram/swiper-nav/swiper-nav"
diff --git a/pages/aboutUs/index.wxml b/pages/aboutUs/index.wxml
index ef37383..9b311d6 100644
--- a/pages/aboutUs/index.wxml
+++ b/pages/aboutUs/index.wxml
@@ -1,8 +1,6 @@
 <!--pages/aboutUs/index.wxml-->
 <!-- <text>鍏充簬鎴戜滑</text> -->
-<view class="swiper-wrap">
-  <t-swiper wx:if="{{bannerList.length > 0}}" list="{{bannerList}}" current="{{current}}" autoplay="{{autoplay}}" duration="{{duration}}" interval="{{interval}}" navigation="{{navigation}}" bind:click="navToActivityDetail" />
-</view>
+
 
 
 <!-- 浜岀淮鐮佸睍绀� -->
@@ -10,6 +8,19 @@
 	<canvas style="width: 200px; height: 200px;margin:0 auto" canvas-id="myQrcode"></canvas>
 </view> -->
 
+
+
+
+
+
+<!-- <view class="swiper-wrap">
+  <t-swiper list="{{bannerList}}" current="{{current}}" autoplay="{{autoplay}}" duration="{{duration}}" interval="{{interval}}" navigation="{{navigation}}" />
+</view> -->
+
+
+
+
+
 <view class="aboutUs">
   <view class="imageBox">
     <image src="{{swiperList}}" alt="" />
diff --git a/pages/bibliographyList/index.js b/pages/bibliographyList/index.js
index dfa20f5..cab19a3 100644
--- a/pages/bibliographyList/index.js
+++ b/pages/bibliographyList/index.js
@@ -10,9 +10,9 @@
       higherList: [],
       vocationalList: [],
       teacherList: [],
-      higherTotal: null,
-      vocationalTotal: null,
-      teacherTotal: null,
+      higherTotal: 0,
+      vocationalTotal: 0,
+      teacherTotal: 0,
       value: '',
       BarHeight: '',
       navBarHeight: ''
@@ -34,6 +34,7 @@
       this.setData({
         BarHeight: sysInfo.statusBarHeight, navBarHeight: navBarHeight
       })
+
 
 
 
@@ -223,6 +224,7 @@
 
     },
     downloadData(event) {
+      console.log(111);
       const item = event.currentTarget.dataset.item;
       // console.log(item.datas.freeFile.Value);
       const URL = 'http://182.92.203.7:3001/file/api/ApiDownload?md5=' + item.datas.freeFile.Value
diff --git a/pages/bibliographyList/index.json b/pages/bibliographyList/index.json
index 307560a..0edd783 100644
--- a/pages/bibliographyList/index.json
+++ b/pages/bibliographyList/index.json
@@ -5,7 +5,5 @@
     "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel",
     "t-search": "tdesign-miniprogram/search/search"
   },
-  "navigationBarTitleText": "涔︾洰",
-  "navigationBarTextStyle": "white",
   "navigationStyle": "custom"
 }
\ No newline at end of file
diff --git a/pages/bibliographyList/index.wxml b/pages/bibliographyList/index.wxml
index f837d93..8eee1f6 100644
--- a/pages/bibliographyList/index.wxml
+++ b/pages/bibliographyList/index.wxml
@@ -1,7 +1,7 @@
 <!--pages/bibliographyList/index.wxml-->
 
 <view class="example-search">
-  <t-search model:value="{{value}}" placeholder="鎼滅储棰勮鏂囨" bind:submit="onSearchSubmit" />
+  <t-search model:value="{{value}}" placeholder="璇疯緭鍏ヤ功鐩悕绉�" bind:submit="onSearchSubmit" />
 </view>
 
 
diff --git a/pages/bookExhibitionDetails/index.js b/pages/bookExhibitionDetails/index.js
index 6ab4e9d..27169f6 100644
--- a/pages/bookExhibitionDetails/index.js
+++ b/pages/bookExhibitionDetails/index.js
@@ -6,11 +6,11 @@
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
-    bookName: null,
-    bookBeginDate: null,
-    bookCreator: null,
-    bookContent: null,
-    bookImage: null,
+    bookName: '',
+    bookBeginDate: '',
+    bookCreator: '',
+    bookContent: '',
+    bookImage: '',
     bookExhibitionList: []
   },
 
diff --git a/pages/bookExhibitionDetails/index.wxss b/pages/bookExhibitionDetails/index.wxss
index bcd48e4..040d155 100644
--- a/pages/bookExhibitionDetails/index.wxss
+++ b/pages/bookExhibitionDetails/index.wxss
@@ -1,13 +1,13 @@
 /* pages/bookExhibitionDetails/index.wxss */
-.headBox {
-  /* width: 750rpx; */
-  text-align: center;
-
-}
+.headBox {}
 
 .titleBox {
   font-weight: 800;
   font-size: 45rpx;
+  display: flex;
+  justify-content: center;
+  padding: 0 30rpx;
+  /* text-indent: 6%; */
 }
 
 .informationBox {
@@ -51,21 +51,20 @@
   margin: 20rpx;
   background: #FFFFFF;
   box-shadow: 0rpx 0rpx 18rpx 2rpx rgba(0, 0, 0, 0.08);
+  padding: 10rpx;
+  box-sizing: border-box;
 }
 
 .booksImageBox {
   width: 240rpx;
   height: 300rpx;
   margin: 30rpx;
-
 }
 
 .outsideBooksImageBox {
   background: #F5F5F5;
-  width: 300rpx;
+  width: 100%;
   margin: 0 auto;
-  margin-top: 15rpx;
-
 }
 
 .booksTextBox {
diff --git a/pages/bookExhibitionList/index.js b/pages/bookExhibitionList/index.js
index 153ccd8..937d286 100644
--- a/pages/bookExhibitionList/index.js
+++ b/pages/bookExhibitionList/index.js
@@ -295,13 +295,32 @@
   },
   onSwapRight() {
     // console.log('xxxxxx');
-    this.data.nameSort = 'Asc'
+    // this.data.nameSort = 'Asc'
+
+
+    if (!this.data.nameSort) {
+      this.setData({
+        nameSort: 'Desc',
+      });
+    } else if (this.data.nameSort == 'Desc') {
+      this.setData({
+        nameSort: 'Asc',
+      });
+    } else if (this.data.nameSort == 'Asc') {
+      this.setData({
+        nameSort: '',
+      });
+    }
+
     this.bookExhibitionGet()
+
   },
   onSwapLeft() {
     this.data.nameSort = 'Desc'
     // console.log('sssssss');
     this.bookExhibitionGet()
+
+
   },
   onBookExhibitionDetails: function (event) {
     const item = event.currentTarget.dataset.item;
diff --git a/pages/bookExhibitionList/index.wxml b/pages/bookExhibitionList/index.wxml
index ef63ba0..2e08782 100644
--- a/pages/bookExhibitionList/index.wxml
+++ b/pages/bookExhibitionList/index.wxml
@@ -5,7 +5,7 @@
 
 
 <view class="example-search">
-  <t-search model:value="{{value}}" placeholder="璇疯緭鍏ュ叧閿瘝/涔︾洰/ISBN/浣滆��"  bind:submit="onSearchSubmit"/>
+  <t-search model:value="{{value}}" placeholder="璇疯緭鍏ュ叧閿瘝/涔︾洰/ISBN/浣滆��" bind:submit="onSearchSubmit" />
 </view>
 
 
@@ -24,24 +24,26 @@
 
 
   </t-dropdown-menu>
-  <view class="sortBox">
+  <view class="sortBox" bind:tap="onSwapRight">
     <text>鎺掑簭</text>
     <view class="iconBox">
-      <t-icon class="swapRight" name="swap-right" size="48rpx" bind:click="onSwapRight" />
-      <t-icon class="swapLeft" name="swap-right" size="48rpx" bind:click="onSwapLeft" />
+      <t-icon class="swapRight" name="swap-right" size="35rpx" color="{{nameSort == 'Asc' ? '#ff6c00' : ''}}" />
+      <t-icon class="swapLeft" name="swap-right" size="35rpx" color="{{nameSort == 'Desc' ? '#ff6c00' : ''}}" />
     </view>
   </view>
 </view>
 
-<view class="titleBox">
-  <view class="frameBox"></view> <text class="titleTextBox"> 绾夸笂涔﹀睍</text>
-</view>
-<view class="outside">
-
-  <view class="contentBox" wx:for="{{bookExhibitionList}}" wx:key="index" wx:for-item="item" wx:for-index="index" bindtap="onBookExhibitionDetails" data-item="{{item}}">
-    <image wx:if="{{item.icon}}" src="{{item.icon}}" mode="" />
-    <image wx:else="" src="./img/banner.png" mode="" />
-    <view class="textBox"> <text>{{item.name}}</text></view>
+<view class="assembleContent">
+  <view class="titleBox">
+    <view class="frameBox"></view> <text class="titleTextBox"> 绾夸笂涔﹀睍</text>
   </view>
+  <view class="outside">
 
+    <view class="contentBox" wx:for="{{bookExhibitionList}}" wx:key="index" wx:for-item="item" wx:for-index="index" bindtap="onBookExhibitionDetails" data-item="{{item}}">
+      <image wx:if="{{item.icon}}" src="{{item.icon}}" mode="" />
+      <image wx:else="" src="/static/images/bookExhibitionList/banner.png" mode="" />
+      <view class="textBox" title="{{item.name}}"> <text>{{item.name}}</text></view>
+    </view>
+
+  </view>
 </view>
\ No newline at end of file
diff --git a/pages/bookExhibitionList/index.wxss b/pages/bookExhibitionList/index.wxss
index f45445e..25095c9 100644
--- a/pages/bookExhibitionList/index.wxss
+++ b/pages/bookExhibitionList/index.wxss
@@ -7,34 +7,37 @@
   flex-wrap: wrap;
   justify-content: space-between;
   margin: 15px;
+
+
 }
 
 .contentBox {
   width: 330rpx;
-  height: 130rpx;
+  /* height: 231rpx; */
   /* border: 1px #000 solid; */
   margin: 10px 0;
+  background-color: #fff;
 
 }
 
 image {
-  width: 100%;
-  height: 85%;
+  width: 327rpx;
+  height: 128rpx;
 }
 
 
 .textBox {
+  width: 280rpx;
+  /* height: 75rpx; */
+  font-size: 25rpx;
 
-  width: 320rpx;
-  font-size: 20rpx;
-  /* display: flex;
-  justify-content: center; */
   overflow: hidden;
   text-overflow: ellipsis;
   display: -webkit-box;
   -webkit-box-orient: vertical;
-  -webkit-line-clamp: 1;
-  text-align: center;
+  -webkit-line-clamp: 2;
+  /* text-align: center; */
+  margin: 20rpx;
 
 }
 
@@ -47,14 +50,11 @@
 
 .iconBox {
   transform: rotate(90deg);
-  /* margin: 10px;
-  margin-right: 20px; */
-  margin-left: 30rpx;
+  margin-left: 10rpx;
 }
 
 .swapRight {
-  /* margin-right: 10px; */
-
+  height: 20rpx;
 }
 
 .swapLeft {
@@ -62,11 +62,14 @@
 }
 
 .sortBox {
+  color: #999999;
   display: flex;
-  border-bottom: 1px #ededed solid;
+  /* border-bottom: 1px #ededed solid; */
   align-items: center;
   height: 86rpx;
   width: 195rpx;
+  margin-top: 8rpx;
+  font-size: 30rpx;
 }
 
 
@@ -75,6 +78,7 @@
   display: flex;
   margin: 10px;
   margin-left: 0;
+  padding-top: 30rpx;
 }
 
 .frameBox {
@@ -94,9 +98,16 @@
 
 .classification {
   width: 550rpx;
+  /* margin-bottom: 50rpx; */
+
 }
 
 .menuBox {
   display: flex;
+  height: 75rpx;
 
+}
+
+.assembleContent {
+  background-color: #F2F3F8;
 }
\ No newline at end of file
diff --git a/pages/bookServices/assort/index.js b/pages/bookServices/assort/index.js
index 024fe3d..a4a3240 100644
--- a/pages/bookServices/assort/index.js
+++ b/pages/bookServices/assort/index.js
@@ -27,7 +27,7 @@
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
    */
-  onReady() {},
+  onReady() { },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
@@ -39,27 +39,27 @@
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
    */
-  onHide() {},
+  onHide() { },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
    */
-  onUnload() {},
+  onUnload() { },
 
   /**
    * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
    */
-  onPullDownRefresh() {},
+  onPullDownRefresh() { },
 
   /**
    * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
    */
-  onReachBottom() {},
+  onReachBottom() { },
 
   /**
    * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
    */
-  onShareAppMessage() {},
+  onShareAppMessage() { },
 
   // 鑾峰彇渚ц竟鏍忓垪琛�
   getAssortList() {
@@ -79,7 +79,9 @@
       sort: { type: 'Asc', field: 'LinkOrder' },
     };
     app.MG.store.getStoreChannelList(query).then((res) => {
+
       const list = res.datas.filter((item) => item.refCode != 'jsek_homepageBookService');
+
       this.setData({
         assortList: list,
       });
@@ -118,6 +120,8 @@
       sort: { type: 'Asc', field: 'LinkOrder' },
     };
     app.MG.store.getStoreChannelList(query).then(async (res) => {
+
+      console.log(res, 'res');
       // 涓�绾у垎绫婚�変腑
       this.setData({
         startCheck: res.datas[0].refCode,
diff --git a/pages/cart/components/cart-bar/index.js b/pages/cart/components/cart-bar/index.js
deleted file mode 100644
index db7736c..0000000
--- a/pages/cart/components/cart-bar/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-Component({
-  options: {
-    addGlobalClass: true,
-  },
-  /**
-   * 缁勪欢鐨勫睘鎬у垪琛�
-   */
-  properties: {
-    isAllSelected: {
-      type: Boolean,
-      value: false,
-    },
-    totalAmount: {
-      type: Number,
-      value: 1,
-    },
-    totalGoodsNum: {
-      type: Number,
-      value: 0,
-      observer(num) {
-        const isDisabled = num == 0;
-        setTimeout(() => {
-          this.setData({
-            isDisabled,
-          });
-        });
-      },
-    },
-    totalDiscountAmount: {
-      type: Number,
-      value: 0,
-    },
-    bottomHeight: {
-      type: Number,
-      value: 100,
-    },
-    fixed: Boolean,
-  },
-  data: {
-    isDisabled: false,
-  },
-
-  methods: {
-    handleSelectAll() {
-      const { isAllSelected } = this.data;
-      this.setData({
-        isAllSelected: !isAllSelected,
-      });
-      this.triggerEvent('handleSelectAll', {
-        isAllSelected: isAllSelected,
-      });
-    },
-
-    handleToSettle() {
-      if (this.data.isDisabled) return;
-      this.triggerEvent('handleToSettle');
-    },
-  },
-});
diff --git a/pages/cart/components/cart-bar/index.wxml b/pages/cart/components/cart-bar/index.wxml
deleted file mode 100644
index 486a0d5..0000000
--- a/pages/cart/components/cart-bar/index.wxml
+++ /dev/null
@@ -1,31 +0,0 @@
-<view class="cart-bar__placeholder" wx:if="{{fixed}}" />
-<view class="cart-bar {{fixed ? 'cart-bar--fixed' : ''}} flex flex-v-center" style="bottom: {{fixed ? 'calc(' + bottomHeight + 'rpx + env(safe-area-inset-bottom))' : ''}};">
-	<t-icon
-	 size="40rpx"
-	 color="{{isAllSelected ? '#FA4126' : '#BBBBBB'}}"
-	 name="{{isAllSelected ? 'check-circle-filled' : 'circle'}}"
-	 class="cart-bar__check"
-	 catchtap="handleSelectAll"
-	/>
-	<text>鍏ㄩ��</text>
-	<view class="cart-bar__total flex1">
-		<view>
-			<text class="cart-bar__total--bold text-padding-right">鎬昏</text>
-			<price
-			 price="{{totalAmount || '0'}}"
-			 fill="{{false}}"
-			 decimalSmaller
-			 class="cart-bar__total--bold cart-bar__total--price"
-			/>
-			<text class="cart-bar__total--normal">锛堜笉鍚繍璐癸級</text>
-		</view>
-		<view wx:if="{{totalDiscountAmount}}">
-			<text class="cart-bar__total--normal text-padding-right">宸蹭紭鎯�</text>
-			<price class="cart-bar__total--normal" price="{{totalDiscountAmount || '0'}}" fill="{{false}}" />
-		</view>
-	</view>
-	<view catchtap="handleToSettle" class="{{!isDisabled ? '' : 'disabled-btn'}} account-btn" hover-class="{{!isDisabled ? '' : 'hover-btn'}}">
-		鍘荤粨绠�({{totalGoodsNum}})
-	</view>
-</view>
-
diff --git a/pages/cart/components/cart-bar/index.wxss b/pages/cart/components/cart-bar/index.wxss
deleted file mode 100644
index 0e63f60..0000000
--- a/pages/cart/components/cart-bar/index.wxss
+++ /dev/null
@@ -1,80 +0,0 @@
-.cart-bar__placeholder {
-  height: 100rpx;
-}
-.flex {
-  display: flex;
-}
-.flex-v-center {
-  align-items: center;
-}
-.flex1 {
-  flex: 1;
-}
-.algin-bottom {
-  text-align: end;
-}
-.cart-bar--fixed {
-  position: fixed;
-  left: 0;
-  right: 0;
-  z-index: 99;
-  bottom: calc(100rpx + env(safe-area-inset-bottom));
-}
-
-.cart-bar {
-  height: 112rpx;
-  background-color: #fff;
-  border-top: 1rpx solid #e5e5e5;
-  padding: 16rpx 32rpx;
-  box-sizing: border-box;
-  font-size: 24rpx;
-  line-height: 36rpx;
-  color: #333;
-}
-
-.cart-bar .cart-bar__check {
-  margin-right: 12rpx;
-}
-
-.cart-bar .cart-bar__total {
-  margin-left: 24rpx;
-}
-
-.cart-bar .account-btn {
-  width: 192rpx;
-  height: 80rpx;
-  border-radius: 40rpx;
-  background-color: #fa4126;
-  font-size: 28rpx;
-  font-weight: bold;
-  line-height: 80rpx;
-  color: #ffffff;
-  text-align: center;
-}
-.cart-bar .disabled-btn {
-  background-color: #cccccc !important;
-}
-.cart-bar .hover-btn {
-  opacity: 0.5;
-}
-
-.cart-bar__total .cart-bar__total--bold {
-  font-size: 28rpx;
-  line-height: 40rpx;
-  color: #333;
-  font-weight: bold;
-}
-.cart-bar__total .cart-bar__total--normal {
-  font-size: 24rpx;
-  line-height: 32rpx;
-  color: #999;
-}
-
-.cart-bar__total .cart-bar__total--price {
-  color: #fa4126;
-  font-weight: bold;
-}
-
-.text-padding-right {
-  padding-right: 4rpx;
-}
diff --git a/pages/cart/components/cart-empty/index.js b/pages/cart/components/cart-empty/index.js
deleted file mode 100644
index 01cf9c3..0000000
--- a/pages/cart/components/cart-empty/index.js
+++ /dev/null
@@ -1,23 +0,0 @@
-Component({
-  properties: {
-    imgUrl: {
-      type: String,
-      value:
-        'https://cdn-we-retail.ym.tencent.com/miniapp/template/empty-cart.png',
-    },
-    tip: {
-      type: String,
-      value: '璐墿杞︽槸绌虹殑',
-    },
-    btnText: {
-      type: String,
-      value: '鍘婚椤�',
-    },
-  },
-  data: {},
-  methods: {
-    handleClick() {
-      this.triggerEvent('handleClick');
-    },
-  },
-});
diff --git a/pages/cart/components/cart-empty/index.json b/pages/cart/components/cart-empty/index.json
deleted file mode 100644
index b659310..0000000
--- a/pages/cart/components/cart-empty/index.json
+++ /dev/null
@@ -1,6 +0,0 @@
-{
-  "component": true,
-  "usingComponents": {
-    "t-image": "/components/webp-image/index"
-  }
-}
\ No newline at end of file
diff --git a/pages/cart/components/cart-empty/index.wxml b/pages/cart/components/cart-empty/index.wxml
deleted file mode 100644
index d0cdd43..0000000
--- a/pages/cart/components/cart-empty/index.wxml
+++ /dev/null
@@ -1,6 +0,0 @@
-<view class="cart-empty">
-	<t-image t-class="cart-img" src="{{imgUrl}}" />
-	<view class="tip">{{tip}}</view>
-	<view class="btn" bind:tap="handleClick">{{btnText}}</view>
-</view>
-
diff --git a/pages/cart/components/cart-empty/index.wxss b/pages/cart/components/cart-empty/index.wxss
deleted file mode 100644
index d074bc3..0000000
--- a/pages/cart/components/cart-empty/index.wxss
+++ /dev/null
@@ -1,33 +0,0 @@
-.cart-empty {
-  padding: 64rpx 0rpx;
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  box-sizing: border-box;
-  height: calc(100vh - 100rpx);
-  background-color: #f5f5f5;
-}
-.cart-empty .cart-img {
-  width: 160rpx;
-  height: 160rpx;
-  margin-bottom: 24rpx;
-}
-
-.cart-empty .tip {
-  font-size: 28rpx;
-  line-height: 40rpx;
-  color: #999;
-  margin-bottom: 24rpx;
-}
-.cart-empty .btn {
-  width: 240rpx;
-  height: 72rpx;
-  border-radius: 36rpx;
-  text-align: center;
-  line-height: 72rpx;
-  border: 2rpx solid #fa4126;
-  color: #fa4126;
-  background-color: transparent;
-  font-size: 28rpx;
-  font-weight: bold;
-}
diff --git a/pages/cart/components/cart-group/index.js b/pages/cart/components/cart-group/index.js
deleted file mode 100644
index 99a908d..0000000
--- a/pages/cart/components/cart-group/index.js
+++ /dev/null
@@ -1,166 +0,0 @@
-import Toast from 'tdesign-miniprogram/toast/index';
-
-const shortageImg =
-  'https://cdn-we-retail.ym.tencent.com/miniapp/cart/shortage.png';
-
-Component({
-  isSpecsTap: false, // 鏍囪鏈鐐瑰嚮浜嬩欢鏄惁鍥犱负鐐瑰嚮specs瑙﹀彂锛堢敱浜庡簳灞俫oods-card缁勪欢娌℃湁catch specs鐐瑰嚮浜嬩欢锛屽彧鑳藉湪姝ゅ鍔犵姸鎬佹潵閬垮厤鐐瑰嚮specs鏃惰Е鍙戣烦杞晢鍝佽鎯咃級
-  externalClasses: ['wr-class'],
-  properties: {
-    storeGoods: {
-      type: Array,
-      observer(storeGoods) {
-        for (const store of storeGoods) {
-          for (const activity of store.promotionGoodsList) {
-            for (const goods of activity.goodsPromotionList) {
-              goods.specs = goods.specInfo.map((item) => item.specValue); // 鐩墠浠呭睍绀哄晢鍝佸凡閫夎鏍肩殑鍊�
-            }
-          }
-          for (const goods of store.shortageGoodsList) {
-            goods.specs = goods.specInfo.map((item) => item.specValue); // 鐩墠浠呭睍绀哄晢鍝佸凡閫夎鏍肩殑鍊�
-          }
-        }
-
-        this.setData({ _storeGoods: storeGoods });
-      },
-    },
-    invalidGoodItems: {
-      type: Array,
-      observer(invalidGoodItems) {
-        invalidGoodItems.forEach((goods) => {
-          goods.specs = goods.specInfo.map((item) => item.specValue); // 鐩墠浠呭睍绀哄晢鍝佸凡閫夎鏍肩殑鍊�
-        });
-        this.setData({ _invalidGoodItems: invalidGoodItems });
-      },
-    },
-    thumbWidth: { type: null },
-    thumbHeight: { type: null },
-  },
-
-  data: {
-    shortageImg,
-    isShowSpecs: false,
-    currentGoods: {},
-    isShowToggle: false,
-    _storeGoods: [],
-    _invalidGoodItems: [],
-  },
-
-  methods: {
-    // 鍒犻櫎鍟嗗搧
-    deleteGoods(e) {
-      const { goods } = e.currentTarget.dataset;
-      this.triggerEvent('delete', { goods });
-    },
-
-    // 娓呯┖澶辨晥鍟嗗搧
-    clearInvalidGoods() {
-      this.triggerEvent('clearinvalidgoods');
-    },
-
-    // 閫変腑鍟嗗搧
-    selectGoods(e) {
-      const { goods } = e.currentTarget.dataset;
-      this.triggerEvent('selectgoods', {
-        goods,
-        isSelected: !goods.isSelected,
-      });
-    },
-
-    changeQuantity(num, goods) {
-      this.triggerEvent('changequantity', {
-        goods,
-        quantity: num,
-      });
-    },
-    changeStepper(e) {
-      const { value } = e.detail;
-      const { goods } = e.currentTarget.dataset;
-      let num = value;
-      if (value > goods.stack) {
-        num = goods.stack;
-      }
-      this.changeQuantity(num, goods);
-    },
-
-    input(e) {
-      const { value } = e.detail;
-      const { goods } = e.currentTarget.dataset;
-      const num = value;
-      this.changeQuantity(num, goods);
-    },
-
-    overlimit(e) {
-      const text =
-        e.detail.type === 'minus'
-          ? '璇ュ晢鍝佹暟閲忎笉鑳藉噺灏戜簡鍝�'
-          : '鍚屼竴鍟嗗搧鏈�澶氳喘涔�999浠�';
-      Toast({
-        context: this,
-        selector: '#t-toast',
-        message: text,
-      });
-    },
-
-    // 鍘诲噾鍗�/鍐嶉�涢��
-    gotoBuyMore(e) {
-      const { promotion, storeId = '' } = e.currentTarget.dataset;
-      this.triggerEvent('gocollect', { promotion, storeId });
-    },
-
-    // 閫変腑闂ㄥ簵
-    selectStore(e) {
-      const { storeIndex } = e.currentTarget.dataset;
-      const store = this.data.storeGoods[storeIndex];
-      const isSelected = !store.isSelected;
-      if (store.storeStockShortage && isSelected) {
-        Toast({
-          context: this,
-          selector: '#t-toast',
-          message: '閮ㄥ垎鍟嗗搧搴撳瓨涓嶈冻',
-        });
-        return;
-      }
-      this.triggerEvent('selectstore', {
-        store,
-        isSelected,
-      });
-    },
-
-    // 灞曞紑/鏀惰捣鍒囨崲
-    showToggle() {
-      this.setData({
-        isShowToggle: !this.data.isShowToggle,
-      });
-    },
-
-    // 灞曠ず瑙勬牸popup
-    specsTap(e) {
-      this.isSpecsTap = true;
-      const { goods } = e.currentTarget.dataset;
-      this.setData({
-        isShowSpecs: true,
-        currentGoods: goods,
-      });
-    },
-
-    hideSpecsPopup() {
-      this.setData({
-        isShowSpecs: false,
-      });
-    },
-
-    goGoodsDetail(e) {
-      if (this.isSpecsTap) {
-        this.isSpecsTap = false;
-        return;
-      }
-      const { goods } = e.currentTarget.dataset;
-      this.triggerEvent('goodsclick', { goods });
-    },
-
-    gotoCoupons() {
-      wx.navigateTo({ url: '/pages/coupon/coupon-list/index' });
-    },
-  },
-});
diff --git a/pages/cart/components/cart-group/index.json b/pages/cart/components/cart-group/index.json
deleted file mode 100644
index 74081a3..0000000
--- a/pages/cart/components/cart-group/index.json
+++ /dev/null
@@ -1,10 +0,0 @@
-{
-  "component": true,
-  "usingComponents": {
-    "t-toast": "tdesign-miniprogram/toast/toast",
-    "t-icon": "tdesign-miniprogram/icon/icon",
-    "t-stepper": "tdesign-miniprogram/stepper/stepper",
-    "swipeout": "/components/swipeout/index",
-    "goods-card": "../../components/goods-card/index"
-  }
-}
\ No newline at end of file
diff --git a/pages/cart/components/cart-group/index.wxml b/pages/cart/components/cart-group/index.wxml
deleted file mode 100644
index 9e3c1d9..0000000
--- a/pages/cart/components/cart-group/index.wxml
+++ /dev/null
@@ -1,152 +0,0 @@
-<wxs src="./index.wxs" module="handlePromotion" />
-<wxs src="./utils.wxs" module="utils" />
-
-<view class="cart-group">
-  <view class="goods-wrap" wx:for="{{_storeGoods}}" wx:for-item="store" wx:for-index="si" wx:key="storeId">
-    <view class="cart-store">
-      <t-icon
-        size="40rpx"
-        color="{{store.isSelected ? '#FA4126' : '#BBBBBB'}}"
-        name="{{store.isSelected ? 'check-circle-filled' : 'circle'}}"
-        class="cart-store__check"
-        bindtap="selectStore"
-        data-store-index="{{si}}"
-      />
-      <view class="cart-store__content">
-        <view class="store-title">
-          <t-icon prefix="wr" size="40rpx" color="#333333" name="store" />
-          <view class="store-name">{{store.storeName}}</view>
-        </view>
-        <view class="get-coupon" catch:tap="gotoCoupons">浼樻儬鍒�</view>
-      </view>
-    </view>
-    <block wx:for="{{store.promotionGoodsList}}" wx:for-item="promotion" wx:for-index="promoindex" wx:key="promoindex">
-      <view
-        class="promotion-wrap"
-        wx:if="{{handlePromotion.hasPromotion(promotion.promotionCode)}}"
-        bindtap="gotoBuyMore"
-        data-promotion="{{promotion}}"
-        data-store-id="{{store.storeId}}"
-      >
-        <view class="promotion-title">
-          <view class="promotion-icon">{{promotion.tag}}</view>
-          <view class="promotion-text">{{promotion.description}}</view>
-        </view>
-        <view class="promotion-action action-btn" hover-class="action-btn--active">
-          <view class="promotion-action-label"> {{promotion.isNeedAddOnShop == 1 ? '鍘诲噾鍗�' : '鍐嶉�涢��'}} </view>
-          <t-icon name="chevron-right" size="32rpx" color="#BBBBBB" />
-        </view>
-      </view>
-      <view
-        class="goods-item"
-        wx:for="{{promotion.goodsPromotionList}}"
-        wx:for-item="goods"
-        wx:for-index="gi"
-        wx:key="extKey"
-      >
-        <swipeout right-width="{{ 72 }}">
-          <view class="goods-item-info">
-            <view class="check-wrap" catchtap="selectGoods" data-goods="{{goods}}">
-              <t-icon
-                size="40rpx"
-                color="{{goods.isSelected ? '#FA4126' : '#BBBBBB'}}"
-                name="{{goods.isSelected ? 'check-circle-filled' : 'circle'}}"
-                class="check"
-              />
-            </view>
-            <view class="goods-sku-info">
-              <goods-card
-                layout="horizontal-wrap"
-                thumb-width="{{thumbWidth}}"
-                thumb-height="{{thumbHeight}}"
-                centered="{{true}}"
-                data="{{goods}}"
-                data-goods="{{goods}}"
-                catchspecs="specsTap"
-                catchclick="goGoodsDetail"
-              >
-                <view slot="thumb-cover" class="stock-mask" wx:if="{{goods.shortageStock || goods.stockQuantity <= 3}}">
-                  浠呭墿{{goods.stockQuantity}}浠�
-                </view>
-                <view slot="append-body" class="goods-stepper">
-                  <view class="stepper-tip" wx:if="{{goods.shortageStock}}">搴撳瓨涓嶈冻</view>
-                  <t-stepper
-                    classname="stepper-info"
-                    value="{{goods.quantity}}"
-                    min="{{1}}"
-                    max="{{999}}"
-                    data-goods="{{goods}}"
-                    data-gi="{{gi}}"
-                    data-si="{{si}}"
-                    catchchange="changeStepper"
-                    catchblur="input"
-                    catchoverlimit="overlimit"
-                    theme="filled"
-                  />
-                </view>
-              </goods-card>
-            </view>
-          </view>
-          <view slot="right" class="swiper-right-del" bindtap="deleteGoods" data-goods="{{goods}}"> 鍒犻櫎 </view>
-        </swipeout>
-      </view>
-      <view
-        class="promotion-line-wrap"
-        wx:if="{{handlePromotion.hasPromotion(promotion.promotionCode) && promoindex != (store.promotionGoodsList.length - 2)}}"
-      >
-        <view class="promotion-line" />
-      </view>
-    </block>
-    <block wx:if="{{store.shortageGoodsList.length>0}}">
-      <view
-        class="goods-item"
-        wx:for="{{store.shortageGoodsList}}"
-        wx:for-item="goods"
-        wx:for-index="gi"
-        wx:key="extKey"
-      >
-        <swipeout right-width="{{ 72 }}">
-          <view class="goods-item-info">
-            <view class="check-wrap">
-              <view class="unCheck-icon" />
-            </view>
-            <view class="goods-sku-info">
-              <goods-card
-                layout="horizontal-wrap"
-                thumb-width="{{thumbWidth}}"
-                thumb-height="{{thumbHeight}}"
-                centered="{{true}}"
-                data="{{goods}}"
-                data-goods="{{goods}}"
-                catchspecs="specsTap"
-                catchclick="goGoodsDetail"
-              >
-                <view slot="thumb-cover" class="no-storage-mask" wx:if="{{goods.stockQuantity <=0}}">
-                  <view class="no-storage-content">鏃犺揣</view>
-                </view>
-              </goods-card>
-            </view>
-          </view>
-          <view slot="right" class="swiper-right-del" bindtap="deleteGoods" data-goods="{{goods}}"> 鍒犻櫎 </view>
-        </swipeout>
-      </view>
-      <view
-        class="promotion-line-wrap"
-        wx:if="{{handlePromotion.hasPromotion(promotion.promotionCode) && promoindex != (store.promotionGoodsList.length - 2)}}"
-      >
-        <view class="promotion-line" />
-      </view>
-    </block>
-  </view>
-</view>
-<specs-popup
-  show="{{isShowSpecs}}"
-  title="{{currentGoods.title || ''}}"
-  price="{{currentGoods.price || ''}}"
-  thumb="{{utils.imgCut(currentGoods.thumb, 180, 180)}}"
-  specs="{{currentGoods.specs || []}}"
-  zIndex="{{999}}"
-  bindclose="hideSpecsPopup"
-/>
-
-<t-toast id="t-toast" />
diff --git a/pages/cart/components/cart-group/index.wxs b/pages/cart/components/cart-group/index.wxs
deleted file mode 100644
index 39f1e0b..0000000
--- a/pages/cart/components/cart-group/index.wxs
+++ /dev/null
@@ -1,5 +0,0 @@
-var hasPromotion = function (code) {
-  return code && code !== 'EMPTY_PROMOTION';
-};
-
-module.exports.hasPromotion = hasPromotion;
diff --git a/pages/cart/components/cart-group/index.wxss b/pages/cart/components/cart-group/index.wxss
deleted file mode 100644
index 641101f..0000000
--- a/pages/cart/components/cart-group/index.wxss
+++ /dev/null
@@ -1,335 +0,0 @@
-.cart-group {
-  border-radius: 8rpx;
-}
-.cart-group .goods-wrap {
-  margin-top: 40rpx;
-  background-color: #fff;
-  border-radius: 8rpx;
-  overflow: hidden;
-}
-.cart-group .goods-wrap:first-of-type {
-  margin-top: 0;
-}
-.cart-group .cart-store {
-  height: 96rpx;
-  background-color: #fff;
-  box-sizing: border-box;
-  display: flex;
-  align-items: center;
-  padding: 0rpx 24rpx 0rpx 36rpx;
-}
-.cart-group .cart-store .cart-store__check {
-  padding: 28rpx 32rpx 28rpx 0rpx;
-}
-.cart-group .cart-store__content {
-  box-sizing: border-box;
-  flex: auto;
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-}
-.cart-group .cart-store__content .store-title {
-  flex: auto;
-  font-size: 28rpx;
-  line-height: 40rpx;
-  color: #333333;
-  display: flex;
-  align-items: center;
-  font-weight: bold;
-  overflow: hidden;
-}
-
-.cart-group .cart-store__content .store-title .wr-store {
-  font-size: 32rpx;
-}
-.cart-group .cart-store__content .store-title .store-name {
-  overflow: hidden;
-  white-space: nowrap;
-  text-overflow: ellipsis;
-  margin-left: 12rpx;
-}
-.cart-group .cart-store__content .get-coupon {
-  width: 112rpx;
-  height: 40rpx;
-  border-radius: 20rpx;
-  background-color: #ffecf9;
-  line-height: 40rpx;
-  text-align: center;
-  font-size: 26rpx;
-  color: #fa4126;
-}
-
-.cart-group .promotion-wrap {
-  display: flex;
-  justify-content: space-between;
-  align-items: center;
-  padding: 0rpx 24rpx 32rpx 36rpx;
-  background-color: #ffffff;
-  font-size: 24rpx;
-  line-height: 36rpx;
-  color: #222427;
-}
-.cart-group .promotion-wrap .promotion-title {
-  font-weight: bold;
-  flex: auto;
-  overflow: hidden;
-  margin-right: 20rpx;
-  display: flex;
-  align-items: center;
-}
-.cart-group .promotion-wrap .promotion-title .promotion-icon {
-  flex: none;
-  font-weight: normal;
-  display: inline-block;
-  padding: 0 8rpx;
-  color: #ffffff;
-  background: #fa4126;
-  font-size: 20rpx;
-  height: 32rpx;
-  line-height: 32rpx;
-  margin-right: 16rpx;
-  border-radius: 16rpx;
-}
-.cart-group .promotion-wrap .promotion-title .promotion-text {
-  flex: auto;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  white-space: nowrap;
-}
-.cart-group .promotion-wrap .promotion-action {
-  flex: none;
-  color: #333333;
-}
-.cart-group .promotion-line-wrap {
-  background-color: #fff;
-  height: 2rpx;
-  display: flex;
-  justify-content: flex-end;
-}
-.cart-group .promotion-line-wrap .promotion-line {
-  width: 684rpx;
-  height: 2rpx;
-  background-color: #e6e6e6;
-}
-.cart-group .goods-item-info {
-  display: flex;
-  background-color: #fff;
-  align-items: flex-start;
-}
-.cart-group .goods-item-info .check-wrap {
-  margin-top: 56rpx;
-  padding: 20rpx 28rpx 20rpx 36rpx;
-}
-
-.cart-group .goods-item-info .check-wrap .unCheck-icon {
-  box-sizing: border-box;
-  width: 36rpx;
-  height: 36rpx;
-  border-radius: 20rpx;
-  background: #f5f5f5;
-  border: 2rpx solid #bbbbbb;
-}
-
-.cart-group .goods-item-info .goods-sku-info {
-  padding: 0rpx 32rpx 40rpx 0;
-  flex-grow: 1;
-}
-.cart-group .goods-item-info .goods-sku-info .stock-mask {
-  position: absolute;
-  color: #fff;
-  font-size: 24rpx;
-  bottom: 0rpx;
-  background-color: rgba(0, 0, 0, 0.5);
-  width: 100%;
-  height: 40rpx;
-  line-height: 40rpx;
-  text-align: center;
-}
-.cart-group .goods-item-info .goods-sku-info .goods-stepper {
-  position: absolute;
-  right: 0;
-  bottom: 8rpx;
-}
-.cart-group .goods-item-info .goods-sku-info .goods-stepper .stepper-tip {
-  position: absolute;
-  top: -36rpx;
-  right: 0;
-  height: 28rpx;
-  color: #ff2525;
-  font-size: 20rpx;
-  line-height: 28rpx;
-}
-
-.cart-group .shortage-line {
-  width: 662rpx;
-  height: 2rpx;
-  background-color: #e6e6e6;
-  margin: 0 auto;
-}
-.cart-group .shortage-goods-wrap {
-  background-color: #fff;
-}
-.cart-group .shortage-goods-wrap .shortage-tip-title {
-  height: 72rpx;
-  line-height: 72rpx;
-  padding-left: 28rpx;
-  font-size: 24rpx;
-  color: #999;
-}
-.stepper-info {
-  margin-left: auto;
-}
-.invalid-goods-wrap {
-  background-color: #fff;
-  border-radius: 8rpx;
-  margin-top: 40rpx;
-}
-.invalid-goods-wrap .invalid-head {
-  display: flex;
-  justify-content: space-between;
-  padding: 30rpx 20rpx;
-  font-size: 24rpx;
-  border-bottom: 2rpx solid #f6f6f6;
-}
-.invalid-goods-wrap .invalid-head .invalid-title {
-  color: #333;
-  font-size: 28rpx;
-  font-weight: 600;
-}
-.invalid-goods-wrap .invalid-head .invalid-clear {
-  color: #fa4126;
-}
-.invalid-goods-wrap .toggle {
-  display: flex;
-  height: 80rpx;
-  justify-content: center;
-  align-items: center;
-  font-size: 24rpx;
-  color: #fa4126;
-}
-.invalid-goods-wrap .toggle .m-r-6 {
-  margin-right: 6rpx;
-}
-.invalid-goods-wrap .toggle .top-icon {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  border-left: 10rpx solid transparent;
-  border-right: 10rpx solid transparent;
-  border-bottom: 10rpx solid #fa4126;
-}
-.invalid-goods-wrap .toggle .down-icon {
-  display: inline-block;
-  width: 0;
-  height: 0;
-  border-left: 10rpx solid transparent;
-  border-right: 10rpx solid transparent;
-  border-top: 10rpx solid #fa4126;
-}
-.action-btn {
-  display: flex;
-  align-items: center;
-}
-.action-btn .action-btn-arrow {
-  font-size: 20rpx;
-  margin-left: 8rpx;
-}
-.action-btn--active {
-  opacity: 0.5;
-}
-
-.swiper-right-del {
-  height: calc(100% - 40rpx);
-  width: 144rpx;
-  background-color: #fa4126;
-  font-size: 28rpx;
-  color: white;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-.goods-stepper .stepper {
-  border: none;
-  border-radius: 0;
-  height: auto;
-  width: 168rpx;
-  overflow: visible;
-}
-.goods-stepper .stepper .stepper__minus,
-.goods-stepper .stepper .stepper__plus {
-  width: 44rpx;
-  height: 44rpx;
-  background-color: #f5f5f5;
-}
-.goods-stepper .stepper .stepper__minus--hover,
-.goods-stepper .stepper .stepper__plus--hover {
-  background-color: #f5f5f5;
-}
-.goods-stepper .stepper .stepper__minus .wr-icon,
-.goods-stepper .stepper .stepper__plus .wr-icon {
-  font-size: 24rpx;
-}
-.goods-stepper .stepper .stepper__minus {
-  position: relative;
-}
-.goods-stepper .stepper .stepper__minus::after {
-  position: absolute;
-  display: block;
-  content: ' ';
-  left: -20rpx;
-  right: -5rpx;
-  top: -20rpx;
-  bottom: -20rpx;
-  background-color: transparent;
-}
-.goods-stepper .stepper .stepper__plus {
-  position: relative;
-}
-.goods-stepper .stepper .stepper__plus::after {
-  position: absolute;
-  display: block;
-  content: ' ';
-  left: -5rpx;
-  right: -20rpx;
-  top: -20rpx;
-  bottom: -20rpx;
-  background-color: transparent;
-}
-.goods-stepper .stepper .stepper__input {
-  width: 72rpx;
-  height: 44rpx;
-  background-color: #f5f5f5;
-  font-size: 24rpx;
-  color: #222427;
-  font-weight: 600;
-  border-left: none;
-  border-right: none;
-  min-height: 40rpx;
-  margin: 0 4rpx;
-  display: flex;
-  align-items: center;
-}
-
-.goods-sku-info .no-storage-mask {
-  position: absolute;
-  color: #fff;
-  bottom: 0rpx;
-  left: 0rpx;
-  background-color: rgba(0, 0, 0, 0.1);
-  height: 192rpx;
-  width: 192rpx;
-  border-radius: 8rpx;
-  display: flex;
-  justify-content: center;
-  align-items: center;
-}
-
-.no-storage-mask .no-storage-content {
-  width: 128rpx;
-  height: 128rpx;
-  border-radius: 64rpx;
-  background-color: rgba(0, 0, 0, 0.4);
-  text-align: center;
-  line-height: 128rpx;
-  font-size: 28rpx;
-}
diff --git a/pages/cart/components/cart-group/utils.wxs b/pages/cart/components/cart-group/utils.wxs
deleted file mode 100644
index f887eba..0000000
--- a/pages/cart/components/cart-group/utils.wxs
+++ /dev/null
@@ -1,20 +0,0 @@
-module.exports.slice = function(arr) {
-  return arr.slice(0, 2);
-};
-module.exports.imgCut = function(url, width, height) {
-  if (url && (url.slice(0, 5) === 'http:' || url.slice(0, 6) === 'https:' || url.slice(0, 2) === '//')) {
-    var argsStr = 'imageMogr2/thumbnail/!' + width +  'x' + height + 'r';
-    if (url.indexOf('?') > -1) {
-      url = url + '&' + argsStr;
-    } else {
-      url = url + '?' + argsStr;
-    }
-    if (url.slice(0, 5) === 'http:') {
-      url = 'https://' + url.slice(5)
-    }
-    if (url.slice(0, 2) === '//') {
-      url = 'https:' + url
-    }
-  }
-  return url;
-};
diff --git a/pages/cart/components/goods-card/index.js b/pages/cart/components/goods-card/index.js
deleted file mode 100644
index c59658c..0000000
--- a/pages/cart/components/goods-card/index.js
+++ /dev/null
@@ -1,243 +0,0 @@
-Component({
-  options: {
-    multipleSlots: true, // 鍦ㄧ粍浠跺畾涔夋椂鐨勯�夐」涓惎鐢ㄥslot鏀寔
-    addGlobalClass: true,
-  },
-  intersectionObserverContext: null,
-
-  externalClasses: [
-    'card-class',
-    'title-class',
-    'desc-class',
-    'num-class',
-    'thumb-class',
-    'specs-class',
-    'price-class',
-    'origin-price-class',
-    'price-prefix-class',
-  ],
-
-  properties: {
-    hidden: {
-      // 璁剧疆涓簄ull浠h〃涓嶅仛绫诲瀷杞崲
-      type: null,
-      value: false,
-      observer(hidden) {
-        // null灏辨槸浠h〃娌℃湁璁剧疆锛屾病鏈夎缃殑璇濅笉setData锛岄槻姝㈢鍏堢粍浠惰Е鍙戠殑setHidden鎿嶄綔琚鐩�
-        if (hidden !== null) {
-          this.setHidden(!!hidden);
-        }
-      },
-    },
-    id: {
-      type: String,
-      // `goods-card-88888888`
-      // 涓嶈兘鍦ㄨ繖閲屽啓鐢熸垚閫昏緫锛屽鏋滃湪杩欓噷鍐欙紝閭d箞鍋囪鏈夊涓猤oods-list鏃讹紝浠栦滑灏嗗叡浜繖涓��
-      value: '',
-      observer: (id) => {
-        this.genIndependentID(id);
-        if (this.properties.thresholds?.length) {
-          this.createIntersectionObserverHandle();
-        }
-      },
-    },
-    data: {
-      type: Object,
-      observer(goods) {
-        // 鏈塈D鐨勫晢鍝佹墠娓叉煋
-        if (!goods) {
-          return;
-        }
-
-        /** 鍒掔嚎浠锋槸鍚︽湁鏁� */
-        let isValidityLinePrice = true;
-        // 鍒ゆ柇涓�娆″垝绾夸环鏍兼槸鍚﹀悎鐞�
-        if (
-          goods.originPrice &&
-          goods.price &&
-          goods.originPrice < goods.price
-        ) {
-          isValidityLinePrice = false;
-        }
-
-        // 鏁插畾鎹㈣鏁伴噺榛樿鍊�
-        if (goods.lineClamp === undefined || goods.lineClamp <= 0) {
-          // tag鏁扮粍闀垮害 澶т簬0 涓� 鍙
-          // 鎸囧畾鎹㈣涓�1琛�
-          if ((goods.tags?.length || 0) > 0 && !goods.hideKey?.tags) {
-            goods.lineClamp = 1;
-          } else {
-            goods.lineClamp = 2;
-          }
-        }
-
-        this.setData({ goods, isValidityLinePrice });
-      },
-    },
-    layout: {
-      type: String,
-      value: 'horizontal',
-    },
-    thumbMode: {
-      type: String,
-      value: 'aspectFill',
-    },
-    priceFill: {
-      type: Boolean,
-      value: true,
-    },
-    currency: {
-      type: String,
-      value: '楼',
-    },
-    lazyLoad: {
-      type: Boolean,
-      value: false,
-    },
-    centered: {
-      type: Boolean,
-      value: false,
-    },
-    pricePrefix: {
-      type: String,
-      value: '',
-    },
-    /** 鍏冪礌鍙鐩戞帶闃堝��, 鏁扮粍闀垮害澶т簬0灏卞垱寤� */
-    thresholds: {
-      type: Array,
-      value: [],
-      observer(current) {
-        if (current && current.length) {
-          this.createIntersectionObserverHandle();
-        } else {
-          this.clearIntersectionObserverHandle();
-        }
-      },
-    },
-    specsIconClassPrefix: {
-      type: String,
-      value: 'wr',
-    },
-    specsIcon: {
-      type: String,
-      value: 'expand_more',
-    },
-    addCartIconClassPrefix: {
-      type: String,
-      value: 'wr',
-    },
-    addCartIcon: {
-      type: String,
-      value: 'cart',
-    },
-  },
-
-  data: {
-    hiddenInData: false,
-    independentID: '',
-    goods: { id: '' },
-    /** 淇濊瘉鍒掔嚎浠锋牸涓嶅皬浜庡師浠凤紝鍚﹀垯涓嶆覆鏌撳垝绾夸环 */
-    isValidityLinePrice: false,
-  },
-
-  lifetimes: {
-    ready() {
-      this.init();
-    },
-    detached() {
-      this.clear();
-    },
-  },
-
-  methods: {
-    clickHandle() {
-      this.triggerEvent('click', { goods: this.data.goods });
-    },
-    clickThumbHandle() {
-      this.triggerEvent('thumb', { goods: this.data.goods });
-    },
-    clickSpecsHandle() {
-      this.triggerEvent('specs', { goods: this.data.goods });
-    },
-    clickTagHandle(evt) {
-      const { index } = evt.currentTarget.dataset;
-      this.triggerEvent('tag', { goods: this.data.goods, index });
-    },
-    // 鍔犲叆璐墿杞�
-    addCartHandle(e) {
-      const { id } = e.currentTarget;
-      const { id: cardID } = e.currentTarget.dataset;
-      this.triggerEvent('add-cart', {
-        ...e.detail,
-        id,
-        cardID,
-        goods: this.data.goods,
-      });
-    },
-    genIndependentID(id, cb) {
-      let independentID;
-      if (id) {
-        independentID = id;
-      } else {
-        independentID = `goods-card-${~~(Math.random() * 10 ** 8)}`;
-      }
-      this.setData({ independentID }, cb);
-    },
-
-    init() {
-      const { thresholds, id, hidden } = this.properties;
-      if (hidden !== null) {
-        this.setHidden(!!hidden);
-      }
-
-      this.genIndependentID(id || '', () => {
-        if (thresholds && thresholds.length) {
-          this.createIntersectionObserverHandle();
-        }
-      });
-    },
-
-    clear() {
-      this.clearIntersectionObserverHandle();
-    },
-
-    setHidden(hidden) {
-      this.setData({ hiddenInData: !!hidden });
-    },
-
-    createIntersectionObserverHandle() {
-      if (this.intersectionObserverContext || !this.data.independentID) {
-        return;
-      }
-
-      this.intersectionObserverContext = wx
-        .createIntersectionObserver(this, {
-          thresholds: this.properties.thresholds,
-        })
-        .relativeToViewport();
-
-      this.intersectionObserverContext.observe(
-        `#${this.data.independentID}`,
-        (res) => {
-          this.intersectionObserverCB(res);
-        },
-      );
-    },
-    intersectionObserverCB(ob) {
-      this.triggerEvent('ob', {
-        goods: this.data.goods,
-        context: this.intersectionObserverContext,
-        ob,
-      });
-    },
-    clearIntersectionObserverHandle() {
-      if (this.intersectionObserverContext) {
-        try {
-          this.intersectionObserverContext.disconnect();
-        } catch (e) {}
-
-        this.intersectionObserverContext = null;
-      }
-    },
-  },
-});
diff --git a/pages/cart/components/goods-card/index.json b/pages/cart/components/goods-card/index.json
deleted file mode 100644
index d76303b..0000000
--- a/pages/cart/components/goods-card/index.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-  "component": true,
-  "usingComponents": {
-    "price": "/components/price/index",
-    "t-tag": "tdesign-miniprogram/tag/tag",
-    "t-image": "/components/webp-image/index",
-    "t-icon": "tdesign-miniprogram/icon/icon"
-  }
-}
\ No newline at end of file
diff --git a/pages/cart/components/goods-card/index.wxml b/pages/cart/components/goods-card/index.wxml
deleted file mode 100644
index df4111f..0000000
--- a/pages/cart/components/goods-card/index.wxml
+++ /dev/null
@@ -1,75 +0,0 @@
-<view
-  id="{{independentID}}"
-  class="wr-goods-card card-class {{ layout }} {{ centered ? 'center' : ''}}"
-  bind:tap="clickHandle"
-  data-goods="{{ goods }}"
-  hidden="{{hiddenInData}}"
->
-	<view class="wr-goods-card__main">
-		<view class="wr-goods-card__thumb thumb-class" bind:tap="clickThumbHandle">
-			<!-- data-src 鏄柟渚垮姞璐姩鐢昏鍙栧浘鐗囩敤鐨� -->
-			<t-image
-			  t-class="wr-goods-card__thumb-com"
-			  wx:if="{{ !!goods.thumb && !goods.hideKey.thumb }}"
-			  src="{{ goods.thumb }}"
-			  mode="{{ thumbMode }}"
-			  lazy-load="{{ lazyLoad }}"
-			/>
-			<slot name="thumb-cover" />
-		</view>
-		<view class="wr-goods-card__body">
-			<view class="wr-goods-card__long_content">
-				<view wx:if="{{ goods.title && !goods.hideKey.title }}" class="wr-goods-card__title title-class" style="-webkit-line-clamp: {{ goods.lineClamp }};">
-					<slot name="before-title" />
-					{{ goods.title }}
-				</view>
-				<slot name="after-title" />
-				<view wx:if="{{ goods.desc && !goods.hideKey.desc }}" class="wr-goods-card__desc desc-class">{{ goods.desc }}</view>
-				<slot name="after-desc" />
-				<view wx:if="{{ goods.specs && goods.specs.length > 0 && !goods.hideKey.specs }}" class="wr-goods-card__specs__desc specs-class" bind:tap="clickSpecsHandle">
-					<view class="wr-goods-card__specs__desc-text">{{ goods.specs }}</view>
-					<t-icon name="chevron-down" size="32rpx" color="#999999" />
-				</view>
-				<view class="goods_tips" wx:if="{{goods.stockQuantity !== 0 && goods.quantity >= goods.stockQuantity}}">搴撳瓨涓嶈冻</view>
-			</view>
-			<view class="wr-goods-card__short_content">
-				<block wx:if="{{goods.stockQuantity !== 0}}">
-					<view wx:if="{{ pricePrefix }}" class="wr-goods-card__price__prefix price-prefix-class">{{ pricePrefix }}</view>
-					<slot name="price-prefix" />
-					<view wx:if="{{ goods.price && !goods.hideKey.price }}" class="wr-goods-card__price">
-						<price
-						  wr-class="price-class"
-						  symbol="{{currency}}"
-						  price="{{goods.price}}"
-						  fill="{{priceFill}}"
-						  decimalSmaller
-						/>
-					</view>
-					<view wx:if="{{ goods.originPrice && !goods.hideKey.originPrice && isValidityLinePrice }}" class="wr-goods-card__origin-price">
-						<price
-						  wr-class="origin-price-class"
-						  symbol="{{currency}}"
-						  price="{{goods.originPrice}}"
-						  fill="{{priceFill}}"
-						/>
-					</view>
-					<slot name="origin-price" />
-					<view wx:if="{{goods.num && !goods.hideKey.num}}" class="wr-goods-card__num num-class">
-						<text class="wr-goods-card__num__prefix">x </text>
-						{{ goods.num }}
-					</view>
-				</block>
-				<block wx:else>
-					<view class="no_storage">
-						<view>璇烽噸鏂伴�夋嫨鍟嗗搧瑙勬牸</view>
-						<view class="no_storage__right">閲嶉��</view>
-					</view>
-				</block>
-			</view>
-			<slot name="append-body" />
-		</view>
-		<slot name="footer" />
-	</view>
-	<slot name="append-card" />
-</view>
-
diff --git a/pages/cart/components/goods-card/index.wxss b/pages/cart/components/goods-card/index.wxss
deleted file mode 100644
index 6a7a4da..0000000
--- a/pages/cart/components/goods-card/index.wxss
+++ /dev/null
@@ -1,260 +0,0 @@
-.wr-goods-card {
-  box-sizing: border-box;
-  font-size: 24rpx;
-}
-/*  */
-.wr-goods-card__main {
-  position: relative;
-  display: flex;
-  padding: 0;
-  background: transparent;
-}
-
-.wr-goods-card.center .wr-goods-card__main {
-  align-items: flex-start;
-  justify-content: center;
-}
-
-.wr-goods-card__thumb {
-  flex-shrink: 0;
-  position: relative;
-  width: 140rpx;
-  height: 140rpx;
-}
-
-.wr-goods-card__thumb-com {
-  width: 192rpx;
-  height: 192rpx;
-  border-radius: 8rpx;
-  overflow: hidden;
-}
-.wr-goods-card__thumb:empty {
-  display: none;
-  margin: 0;
-}
-
-.wr-goods-card__body {
-  display: flex;
-  margin: 0 0 0 20rpx;
-  flex-direction: row;
-  flex: 1 1 auto;
-  min-height: 192rpx;
-}
-
-.wr-goods-card__long_content {
-  display: flex;
-  flex-direction: column;
-  overflow: hidden;
-  flex: 1 1 auto;
-}
-.wr-goods-card__long_content .goods_tips {
-  width: 100%;
-  margin-top: 16rpx;
-  text-align: right;
-  color: #fa4126;
-  font-size: 24rpx;
-  line-height: 32rpx;
-  font-weight: bold;
-}
-.wr-goods-card__title {
-  flex-shrink: 0;
-  font-size: 28rpx;
-  color: #333;
-  line-height: 40rpx;
-  font-weight: 400;
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  overflow: hidden;
-  word-break: break-word;
-}
-.wr-goods-card__title__prefix-tags {
-  display: inline-flex;
-}
-.wr-goods-card__title__prefix-tags .prefix-tag {
-  margin: 0 8rpx 0 0;
-}
-.wr-goods-card__desc {
-  font-size: 24rpx;
-  color: #f5f5f5;
-  line-height: 40rpx;
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-line-clamp: 2;
-  overflow: hidden;
-}
-.wr-goods-card__specs__desc,
-.wr-goods-card__specs__text {
-  font-size: 24rpx;
-  height: 32rpx;
-  line-height: 32rpx;
-  color: #999999;
-  margin: 8rpx 0;
-}
-.wr-goods-card__specs__desc {
-  display: flex;
-  align-self: flex-start;
-  flex-direction: row;
-  background: #f5f5f5;
-  border-radius: 8rpx;
-  padding: 4rpx 8rpx;
-}
-.wr-goods-card__specs__desc-text {
-  height: 100%;
-  max-width: 380rpx;
-  word-break: break-all;
-  overflow: hidden;
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-line-clamp: 1;
-}
-.wr-goods-card__specs__desc-icon {
-  line-height: inherit;
-  margin-left: 8rpx;
-  font-size: 24rpx;
-  color: #bbb;
-}
-.wr-goods-card__specs__text {
-  display: -webkit-box;
-  -webkit-box-orient: vertical;
-  -webkit-line-clamp: 1;
-  overflow: hidden;
-  text-overflow: ellipsis;
-  word-break: break-all;
-}
-.wr-goods-card__tags {
-  display: flex;
-  flex-direction: row;
-  flex-wrap: wrap;
-  margin: 16rpx 0 0 0;
-}
-.wr-goods-card__tag {
-  color: #fa550f;
-  background: transparent;
-  font-size: 20rpx;
-  border: 1rpx solid #fa550f;
-  padding: 0 8rpx;
-  height: 30rpx;
-  line-height: 30rpx;
-  margin: 0 8rpx 8rpx 0;
-  display: block;
-  overflow: hidden;
-  white-space: nowrap;
-  word-break: keep-all;
-  text-overflow: ellipsis;
-}
-.wr-goods-card__short_content {
-  display: flex;
-  flex-direction: column;
-  justify-content: flex-start;
-  align-items: flex-end;
-  margin: 0 0 0 46rpx;
-}
-.wr-goods-card__price__prefix {
-  order: 0;
-  color: #666;
-  margin: 0;
-}
-.wr-goods-card__price {
-  white-space: nowrap;
-  font-weight: bold;
-  order: 1;
-  color: #fa4126;
-  font-size: 36rpx;
-  margin: 0;
-  line-height: 48rpx;
-}
-.wr-goods-card__origin-price {
-  white-space: nowrap;
-  font-weight: normal;
-  order: 2;
-  color: #aaaaaa;
-  font-size: 24rpx;
-  margin: 0;
-}
-.wr-goods-card__num {
-  white-space: nowrap;
-  order: 4;
-  font-size: 24rpx;
-  color: #999;
-  margin: 20rpx 0 0 auto;
-}
-.wr-goods-card__num__prefix {
-  color: inherit;
-}
-.wr-goods-card__add-cart {
-  order: 3;
-  margin: auto 0 0 auto;
-}
-.wr-goods-card.horizontal-wrap .wr-goods-card__thumb {
-  width: 192rpx;
-  height: 192rpx;
-  border-radius: 8rpx;
-  overflow: hidden;
-}
-.wr-goods-card.horizontal-wrap .wr-goods-card__body {
-  flex-direction: column;
-}
-.wr-goods-card.horizontal-wrap .wr-goods-card__short_content {
-  flex-direction: row;
-  align-items: center;
-  margin: 16rpx 0 0 0;
-}
-
-.wr-goods-card.horizontal-wrap .wr-goods-card__num {
-  margin: 0 0 0 auto;
-}
-.wr-goods-card.vertical .wr-goods-card__main {
-  padding: 0 0 22rpx 0;
-  flex-direction: column;
-}
-.wr-goods-card.vertical .wr-goods-card__thumb {
-  width: 340rpx;
-  height: 340rpx;
-}
-.wr-goods-card.vertical .wr-goods-card__body {
-  margin: 20rpx 20rpx 0 20rpx;
-  flex-direction: column;
-}
-.wr-goods-card.vertical .wr-goods-card__long_content {
-  overflow: hidden;
-}
-.wr-goods-card.vertical .wr-goods-card__title {
-  line-height: 36rpx;
-}
-.wr-goods-card.vertical .wr-goods-card__short_content {
-  margin: 20rpx 0 0 0;
-}
-.wr-goods-card.vertical .wr-goods-card__price {
-  order: 2;
-  color: #fa4126;
-  margin: 20rpx 0 0 0;
-}
-.wr-goods-card.vertical .wr-goods-card__origin-price {
-  order: 1;
-}
-.wr-goods-card.vertical .wr-goods-card__add-cart {
-  position: absolute;
-  bottom: 20rpx;
-  right: 20rpx;
-}
-
-.wr-goods-card__short_content .no_storage {
-  display: flex;
-  align-items: center;
-  justify-content: space-between;
-  height: 40rpx;
-  color: #333;
-  font-size: 24rpx;
-  line-height: 32rpx;
-  width: 100%;
-}
-
-.no_storage .no_storage__right {
-  width: 80rpx;
-  height: 40rpx;
-  border-radius: 20rpx;
-  border: 2rpx solid #fa4126;
-  line-height: 40rpx;
-  text-align: center;
-  color: #fa4126;
-}
diff --git a/pages/cart/components/specs-popup/index.js b/pages/cart/components/specs-popup/index.js
deleted file mode 100644
index 650d2aa..0000000
--- a/pages/cart/components/specs-popup/index.js
+++ /dev/null
@@ -1,72 +0,0 @@
-Component({
-  options: {
-    addGlobalClass: true,
-    multipleSlots: true, // 鍦ㄧ粍浠跺畾涔夋椂鐨勯�夐」涓惎鐢ㄥslot鏀寔
-  },
-
-  properties: {
-    show: {
-      type: Boolean,
-      value: false,
-    },
-    value: {
-      type: String,
-      value: '',
-    },
-    title: {
-      type: String,
-      observer(newVal) {
-        this.setData({ 'goods.title': newVal });
-      },
-    },
-    price: {
-      type: String,
-      value: '',
-      observer(newVal) {
-        this.setData({ 'goods.price': newVal });
-      },
-    },
-    thumb: {
-      type: String,
-      value: '',
-      observer(newVal) {
-        this.setData({ 'goods.thumb': newVal });
-      },
-    },
-    thumbMode: {
-      type: String,
-      value: 'aspectFit',
-    },
-    zIndex: {
-      type: Number,
-      value: 99,
-    },
-    specs: {
-      type: Array,
-      value: [],
-    },
-  },
-
-  data: {
-    goods: {
-      title: '',
-      thumb: '',
-      price: '',
-      hideKey: {
-        originPrice: true,
-        tags: true,
-        specs: true,
-        num: true,
-      },
-    },
-  },
-  methods: {
-    onClose() {
-      this.triggerEvent('close');
-    },
-
-    onCloseOver() {
-      this.triggerEvent('closeover');
-    },
-  },
-});
diff --git a/pages/cart/components/specs-popup/index.wxml b/pages/cart/components/specs-popup/index.wxml
deleted file mode 100644
index 4ddcb43..0000000
--- a/pages/cart/components/specs-popup/index.wxml
+++ /dev/null
@@ -1,26 +0,0 @@
-<t-popup
-  close-on-overlay-click="{{true}}"
-  visible="{{show}}"
-  placement="bottom"
-  z-index="{{zIndex}}"
->
-	<view class="specs-popup">
-		<view>
-			<goods-card data="{{goods}}" layout="horizontal-wrap" thumb-mode="{{thumbMode}}" />
-			<view class="section">
-				<view class="title">宸查�夎鏍�</view>
-				<view class="options">
-					<view
-					  wx:for="{{specs}}"
-					  wx:for-item="spec"
-					  wx:key="spec"
-					  class="option"
-					>{{spec}}
-					</view>
-				</view>
-			</view>
-		</view>
-		<view class="bottom-btn" hover-class="bottom-btn--active" bindtap="onClose">鎴戠煡閬撲簡</view>
-	</view>
-</t-popup>
-
diff --git a/pages/cart/components/specs-popup/index.wxss b/pages/cart/components/specs-popup/index.wxss
deleted file mode 100644
index 359c185..0000000
--- a/pages/cart/components/specs-popup/index.wxss
+++ /dev/null
@@ -1,68 +0,0 @@
-.specs-popup {
-  width: 100vw;
-  box-sizing: border-box;
-  padding: 32rpx 32rpx calc(20rpx + env(safe-area-inset-bottom)) 32rpx;
-  max-height: 80vh;
-  display: flex;
-  flex-direction: column;
-  background-color: white;
-  border-radius: 20rpx 20rpx 0 0;
-}
-.specs-popup .section {
-  margin-top: 44rpx;
-  flex: auto;
-  overflow-y: scroll;
-  overflow-x: hidden;
-  -webkit-overflow-scrolling: touch;
-}
-.specs-popup .section .title {
-  font-size: 26rpx;
-  color: #4f5356;
-}
-.specs-popup .section .options {
-  color: #333333;
-  font-size: 24rpx;
-  margin-right: -26rpx;
-}
-.specs-popup .section .options .option {
-  display: inline-block;
-  margin-top: 24rpx;
-  height: 56rpx;
-  line-height: 56rpx;
-  padding: 0 16rpx;
-  border-radius: 8rpx;
-  background-color: #f5f5f5;
-  max-width: 100%;
-  box-sizing: border-box;
-  white-space: nowrap;
-  overflow: hidden;
-  text-overflow: ellipsis;
-}
-.specs-popup .section .options .option:not(:last-child) {
-  margin-right: 26rpx;
-}
-.specs-popup .bottom-btn {
-  margin-top: 42rpx;
-  position: relative;
-  height: 80rpx;
-  line-height: 80rpx;
-  text-align: center;
-  background-color: white;
-  color: #fa4126;
-}
-.specs-popup .bottom-btn--active {
-  opacity: 0.5;
-}
-.specs-popup .bottom-btn::after {
-  display: block;
-  content: ' ';
-  position: absolute;
-  left: 0;
-  top: 0;
-  width: 200%;
-  height: 200%;
-  border: 1px solid #fa4126;
-  border-radius: 80rpx;
-  transform: scale(0.5);
-  transform-origin: left top;
-}
diff --git a/pages/cart/index.js b/pages/cart/index.js
index 7622fcd..db4d31b 100644
--- a/pages/cart/index.js
+++ b/pages/cart/index.js
@@ -1,66 +1,120 @@
-// pages/cart/index.js
+const app = getApp();
+// import { getPublicImage } from '@/assets/js/middleGround/tool.js'
+import { getPublicImage } from '../../assets/js/middleGround/tool';
+
 Page({
-
-  /**
-   * 椤甸潰鐨勫垵濮嬫暟鎹�
-   */
   data: {
-
+    imgUrl: [],
+    shoppingCartData: [],
+    checkAll: false,
+    checkedList: [],
+    selectedCount: 0,
+    totalPrice: 0.00
   },
 
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
-   */
   onLoad(options) {
-
+    wx.setNavigationBarTitle({
+      title: '璐墿杞�'
+    });
+    this.shoppingCartGet();
   },
 
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
-   */
-  onReady() {
-
+  onDelete(e) {
+    const item = e.currentTarget.dataset.item;
+    app.MG.store.delShoppingCart({
+      ids: [item.id]
+    }).then(res => {
+      this.shoppingCartGet();
+      wx.showToast({ title: '浣犵偣鍑讳簡鍒犻櫎', icon: 'none' });
+    });
   },
 
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
-   */
-  onShow() {
+  shoppingCartGet() {
+    let query = {
+      start: 0,
+      size: 999,
+      filterList: [],
+      searchList: []
+    };
+    app.MG.store.getShoppingCartProductList(query).then(res => {
+      res.datas.forEach(item => {
+        item.imgUrl = getPublicImage(item.productMonWithLinkDto.product.icon, '', '160');
+      });
 
+      this.setData({
+        shoppingCartData: res.datas
+      });
+    });
   },
 
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
-   */
-  onHide() {
-
+  bottomChange(e) {
+    const checked = e.detail.value.length > 0;
+    const items = this.data.shoppingCartData.map(item => {
+      item.checked = checked;
+      return item;
+    });
+    this.setData({
+      shoppingCartData: items,
+      checkAll: checked
+    });
+    this.calculateSelectedCount();
+    this.calculateTotalPrice();
   },
 
-  /**
-   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
-   */
-  onUnload() {
+  HandelItemChange(e) {
+    const { item } = e.target.dataset;
+    const items = this.data.shoppingCartData
+    items.map(eitem => {
+      if (eitem.id == item.id) {
+        eitem.checked = e.detail.checked
+      }
 
+
+    })
+    const data = items.filter(item => item.checked)
+    const checkAll = data.length == this.data.shoppingCartData.length
+
+    this.setData({
+      shoppingCartData: items,
+      checkAll
+    });
+    this.calculateSelectedCount();
+    this.calculateTotalPrice();
   },
 
-  /**
-   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
-   */
-  onPullDownRefresh() {
-
+  calculateSelectedCount() {
+    const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
+    const selectedCount = selectedItems.length;
+    this.setData({
+      selectedCount
+    });
   },
 
-  /**
-   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
-   */
-  onReachBottom() {
-
+  calculateTotalPrice() {
+    const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
+    const totalPrice = selectedItems.reduce((total, item) => total + parseFloat(item.saleMethod.price), 0);
+    this.setData({
+      totalPrice: totalPrice.toFixed(2)
+    });
   },
+  goPaymentPage() {
 
-  /**
-   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
-   */
-  onShareAppMessage() {
+
+    const selectedItems = this.data.shoppingCartData.filter(item => item.checked);
+    console.log(selectedItems, 789);
+    const selectedIds = selectedItems.map(item => item.id);
+    console.log('閫変腑鐨勫晢鍝� id:', selectedIds);
+
+    app.MG.store.shoppingCartCreateOrder({ linkIds: selectedIds }).then(res => {
+      console.log(res.orderNumber, 456);
+      const url = '/pages/cart/paymentPage/index?orderNumber=' + res.orderNumber
+      wx.navigateTo({
+        url
+      });
+
+
+    })
+
 
   }
-})
\ No newline at end of file
+});
diff --git a/pages/cart/index.json b/pages/cart/index.json
index 03de311..cfbbec2 100644
--- a/pages/cart/index.json
+++ b/pages/cart/index.json
@@ -1,7 +1,9 @@
 {
   "component": true,
   "usingComponents": {
+    "t-checkbox": "tdesign-miniprogram/checkbox/checkbox",
     "t-swipe-cell": "tdesign-miniprogram/swipe-cell/swipe-cell",
-    "t-cell": "tdesign-miniprogram/cell/cell"
+    "t-cell": "tdesign-miniprogram/cell/cell",
+    "t-button": "tdesign-miniprogram/button/button"
   }
 }
\ No newline at end of file
diff --git a/pages/cart/index.wxml b/pages/cart/index.wxml
index c533dd9..4219ccc 100644
--- a/pages/cart/index.wxml
+++ b/pages/cart/index.wxml
@@ -1,2 +1,38 @@
-<!--pages/cart/index.wxml-->
-<text>pages/cart/index.wxml</text>
+<view class="outsideContentBox">
+  <!-- <checkbox-group bindchange="HandelItemChange"> -->
+  <t-swipe-cell wx:for="{{shoppingCartData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
+    <!-- <view class="contentBox"> -->
+    <!-- <view class="contentCheckbox">
+          <checkbox value="{{item.id}}" checked="{{item.checked}}"></checkbox>
+        </view> -->
+    <view class="itemWarp">
+      <t-cell bordered="{{false}}" title="{{item.productMonWithLinkDto.product.name}}" description="锟{item.saleMethod.price}}">
+        <view slot="left-icon" class="left-icon">
+          <view class="contentCheckbox">
+            <t-checkbox icon="rectangle" value=" {{item.id}}" data-item="{{item}}" checked="{{item.checked}}" bindchange="HandelItemChange" />
+          </view>
+          <view class="left-image">
+            <image src="{{item.imgUrl}}" class="imageStyle" mode="" />
+          </view>
+        </view>
+      </t-cell>
+    </view>
+    <!-- </view> -->
+    <view slot="right" class="btn delete-btn" bind:tap="onDelete" data-item="{{item}}">鍒犻櫎</view>
+  </t-swipe-cell>
+  <!-- </checkbox-group> -->
+</view>
+
+<view class="bottomBox">
+  <view class="checkGroupBox">
+    <checkbox-group bindchange="bottomChange">
+      <checkbox value="鍏ㄩ��" checked="{{checkAll}}">鍏ㄩ��</checkbox>
+    </checkbox-group>
+  </view>
+  <view class="settlementBox">
+    <view class="totalPrice">鎬讳环:<text class="totalPriceText">锟{totalPrice}}</text></view>
+    <view class="buttonBox">
+      <t-button class="tButtonBox" size="small" shape="round" bind:tap="goPaymentPage">鍘荤粨绠�({{selectedCount}})</t-button>
+    </view>
+  </view>
+</view>
\ No newline at end of file
diff --git a/pages/cart/index.wxss b/pages/cart/index.wxss
index 8c1e525..35eecdb 100644
--- a/pages/cart/index.wxss
+++ b/pages/cart/index.wxss
@@ -22,4 +22,148 @@
 
 .favor-btn {
   background-color: #0052d9;
+}
+
+.outsideContentBox {
+  padding: 30rpx;
+  background: #F2F3F8;
+  border-radius: 18rpx 18rpx 18rpx 18rpx;
+  padding-bottom: 230rpx;
+  /* height: 260rpx; */
+}
+
+.bottomBox {
+  background-color: #0052d9;
+  position: fixed;
+  bottom: 0;
+  left: 0;
+  right: 0;
+
+  padding-bottom: 53px;
+  height: 112rpx;
+  background: #FFFFFF;
+  box-shadow: 0rpx -2rpx 0rpx 2rpx rgba(0, 0, 0, 0.08);
+  display: flex;
+  align-items: center;
+}
+
+.checkGroupBox {
+  /* flex: 1; */
+  margin: 0 30rpx;
+  width: 120rpx;
+}
+
+
+
+.settlementBox {
+  /* width: 100%; */
+  display: flex;
+  align-items: center;
+  /* justify-content: space-between; */
+}
+
+.totalPrice {
+  /* margin: 0 50rpx; */
+
+}
+
+.buttonBox {
+
+  /* margin: 0 30rpx; */
+  margin-left: 140rpx;
+}
+
+.tButtonBox {
+  background-color: #FF6C00;
+  width: 200rpx;
+  height: 80rpx;
+}
+
+checkbox .wx-checkbox-input {
+  /* border-radius: 50%; */
+  /* 鍦嗚 */
+  /* width: 46rpx; */
+  /* 鑳屾櫙鐨勫 */
+  /* height: 46rpx; */
+  /* 鑳屾櫙鐨勯珮 */
+  width: 30rpx;
+  height: 30rpx;
+}
+
+/* 閫変腑鍚庣殑 鑳屾櫙鏍峰紡*/
+checkbox .wx-checkbox-input.wx-checkbox-input-checked {
+  border: 1rpx solid #FF6C00;
+  background: #FF6C00;
+}
+
+checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
+  border-radius: 50%;
+  /* 鍦嗚 */
+  width: 40rpx;
+  /* 閫変腑鍚庡鍕惧ぇ灏忥紝涓嶈瓒呰繃鑳屾櫙鐨勫昂瀵� */
+  height: 40rpx;
+  /* 閫変腑鍚庡鍕惧ぇ灏忥紝涓嶈瓒呰繃鑳屾櫙鐨勫昂瀵� */
+  line-height: 40rpx;
+  text-align: center;
+  font-size: 30rpx;
+  /* 瀵瑰嬀澶у皬 30rpx */
+  color: #fff;
+  /* 瀵瑰嬀棰滆壊 鐧借壊 */
+  background: transparent;
+  transform: translate(-50%, -50%) scale(1);
+  -webkit-transform: translate(-50%, -50%) scale(1);
+}
+
+
+.contentBox {
+  display: flex;
+  align-items: center;
+  background-color: #fff;
+  margin: 30rpx 0;
+  border-radius: 18rpx 18rpx 18rpx 18rpx;
+  height: 260rpx;
+}
+
+.totalPriceText {
+  color: #FF6C00;
+}
+
+.LaelBox {
+  margin: 50rpx;
+}
+
+.itemWarp {
+  margin: 15rpx 0;
+}
+
+.t-cell {
+  border-radius: 18rpx;
+}
+
+.t-cell__left-image {
+  width: 150rpx;
+  height: 210rpx;
+}
+
+
+.contentCheckbox {
+  width: 100rpx;
+}
+
+.left-icon {
+  display: flex;
+  justify-content: flex-start;
+  align-items: center;
+}
+
+.left-image {
+  width: 152rpx;
+  height: 212rpx;
+  background: #FFFFFF;
+  border-radius: 0rpx 0rpx 0rpx 0rpx;
+}
+
+.imageStyle {
+  width: 100%;
+  height: 100%;
 }
\ No newline at end of file
diff --git a/pages/cart/paymentPage/index.js b/pages/cart/paymentPage/index.js
new file mode 100644
index 0000000..7a4e351
--- /dev/null
+++ b/pages/cart/paymentPage/index.js
@@ -0,0 +1,200 @@
+// pages/cart/paymentPage/index.js
+const app = getApp()
+import { getPublicImage } from '../../../assets/js/middleGround/tool';
+import drawQrcode from './js/weapp.qrcode'
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    orderNumber: null,
+    navBarHeight: '',
+    barHeight: '',
+    selectedIds: '',
+    purchasedIds: [],
+    productList: [],
+    payPrice: '',
+    drawQrcodeText: 'https://www.baidu.com/',
+    orderGoods: '',
+
+
+    confirmBtn: { content: '纭畾', variant: 'base' },
+    dialogKey: 'false',
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+
+    const systInfo = wx.getSystemInfoSync();
+    const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅
+    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴�
+    this.setData({
+      orderNumber: options.orderNumber,
+      navBarHeight: navBarHeight,
+      barHeight: systInfo.statusBarHeight,
+      selectedIds: options.selectedIds
+    })
+    console.log('鎺ユ敹鍒扮殑璁㈠崟鍙�:', this.data.orderNumber);
+
+
+    this.getOrderByOrderNum()
+
+
+
+
+    drawQrcode({
+
+      width: 200, // 蹇呴』锛屼簩缁寸爜瀹藉害锛屼笌canvas鐨剋idth淇濇寔涓�鑷�
+
+      height: 200, // 蹇呴』锛屼簩缁寸爜楂樺害锛屼笌canvas鐨刪eight淇濇寔涓�鑷�
+
+      canvasId: 'myQrcode',
+
+      background: '#ffffff', //	闈炲繀椤伙紝浜岀淮鐮佽儗鏅鑹诧紝榛樿鍊肩櫧鑹�
+
+      foreground: '#2bb15e', // 闈炲繀椤伙紝浜岀淮鐮佸墠鏅壊锛岄粯璁ゅ�奸粦鑹� 	'#000000'
+
+      // ctx: wx.createCanvasContext('myQrcode'), // 闈炲繀椤伙紝缁樺浘涓婁笅鏂囷紝鍙�氳繃 wx.createCanvasContext('canvasId') 鑾峰彇锛寁1.0.0+鐗堟湰鏀寔
+
+      text: this.data.drawQrcodeText,  // 蹇呴』锛屼簩缁寸爜鍐呭
+      // v1.0.0+鐗堟湰鏀寔鍦ㄤ簩缁寸爜涓婄粯鍒跺浘鐗�
+
+      image: {
+        // imageResource: '../../images/icon.png', // 鎸囧畾浜岀淮鐮佸皬鍥炬爣
+        dx: 70,
+        dy: 70,
+        dWidth: 60,
+        dHeight: 60
+      }
+    })
+
+
+
+
+
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {
+
+  },
+  goBack() {
+    wx.navigateBack();
+  },
+
+
+  getOrderByOrderNum() {
+    let query = {
+      orderNum: this.data.orderNumber,
+      fields: {
+        content: [],
+        subtitle: [],
+
+
+      }
+    }
+    app.MG.store.getOrderByOrderNum(query).then(res => {
+      this.setData({
+        orderGoods: res.orderNumber
+      })
+      console.log(this.data.orderGoods, 'res.orderNumber');
+
+      console.log(res.payPrice);
+      this.setData({
+        payPrice: res.payPrice.toFixed(2)
+      })
+      res.saleMethodLinks.forEach(item => {
+
+        item.paymentIcon = getPublicImage(item.orderSaleMethod.product.icon)
+
+
+        this.setData({
+          productList: res.saleMethodLinks
+        })
+
+      })
+    })
+  },
+  confirmOrderGet() {
+    let query = {
+      orderNum: this.data.orderGoods
+    }
+    app.MG.store.confirmOrder(query).then(res => {
+      this.makeWeChatQrPayGet()
+    })
+    // 璋冨彇寰俊浜岀淮鐮佹敮浠�
+
+  },
+  // 璋冨彇寰俊浜岀淮鐮佹敮浠�
+  makeWeChatQrPayGet() {
+    let query = {
+      orderNum: this.data.orderGoods
+    }
+    app.MG.store.makeWeChatQrPay(query).then((res) => {
+
+      this.setData({
+        drawQrcodeText: res
+      })
+      this.data.dialogKey = true
+      console.log(this.data.drawQrcodeText, 'drawQrcodeText');
+    })
+  },
+  showDialog(e) {
+    const { key } = e.currentTarget.dataset;
+    this.setData({ [key]: true, dialogKey: key });
+  },
+  closeDialog() {
+    const { dialogKey } = this.data;
+    this.setData({ [dialogKey]: false });
+  },
+
+})
\ No newline at end of file
diff --git a/pages/cart/paymentPage/index.json b/pages/cart/paymentPage/index.json
new file mode 100644
index 0000000..2a32d4b
--- /dev/null
+++ b/pages/cart/paymentPage/index.json
@@ -0,0 +1,10 @@
+{
+  "component": true,
+  
+  "usingComponents": {
+    "t-icon": "tdesign-miniprogram/icon/icon",
+    "t-button": "tdesign-miniprogram/button/button",
+    "t-dialog": "tdesign-miniprogram/dialog/dialog"
+  },
+  "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/cart/paymentPage/index.wxml b/pages/cart/paymentPage/index.wxml
new file mode 100644
index 0000000..3490e0e
--- /dev/null
+++ b/pages/cart/paymentPage/index.wxml
@@ -0,0 +1,74 @@
+<!--pages/cart/paymentPage/index.wxml-->
+<view style="width: 100%; height: {{barHeight}}px; "></view>
+<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
+  <view>
+    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
+  </view>
+  <view class="navbar-title">鎻愪氦璁㈠崟</view>
+</view>
+
+
+
+
+
+<view class="content">
+
+
+
+
+
+
+  <t-button t-class="wrapper" theme="primary" size="large" variant="outline" data-key="showCloseBtn" bind:tap="showDialog" block>
+    甯﹀叧闂寜閽�
+  </t-button>
+  <t-dialog visible="{{showCloseBtn}}" close-btn bind:confirm="closeDialog" bind:cancel="closeDialog">
+    <view slot="content" class="slotContent">
+      <view class="myQrcodeBox">
+        <canvas style="width: 200px; height: 200px;margin:0 auto" canvas-id="myQrcode"></canvas>
+        <view class="myQrcodeTextBox">寰俊鎵爜鏀粯</view>
+      </view>
+    </view>
+  </t-dialog>
+
+
+
+
+
+  <view class="shoppingCartList">
+    <view class="cartList" wx:for="{{productList}}" wx:key="index" wx:for-item="item" wx:for-index="index">
+      <image src="{{item.paymentIcon }}" mode="" />
+      <view class="cartListContent">
+        <view class="cartListDetails">{{item.orderSaleMethod.product.name}}</view>
+        <view class="textBox">鍥句功鏈嶅姟-鐢靛瓙涔�</view>
+        <view class="priceBox">锟{item.payPrice}}</view>
+
+      </view>
+
+    </view>
+
+
+  </view>
+
+  <view class="priceBreakdown">
+    <view class="priceBreakdownContent">浠锋牸鏄庣粏</view>
+    <view class="amountMoney">
+      <view>鍟嗗搧閲戦</view>
+      <view>锟{payPrice}}</view>
+    </view>
+    <view class="amount">
+      <view>鍚堣锛氾骏{{payPrice}}</view>
+    </view>
+  </view>
+
+
+
+  <view class="interval"></view>
+
+  <view class="paymentBox">
+    <view class="residue">寰呮敮浠橈細<text class="residueTextBox">锟{payPrice}}</text></view>
+    <view>
+      <t-button class="buttonBox" shape="round" bind:tap="confirmOrderGet">寰俊鏀粯</t-button>
+    </view>
+  </view>
+
+</view>
\ No newline at end of file
diff --git a/pages/cart/paymentPage/index.wxss b/pages/cart/paymentPage/index.wxss
new file mode 100644
index 0000000..9159e8f
--- /dev/null
+++ b/pages/cart/paymentPage/index.wxss
@@ -0,0 +1,144 @@
+/* pages/cart/paymentPage/index.wxss */
+.nacigationBar {
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+
+}
+
+.navbar-title {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  color: #0F1214;
+  font-size: 40rpx;
+  font-weight: bold;
+  margin-bottom: 5rpx;
+}
+
+.content {
+  width: 100%;
+  height: 1250rpx;
+  background-color: #F2F3F8;
+  padding: 40rpx 0;
+  padding-top: 1rpx;
+}
+
+.shoppingCartList {
+  height: 1000rpx;
+  background: #FFFFFF;
+  border-radius: 20px;
+  margin: 30rpx 0;
+}
+
+image {
+  width: 150rpx;
+  height: 210rpx;
+  margin: 30rpx;
+}
+
+.cartListContent {
+  /* margin: 0 auto; */
+}
+
+.cartList {
+  display: flex;
+}
+
+.cartListContent {
+  margin-top: 30rpx;
+}
+
+.cartListDetails {
+  margin-bottom: 50rpx;
+  font-family: PingFang SC, PingFang SC;
+  font-weight: bold;
+  font-size: 29rpx;
+  color: #333333;
+}
+
+.textBox {
+  font-family: PingFang SC, PingFang SC;
+  font-weight: 400;
+  font-size: 25rpx;
+  color: #333333;
+  /* margin: 10rpx 0; */
+  margin-bottom: 20rpx;
+}
+
+.priceBox {
+  font-weight: 500;
+  font-size: 31rpx;
+  color: #0F1214;
+
+}
+
+.priceBreakdown {
+  height: 280rpx;
+  background: #fff;
+  padding: 30rpx;
+
+}
+
+.priceBreakdownContent {
+  font-weight: bold;
+  font-size: 32rpx;
+  color: #0F1214;
+  margin-bottom: 50rpx;
+}
+
+.amountMoney {
+  display: flex;
+  justify-content: space-between;
+  font-weight: 500;
+  font-size: 33rpx;
+  color: #0F1214;
+  border-bottom: 2rpx solid #EDEDED;
+  padding-bottom: 38rpx;
+}
+
+.amount {
+  display: flex;
+  justify-content: flex-end;
+  margin: 30rpx 0;
+}
+
+
+
+.interval {
+  width: 100%;
+  height: 30rpx;
+  background-color: #F2F3F8;
+}
+
+.paymentBox {
+  /* margin-top: 50rpx; */
+  display: flex;
+  justify-content: space-between;
+  padding: 30rpx;
+  align-items: center;
+}
+
+.residue {
+  color: #949494;
+}
+
+.residueTextBox {
+  font-weight: bold;
+  font-size: 38rpx;
+  color: #FF6C00;
+}
+
+.buttonBox {
+  background-color: #FF6C00;
+  border: #fff;
+}
+
+.myQrcodeBox {
+  margin: 30rpx;
+}
+
+.myQrcodeTextBox {
+  text-align: center;
+  margin: 30rpx 0;
+}
\ No newline at end of file
diff --git a/pages/aboutUs/js/weapp.qrcode.js b/pages/cart/paymentPage/js/weapp.qrcode.js
similarity index 100%
rename from pages/aboutUs/js/weapp.qrcode.js
rename to pages/cart/paymentPage/js/weapp.qrcode.js
diff --git a/pages/goods/details/components/buy-bar/index.js b/pages/goods/details/components/buy-bar/index.js
index ae274e2..16d3f33 100644
--- a/pages/goods/details/components/buy-bar/index.js
+++ b/pages/goods/details/components/buy-bar/index.js
@@ -40,6 +40,7 @@
 
   data: {
     fillPrice: false,
+    shoppingCartGetId: null
   },
 
   methods: {
@@ -47,6 +48,24 @@
       const { isStock } = this.properties;
       if (!isStock) return;
       this.triggerEvent('toAddCart');
+      // let query = {
+      //   start: 0,
+      //   size: 999,
+      //   filterList: [],
+      //   searchList: []
+      // }
+      // app.MG.store.getShoppingCartProductList(query).then(res => {
+      //   res.datas.forEach((item) => {
+      //     console.log(item.saleMethod.id, 'item.saleMethod.id');
+      //     this.setData({
+      //       shoppingCartGetId: item.saleMethod.id
+      //     })
+
+      //   })
+      // })
+
+
+
     },
 
     toBuyNow(e) {
diff --git a/pages/goods/details/components/buy-bar/index.wxml b/pages/goods/details/components/buy-bar/index.wxml
index 604afb4..a7aa86c 100644
--- a/pages/goods/details/components/buy-bar/index.wxml
+++ b/pages/goods/details/components/buy-bar/index.wxml
@@ -1,38 +1,29 @@
 <view class="flex soldout flex-center wr-sold-out" wx:if="{{soldout ||  !isStock}}">
-	{{soldout ? '鍟嗗搧宸蹭笅鏋�' : '鍟嗗搧宸插敭棣�'}}
+  {{soldout ? '鍟嗗搧宸蹭笅鏋�' : '鍟嗗搧宸插敭棣�'}}
 </view>
 <view class="footer-cont flex flex-between wr-class">
-	<view class="flex flex-between bottom-operate-left" wx:if="{{jumpArray.length > 0}}">
-		<view
-		  wx:for="{{jumpArray}}"
-		  wx:key="index"
-		  class="icon-warp operate-wrap"
-		  bindtap="toNav"
-		  data-ele="foot_navigation"
-		  data-index="{{index}}"
-		  data-url="{{item.url}}"
-		>
-			<view>
-				<text wx:if="{{shopCartNum > 0 && item.showCartNum}}" class="tag-cart-num">
-					{{shopCartNum > 99 ? '99+' : shopCartNum}}
-				</text>
-				<t-icon prefix="wr" name="{{item.iconName}}" size="40rpx" />
-				<view class="operate-text">{{item.title}}</view>
-			</view>
-		</view>
-	</view>
-	<block wx:if="{{buttonType === 1}}">
-		<view class="flex buy-buttons">
-			<view class="bar-separately {{soldout || !isStock ? 'bar-addCart-disabled' : ''}}" bindtap="toAddCart">
-				鍔犲叆璐墿杞�
-			</view>
-			<view class="bar-buy {{soldout || !isStock ? 'bar-buyNow-disabled' : ''}}" bindtap="toBuyNow">
-				绔嬪嵆璐拱
-			</view>
-		</view>
-	</block>
-	<block wx:if="{{isSlotButton}}">
-		<slot name="buyButton" />
-	</block>
-</view>
-
+  <view class="flex flex-between bottom-operate-left" wx:if="{{jumpArray.length > 0}}">
+    <view wx:for="{{jumpArray}}" wx:key="index" class="icon-warp operate-wrap" bindtap="toNav" data-ele="foot_navigation" data-index="{{index}}" data-url="{{item.url}}">
+      <view>
+        <text wx:if="{{shopCartNum > 0 && item.showCartNum}}" class="tag-cart-num">
+          {{shopCartNum > 99 ? '99+' : shopCartNum}}
+        </text>
+        <t-icon prefix="wr" name="{{item.iconName}}" size="40rpx" />
+        <view class="operate-text">{{item.title}}</view>
+      </view>
+    </view>
+  </view>
+  <block wx:if="{{buttonType === 1}}">
+    <view class="flex buy-buttons">
+      <view class="bar-separately {{soldout || !isStock ? 'bar-addCart-disabled' : ''}}" bindtap="toAddCart">
+        鍔犲叆璐墿杞�
+      </view>
+      <view class="bar-buy {{soldout || !isStock ? 'bar-buyNow-disabled' : ''}}" bindtap="toBuyNow">
+        绔嬪嵆璐拱
+      </view>
+    </view>
+  </block>
+  <block wx:if="{{isSlotButton}}">
+    <slot name="buyButton" />
+  </block>
+</view>
\ No newline at end of file
diff --git a/pages/resourceDetails/index.js b/pages/resourceDetails/index.js
new file mode 100644
index 0000000..d0aca67
--- /dev/null
+++ b/pages/resourceDetails/index.js
@@ -0,0 +1,76 @@
+// pages/resourceDetails/index.js
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    navBarHeight: '',
+    barHeight: '',
+    vURL: 'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400'
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+    const systInfo = wx.getSystemInfoSync();
+    const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅
+    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴�
+    this.setData({
+
+      navBarHeight: navBarHeight,
+      barHeight: systInfo.statusBarHeight,
+
+    })
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {
+
+  }
+})
\ No newline at end of file
diff --git a/pages/cart/components/cart-bar/index.json b/pages/resourceDetails/index.json
similarity index 67%
rename from pages/cart/components/cart-bar/index.json
rename to pages/resourceDetails/index.json
index fa2d209..02871f3 100644
--- a/pages/cart/components/cart-bar/index.json
+++ b/pages/resourceDetails/index.json
@@ -1,6 +1,6 @@
 {
-  "component": true,
   "usingComponents": {
     "t-icon": "tdesign-miniprogram/icon/icon"
-  }
+  },
+  "navigationStyle": "custom"
 }
\ No newline at end of file
diff --git a/pages/resourceDetails/index.wxml b/pages/resourceDetails/index.wxml
new file mode 100644
index 0000000..240b234
--- /dev/null
+++ b/pages/resourceDetails/index.wxml
@@ -0,0 +1,13 @@
+<view style="width: 100%; height: {{barHeight}}px; "></view>
+<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
+  <view>
+    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
+  </view>
+  <view class="navbar-title">璧勬簮璇︽儏</view>
+</view>
+
+
+
+<view class="videoBox">
+  <video src="{{vURL}}" play-btn-position='center' object-fit='fill' controls enable-play-gesture enable-auto-rotation></video>
+</view>
\ No newline at end of file
diff --git a/pages/resourceDetails/index.wxss b/pages/resourceDetails/index.wxss
new file mode 100644
index 0000000..35232d2
--- /dev/null
+++ b/pages/resourceDetails/index.wxss
@@ -0,0 +1,25 @@
+/* pages/resourceDetails/index.wxss */
+.nacigationBar {
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+
+}
+
+.navbar-title {
+  white-space: nowrap;
+  /* overflow: hidden; */
+  text-overflow: ellipsis;
+  color: #0F1214;
+  font-size: 40rpx;
+  font-weight: bold;
+  margin-bottom: 5rpx;
+}
+
+.videoBox {
+  width: 100%;
+}
+
+.videoBox video {
+  width: 100vw;
+}
\ No newline at end of file
diff --git a/pages/retrievalPage/index.js b/pages/retrievalPage/index.js
new file mode 100644
index 0000000..1e532af
--- /dev/null
+++ b/pages/retrievalPage/index.js
@@ -0,0 +1,522 @@
+// pages/retrievalPage/index.js
+import request from '../../assets/request/index'
+
+import { handleQueryResourceListData } from '../../assets/js/middleGround/tool'
+const app = getApp()
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    tabPanelstyle: 'display:flex;justify-content:center;align-items:center;',
+    navBarHeight: '',
+    barHeight: '',
+    searchVal: '',
+    bookData: [],   //鍥句功
+    bookTotal: 0,
+    courseData: [],  //璇剧▼
+    courseTotal: 0,
+    digitalTextbooksData: [],  //鏁板瓧鏁欐潗
+    digitalTextbooksTotal: 0,
+    seminarData: [], //涓撻鐮旇
+    seminarTotal: 0,
+    biblioClassificationData: [],//涔﹀睍
+    biblioClassificationTotal: 0,
+    bookFairData: [],//涔︾洰
+    bookFairTotal: 0
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+    const systInfo = wx.getSystemInfoSync();
+    const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅
+    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴�
+    this.setData({
+
+      navBarHeight: navBarHeight,
+      barHeight: systInfo.statusBarHeight,
+
+    })
+
+
+    this.retrievalPageGet()
+    this.bibliographyGet()
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {
+
+  },
+  goBack() {
+    wx.navigateBack();
+  },
+  //鍙栨秷鎸夐挳
+  onCancellation() {
+    this.setData({
+      searchVal: ''
+    })
+    this.retrievalPageGet()
+    this.bibliographyGet()
+  },
+  onTabsChange(event) {
+    console.log(`Change tab, tab-panel searchVal is ${event.detail.searchVal}.`);
+  },
+
+  onTabsClick(event) {
+    console.log(`Click tab, tab-panel searchVal is ${event.detail.searchVal}.`);
+  },
+
+
+  retrievalPageGet() {
+
+    let fields = {
+      liveTime: [],
+      lecturer: [],
+      startTime: [],
+      jsek_link: [],
+      courseLeader: [],
+      affiliatedUnit: [],
+      publishingUnit: [],
+      classHours: [],
+      author: [],
+      subtitle: []
+    }
+    let searchObj = {}
+    if (this.data.searchVal) {
+      searchObj = {
+        'Name*': this.data.searchVal.trim(),
+        '||author*': this.data.searchVal.trim(),
+        '||isbn*': this.data.searchVal.trim(),
+        '||seriesName*': this.data.searchVal.trim()
+      }
+
+    }
+    let url = '/store/api/ApiQueryProductByAppUser'
+    //鍥句功
+    let queryBook = {
+      AccessControl: {
+        Path: '*',
+        StoreRefCode: 'defaultGoodsStore27',
+        Type: '*',
+        LinkType: ''
+      },
+      PageQuery: {
+        Start: 0,
+        Size: 999
+      },
+      SortQuery: [
+        {
+          LinkOrder: 'Desc'
+        }
+      ],
+      CreateDate: [],
+      Description: [],
+      Name: [],
+      Icon: [],
+      RefCode: [],
+      TypeId: [],
+      SysType: [],
+      State: [],
+      Tag: [],
+      BeginDate: [],
+      EndDate: [],
+      ProductLinkInfo: [],
+      AllowDonate: [],
+      ...searchObj,
+      ...fields
+    }
+
+
+    let courseObj = {}
+    if (this.data.searchVal) {
+      courseObj = {
+        'Name*': this.data.searchVal.trim(),
+        '||author*': this.data.searchVal.trim(),
+        '||isbn*': this.data.searchVal.trim(),
+        '||seriesName*': this.data.searchVal.trim()
+      }
+
+    }
+    //璇剧▼
+    let queryCourse = {
+      AccessControl: {
+        Path: '*',
+        StoreRefCode: 'jsek_digitalCourses',
+        Type: '*',
+        LinkType: ''
+      },
+      PageQuery: {
+        Start: 0,
+        Size: 999
+      },
+      SortQuery: [
+        {
+          LinkOrder: 'Desc'
+        }
+      ],
+      CreateDate: [],
+      Description: [],
+      Name: [],
+      Icon: [],
+      RefCode: [],
+      TypeId: [],
+      SysType: [],
+      State: [],
+      Tag: [],
+      BeginDate: [],
+      EndDate: [],
+      ProductLinkInfo: [],
+      AllowDonate: [],
+      ...courseObj,
+      ...fields
+    }
+
+    let digitalTextbooksObj = {}
+    if (this.data.searchVal) {
+      digitalTextbooksObj = {
+        'Name*': this.data.searchVal.trim(),
+        '||author*': this.data.searchVal.trim(),
+        '||isbn*': this.data.searchVal.trim(),
+        '||seriesName*': this.data.searchVal.trim()
+      }
+
+    }
+    // 鏁板瓧鏁欐潗
+    let queryDigitalTextbooks = {
+      AccessControl: {
+        Path: '*',
+        StoreRefCode: 'jsek_digitalTextbooks',
+        Type: '*',
+        LinkType: ''
+      },
+      PageQuery: {
+        Start: 0,
+        Size: 999
+      },
+      SortQuery: [
+        {
+          LinkOrder: 'Desc'
+        }
+      ],
+      CreateDate: [],
+      Description: [],
+      Name: [],
+      Icon: [],
+      RefCode: [],
+      TypeId: [],
+      SysType: [],
+      State: [],
+      Tag: [],
+      BeginDate: [],
+      EndDate: [],
+      ProductLinkInfo: [],
+      AllowDonate: [],
+      ...digitalTextbooksObj,
+      ...fields
+    }
+
+
+    let seminarObj = {}
+    if (this.data.searchVal) {
+      seminarObj = {
+        'Name*': this.data.searchVal.trim(),
+        '||author*': this.data.searchVal.trim(),
+        '||isbn*': this.data.searchVal.trim(),
+        '||seriesName*': this.data.searchVal.trim()
+      }
+
+    }
+    // 涓撻鐮旇
+    let querySeminar = {
+      AccessControl: {
+        Path: '*',
+        StoreRefCode: 'jsek_seminar',
+        Type: '*',
+        LinkType: ''
+      },
+      PageQuery: {
+        Start: 0,
+        Size: 999
+      },
+      SortQuery: [
+        {
+          LinkOrder: 'Desc'
+        }
+      ],
+      CreateDate: [],
+      Description: [],
+      Name: [],
+      Icon: [],
+      RefCode: [],
+      TypeId: [],
+      SysType: [],
+      State: [],
+      Tag: [],
+      BeginDate: [],
+      EndDate: [],
+      ProductLinkInfo: [],
+      AllowDonate: [],
+      ...fields,
+      ...seminarObj
+    }
+    let biblioClassificationObj = {}
+    if (this.data.searchVal) {
+      biblioClassificationObj = {
+        'Name*': this.data.searchVal.trim(),
+        '||author*': this.data.searchVal.trim(),
+        '||isbn*': this.data.searchVal.trim(),
+        '||seriesName*': this.data.searchVal.trim()
+      }
+
+    }
+    //涔﹀睍
+    let queryBiblioClassification = {
+      AccessControl: {
+        Path: '*',
+        StoreRefCode: 'jsek_bookFair',
+        Type: '*',
+        LinkType: ''
+      },
+
+      PageQuery: {
+        Start: 0,
+        Size: 999
+      },
+      SortQuery: [
+        {
+          LinkOrder: 'Desc'
+        }
+      ],
+      CreateDate: [],
+      Description: [],
+      Name: [],
+      Icon: [],
+      RefCode: [],
+      TypeId: [],
+      SysType: [],
+      State: [],
+      Tag: [],
+      BeginDate: [],
+      EndDate: [],
+      ProductLinkInfo: [],
+      AllowDonate: [],
+      content: [],
+      backgroundSelection: [],
+      ...fields,
+      ...biblioClassificationObj
+    }
+    let body = {
+      query: JSON.stringify({
+        Query: [{
+          queryBook: queryBook
+        }, {
+          queryCourse: queryCourse
+        }, {
+          queryDigitalTextbooks: queryDigitalTextbooks
+        }, {
+          querySeminar: querySeminar
+        }, {
+          queryBiblioClassification: queryBiblioClassification
+        }]
+      })
+    }
+    request({
+      url: url,
+      method: 'post',
+      data: body
+    }).then((resp) => {
+      // console.log(resp);
+
+      //鍥句功       0
+      const data1 = resp[0]
+      const datas1 = handleQueryResourceListData({
+        datas: data1.datas,
+        fields
+      })
+      this.setData({
+        bookData: datas1,
+        bookTotal: data1.totalCount
+      })
+
+
+
+
+      //鏁板瓧璇剧▼    1
+      const data2 = resp[1]
+      const datas2 = handleQueryResourceListData({
+        datas: data2.datas,
+        fields
+      })
+      this.setData({
+        courseData: datas2,
+        courseTotal: data2.totalCount
+      })
+
+
+
+      // 鏁板瓧鏁欐潗    2
+      const data3 = resp[2]
+      const datas3 = handleQueryResourceListData({
+        datas: data3.datas,
+        fields
+      })
+      this.setData({
+        digitalTextbooksData: datas3,
+        digitalTextbooksTotal: data3.totalCount
+      })
+
+      // 涓撻鐮旇   3
+
+      const data4 = resp[3]
+      const datas4 = handleQueryResourceListData({
+        datas: data4.datas,
+        fields
+      })
+
+      this.setData({
+        seminarData: datas4,
+        seminarTotal: data4.totalCount
+      })
+      // 涔﹀睍      4
+      const data5 = resp[4]
+      const datas5 = handleQueryResourceListData({
+        datas: data5.datas,
+        fields
+      })
+
+      this.setData({
+        biblioClassificationData: datas5,
+        biblioClassificationTotal: data5.totalCount
+      })
+
+
+
+
+    })
+
+  },
+  bibliographyGet() {
+    let bibliographyObj = {}
+    if (this.data.searchVal) {
+      bibliographyObj = {
+        'Name*': this.data.searchVal.trim(),
+        '||author*': this.data.searchVal.trim(),
+        '||isbn*': this.data.searchVal.trim(),
+        '||seriesName*': this.data.searchVal.trim()
+      }
+
+    }
+    app.MG.resource.getItem({
+      path: 'jsek_biblioClassification',
+      queryType: '*',
+      paging: {
+        start: 0,
+        size: 999
+      },
+      coverSize: {
+        width: 260
+      },
+      fields: {
+        jsek_link: [],
+        content: [],
+        subtitle: [],
+        fileType: [],
+        jsek_resource: [],
+        freeFile: [],
+        ...bibliographyObj
+      },
+      SysType: "CmsItem"
+    }).then(res => {
+      // console.log(res);
+      this.setData({
+        bookFairData: res.datas,
+        bookFairTotal: res.total
+      })
+
+    })
+  },
+  downloadData(event) {
+    console.log(111);
+    const item = event.currentTarget.dataset.item;
+    // console.log(item.datas.freeFile.searchVal);
+    const URL = 'http://182.92.203.7:3001/file/api/ApiDownload?md5=' + item.datas.freeFile.searchVal
+    item.determine = false
+
+    setTimeout(() => {
+      if (URL) {
+        item.determine = true
+      }
+    }, 600)
+    wx.downloadFile({
+      url: URL,
+      success: function (res) {
+        const filePath = res.tempFilePath;
+        wx.openDocument({
+          filePath: filePath,
+          success: function (res) {
+            console.log('鎵撳紑鏂囨。鎴愬姛');
+          },
+          fail: function (res) {
+            console.log('鎵撳紑鏂囨。澶辫触', res);
+          }
+        });
+      },
+      fail: function (res) {
+        console.log('涓嬭浇鏂囦欢澶辫触', res);
+      }
+    });
+  },
+  onSearchSubmit() {
+    console.log(this.data.searchVal);
+    this.retrievalPageGet()
+    this.bibliographyGet()
+  }
+
+})
\ No newline at end of file
diff --git a/pages/retrievalPage/index.json b/pages/retrievalPage/index.json
new file mode 100644
index 0000000..3c65fd8
--- /dev/null
+++ b/pages/retrievalPage/index.json
@@ -0,0 +1,10 @@
+{
+  "component": true,
+  "usingComponents": {
+    "t-icon": "tdesign-miniprogram/icon/icon",
+    "t-search": "tdesign-miniprogram/search/search",
+    "t-tabs": "tdesign-miniprogram/tabs/tabs",
+    "t-tab-panel": "tdesign-miniprogram/tab-panel/tab-panel"
+  },
+  "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/pages/retrievalPage/index.wxml b/pages/retrievalPage/index.wxml
new file mode 100644
index 0000000..8e32bfc
--- /dev/null
+++ b/pages/retrievalPage/index.wxml
@@ -0,0 +1,164 @@
+<!--pages/retrievalPage/index.wxml-->
+<view style="width: 100%; height: {{barHeight}}px; "></view>
+<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
+  <view>
+    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
+  </view>
+  <view class="navbar-title">妫�绱㈢粨鏋�</view>
+</view>
+
+
+<view class="example-search">
+  <t-search bind:submit="onSearchSubmit" class="searchBox" model:value="{{searchVal}}" placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��" />
+
+  <view class="cancellation" bind:tap="onCancellation">鍙栨秷</view>
+</view>
+
+
+
+
+<t-tabs defaultValue="{{0}}" bind:change="onTabsChange" bind:click="onTabsClick" t-class="custom-tabs" t-class-content="custom-panel">
+  <t-tab-panel label="鍥句功({{bookTotal}})" value="0">
+    <view class="bookDataBox">
+
+
+      <view class="bookDataForBox" wx:for="{{bookData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
+        <view class="imageBox">
+          <image src="{{item.icon}}" mode="" />
+        </view>
+        <view class="bookDataNmae">
+          {{item.name}}
+        </view>
+        <view class="bookDataAuthor">{{item.author}}</view>
+      </view>
+    </view>
+
+
+
+
+  </t-tab-panel>
+  <t-tab-panel label="璇剧▼({{courseTotal}})" value="1">
+
+
+    <view class="listBox1">
+      <view wx:if="{{courseData.length>0}}">
+        <view wx:for="{{courseData}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toList" data-info="{{item}}" class="listItemBox">
+          <view class="listItem flex">
+            <view class="specialSubject-img">
+              <image src="{{item.icon}}" mode="aspectFill" class="img" />
+            </view>
+            <view class="body-info">
+              <view class="name">{{item.name}}</view>
+              <view class="flex jc-sb">
+                <text class="author">{{item.courseLeader}}</text>
+                <text>{{item.classHours}}璇炬椂</text>
+              </view>
+              <view class="priceBox flex jc-sb">
+                <text class="price" wx:if="{{item.price == 0}}">鍏嶈垂</text>
+                <text class="price" wx:if="{{item.price !== 0}}">锟{item.price}}</text>
+                <image src="/static/images/home/home-cart.png" mode="aspectFill" class="addCartImg" />
+              </view>
+            </view>
+          </view>
+        </view>
+      </view>
+      <view class="empyt" wx:else>
+        <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" font-size="80" />
+      </view>
+    </view>
+
+
+  </t-tab-panel>
+  <t-tab-panel label="鏁板瓧鏁欐潗({{digitalTextbooksTotal}})" value="2">
+
+
+
+
+    <view class="bookDataBox">
+
+
+      <view class="bookDataForBox" wx:for="{{digitalTextbooksData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
+        <view class="imageBox">
+          <image src="{{item.icon}}" mode="" />
+        </view>
+        <view class="bookDataNmae">
+          {{item.name}}
+        </view>
+        <view class="bookDataAuthor">{{item.author}}</view>
+      </view>
+    </view>
+
+
+
+
+
+
+  </t-tab-panel>
+  <t-tab-panel label="涓撻({{seminarTotal}})" value="3">
+    <view class="listBox">
+      <view wx:for="{{seminarData}}" wx:for-item="item" wx:for-index="index" wx:key="index" bindtap="toList" data-info="{{item}}" class="listItemBox">
+        <view class="listItem">
+          <view class="specialSubject-img">
+            <image src="{{item.icon}}" mode="aspectFill" class="img" />
+          </view>
+          <view class="body-info">
+            <view class="name">{{item.name}}</view>
+            <view class="time" wx:if="{{item.liveTime}}">鐩存挱鏃堕棿锛�<text>{{item.liveTime}}</text></view>
+            <view class="time" wx:if="{{item.startTime}}">寮�鎾椂闂达細<text>{{ item.startTime }}</text></view>
+            <view class="time" wx:if="{{!item.liveTime && !item.startTime}}">寮�鎾椂闂达細<text class="grey">寰呭畾</text></view>
+            <view class="flex jc-sb">
+              <text class="author">{{item.lecturer}}</text>
+              <text class="price" wx:if="{{item.price == 0}}">鍏嶈垂</text>
+              <text class="price" wx:if="{{item.price !== 0}}">锟{item.price}}</text>
+            </view>
+          </view>
+        </view>
+      </view>
+    </view>
+
+
+
+  </t-tab-panel>
+  <t-tab-panel label="涔︾洰({{bookFairTotal}})" value="4">
+
+
+
+
+    <view class="outsideHigherBox">
+      <view class="higherBox" wx:for="{{bookFairData}}" wx:key="index" wx:for-item="item" wx:for-index="index">
+        <view class="outsideHigherImageBox">
+          <image class="higherImageBox" src="{{item.icon}}" mode="" />
+          <view class="downloadIcon" bind:tap="downloadData" data-item="{{item}}">
+
+            <image wx:if="{{determine}}" class="download" src="/static/images/bibliographyList/downloadshiftin.png" mode="" />
+            <image wx:else="" class="downloadshiftin" src="/static/images/bibliographyList/download.png" mode="" />
+          </view>
+        </view>
+
+        <view class="higherTextBox">{{item.name}}</view>
+      </view>
+
+    </view>
+
+
+
+
+
+
+
+
+  </t-tab-panel>
+  <t-tab-panel label="涔﹀睍({{biblioClassificationTotal}})" value="5">
+    <view class="outside">
+      <view class="contentBox" wx:for="{{biblioClassificationData}}" wx:key="index" wx:for-item="item" wx:for-index="index" bindtap="onBookExhibitionDetails" data-item="{{item}}">
+        <image class="bookFairImage" wx:if="{{item.icon}}" src="{{item.icon}}" mode="" />
+        <image class="bookFairImage" wx:else="" src="/static/images/bookExhibitionList/banner.png" mode="" />
+        <view class="textBox" title="{{item.name}}"> <text>{{item.name}}</text></view>
+      </view>
+
+    </view>
+
+
+
+  </t-tab-panel>
+</t-tabs>
\ No newline at end of file
diff --git a/pages/retrievalPage/index.wxss b/pages/retrievalPage/index.wxss
new file mode 100644
index 0000000..1d9cce0
--- /dev/null
+++ b/pages/retrievalPage/index.wxss
@@ -0,0 +1,289 @@
+/* pages/retrievalPage/index.wxss */
+
+.nacigationBar {
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+
+}
+
+.navbar-title {
+  white-space: nowrap;
+  /* overflow: hidden; */
+  text-overflow: ellipsis;
+  color: #0F1214;
+  font-size: 40rpx;
+  font-weight: bold;
+  margin-bottom: 5rpx;
+}
+
+.example-search {
+  background-color: #fff;
+  padding: 16rpx 32rpx;
+  display: flex;
+  align-items: center;
+  /* font-size: 25rpx; */
+  color: #999999;
+}
+
+.searchBox {
+  width: 614rpx;
+  /* margin-right: 20rpx; */
+}
+
+.cancellation {
+  width: 80rpx;
+  margin-left: 15rpx;
+}
+
+
+.custom-tabs {
+  margin-bottom: 32rpx;
+}
+
+.custom-panel {
+  /* height: 120px; */
+}
+
+.imageBox {
+  width: 190rpx;
+  height: 280rpx;
+  box-shadow: 10rpx 10rpx 10rpx 10rpx rgba(0, 0, 0, 0.08);
+}
+
+image {
+  width: 100%;
+  height: 100%;
+}
+
+.bookDataBox {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.bookDataForBox {
+  width: 190rpx;
+  margin: 30rpx;
+}
+
+.bookDataNmae {
+  margin: 20rpx 0;
+  font-family: PingFang SC, PingFang SC;
+  font-weight: bold;
+  font-size: 25rpx;
+  color: #333333;
+  word-break: break-all;
+  display: -webkit-box;
+  -webkit-line-clamp: 2;
+  -webkit-box-orient: vertical;
+  overflow: hidden;
+
+}
+
+
+
+.bookDataAuthor {
+  font-family: PingFang SC, PingFang SC;
+  font-weight: 400;
+  font-size: 22rpx;
+  color: #333333;
+}
+
+
+.listBox {
+  padding: 20rpx 0;
+  display: flex;
+  flex-flow: row wrap;
+  justify-content: space-between;
+  margin: 20rpx;
+
+}
+
+.listBox .listItemBox {
+  width: 49%;
+  margin-bottom: 50rpx;
+
+}
+
+.listItemBox .listItem {
+  background: #fff;
+  box-sizing: border-box;
+  border-radius: 5px;
+  overflow: hidden;
+  box-shadow: 0px 0px 20rpx 2px #f1f1f1;
+}
+
+
+.listBox .specialSubject-img {
+  width: 100%;
+  height: 120rpx;
+}
+
+.specialSubject-img image {
+  width: 100%;
+  height: 100%;
+  object-fit: contain;
+}
+
+.body-info {
+  padding: 20rpx;
+  font-size: 28rpx;
+}
+
+.body-info .name {
+  font-size: 32rpx;
+  height: 88rpx;
+  color: #333333;
+  font-weight: bold;
+  line-height: 44rpx;
+  display: -webkit-box;
+  margin-bottom: 10rpx;
+  -webkit-box-orient: vertical;
+  -webkit-line-clamp: 2;
+  overflow: hidden;
+  text-overflow: ellipsis;
+}
+
+.body-info .time {
+  font-size: 26rpx;
+  margin-bottom: 10rpx;
+}
+
+.body-info .author {
+  font-size: 26rpx;
+  display: flex;
+  justify-content: space-between;
+}
+
+.body-info .price {
+  font-size: 26rpx;
+  color: #ff6d00;
+}
+
+.flex {
+  display: flex;
+}
+
+.jc-sb {
+  justify-content: space-between
+}
+
+
+.listBox1,
+.listBox2 {
+  padding: 50rpx 0;
+}
+
+.listBox1 .listItemBox {
+  height: 220rpx;
+  margin-bottom: 30rpx;
+}
+
+.listBox1 .specialSubject-img {
+  width: 400rpx;
+  height: 218rpx;
+}
+
+.listBox1 .addCartImg,
+.listBox3 .addCartImg {
+  width: 30rpx;
+  height: 30rpx;
+}
+
+.listBox1 .priceBox {
+  margin-top: 14rpx;
+}
+
+.outside {
+  display: flex;
+  flex-wrap: wrap;
+  justify-content: space-between;
+  margin: 15px;
+
+
+}
+
+.contentBox {
+  width: 330rpx;
+  /* height: 231rpx; */
+  /* border: 1px #000 solid; */
+  margin: 10px 0;
+  background-color: #fff;
+
+}
+
+.textBox {
+  width: 280rpx;
+  /* height: 75rpx; */
+  font-size: 25rpx;
+
+  overflow: hidden;
+  text-overflow: ellipsis;
+  display: -webkit-box;
+  -webkit-box-orient: vertical;
+  -webkit-line-clamp: 2;
+  /* text-align: center; */
+  margin: 20rpx;
+
+}
+
+.bookFairImage {
+  width: 327rpx;
+  height: 128rpx;
+}
+
+.outsideHigherBox {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+.higherBox {
+  width: 220rpx;
+  /* height: 390rpx; */
+  box-shadow: 10rpx 10rpx 10rpx 10rpx rgba(0, 0, 0, 0.08);
+  margin: 30rpx 15rpx;
+}
+
+.outsideHigherImageBox {
+
+  position: relative;
+}
+
+.higherImageBox {
+  width: 190rpx;
+  height: 255rpx;
+  margin: 15rpx;
+}
+
+.downloadIcon {
+  width: 34rpx;
+  height: 34rpx;
+
+  border-radius: 5rpx 5rpx 5rpx 5rpx;
+  background: rgba(0, 0, 0, 0.3);
+  position: absolute;
+  top: 15rpx;
+  right: 15rpx;
+  padding: 10rpx;
+}
+
+
+.download {
+  /* background-color: #8bc34a; */
+  width: 100%;
+  height: 100%;
+
+}
+
+.downloadshiftin {
+  width: 100%;
+  height: 100%;
+}
+
+.higherTextBox {
+  font-weight: bold;
+  font-size: 25rpx;
+  color: #333333;
+  padding: 15rpx;
+  margin-bottom: 10rpx;
+}
\ No newline at end of file
diff --git a/pages/bookExhibitionList/img/banner.png b/static/images/bookExhibitionList/banner.png
similarity index 100%
rename from pages/bookExhibitionList/img/banner.png
rename to static/images/bookExhibitionList/banner.png
Binary files differ
diff --git a/static/video/sea.mp4 b/static/video/sea.mp4
new file mode 100644
index 0000000..328ebe3
--- /dev/null
+++ b/static/video/sea.mp4
Binary files differ

--
Gitblit v1.9.1