闫增涛
2024-03-29 1e9c2bd06ab6851ed85b883c62cb7d74e012e2b2
答题器bug修改,安装my-html插件
7个文件已修改
649 ■■■■■ 已修改文件
package.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/examination.js 340 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/questionList/index.json 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/questionList/index.wxml 43 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/questionList/index.wxss 32 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/list/index.js 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageDomain/pages/resourceDetails/myAudio/index.wxml 194 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
package.json
@@ -26,6 +26,7 @@
  "dependencies": {
    "epub.js": "^0.2.15",
    "moment": "^2.30.1",
    "mp-html": "^2.4.3",
    "spark-md5": "^3.0.2",
    "tdesign-miniprogram": "^1.0.0",
    "tslib": "^1.11.1"
@@ -44,4 +45,4 @@
    "lint-staged": "^10.0.8",
    "prettier": "^2.1.2"
  }
}
}
packageBookService/pages/bookServices/examination/examination.js
@@ -1,4 +1,6 @@
import { getPublicImage } from '../../../../assets/js/middleGround/tool'
import {
  getPublicImage
} from '../../../../assets/js/middleGround/tool'
const app = getApp()
Page({
@@ -9,26 +11,26 @@
    barHeight: "",
    navBarHeight: "",
    loading: false,
    answerTitle: "",  // 导航栏标题
    countdownInterval: null,   // 计时器
    answerTitle: "", // 导航栏标题
    countdownInterval: null, // 计时器
    isCountdownRunning: true, // 是否倒计时
    countdownTime: 0,  // 倒计时时间
    countdownTime: 0, // 倒计时时间
    bookId: "",
    productLinkPath: "",
    rootCmsItemId: "",
    idPathList: [],  // 题目列表
    answerType: "",  // 答题模式
    submitStatus: false,  // 提交状态
    idPathList: [], // 题目列表
    answerType: "", // 答题模式
    submitStatus: false, // 提交状态
    currentIndex: 0, // 当前显示的题号
    collectList: [],   //  收藏题目列表
    errorList: [],  // 错题列表
    subjectiveTotal: 0,  // 客观题总数
    collectList: [], //  收藏题目列表
    errorList: [], // 错题列表
    subjectiveTotal: 0, // 客观题总数
    subjectiveNum: 0, // 客观题得分
    subjectiveGrade: 0, // 客观题总分
    correctNum: 0,  // 正确题目数量
    total: 0,   // 题目总数
    cardList: [],  // 提交项,
    questionDataList: [],  // 显示题目列表
    correctNum: 0, // 正确题目数量
    total: 0, // 题目总数
    cardList: [], // 提交项,
    questionDataList: [], // 显示题目列表
    mockid: 0,
    uuid: 0,
    mockData: {
@@ -84,8 +86,7 @@
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {
  },
  onReady() {},
  /**
   * 生命周期函数--监听页面显示
@@ -149,8 +150,7 @@
  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {
  },
  onShareAppMessage() {},
  // 监听watch
  watch(context, variableName, callback) {
@@ -438,16 +438,14 @@
        })
      }
      app.MG.identity.setUserKey({
        setKeyRequests: [
          {
            domain: 'mockAnswerData',
            key: this.data.uuid,
            value: JSON.stringify({
              time: this.data.countdownTime,
              answerData: saveData
            })
          }
        ]
        setKeyRequests: [{
          domain: 'mockAnswerData',
          key: this.data.uuid,
          value: JSON.stringify({
            time: this.data.countdownTime,
            answerData: saveData
          })
        }]
      })
      child.openTestReportDialog()
    }
@@ -471,7 +469,7 @@
        })
      // 测试答题
      await this.getCollectIdList() // 获取收藏id列表
      await this.getErrorList()   // 获取错题id列表
      await this.getErrorList() // 获取错题id列表
    } else if (this.data.answerType == 'collectQuestion') {
      this.setData({
        submitStatus: true
@@ -556,16 +554,14 @@
      // 组卷模式
      // 清空答题记录
      await app.MG.identity.setUserKey({
        setKeyRequests: [
          {
            domain: 'mockAnswerData',
            key: this.data.uuid,
            value: JSON.stringify({
              time: this.data.countdownTime,
              answerData: []
            })
          }
        ]
        setKeyRequests: [{
          domain: 'mockAnswerData',
          key: this.data.uuid,
          value: JSON.stringify({
            time: this.data.countdownTime,
            answerData: []
          })
        }]
      })
      this.init()
    } else {
@@ -588,8 +584,7 @@
          this.setData({
            collectList: JSON.parse(res[0].value)
          })
        } catch (error) {
        }
        } catch (error) {}
        if (this.data.answerType == 'option') {
          // 先获取用户答题记录
          this.getAnswerInfo(async (res) => {
@@ -637,8 +632,7 @@
          this.setData({
            errorList: JSON.parse(res[0].value)
          })
        } catch (error) {
        }
        } catch (error) {}
      })
  },
  // 获取题库题目
@@ -703,29 +697,22 @@
            // num: index, // 题号
            id: item.id,
            type: pathitem.name,
            stem:
              item.Embedded_QuestionBank_QuestionType == 'completion'
                ? JSON.parse(item.Embedded_QuestionBank_Stem)
                  .stemTxt.replaceAll('<vacancy>', ',input,')
                  .split(',')
                : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
            stem: item.Embedded_QuestionBank_QuestionType == 'completion' ?
              JSON.parse(item.Embedded_QuestionBank_Stem)
              .stemTxt.replaceAll('<vacancy>', ',input,')
              .split(',') : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
            answer: item.Embedded_QuestionBank_Answer, // 答案
            option: item.Embedded_QuestionBank_Option
              ? JSON.parse(item.Embedded_QuestionBank_Option)
              : '', // 选择题选项
            option: item.Embedded_QuestionBank_Option ?
              JSON.parse(item.Embedded_QuestionBank_Option) : '', // 选择题选项
            analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 解析
            questionType: item.Embedded_QuestionBank_QuestionType, // 题型
            optionStyle: item.Embedded_QuestionBank_OptionStyle, // 选项显示类型
            stemStyle: item.Embedded_QuestionBank_StemStyle, // 题干显示类型
            difficulty: item.Embedded_QuestionBank_Difficulty
              ? 4 - item.Embedded_QuestionBank_Difficulty
              : 0, // 难度等级
            userAnswer: oldObj
              ? oldObj.userAnswer
              : item.Embedded_QuestionBank_QuestionType == 'completion' ||
                item.Embedded_QuestionBank_QuestionType == 'multipleChoice'
                ? []
                : '',
            difficulty: item.Embedded_QuestionBank_Difficulty ?
              4 - item.Embedded_QuestionBank_Difficulty : 0, // 难度等级
            userAnswer: oldObj ?
              oldObj.userAnswer : item.Embedded_QuestionBank_QuestionType == 'completion' ||
              item.Embedded_QuestionBank_QuestionType == 'multipleChoice' ? [] : '',
            isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.userAnswer) : false,
            isRight: oldObj ? oldObj.isRight : null,
            isComplete: oldObj ? oldObj.isComplete : false,
@@ -763,7 +750,7 @@
          // 题干富文本处理
          if (questionObj.stemStyle == 'RichText') {
            // questionObj.option.txt = ''
            questionObj.stem.stemTxt = questionObj.stem.stemTxt.replace(/\<img/gi, '<img class="stem-rich-img"').replace(/\<p/gi, '<p class="stem-rich-p"')
            questionObj.stem.stemTxt = questionObj.stem.stemTxt.replace(/\<img/gi, '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img" ').replace(/\<p/gi, '<p class="stem-rich-p"')
          }
          // 选项富文本处理
@@ -912,13 +899,11 @@
      // 记录错题
      app.MG.identity
        .setUserKey({
          setKeyRequests: [
            {
              domain: 'errorData',
              key: this.data.rootCmsItemId,
              value: JSON.stringify(this.data.errorList)
            }
          ]
          setKeyRequests: [{
            domain: 'errorData',
            key: this.data.rootCmsItemId,
            value: JSON.stringify(this.data.errorList)
          }]
        })
        .then((res) => {
          console.log(res)
@@ -974,27 +959,23 @@
    }
    app.MG.identity
      .setUserKey({
        setKeyRequests: [
          {
            domain: 'collectData',
            key: this.data.rootCmsItemId,
            value: JSON.stringify(this.data.collectList)
          }
        ]
        setKeyRequests: [{
          domain: 'collectData',
          key: this.data.rootCmsItemId,
          value: JSON.stringify(this.data.collectList)
        }]
      })
      .then((res) => { })
      .then((res) => {})
  },
  // 处理答题数据
  recordAnswerData() {
    this.data.cardList.push(
      {
        name: '客观题得分',
        score: this.data.subjectiveNum,
        path: this.data.productLinkPath,
        // infoList: [],
        // catalogName: ''
      }
    )
    this.data.cardList.push({
      name: '客观题得分',
      score: this.data.subjectiveNum,
      path: this.data.productLinkPath,
      // infoList: [],
      // catalogName: ''
    })
    let setInfoData = {
      currentIndex: this.data.currentIndex,
      dataList: JSON.parse(JSON.stringify(this.data.cardList))
@@ -1021,15 +1002,13 @@
  setAnswerInfo(data) {
    app.MG.identity
      .setUserKey({
        setKeyRequests: [
          {
            domain: 'answerData',
            key: this.data.productLinkPath,
            value: JSON.stringify(data)
          }
        ]
        setKeyRequests: [{
          domain: 'answerData',
          key: this.data.productLinkPath,
          value: JSON.stringify(data)
        }]
      })
      .then((res) => { })
      .then((res) => {})
  },
  // 获取答题数据
  getAnswerInfo(callback) {
@@ -1066,8 +1045,7 @@
            collectList: JSON.parse(res[0].value)
          })
          // total.value = collectList.value.length
        } catch (error) {
        }
        } catch (error) {}
        if (this.data.collectList && this.data.collectList.length) {
          await this.getCollectDataList()
        } else {
@@ -1076,8 +1054,8 @@
          })
          wx.showModal({
            title: '提示',
            content: '收藏夹暂无数据',//editable如果为true,这就是输入框的内容
            editable: false,//是否显示输入框
            content: '收藏夹暂无数据', //editable如果为true,这就是输入框的内容
            editable: false, //是否显示输入框
            showCancel: false,
            success: (res) => {
              if (res.confirm) {
@@ -1096,12 +1074,10 @@
  async getCollectDataList() {
    let questionArr = []
    this.setData({
      cardList: [
        {
          catalogName: '收藏夹',
          infoList: []
        }
      ]
      cardList: [{
        catalogName: '收藏夹',
        infoList: []
      }]
    })
    let query = {
      path: '*',
@@ -1128,28 +1104,21 @@
        const questionObj = {
          number: index + 1, // 题号
          id: item.id,
          stem:
            item.Embedded_QuestionBank_QuestionType == 'completion'
              ? JSON.parse(item.Embedded_QuestionBank_Stem)
                .stemTxt.replaceAll('<vacancy>', ',input,')
                .split(',')
              : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
          stem: item.Embedded_QuestionBank_QuestionType == 'completion' ?
            JSON.parse(item.Embedded_QuestionBank_Stem)
            .stemTxt.replaceAll('<vacancy>', ',input,')
            .split(',') : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
          answer: item.Embedded_QuestionBank_Answer, // 答案
          option: item.Embedded_QuestionBank_Option
            ? JSON.parse(item.Embedded_QuestionBank_Option)
            : '', // 选择题选项
          option: item.Embedded_QuestionBank_Option ?
            JSON.parse(item.Embedded_QuestionBank_Option) : '', // 选择题选项
          analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 解析
          questionType: item.Embedded_QuestionBank_QuestionType, // 题型
          optionStyle: item.Embedded_QuestionBank_OptionStyle, // 选项显示类型
          stemStyle: item.Embedded_QuestionBank_StemStyle, // 题干显示类型
          difficulty: item.Embedded_QuestionBank_Difficulty
            ? 4 - item.Embedded_QuestionBank_Difficulty
            : 0, // 难度等级
          userAnswer:
            item.Embedded_QuestionBank_QuestionType == 'completion' ||
              item.Embedded_QuestionBank_QuestionType == 'multipleChoice'
              ? []
              : '',
          difficulty: item.Embedded_QuestionBank_Difficulty ?
            4 - item.Embedded_QuestionBank_Difficulty : 0, // 难度等级
          userAnswer: item.Embedded_QuestionBank_QuestionType == 'completion' ||
            item.Embedded_QuestionBank_QuestionType == 'multipleChoice' ? [] : '',
          isSubmit: false, // 查看解析
          isRight: null, // 是否正确
          isComplete: false,
@@ -1224,8 +1193,7 @@
          this.setData({
            errorList: JSON.parse(res[0].value)
          })
        } catch (error) {
        }
        } catch (error) {}
        if (this.data.errorList && this.data.errorList.length) {
          this.getErrorDataList()
        } else {
@@ -1234,8 +1202,8 @@
          })
          wx.showModal({
            title: '提示',
            content: '错题集暂无数据',//editable如果为true,这就是输入框的内容
            editable: false,//是否显示输入框
            content: '错题集暂无数据', //editable如果为true,这就是输入框的内容
            editable: false, //是否显示输入框
            showCancel: false,
            success: (res) => {
              if (res.confirm) {
@@ -1252,12 +1220,10 @@
  // 获取错题集
  async getErrorDataList() {
    this.setData({
      cardList: [
        {
          catalogName: '错题集',
          infoList: []
        }
      ]
      cardList: [{
        catalogName: '错题集',
        infoList: []
      }]
    })
    let query = {
      path: '*',
@@ -1284,28 +1250,21 @@
        const questionObj = {
          number: index + 1, // 题号
          id: item.id,
          stem:
            item.Embedded_QuestionBank_QuestionType == 'completion'
              ? JSON.parse(item.Embedded_QuestionBank_Stem)
                .stemTxt.replaceAll('<vacancy>', ',input,')
                .split(',')
              : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
          stem: item.Embedded_QuestionBank_QuestionType == 'completion' ?
            JSON.parse(item.Embedded_QuestionBank_Stem)
            .stemTxt.replaceAll('<vacancy>', ',input,')
            .split(',') : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
          answer: item.Embedded_QuestionBank_Answer, // 答案
          option: item.Embedded_QuestionBank_Option
            ? JSON.parse(item.Embedded_QuestionBank_Option)
            : '', // 选择题选项
          option: item.Embedded_QuestionBank_Option ?
            JSON.parse(item.Embedded_QuestionBank_Option) : '', // 选择题选项
          analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 解析
          questionType: item.Embedded_QuestionBank_QuestionType, // 题型
          optionStyle: item.Embedded_QuestionBank_OptionStyle, // 选项显示类型
          stemStyle: item.Embedded_QuestionBank_StemStyle, // 题干显示类型
          difficulty: item.Embedded_QuestionBank_Difficulty
            ? 4 - item.Embedded_QuestionBank_Difficulty
            : 0, // 难度等级
          userAnswer:
            item.Embedded_QuestionBank_QuestionType == 'completion' ||
              item.Embedded_QuestionBank_QuestionType == 'multipleChoice'
              ? []
              : '',
          difficulty: item.Embedded_QuestionBank_Difficulty ?
            4 - item.Embedded_QuestionBank_Difficulty : 0, // 难度等级
          userAnswer: item.Embedded_QuestionBank_QuestionType == 'completion' ||
            item.Embedded_QuestionBank_QuestionType == 'multipleChoice' ? [] : '',
          isSubmit: false, // 查看解析
          isRight: null, // 是否正确
          isComplete: false,
@@ -1400,7 +1359,10 @@
          // 获取必含题目
          let list = item.cmsItemList.map((idItem) => {
            itemIds.push(idItem.id + '')
            questionIds.push({ id: idItem.id + '', score: idItem.score })
            questionIds.push({
              id: idItem.id + '',
              score: idItem.score
            })
            numberIndex++
            return {
              number: numberIndex,
@@ -1414,7 +1376,10 @@
            const extractItem = item.generatorResultList[i]
            let extractItemList = extractItem.cmsItemList.map((extractCmsItem) => {
              itemIds.push(extractCmsItem.id + '')
              questionIds.push({ id: extractCmsItem.id + '', score: extractCmsItem.score })
              questionIds.push({
                id: extractCmsItem.id + '',
                score: extractCmsItem.score
              })
              numberIndex++
              return {
                number: numberIndex,
@@ -1491,29 +1456,22 @@
            // number: pathitem.infoList.find(infoItem => infoItem.itemId == item.id).number,
            id: item.id,
            score: pathitem.infoList.find(infoItem => infoItem.id == item.id).score,
            stem:
              item.Embedded_QuestionBank_QuestionType == 'completion'
                ? JSON.parse(item.Embedded_QuestionBank_Stem)
                  .stemTxt.replaceAll('<vacancy>', ',input,')
                  .split(',')
                : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
            stem: item.Embedded_QuestionBank_QuestionType == 'completion' ?
              JSON.parse(item.Embedded_QuestionBank_Stem)
              .stemTxt.replaceAll('<vacancy>', ',input,')
              .split(',') : JSON.parse(item.Embedded_QuestionBank_Stem), // 题干
            answer: item.Embedded_QuestionBank_Answer, // 答案
            option: item.Embedded_QuestionBank_Option
              ? JSON.parse(item.Embedded_QuestionBank_Option)
              : '', // 选择题选项
            option: item.Embedded_QuestionBank_Option ?
              JSON.parse(item.Embedded_QuestionBank_Option) : '', // 选择题选项
            analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 解析
            questionType: item.Embedded_QuestionBank_QuestionType, // 题型
            optionStyle: item.Embedded_QuestionBank_OptionStyle, // 选项显示类型
            stemStyle: item.Embedded_QuestionBank_StemStyle, // 题干显示类型
            difficulty: item.Embedded_QuestionBank_Difficulty
              ? 4 - item.Embedded_QuestionBank_Difficulty
              : 0, // 难度等级
            userAnswer: oldObj
              ? oldObj.answer
              : item.Embedded_QuestionBank_QuestionType == 'completion' ||
                item.Embedded_QuestionBank_QuestionType == 'multipleChoice'
                ? []
                : '',
            difficulty: item.Embedded_QuestionBank_Difficulty ?
              4 - item.Embedded_QuestionBank_Difficulty : 0, // 难度等级
            userAnswer: oldObj ?
              oldObj.answer : item.Embedded_QuestionBank_QuestionType == 'completion' ||
              item.Embedded_QuestionBank_QuestionType == 'multipleChoice' ? [] : '',
            isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.userAnswer) : false,
            isRight: oldObj ? oldObj.isRight : null,
            // isComplete: oldObj ? oldObj.isComplete : false,
@@ -1550,7 +1508,7 @@
          // 题干富文本处理
          if (questionObj.stemStyle == 'RichText') {
            // questionObj.option.txt = ''
            questionObj.stem.stemTxt = questionObj.stem.stemTxt.replace(/\<img/gi, '<img class="stem-rich-img"')
            questionObj.stem.stemTxt = questionObj.stem.stemTxt.replace(/\<img/gi, '<img style="max-width: 300rpx !important;object-fit: contain;" class="stem-rich-img"')
          }
          // 选项富文本处理
          if (questionObj.optionStyle == 'RichText' && (questionObj.questionType == 'singleChoice' || questionObj.questionType == 'judge' || questionObj.questionType == 'multipleChoice')) {
@@ -1617,26 +1575,22 @@
  // 记录购买组卷时间
  setMockInfo(data) {
    app.MG.identity.setUserKey({
      setKeyRequests: [
        {
          domain: 'mockData',
          key: this.data.bookId + '',
          value: JSON.stringify(data)
        }
      ]
      setKeyRequests: [{
        domain: 'mockData',
        key: this.data.bookId + '',
        value: JSON.stringify(data)
      }]
    })
  },
  // 记录组卷题目列表
  saveMockQuestionList(data) {
    app.MG.identity
      .setUserKey({
        setKeyRequests: [
          {
            domain: 'mockQuestionData',
            key: this.data.uuid,
            value: JSON.stringify(data)
          }
        ]
        setKeyRequests: [{
          domain: 'mockQuestionData',
          key: this.data.uuid,
          value: JSON.stringify(data)
        }]
      })
      .then((res) => {
        console.log('模考题目列表已记录')
@@ -1710,17 +1664,15 @@
    // 
    app.MG.identity
      .setUserKey({
        setKeyRequests: [
          {
            domain: 'mockAnswerData',
            key: this.data.uuid,
            value: JSON.stringify({
              currentIndex: this.data.currentIndex,
              time: this.data.countdownTime,
              answerData: saveData
            })
          }
        ]
        setKeyRequests: [{
          domain: 'mockAnswerData',
          key: this.data.uuid,
          value: JSON.stringify({
            currentIndex: this.data.currentIndex,
            time: this.data.countdownTime,
            answerData: saveData
          })
        }]
      })
      .then((res) => {
        this.setData({
packageBookService/pages/bookServices/examination/questionList/index.json
@@ -10,6 +10,7 @@
    "t-checkbox": "tdesign-miniprogram/checkbox/checkbox",
    "t-checkbox-group": "tdesign-miniprogram/checkbox-group/checkbox-group",
    "t-textarea": "tdesign-miniprogram/textarea/textarea",
    "t-empty": "tdesign-miniprogram/empty/empty"
    "t-empty": "tdesign-miniprogram/empty/empty",
    "mp-html": "mp-html"
  }
}
packageBookService/pages/bookServices/examination/questionList/index.wxml
@@ -30,30 +30,25 @@
        <text>{{item.number}}.</text>
        <!-- 仅文字 -->
        <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"
          class="title-content"
        >
          <text>{{item.stem.stemTxt}}</text>
          <t-image src="{{item.stem.stemImage}}" />
          <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}}"
            style="height: 100%"
          ></rich-text>
        <view wx:elif="{{item.stemStyle == 'RichText'}} " class="title-content">
          <mp-html content="{{item.stem.stemTxt}}" />
        </view>
        <!-- 填空题 -->
        <view wx:if="{{item.questionType == 'completion'}}">
@@ -119,7 +114,7 @@
                <!-- 仅图片 -->
                <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center">
                  <text>{{contentItem.value}}、</text>
                  <t-image src="{{contentItem.img}}" />
                  <image src="{{contentItem.img}}" mode="aspectFit" />
                </view>
                <!-- 文字加图片 -->
                <view
@@ -127,8 +122,9 @@
                  class="fl-center"
                >
                  <text>{{contentItem.value}}、</text>
                  <text>{{contentItem.txt}}</text>
                  <t-image src="{{contentItem.img}}" />
                  <text class="radio-textimg">{{contentItem.txt}}</text>
                  <image src="{{contentItem.img}}" mode="aspectFit" />
                </view>
                <!-- 富文本 -->
                <view
@@ -174,7 +170,7 @@
            <t-checkbox
              block="{{false}}"
              value="{{contentItem.value}}"
              style="background-color:{{isNight ? '#222' :'#fff'}}; "
              style="background-color:{{isNight ? '#222' :'#fff'}}; display: flex; align-items: center;"
            >
              <!-- 仅文字 -->
              <text
@@ -188,7 +184,7 @@
                  style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
                  >{{contentItem.value}}、</text
                >
                <t-image src="{{contentItem.img}}" />
                <image src="{{contentItem.img}}" mode="aspectFit" />
              </view>
              <!-- 文字加图片 -->
              <view
@@ -203,10 +199,17 @@
                  style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
                  >{{contentItem.txt}}</text
                >
                <t-image src="{{contentItem.img}}" />
                <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}}"
packageBookService/pages/bookServices/examination/questionList/index.wxss
@@ -1,7 +1,7 @@
/* pages/bookServices/examination/questionList/index.wxss */
.question-list {
  width: 95%;
  height: 85%;
  height: calc(100vh - 300px);
  padding: 20rpx;
  background-color: #ffffff;
@@ -12,6 +12,10 @@
.question-title {
  font-size: 28rpx;
  margin-bottom: 20rpx;
}
.title-content {
  margin-left: 10rpx;
}
.title-name {
@@ -52,6 +56,10 @@
  background-color: #F9F9F9;
}
.radio-item text {
  height: min-content;
}
.night {
  background-color: #000;
  color: #ffffff;
@@ -70,17 +78,10 @@
}
.question-stem image {
  margin-left: 20rpx;
  width: 300rpx;
  object-fit: contain;
  height: 200rpx;
}
.title-RichText img {
  width: 300rpx;
  height: 200rpx;
}
.question-answer image {
  margin: 10rpx 0 10rpx 10rpx;
@@ -226,9 +227,24 @@
.judge-rich-box {
  display: flex;
  align-items: center;
}
.t-checkbox {
  display: flex;
  align-items: center;
}
.check-rich-box {
  display: flex;
  align-items: center;
}
.check-rich-box text {
  height: min-content;
}
.radio-textimg {
  display: inline-block;
  width: calc(100% - 90rpx);
}
packageBookService/pages/bookServices/list/index.js
@@ -53,6 +53,7 @@
    loading: false,
    noData: false,
    showDropdown: false,
    isRequesting: false,
  },
  /**
   * 生命周期函数--监听页面加载
@@ -143,11 +144,13 @@
  onReachBottom(e) {
    const flag = this.data.bookList.length < this.data.pageCount.total
    if (flag) {
      this.setData({
        isMore: true,
        "pageCount.page": this.data.pageCount.page + 1
      })
      this.getBookList(this.data.path)
      if (!this.data.isRequesting) {
        this.setData({
          isMore: true,
          "pageCount.page": this.data.pageCount.page + 1
        })
        this.getBookList(this.data.path)
      }
    } else {
      this.setData({
        isMore: true,
@@ -243,7 +246,7 @@
      refCodes: [type],
    };
    app.MG.store.getProductTypeField(query).then((res) => {
      array = JSON.parse(res[0].config).option;
      array = JSON.parse(res[0].config).option.filter(item => item.value == this.data.assortCheck.code);
      for (let index = 0; index < array.length; index++) {
        const element = array[index];
        if (element.child) {
@@ -281,9 +284,13 @@
  },
  // 获取图书列表
  getBookList(path) {
    if (this.data.isRequesting) {
      return false;
    }
    this.setData({
      loading: true,
      noData: false
      noData: false,
      isRequesting: true
    })
    let sort;
    let pathObj = {};
@@ -342,12 +349,23 @@
        bookList: res.datas,
        enable: false,
        "pageCount.total": res.total,
        loading: false
        loading: false,
        isRequesting: false
      });
      if (!res.datas.length) {
        this.setData({
          noData: true,
        })
        if (!this.data.pathList.length) {
          // 未选择二级分类,且无图书
          this.setData({
            disabledSecondList: true
          })
        } else {
          this.setData({
            disabledSecondList: false
          })
        }
      }
    });
  },
packageDomain/pages/resourceDetails/myAudio/index.wxml
@@ -1,17 +1,21 @@
<view style="width: 100%; height: {{barHeight}}px; "></view>
<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
  <view>
    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
    <t-icon
      name="chevron-left"
      size="30"
      data-name="{{item}}"
      bind:click="goBack"
    />
  </view>
  <view class="navbar-title">资源详情-音频</view>
</view>
<view class="audioPlayerBox">
  <view class="audioBackground" style="background-image: url('http://182.92.203.7:3007/jsek/website/image/video-bg.png');">
  <view
    class="audioBackground"
    style="background-image: url('http://182.92.203.7:3007/jsek/website/image/video-bg.png');"
  >
    <image src="/static/images/resourceDetailsMyAudio/cd.png" alt="" />
  </view>
  <!-- 视频播放的按钮 -->
@@ -23,8 +27,11 @@
      </view> -->
      <!-- 暂停播放 -->
      <view class="audioIconBox color" style="margin-left: 30rpx;  margin-right: 10rpx;">
        <view wx:if="{{!isplay}}" bind:tap='play'>
      <view
        class="audioIconBox color"
        style="margin-left: 30rpx; margin-right: 10rpx"
      >
        <view wx:if="{{!isplay}}" bind:tap="play">
          <t-icon name="play-circle-stroke" size="24" />
        </view>
        <view wx:else bind:tap="stop" class="pauseCircleBox">
@@ -32,7 +39,14 @@
          <image src="/static/images/resourceDetailsMyAudio/zanting@2x.png" mode="" />
        </view>
      </view>
      <slider style="width: 300rpx;" activeColor='#FF6C00' class="mp-slider-bar" block-size="16" value="{{myAudioPos}}" bindchange="hanle_slider_change"></slider>
      <slider
        style="width: 300rpx"
        activeColor="#FF6C00"
        class="mp-slider-bar"
        block-size="16"
        value="{{myAudioPos}}"
        bindchange="hanle_slider_change"
      ></slider>
      <!-- 右切换 -->
      <!-- <view class="rightSwitchBox color" bind:tap="onRightSwitch">
        <t-icon name="next" size="24" />
@@ -40,24 +54,53 @@
      <!-- 时间 -->
      <view class="current-time color">{{myAudioCurrent}} </view>
      <view class="color" style="margin: 0 10rpx;">/</view>
      <view class="color" style="margin: 0 10rpx">/</view>
      <view class="duration-time color"> {{myAudioDuration}} </view>
      <!-- bind:tap="onSpeed" -->
      <view class="publicBtn color">
        <view class="publicText" bind:tap="toggleDropdown">
          <view>
            {{"x "+speed}}
          </view>
          <t-icon style="margin-top: 10rpx;" wx:if="{{showDropdown}}" name="caret-up-small" size="14" bind:click="onIconTap" />
          <t-icon style="margin-top: 10rpx;" wx:else name="caret-down-small" size="14" bind:click="onIconTap" />
          <view> {{"x "+speed}} </view>
          <t-icon
            style="margin-top: 10rpx"
            wx:if="{{showDropdown}}"
            name="caret-up-small"
            size="14"
            bind:click="onIconTap"
          />
          <t-icon
            style="margin-top: 10rpx"
            wx:else
            name="caret-down-small"
            size="14"
            bind:click="onIconTap"
          />
        </view>
        <view class="multipleBox" wx:if="{{showDropdown}}">
          <view wx:if="{{speed != 0.5}}" style="margin: 5rpx  0;" bind:tap="smallSpeed">x0.5</view>
          <view wx:if="{{speed != 1}}" style="margin: 5rpx  0;" bind:tap="smallSpeeDmultiple">x1</view>
          <view wx:if="{{speed != 1.5}}" style="margin: 5rpx  0;" bind:tap="centreSpeed">x1.5</view>
          <view wx:if="{{speed != 2}}" style="margin: 5rpx  0;" bind:tap="bigSpeed">x2</view>
          <view
            wx:if="{{speed != 0.5}}"
            style="margin: 5rpx 0"
            bind:tap="smallSpeed"
            >x0.5</view
          >
          <view
            wx:if="{{speed != 1}}"
            style="margin: 5rpx 0"
            bind:tap="smallSpeeDmultiple"
            >x1</view
          >
          <view
            wx:if="{{speed != 1.5}}"
            style="margin: 5rpx 0"
            bind:tap="centreSpeed"
            >x1.5</view
          >
          <view
            wx:if="{{speed != 2}}"
            style="margin: 5rpx 0"
            bind:tap="bigSpeed"
            >x2</view
          >
        </view>
      </view>
    </view>
@@ -67,14 +110,36 @@
<!-- 标题 -->
<view class="titleBox">{{titleName}}</view>
<view class="contentBox">
  <t-tabs defaultValue="{{0}}" bind:change="onTabsChange" bind:click="onTabsClick" t-class="custom-tabs" t-class-content="custom-panel">
  <t-tabs
    defaultValue="{{0}}"
    bind:change="onTabsChange"
    bind:click="onTabsClick"
    t-class="custom-tabs"
    t-class-content="custom-panel"
  >
    <!-- 资源列表 -->
    <t-tab-panel label="资源列表" value="0" style="{{tabPanelstyle}}" style="width: 750rpx;">
    <t-tab-panel
      label="资源列表"
      value="0"
      style="{{tabPanelstyle}}"
      style="width: 750rpx"
    >
      <view class="wrapper">
        <t-collapse value="{{activeValues}}" bind:change="handleChange">
          <t-collapse-panel header="{{parentName}}" value="{{0}}" expandIcon>
            <view class="detailsName" wx:for="{{threeLeveData}}" wx:key="index" wx:for-item="item" wx:for-index="index" bind:tap="onVideo" data-item="{{item}}" data-index="{{index}}">
              <view style="color: {{selectedId == index ? '#ff6c00' : '#000'}}">{{item.name}}</view>
            <view
              class="detailsName"
              wx:for="{{threeLeveData}}"
              wx:key="index"
              wx:for-item="item"
              wx:for-index="index"
              bind:tap="onVideo"
              data-item="{{item}}"
              data-index="{{index}}"
            >
              <view style="color: {{selectedId == index ? '#ff6c00' : '#000'}}"
                >{{item.name}}</view
              >
            </view>
          </t-collapse-panel>
        </t-collapse>
@@ -88,9 +153,16 @@
            <t-empty icon="folder-open" description="暂无数据" />
          </view>
          <t-collapse-panel value="{{item.id}}" expandIcon wx:for="{{noteList}}">
          <t-collapse-panel
            value="{{item.id}}"
            expandIcon
            wx:for="{{noteList}}"
          >
            <view slot="header" class="collapse-header">
              <t-image class="note-icon" src="/static/images/bookService/detail/note-icon.png"></t-image>
              <t-image
                class="note-icon"
                src="/static/images/bookService/detail/note-icon.png"
              ></t-image>
              <view class="header-name">{{titleName}}</view>
            </view>
            <view>
@@ -98,9 +170,19 @@
              <view class="note-bottom">
                <view class="note-time">{{item.createDate}}</view>
                <view class="bottom-btn">
                  <t-image src="/static/images/bookService/detail/compliceHover.png" class="complice" bind:tap="editNote" data-note="{{item}}"></t-image>
                  <t-image
                    src="/static/images/bookService/detail/compliceHover.png"
                    class="complice"
                    bind:tap="editNote"
                    data-note="{{item}}"
                  ></t-image>
                  <view></view>
                  <t-image src="/static/images/bookService/detail/deleteHover.png" class="delete" bind:tap="deleteNote" data-id="{{item.id}}"></t-image>
                  <t-image
                    src="/static/images/bookService/detail/deleteHover.png"
                    class="delete"
                    bind:tap="deleteNote"
                    data-id="{{item.id}}"
                  ></t-image>
                </view>
              </view>
            </view>
@@ -118,33 +200,63 @@
  </view>
</view>
<!-- 记笔记弹窗 -->
<t-popup visible="{{dialogKey}}" bind:visible-change="onVisibleChange" placement="center">
<t-popup
  visible="{{dialogKey}}"
  bind:visible-change="onVisibleChange"
  placement="center"
>
  <view class="popup">
    <view slot="title">
      <view class="title-text" wx:if="{{!flag}}">
        <text class="note-title">{{titleName}}</text>
        <t-image src="/static/images/bookService/detail/edit.png" class="edit-icon" bind:tap="changeTitle" data-value="{{true}}"></t-image>
        <t-image
          src="/static/images/bookService/detail/edit.png"
          class="edit-icon"
          bind:tap="changeTitle"
          data-value="{{true}}"
        ></t-image>
      </view>
      <view wx:else>
        <t-input value="{{titleName}}" style="{{inputStyle}}" data-value="{{false}}" bind:enter="changeTitle" bind:blur="changeTitle" maxlength="{{50}}" bind:change="inputChange"></t-input>
        <t-input
          value="{{titleName}}"
          style="{{inputStyle}}"
          data-value="{{false}}"
          bind:enter="changeTitle"
          bind:blur="changeTitle"
          maxlength="{{50}}"
          bind:change="inputChange"
        ></t-input>
      </view>
    </view>
    <view slot='content'>
    <view slot="content">
      <view class="textarea-example">
        <text class="textarea-example__label">内容:</text>
        <t-textarea value="{{textvalue}}" t-class="external-class" placeholder="请输入文字" bordered maxlength="500" disableDefaultPadding="{{true}}" indicator style="{{inputStyle}}" bind:change="textareaChange" />
        <t-textarea
          value="{{textvalue}}"
          t-class="external-class"
          placeholder="请输入文字"
          bordered
          maxlength="500"
          disableDefaultPadding="{{true}}"
          indicator
          style="{{inputStyle}}"
          bind:change="textareaChange"
        />
      </view>
      <view class="submit-btn">
        <t-button theme="primary" size="large" block bind:tap="confirmSuggest">提交</t-button>
        <t-button theme="primary" size="large" block bind:tap="confirmSuggest"
          >提交</t-button
        >
      </view>
    </view>
  </view>
  <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="closeDialog" />
</t-popup>
  <t-icon
    t-class="close-btn"
    name="close-circle"
    size="32"
    color="#fff"
    bind:tap="closeDialog"
  />
</t-popup>