|
@@ -89,7 +89,7 @@
|
|
|
<el-table v-loading="loading" :data="questionsList" @selection-change="handleSelectionChange">
|
|
<el-table v-loading="loading" :data="questionsList" @selection-change="handleSelectionChange">
|
|
|
<el-table-column type="selection" width="55" align="center" fixed="left"/>
|
|
<el-table-column type="selection" width="55" align="center" fixed="left"/>
|
|
|
<el-table-column label="题目ID" align="center" prop="id" fixed="left" />
|
|
<el-table-column label="题目ID" align="center" prop="id" fixed="left" />
|
|
|
- <el-table-column label="试题-题干" align="left" prop="title" min-width="350" header-align="center"
|
|
|
|
|
|
|
+ <el-table-column label="题干" align="left" prop="title" min-width="350" header-align="center"
|
|
|
fixed="left">
|
|
fixed="left">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<div class="table-cell-content" v-html="formatContentWithImages(scope.row.title)"></div>
|
|
<div class="table-cell-content" v-html="formatContentWithImages(scope.row.title)"></div>
|
|
@@ -99,12 +99,26 @@
|
|
|
<el-table-column label="学科" align="center" prop="subjectId">
|
|
<el-table-column label="学科" align="center" prop="subjectId">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<span v-if="scope.row.subjectId">
|
|
<span v-if="scope.row.subjectId">
|
|
|
- {{ getSubjectName(scope.row.subjectId) }}
|
|
|
|
|
|
|
+ {{ scope.row.subjectId }}-{{ getSubjectName(scope.row.subjectId) }}
|
|
|
</span>
|
|
</span>
|
|
|
<span v-else>-</span>
|
|
<span v-else>-</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-table-column>
|
|
</el-table-column>
|
|
|
- <el-table-column label="知识点" align="center" prop="knowledgeId"/>
|
|
|
|
|
|
|
+ <el-table-column label="知识点" align="center" prop="knowledgeId" show-overflow-tooltip>
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <el-tooltip v-if="scope.row.knowledgeTrees && scope.row.knowledgeTrees.length > 0"
|
|
|
|
|
+ :content="`${scope.row.knowledgeTrees[0].id}-${scope.row.knowledgeTrees[0].name}`"
|
|
|
|
|
+ placement="top">
|
|
|
|
|
+ <el-link type="primary"
|
|
|
|
|
+ @click="handleShowKnowledgeTrees(scope.row)"
|
|
|
|
|
+ :underline="false"
|
|
|
|
|
+ class="knowledge-link">
|
|
|
|
|
+ {{ scope.row.knowledgeTrees[0].id }}-{{ scope.row.knowledgeTrees[0].name }}
|
|
|
|
|
+ </el-link>
|
|
|
|
|
+ </el-tooltip>
|
|
|
|
|
+ <span v-else>-</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
<el-table-column label="选项" align="center" prop="optionA" show-overflow-tooltip>
|
|
<el-table-column label="选项" align="center" prop="optionA" show-overflow-tooltip>
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<el-link type="primary" @click="handleShowOptions(scope.row)" :underline="false">
|
|
<el-link type="primary" @click="handleShowOptions(scope.row)" :underline="false">
|
|
@@ -183,7 +197,7 @@
|
|
|
<!-- <el-table-column label="试题来源" align="center" prop="fromSite"/> -->
|
|
<!-- <el-table-column label="试题来源" align="center" prop="fromSite"/> -->
|
|
|
<!-- <el-table-column label="图片水印" align="center" prop="isSub"/> -->
|
|
<!-- <el-table-column label="图片水印" align="center" prop="isSub"/> -->
|
|
|
<!-- <el-table-column label="常规题" align="center" prop="isNormal"/> -->
|
|
<!-- <el-table-column label="常规题" align="center" prop="isNormal"/> -->
|
|
|
- <el-table-column label="匹配知识点" align="center" prop="isKonw" min-width="120"/>
|
|
|
|
|
|
|
+<!-- <el-table-column label="匹配知识点" align="center" prop="isKonw" min-width="120"/>-->
|
|
|
<el-table-column label="tiid" align="center" prop="tiid" min-width="100"/>
|
|
<el-table-column label="tiid" align="center" prop="tiid" min-width="100"/>
|
|
|
<!-- <el-table-column label="试题题干的md5值" align="center" prop="md5" /> -->
|
|
<!-- <el-table-column label="试题题干的md5值" align="center" prop="md5" /> -->
|
|
|
<!-- <el-table-column label="是否唯一" align="center" prop="isunique"/> -->
|
|
<!-- <el-table-column label="是否唯一" align="center" prop="isunique"/> -->
|
|
@@ -197,11 +211,11 @@
|
|
|
<!-- <el-table-column label="试题-材料题题干" align="center" prop="title1" min-width="130" show-overflow-tooltip/> -->
|
|
<!-- <el-table-column label="试题-材料题题干" align="center" prop="title1" min-width="130" show-overflow-tooltip/> -->
|
|
|
<!-- <el-table-column label="试题解析" align="left" prop="parse0" header-align="center" show-overflow-tooltip/> -->
|
|
<!-- <el-table-column label="试题解析" align="left" prop="parse0" header-align="center" show-overflow-tooltip/> -->
|
|
|
<!-- <el-table-column label="answer0" align="center" prop="answer0"/> -->
|
|
<!-- <el-table-column label="answer0" align="center" prop="answer0"/> -->
|
|
|
- <el-table-column label="是否更新" align="center" prop="isUpdate">
|
|
|
|
|
|
|
+ <!-- <el-table-column label="是否更新" align="center" prop="isUpdate">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<dict-tag :options="bool_values" :value="scope.row.isUpdate" />
|
|
<dict-tag :options="bool_values" :value="scope.row.isUpdate" />
|
|
|
</template>
|
|
</template>
|
|
|
- </el-table-column>
|
|
|
|
|
|
|
+ </el-table-column> -->
|
|
|
<el-table-column label="包含子题" align="center" prop="isSubType">
|
|
<el-table-column label="包含子题" align="center" prop="isSubType">
|
|
|
<template #default="scope">
|
|
<template #default="scope">
|
|
|
<dict-tag :options="bool_values" :value="scope.row.isSubType" />
|
|
<dict-tag :options="bool_values" :value="scope.row.isSubType" />
|
|
@@ -290,18 +304,40 @@
|
|
|
<!-- 横线分隔(仅在修改时显示) -->
|
|
<!-- 横线分隔(仅在修改时显示) -->
|
|
|
<el-divider v-if="form.id != null"></el-divider>
|
|
<el-divider v-if="form.id != null"></el-divider>
|
|
|
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <!-- <el-row :gutter="20"> -->
|
|
|
|
|
+<!-- <el-col :span="12">-->
|
|
|
|
|
+<!-- <el-form-item label="知识点" prop="knowledgeId">-->
|
|
|
|
|
+<!-- <el-tree-select node-key="id" v-model="form.knowledgeId" :data="knowledgeTreeList" check-strictly-->
|
|
|
|
|
+<!-- :render-after-expand="false" style="width: 100%"-->
|
|
|
|
|
+<!-- :props="{ label: 'name', children: 'children' }"-->
|
|
|
|
|
+<!-- placeholder="请选择知识点"/>-->
|
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
|
+<!-- </el-col>-->
|
|
|
|
|
+
|
|
|
|
|
+ <!-- </el-row> -->
|
|
|
<!-- 可修改内容区域,两列布局 -->
|
|
<!-- 可修改内容区域,两列布局 -->
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="科目" prop="subjectId">
|
|
|
|
|
- <el-select v-model="form.subjectId" placeholder="请选择科目" style="width: 100%">
|
|
|
|
|
- <el-option v-for="s in subjectList" :label="s.subjectName" :value="s.subjectId"/>
|
|
|
|
|
- </el-select>
|
|
|
|
|
|
|
+<!-- <el-col :span="12">-->
|
|
|
|
|
+<!-- <el-form-item label="科目" prop="subjectId">-->
|
|
|
|
|
+<!-- <el-select v-model="form.subjectId" placeholder="请选择科目" style="width: 100%">-->
|
|
|
|
|
+<!-- <el-option v-for="s in subjectList" :label="s.subjectName" :value="s.subjectId"/>-->
|
|
|
|
|
+<!-- </el-select>-->
|
|
|
|
|
+<!-- </el-form-item>-->
|
|
|
|
|
+<!-- </el-col>-->
|
|
|
|
|
+ <el-col :span="8">
|
|
|
|
|
+ <el-form-item label="题型" prop="qtpye">
|
|
|
|
|
+ <el-input v-model="form.qtpye" disabled type="text" placeholder="请输入内容"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="题型" prop="qtpye">
|
|
|
|
|
- <el-input v-model="form.qtpye" type="text" placeholder="请输入内容"/>
|
|
|
|
|
|
|
+ <el-col :span="8">
|
|
|
|
|
+ <el-form-item label="来源" prop="source">
|
|
|
|
|
+ <el-input v-model="form.source" disabled placeholder="请输入来源"/>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ <el-col :span="8">
|
|
|
|
|
+ <el-form-item label="源ID" prop="tiid">
|
|
|
|
|
+ <el-input v-model="form.tiid" placeholder="请输入试题的源ID"/>
|
|
|
</el-form-item>
|
|
</el-form-item>
|
|
|
</el-col>
|
|
</el-col>
|
|
|
</el-row>
|
|
</el-row>
|
|
@@ -379,27 +415,9 @@
|
|
|
</el-select>
|
|
</el-select>
|
|
|
</el-form-item> -->
|
|
</el-form-item> -->
|
|
|
|
|
|
|
|
|
|
+
|
|
|
<el-row :gutter="20">
|
|
<el-row :gutter="20">
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="知识点" prop="knowledgeId">
|
|
|
|
|
- <el-tree-select node-key="id" v-model="form.knowledgeId" :data="knowledgeTreeList" check-strictly
|
|
|
|
|
- :render-after-expand="false" style="width: 100%"
|
|
|
|
|
- :props="{ label: 'name', children: 'children' }"
|
|
|
|
|
- placeholder="请选择知识点"/>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="来源" prop="source">
|
|
|
|
|
- <el-input v-model="form.source" placeholder="请输入来源"/>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
- </el-row>
|
|
|
|
|
- <el-row :gutter="20">
|
|
|
|
|
- <el-col :span="12">
|
|
|
|
|
- <el-form-item label="源ID" prop="tiid">
|
|
|
|
|
- <el-input v-model="form.tiid" placeholder="请输入试题的源ID"/>
|
|
|
|
|
- </el-form-item>
|
|
|
|
|
- </el-col>
|
|
|
|
|
|
|
+
|
|
|
<el-col :span="12">
|
|
<el-col :span="12">
|
|
|
<el-form-item label="试题解析" prop="parse">
|
|
<el-form-item label="试题解析" prop="parse">
|
|
|
<Editor v-if="!isTextMode" v-model="form.parse" :min-height="120" />
|
|
<Editor v-if="!isTextMode" v-model="form.parse" :min-height="120" />
|
|
@@ -514,6 +532,77 @@
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 知识点列表管理弹窗 -->
|
|
|
|
|
+ <el-dialog v-model="showKnowledgeTreesDialog" title="知识点管理" width="80%" append-to-body class="knowledge-trees-dialog">
|
|
|
|
|
+ <el-row :gutter="10" class="mb8">
|
|
|
|
|
+ <el-col :span="1.5">
|
|
|
|
|
+ <el-button type="primary" plain icon="Plus" @click="handleAddKnowledgeQuestion">新增</el-button>
|
|
|
|
|
+ </el-col>
|
|
|
|
|
+ </el-row>
|
|
|
|
|
+ <el-table v-loading="knowledgeTreesLoading" :data="currentKnowledgeTreesList">
|
|
|
|
|
+ <el-table-column label="题目ID" align="center" prop="questionId" width="100" />
|
|
|
|
|
+ <el-table-column label="知识点ID(pid)" align="center" prop="id" width="120">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <span v-if="scope.row.pid !== null && scope.row.pid !== undefined">
|
|
|
|
|
+ {{ scope.row.id }}({{ scope.row.pid }})
|
|
|
|
|
+ </span>
|
|
|
|
|
+ <span v-else>
|
|
|
|
|
+ {{ scope.row.id }}
|
|
|
|
|
+ </span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="知识点" align="center" prop="name" min-width="200" />
|
|
|
|
|
+ <el-table-column label="科目" align="center" prop="subjectId" min-width="150">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <span v-if="scope.row.subjectId">{{ scope.row.subjectId }}-{{ getSubjectName(scope.row.subjectId) }}</span>
|
|
|
|
|
+ <span v-else>-</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width" min-width="100">
|
|
|
|
|
+ <template #default="scope">
|
|
|
|
|
+ <el-button link type="primary" icon="Edit" @click="handleUpdateKnowledgeQuestion(scope.row)">修改</el-button>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-table-column>
|
|
|
|
|
+ </el-table>
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <div class="dialog-footer">
|
|
|
|
|
+ <el-button @click="showKnowledgeTreesDialog = false">关 闭</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 知识点关系编辑弹窗 -->
|
|
|
|
|
+ <el-dialog :title="knowledgeQuestionTitle" v-model="showKnowledgeQuestionDialog" width="500px" append-to-body>
|
|
|
|
|
+ <el-form ref="knowledgeQuestionRef" :model="knowledgeQuestionForm" :rules="knowledgeQuestionRules" label-width="80px">
|
|
|
|
|
+ <el-form-item label="题目ID" prop="questionId">
|
|
|
|
|
+ <el-input v-model="knowledgeQuestionForm.questionId" placeholder="请输入题ID" disabled />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ <el-form-item label="知识点" prop="knowledgeId">
|
|
|
|
|
+ <el-tree-select
|
|
|
|
|
+ node-key="id"
|
|
|
|
|
+ v-model="knowledgeQuestionForm.knowledgeId"
|
|
|
|
|
+ :data="knowledgeTreeList"
|
|
|
|
|
+ check-strictly
|
|
|
|
|
+ :render-after-expand="false"
|
|
|
|
|
+ style="width: 100%"
|
|
|
|
|
+ :props="{ label: 'name', children: 'children' }"
|
|
|
|
|
+ placeholder="请选择知识点"
|
|
|
|
|
+ filterable
|
|
|
|
|
+ clearable/>
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+
|
|
|
|
|
+ <el-form-item label="顺序" prop="seq">
|
|
|
|
|
+ <el-input v-model="knowledgeQuestionForm.seq" placeholder="请输入顺序" />
|
|
|
|
|
+ </el-form-item>
|
|
|
|
|
+ </el-form>
|
|
|
|
|
+ <template #footer>
|
|
|
|
|
+ <div class="dialog-footer">
|
|
|
|
|
+ <el-button type="primary" @click="submitKnowledgeQuestionForm">确 定</el-button>
|
|
|
|
|
+ <el-button @click="cancelKnowledgeQuestion">取 消</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
@@ -521,7 +610,8 @@
|
|
|
import {listQuestions, getQuestions, delQuestions, addQuestions, updateQuestions, changeQuestionType} from "@/api/learn/questions"
|
|
import {listQuestions, getQuestions, delQuestions, addQuestions, updateQuestions, changeQuestionType} from "@/api/learn/questions"
|
|
|
import {listKnowledgeTree} from "@/api/learn/knowledgeTree"
|
|
import {listKnowledgeTree} from "@/api/learn/knowledgeTree"
|
|
|
import {listAllSubject} from "@/api/dz/subject"
|
|
import {listAllSubject} from "@/api/dz/subject"
|
|
|
-import {ElMessage} from "element-plus";
|
|
|
|
|
|
|
+import {listKnowledgeQuestion, getKnowledgeQuestion, delKnowledgeQuestion, addKnowledgeQuestion, updateKnowledgeQuestion} from "@/api/learn/knowledgeQuestion"
|
|
|
|
|
+import {ElMessage, ElLoading} from "element-plus";
|
|
|
import DictTag from '@/components/DictTag/index.vue'
|
|
import DictTag from '@/components/DictTag/index.vue'
|
|
|
import Editor from '@/components/Editor/index.vue'
|
|
import Editor from '@/components/Editor/index.vue'
|
|
|
import { computed } from 'vue'
|
|
import { computed } from 'vue'
|
|
@@ -549,6 +639,31 @@ const showOptionsDialog = ref(false)
|
|
|
const currentRow = ref({})
|
|
const currentRow = ref({})
|
|
|
const isTextMode = ref(false) // 是否为文本模式(false为富文本模式)
|
|
const isTextMode = ref(false) // 是否为文本模式(false为富文本模式)
|
|
|
|
|
|
|
|
|
|
+// 知识点管理相关
|
|
|
|
|
+const showKnowledgeTreesDialog = ref(false)
|
|
|
|
|
+const knowledgeTreesLoading = ref(false)
|
|
|
|
|
+const currentKnowledgeTreesList = ref([])
|
|
|
|
|
+const currentQuestionId = ref(null)
|
|
|
|
|
+const showKnowledgeQuestionDialog = ref(false)
|
|
|
|
|
+const knowledgeQuestionTitle = ref("")
|
|
|
|
|
+const knowledgeQuestionForm = ref({
|
|
|
|
|
+ id: null,
|
|
|
|
|
+ knowledgeId: null,
|
|
|
|
|
+ questionId: null,
|
|
|
|
|
+ seq: null
|
|
|
|
|
+})
|
|
|
|
|
+const knowledgeQuestionRules = {
|
|
|
|
|
+ knowledgeId: [
|
|
|
|
|
+ { required: true, message: "知识点不能为空", trigger: "change" }
|
|
|
|
|
+ ],
|
|
|
|
|
+ questionId: [
|
|
|
|
|
+ { required: true, message: "题ID不能为空", trigger: "blur" }
|
|
|
|
|
+ ],
|
|
|
|
|
+ seq: [
|
|
|
|
|
+ { required: true, message: "顺序不能为空", trigger: "blur" }
|
|
|
|
|
+ ]
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const subjectList = ref([])
|
|
const subjectList = ref([])
|
|
|
const knowledgeTreeList = ref([])
|
|
const knowledgeTreeList = ref([])
|
|
|
|
|
|
|
@@ -871,6 +986,112 @@ function handleShowOptions(row) {
|
|
|
showOptionsDialog.value = true
|
|
showOptionsDialog.value = true
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+/** 显示知识点列表 */
|
|
|
|
|
+function handleShowKnowledgeTrees(row) {
|
|
|
|
|
+ currentQuestionId.value = row.id
|
|
|
|
|
+ knowledgeTreesLoading.value = true
|
|
|
|
|
+ // 如果 row.knowledgeTrees 存在,直接使用;否则通过 questionId 查询知识点关系
|
|
|
|
|
+ if (row.knowledgeTrees && row.knowledgeTrees.length > 0) {
|
|
|
|
|
+ currentKnowledgeTreesList.value = row.knowledgeTrees.map(kt => ({
|
|
|
|
|
+ id: kt.id,
|
|
|
|
|
+ name: kt.name,
|
|
|
|
|
+ pid: kt.pid,
|
|
|
|
|
+ subjectId: kt.subjectId,
|
|
|
|
|
+ questionId: kt.questionId,
|
|
|
|
|
+ knowledgeQuestionId: kt.knowledgeQuestionId,
|
|
|
|
|
+ subjectName: getSubjectName(kt.subjectId)
|
|
|
|
|
+ }))
|
|
|
|
|
+ knowledgeTreesLoading.value = false
|
|
|
|
|
+ }
|
|
|
|
|
+ showKnowledgeTreesDialog.value = true
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/** 新增知识点关系 */
|
|
|
|
|
+function handleAddKnowledgeQuestion() {
|
|
|
|
|
+ resetKnowledgeQuestionForm()
|
|
|
|
|
+ knowledgeQuestionForm.value.questionId = currentQuestionId.value
|
|
|
|
|
+ knowledgeQuestionTitle.value = "添加知识点关系"
|
|
|
|
|
+ showKnowledgeQuestionDialog.value = true
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/** 修改知识点关系 */
|
|
|
|
|
+function handleUpdateKnowledgeQuestion(row) {
|
|
|
|
|
+ // 根据知识点ID和题目ID查找关系
|
|
|
|
|
+ const loadingInstance = ElLoading.service({
|
|
|
|
|
+ lock: true,
|
|
|
|
|
+ text: '加载中...',
|
|
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
|
|
+ })
|
|
|
|
|
+ listKnowledgeQuestion({
|
|
|
|
|
+ questionId: currentQuestionId.value,
|
|
|
|
|
+ knowledgeId: row.id
|
|
|
|
|
+ }).then(response => {
|
|
|
|
|
+ loadingInstance.close()
|
|
|
|
|
+ if (response.rows && response.rows.length > 0) {
|
|
|
|
|
+ const relation = response.rows[0]
|
|
|
|
|
+ knowledgeQuestionForm.value = {
|
|
|
|
|
+ id: relation.id,
|
|
|
|
|
+ knowledgeId: relation.knowledgeId,
|
|
|
|
|
+ questionId: relation.questionId,
|
|
|
|
|
+ seq: relation.seq
|
|
|
|
|
+ }
|
|
|
|
|
+ knowledgeQuestionTitle.value = "修改知识点关系"
|
|
|
|
|
+ showKnowledgeQuestionDialog.value = true
|
|
|
|
|
+ } else {
|
|
|
|
|
+ ElMessage.warning("未找到对应的知识点关系")
|
|
|
|
|
+ }
|
|
|
|
|
+ }).catch(() => {
|
|
|
|
|
+ loadingInstance.close()
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/** 重置知识点关系表单 */
|
|
|
|
|
+function resetKnowledgeQuestionForm() {
|
|
|
|
|
+ knowledgeQuestionForm.value = {
|
|
|
|
|
+ id: null,
|
|
|
|
|
+ knowledgeId: null,
|
|
|
|
|
+ questionId: null,
|
|
|
|
|
+ seq: null
|
|
|
|
|
+ }
|
|
|
|
|
+ if (proxy.$refs["knowledgeQuestionRef"]) {
|
|
|
|
|
+ proxy.$refs["knowledgeQuestionRef"].resetFields()
|
|
|
|
|
+ proxy.$refs["knowledgeQuestionRef"].clearValidate()
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/** 取消知识点关系编辑 */
|
|
|
|
|
+function cancelKnowledgeQuestion() {
|
|
|
|
|
+ showKnowledgeQuestionDialog.value = false
|
|
|
|
|
+ resetKnowledgeQuestionForm()
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/** 提交知识点关系表单 */
|
|
|
|
|
+function submitKnowledgeQuestionForm() {
|
|
|
|
|
+ proxy.$refs["knowledgeQuestionRef"].validate(valid => {
|
|
|
|
|
+ if (valid) {
|
|
|
|
|
+ if (knowledgeQuestionForm.value.id != null) {
|
|
|
|
|
+ updateKnowledgeQuestion(knowledgeQuestionForm.value).then(response => {
|
|
|
|
|
+ proxy.$modal.msgSuccess("修改成功")
|
|
|
|
|
+ showKnowledgeQuestionDialog.value = false
|
|
|
|
|
+ // 刷新知识点列表
|
|
|
|
|
+ handleShowKnowledgeTrees({ id: currentQuestionId.value, knowledgeTrees: [] })
|
|
|
|
|
+ // 刷新题目列表
|
|
|
|
|
+ getList()
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ addKnowledgeQuestion(knowledgeQuestionForm.value).then(response => {
|
|
|
|
|
+ proxy.$modal.msgSuccess("新增成功")
|
|
|
|
|
+ showKnowledgeQuestionDialog.value = false
|
|
|
|
|
+ // 刷新知识点列表
|
|
|
|
|
+ handleShowKnowledgeTrees({ id: currentQuestionId.value, knowledgeTrees: [] })
|
|
|
|
|
+ // 刷新题目列表
|
|
|
|
|
+ getList()
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
/** 获取图片代理URL(如果需要后端代理,可以在这里实现) */
|
|
/** 获取图片代理URL(如果需要后端代理,可以在这里实现) */
|
|
|
function getImageProxyUrl(imageUrl) {
|
|
function getImageProxyUrl(imageUrl) {
|
|
|
if (!imageUrl) return ''
|
|
if (!imageUrl) return ''
|
|
@@ -1045,4 +1266,26 @@ getList()
|
|
|
.table-cell-content :deep(img:not([src])) {
|
|
.table-cell-content :deep(img:not([src])) {
|
|
|
display: none;
|
|
display: none;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+.knowledge-link {
|
|
|
|
|
+ display: inline-block;
|
|
|
|
|
+ max-width: 100%;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ text-overflow: ellipsis;
|
|
|
|
|
+ white-space: nowrap;
|
|
|
|
|
+ vertical-align: middle;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+/* 知识点管理弹窗样式 */
|
|
|
|
|
+.knowledge-trees-dialog :deep(.el-dialog) {
|
|
|
|
|
+ height: 75vh;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ flex-direction: column;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+.knowledge-trees-dialog :deep(.el-dialog__body) {
|
|
|
|
|
+ overflow-x: hidden;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ overflow-y: auto;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|