zhongshujie
2024-12-18 ce062b3ff6d8e3db929820d004972df893882d4e
bug优化
5个文件已修改
315 ■■■■ 已修改文件
packageBookService/pages/psychologyAnswer/psychologyAnswer.js 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/psychologyAnswer/questionList/index.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/psychologyAnswer/questionList/index.wxml 278 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/psychologyAnswer/questionOptions/index.wxml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/psychologyAnswer/testdata/index.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/psychologyAnswer/psychologyAnswer.js
@@ -282,21 +282,12 @@
  },
  // 切换题目
  changeSwiper(e) {
    let index = e.detail.index - 1 >= 0 ? e.detail.index - 1 : 0;
    const item = this.data.questionDataList[index];
    const lastItem = this.data.questionDataList[index + 1];
    let index = e.detail.index;
    const lastItem = this.data.questionDataList[index];
    this.setData({
      currentIndex: e.detail.index,
      showId: lastItem.id
    });
    if (
      (this.data.answerType == "collectQuestion" ||
        this.data.answerType == "errorQuestion") &&
      !item.isComplete
    ) {
      let flag = this.isHaveAnswer(item.userAnswer);
      if (flag) this.handleQuestion(index);
    }
  },
  // 我的错题,收藏查看解析按钮
  viewParsing() {
@@ -471,10 +462,6 @@
    // 先遍历所有题目,将未批改的题目批改
    const qustionList = this.data.questionDataList;
    if (qustionList.length) this.handleQuestion();
    this.setData({
      isShowDialog: true,
      submitStatus: true,
    })
    // 记录用户答题数据
    let saveData = [];
    for (let index = 0; index < this.data.questionDataList.length; index++) {
@@ -499,6 +486,10 @@
      loading: false,
      showDialog: false,
    });
    this.setData({
      isShowDialog: true,
      submitStatus: true,
    });
  },
  // 初始化函数
  async init(isReset) {
packageBookService/pages/psychologyAnswer/questionList/index.js
@@ -73,8 +73,6 @@
        height: 'calc(100% - 30px - ' + rect.height + 'px)'
      })
    }).exec();
  },
packageBookService/pages/psychologyAnswer/questionList/index.wxml
@@ -1,67 +1,31 @@
<!--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 id="question-title" class="question-title" wx:if="{{questionTitle}}">
    <rich-text
      class="substance"
      nodes="{{questionTitle}}"
      space="emsp"
    ></rich-text>
    <rich-text class="substance" nodes="{{questionTitle}}" space="emsp"></rich-text>
  </view>
  <!-- 题目列表 -->
  <swiper
    id="swiper"
    class="swiper"
    bindanimationfinish="changeSwiper"
    current="{{currentIndex}}"
    style="{{'height:'+height}}"
  >
    <swiper-item
      wx:for="{{questionList}}"
      wx:for-index="index"
      wx:key="id"
      style="overflow-y: auto"
    >
  <swiper id="swiper" class="swiper" bindanimationfinish="changeSwiper" current="{{currentIndex}}" style="{{'height:'+height}}">
    <swiper-item wx:for="{{questionList}}" wx:for-index="index" 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>{{index+1}}.</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 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 text-space"
          wx:elif="{{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 text-space"
        >
        <view wx:elif="{{item.stemStyle == 'TxtAndImage'}}" class="title-content text-space">
          <view>{{item.stem.stemTxt}}</view>
          <image src="{{item.stem.stemImage}}" mode="aspectFit" />
        </view>
@@ -71,61 +35,19 @@
        </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}}"
              borderless
              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>
          <view class="completion-box" wx:for="{{item.stem}}" wx:for-item="inputItem" wx:for-index="inputIndex" wx:key="inputIndex">
            <t-input disabled="{{submitStatus}}" borderless 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-id="{{item.id}}"
        >
          <view
            wx:for="{{questionOptions && questionOptions.length ? questionOptions[item.optionIndex] : 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 {{!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="{{submitStatus}}" bind:change="onChangeRadio" class="radio-group" data-id="{{item.id}}">
          <view wx:for="{{questionOptions && questionOptions.length ? questionOptions[item.optionIndex] : 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 {{!submitStatus && item.userAnswer == contentItem.value ? 'radio-active' : isNight ? 'night' :''}} {{item.userAnswer == contentItem.value && submitStatus ?  item.isRight ? 'radio-correct' : 'radio-error' :''}}">
                <!-- 仅文字 -->
                <view wx:if="{{item.optionStyle == 'Txt'}}" class="text-space">
                  {{contentItem.value}}、{{contentItem.txt}}
@@ -136,25 +58,15 @@
                  <image src="{{contentItem.img}}" mode="aspectFit" />
                </view>
                <!-- 文字加图片 -->
                <view
                  wx:if="{{item.optionStyle == 'TxtAndImage'}}"
                  class="fl-center"
                  class="TxtAndImage-box"
                >
                <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>
              </view>
            </t-radio>
@@ -162,32 +74,10 @@
        </t-radio-group>
        <view wx:if="{{item.questionType == 'linkage'}}">
          <!-- 特殊题 -->
          <t-radio-group
            defaultValue="{{item.questionTab}}"
            disabled="{{item.isComplete}}"
            bind:change="handeleOption"
            class="radio-group"
            data-value="{{item.questionTab}}"
            data-id="{{item.id}}"
          >
            <view
              wx:if="{{item.optionData}}"
              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 {{!submitStatus && item.questionTab == contentItem.value ? 'radio-active' : isNight ? 'night' :''}}"
                >
          <t-radio-group defaultValue="{{item.questionTab}}" disabled="{{submitStatus}}" bind:change="handeleOption" class="radio-group" data-value="{{item.questionTab}}" data-id="{{item.id}}">
            <view wx:if="{{item.optionData}}" 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 {{!submitStatus && item.questionTab == contentItem.value ? 'radio-active' : isNight ? 'night' :''}}">
                  <!-- 仅文字 -->
                  <view class="text-space">
                    {{contentItem.value}}、{{contentItem.txt}}
@@ -197,31 +87,10 @@
            </view>
          </t-radio-group>
          <view class="title-content text-space">{{item.stem.stem}}</view>
          <t-radio-group
            defaultValue="{{item.userAnswer}}"
            disabled="{{item.isComplete}}"
            bind:change="onChangeRadio"
            class="radio-group"
            data-value="{{item.userAnswer}}"
            data-id="{{item.id}}"
          >
            <view
              wx:for="{{item.optionData[item.questionTab]}}"
              wx:for-item="citem"
              wx:for-index="cindex"
              wx:key="cindex"
            >
              <t-radio
                value="{{citem.value}}"
                icon="none"
                placement="right"
                borderless
                style="background-color: {{isNight ? '#222' : '#fff'}}"
              >
                <view
                  style="font-size: {{sliderValue || 32}}rpx;"
                  class="radio-item {{!submitStatus && item.userAnswer == citem.value ? 'radio-active' : isNight ? 'night' :''}}"
                >
          <t-radio-group defaultValue="{{item.userAnswer}}" disabled="{{submitStatus}}" bind:change="onChangeRadio" class="radio-group" data-value="{{item.userAnswer}}" data-id="{{item.id}}">
            <view wx:for="{{item.optionData[item.questionTab]}}" wx:for-item="citem" wx:for-index="cindex" wx:key="cindex">
              <t-radio value="{{citem.value}}" icon="none" placement="right" borderless style="background-color: {{isNight ? '#222' : '#fff'}}">
                <view style="font-size: {{sliderValue || 32}}rpx;" class="radio-item {{!submitStatus && item.userAnswer == citem.value ? 'radio-active' : isNight ? 'night' :''}}">
                  <!-- 仅文字 -->
                  <view class="text-space">
                    {{citem.value}}、{{citem.txt}}
@@ -233,101 +102,36 @@
        </view>
        <!-- 多选题 -->
        <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'}}; "
            >
        <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="{{submitStatus}}" icon="rectangle" block="{{false}}" class="t-checkbox" value="{{contentItem.value}}" style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; ">
              <!-- 仅文字 -->
              <view
                class="fl-center mh text-space"
                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 mh"
              >
                <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 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 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 mh"
              >
              <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="{{submitStatus}}" 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>
    </swiper-item>
    <swiper-item wx:if="{{noData}}">
@@ -337,4 +141,4 @@
      </view>
    </swiper-item>
  </swiper>
</view>
</view>
packageBookService/pages/psychologyAnswer/questionOptions/index.wxml
@@ -74,7 +74,7 @@
          wx:for-index="cindex"
          wx:key="cindex"
          style="border: {{showId == citem.id ? '1px solid #ff6c00' : ''}}"
          class="question-box {{ citem.isUserAnswer ? 'answered' : 'un-answered' }}"
          class="question-box {{ citem.userAnswer ? 'answered' : 'un-answered' }}"
        >
          {{cindex+1}}
        </view>
@@ -170,7 +170,8 @@
      <scroll-view scroll-y style="height: 30vh; overflow-y: auto">
        <view class="report-li">
          <view class="report-li-left" style="white-space: nowrap"
            >题目总数:</view>
            >题目总数:</view
          >
          <view class="report-li-right">{{questionDataList.length}}道</view>
        </view>
        <view
packageBookService/pages/psychologyAnswer/testdata/index.js
@@ -1,5 +1,6 @@
var localData = {
  "list": [{
  "list": [
    {
      "name": "测测你的生活品质",
      "title": "请仔细阅读以下问题,凭你的第一感觉回答。请选择与你相符的答案,即使你感到不太确定,也要回答每个问题。",
      "fromType": "json",
@@ -2502,7 +2503,8 @@
        "index": "",
        "desc": "第4、第5、第8、第10题选“是”得1分,选“否”不得分;其他题目选“否”得1分,选“是”不得分。最后把所得分数相加。"
      }],
      "scoreData": [{
      "scoreData": [
        {
        "name": "得分",
        "dispatch": "",
        "range": "all",
@@ -2539,7 +2541,8 @@
          }
        ]
      ],
      "list": [{
      "list": [
        {
          "analysisCon": "略",
          "optionIndex": 1,
          "id": "0C85D520",