Parcourir la source

Merge branch 'master' of http://119.23.210.103:3000/wy/zdqy_firm_former

cfort il y a 1 an
Parent
commit
283f9eea87

+ 2 - 1
src/views/platform/examination/exam/edit.vue

@@ -874,7 +874,8 @@ export default {
                         bei_zhu_: item.bei_zhu_ || '',
                         zhuang_tai_: item.zhuang_tai_,
                         biao_qian_: item.biao_qian_ || '',
-                        nan_du_: item.nan_du_ || 0
+                        nan_du_: item.nan_du_ || 0,
+                        da_an_jie_xi_: item.da_an_jie_xi_ || ''
                     }))
                 }
                 await this.$common.request('add', addParams)

+ 13 - 2
src/views/platform/examination/question/edit.vue

@@ -280,6 +280,16 @@
                     />
                 </el-form-item>
             </template>
+            <el-form-item label="答案解析:" prop="da_an_jie_xi_">
+                <el-input
+                    v-model="form.da_an_jie_xi_"
+                    type="textarea"
+                    :rows="3"
+                    :autosize="readonly"
+                    :disabled="readonly"
+                    placeholder="请输入题目答案解析"
+                />
+            </el-form-item>
             <el-form-item label="备注:" prop="bei_zhu_">
                 <el-input
                     v-model="form.bei_zhu_"
@@ -369,7 +379,8 @@ export default {
                 fen_zhi_: '',
                 bei_zhu_: '',
                 zhuang_tai_: '启用',
-                nan_du_: 0
+                nan_du_: 0,
+                da_an_jie_xi_: ''
             },
             questionTags: [],
             toolbars: [
@@ -504,7 +515,7 @@ export default {
             if (this.$utils.isEmpty(this.id)) {
                 return
             }
-            const sql = `select id_, chu_ti_ren_, bu_men_, chu_ti_shi_jian_, ti_gan_, ti_xing_, xuan_xiang_lei_xi, biao_qian_, da_an_, zheng_que_da_an_, ping_fen_fang_shi, ping_fen_ren_, fen_zhi_, zhuang_tai_, xuan_xiang_shu_, fu_tu_, bei_zhu_,nan_du_ from t_questions where id_ = '${this.id}'`
+            const sql = `select id_, chu_ti_ren_, bu_men_, chu_ti_shi_jian_, ti_gan_, ti_xing_, xuan_xiang_lei_xi, biao_qian_, da_an_, zheng_que_da_an_, ping_fen_fang_shi, ping_fen_ren_, fen_zhi_, zhuang_tai_, xuan_xiang_shu_, fu_tu_, bei_zhu_,nan_du_,da_an_jie_xi_ from t_questions where id_ = '${this.id}'`
             this.$common.request('sql', sql).then(res => {
                 const { data = [] } = res.variables || {}
                 if (!data.length) {

+ 63 - 11
src/views/platform/examination/questionBank/detail.vue

@@ -92,8 +92,19 @@
                         class="card"
                     >
                         <div class="stem">
-                            <span>{{ `【${qIndex + 1}】${q.stem}` }}</span>
-                            <el-tag type="primary" size="small">{{ `${q.questionScore}分` }}</el-tag>
+                            <div class="left">
+                                <span>{{ `【${qIndex + 1}】${q.stem}` }}</span>
+                                <el-tag type="primary" size="small">{{ `${q.questionScore}分` }}</el-tag>
+                            </div>
+                            <span v-if="q.rate>0">
+                                <el-rate
+                                    :value="q.rate"
+                                    show-text
+                                    :texts="texts"
+                                    :colors="colors"
+                                    disabled
+                                />
+                            </span>
                         </div>
                         <div v-if="q.img && q.img.length" class="img">
                             <ibps-image
@@ -148,8 +159,18 @@
                                 </div>
                             </div>
                             <div class="right">
-                                <div class="title">参考答案:</div>
-                                <div class="answer-content">
+                                <div class="title">
+                                    <span>{{ q.showResolution?'答案解析':'参考答案' }}</span>
+                                    <el-tooltip class="item" effect="dark" :content="q.showResolution?'查看答案':'查看解析'" placement="right-end">
+                                        <el-button
+                                            size="mini"
+                                            icon="ibps-icon-exchange"
+                                            :type="q.showResolution?'primary':''"
+                                            @click="changeResolution(index,qIndex)"
+                                        />
+                                    </el-tooltip>
+                                </div>
+                                <div v-show="!q.showResolution" class="answer-content">
                                     <el-radio-group v-if="q.questionType === '单选题'" :value="q.rightKey">
                                         <el-radio
                                             v-for="(o, i) in q.options"
@@ -179,6 +200,7 @@
                                         />
                                     </template>
                                 </div>
+                                <div v-show="q.showResolution" style="white-space: pre-wrap;" class="answer-content">{{ q.resolution || '略' }}</div>
                             </div>
                         </div>
                     </div>
@@ -265,7 +287,8 @@ export default {
         return {
             title: '考试详情',
             dialogVisible: this.visible,
-            toolbars: [{ key: 'cancel', label: '退出' }],
+            showResolution: false,
+            toolbars: [{ icon: 'ibps-icon-eye', key: 'change', label: '查看解析' }, { key: 'cancel', label: '退出' }],
             paperList: [],
             paperData: [],
             maxScore: '',
@@ -277,7 +300,9 @@ export default {
                 { value: 'true', label: '正确' },
                 { value: 'noFinished', label: '未评分' }
             ],
-            paperStatus: 'all'
+            paperStatus: 'all',
+            texts: ['易', '偏易', '适中', '偏难', '难'],
+            colors: { 1: '#00FF00', 2: '#7FFF00', 3: '#FFFF00', 4: '#FFA500', 5: '#FF0000' }
         }
     },
     computed: {
@@ -324,6 +349,21 @@ export default {
         window.removeEventListener('keyup', this.handleKeyPress)
     },
     methods: {
+        changeResolution (index, qIndex) {
+            this.paperData.list[index].questions[qIndex].showResolution = !this.paperData.list[index].questions[qIndex].showResolution
+        },
+        changeAll () {
+            this.showResolution = !this.showResolution
+            this.paperList.forEach(item => {
+                item.list.forEach(i => {
+                    i.questions.forEach(ii => {
+                        ii.showResolution = this.showResolution
+                    })
+                })
+            })
+            const t = this.toolbars.find(item => item.key === 'change')
+            t.label = this.showResolution ? '查看答案' : '查看解析'
+        },
         // 获取题库数据
         async loadData () {
             if (!this.bankId) {
@@ -347,6 +387,9 @@ export default {
                 case 'cancel':
                     this.closeDialog()
                     break
+                case 'change':
+                    this.changeAll()
+                    break
                 default:
                     break
             }
@@ -363,7 +406,7 @@ export default {
         },
         getQuestionData () {
             const param = this.examId ? `and e.exam_id_ = '${this.examId}'` : 'and e.exam_id_ is null'
-            const sql = `select e.id_ as dataId, e.exam_id_ as examId, e.kao_shi_ren_ as examinee, e.bu_men_ as dept, e.zhuang_tai_ as status, e.bao_ming_shi_jian as applyTime, e.kai_shi_shi_jian_ as startTime, e.jie_shu_shi_jian_ as endTime, e.ti_ku_zong_fen_ as totalScore, e.de_fen_ as resultScore, ed.ti_mu_id_ as questionId, ed.ti_gan_ as stem, ed.ti_xing_ as questionType, ed.fen_zhi_ as questionScore, ed.fu_tu_ as img, ed.xuan_xiang_lei_xi as optionsType, ed.xuan_xiang_ as options, ed.can_kao_da_an_ as rightKey, ed.ping_fen_fang_shi as rateType, ed.ping_fen_ren_ as rater, ed.hui_da_ as answer, ed.ping_yue_shi_jian as rateTime, ed.de_fen_ as score, ed.jie_xi_ as analysis, q.ti_ku_ming_cheng_ as paperName, case when e.exam_id_ is not null then ex.da_biao_zhan_bi_ else q.da_biao_zhan_bi_ end as qualifiedRadio, case when e.exam_id_ is not null then ex.ji_fen_fang_shi_ else q.ji_fen_fang_shi_ end as scoringType, case when e.exam_id_ is not null then ex.kao_shi_ming_chen else '自主考核' end as examName, case when e.exam_id_ is not null then ex.xian_kao_shi_jian else '不限' end as limitDate from t_examination e left join t_examination_detail ed on e.id_ = ed.parent_id_ left join  t_question_bank q on e.ti_ku_id_ = q.id_ left join  t_exams ex on e.exam_id_ = ex.id_ where e.ti_ku_id_ = '${this.bankId}' ${param} and e.kao_shi_ren_ = '${this.examineeId}' and (e.zhuang_tai_ = '已完成' or e.zhuang_tai_ = '已交卷') order by field(ed.ti_xing_, '单选题', '多选题', '判断题', '填空题', '简答题')`
+            const sql = `select e.id_ as dataId, e.exam_id_ as examId,ed.nan_du_+0 as rate,ed.da_an_jie_xi_ as resolution, e.kao_shi_ren_ as examinee, e.bu_men_ as dept, e.zhuang_tai_ as status, e.bao_ming_shi_jian as applyTime, e.kai_shi_shi_jian_ as startTime, e.jie_shu_shi_jian_ as endTime, e.ti_ku_zong_fen_ as totalScore, e.de_fen_ as resultScore, ed.ti_mu_id_ as questionId, ed.ti_gan_ as stem, ed.ti_xing_ as questionType, ed.fen_zhi_ as questionScore, ed.fu_tu_ as img, ed.xuan_xiang_lei_xi as optionsType, ed.xuan_xiang_ as options, ed.can_kao_da_an_ as rightKey, ed.ping_fen_fang_shi as rateType, ed.ping_fen_ren_ as rater, ed.hui_da_ as answer, ed.ping_yue_shi_jian as rateTime, ed.de_fen_ as score, ed.jie_xi_ as analysis, q.ti_ku_ming_cheng_ as paperName, case when e.exam_id_ is not null then ex.da_biao_zhan_bi_ else q.da_biao_zhan_bi_ end as qualifiedRadio, case when e.exam_id_ is not null then ex.ji_fen_fang_shi_ else q.ji_fen_fang_shi_ end as scoringType, case when e.exam_id_ is not null then ex.kao_shi_ming_chen else '自主考核' end as examName, case when e.exam_id_ is not null then ex.xian_kao_shi_jian else '不限' end as limitDate from t_examination e left join t_examination_detail ed on e.id_ = ed.parent_id_ left join  t_question_bank q on e.ti_ku_id_ = q.id_ left join  t_exams ex on e.exam_id_ = ex.id_ where e.ti_ku_id_ = '${this.bankId}' ${param} and e.kao_shi_ren_ = '${this.examineeId}' and (e.zhuang_tai_ = '已完成' or e.zhuang_tai_ = '已交卷') order by field(ed.ti_xing_, '单选题', '多选题', '判断题', '填空题', '简答题')`
             return new Promise((resolve, reject) => {
                 this.$common.request('sql', sql).then(res => {
                     const { data = [] } = res.variables || {}
@@ -374,6 +417,7 @@ export default {
                     }
                     const result = []
                     data.map(item => {
+                        item.showResolution = false
                         // 数据转换
                         if (['单选题', '多选题'].includes(item.questionType)) {
                             item.options = JSON.parse(item.options)
@@ -575,10 +619,15 @@ export default {
                     .stem {
                         display: flex;
                         margin-bottom: 10px;
-                        align-items: flex-start;
-                        > span:first-child {
-                            line-height: 1.5;
-                            margin-right: 10px;
+                        justify-content: space-between;
+                        align-items: center;
+                        .left{
+                            display: flex;
+                            align-items: center;
+                             > span:first-child {
+                                line-height: 1.5;
+                                margin-right: 10px;
+                            }
                         }
                     }
                     .img {
@@ -597,6 +646,9 @@ export default {
                                 font-size: 16px;
                                 color: #01a39e;
                                 margin-bottom: 10px;
+                                display: flex;
+                                align-items: center;
+                                justify-content: space-between;
                                 .score {
                                     vertical-align: middle;
                                 }

+ 4 - 3
src/views/platform/examination/questionBank/edit.vue

@@ -601,7 +601,7 @@ export default {
                 return
             }
             const sql1 = `select id_, bian_zhi_ren_, bian_zhi_bu_men_, bian_zhi_shi_jian, ti_ku_ming_cheng_, ti_ku_fen_lei_, ti_ku_zhuang_tai_, shi_fou_gong_kai_, xian_kao_ci_shu_, ping_fen_ren_, miao_shu_, suo_shu_fan_wei_, kao_shi_shi_chang, da_biao_zhan_bi_ from t_question_bank where id_ = '${this.formId}'`
-            const sql2 = `select id_ as quesId, chu_ti_ren_ as creator, bu_men_ as createDept, chu_ti_shi_jian_ as createTime, xu_hao_ as sn, ti_gan_ as content, ti_xing_ as quesType, fu_tu_ as img, xuan_xiang_lei_xi as optionType, da_an_ as answer, zheng_que_da_an_ as rightKey, ping_fen_fang_shi as rateType, ping_fen_ren_ as rater, fen_zhi_ as score, bei_zhu_ as note, xuan_xiang_shu_ as optionCount, biao_qian_ as quesTag, zhuang_tai_ as quesState,nan_du_ as questionLevel from t_questions where parent_id_ = '${this.formId}' order by chu_ti_shi_jian_ desc`
+            const sql2 = `select id_ as quesId, chu_ti_ren_ as creator, bu_men_ as createDept, chu_ti_shi_jian_ as createTime, xu_hao_ as sn, ti_gan_ as content, ti_xing_ as quesType, fu_tu_ as img, xuan_xiang_lei_xi as optionType, da_an_ as answer, zheng_que_da_an_ as rightKey, ping_fen_fang_shi as rateType, ping_fen_ren_ as rater, fen_zhi_ as score, bei_zhu_ as note, xuan_xiang_shu_ as optionCount, biao_qian_ as quesTag, zhuang_tai_ as quesState,nan_du_ as questionLevel,da_an_jie_xi_ as resolution, from t_questions where parent_id_ = '${this.formId}' order by chu_ti_shi_jian_ desc`
             Promise.all([this.$common.request('sql', sql1), this.$common.request('sql', sql2)]).then(([res1, res2]) => {
                 const { data: bankData = [] } = res1.variables || {}
                 const { data: questionData = [] } = res2.variables || {}
@@ -629,7 +629,7 @@ export default {
             })
         },
         addSelectQuestion () {
-            const sql = `select id_ as quesId, chu_ti_ren_ as creator, bu_men_ as createDept, chu_ti_shi_jian_ as createTime, xu_hao_ as sn, ti_gan_ as content, ti_xing_ as quesType, fu_tu_ as img, xuan_xiang_lei_xi as optionType, da_an_ as answer, zheng_que_da_an_ as rightKey, ping_fen_fang_shi as rateType, ping_fen_ren_ as rater, fen_zhi_ as score, bei_zhu_ as note, xuan_xiang_shu_ as optionCount, biao_qian_ as quesTag, zhuang_tai_ as quesState,nan_du_ as questionLevel from t_questions where find_in_set(id_, '${this.quesIdList}')`
+            const sql = `select id_ as quesId, chu_ti_ren_ as creator, bu_men_ as createDept, chu_ti_shi_jian_ as createTime, xu_hao_ as sn, ti_gan_ as content, ti_xing_ as quesType, fu_tu_ as img, xuan_xiang_lei_xi as optionType, da_an_ as answer, zheng_que_da_an_ as rightKey, ping_fen_fang_shi as rateType, ping_fen_ren_ as rater, fen_zhi_ as score, bei_zhu_ as note, xuan_xiang_shu_ as optionCount, biao_qian_ as quesTag, zhuang_tai_ as quesState,nan_du_ as questionLevel,da_an_jie_xi_ as resolution from t_questions where find_in_set(id_, '${this.quesIdList}')`
             this.$common.request('sql', sql).then(res => {
                 const { data = [] } = res.variables || {}
                 this.questionData = data.concat(this.questionData)
@@ -713,7 +713,8 @@ export default {
                 bei_zhu_: item.note || '',
                 zhuang_tai_: item.quesState,
                 biao_qian_: item.quesTag || '',
-                nan_du_: item.questionLevel || 0
+                nan_du_: item.questionLevel || 0,
+                da_an_jie_xi_: item.resolution || ''
             }))
             await this.$common.request('add', {
                 tableName: 't_questions',

+ 4 - 3
src/views/platform/examination/questionBank/test.vue

@@ -359,7 +359,7 @@ export default {
         },
         getQuestionData () {
             this.loading = true
-            const sql = `select id_ as questionId, ti_gan_ as stem, ti_xing_ as questionType, fu_tu_ as img, xuan_xiang_lei_xi as optionType, da_an_ as options, xuan_xiang_shu_ as optionsLength, fen_zhi_ as score, ping_fen_fang_shi as rateType, ping_fen_ren_ as rater, zheng_que_da_an_ as rightKey,nan_du_ as questionLevel from t_questions where parent_id_ = '${this.bankId}' and zhuang_tai_ = '启用' order by field(ti_xing_, '单选题', '多选题', '判断题', '填空题', '简答题')`
+            const sql = `select id_ as questionId, ti_gan_ as stem, ti_xing_ as questionType, fu_tu_ as img, xuan_xiang_lei_xi as optionType, da_an_ as options, xuan_xiang_shu_ as optionsLength, fen_zhi_ as score, ping_fen_fang_shi as rateType, ping_fen_ren_ as rater, zheng_que_da_an_ as rightKey,nan_du_ as questionLevel,da_an_jie_xi_ as resolution from t_questions where parent_id_ = '${this.bankId}' and zhuang_tai_ = '启用' order by field(ti_xing_, '单选题', '多选题', '判断题', '填空题', '简答题')`
             return new Promise((resolve, reject) => {
                 this.$common.request('sql', sql).then(res => {
                     let { data = [] } = res.variables || {}
@@ -553,7 +553,8 @@ export default {
                     ping_yue_shi_jian: autoType ? time : '',
                     de_fen_: autoType ? this.getScore(item) : '',
                     jie_xi_: '',
-                    nan_du_: item.questionLevel || 0
+                    nan_du_: item.questionLevel || 0,
+                    da_an_jie_xi_: item.resolution || ''
                 })
             })
             return submitData
@@ -581,7 +582,7 @@ export default {
                     }
                 ]
             }
-            console.log(addParams, updateParams)
+            // console.log(addParams, updateParams)
             this.$common.request('add', addParams).then(() => {
                 this.$common.request('update', updateParams).then(() => {
                     this.$message.success('提交成功!')