【新增】 wps_word试题新增

This commit is contained in:
DESKTOP-932OMT8\REN
2025-05-29 11:16:44 +08:00
committed by 陆光LG
parent 88681a0666
commit c8e3c97ccd

View File

@@ -30,7 +30,11 @@
</el-col>
<el-col :span="12">
<el-form-item label="题型难度" prop="quLevel">
<el-input v-model="formData.quLevel" placeholder="请输入题型难度" disabled />
<el-select v-model="formData.quLevel" placeholder="请选择题型难度" clearable>
<el-option label="简单" :value="'0'" />
<el-option label="一般" :value="'1'" />
<el-option label="困难" :value="'2'" />
</el-select>
</el-form-item>
</el-col>
</el-row>
@@ -84,15 +88,15 @@
</div>
</el-tab-pane>
<el-tab-pane label="试题考点" name="answer">
<el-button type="warning" @click="addWordInfo">新增</el-button>
<el-button type="danger">删除</el-button>
<el-button @click="addWordInfo">新增</el-button>
<!-- <el-button type="danger">删除</el-button> -->
<div class="block">
<el-table
v-loading="loading"
:data="list"
@selection-change="handleSelectionChange"
>
<el-table-column type="selection" width="55" />
<!-- <el-table-column type="selection" width="55" /> -->
<el-table-column label="考点" align="center" prop="contentIn" />
<el-table-column label="权值" align="center" prop="scoreRate" />
</el-table>
@@ -161,7 +165,7 @@
<el-input
v-model="scope.row.fileName"
size="small"
placeholder="请输入文件名称"
placeholder="请输入文件名称(未输入自动命名)"
/>
</template>
</el-table-column>
@@ -203,7 +207,6 @@
</div>
<!-- 表单弹窗添加/修改 -->
<FileForm ref="FileRef" @success="handleUploadSuccess" />
<el-dialog v-model="dialogFormVisibleWordInfo" title="考点设置" width="400px">
<el-tree
style="max-width: 600px"
@@ -213,7 +216,6 @@
@node-click="handleNodelClick"
/>
</el-dialog>
<el-dialog v-model="dialogFormVisibleWordInfos" :title="titles" width="300px">
<el-tree
style="max-width: 600px"
@@ -265,7 +267,35 @@ const formData = ref({
audit: '',
subjectName: '',
status: ' ',
resourceValue: ''
resourceValue: '',
answerList: [
{
image: "",
content: "",
contentIn: "",
scoreRate: "",
}
],
fileUploads: [
{
quId: '',
url: '',
fileType: '0',
fileName: ''
},
{
quId: '',
url: '',
fileType: '1',
fileName: ''
},
{
quId: '',
url: '',
fileType: '2',
fileName: ''
}
]
})
const wordPointsFun = ref({
chineseName: '',
@@ -287,11 +317,18 @@ const wordPoints = ref({
let wordPointsInfosList: (typeof wordPoints)[] = []
function fileTypeFormatter(row, column, cellValue) {
if (cellValue === '0') return '素材文件(上传ZIP)'
if (cellValue === '1') return '考试文件'
if (cellValue === '2') return '结果文件'
return '未知类型'
}
const documentList = ref([
{
quId: '',
url: '',
fileType: '0',
fileName: ''
},
{
quId: '',
url: '',
@@ -340,10 +377,10 @@ const handleCheckChange = (data: Tree, checked: boolean, indeterminate: boolean)
const addWordInfo = async () => {
// http://115.120.213.238:9000/exam/9f7d8f5d7c68cc2bfd03a23c19045efe7ba13a4bebeb833abece146908bcd0c6.docx documentList.value[1].url
if (documentList.value[1].url == '' || documentList.value[1].url == null) {
return
}
const res = await WordApi.getWordInfo(documentList.value[1].url)
// if (documentList.value[2].url == '' || documentList.value[2].url == null) {
// return
// }
const res = await WordApi.getWordInfo(documentList.value[2].url)
wordPointsList.value = []
wordPointsList.value.push(...handleTree(res))
dialogFormVisibleWordInfo.value = true
@@ -384,12 +421,15 @@ const submitWordPoints = async () => {
function: []
}
wordPointsInfosList = []
list.value = res
console.log(list.value)
for (let i = 0; i < res.length; i++) {
list.value.push(res[i])
}
dialogFormVisibleWordInfo.value = false
dialogFormVisibleWordInfos.value = false
}
const formRules = reactive<FormRules>({
// specialtyName: [{ required: true, message: '用户名称不能为空', trigger: 'blur' }]
status: [{ required: true, message: '启用状态必填', trigger: 'blur' }]
})
const formRef = ref() // 表单 Ref
// 左侧试题描述
@@ -399,10 +439,6 @@ const rightActiveName = ref('annex')
const rightHandleClick = (tab, e) => {
rightActiveName.value = tab.paneName.value
}
const radio = ref('A')
// 保留选项的值
const optionsContent = reactive({})
// 关键字
const multipleKeywordSelection = ref([] as any)
const handleKeywordSelectionChange = (val: any) => {
@@ -477,9 +513,10 @@ const mappedNumber = computed(() => {
/** 提交表单 */
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
const submitForm = async () => {
const values = Object.values(optionsContent)
formData.value.answerList = list.value
formData.value.fileUploads = documentList.value
const values = Object.values(formData)
console.log(values)
// 校验表单
if (!formRef) return
const valid = await formRef.value.validate()
@@ -518,9 +555,43 @@ const resetForm = () => {
audit: '',
subjectName: '',
status: '',
resourceValue: ''
resourceValue: '',
answerList: [
{
image: "",
content: "",
contentIn: "",
scoreRate: "",
}
],
fileUploads: [
{
quId: '',
url: '',
fileType: '0',
fileName: ''
},
{
quId: '',
url: '',
fileType: '1',
fileName: ''
},
{
quId: '',
url: '',
fileType: '2',
fileName: ''
}
]
}
documentList.value = [
{
quId: '',
url: '',
fileType: '0',
fileName: ''
},
{
quId: '',
url: '',