fix: 添加邮箱出题页面事件

This commit is contained in:
陆光LG
2025-08-17 20:03:19 +08:00
parent f148ea9938
commit 59b659f77b
17 changed files with 1160 additions and 60 deletions

View File

@@ -198,13 +198,13 @@
</div>
<div>
<el-checkbox
v-model="formData.questionScores.isResult"
v-model="formData.questionScores.isCompile"
label="使用测试用例"
size="large"
true-value="0"
false-value="1"
/>
<div v-if="formData.questionScores.isResult === '0'">
<div v-if="formData.questionScores.isCompile === '0'">
<div class="flex" style="margin-left: 20px">
测试用例得分比例
<el-input

View File

@@ -118,7 +118,7 @@
<el-tab-pane name="answer">
<template #label>
<div class="custom-tabs-label">
<p>试题考点</p>
<p>邮件配置</p>
<el-dropdown>
<span class="el-dropdown-link" @click.stop="false">
<div class="setting_icon"></div>
@@ -126,7 +126,7 @@
<template #dropdown>
<el-dropdown-menu>
<el-dropdown-item>
<el-button @click="addEmailInfo">添加</el-button>
<el-button @click="addEmailInfo">设置</el-button>
</el-dropdown-item>
</el-dropdown-menu>
</template>
@@ -141,8 +141,13 @@
@selection-change="handleSelectionChange"
>
<!-- <el-table-column type="selection" width="55" /> -->
<el-table-column label="考点" align="center" prop="contentIn" width="360px" />
<el-table-column label="权值" align="center" prop="scoreRate" width="100px" />
<el-table-column
label="配置项"
align="center"
prop="contentIn"
width="360px"
/>
<el-table-column label="配置值" align="center" prop="content" width="100px" />
<el-table-column label="操作" align="center" width="100px">
<template #default="scope">
<el-button type="primary" link @click="handleDelete(scope.row)">
@@ -278,7 +283,13 @@
</div>
<!-- 表单弹窗添加/修改 -->
<FileForm ref="FileRef" @success="handleUploadSuccess" />
<el-dialog v-model="dialogFormVisibleWordInfo" title="考点设置" width="1500px" style="overflow: scroll;">
<el-dialog
v-model="dialogFormVisibleWordInfo"
title="邮件设置"
width="1500px"
style="overflow: scroll"
@close="handleEmailForm"
>
<Email />
</el-dialog>
</template>
@@ -292,12 +303,15 @@ import Email from '@/components/Email/index.vue'
import * as SpecialtyApi from '@/api/points'
import { defaultProps, handleTree } from '@/utils/tree'
import { cloneDeep } from 'lodash-es'
import { useEmailStore } from '@/store/modules/email'
const emailStore = useEmailStore()
defineOptions({ name: 'WpsWordFrom' })
const wordPointsList = ref<Tree[]>([]) // 树形结构
const wordPointsInfoList = ref<Tree[]>([]) // 树形结构
const list = ref([]) // 列表的数
const list = ref<any[]>([]) // 列表的数
const { t } = useI18n() // 国际化
const message = useMessage() // 消息弹窗
const loading = ref(false) // 列表的加载中
@@ -306,7 +320,7 @@ const isLoading = ref(false)
const dialogTitle = ref('') // 弹窗的标题
const formLoading = ref(false) // 表单的加载中1修改时的数据加载2提交的按钮禁用
const formType = ref('') // 表单的类型create - 新增update - 修改
const formData = ref({
const formData = ref<any>({
pointNamesVo: '',
chapteridDictTextVo: '',
content: '',
@@ -395,10 +409,14 @@ const documentList = ref([
])
const dialogFormVisibleWordInfo = ref(false)
const addEmailInfo = async () => {
dialogFormVisibleWordInfo.value = true
}
const handleEmailForm = () => {
list.value = [...emailStore.emailFormList]
// emailStore.clearEmailData() // 如果需要清空数据,可以取消注释
}
const handleDelete = (row) => {
console.log(row)
for (let i = 0; i < list.value.length; i++) {
@@ -519,15 +537,15 @@ const open = async (queryParams: any, type: string, id?: number) => {
}
defineExpose({ open }) // 提供 open 方法,用于打开弹窗
// 转换函数:将大写字母 A-Z 映射为 0-25
const mappedNumber = computed(() => {
const char = radio.value.toUpperCase()
const code = char.charCodeAt(0)
if (code >= 65 && code <= 90) {
return code - 65
} else {
return '请输入 A-Z 的字母'
}
})
// const mappedNumber = computed(() => {
// const char = radio.value.toUpperCase()
// const code = char.charCodeAt(0)
// if (code >= 65 && code <= 90) {
// return code - 65
// } else {
// return '请输入 A-Z 的字母'
// }
// })
/** 提交表单 */
const emit = defineEmits(['success']) // 定义 success 事件,用于操作成功后的回调
const submitForm = async () => {