整理

上级 ee937db0
<template>
<div>
<el-container>
<el-dialog title="新增面试问题" :visible.sync="dialogFormVisible">
<el-form :model="form">
<el-form-item label="面试问题" :label-width="formLabelWidth">
<el-input v-model="form.question" autocomplete="off"></el-input>
</el-form-item>
<el-form-item label="问题类型" :label-width="formLabelWidth">
<el-select v-model="form.questionType" placeholder="请选择活动区域">
<el-option v-for="item in options" :key="item.questionType" :label="item.name" :value="item.questionType"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="handleConfirm">确 定</el-button>
</div>
</el-dialog>
<el-main>
<el-dialog title="新增面试问题" :visible.sync="dialogFormVisible" style="width: 100%">
<el-form :model="form" class="custom-form">
<el-form-item label="面试问题" :label-width="formLabelWidth" class="form-item">
<el-input v-model="form.question" autocomplete="off" style="width: 100%"></el-input>
</el-form-item>
<br />
<el-form-item label="问题类型" :label-width="formLabelWidth" class="form-item">
<el-select v-model="form.questionType" placeholder="请选择活动区域">
<el-option v-for="item in options" :key="item.questionType" :label="item.name" :value="item.questionType"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="handleConfirm(0)">确 定</el-button>
</div>
</el-dialog>
<el-dialog class="red-title" :visible.sync="dialogMutiFormVisible">
<div class="red-title" slot="title">批量新增面试问题(多个问题换行填写)</div>
<el-form :model="form" class="custom-form">
<el-form-item label="面试问题" :label-width="formLabelWidth" class="form-item">
<el-input type="textarea" v-model="form.question" autocomplete="off" style="width: 100%"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogMutiFormVisible = false">取 消</el-button>
<el-button type="primary" @click="handleConfirm(1)">确 定</el-button>
</div>
</el-dialog>
<el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item>
<el-input clearable v-model="formInline.question" placeholder="请输入问题" @keydown.enter.native="initCartList"></el-input>
......@@ -29,7 +42,10 @@
<el-button type="primary" @click="initCartList">查询</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="dialogFormVisible = true">新增</el-button>
<el-button type="primary" @click="prepareAdd">新增</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="prepareMutiAdd">批量新增</el-button>
</el-form-item>
</el-form>
<el-table border :data="userlist" v-loading="loading">
......@@ -41,12 +57,36 @@
{{ props.row.createTime | dateFormat }}
</template>
</el-table-column>
<!-- <el-table-column prop="详情" label="详情" width="180" align="center">
<el-table-column prop="操作" label="操作" width="180">
<template slot-scope="props">
<el-button type="success" @click.prevent="gotoDetail(props.row.id)" width="200">详情</el-button>
<el-button type="danger" @click="onDelete(props.row.id)">删除</el-button>
<el-button type="success" @click.prevent="preEdit(props.row.id, props.row.question, props.row.questionTypeName)" width="200">编辑</el-button>
<el-dialog title="编辑面试问题" :visible.sync="editVisible">
<el-form :model="form">
<el-form-item label="面试问题" :label-width="formLabelWidth">
<el-input v-model="form.question" autocomplete="off" style="text-align: left"></el-input>
</el-form-item>
<el-form-item label="问题类型" :label-width="formLabelWidth">
<el-select v-model="form.questionType" placeholder="请选择活动区域" style="text-align: left">
<el-option v-for="item in options" :key="item.questionType" :label="item.name" :value="item.questionType"></el-option>
</el-select>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="editVisible = false">取 消</el-button>
<el-button type="primary" @click="editConfirm">确 定</el-button>
</div>
</el-dialog>
<el-button type="danger" @click="prepareDelete(props.row.id)">删除</el-button>
<el-dialog title="提示" :visible.sync="dialogVisible" width="30%" :before-close="handleClose">
<span>确认删除吗</span>
<span slot="footer" class="dialog-footer">
<el-button @click="dialogVisible = false">取 消</el-button>
<el-button type="primary" @click.prevent="onDelete(currentRowId)">确 定</el-button>
</span>
</el-dialog>
</template>
</el-table-column> -->
</el-table-column>
</el-table>
<el-pagination class="pagination" background :key="elementui_page_component_key" :current-page.sync="currentPage" :page-size="pageSize" :total="total" @current-change="handleCurrentChange"></el-pagination>
</el-main>
......@@ -76,11 +116,15 @@ export default {
questionType: 0,
// 新增的内容
dialogFormVisible: false,
dialogMutiFormVisible: false,
form: {
question: '',
questionType: 0,
},
formLabelWidth: '120px',
dialogVisible: false,
editVisible: false,
currentRowId: null,
}
},
watch: {
......@@ -93,25 +137,96 @@ export default {
},
},
created() {
this.initCartList()
this.getQuestionType()
this.initCartList()
},
mounted() {},
methods: {
handleConfirm() {
prepareAdd() {
this.form.question = ''
this.form.questionType = 0
this.dialogFormVisible = true
},
prepareMutiAdd() {
this.form.question = ''
this.form.questionType = 0
this.dialogMutiFormVisible = true
},
prepareDelete(id) {
this.currentRowId = id
this.dialogVisible = true
},
preEdit(id, question, questionTypeName) {
this.form.question = question
// 定义一个映射(map)来存储 questionType 到 name 的转换
const questionTypeToNameMap = {}
this.options.forEach((option) => {
questionTypeToNameMap[option.name] = option.questionType
})
this.form.questionType = questionTypeToNameMap[questionTypeName]
this.currentRowId = id
this.editVisible = true
},
handleClose(done) {
this.$confirm('确认关闭?')
.then((_) => {
done()
})
.catch((_) => {})
},
handleConfirm(addType) {
this.dialogFormVisible = false // 关闭对话框
this.addQuestion() // 发送请求
this.dialogMutiFormVisible = false
this.addQuestion(addType) // 发送请求
},
async addQuestion() {
async addQuestion(addType) {
try {
this.loading = true
const { data: res } = await axios.post('http://localhost:8080/interviewQuestion/add', {
addType: addType,
question: this.form.question,
questionType: this.form.questionType,
})
if (res.code === 200) {
this.form.question = ''
this.form.questionType = 0
this.initCartList() // 确保这个方法是有效的
} else {
console.error('Received non-200 status code', res)
this.errorMsg(res.message)
}
} catch (error) {
console.error('An error occurred while adding the question:', error)
// 异常处理逻辑
} finally {
this.loading = false
}
},
errorMsg(msg) {
this.$message({
showClose: true,
message: msg,
type: 'error',
})
},
async editConfirm() {
try {
this.loading = true
const { data: res } = await axios.post('http://localhost:8080/interviewQuestion/update', {
id: this.currentRowId,
question: this.form.question,
questionType: this.form.questionType,
})
if (res.code === 200) {
this.form.question = ''
this.form.questionType = 0
this.editVisible = false
currentRowId: null
this.initCartList() // 确保这个方法是有效的
} else {
console.error('Received non-200 status code', res)
......@@ -125,6 +240,7 @@ export default {
},
async onDelete(id) {
this.dialogVisible = false
this.loading = true
const { data: res } = await axios.get('http://localhost:8080/interviewQuestion/delete', {
params: {
......@@ -206,6 +322,12 @@ export default {
font-size: 20px;
}
.red-title {
line-height: 24px;
font-size: 18px;
color: red;
}
.backtop {
position: fixed;
bottom: 50px;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册