| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076 | <template>  <view class="questionBank">    <nav-bar title="试卷解析"></nav-bar>    <view class="tabs-top">      <u-tabs        :list="list"        sticky        :current="tabCurrent"        @change="tabChange"        active-color="#007AFF"      ></u-tabs>    </view>    <swiper class="swiper" :current="current" @change="swiperChange">      <swiper-item v-for="(bank, bankIndex) in questionList" :key="bankIndex">        <view class="pageContent">          <view class="pad_8 titBox">            <view class="firstLetter">              <view class="leftLetters">                <view class="btnType">                  <text v-if="bank.type == 1">单选</text>                  <text v-if="bank.type == 2">多选</text>                  <text v-if="bank.type == 3">判断</text>                  <text v-if="bank.type == 4">案例</text>                  <text v-if="bank.type == 5">简答</text>                </view>                <text>{{ bankIndex + 1 }}/{{ questionList.length }}</text>              </view>              <view style="color: #666; font-size: 28rpx"></view>              <view class="leftLetters"></view>            </view>            <view class="titles">              <rich-text :nodes="bank.content"></rich-text>            </view>          </view>          <template v-if="bank.type == 1">            <view class="pad_8 titBox no-margin">              <view v-if="!bank.ques">                <view                  v-for="(item, index) in bank.jsonStr"                  :key="index"                  class="lisSty"                  @click="radioSelect(item.optionsId, bankIndex)"                >                  <view class="activeTI">{{ ast[index] }}</view>                  <view class="flex_auto">                    {{ item.content }}                    <view v-if="item.imgUrl">                      <image                        style="width: 600rpx"                        mode="widthFix"                        :src="$method.splitImgHost(item.imgUrl)"                      ></image>                    </view>                  </view>                </view>              </view>              <view v-if="bank.ques">                <view                  v-for="(item, index) in bank.jsonStr"                  :key="index"                  class="lisSty"                >                  <text                    :class="{                      right:                        item.optionsId == bank.ques ||                        item.optionsId == bank.ans,                      wrong:                        item.optionsId == bank.ques && bank.ques != bank.ans,                    }"                    class="activeTI"                    >{{ ast[index] }}</text                  >                  <view class="flex_auto">                    {{ item.content }}                    <view v-if="item.imgUrl">                      <image                        style="width: 600rpx"                        mode="widthFix"                        :src="$method.splitImgHost(item.imgUrl)"                      ></image>                    </view>                  </view>                </view>              </view>            </view>            <view v-if="bank.ques">              <view class="pad_8 answer">                <view>题目答案:{{ ast[bank.ans - 1] }}</view>                <view v-if="!explain">我的答案:{{ ast[bank.ques - 1] }}</view>              </view>              <view class="pad_8 answerInfos">                <view class="answerTitle">答案解析</view>                <view class="answerContent">                  <rich-text :nodes="bank.analysisContent"></rich-text>                </view>              </view>            </view>          </template>          <template v-if="bank.type == 2">            <view class="pad_8 titBox no-margin">              <view v-if="!bank.ques">                <view                  v-for="(item, index) in bank.jsonStr"                  :key="index"                  class="lisSty"                  @click="checkboxSelect(item.optionsId, bankIndex, index)"                >                  <view :class="{ checked: item.checked }" class="activeTI">{{                    ast[index]                  }}</view>                  <view class="flex_auto">                    {{ item.content }}                    <view v-if="item.imgUrl">                      <image                        style="width: 600rpx"                        mode="widthFix"                        :src="$method.splitImgHost(item.imgUrl)"                      ></image>                    </view>                  </view>                </view>              </view>              <view                v-if="!bank.ques"                class="submit_checkbox"                @click="checkboxSubmit(bankIndex)"              >                确认答案              </view>              <view v-if="bank.ques">                <view                  v-for="(item, index) in bank.jsonStr"                  :key="index"                  class="lisSty"                >                  <text                    :class="{                      right:                        bank.ques.indexOf(item.optionsId) != -1 ||                        bank.ans.indexOf(item.optionsId) != -1,                      wrong:                        bank.ques.indexOf(item.optionsId) != -1 &&                        bank.ans.indexOf(item.optionsId) == -1,                    }"                    class="activeTI"                    >{{ ast[index] }}</text                  >                  <view class="flex_auto">                    {{ item.content }}                    <view v-if="item.imgUrl">                      <image                        style="width: 600rpx"                        mode="widthFix"                        :src="$method.splitImgHost(item.imgUrl)"                      ></image>                    </view>                  </view>                </view>              </view>            </view>            <view v-if="bank.ques">              <view class="pad_8 answer">                <view                  >题目答案:                  <text                    :key="ansItemIndex"                    v-for="(ansItem, ansItemIndex) in bank.ans"                    >{{ ast[ansItem - 1] }}</text                  >                </view>                <view v-if="!explain"                  >我的答案:                  <text                    :key="quesItemIndex"                    v-for="(quesItem, quesItemIndex) in bank.ques"                    >{{ ast[quesItem - 1] }}</text                  >                </view>              </view>              <view class="pad_8 answerInfos">                <view class="answerTitle">答案解析</view>                <view class="answerContent">                  <rich-text :nodes="bank.analysisContent"></rich-text>                </view>              </view>            </view>          </template>          <template v-if="bank.type == 3">            <view class="pad_8 titBox no-margin">              <view v-if="!bank.ques">                <view                  v-for="(item, index) in judge"                  :key="index"                  class="lisSty"                  @click="judgeSelect(index, bankIndex)"                >                  <view class="activeTI">{{ ast[index] }}</view>                  <view class="flex_auto">                    {{ item }}                    <view v-if="item.imgUrl">                      <image                        style="width: 600rpx"                        mode="widthFix"                        :src="$method.splitImgHost(item.imgUrl)"                      ></image>                    </view>                  </view>                </view>              </view>              <view v-if="bank.ques">                <view                  v-for="(item, index) in judge"                  :key="index"                  class="lisSty"                >                  <text                    :class="{                      right:                        index == (bank.ques == 1 ? 0 : 1) || index != bank.ans,                      wrong:                        index == (bank.ques == 1 ? 0 : 1) &&                        bank.ques != bank.ans,                    }"                    class="activeTI"                    >{{ ast[index] }}</text                  >                  <view class="flex_auto">                    {{ item }}                    <view v-if="item.imgUrl">                      <image                        style="width: 600rpx"                        mode="widthFix"                        :src="$method.splitImgHost(item.imgUrl)"                      ></image>                    </view>                  </view>                </view>              </view>            </view>            <view v-if="bank.ques">              <view class="pad_8 answer">                <view>题目答案:{{ ast[bank.ans == 1 ? 0 : 1] }}</view>                <view v-if="!explain"                  >我的答案:{{ ast[bank.ques == 1 ? 0 : 1] }}</view                >              </view>              <view class="pad_8 answerInfos">                <view class="answerTitle">答案解析</view>                <view class="answerContent">                  <rich-text :nodes="bank.analysisContent"></rich-text>                </view>              </view>            </view>          </template>          <!-- 简答题 -->          <template v-if="bank.type == 5">            <view class="pad_8 titBox">              <view class="ans">                <view                  class="ans_input"                  v-if="                    !bank.ques ||                    (!bank.ques.text && !bank.ques.imageList.length)                  "                >                  <view class="top flex">                    <image                      :data-index="bankIndex"                      class="icon"                      @click="chooseImg(bankIndex)"                      src="/static/camera.png"                      mode=""                    ></image>                    <view class="progress"                      >{{ bank.ansText.imageList.length || "0" }}/4</view                    >                    <view                      class="submit"                      :class="{ disabled: !bank.ansText.text && hasImgs(bank) }"                      @click="submitAns(bankIndex)"                      >确认答案</view                    >                  </view>                  <view class="textarea">                    <textarea                      v-model="bank.ansText.text"                      placeholder="在此输入答案"                    ></textarea>                  </view>                  <view class="imgs">                    <view                      class="img"                      v-for="(img, imgIndex) in bank.ansText.imageList"                      :key="imgIndex"                    >                      <text @click="deleteImg(imgIndex, bankIndex)">x</text>                      <image :src="$method.splitImgHost(img, true)"></image>                    </view>                  </view>                </view>                <view                  class="ans_submit answerInfos"                  v-if="bank.ques && !explain"                >                  <view class="answerTitle">我的答案:</view>                  {{ bank.ques.text }}                  <view class="imgs">                    <image                      class="img"                      :key="quesIndex"                      v-for="(ques, quesIndex) in bank.ques.imageList"                      :src="$method.splitImgHost(ques, true)"                    ></image>                  </view>                </view>              </view>            </view>            <view v-if="bank.ques">              <view class="pad_8 answerInfos">                <view class="answerTitle">答案解析:</view>                <view class="answerContent">                  <rich-text :nodes="bank.analysisContent"></rich-text>                </view>              </view>            </view>          </template>          <!-- 案例题 -->          <template v-if="bank.type == 4">            <view class="tabs">              <view                class="tab"                :class="{ current: tabIndex == bank.current }"                :key="tabIndex"                v-for="(tab, tabIndex) in bank.jsonStr"                @click="tabSelect(tabIndex, bankIndex)"              >                问题{{ tabIndex + 1 }}              </view>            </view>            <view              v-for="(ansItem, ansIndex) in bank.jsonStr"              v-if="bank.current == ansIndex"              :key="ansIndex"            >              <template v-if="ansItem.type == 1">                <view class="pad_8 titBox">                  <view class="leftLetters">                    <view class="btnType">                      <text>单选</text>                    </view>                  </view>                  <view class="titles">                    <rich-text :nodes="ansItem.content"></rich-text>                  </view>                  <view v-if="!bank.ques[ansIndex]">                    <view                      v-for="(option, childIndex) in ansItem.optionsList"                      :key="childIndex"                      class="lisSty"                      @click="                        radioSelectChild(option.optionsId, ansIndex, bankIndex)                      "                    >                      <view class="activeTI">{{ ast[childIndex] }}</view>                      <view class="flex_auto">                        <rich-text                          class="textChild"                          :nodes="option.content"                        ></rich-text>                        <view v-if="option.imgUrl">                          <image                            style="width: 600rpx"                            mode="widthFix"                            :src="$method.splitImgHost(option.imgUrl)"                          ></image>                        </view>                      </view>                    </view>                  </view>                  <view v-if="bank.ques[ansIndex]">                    <view                      v-for="(option, childIndex) in ansItem.optionsList"                      :key="childIndex"                      class="lisSty"                    >                      <text                        :class="{                          right:                            option.optionsId == bank.ques[ansIndex] ||                            option.optionsId == bank.ans[ansIndex],                          wrong:                            option.optionsId == bank.ques[ansIndex] &&                            bank.ques[ansIndex] != bank.ans[ansIndex],                        }"                        class="activeTI"                        >{{ ast[childIndex] }}</text                      >                      <view class="flex_auto">                        <rich-text :nodes="option.content"></rich-text>                        <view v-if="option.imgUrl">                          <image                            style="width: 600rpx"                            mode="widthFix"                            :src="$method.splitImgHost(option.imgUrl)"                          ></image>                        </view>                      </view>                    </view>                  </view>                </view>                <view v-if="bank.ques[ansIndex]">                  <view class="pad_8 answer">                    <view>题目答案:{{ ast[bank.ans[ansIndex] - 1] }}</view>                    <view v-if="!explain"                      >我的答案:{{ ast[bank.ques[ansIndex] - 1] }}</view                    >                  </view>                  <view class="pad_8 answerInfos">                    <view class="answerTitle">答案解析</view>                    <view class="answerContent">                      <rich-text :nodes="option.analysisContent"></rich-text>                    </view>                  </view>                </view>              </template>              <template v-if="ansItem.type == 2">                <view class="pad_8 titBox">                  <view class="leftLetters">                    <view class="btnType">                      <text>多选</text>                    </view>                  </view>                  <view class="titles">                    <rich-text :nodes="ansItem.content"></rich-text>                  </view>                  <view v-if="!bank.ques[ansIndex]">                    <view                      v-for="(option, childindex) in ansItem.optionsList"                      :key="childindex"                      class="lisSty"                      @click="                        checkboxSelectChild(bankIndex, ansIndex, childindex)                      "                    >                      <view                        :class="{ checked: option.checked }"                        class="activeTI"                        >{{ ast[childindex] }}</view                      >                      <view class="flex_auto">                        <rich-text :nodes="option.content"></rich-text>                        <view v-if="option.imgUrl">                          <image                            style="width: 600rpx"                            mode="widthFix"                            :src="$method.splitImgHost(option.imgUrl)"                          ></image>                        </view>                      </view>                    </view>                  </view>                  <view                    v-if="!bank.ques[ansIndex]"                    class="submit_checkbox"                    @click="checkboxSubmitChild(bankIndex, ansIndex)"                  >                    确认答案                  </view>                  <view v-if="bank.ques && bank.ques[ansIndex]">                    <view                      v-for="(option, childindex) in ansItem.optionsList"                      :key="childindex"                      class="lisSty"                    >                      <text                        :class="{                          right: right(bankIndex, ansIndex, option),                          wrong: wrong(bankIndex, ansIndex, option),                        }"                        class="activeTI"                        >{{ ast[childindex] }}</text                      >                      <view class="flex_auto">                        <rich-text :nodes="option.content"></rich-text>                        <view v-if="option.imgUrl">                          <image                            style="width: 600rpx"                            mode="widthFix"                            :src="$method.splitImgHost(option.imgUrl)"                          ></image>                        </view>                      </view>                    </view>                  </view>                </view>                <view v-if="bank.ques[ansIndex]">                  <view class="pad_8 answer">                    <view                      >题目答案:                      <text                        :key="ansItemIndex1"                        v-for="(ansItem1, ansItemIndex1) in bank.ans[ansIndex]"                        >{{ ast[ansItem1 - 1] }}</text                      >                    </view>                    <view v-if="!explain"                      >我的答案:                      <text                        :key="quesItemIndex"                        v-for="(quesItem, quesItemIndex) in bank.ques[ansIndex]"                        >{{ ast[quesItem - 1] }}</text                      >                    </view>                  </view>                  <view class="pad_8 answerInfos">                    <view class="answerTitle">答案解析</view>                    <view class="answerContent">                      <rich-text :nodes="ansItem.analysisContent"></rich-text>                    </view>                  </view>                </view>              </template>              <template v-if="ansItem.type == 3">                <view class="pad_8 titBox">                  <view class="leftLetters">                    <view class="btnType">                      <text>判断</text>                    </view>                  </view>                  <view class="titles">                    <rich-text :nodes="ansItem.content"></rich-text>                  </view>                  <view v-if="!bank.ques[ansIndex]">                    <view                      v-for="(option, childindex) in judge"                      :key="childindex"                      class="lisSty"                      @click="judgeSelectChild(ansIndex, childindex, bankIndex)"                    >                      <view class="activeTI">{{ ast[childindex] }}</view>                      <view class="flex_auto">                        {{ option }}                        <view v-if="option.imgUrl">                          <image                            style="width: 600rpx"                            mode="widthFix"                            :src="$method.splitImgHost(option.imgUrl)"                          ></image>                        </view>                      </view>                    </view>                  </view>                  <view v-if="bank.ques[ansIndex]">                    <view                      v-for="(option, childindex) in judge"                      :key="childindex"                      class="lisSty"                    >                      <text                        :class="{                          right:                            childindex == (bank.ques[ansIndex] == 1 ? 0 : 1) ||                            childindex != bank.ans[ansIndex],                          wrong:                            childindex == (bank.ques[ansIndex] == 1 ? 0 : 1) &&                            bank.ques[ansIndex] != bank.ans[ansIndex],                        }"                        class="activeTI"                        >{{ ast[childindex] }}</text                      >                      <view class="flex_auto">                        {{ option }}                        <view v-if="option.imgUrl">                          <image                            style="width: 600rpx"                            mode="widthFix"                            :src="$method.splitImgHost(option.imgUrl)"                          ></image>                        </view>                      </view>                    </view>                  </view>                </view>                <view v-if="bank.ques[ansIndex]">                  <view class="pad_8 answer">                    <view                      >题目答案:{{                        ast[bank.ans[ansIndex] == 1 ? 0 : 1]                      }}</view                    >                    <view v-if="!explain"                      >我的答案:{{                        ast[bank.ques[ansIndex] == 1 ? 0 : 1]                      }}</view                    >                  </view>                  <view class="pad_8 answerInfos">                    <view class="answerTitle">答案解析</view>                    <view class="answerContent">                      <rich-text :nodes="ansItem.analysisContent"></rich-text>                    </view>                  </view>                </view>              </template>              <!-- 简答题 -->              <template v-if="ansItem.type == 5">                <view class="pad_8 titBox_title">                  <view class="leftLetters">                    <view class="btnType">                      <text>简答</text>                    </view>                  </view>                  <view class="titles">                    <rich-text :nodes="ansItem.content"></rich-text>                  </view>                </view>                <view class="pad_8 titBox_title">                  <view class="ans">                    <view                      class="ans_input"                      v-if="                        !bank.ques[ansIndex] ||                        (!bank.ques[ansIndex].text &&                          !bank.ques[ansIndex].imageList.length)                      "                    >                      <view class="top flex">                        <image                          class="icon"                          @click="chooseImgChild(bankIndex, ansIndex)"                          src="/static/08-10_032.jpg"                          mode=""                        ></image>                        <view class="progress"                          >{{ ansItem.ansText.imageList.length || "0" }}/4</view                        >                        <view                          class="submit"                          :class="{                            disabled: !ansItem.ansText.text && hasImgs(ansItem),                          }"                          @click="submitAnsChild(bankIndex, ansIndex)"                          >确认答案</view                        >                      </view>                      <view class="textarea">                        <textarea                          v-model="ansItem.ansText.text"                          placeholder="在此输入答案"                        ></textarea>                      </view>                      <view class="imgs">                        <view                          class="img"                          v-for="(img, imgIndex) in ansItem.ansText.imageList"                          :key="imgIndex"                        >                          <text                            @click="                              deleteImgChild(imgIndex, bankIndex, ansIndex)                            "                            >x</text                          >                          <image :src="$method.splitImgHost(img, true)"></image>                        </view>                      </view>                    </view>                    <view                      class="ans_submit answerInfos"                      v-if="bank.ques[ansIndex] && !explain"                    >                      <view class="answerTitle">我的答案</view>                      {{ bank.ques[ansIndex].text }}                      <view class="imgs">                        <image                          class="img"                          :key="quesIndex"                          v-for="(ques, quesIndex) in bank.ques[ansIndex]                            .imageList"                          :src="$method.splitImgHost(ques, true)"                        ></image>                      </view>                    </view>                  </view>                </view>                <view v-if="bank.ques[ansIndex]">                  <view class="pad_8 answerInfos">                    <view class="answerTitle">答案解析</view>                    <view class="answerContent">                      <rich-text :nodes="ansItem.analysisContent"></rich-text>                    </view>                  </view>                </view>              </template>            </view>          </template>          <view class="footer_btn">            <view              class="collect"              @click="collect(collectList[bankIndex], bankIndex)"            >              <view v-if="collectList[bankIndex]">                <image src="/static/icon/collected.png" mode=""></image>                <view>取消收藏</view>              </view>              <view v-if="!collectList[bankIndex]">                <image src="/static/icon/collect.png" mode=""></image>                <view>收藏</view>              </view>            </view>            <view class="flex_center" @click="openFooterTab">              <view class="up-icon">                <image src="/static/up.png"></image>              </view>              答题卡            </view>            <view class="collect" @click="submit">              <view>                <image src="/static/jj.png" mode=""></image>                <view>交卷</view>              </view>            </view>          </view>        </view>      </swiper-item>    </swiper>    <u-popup v-model="show" mode="bottom" border-radius="14" height="680rpx">      <view class="popupView">        <view class="popupTops">          <view class="topIcon"></view>          点击编号即可跳转至对应题目        </view>        <view class="popupContent">          <scroll-view scroll-y="true" style="height: 506rpx">            <view class="boxSty">              <view                v-for="(item, index) in questionList"                :key="index"                @click="changeIndex(index)"                :class="{                  isRight: isRight(item, index),                  isWrong: isWrong(item, index),                  isPart: isPart(item, index),                }"                class="liListSty"                >{{ index + 1 }}</view              >            </view>          </scroll-view>        </view>      </view>    </u-popup>    <view class="dialog" v-if="showDialog">      <image class="pointer" src="/static/pointer.png"></image>      <view class="text">左右滑动切换上下题</view>      <view class="btn" @click="hideDialog">我知道了</view>    </view>  </view></template><script>export default {  data() {    return {      examId: "",      tabCurrent: 0,      current: 0,      questionList: [],      ast: ["A", "B", "C", "D", "E", "F", "G"],      judge: ["正确", "错误"],      show: false,      showDialog: false,      bankList: [],      collectList: [],      orderGoodsId: 0,      goodsId: "",      explain: "1", //是否显示答案      chapterId: "",      moduleId: "",      list: [        {          name: "对题",        },        {          name: "错题",        },      ],    };  },  onLoad(option) {    this.examId = option.examId;    this.goodsId = option.goodsId;    this.chapterId = option.chapterId;    this.moduleId = option.moduleId;    this.orderGoodsId = option.orderGoodsId;    // this.goodsQuestionList();    let showDialog = uni.getStorageSync("showDialog");    if (showDialog) {      this.showDialog = false;    } else {      this.showDialog = true;      uni.setStorageSync("showDialog", "1");    }    if (this.tabCurrent == 0) {      this.examRecordRightList();    } else {      this.examRecordWrongList();    }  },  onUnload() {},  methods: {    tabChange(e) {      this.tabCurrent = e;      if (this.tabCurrent == 0) {        this.examRecordRightList();      } else {        this.examRecordWrongList();      }    },    /**     * 是否有上传图片     */    hasImgs(bank) {      return bank.ansText.imageList.length == 0;    },    /**     * 获取错题列表     */    examRecordWrongList() {      this.$api        .examRecordWrongList({          examId: this.examId,          goodsId: this.goodsId,          orderGoodsId: this.orderGoodsId,        })        .then((res) => {          res.data.rows.forEach((item, index) => {            if (typeof item.jsonStr == "string") {              item.jsonStr = JSON.parse(item.jsonStr);              if (item.type == 2) {                //多选                item.jsonStr.forEach((str) => {                  str.optionsId = "" + str.optionsId;                });                let arr = item.answerQuestion.split(",");                arr.forEach((a, i) => {                  arr[i] = "" + a;                });                item.ans = arr;                if (this.explain) {                  item.ques = item.ans;                }                return;              } else if (item.type == 5) {                item.ansText = {                  text: "",                  imageList: [],                };                if (this.explain) {                  item.ques = {                    text: item.analysisContent,                  };                  return;                }              } else if (item.type == 4) {                console.log(item.jsonStr);                item.ques = [];                item.current = 0;                let ansArr = [];                item.jsonStr.forEach((json, index) => {                  if (json.type == 1) {                    ansArr[index] = json.answerQuestion;                  } else if (json.type == 2) {                    json.optionsList.forEach((str) => {                      str.optionsId = "" + str.optionsId;                    });                    let arr = json.answerQuestion.split(",");                    arr.forEach((a, i) => {                      arr[i] = "" + a;                    });                    ansArr[index] = arr;                  } else if (json.type == 3) {                    ansArr[index] = json.answerQuestion;                  } else if (json.type == 5) {                    ansArr[index] = {                      text: "",                      imageList: [],                    };                    json.ansText = {                      text: "",                      imageList: [],                    };                  }                });                item.ans = ansArr;                if (this.explain) {                  item.ques = item.ans;                }                return;              }              item.ans = item.answerQuestion;              if (this.explain) {                item.ques = item.ans;              }            } else {              if (this.explain) {                item.ques = item.ans;              }            }          });          this.questionList = res.data.rows;        });    },    /**     * 获取对题列表     */    examRecordRightList() {      this.$api        .examRecordRightList({          examId: this.examId,          goodsId: this.goodsId,          orderGoodsId: this.orderGoodsId,        })        .then((res) => {          res.data.rows.forEach((item, index) => {            if (typeof item.jsonStr == "string") {              item.jsonStr = JSON.parse(item.jsonStr);              if (item.type == 2) {                //多选                item.jsonStr.forEach((str) => {                  str.optionsId = "" + str.optionsId;                });                let arr = item.answerQuestion.split(",");                arr.forEach((a, i) => {                  arr[i] = "" + a;                });                item.ans = arr;                if (this.explain) {                  item.ques = item.ans;                }                return;              } else if (item.type == 5) {                item.ansText = {                  text: "",                  imageList: [],                };                if (this.explain) {                  item.ques = {                    text: item.analysisContent,                  };                  return;                }              } else if (item.type == 4) {                console.log(item.jsonStr);                item.ques = [];                item.current = 0;                let ansArr = [];                item.jsonStr.forEach((json, index) => {                  if (json.type == 1) {                    ansArr[index] = json.answerQuestion;                  } else if (json.type == 2) {                    json.optionsList.forEach((str) => {                      str.optionsId = "" + str.optionsId;                    });                    let arr = json.answerQuestion.split(",");                    arr.forEach((a, i) => {                      arr[i] = "" + a;                    });                    ansArr[index] = arr;                  } else if (json.type == 3) {                    ansArr[index] = json.answerQuestion;                  } else if (json.type == 5) {                    ansArr[index] = {                      text: "",                      imageList: [],                    };                    json.ansText = {                      text: "",                      imageList: [],                    };                  }                });                item.ans = ansArr;                if (this.explain) {                  item.ques = item.ans;                }                return;              }              item.ans = item.answerQuestion;              if (this.explain) {                item.ques = item.ans;              }            } else {              if (this.explain) {                item.ques = item.ans;              }            }          });          this.questionList = res.data.rows;        });    },    /**     * @param {Object} state     * @param {Object} index     * 收藏     */    collect(state, index) {      if (!state) {        this.$api          .collectQuestion({            examId: this.id,            questionId: this.questionList[index].questionId,            goodsId: this.goodsId || "",            doMode: 1, //做题模式 1章卷 2随机练习          })          .then((res) => {            if (res.data.code == 200) {              this.$set(this.collectList, index, true);              uni.showToast({                title: "收藏成功",                duration: 2000,                icon: "none",              });              this.getCollectInfo(index);            }          });      } else {        this.$api          .deleteCollectQuestion(this.collectList[index].collectQuestionId)          .then((res) => {            if (res.data.code == 200) {              this.$set(this.collectList, index, false);              uni.showToast({                title: "取消收藏成功",                duration: 2000,                icon: "none",              });            }          });      }      return;    },    goodsQuestionList() {      //继续答题      if (this.isContinue || this.isHistory) {        console.log(this.isHistory, "历史做题");        console.log(this.isContinue, "继续做题");        this.$api.examReport(this.recordId).then((res) => {          let json = JSON.parse(res.data.data.historyExamJson);          this.questionList = json;        });      } else {        //解析        this.$api          .goodsQuestionList({            examId: this.id,          })          .then((res) => {            res.data.data.forEach((item, index) => {              if (typeof item.jsonStr == "string") {                item.jsonStr = JSON.parse(item.jsonStr);                if (item.type == 2) {                  //多选                  item.jsonStr.forEach((str) => {                    str.optionsId = "" + str.optionsId;                  });                  let arr = item.answerQuestion.split(",");                  arr.forEach((a, i) => {                    arr[i] = "" + a;                  });                  item.ans = arr;                  if (this.explain) {                    item.ques = item.ans;                  }                  return;                } else if (item.type == 5) {                  item.ansText = {                    text: "",                    imageList: [],                  };                  if (this.explain) {                    item.ques = {                      text: item.analysisContent,                    };                    return;                  }                } else if (item.type == 4) {                  console.log(item.jsonStr);                  item.ques = [];                  item.current = 0;                  let ansArr = [];                  item.jsonStr.forEach((json, index) => {                    if (json.type == 1) {                      ansArr[index] = json.answerQuestion;                    } else if (json.type == 2) {                      json.optionsList.forEach((str) => {                        str.optionsId = "" + str.optionsId;                      });                      let arr = json.answerQuestion.split(",");                      arr.forEach((a, i) => {                        arr[i] = "" + a;                      });                      ansArr[index] = arr;                    } else if (json.type == 3) {                      ansArr[index] = json.answerQuestion;                    } else if (json.type == 5) {                      ansArr[index] = {                        text: "",                        imageList: [],                      };                      json.ansText = {                        text: "",                        imageList: [],                      };                    }                  });                  item.ans = ansArr;                  if (this.explain) {                    item.ques = item.ans;                  }                  return;                }                item.ans = item.answerQuestion;                if (this.explain) {                  item.ques = item.ans;                }              } else {                if (this.explain) {                  item.ques = item.ans;                }              }            });            this.questionList = res.data.data;            this.getCollectInfo(this.current);            console.log(this.questionList);          });      }    },    /**     * @param {Object} current     * 获取收藏信息     */    getCollectInfo(current) {      this.$api        .getCollectInfo({          examId: this.id,          questionId: this.questionList[current].questionId,          goodsId: this.goodsId,        })        .then((res) => {          if (res.data.code == 500) {            this.$set(this.collectList, current, false);          } else if (res.data.code == 200) {            this.$set(this.collectList, current, res.data.data);          }        });    },    /**     * @param {Object} e单选点击     */    radioSelect(optionsId, bindex) {      if (this.questionList[bindex].ques) return;      this.$set(this.questionList[bindex], "ques", optionsId);    },    examRecordEdit() {      if (!this.isSubmit) {        let {          doQuestionNum,          doQuestionIds,          rightQuestionNum,          historyExamJson,        } = this.$method.calculateScore(this.questionList);        this.$api          .examRecordEdit({            examId: this.id,            goodsId: this.goodsId,            recordId: this.recordId,            rightQuestionNum,            doQuestionIds,            status: 0,            moduleExamId: this.moduleId || 0,            chapterExamId: this.chapterId || 0,            doQuestionNum,            historyExamJson,          })          .then((res) => {});      }    },    /**     * @param {Object} e单选点击     */    radioSelectChild(optionsId, ansIndex, bindex) {      if (this.questionList[bindex].ques[ansIndex]) return;      this.$set(this.questionList[bindex].ques, ansIndex, optionsId);    },    /**     * @param {Object} 多选点击     */    checkboxSelect(optionsId, bindex, index) {      this.$set(        this.questionList[bindex].jsonStr[index],        "checked",        !this.questionList[bindex].jsonStr[index].checked      );    },    /**     * @param {Object} 多选点击     */    checkboxSelectChild(bindex, ansIndex, childIndex) {      this.$set(        this.questionList[bindex].jsonStr[ansIndex].optionsList[childIndex],        "checked",        !this.questionList[bindex].jsonStr[ansIndex].optionsList[childIndex]          .checked      );    },    /**     * 提交数据     */    submit(isShowTip = true) {      let form = this.$method.calculateScore(this.questionList);      this.$api        .examRecordEdit({          examId: this.id,          goodsId: this.goodsId,          recordId: this.recordId,          status: 1,          moduleExamId: this.moduleId || 0,          chapterExamId: this.chapterId || 0,          ...form,        })        .then((res) => {          this.isSubmit = true;          if (res.data.code == 200) {            if (!isShowTip) {              return;            }            uni.showToast({              title: "交卷成功",              duration: 2000,              icon: "none",            });            setTimeout(() => {              uni.redirectTo({                url:                  "/pages2/bank/question_report?id=" +                  this.recordId +                  "&examId=" +                  this.id,              });            }, 2000);          }        });    },    /**     * @param {Object} 多选确认     */    checkboxSubmit(bindex) {      if (this.questionList[bindex].ques) return;      let arr = [];      this.questionList[bindex].jsonStr.forEach((item) => {        if (item.checked) {          arr.push(item.optionsId);        }      });      this.$set(this.questionList[bindex], "ques", arr);    },    /**     * @param {Object} 多选确认     */    checkboxSubmitChild(bindex, ansIndex) {      if (this.questionList[bindex].ques[ansIndex]) return;      let arr = [];      this.questionList[bindex].jsonStr[ansIndex].optionsList.forEach(        (item) => {          if (item.checked) {            arr.push(item.optionsId);          }        }      );      this.$set(this.questionList[bindex].ques, ansIndex, arr);    },    judgeSelect(index, bindex) {      if (this.questionList[bindex].ques) return;      this.$set(this.questionList[bindex], "ques", index == 0 ? "1" : "0");    },    judgeSelectChild(ansindex, childindex, bindex) {      if (this.questionList[bindex].ques[ansindex]) return;      this.$set(        this.questionList[bindex].ques,        ansindex,        childindex == 0 ? "1" : "0"      );    },    openFooterTab() {      this.show = true;    },    hideDialog() {      this.showDialog = false;    },    changeIndex(index) {      this.current = index;    },    swiperChange(e) {      this.current = e.detail.current;      this.getCollectInfo(this.current);    },    deleteImg(imgIndex, bankIndex) {      this.questionList[bankIndex].ansText.imageList.splice(imgIndex, 1);    },    deleteImgChild(imgIndex, bankIndex, ansIndex) {      this.questionList[bankIndex].jsonStr[ansIndex].ansText.imageList.splice(        imgIndex,        1      );    },    chooseImg(bankindex) {      uni.chooseImage({        count: 1, //默认9        sizeType: ["compressed"], //可以指定是原图还是压缩图,默认二者都有        sourceType: ["album", "camera"], //从相册选择        success: (res) => {          let self = this;          // console.log(JSON.stringify(res.tempFilePaths));          let img = res.tempFilePaths[0];          uni.getImageInfo({            src: img,            success: async (res) => {              let canvasWidth = res.width; //图片原始长宽              let canvasHeight = res.height;              if (canvasWidth > 1000 || canvasHeight > 1000) {                uni.compressImage({                  src: img,                  quality: 75,                  width: "50%",                  height: "50%",                  success: async (rest) => {                    const dir = await self.uploadFile(rest.tempFilePath, 0);                    this.questionList[bankindex].ansText.imageList.push(dir);                  },                });              } else {                const dir = await self.uploadFile(img, 0);                this.questionList[bankindex].ansText.imageList.push(dir);              }            },          });        },      });    },    chooseImgChild(bankindex, ansindex) {      uni.chooseImage({        count: 1, //默认9        sizeType: ["compressed"], //可以指定是原图还是压缩图,默认二者都有        sourceType: ["album", "camera"], //从相册选择        success: (res) => {          let self = this;          // console.log(JSON.stringify(res.tempFilePaths));          let img = res.tempFilePaths[0];          uni.getImageInfo({            src: img,            success: async (res) => {              let canvasWidth = res.width; //图片原始长宽              let canvasHeight = res.height;              if (canvasWidth > 1000 || canvasHeight > 1000) {                uni.compressImage({                  src: img,                  quality: 75,                  width: "50%",                  height: "50%",                  success: async (rest) => {                    const dir = await self.uploadFile(rest.tempFilePath, 0);                    this.questionList[bankindex].jsonStr[                      ansindex                    ].ansText.imageList.push(dir);                  },                });              } else {                const dir = await self.uploadFile(img, 0);                this.questionList[bankindex].jsonStr[                  ansindex                ].ansText.imageList.push(dir);              }            },          });        },      });    },    uploadFile(options, int) {      var self = this;      return new Promise((resolve, reject) => {        var data = {          imageStatus: int,        };        self.$api.aliyunpolicy(data).then((res) => {          console.log(res.data, 6);          if (res.data.code != 200) {            self.$method.showToast("签名错误" + JSON.stringify(res.data));            return;          }          var ossToken = res.data.data.resultContent;          if (ossToken.host == null || ossToken.host == undefined) {            self.$method.showToast("上传路径报错" + JSON.stringify(res.data));            return;          }          uni.uploadFile({            url: ossToken.host,            name: "file",            filePath: options,            fileType: "image",            header: {              AuthorizationToken: "WX " + uni.getStorageSync("token"),            },            formData: {              key: ossToken.dir,              OSSAccessKeyId: ossToken.accessid,              policy: ossToken.policy,              Signature: ossToken.signature,              callback: ossToken.callback,              success_action_status: 200,            },            success: (result) => {              // if (result.statusCode === 200) {              resolve(ossToken.dir);              // } else {              //   uni.showToast({              //     title: "上传失败",              //     icon: "none",              //   });              //   return;              // }            },            fail: (error) => {              uni.showToast({                title: "上传接口报错" + error,                icon: "none",              });              return;            },          });        });      });    },    submitAns(bankindex) {      console.log(this.questionList[bankindex]);      if (        !this.questionList[bankindex].ansText.text &&        !this.questionList[bankindex].ansText.imageList.length      ) {        uni.showToast({          title: "请输入内容或上传图片",          duration: 2000,          icon: "none",        });        return;      }      this.$set(this.questionList[bankindex], "ques", {        imageList: this.questionList[bankindex].ansText.imageList,        text: this.questionList[bankindex].ansText.text,      });    },    submitAnsChild(bankindex, ansindex) {      if (        !this.questionList[bankindex].jsonStr[ansindex].ansText.text &&        !this.questionList[bankindex].jsonStr[ansindex].ansText.imageList.length      ) {        uni.showToast({          title: "请输入内容或上传图片",          duration: 2000,          icon: "none",        });        return;      }      this.$set(this.questionList[bankindex].ques, ansindex, {        imageList:          this.questionList[bankindex].jsonStr[ansindex].ansText.imageList,        text: this.questionList[bankindex].jsonStr[ansindex].ansText.text,      });    },    isRight(item, index) {      //单选      if (this.questionList[index].ques) {        if (item.type == 1) {          return this.questionList[index].ques == this.questionList[index].ans;          //多选        } else if (item.type == 2) {          //每一项都相等          return this.questionList[index].ans.every((item, i) => {            return item == this.questionList[index].ques[i];          });          //判断        } else if (item.type == 3) {          return this.questionList[index].ques == this.questionList[index].ans;        } else {          return false;        }      } else {        return false;      }    },    right(bankIndex, ansIndex, option) {      if (        this.questionList[bankIndex].ques[ansIndex] &&        this.questionList[bankIndex].ans[ansIndex]      ) {        if (          this.questionList[bankIndex].ques[ansIndex].indexOf(            option.optionsId          ) != -1 ||          this.questionList[bankIndex].ans[ansIndex].indexOf(            option.optionsId          ) != -1        ) {          return true;        } else {          return false;        }      } else {        return false;      }    },    wrong(bankIndex, ansIndex, option) {      if (        this.questionList[bankIndex].ques[ansIndex] &&        this.questionList[bankIndex].ans[ansIndex]      ) {        if (          this.questionList[bankIndex].ques[ansIndex].indexOf(            option.optionsId          ) != -1 &&          this.questionList[bankIndex].ans[ansIndex].indexOf(            option.optionsId          ) == -1        ) {          return true;        } else {          return false;        }      } else {        return false;      }    },    isWrong(item, index) {      if (this.questionList[index].ques) {        //单选        if (item.type == 1) {          return this.questionList[index].ques != this.questionList[index].ans;          //多选        } else if (item.type == 2) {          //每一项都相等          return this.questionList[index].ques.some((item, i) => {            return this.questionList[index].ans.indexOf(item) == -1;          });          //判断        } else if (item.type == 3) {          return this.questionList[index].ques != this.questionList[index].ans;        } else {          return false;        }      } else {        return false;      }    },    isPart(item, index) {      if (this.questionList[index].ques) {        if (item.type == 2) {          let isWrong = this.questionList[index].ques.some((item, i) => {            return this.questionList[index].ans.indexOf(item) == -1;          });          let isRight = this.questionList[index].ans.every((item, i) => {            return item == this.questionList[index].ques[i];          });          if (!isRight && !isWrong) {            return true;          }        }      } else {        return false;      }    },    tabSelect(index, bankindex) {      this.$set(this.questionList[bankindex], "current", index);    },  },};</script><style lang="scss" scoped>.questionBank {  width: 100%;  height: 100vh;  display: flex;  flex-direction: column;}.tabs-top {  display: flex;  justify-content: center;  margin-bottom: 10rpx;}.swiper {  width: 100%;  flex: 1;}.lisSty {  margin-bottom: 16rpx;  display: flex;  align-items: center;  .flex_auto {    flex: 1;    word-break: break-all;  }}.activeTI {  vertical-align: middle;  display: inline-block;  border: 1rpx solid #eee;  border-radius: 50rpx;  height: 48rpx;  line-height: 46rpx;  text-align: center;  width: 48rpx;  margin-right: 15rpx;  color: #666;  font-size: 30rpx;  &.right {    color: #fff;    background: #36c75a;  }  &.wrong {    color: #fff;    background: #ff3b30;  }  &.checked {    color: #fff;    background: #007aff;  }}.submit_checkbox {  position: fixed;  left: 0;  right: 0;  bottom: 120rpx;  margin: 20rpx auto;  width: 526rpx;  height: 80rpx;  background: rgba(0, 122, 255, 1);  color: #fff;  text-align: center;  line-height: 80rpx;  font-size: 30rpx;  border-radius: 40rpx;}.titles {  overflow: hidden;  margin-bottom: 24rpx;}.titBox {  padding: 41rpx 25rpx 24rpx 25rpx;}.titBox_title {  padding: 21rpx;}.tabs {  margin: 10rpx;  display: flex;  .tab {    margin: 0 4rpx;    padding: 10rpx 13rpx;    text-align: center;    color: #007aff;    font-size: 28rpx;    border-radius: 16rpx;    background: #fff;    &.current {      color: #fff;      background: #007aff;    }  }}.ans {  margin: 8rpx 8rpx 8rpx;  .ans_input {    border-radius: 16rpx;    background: #fff;    .top {      border-bottom: 1rpx solid #eeeeee;      padding: 16rpx;      display: flex;      align-items: center;      .icon {        margin-right: 20rpx;        width: 40rpx;        height: 38rpx;      }      .progress {        flex: 1;      }      .submit {        width: 168rpx;        height: 48rpx;        line-height: 48rpx;        text-align: center;        color: #fff;        font-size: 30rpx;        background: #007aff;        border-radius: 24rpx;        &.disabled {          opacity: 0.6;        }      }    }    .textarea {      textarea {        width: 100%;        height: 287rpx;        padding: 10rpx;      }    }    .imgs {      overflow: hidden;      display: flex;      width: 100%;      .img {        width: 104rpx;        height: 104rpx;        border-radius: 8rpx;        position: relative;        margin: 20rpx;        text {          position: absolute;          right: -15rpx;          top: -15rpx;          width: 30rpx;          height: 30rpx;          text-align: center;          line-height: 30rpx;          color: #fff;          background: #ff3b30;          border-radius: 50%;        }        image {          width: 100%;          height: 100%;        }      }    }  }  .ans_submit {    padding: 16rpx;    border-radius: 16rpx;    background: #fff;    .imgs {      overflow: hidden;      display: flex;      width: 100%;      .img {        width: 104rpx;        height: 104rpx;        border-radius: 8rpx;        position: relative;        margin: 20rpx;        image {          width: 100%;          height: 100%;        }      }    }  }}.leftLetters {  display: flex;  align-items: center;  width: 220rpx;  .btnType {    padding: 5rpx 10rpx;    border: 1rpx solid #007aff;    border-radius: 10rpx;    background-color: rgba(0, 122, 255, 0.1);    font-size: 28rpx;    color: #007aff;    margin-right: 15rpx;  }}.firstLetter {  display: flex;  justify-content: space-between;  align-items: center;  margin-bottom: 30rpx;}.popupView {  height: 100%;  padding-bottom: 100rpx;  .popupTops {    height: 77rpx;    border-bottom: 1rpx solid #eee;    text-align: center;    line-height: 77rpx;    font-size: 24rpx;    color: #999;    position: relative;    .topIcon {      position: absolute;      top: 10rpx;      left: 50%;      transform: translateX(-50%);      width: 80rpx;      height: 8rpx;      background-color: #999;      border-radius: 4rpx;    }  }  .popupContent {  }}.pageContent {  position: relative;  background-color: #eaeef1;  height: 100%;  overflow-y: scroll;  padding-top: 8rpx;  padding-bottom: 100rpx;}.pad_8 {  background-color: #fff;  margin: 0rpx 8rpx 8rpx;  border-radius: 16rpx;  &.no-margin {    margin-top: -16rpx;    border-radius: 0 0 16rpx 16rpx;  }}.answer {  height: 80rpx;  line-height: 80rpx;  padding: 0rpx 24rpx;  display: flex;  align-items: center;  justify-content: space-between;  color: #666;  font-size: 30rpx;}.footer_btn {  background-color: #fff;  z-index: 10078;  position: fixed;  bottom: 0rpx;  display: flex;  align-items: center;  justify-content: space-between;  width: 100%;  height: 98rpx;  padding: 0rpx 38rpx;  border-top: 1rpx solid #eee;  .flex_center {    flex: 1;    display: flex;    justify-content: center;    align-items: center;    flex-direction: column;    margin: 0 200rpx;    font-size: 24rpx;    color: #999999;    .up-icon {      margin-bottom: 18rpx;      width: 100%;      display: flex;      justify-content: center;      image {        width: 58rpx;        height: 21rpx;      }    }  }  .collect {    visibility: hidden;    width: 100rpx;    &.show {      visibility: visible;    }    > view {      display: flex;      flex-direction: column;      align-items: center;      justify-content: center;      image {        width: 32rpx;        height: 32rpx;        margin-bottom: 6rpx;      }      view {        font-size: 24rpx;        color: #999999;      }    }  }}.boxSty {  padding: 44rpx 41rpx 0rpx;}.liListSty {  border: 1rpx solid #eeeeee;  width: 88rpx;  height: 88rpx;  border-radius: 32rpx;  text-align: center;  line-height: 88rpx;  color: #333;  font-size: 32rpx;  float: left;  margin: 20rpx 23rpx;  &.isRight {    border: 1rpx solid #eeeeee;    color: #fff;    background: #36c75a;  }  &.isWrong {    border: 1rpx solid #eeeeee;    color: #fff;    background: #ff3b30;  }  &.isPart {    border: 1rpx solid #eeeeee;    color: #fff;    background: #ffc53d;  }}.answerInfos {  padding: 25rpx 25rpx 25rpx 23rpx;}.answerTitle {  margin-bottom: 28rpx;  color: #666;  font-size: 30rpx;}.answerContent {  font-size: 30rpx;  color: #666;}.textChild {  display: inline-block;  vertical-align: middle;}.dialog {  position: fixed;  left: 0;  top: 0;  width: 100%;  height: 100%;  background-color: rgba(0, 0, 0, 0.8);  display: flex;  flex-direction: column;  align-items: center;  justify-content: center;  z-index: 20000;  .pointer {    width: 338rpx;    height: 240rpx;  }  .text {    font-size: 32rpx;    color: #ffffff;    text-align: center;  }  .btn {    width: 242rpx;    height: 82rpx;    border: 2rpx solid #ffffff;    border-radius: 16rpx;    text-align: center;    line-height: 82rpx;    margin: 41rpx auto;    color: #fff;    font-size: 32rpx;  }}</style>
 |