From ecbc81c918a288dc752b1634b3f545f795d992aa Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期三, 20 三月 2024 16:15:41 +0800 Subject: [PATCH] 图书分类,图书列表样式修改,答题器优化 --- packageBookService/pages/bookServices/list/index.wxml | 25 ++- packageBookService/pages/bookServices/examination/questionList/index.wxss | 15 + packageBookService/pages/bookServices/examination/questionList/index.wxml | 10 custom-tab-bar/index.wxml | 5 packageBookService/pages/bookServices/list/index.wxss | 27 +++ static/images/bookService/detail/square.png | 0 packageBookService/pages/bookServices/examination/questionSchedule/index.js | 10 packageBookService/pages/bookServices/detail/index.wxml | 13 + packageBookService/pages/bookServices/examination/questionOptions/index.js | 6 packageBookService/pages/bookServices/detail/index.wxss | 26 ++ custom-tab-bar/index.js | 1 pages/bookServices/assort/index.js | 59 +++++--- packageBookService/pages/bookServices/examination/examination.wxml | 2 packageBookService/pages/bookServices/examination/questionOptions/index.wxss | 2 packageBookService/pages/bookServices/examination/questionOptions/index.wxml | 16 +- packageBookService/pages/bookServices/list/index.json | 3 packageBookService/pages/bookServices/examination/examination.js | 9 packageBookService/pages/bookServices/list/index.js | 18 ++ pages/bookServices/assort/index.wxml | 67 ++++++--- pages/bookServices/assort/index.wxss | 60 ++++++-- 20 files changed, 260 insertions(+), 114 deletions(-) diff --git a/custom-tab-bar/index.js b/custom-tab-bar/index.js index 90c58df..3783000 100644 --- a/custom-tab-bar/index.js +++ b/custom-tab-bar/index.js @@ -8,6 +8,7 @@ methods: { onChange(event) { this.setData({ active: event.detail.value }); + console.log(this.data.active); wx.switchTab({ url: this.data.list[event.detail.value].url.startsWith('/') ? this.data.list[event.detail.value].url diff --git a/custom-tab-bar/index.wxml b/custom-tab-bar/index.wxml index 01c11e0..90d22b6 100644 --- a/custom-tab-bar/index.wxml +++ b/custom-tab-bar/index.wxml @@ -3,8 +3,9 @@ <view class="custom-tab-bar-wrapper"> <!-- <t-icon prefix="wr" name="{{item.icon}}" size="48rpx" /> <view class="text">{{ item.text }}</view> --> - <t-image wx:if="{{active !== index}}" class="tabImg" src="{{item.icon}}" mode="heightFix" width="22" height="22" /> - <t-image wx:else class="tabImg" src="{{item.activeIcon}}" mode="heightFix" width="22" height="22" /> + <!-- <t-image wx:if="{{active !== index}}" class="tabImg" src="{{item.icon}}" mode="heightFix" width="22" height="22" /> + <t-image wx:else class="tabImg" src="{{item.activeIcon}}" mode="heightFix" width="22" height="22" /> --> + <t-image class="tabImg" src="{{active == index ? item.activeIcon : item.icon}}" width="22" height="22"></t-image> <view class="text">{{ item.text }}</view> </view> </t-tab-bar-item> diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml index abfcb94..91c67d6 100644 --- a/packageBookService/pages/bookServices/detail/index.wxml +++ b/packageBookService/pages/bookServices/detail/index.wxml @@ -35,20 +35,20 @@ <view class="detail-right"> <view class="book-name">{{bookDetail.name}}</view> <view class="book-message"> - <view class="message-li"> + <view class="message-li" wx:if="{{bookDetail.seriesName}}"> <view class="li-title">涓涗功鍚嶏細</view> <view class="li-content">{{bookDetail.seriesName}}</view> </view> <view class="message-li"> - <view class="li-title">浣滆�咃細</view> + <view class="li-title" wx:if="{{bookDetail.author}}">浣滆�咃細</view> <view class="li-content">{{bookDetail.author}}</view> </view> - <view class="message-li"> + <view class="message-li" wx:if="{{bookDetail.isbn}}"> <view class="li-title">ISBN锛�</view> <view class="li-content">{{bookDetail.isbn}}</view> </view> <view class="message-li"> - <view class="li-title">鍑虹増鏃堕棿锛�</view> + <view class="li-title" wx:if="{{bookDetail.publicationDate}}">鍑虹増鏃堕棿锛�</view> <view class="li-content">{{bookDetail.publicationDate}}</view> </view> <view class="message-li" wx:if="{{bookDetail.class}}" style="height: 80rpx"> @@ -56,6 +56,7 @@ <view class="class-name showTow">{{bookDetail.class}}</view> </view> </view> + <t-image src="/static/images/bookService/detail/square.png" class="right-background"></t-image> </view> </view> <!-- 閿�鍞俊鎭� --> @@ -136,8 +137,8 @@ </view> <view class="btn-text">绾歌川鏍蜂功鐢宠</view> </view> - <view class="shopCar" bind:tap="addBookShopcCar">鍔犲叆璐墿杞�</view> - <view class="buy" bind:tap="buyBtn">绔嬪嵆璐拱</view> + <view class="shopCar {{tabValue == 'jsek_teachingResources' ? 'disabledColor' : 'shopCarColor' }}" bind:tap="addBookShopcCar">鍔犲叆璐墿杞�</view> + <view class="buy {{tabValue == 'jsek_teachingResources' ? 'disabledColor' : 'buyColor' }}" bind:tap="buyBtn">绔嬪嵆璐拱</view> </view> </scroll-view> <!-- 鎴戣寤鸿寮圭獥 --> diff --git a/packageBookService/pages/bookServices/detail/index.wxss b/packageBookService/pages/bookServices/detail/index.wxss index 3fbcf6f..b7ae2c6 100644 --- a/packageBookService/pages/bookServices/detail/index.wxss +++ b/packageBookService/pages/bookServices/detail/index.wxss @@ -32,6 +32,19 @@ margin-right: 36rpx; } +.detail-right { + position: relative; +} + +.right-background { + position: absolute; + top: 80rpx; + right: -80rpx; + z-index: 0; + width: 160rpx; + height: 160rpx; +} + .detail-right .book-name { width: 420rpx; font-weight: bold; @@ -76,7 +89,7 @@ } .class-name { - height: 2.5em; + height: 2.8em; width: 280rpx; font-size: 28rpx; } @@ -249,21 +262,22 @@ color: #fff; } -.shopCar { +.shopCarColor { background-color: #F1AC37; } -.buy { +.buyColor { background-color: #F14B3B; +} + +.disabledColor { + background-color: #d9d9d9; } .tab-box { min-height: 550rpx; } -.note-list { - /* margin-bottom: 80rpx; */ -} .tab-class { --td-loading-color: #ff6c00 diff --git a/packageBookService/pages/bookServices/examination/examination.js b/packageBookService/pages/bookServices/examination/examination.js index d948903..6b82781 100644 --- a/packageBookService/pages/bookServices/examination/examination.js +++ b/packageBookService/pages/bookServices/examination/examination.js @@ -282,13 +282,15 @@ } else { return false } - } else { + } else if (typeof data == 'object') { const answer = data.find((item) => item.length > 0) if (answer) { return true } else { return false } + } else { + return false } }, // 鎻愪氦閫昏緫 @@ -712,7 +714,7 @@ loading: false, }) }, - // 鎵规敼棰樼洰 锛堢粌涔狅紝鎴戠殑閿欓锛屾垜鐨勬敹钘忥級 + // 鎵规敼棰樼洰 锛堢粌涔狅紝鎴戠殑閿欓锛屾垜鐨勬敹钘�,锛岀粍鍗凤級 handleQuestion(num) { const questionList = this.data.questionDataList const index = num - 1 >= 0 ? num - 1 : 0 @@ -1332,7 +1334,6 @@ }, // 鑾峰彇缁勫嵎棰樼洰鍒楄〃 async getMockDataList(questionList, oldList) { - console.log(questionList, oldList); const questionDataList = this.data.questionDataList questionList.forEach(async (pathitem, pathindex) => { let itemIds = [] @@ -1451,7 +1452,6 @@ }) let questionList = [] const cardUpdatedList = this.data.cardList - // if (flag == this.data.idPathList.length) { cardUpdatedList.forEach(aitem => { aitem.infoList.forEach((bitem, bindex) => { questionList.push(bitem) @@ -1462,6 +1462,7 @@ questionDataList: questionList, cardList: cardUpdatedList }) + console.log('缁勫嵎棰樼洰鍒楄〃', this.data.questionDataList); }) }) }) diff --git a/packageBookService/pages/bookServices/examination/examination.wxml b/packageBookService/pages/bookServices/examination/examination.wxml index 7e55aa7..1f24f93 100644 --- a/packageBookService/pages/bookServices/examination/examination.wxml +++ b/packageBookService/pages/bookServices/examination/examination.wxml @@ -43,7 +43,7 @@ bind:onChangeInput="onChangeInput" bind:changeSwiper="changeSwiper" ></question-list> - <view class="lodaing-box"> + <view class="lodaing-box" wx:if="{{loading}}"> <t-loading theme="circular" size="80rpx" diff --git a/packageBookService/pages/bookServices/examination/questionList/index.wxml b/packageBookService/pages/bookServices/examination/questionList/index.wxml index d776c40..a62a5f4 100644 --- a/packageBookService/pages/bookServices/examination/questionList/index.wxml +++ b/packageBookService/pages/bookServices/examination/questionList/index.wxml @@ -39,8 +39,8 @@ <!-- 鍗曢�夐 --> <t-radio-group wx:if="{{item.questionType == 'singleChoice' || item.questionType == 'judge'}}" defaultValue="{{item.userAnswer}}" disabled="{{item.isComplete}}" bind:change="onChangeRadio" class="radio-group" data-value="{{item.option}}" data-id="{{item.id}}"> <view wx:for="{{item.option}}" wx:for-item="contentItem" wx:for-index="contentIndex" wx:key="contentIndex"> - <t-radio value="{{contentItem.value}}" icon="none" placement="right" borderless style="color: {{isNight ? '#fff' : '#000'}}; background-color:{{isNight ? '#000' : '#fff'}}"> - <view class="radio-item {{item.answer == contentItem.value && item.answer == item.userAnswer ? 'radio-correct' : item.userAnswer == contentItem.value && item.userAnswer != item.answer ?'radio-error' :''}}" style="color: {{isNight ? '#fff' : '#000'}}; background-color:{{isNight ? '#000' : '#fff'}}"> + <t-radio value="{{contentItem.value}}" icon="none" placement="right" borderless> + <view class="radio-item {{item.answer == contentItem.value && item.answer == item.userAnswer ? 'radio-correct' : item.userAnswer == contentItem.value && item.userAnswer != item.answer ?'radio-error' :''}}"> <!-- 浠呮枃瀛� --> <text wx:if="{{item.optionStyle == 'Txt'}}">{{contentItem.value}}銆亄{contentItem.txt}}</text> <!-- 浠呭浘鐗� --> @@ -96,15 +96,15 @@ <!-- 瑙f瀽 --> <view class="analysis" wx:if="{{item.isComplete}}"> <view class="analysis-answer"> - <view class="answer-correct"> + <view class="answer-correct answer-center"> <text class="analysis-title-box">姝g‘绛旀锛�</text> <rich-text nodes="{{item.answer}}" style="font-size: 40rpx"></rich-text> </view> - <view class="answer-error"> + <view class="answer-center marginL {{item.isRight ? 'answer-correct' : 'answer-error'}}" wx:if="{{item.questionType !== 'shortAnswer'}}"> <text class="analysis-title-box">鎮ㄧ殑绛旀锛�</text><text class="answer-text">{{item.userAnswer}}</text> </view> </view> - <view class="analysis-text" wx:if="{{item.analysisCon}}"> + <view class="analysis-text" wx:if="{{item.analysisCon}}" style="color: {{isNight ? '#fff' : '#000'}};"> 绛旀瑙f瀽锛�<rich-text nodes="{{item.analysisCon}}" class="analysis-content"></rich-text> </view> </view> diff --git a/packageBookService/pages/bookServices/examination/questionList/index.wxss b/packageBookService/pages/bookServices/examination/questionList/index.wxss index 03185dd..1bdc74f 100644 --- a/packageBookService/pages/bookServices/examination/questionList/index.wxss +++ b/packageBookService/pages/bookServices/examination/questionList/index.wxss @@ -1,7 +1,7 @@ /* pages/bookServices/examination/questionList/index.wxss */ .question-list { - width: 100%; - height: 90%; + width: 95%; + height: 86%; padding: 20rpx; background-color: #ffffff; border-radius: 20rpx; @@ -113,7 +113,7 @@ .analysis-answer { display: flex; - justify-content: space-between; + /* justify-content: space-between; */ } .answer-correct { @@ -124,6 +124,15 @@ color: #EE1818; } +.marginL { + margin-left: 140rpx; +} + +.answer-center { + display: flex; + align-items: center; +} + .answer-text { font-size: 40rpx; } diff --git a/packageBookService/pages/bookServices/examination/questionOptions/index.js b/packageBookService/pages/bookServices/examination/questionOptions/index.js index 49b4ac6..88d1ec6 100644 --- a/packageBookService/pages/bookServices/examination/questionOptions/index.js +++ b/packageBookService/pages/bookServices/examination/questionOptions/index.js @@ -48,6 +48,10 @@ mockSumTime: { type: Number, value: 0, + }, + isNight: { + type: Boolean, + value: false } }, @@ -60,7 +64,7 @@ questionCardState: false, setUpPopup: false, testReportState: false, - sliderValue: 0, + sliderValue: 10, useTime: '', radioItem: 'daytime' }, diff --git a/packageBookService/pages/bookServices/examination/questionOptions/index.wxml b/packageBookService/pages/bookServices/examination/questionOptions/index.wxml index ee23b79..7057d37 100644 --- a/packageBookService/pages/bookServices/examination/questionOptions/index.wxml +++ b/packageBookService/pages/bookServices/examination/questionOptions/index.wxml @@ -1,19 +1,19 @@ <!--pages/bookServices/examination/questionOptions/index.wxml--> -<view class="page-bottom"> - <view class="li-option" bind:tap="setCollect"> +<view class="page-bottom" style="color: {{isNight ? '#fff' : '#000'}}; background-color:{{isNight ? '#000' : '#fff'}}"> + <view class="li-option" bind:tap="setCollect" style="color: {{isNight ? '#fff' : '#000'}};"> <t-image src="{{ questionDataList[currentIndex].isCollect ? '/static/images/bookService/detail/collecting.png' : '/static/images/bookService/examination/collect.png'}}"> </t-image> 鏀惰棌 </view> - <view class="li-option" bind:tap="handlePopup"> + <view class="li-option" bind:tap="handlePopup" style="color: {{isNight ? '#fff' : '#000'}};"> <t-image src="/static/images/bookService/examination/questionCard.png"></t-image> 绛旈鍗� </view> - <view class="li-option" bind:tap="setUpBtn"> + <view class="li-option" bind:tap="setUpBtn" style="color: {{isNight ? '#fff' : '#000'}};"> <t-image src="/static/images/bookService/examination/setting.png"></t-image> 璁剧疆 </view> - <view class="li-option" bind:tap="resterBtn" wx:if="{{answerType == 'option' || answerType == 'mock'}}"> + <view class="li-option" bind:tap="resterBtn" wx:if="{{answerType == 'option' || (answerType == 'mock' && !submitStatus)}}" style="color: {{isNight ? '#fff' : '#000'}};"> <t-image src="/static/images/bookService/examination/reset.png"></t-image> 閲嶅仛 </view> @@ -66,7 +66,7 @@ <view class="brightness"> <text>A-</text> <view class="brightness-slider"> - <t-slider defaultValue="{{30}}" theme="capsule" /> + <t-slider value="{{sliderValue}}" theme="capsule" step="{{10}}" bind:change="onChangeSlider" /> </view> <text>A+</text> @@ -77,7 +77,7 @@ <view class="card {{radioItem == 'daytime' ? 'card--active' : ''}}"> <t-radio value="daytime" icon="none" borderless> <view class="radio-content" slot="content"> - <t-image src="{{ radioItem == 'daytime' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}"></t-image> + <t-image src="{{ radioItem == 'daytime' ? '/static/images/bookService/examination/rijian.png' : '/static/images/bookService/detail/notest.png'}}"></t-image> <text style="color: {{radioItem == 'daytime' ? '#fff':''}};">鏃ラ棿妯″紡</text> </view> </t-radio> @@ -85,7 +85,7 @@ <view class="card {{radioItem == 'night' ? 'card--active' : ''}}"> <t-radio value="night" icon="none" borderless> <view class="radio-content" slot="content"> - <t-image src="{{ radioItem == 'night' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}"></t-image> + <t-image src="{{ radioItem == 'night' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/examination/yejian.png'}}"></t-image> <text style="color: {{radioItem == 'night' ? '#fff':''}};">澶滈棿妯″紡</text> </view> </t-radio> diff --git a/packageBookService/pages/bookServices/examination/questionOptions/index.wxss b/packageBookService/pages/bookServices/examination/questionOptions/index.wxss index 50a6e03..291ce81 100644 --- a/packageBookService/pages/bookServices/examination/questionOptions/index.wxss +++ b/packageBookService/pages/bookServices/examination/questionOptions/index.wxss @@ -195,6 +195,7 @@ .brightness-slider { width: 80%; + --td-slider-active-color: #ff6c00; } .test-radio { @@ -208,6 +209,7 @@ .test-radio image { width: 34rpx; height: 34rpx; + margin-right: 18rpx; } .card { diff --git a/packageBookService/pages/bookServices/examination/questionSchedule/index.js b/packageBookService/pages/bookServices/examination/questionSchedule/index.js index 458b052..531b569 100644 --- a/packageBookService/pages/bookServices/examination/questionSchedule/index.js +++ b/packageBookService/pages/bookServices/examination/questionSchedule/index.js @@ -25,9 +25,9 @@ type: String, value: '' }, - isNight:{ - type:Boolean, - value:false + isNight: { + type: Boolean, + value: false } }, created( @@ -90,13 +90,15 @@ } else { return false } - } else { + } else if (typeof data == 'object') { const answer = data.find((item) => item.length > 0) if (answer) { return true } else { return false } + } else { + return false } }, // // 鏍煎紡鍖栨椂闂� diff --git a/packageBookService/pages/bookServices/list/index.js b/packageBookService/pages/bookServices/list/index.js index 4fa9702..cc50289 100644 --- a/packageBookService/pages/bookServices/list/index.js +++ b/packageBookService/pages/bookServices/list/index.js @@ -47,6 +47,8 @@ loadingProps: { size: '50rpx', }, + loading: false, + noData: false }, /** * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 @@ -138,7 +140,6 @@ * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� */ onReachBottom(e) { - console.log('搴曢儴'); const flag = this.data.bookList.length < this.data.pageCount.total if (flag) { this.setData({ @@ -275,6 +276,10 @@ }, // 鑾峰彇鍥句功鍒楄〃 getBookList(path) { + this.setData({ + loading: true, + noData: false + }) let sort; let pathObj = {}; if (this.data.pathList.length) { @@ -336,9 +341,15 @@ this.setData({ bookList: res.datas, enable: false, - "pageCount.total": res.total + "pageCount.total": res.total, + loading: false }); - console.log('鍥句功鍒楄〃', res, this.data.pageCount); + console.log('鍥句功鍒楄〃', res.datas); + if (!res.datas.length) { + this.setData({ + noData: true + }) + } }); }, // 涓�绾у垎绫诲垏鎹� @@ -371,7 +382,6 @@ pathList: pathList, 'secondList.value': e.detail.value, }); - }, // onConfirmSecond() { diff --git a/packageBookService/pages/bookServices/list/index.json b/packageBookService/pages/bookServices/list/index.json index 32e63d7..397f571 100644 --- a/packageBookService/pages/bookServices/list/index.json +++ b/packageBookService/pages/bookServices/list/index.json @@ -6,7 +6,8 @@ "t-image": "tdesign-miniprogram/image/image", "t-search": "tdesign-miniprogram/search/search", "t-pull-down-refresh": "tdesign-miniprogram/pull-down-refresh/pull-down-refresh", - "t-loading": "tdesign-miniprogram/loading/loading" + "t-loading": "tdesign-miniprogram/loading/loading", + "t-empty": "tdesign-miniprogram/empty/empty" }, "navigationStyle": "custom" } \ No newline at end of file diff --git a/packageBookService/pages/bookServices/list/index.wxml b/packageBookService/pages/bookServices/list/index.wxml index c06275a..81aa827 100644 --- a/packageBookService/pages/bookServices/list/index.wxml +++ b/packageBookService/pages/bookServices/list/index.wxml @@ -10,8 +10,8 @@ <view class="bookServices-list"> <view class="list-header"> <scroll-view scroll-x="{{true}}" class="header-scroll"> - <t-dropdown-menu> - <t-dropdown-item options="{{stairList.options}}" value="{{stairList.value}}" bindchange="onChangeStair" /> + <t-dropdown-menu style="width: 800rpx;"> + <t-dropdown-item options="{{stairList.options}}" value="{{stairList.value}}" bindchange="onChangeStair" style="background-color: #F6F6F6;" /> <t-dropdown-item label="浜岀骇" options="{{secondList.options}}" optionsColumns="2" multiple value="{{secondList.value}}" bind:confirm="onConfirmSecond" bind:change="onChangeSecond" /> <t-dropdown-item label="閲嶇偣椤圭洰" options="{{majorProjectList.options}}" optionsColumns="2" multiple defaultValue="{{majorProjectList.value}}" bind:confirm="changeMajorProject" bind:reset="resetMajorProject" /> <t-dropdown-item label="鏂板舰鎬佹暀鏉�" options="{{newTextBook.options}}" optionsColumns="2" multiple defaultValue="{{newTextBook.value}}" bind:confirm="changeNewText" bind:reset="resetNewText" /> @@ -31,13 +31,22 @@ <view class="title-box"></view> <view class="title-name">{{assortCheck.name}}</view> </view> - <view class="book-list"> - <view class="book-box" wx:for="{{bookList}}" wx:key="id" bind:tap="goDetail" data-book="{{item}}"> - <view class="book-img"> - <t-image src="{{item.icon}}" width="105" height="145" aria-label="{item.name{}}" /> + <view class="page-content"> + <view class="book-list" wx:if="{{!loaidng}}"> + <view class="book-box" wx:for="{{bookList}}" wx:key="id" bind:tap="goDetail" data-book="{{item}}"> + <view class="book-img"> + <t-image src="{{item.icon ? item.icon : '/static/images/default-book-img.png'}}" width="105" height="145" aria-label="{item.name{}}" /> + </view> + <view class="book-name book-color">{{ item.name}}</view> + <view class="book-author book-color">{{item.author}}</view> </view> - <view class="book-name book-color">{{ item.name}}</view> - <view class="book-author book-color">{{item.author}}</view> + <view wx:if="{{noData}}" class="noData"> + <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> + </view> + </view> + <!-- loading --> + <view class="loading-box" wx:if="{{loaidng}}"> + <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loaidng}}" wx:if="{{loaidng}}" /> </view> </view> <view class="bottom-box"> diff --git a/packageBookService/pages/bookServices/list/index.wxss b/packageBookService/pages/bookServices/list/index.wxss index f708171..3a0d134 100644 --- a/packageBookService/pages/bookServices/list/index.wxss +++ b/packageBookService/pages/bookServices/list/index.wxss @@ -123,4 +123,31 @@ height: 80rpx; font-size: 28rpx; --td-loading-color: #ff6c00 +} + +.loading-box { + width: 100%; + height: calc(100vh - 500rpx); + display: flex; + align-items: center; + justify-content: center; + --td-loading-color: #ff6c00; +} + +.noData { + width: 100%; + display: flex; + justify-content: center; +} + +.t-dropdown-menu { + display: flex; + align-items: center; +} + +.t-dropdown-menu__item { + background-color: #F6F6F6; + border-radius: 80rpx; + height: 70%; + margin-left: 20rpx; } \ No newline at end of file diff --git a/pages/bookServices/assort/index.js b/pages/bookServices/assort/index.js index 78224d0..e8f86b1 100644 --- a/pages/bookServices/assort/index.js +++ b/pages/bookServices/assort/index.js @@ -6,14 +6,20 @@ * 椤甸潰鐨勫垵濮嬫暟鎹� */ data: { + placeholderstyle: 'font-size:28rpx', assortList: [], assortCheck: { name: '', code: '', }, startList: [], - startCheck: '', + + startCheck: { + id: '', + code: '' + }, bookList: [], + loading: false, listLoding: false, }, @@ -21,8 +27,7 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 */ onLoad(options) { - // this.getAssortList() - console.log(options); + this.getAssortList(); }, /** @@ -34,7 +39,6 @@ * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず */ onShow() { - this.getAssortList(); }, /** @@ -64,6 +68,9 @@ // 鑾峰彇渚ц竟鏍忓垪琛� getAssortList() { + this.setData({ + loading: true + }) const query = { path: '*', filterList: [ @@ -83,6 +90,7 @@ const list = res.datas.filter((item) => item.refCode != 'jsek_homepageBookService'); this.setData({ assortList: list, + loading: false }); this.setData({ assortCheck: { @@ -94,14 +102,14 @@ }); }, // 渚ц竟鏍忓垏鎹� - changeAssort(data) { + changeAssort(e) { this.setData({ assortCheck: { - name: data.detail.label, - code: data.detail.value, + name: e.detail.label, + code: e.detail.value, }, }); - this.getStairList(data.detail.value); + this.getStairList(e.detail.value); }, // 鑾峰彇涓�绾у垎绫� getStairList(path) { @@ -110,7 +118,12 @@ }); const query = { path, - filterList: [], + filterList: [ + { + value: 'Normal', + field: 'state' + } + ], queryType: '\\', searchList: [], size: '30', @@ -119,23 +132,20 @@ sort: { type: 'Asc', field: 'LinkOrder' }, }; app.MG.store.getStoreChannelList(query).then(async (res) => { - // 涓�绾у垎绫婚�変腑 - // this.setData({ - // startCheck: res.datas[0].refCode, - // }); // 鑾峰彇浜岀骇鍒嗙被 for (let index = 0; index < res.datas.length; index++) { const item = res.datas[index]; item.icon ? item.icon = getPublicImage(item.icon, 58, 72) : item.icon = item.icon item.children = await this.getSecondList(item); } + console.log(res.datas); // 涓�绾у垎绫昏祴鍊� this.setData({ startList: res.datas, + listLoding: false, + 'startCheck.id': res.datas[0].id, + 'startCheck..code': '' }); - }); - this.setData({ - listLoding: false, }); }, @@ -145,7 +155,12 @@ let datas; const query = { path, - filterList: [], + filterList: [ + { + value: 'Normal', + field: 'state' + } + ], queryType: '\\', searchList: [], size: '30', @@ -167,7 +182,8 @@ tabClick(e) { const data = e.currentTarget.dataset.tabdata; this.setData({ - startCheck: data.refCode, + 'startCheck.id': data.id, + 'startCheck.code': data.refCode, }); console.log(data); }, @@ -176,12 +192,13 @@ const tab = e.currentTarget.dataset.tabdata const stair = e.currentTarget.dataset.stair this.setData({ - startCheck: tab.refCode + 'startCheck.id': tab.id, + 'startCheck.code': tab.refCode }) if (stair) { const secondCode = `${stair.pathLinks[0].linkPath}\\${stair.id}`; wx.navigateTo({ - url: `/packageBookService/pages/bookServices/list/index?assorName=${this.data.assortCheck.name}&assortCode=${this.data.assortCheck.code}&stairCode=${this.data.startCheck}&secondCode=${secondCode}`, + url: `/packageBookService/pages/bookServices/list/index?assorName=${this.data.assortCheck.name}&assortCode=${this.data.assortCheck.code}&stairCode=${this.data.startCheck.code}&secondCode=${secondCode}`, }); } else { wx.navigateTo({ @@ -192,7 +209,7 @@ }, navToSearchPage(e) { wx.navigateTo({ - url: `/packageBookService/pages/bookServices/list/index?assorName=${this.data.assortCheck.name}&assortCode=${this.data.assortCheck.code}&stairCode=${this.data.startCheck}&searchValue=${e.detail.value}`, + url: `/packageBookService/pages/bookServices/list/index?assorName=${this.data.assortCheck.name}&assortCode=${this.data.assortCheck.code}&stairCode=${this.data.startCheck.code}&searchValue=${e.detail.value}`, }); }, }); diff --git a/pages/bookServices/assort/index.wxml b/pages/bookServices/assort/index.wxml index aca70a8..59c923d 100644 --- a/pages/bookServices/assort/index.wxml +++ b/pages/bookServices/assort/index.wxml @@ -2,45 +2,62 @@ <view class="page-header"> <!-- 鎼滅储妗� --> <view class="search"> - <t-search t-class-input="t-search__input" t-class-input-container="t-search__input-container" placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��" leftIcon="" bind:submit="navToSearchPage" placeholder-class="placeholder" placeholder-style="font-size:28rpx;"> + <t-search t-class-input="t-search__input" t-class-input-container="t-search__input-container" placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��" leftIcon="" bind:submit="navToSearchPage" placeholder-style="{{placeholderstyle}}"> <t-icon slot="left-icon" prefix="wr" name="search" size="40rpx" color="#bbb" /> </t-search> </view> </view> <view class="page-container"> - <view class="side-bar-wrapper"> + <view class="side-bar-wrapper" wx:if="{{!loading}}"> <view class="tab-left"> <t-side-bar value="{{assortCheck.code}}" bind:change="changeAssort"> <t-side-bar-item wx:for="{{assortList}}" wx:key="id" value="{{item.refCode}}" label="{{item.name}}" badge-props="{{item.badgeProps}}" /> </t-side-bar> </view> - <view class="side-bar-content"> - <!-- 涓�绾у垎绫� --> - <view class="tab-top"> - <scroll-view scroll-x="{{true}}" class="myScroll"> - <view wx:for="{{startList}}" wx:key="id" class="row {{startCheck == item.refCode ? 'tab-active' : ''}}" bind:tap="tabClick" data-tabData="{{item}}">{{item.name}}</view> - </scroll-view> - </view> - <!-- 鍐呭 --> - <scroll-view scroll-y="{{true}}" class="class-list" scroll-into-view="{{startCheck}}"> - <view wx:if="{{listLoading}}"> - <t-loading theme="spinner" size="400rpx" loading="{{listLoading}}"></t-loading> + <view class="page-right"> + <!-- 鍙充晶 --> + <view class="side-bar-content" wx:if="{{!listLoding}}"> + <!-- 涓�绾у垎绫� --> + <view class="tab-top"> + <scroll-view scroll-x="{{true}}" class="myScroll" show-scrollbar="{{false}}"> + <view wx:for="{{startList}}" wx:key="id" class="row {{startCheck.id == item.id ? 'tab-active' : ''}}" bind:tap="tabClick" data-tabData="{{item}}">{{item.name}}</view> + </scroll-view> </view> - <view wx:for="{{startList}}" wx:for-item="item" wx:key="item.refCode" id="{{item.refCode}}" class="class-box" wx:if="{{!listLoading}}"> - <view class="class-name">{{item.name}}</view> - <view class="class-content"> - <view wx:for="{{item.children}}" wx:for-item="citem" wx:key="id" class="book-box" bind:tap="goPageList" data-stair="{{citem}}" data-tabData="{{item}}" wx:if="{{item.children.length}}"> - <image src="{{citem.icon ? citem.icon : '/static/images/bookService/assort/book-img.png'}}" mode="heightFix" /> - <view class="classify">{{citem.name}}</view> - </view> - <view wx:if="{{!item.children.length}}" class="book-box" bind:tap="goPageList" data-tabData="{{item}}"> - <image src="{{item.icon ? item.icon : '/static/images/bookService/assort/book-img.png'}}" mode="heightFix"></image> - <text class="classify">鍏ㄩ儴</text> + <!-- 鍐呭 --> + <scroll-view scroll-y="{{true}}" class="class-list" scroll-into-view="{{ 'list' + startCheck.id}}"> + <view wx:if="{{listLoading}}"> + <t-loading theme="spinner" size="400rpx" loading="{{listLoading}}"></t-loading> + </view> + <view wx:for="{{startList}}" wx:for-item="item" wx:key="item.id" id="{{ 'list' + item.id}}" class="class-box" wx:if="{{!listLoading}}"> + <view class="class-name">{{item.name}}</view> + <view class="class-content"> + <view wx:for="{{item.children}}" wx:for-item="citem" wx:key="id" class="book-box" bind:tap="goPageList" data-stair="{{citem}}" data-tabData="{{item}}" wx:if="{{item.children.length}}"> + <view class="assort-img"> + <image src="{{citem.icon ? citem.icon : '/static/images/bookService/assort/book-img.png'}}" mode="heightFix" /> + </view> + <view class="classify">{{citem.name}}</view> + </view> + <view wx:if="{{!item.children.length}}" class="book-box" bind:tap="goPageList" data-tabData="{{item}}"> + <view class="assort-img"> + <image src="{{item.icon ? item.icon : '/static/images/bookService/assort/book-img.png'}}" mode="heightFix"></image> + </view> + <text class="classify">鍏ㄩ儴</text> + </view> </view> </view> - </view> - </scroll-view> + <view class="bottom-box"> + </view> + </scroll-view> + </view> + <!-- loading --> + <view class="loading-box" wx:if="{{listLoding}}"> + <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{listLoding}}" wx:if="{{listLoding}}" /> + </view> </view> + + </view> + <view class="loading-box" wx:if="{{loading}}"> + <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loading}}" wx:if="{{loading}}" /> </view> </view> \ No newline at end of file diff --git a/pages/bookServices/assort/index.wxss b/pages/bookServices/assort/index.wxss index 184d7ef..f065f59 100644 --- a/pages/bookServices/assort/index.wxss +++ b/pages/bookServices/assort/index.wxss @@ -13,14 +13,12 @@ left: 0; width: 100%; z-index: 99; - font-size: 28rpx; + --td-search-font-size: 28rpx; } -.placeholder { - font-size: 28rpx; -} -.page-header .t-search__input-container { +.page-header .search .t-search__input-container { + font-size: 28rpx !important; border-radius: 15rpx !important; margin: 0 24rpx; height: 64rpx !important; @@ -29,15 +27,17 @@ .page-container { padding: 120rpx 0 20rpx 0; width: 100%; + height: 90%; } .side-bar-wrapper { + height: 100%; background-color: #f2f3f8; display: flex; } .side-bar-content { - width: 70%; + width: 100%; padding: 0 20rpx; } @@ -88,19 +88,20 @@ .class-list { /* overflow-y: auto; */ - height: 72.5vh; - width: 262px; + height: calc(100vh - 326rpx); + width: calc(100vw - 210rpx); } .class-box { background-color: #fff; - margin-bottom: 10rpx; + margin-bottom: 20rpx; padding: 10rpx 12rpx; border-radius: 12rpx; - /* height: 60rpx; */ } + .class-name { + padding: 20rpx 0 0 20rpx; font-size: 32rpx; font-weight: 700; } @@ -113,8 +114,11 @@ } .book-box { - width: 48%; - margin: 0 10rpx 20rpx 0 + display: flex; + flex-direction: column; + align-items: center; + width: 50%; + margin-bottom: 26rpx; } .book-box:nth-child(2n) { @@ -123,13 +127,39 @@ .book-box image { height: 142rpx; - object-fit: contain; + object-fit: contain !important; } .classify { max-width: 90%; - white-space: nowrap; + word-break: break-all; + display: -webkit-box; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; overflow: hidden; - text-overflow: ellipsis; font-size: 14px; +} + +.assort-img { + width: 116rpx; + height: 142rpx; + box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16); + margin-bottom: 20rpx; +} + +.page-right { + width: 100%; +} + +.loading-box { + width: 100%; + height: 100%; + display: flex; + align-items: center; + justify-content: center; + --td-loading-color: #ff6c00; +} + +.bottom-box { + height: 40rpx; } \ No newline at end of file diff --git a/static/images/bookService/detail/square.png b/static/images/bookService/detail/square.png new file mode 100644 index 0000000..fc6a912 --- /dev/null +++ b/static/images/bookService/detail/square.png Binary files differ -- Gitblit v1.9.1