Files
AI-interview-web/src/views/question-category/components/Create.vue
2025-09-11 22:33:15 +08:00

99 lines
2.0 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div class="category-create">
<div class="page-header">
<h2>新增题型分类</h2>
<el-button @click="goBack">返回列表</el-button>
</div>
<div class="page-content">
<CategoryForm
ref="formRef"
:category-options="categoryOptions"
@submit="handleSubmit"
@cancel="goBack"
/>
</div>
</div>
</template>
<script>
import { ref, onMounted } from 'vue'
import { useRouter, useRoute } from 'vue-router'
import { ElMessage } from 'element-plus'
import CategoryForm from './CategoryForm.vue'
import { questionCategoryApi } from '@/api/question-category.js'
export default {
name: 'QuestionCategoryCreate',
components: {
CategoryForm
},
setup() {
const router = useRouter()
const route = useRoute()
const formRef = ref()
const categoryOptions = ref([])
const loadCategoryOptions = async () => {
try {
const data = await questionCategoryApi.getOptions()
categoryOptions.value = data
} catch (error) {
console.error('加载分类选项失败:', error)
}
}
const handleSubmit = async (formData) => {
try {
// 如果有parentId参数优先使用
if (route.query.parentId) {
formData.parent_id = parseInt(route.query.parentId)
}
await questionCategoryApi.create(formData)
ElMessage.success('创建成功')
goBack()
} catch (error) {
console.error('创建分类失败:', error)
}
}
const goBack = () => {
router.push('/question-category')
}
onMounted(() => {
loadCategoryOptions()
})
return {
formRef,
categoryOptions,
handleSubmit,
goBack
}
}
}
</script>
<style scoped>
.category-create {
padding: 20px;
}
.page-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 24px;
}
.page-header h2 {
margin: 0;
color: #303133;
}
.page-content {
max-width: 600px;
}
</style>