From 3d73fb33c46aada16a6060adcd4ea14bb33b6b2a Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期二, 09 四月 2024 10:39:11 +0800 Subject: [PATCH] 详情页tabs样式优化,答题添加页面退出拦截,合并代码 --- packageBookService/pages/bookServices/examination/questionList/index.wxml | 364 ++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 311 insertions(+), 53 deletions(-) diff --git a/packageBookService/pages/bookServices/examination/questionList/index.wxml b/packageBookService/pages/bookServices/examination/questionList/index.wxml index d776c40..73943a5 100644 --- a/packageBookService/pages/bookServices/examination/questionList/index.wxml +++ b/packageBookService/pages/bookServices/examination/questionList/index.wxml @@ -1,116 +1,374 @@ <!--pages/bookServices/examination/questionList/index.wxml--> -<view class="question-list" style="background-color:{{isNight ? '#000' : '#fff'}}"> +<view + class="question-list" + style="background-color:{{isNight ? '#222' : '#fff'}}" +> <!-- 棰樺瀷title --> - <view class="question-title" wx:if="{{questionList[showIndex].type}}" style="background-color:{{isNight ? '#000' : '#fff'}}"> - <text class="title-name">{{questionList[showIndex].type}}</text><text class="title-score" style="color: {{isNight ? '#fff' : '#000'}};">(姣忛{{questionList[showIndex].score}}鍒�)</text> + <view + class="question-title" + wx:if="{{questionList[showIndex].type}}" + style="background-color:{{isNight ? '#222' : '#fff'}}" + > + <text class="title-name">{{questionList[showIndex].type}}</text + ><text + wx:if="{{questionList[showIndex].score}}" + class="title-score" + style="color: {{isNight ? '#fff' : '#000'}};" + >(姣忛{{questionList[showIndex].score}}鍒�)</text + > </view> <!-- 棰樼洰鍒楄〃 --> - <swiper class="swiper" bind:change="changeSwiper" current="{{currentIndex}}"> - <swiper-item wx:for="{{questionList}}" wx:key="{{item.id}}"> + <swiper + class="swiper" + bindanimationfinish="changeSwiper" + current="{{currentIndex}}" + > + <swiper-item wx:for="{{questionList}}" wx:key="id" style="overflow-y: auto"> <!-- 棰樺共 --> - <view class="question-stem title-score" style="color: {{isNight ? '#fff' : '#000'}};"> + <view + class="question-stem title-score" + style="color: {{isNight ? '#fff' : '#000'}}; font-size: {{sliderValue || 32}}rpx;" + > <!-- 棰樺彿 --> <text>{{item.number}}.</text> <!-- 浠呮枃瀛� --> - <view wx:if="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}">{{item.stem.stemTxt}}</view> + <view + class="title-content" + wx:if="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}" + >{{item.stem.stemTxt}}</view + > <!-- 浠呭浘鐗� --> - <view wx:elif="{{item.stemStyle == 'Image'}}"> - <t-image src="{{item.stem.stemImage}}" /> + <view wx:elif="{{item.stemStyle == 'Image'}}" class="title-content"> + <image src="{{item.stem.stemImage}}" mode="aspectFit" /> </view> <!-- 鍥剧墖鍔犳枃瀛� --> - <view wx:elif="{{item.stemStyle == 'TxtAndImage'}}" class="title-TxtAndImage"> - <text>{{item.stem.stemTxt}}</text> - <t-image src="{{item.stem.stemImage}}"></t-image> + <view + wx:elif="{{item.stemStyle == 'TxtAndImage'}}" + class="title-content" + > + <view>{{item.stem.stemTxt}}</view> + <image src="{{item.stem.stemImage}}" mode="aspectFit" /> </view> <!-- 瀵屾枃鏈� --> - <view wx:elif="{{item.stemStyle == 'RichText'}} " class="title-RichText"> - <rich-text nodes="{{item.stem.stemTxt}}"></rich-text> + <view wx:elif="{{item.stemStyle == 'RichText'}} " class="title-content"> + <mp-html content="{{item.stem.stemTxt}}" /> </view> <!-- 濉┖棰� --> <view wx:if="{{item.questionType == 'completion'}}"> - <view class="completion-box" wx:for="{{item.stem}}" wx:for-item="inputItem" wx:for-index="inputIndex" wx:key="inputIndex"> - <t-input disabled="{{item.isComplete}}" bind:change="onChangeInput" data-value="{{item.option}}" data-id="{{item.id}}" data-index="{{inputItem.num}}" class="title-input" style="{{inputstyle}}" placeholder-style="{{placeholderstyle}}" wx:if="{{inputItem.data == 'input'}}" placeholder="璇疯緭鍏ユ枃瀛�" value="{{item.userAnswer[inputItem.num]}}"></t-input> + <view + class="completion-box" + wx:for="{{item.stem}}" + wx:for-item="inputItem" + wx:for-index="inputIndex" + wx:key="inputIndex" + > + <t-input + disabled="{{item.isComplete}}" + bind:change="onChangeInput" + data-value="{{item.option}}" + data-id="{{item.id}}" + data-index="{{inputItem.num}}" + class="title-input {{isNight ? 'input-night-color' : ''}}" + style="border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx;background-color:{{isNight ? '#000' : '#fff'}}; " + placeholder-style="{{placeholderstyle}}" + wx:if="{{inputItem.data == 'input'}}" + placeholder="璇疯緭鍏ユ枃瀛�" + value="{{item.userAnswer[inputItem.num]}}" + ></t-input> <text wx:else>{{inputItem}}</text> </view> </view> </view> <!-- 绛旈鍖哄煙 --> - <view class="question-answer"> + <view + class="question-answer {{item.questionType == 'shortAnswer' ? 'textarea-center' : ''}}" + > <!-- 鍗曢�夐 --> - <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-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="background-color: {{isNight ? '#222' : '#fff'}}" + > + <view + style="font-size: {{sliderValue || 32}}rpx;" + class="radio-item {{(answerType == 'option' || answerType == 'mock' ) && !submitStatus && item.userAnswer == contentItem.value ? 'radio-active' : isNight ? 'night' :''}} {{item.userAnswer == contentItem.value && submitStatus ? item.isRight ? 'radio-correct' : 'radio-error' :''}}" + > <!-- 浠呮枃瀛� --> - <text wx:if="{{item.optionStyle == 'Txt'}}">{{contentItem.value}}銆亄{contentItem.txt}}</text> + <text wx:if="{{item.optionStyle == 'Txt'}}" + >{{contentItem.value}}銆亄{contentItem.txt}}</text + > <!-- 浠呭浘鐗� --> <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center"> <text>{{contentItem.value}}銆�</text> - <t-image src="{{contentItem.img}}"></t-image> + <image src="{{contentItem.img}}" mode="aspectFit" /> </view> <!-- 鏂囧瓧鍔犲浘鐗� --> - <view wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center"> + <view + wx:if="{{item.optionStyle == 'TxtAndImage'}}" + class="fl-center" + style="height: min-content" + > <text>{{contentItem.value}}銆�</text> - <text>{{contentItem.txt}}</text> - <t-image src="{{contentItem.img}}"></t-image> + <view class="radio-textimg">{{contentItem.txt}}</view> + <image src="{{contentItem.img}}" mode="aspectFit" /> </view> <!-- 瀵屾枃鏈� --> - <view wx:if="{{item.optionStyle == 'RichText'}}"> + <view + wx:if="{{item.optionStyle == 'RichText'}}" + class="judge-rich-box" + > <text>{{contentItem.value}}銆�</text> - <rich-text nodes="{{contentItem.txt}}"></rich-text> + <rich-text + nodes="{{ contentItem.txt}}" + style="display: flex; align-items: center; width: 100%" + ></rich-text> </view> - <text wx:if="{{item.answer == contentItem.value && item.answer == item.userAnswer}}">瀵�</text> - <text wx:if="{{item.userAnswer == contentItem.value && item.userAnswer != item.answer}}">閿�</text> + <text + wx:if="{{submitStatus && (item.answer == contentItem.value && item.answer == item.userAnswer)}}" + >瀵�</text + > + <text + wx:if="{{ submitStatus && (item.userAnswer == contentItem.value && item.userAnswer != item.answer)}}" + >閿�</text + > </view> </t-radio> </view> </t-radio-group> <!-- 澶氶�夐 --> - <t-checkbox-group disabled="{{item.isComplete}}" class="checkbox-group" wx:elif="{{item.questionType == 'multipleChoice'}}" t-class="box" borderless bind:change="onChangeRadio" data-value="{{item.option}}" data-id="{{item.id}}" defaultValue="{{item.userAnswer}}"> - <view wx:for="{{item.option}}" wx:for-item="contentItem" wx:for-index="contentIndex" wx:key="contentIndex"> - <t-checkbox block="{{false}}" value="{{contentItem.value}}"> + <t-checkbox-group + class="checkbox-group" + wx:elif="{{item.questionType == 'multipleChoice'}}" + t-class="box" + borderless + bind:change="onChangeRadio" + data-value="{{item.option}}" + data-id="{{item.id}}" + defaultValue="{{item.userAnswer}}" + > + <view + wx:for="{{item.option}}" + wx:for-item="contentItem" + wx:for-index="contentIndex" + wx:key="contentIndex" + > + <t-checkbox + disabled="{{item.isComplete}}" + icon="rectangle" + block="{{false}}" + value="{{contentItem.value}}" + style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; display: flex; align-items: center; margin-bottom: 20rpx;" + > <!-- 浠呮枃瀛� --> - <text wx:if="{{item.optionStyle == 'Txt'}}">{{contentItem.value}}銆亄{contentItem.txt}}</text> + <view + class="fl-center" + wx:if="{{item.optionStyle == 'Txt'}}" + style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" + > + <text>{{contentItem.value}}銆�</text> + <text class="check-text-box">{{contentItem.txt}}</text> + </view> + <!-- 浠呭浘鐗� --> <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center"> - <text>{{contentItem.value}}銆�</text> - <t-image src="{{contentItem.img}}"></t-image> + <text + style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" + >{{contentItem.value}}銆�</text + > + <image src="{{contentItem.img}}" mode="aspectFit" /> </view> <!-- 鏂囧瓧鍔犲浘鐗� --> - <view wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center"> - <text>{{contentItem.value}}銆�</text> - <text>{{contentItem.txt}}</text> - <t-image src="{{contentItem.img}}"></t-image> + <view + wx:if="{{item.optionStyle == 'TxtAndImage'}}" + class="fl-center" + > + <text + style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" + >{{contentItem.value}}銆�</text + > + <text + style="color:{{ isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;" + >{{contentItem.txt}}</text + > + <image + src="{{contentItem.img}}" + wx:if="{{contentItem.img}}" + mode="aspectFit" + /> </view> <!-- 瀵屾枃鏈� --> - <view wx:if="{{item.optionStyle == 'RichText'}}"> + <view + wx:if="{{item.optionStyle == 'RichText'}}" + class="check-rich-box" + > <text>{{contentItem.value}}銆�</text> - <rich-text nodes="{{contentItem.txt}}"></rich-text> + <rich-text + nodes="{{contentItem.txt}}" + class="multipleChoice" + ></rich-text> </view> </t-checkbox> </view> </t-checkbox-group> <!-- 绠�绛� 缈昏瘧 --> - <t-textarea disabled="{{item.isComplete}}" value="{{item.userAnswer}}" bind:change="onChangeRadio" data-value="{{item.option}}" data-id="{{item.id}}" class="option-textarea" wx:elif="{{item.questionType == 'shortAnswer'}}" t-class="external-class" placeholder="璇疯緭鍏ユ枃瀛�" bordered maxlength="500" disableDefaultPadding="{{true}}" indicator style="{{style}}" /> + <t-textarea + disabled="{{item.isComplete}}" + value="{{item.userAnswer}}" + bind:change="onChangeRadio" + data-value="{{item.option}}" + data-id="{{item.id}}" + class="option-textarea {{isNight ? 'textarea-night-color' :''}}" + wx:elif="{{item.questionType == 'shortAnswer'}}" + t-class="external-class" + placeholder="璇疯緭鍏ユ枃瀛�" + bordered + maxlength="500" + disableDefaultPadding="{{true}}" + indicator + style="background-color:{{isNight ? '#000' : '#fff'}}; " + /> </view> - <!-- 瑙f瀽 --> - <view class="analysis" wx:if="{{item.isComplete}}"> + <!-- 鎴戠殑閿欓銆佹敹钘忔ā寮忎笅锛屾煡鐪嬭В鏋愭寜閽� --> + <view + wx:if="{{(answerType == 'collectQuestion' || answerType == 'errorQuestion') && (item.questionType == 'multipleChoice' || item.questionType == 'completion' || item.questionType == 'shortAnswer')}}" + style="margin-left: 40rpx" + > + <t-button theme="primary" class="view-parsing" bind:tap="viewParsing" + >鏌ョ湅瑙f瀽</t-button + > + </view> + <!-- 鍗曢�夈�佸閫夎В鏋� --> + <view + class="analysis" + wx:if="{{item.isComplete && (item.questionType == 'singleChoice' || item.questionType == 'judge' || item.questionType == 'multipleChoice')}}" + > <view class="analysis-answer"> - <view class="answer-correct"> + <view + class="answer-correct answer-center" + style="font-size: {{sliderValue || 32}}rpx;" + > <text class="analysis-title-box">姝g‘绛旀锛�</text> - <rich-text nodes="{{item.answer}}" style="font-size: 40rpx"></rich-text> + <rich-text + nodes="{{item.answer}}" + style="font-size: {{sliderValue || 40}}rpx;" + ></rich-text> </view> - <view class="answer-error"> - <text class="analysis-title-box">鎮ㄧ殑绛旀锛�</text><text class="answer-text">{{item.userAnswer}}</text> + <view + class="answer-center marginL {{item.isRight ? 'answer-correct' : 'answer-error'}}" + wx:if="{{item.questionType !== 'shortAnswer'}}" + > + <text + class="analysis-title-box" + style="font-size: {{sliderValue || 32}}rpx;" + >鎮ㄧ殑绛旀锛�</text + ><text + class="answer-text" + style="font-size: {{sliderValue || 40}}rpx;" + >{{item.userAnswer}}</text + > </view> </view> - <view class="analysis-text" wx:if="{{item.analysisCon}}"> - 绛旀瑙f瀽锛�<rich-text nodes="{{item.analysisCon}}" class="analysis-content"></rich-text> + <view + class="analysis-text" + wx:if="{{item.analysisCon}}" + style="color: {{isNight ? '#fff' : '#000'}};" + > + <text style="font-size: {{sliderValue || 32}}rpx;" class="answer-analysis">绛旀瑙f瀽锛�</text> + <rich-text + style="font-size: {{sliderValue || 32}}rpx;" + nodes="{{item.analysisCon}}" + class="analysis-content" + ></rich-text> + </view> + </view> + <!-- 濉┖銆佺畝绛旇В鏋� --> + <view + class="analysis" + wx:if="{{(item.questionType == 'shortAnswer' || item.questionType == 'completion') && item.isComplete}}" + > + <view + style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}" + > + <text + wx:if="{{item.questionType == 'completion'}}" + class="short-answer-fz answer-correct" + style="font-size:{{sliderValue || 32}}rpx;" + >姝g‘绛旀:</text + > + <text + wx:if="{{item.questionType == 'shortAnswer'}}" + class="short-answer-fz" + style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;" + > + 鍙傝�冪瓟妗堬細 + </text> + <rich-text + wx:if="{{item.questionType == 'shortAnswer'}}" + nodes="{{item.answer}}" + style="font-size:{{sliderValue || 28}}rpx; color:{{item.questionType == 'completion' ? '#1FBC1F' : isNight ? '#fff' : '#000'}}" + ></rich-text> + <view + wx:if="{{item.questionType == 'completion'}}" + style="font-size:{{sliderValue || 28}}rpx;" + class="short-answer-fz answer-correct" + >{{item.answer}}</view + > + </view> + <view + wx:if="{{item.questionType == 'completion'}}" + class="short-answer-mr" + style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}" + > + <text + class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" + style="font-size:{{sliderValue || 28}}rpx;" + >鎮ㄧ殑绛旀锛�</text + > + <view + class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" + style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;" + >{{item.userAnswer}}</view + > + </view> + <view class="short-answer-mr" style="margin-bottom: 50rpx"> + <text + class="short-answer-fz;" + style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;" + >绛旀瑙f瀽锛�</text + > + <rich-text + nodes="{{item.analysisCon}}" + style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}" + ></rich-text> </view> </view> </swiper-item> - <swiper-item> + <swiper-item + wx:if="{{answerType !== 'collectQuestion' && questionList.length}}" + > <text>娌℃湁鏇村浜嗐�傘�傘��</text> </swiper-item> + <swiper-item wx:if="{{!questionList.length}}"> + <view class="noData"> + <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> + </view> + </swiper-item> </swiper> -</view> \ No newline at end of file +</view> -- Gitblit v1.9.1