[测评系统]--前端(用户答题页面)
84702473
2023-03-11 b51944b4ee2d0591eeaf7bae5a265236a8fcbc91
修复拖拽的相关BUG
1个文件已修改
105 ■■■■■ 已修改文件
src/views/exam/paper/values.vue 105 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/exam/paper/values.vue
@@ -74,8 +74,7 @@
                        <div class="inlinediv">
                            <div v-for="(question,index2) in questionItems" class="mullinediv-item"
                                v-if="getStep2StepItem(step2SubStep).itemOrder == question.subjectId">
                                <el-image :ref="'q2SelectImg'+question.id" :src="question.imgUrl" lazy
                                    :preview-src-list="[question.imgUrl]"></el-image>
                                <el-image :ref="'q2SelectImg'+question.id" :src="question.imgUrl" :preview-src-list="[question.imgUrl]"></el-image>
                                <div style="display: flex; justify-content: space-between;">
                                    <el-image class="tools-button" :src="require('@/assets/exam-paper/no.png')"
                                        @click="step2Delete(question.id,getStep2StepItem(step2SubStep).itemOrder)">
@@ -116,11 +115,12 @@
                        <div style="padding: 0 10px;">{{$t('values_pic_tmpArea')}}</div>
                        <draggable animation="300" class="pic-tmparea-div"
                            style="background-color: #f5f7fa;border: 1px solid gray;padding: 10px;width: 50%;"
                            :list="step3EWEIArea[0]" group="article" @start="step3TmpAreaStart"
                            @end="step3MoveFromTmpAreaEnd">
                            :list="step3EWEIArea[0]" :options="{group:{name:'EWEIArea',pull:'clone'}}"
                            @start="ev=>step3TmpAreaStart(ev,0)"
                            @end="step3TmpAreaMoveEnd">
                            <div v-for="q in step3EWEIArea[0]" :key="q.id" class="mullinediv-item2"
                                :qId="q.id">
                                <el-image :src="q.imgUrl" lazy :preview-src-list="[q.imgUrl]" fit="fill"></el-image>
                                :questionID="q.id" :questionIMGURL="q.imgUrl">
                                <el-image :src="q.imgUrl" :preview-src-list="[q.imgUrl]" fit="fill"></el-image>
                            </div>
                        </draggable>
                        <el-button type="primary" round style="height: fit-content;margin: 0 10px;"
@@ -141,19 +141,21 @@
                        <div class="mul-inlinediv" v-for="item in step2ScoreRanges">
                            <div class="mul-inlinediv-row">
                                <draggable animation="300" :class="item.itemOrder"
                                <draggable animation="300" classa="pic-eweiarea-div" :class="'pic-eweiarea-div-'+item.itemOrder"
                                    :list="step3EWEIArea[item.itemOrder]"
                                    :options="{group:{name:'article'}}" filter=".undraggable"
                                    @end="step3MoveToTmpAreaEnd" :scoreRangeId="item.itemOrder">
                                    :options="{group:{name:'EWEIArea',pull:'clone'}}" filter=".undraggable"
                                    @end="ev=>step3EWEIAreaMoveEnd(ev,item.itemOrder)" :scoreRangeId="item.itemOrder">
                                    <div v-for="q in step3EWEIArea[item.itemOrder]" :key="q.id"
                                        class="mul-inlinediv-item" :qId="q.id">
                                        <el-image :src="q.imgUrl" lazy :preview-src-list="[q.imgUrl]" v-if="q.imgUrl">
                                        class="mul-inlinediv-item" :questionID="q.id" :questionIMGURL="q.imgUrl">
                                        <el-image :src="q.imgUrl" :preview-src-list="[q.imgUrl]" v-if="q.imgUrl">
                                        </el-image>
                                    </div>
                                    <div v-if="item.quantity >= step3EWEIArea[item.itemOrder].length">
                                    <div class="mul-inlinediv-item"
                                        v-for="c in (item.quantity - step3EWEIArea[item.itemOrder].length)">
                                        <el-image :src="require('@/assets/exam-paper/none.png')" class="undraggable">
                                        </el-image>
                                    </div>
                                    </div>
                                </draggable>
                            </div>
@@ -692,27 +694,65 @@
                }
                console.log('buildStep3EWEIArea', this.step3EWEIArea)
            },
            step3TmpAreaStart(ev) {
                //console.log('step3TmpAreaStart', ev)
            addStep3EWEIArea(index,question){
                //console.log('addStep3EWEIArea',index,question)
                this.step3EWEIArea[index].push(question)
                this.$set(this.step3EWEIArea, index, this.step3EWEIArea[index])
            },
            step3MoveFromTmpAreaEnd(ev) {
                //console.log('step3MoveFromTmpAreaEnd s', ev, ev.to)
                // let options,qId
                // qId = ev.item.attributes.qId.value
                // for(let p of ev.to){
                //     if(this.isNotEmpty(p['options'])) {
                //         options = p['options']
                //         break
                //     }
                // }
                // let scoreRangeId = options.scoreRangeId
            delStep3EWEIArea(index,question){
                //console.log('delStep3EWEIArea s',index,question,this.step3EWEIArea[index])
                for(let i=0;i<this.step3EWEIArea[index].length;i++){
                    if(question.id == this.step3EWEIArea[index][i].id){
                        this.step3EWEIArea[index].splice(i,1)
                    }
                }
                this.$set(this.step3EWEIArea, index, this.step3EWEIArea[index])
                //console.log('delStep3EWEIArea e',this.step3EWEIArea[index])
            },
            hasStep3EWEIAreaOverflow(index,question){
                //console.log('hasStep3EWEIAreaOverflow e',this.step3EWEIArea[index])
                if(this.step3EWEIArea[index].length>this.step2ScoreRanges[index-1].quantity){
                    return true
                }
                return false
            },
            step3MoveToTmpAreaEnd(ev) {
                //console.log('step3MoveToTmpAreaEnd')
                //let qId = ev.item.attributes.qId.value
                //console.log('step3MoveToTmpAreaEnd end', this.step3EWEIArea)
            step3TmpAreaStart(ev,i) {
                console.log('step3TmpAreaStart', ev,i)
            },
            step3TmpAreaMoveAdd(ev) {
                console.log('step3TmpAreaMoveAdd', ev)
                return false
            },
            step3TmpAreaMoveEnd(ev) {
                console.log('step3TmpAreaMoveEnd s', ev)
                console.log('step3TmpAreaMoveEnd from,to', ev.from.className,ev.to.className)
                let to = ev.to.className.replace("pic-eweiarea-div-","")
                let qId = ev.item.attributes.questionID.value
                let qImg = ev.item.attributes.questionIMGURL.value
                if("pic-tmparea-div"===ev.to.className){
                    //this.delStep3EWEIArea(to,{'id':qId,'imgUrl':qImg})
                } else {
                    let of = this.hasStep3EWEIAreaOverflow(to,{'id':qId,'imgUrl':qImg})
                    if(of){
                        this.delStep3EWEIArea(to,{'id':qId,'imgUrl':qImg})
                    } else {
                        this.delStep3EWEIArea(0,{'id':qId,'imgUrl':qImg})
                    }
                }
            },
            step3EWEIAreaMoveEnd(ev,fid) {
                console.log('step3EWEIAreaMoveEnd',ev)
                console.log('step3EWEIAreaMoveEnd from,to,id', ev.from.className,ev.to.className,fid)
                let to = ev.to.className.replace("pic-eweiarea-div-","")
                let qId = ev.item.attributes.questionID.value
                let qImg = ev.item.attributes.questionIMGURL.value
                if("pic-tmparea-div"===ev.to.className){
                    this.delStep3EWEIArea(fid,{'id':qId,'imgUrl':qImg})
                } else {
                    if(fid != to) this.delStep3EWEIArea(to,{'id':qId,'imgUrl':qImg})
                }
            },
            sumStep2UnSelectedNum() {
@@ -1196,20 +1236,13 @@
                //this.answer.answerItems[_this.order].endTime = this.formatDate(new Date(), 'yyyy-MM-dd hh:mm:ss')
                // 提交部分
                let answerSubmit = _this.getSubmitAnswerValue(_this.partOrder)
                let loading = _this.$loading({
                    lock: false,
                    text: _this.$t('uploadInfo'),
                    spinner: 'el-icon-loading'
                })
                examPaperAnswerApi.answerSubmit(answerSubmit, _this.memberToken).then(re => {
                    loading.close()
                    if (re.code === 1) {
                        //console.log('answerSubmit...', re)
                    }
                    _this.formLoading = false
                }).catch(e => {
                    _this.reloadPage(e)
                    loading.close()
                })
            },
            /**