添加

上级 225d5507
...@@ -43,7 +43,7 @@ export default { ...@@ -43,7 +43,7 @@ export default {
this.password = '' this.password = ''
}, },
login() { login() {
if (this.username === 'admin' && this.password === '666688') { if (this.username === 'admin' && this.password === '666666') {
// 登录成功 // 登录成功
// 1. 存储 token // 1. 存储 token
localStorage.setItem('token', 'Bearer xxxx') localStorage.setItem('token', 'Bearer xxxx')
......
...@@ -119,7 +119,7 @@ export default { ...@@ -119,7 +119,7 @@ export default {
console.log(res) console.log(res)
if (res.code === 200) { if (res.code === 200) {
this.userlist = res.result.content this.userlist = res.result.content
this.total = res.result.total this.total = res.result.totalElements
localStorage.setItem('lastPage', this.currentPage) localStorage.setItem('lastPage', this.currentPage)
localStorage.setItem('lastQuestion', this.formInline.question) localStorage.setItem('lastQuestion', this.formInline.question)
} }
......
<template> <template>
<div> <div>
<el-container> <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-main>
<el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item> <el-form-item>
<el-input clearable v-model="formInline.question" placeholder="请输入问题" @keydown.enter.native="initCartList"></el-input> <el-input clearable v-model="formInline.question" placeholder="请输入问题" @keydown.enter.native="initCartList"></el-input>
</el-form-item> </el-form-item>
<el-select v-model="picType" placeholder="请选择" @change="queryPic"> <el-select v-model="questionType" placeholder="请选择" @change="initCartList">
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value"></el-option> <el-option v-for="item in options" :key="item.questionType" :label="item.name" :value="item.questionType"></el-option>
</el-select> </el-select>
<el-form-item> <el-form-item>
<el-button type="primary" @click="initCartList">查询</el-button> <el-button type="primary" @click="initCartList">查询</el-button>
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click.prevent="addChat">新增</el-button> <el-button type="primary" @click="dialogFormVisible = true">新增</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<el-table border :data="userlist" v-loading="loading"> <el-table border :data="userlist" v-loading="loading">
<el-table-column prop="id" label="序号" width="100" sortable></el-table-column> <el-table-column prop="id" label="序号" width="100" sortable></el-table-column>
<el-table-column prop="question" label="问题" show-overflow-tooltip></el-table-column> <el-table-column prop="question" label="面试问题" show-overflow-tooltip></el-table-column>
<!-- <el-table-column prop="response" label="答案" show-overflow-tooltip></el-table-column> --> <el-table-column prop="questionTypeName" label="问题类型" show-overflow-tooltip align="center"></el-table-column>
<el-table-column label="创建时间" width="170"> <el-table-column label="创建时间" width="170">
<template slot-scope="props"> <template slot-scope="props">
{{ props.row.createTime | dateFormat }} {{ props.row.createTime | dateFormat }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="详情" label="详情" width="180"> <!-- <el-table-column prop="详情" label="详情" width="180" align="center">
<template slot-scope="props"> <template slot-scope="props">
<el-button type="success" @click.prevent="gotoDetail(props.row.id)">详情</el-button> <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="danger" @click="onDelete(props.row.id)">删除</el-button>
</template> </template>
</el-table-column> </el-table-column> -->
</el-table> </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-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> </el-main>
...@@ -56,61 +72,15 @@ export default { ...@@ -56,61 +72,15 @@ export default {
formInline: { formInline: {
question: '', question: '',
}, },
options: [ options: [],
{ questionType: 0,
value: 0, // 新增的内容
label: '全部', dialogFormVisible: false,
}, form: {
{ question: '',
value: 1, questionType: 0,
label: '基础知识',
},
{
value: 2,
label: '集合',
},
{
value: 3,
label: 'JVM',
},
{
value: 4,
label: '并发编程',
},
{
value: 5,
label: 'MySql',
},
{
value: 6,
label: 'Redis',
},
{
value: 7,
label: '中间件',
},
{
value: 8,
label: 'Spring',
},
{
value: 9,
label: '微服务',
},
{
value: 10,
label: '分布式',
},
{
value: 11,
label: '项目',
},
{
value: 99,
label: '其他',
}, },
], formLabelWidth: '120px',
picType: 0,
} }
}, },
watch: { watch: {
...@@ -123,28 +93,37 @@ export default { ...@@ -123,28 +93,37 @@ export default {
}, },
}, },
created() { created() {
this.$nextTick(() => {
const foo = this.$route.query.back
const add = this.$route.query.add
if (foo === 'back' && add != 'add') {
this.currentPage = Number(localStorage.getItem('lastPage')) || 1
this.formInline.question = localStorage.getItem('lastQuestion') || ''
} else {
localStorage.setItem('lastPage', 1)
localStorage.setItem('lastQuestion', '')
this.currentPage = 1
this.formInline.question = ''
}
// 调用请求数据的方法
this.initCartList() this.initCartList()
}) this.getQuestionType()
},
mounted() {
this.currentPage = Number(localStorage.getItem('lastPage')) || 1
this.formInline.question = localStorage.getItem('lastQuestion')
this.elementui_page_component_key++
}, },
mounted() {},
methods: { methods: {
handleConfirm() {
this.dialogFormVisible = false // 关闭对话框
this.addQuestion() // 发送请求
},
async addQuestion() {
try {
this.loading = true
const { data: res } = await axios.post('http://localhost:8080/interviewQuestion/add', {
question: this.form.question,
questionType: this.form.questionType,
})
if (res.code === 200) {
this.initCartList() // 确保这个方法是有效的
} else {
console.error('Received non-200 status code', res)
}
} catch (error) {
console.error('An error occurred while adding the question:', error)
// 异常处理逻辑
} finally {
this.loading = false
}
},
async onDelete(id) { async onDelete(id) {
this.loading = true this.loading = true
const { data: res } = await axios.get('http://localhost:8080/interviewQuestion/delete', { const { data: res } = await axios.get('http://localhost:8080/interviewQuestion/delete', {
...@@ -165,6 +144,15 @@ export default { ...@@ -165,6 +144,15 @@ export default {
this.$router.push('/home/addChat/') this.$router.push('/home/addChat/')
}, },
async getQuestionType() {
this.loading = true
const { data: res } = await axios.get('http://localhost:8080/interviewQuestion/questionType', { params: {} })
if (res.code === 200) {
this.options = res.result
}
this.loading = false
},
async initCartList() { async initCartList() {
this.loading = true this.loading = true
const { data: res } = await axios.get('http://localhost:8080/interviewQuestion/page', { const { data: res } = await axios.get('http://localhost:8080/interviewQuestion/page', {
...@@ -172,19 +160,24 @@ export default { ...@@ -172,19 +160,24 @@ export default {
page: this.currentPage, page: this.currentPage,
pageSize: this.pageSize, pageSize: this.pageSize,
question: this.formInline.question, question: this.formInline.question,
type: this.picType, questionType: this.questionType,
}, },
}) })
console.log(res)
if (res.code === 200) { if (res.code === 200) {
this.userlist = res.result.content this.userlist = res.result.content
this.total = res.result.total this.total = res.result.totalElements
localStorage.setItem('lastPage', this.currentPage) // 定义一个映射(map)来存储 questionType 到 name 的转换
localStorage.setItem('lastQuestion', this.formInline.question) const questionTypeToNameMap = {}
this.options.forEach((option) => {
questionTypeToNameMap[option.questionType] = option.name
})
// 修改 userlist 中的每一个元素,将 questionType 转换为 name
this.userlist.forEach((user) => {
user.questionTypeName = questionTypeToNameMap[user.questionType] || 'Unknown'
})
} }
this.loading = false this.loading = false
}, },
handleCurrentChange(currentPage) { handleCurrentChange(currentPage) {
this.currentPage = currentPage this.currentPage = currentPage
this.initCartList() this.initCartList()
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<el-menu default-active="$route.path" class="layout-aside-container" background-color="#fff" text-color="#000" active-text-color="#42b983"> <el-menu default-active="$route.path" class="layout-aside-container" background-color="#fff" text-color="#000" active-text-color="#42b983">
<router-link to="/home/interview"> <router-link to="/home/interview">
<el-menu-item index="/interview" class="left-aside-item"> <el-menu-item index="/interview" class="left-aside-item">
<i class="el-icon-chat-line-square"></i> <i class="el-icon-question"></i>
<span slot="title">面试题管理</span> <span slot="title">面试题管理</span>
</el-menu-item> </el-menu-item>
</router-link> </router-link>
......
...@@ -35,7 +35,7 @@ const router = new VueRouter({ ...@@ -35,7 +35,7 @@ const router = new VueRouter({
{ {
path: '/home', path: '/home',
component: Home, component: Home,
redirect: '/home/chat', redirect: '/home/interview',
children: [ children: [
{ {
path: 'users', path: 'users',
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册