litian
2024-07-05 2f9305515c7264637164c9e03c2840f4219ca1e3
packageBookService/pages/bookServices/examination/questionList/index.wxml
@@ -1,48 +1,32 @@
<!--pages/bookServices/examination/questionList/index.wxml-->
<view
  class="question-list"
  style="background-color:{{isNight ? '#222' : '#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 ? '#222' : '#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"
    bindanimationfinish="changeSwiper"
    current="{{currentIndex}}"
  >
  <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'}}; font-size: {{sliderValue || 32}}rpx;"
      >
      <view class="question-stem title-score" style="color: {{isNight ? '#fff' : '#000'}}; font-size: {{sliderValue || 32}}rpx;">
        <!-- 题号 -->
        <text>{{item.number}}.</text>
        <!-- 听力题 -->
        <view wx:if="{{item.questionType == 'singleChoice' && item.src}}">
          <rich-text nodes="{{item.stem.stemTxt }}" />
          <view style="margin-top: {{item.stem.stemTxt ? '10rpx' : ''}};" class="audio-play-box" bind:tap="audioPlay" data-src="{{item.src}}">
            <image src="{{isPlay ? '/static/images/resourceDetailsMyAudio/zanting@2x.png' : '/static/images/resourceDetailsMyAudio/play@2x.png'}}" mode="aspectFit"></image>
          </view>
        </view>
        <!-- 仅文字 -->
        <view
          class="title-content"
          wx:if="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}"
          >{{item.stem.stemTxt}}</view
        >
        <view class="title-content text-space" wx:elif="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}">{{item.stem.stemTxt}}</view>
        <!-- 仅图片 -->
        <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-content"
        >
        <view wx:elif="{{item.stemStyle == 'TxtAndImage'}}" class="title-content text-space">
          <view>{{item.stem.stemTxt}}</view>
          <image src="{{item.stem.stemImage}}" mode="aspectFit" />
        </view>
@@ -52,317 +36,126 @@
        </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 {{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 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 class="text-space">{{inputItem}}</text>
          </view>
        </view>
      </view>
      <!-- 答题区域 -->
      <view
        class="question-answer {{item.questionType == 'shortAnswer' ? 'textarea-center' : ''}}"
      >
      <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="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' :''}}"
              >
        <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'}}" class="text-space">{{contentItem.value}}、{{contentItem.txt}}</text>
                <!-- 仅图片 -->
                <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center">
                  <text>{{contentItem.value}}、</text>
                  <image src="{{contentItem.img}}" mode="aspectFit" />
                </view>
                <!-- 文字加图片 -->
                <view
                  wx:if="{{item.optionStyle == 'TxtAndImage'}}"
                  class="fl-center"
                  style="height: min-content"
                >
                  <text>{{contentItem.value}}、</text>
                  <text class="radio-textimg">{{contentItem.txt}}</text>
                <view wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center" class="TxtAndImage-box">
                  <text class="text-space">{{contentItem.value}}、</text>
                  <view class="radio-textimg">{{contentItem.txt}}</view>
                  <image src="{{contentItem.img}}" mode="aspectFit" />
                </view>
                <!-- 富文本 -->
                <view
                  wx:if="{{item.optionStyle == 'RichText'}}"
                  class="judge-rich-box"
                >
                <view wx:if="{{item.optionStyle == 'RichText'}}" class="judge-rich-box">
                  <text>{{contentItem.value}}、</text>
                  <rich-text
                    nodes="{{  contentItem.txt}}"
                    style="display: flex; align-items: center; width: 100%"
                  ></rich-text>
                  <rich-text nodes="{{  contentItem.txt}}" style="display: flex; align-items: center; width: 100%"></rich-text>
                </view>
                <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}}"
              style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; display: flex; align-items: center; margin-bottom: 20rpx;"
            >
        <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}}" class="t-checkbox" value="{{contentItem.value}}" style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; ">
              <!-- 仅文字 -->
              <view
                class="fl-center"
                wx:if="{{item.optionStyle == 'Txt'}}"
                style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
              >
              <view class="fl-center mh text-space" 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
                  style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
                  >{{contentItem.value}}、</text
                >
              <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center mh">
                <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
                  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 wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center mh text-space">
                <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'}}"
                class="check-rich-box"
              >
              <view wx:if="{{item.optionStyle == 'RichText'}}" class="check-rich-box mh">
                <text>{{contentItem.value}}、</text>
                <rich-text
                  nodes="{{contentItem.txt}}"
                  class="multipleChoice"
                ></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 {{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'}}; "
        />
        <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>
      <!-- 我的错题、收藏模式下,查看解析按钮 -->
      <view
        wx:if="{{(answerType == 'collectQuestion' || answerType ==  'errorQuestion') && (item.questionType == 'multipleChoice' || item.questionType ==  'completion' || item.questionType == 'shortAnswer')}}"
      >
        查看解析
      <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">查看解析</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 answer-center"
            style="font-size: {{sliderValue || 32}}rpx;"
          >
      <view class="analysis" wx:if="{{item.isComplete && (item.questionType == 'singleChoice' || item.questionType == 'judge' || item.questionType == 'multipleChoice')}}">
        <view class="analysis-answer {{sliderValue >35 ? 'fl-cl' : '' }}">
          <view class="answer-correct answer-center" style="font-size: {{sliderValue || 32}}rpx;">
            <text class="analysis-title-box">正确答案:</text>
            <rich-text
              nodes="{{item.answer}}"
              style="font-size: {{sliderValue || 40}}rpx;"
            ></rich-text>
            <rich-text nodes="{{item.answer}}" style="font-size: {{sliderValue || 40}}rpx;"></rich-text>
          </view>
          <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 class="answer-center  {{item.isRight ? 'answer-correct' : 'answer-error'}}  {{sliderValue <= 35 ? 'marginL' : ''}}" 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}}"
          style="color: {{isNight ? '#fff' : '#000'}};"
        >
          <text style="font-size: {{sliderValue || 32}}rpx;">答案解析:</text>
          <rich-text
            style="font-size: {{sliderValue || 32}}rpx;"
            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">答案解析:</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;"
            >正确答案:</text
          >
          <text
            wx:if="{{item.questionType == 'shortAnswer'}}"
            class="short-answer-fz"
            style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;"
          >
      <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;">正确答案:</text>
          <text wx:if="{{item.questionType == 'shortAnswer'}}" class="short-answer-fz" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}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
          >
          <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 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 || 32}}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">
          <text
            class="short-answer-fz;"
            style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;"
            >答案解析:</text
          >
          <rich-text
            nodes="{{item.analysisCon}}"
            style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}"
          ></rich-text>
        <view class="short-answer-mr" style="margin-bottom: 50rpx">
          <text class="short-answer-fz;" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">答案解析:</text>
          <rich-text nodes="{{item.analysisCon}}" style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}"></rich-text>
        </view>
      </view>
    </swiper-item>
    <swiper-item
      wx:if="{{answerType !== 'collectQuestion' && questionList.length}}"
    >
      <text>没有更多了。。。</text>
    </swiper-item>
    <swiper-item wx:if="{{!questionList.length}}">
    <swiper-item wx:if="{{noData}}">
      <view class="noData">
        <t-empty icon="folder-open" description="暂无数据" />
        <!-- <t-empty icon="folder-open" description="暂无数据" /> -->
        <empty />
      </view>
    </swiper-item>
  </swiper>
</view>
</view>