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