Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Kwan的解忧杂货铺@新空间代码工作室
vue-kwan-admin
提交
ee937db0
V
vue-kwan-admin
项目概览
Kwan的解忧杂货铺@新空间代码工作室
/
vue-kwan-admin
通知
38
Star
6
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue-kwan-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
ee937db0
编写于
9月 08, 2023
作者:
Kwan的解忧杂货铺@新空间代码工作室
🐭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加
上级
225d5507
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
150 addition
and
157 deletion
+150
-157
src/components/MyLogin.vue
src/components/MyLogin.vue
+1
-1
src/components/menus/MyChat.vue
src/components/menus/MyChat.vue
+1
-1
src/components/menus/MyInterview.vue
src/components/menus/MyInterview.vue
+146
-153
src/components/subcomponents/MyAside.vue
src/components/subcomponents/MyAside.vue
+1
-1
src/router/index.js
src/router/index.js
+1
-1
未找到文件。
src/components/MyLogin.vue
浏览文件 @
ee937db0
...
...
@@ -43,7 +43,7 @@ export default {
this
.
password
=
''
},
login
()
{
if
(
this
.
username
===
'
admin
'
&&
this
.
password
===
'
6666
88
'
)
{
if
(
this
.
username
===
'
admin
'
&&
this
.
password
===
'
6666
66
'
)
{
// 登录成功
// 1. 存储 token
localStorage
.
setItem
(
'
token
'
,
'
Bearer xxxx
'
)
...
...
src/components/menus/MyChat.vue
浏览文件 @
ee937db0
...
...
@@ -119,7 +119,7 @@ export default {
console
.
log
(
res
)
if
(
res
.
code
===
200
)
{
this
.
userlist
=
res
.
result
.
content
this
.
total
=
res
.
result
.
total
this
.
total
=
res
.
result
.
total
Elements
localStorage
.
setItem
(
'
lastPage
'
,
this
.
currentPage
)
localStorage
.
setItem
(
'
lastQuestion
'
,
this
.
formInline
.
question
)
}
...
...
src/components/menus/MyInterview.vue
浏览文件 @
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-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>
</el-form-item>
<el-select
v-model=
"
picType"
placeholder=
"请选择"
@
change=
"queryPic
"
>
<el-option
v-for=
"item in options"
:key=
"item.
value"
:label=
"item.label"
:value=
"item.valu
e"
></el-option>
<el-select
v-model=
"
questionType"
placeholder=
"请选择"
@
change=
"initCartList
"
>
<el-option
v-for=
"item in options"
:key=
"item.
questionType"
:label=
"item.name"
:value=
"item.questionTyp
e"
></el-option>
</el-select>
<el-form-item>
<el-button
type=
"primary"
@
click=
"initCartList"
>
查询
</el-button>
</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>
<el-table
border
:data=
"userlist"
v-loading=
"loading"
>
<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=
"response"
label=
"答案"
show-overflow-tooltip
></el-table-column>
--
>
<el-table-column
prop=
"question"
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"
>
<template
slot-scope=
"props"
>
{{
props
.
row
.
createTime
|
dateFormat
}}
</
template
>
</el-table-column>
<
el-table-column
prop=
"详情"
label=
"详情"
width=
"180
"
>
<
!-- <el-table-column prop="详情" label="详情" width="180" align="center
">
<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>
</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>
...
...
@@ -42,154 +58,131 @@
<
script
>
import
axios
from
'
axios
'
export
default
{
name
:
'
MyInterview
'
,
name
:
'
MyInterview
'
,
data
()
{
return
{
// 用户列表数据
userlist
:
[],
loading
:
false
,
elementui_page_component_key
:
0
,
currentPage
:
Number
(
localStorage
.
getItem
(
'
lastPage
'
))
||
1
,
pageSize
:
9
,
total
:
0
,
formInline
:
{
question
:
''
,
},
options
:
[],
questionType
:
0
,
// 新增的内容
dialogFormVisible
:
false
,
form
:
{
question
:
''
,
questionType
:
0
,
},
formLabelWidth
:
'
120px
'
,
}
},
watch
:
{
'
formInline.question
'
(
newVal
)
{
if
(
newVal
===
''
)
{
this
.
currentPage
=
1
localStorage
.
setItem
(
'
lastPage
'
,
this
.
currentPage
)
this
.
initCartList
()
}
},
},
created
()
{
this
.
initCartList
()
this
.
getQuestionType
()
},
mounted
()
{},
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
}
},
data
()
{
return
{
// 用户列表数据
userlist
:
[],
loading
:
false
,
elementui_page_component_key
:
0
,
currentPage
:
Number
(
localStorage
.
getItem
(
'
lastPage
'
))
||
1
,
pageSize
:
9
,
total
:
0
,
formInline
:
{
question
:
''
,
},
options
:
[
{
value
:
0
,
label
:
'
全部
'
,
},
{
value
:
1
,
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
:
'
其他
'
,
},
],
picType
:
0
,
}
},
watch
:
{
'
formInline.question
'
(
newVal
)
{
if
(
newVal
===
''
)
{
this
.
currentPage
=
1
localStorage
.
setItem
(
'
lastPage
'
,
this
.
currentPage
)
this
.
initCartList
()
}
},
},
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
()
})
},
mounted
()
{
this
.
currentPage
=
Number
(
localStorage
.
getItem
(
'
lastPage
'
))
||
1
this
.
formInline
.
question
=
localStorage
.
getItem
(
'
lastQuestion
'
)
this
.
elementui_page_component_key
++
},
methods
:
{
async
onDelete
(
id
)
{
this
.
loading
=
true
const
{
data
:
res
}
=
await
axios
.
get
(
'
http://localhost:8080/interviewQuestion/delete
'
,
{
params
:
{
id
:
id
,
},
})
this
.
initCartList
()
this
.
loading
=
false
},
refreshPage
()
{
location
.
reload
()
},
gotoDetail
(
id
)
{
this
.
$router
.
push
(
'
/home/chatinfo/
'
+
id
)
},
addChat
()
{
this
.
$router
.
push
(
'
/home/addChat/
'
)
},
async
onDelete
(
id
)
{
this
.
loading
=
true
const
{
data
:
res
}
=
await
axios
.
get
(
'
http://localhost:8080/interviewQuestion/delete
'
,
{
params
:
{
id
:
id
,
},
})
this
.
initCartList
()
this
.
loading
=
false
},
refreshPage
()
{
location
.
reload
()
},
gotoDetail
(
id
)
{
this
.
$router
.
push
(
'
/home/chatinfo/
'
+
id
)
},
addChat
()
{
this
.
$router
.
push
(
'
/home/addChat/
'
)
},
async
initCartList
()
{
this
.
loading
=
true
const
{
data
:
res
}
=
await
axios
.
get
(
'
http://localhost:8080/interviewQuestion/page
'
,
{
params
:
{
page
:
this
.
currentPage
,
pageSize
:
this
.
pageSize
,
question
:
this
.
formInline
.
question
,
type
:
this
.
picType
,
},
})
console
.
log
(
res
)
if
(
res
.
code
===
200
)
{
this
.
userlist
=
res
.
result
.
content
this
.
total
=
res
.
result
.
total
localStorage
.
setItem
(
'
lastPage
'
,
this
.
currentPage
)
localStorage
.
setItem
(
'
lastQuestion
'
,
this
.
formInline
.
question
)
}
this
.
loading
=
false
},
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
},
handleCurrentChange
(
currentPage
)
{
this
.
currentPage
=
currentPage
this
.
initCartList
()
},
},
async
initCartList
()
{
this
.
loading
=
true
const
{
data
:
res
}
=
await
axios
.
get
(
'
http://localhost:8080/interviewQuestion/page
'
,
{
params
:
{
page
:
this
.
currentPage
,
pageSize
:
this
.
pageSize
,
question
:
this
.
formInline
.
question
,
questionType
:
this
.
questionType
,
},
})
if
(
res
.
code
===
200
)
{
this
.
userlist
=
res
.
result
.
content
this
.
total
=
res
.
result
.
totalElements
// 定义一个映射(map)来存储 questionType 到 name 的转换
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
},
handleCurrentChange
(
currentPage
)
{
this
.
currentPage
=
currentPage
this
.
initCartList
()
},
},
}
</
script
>
...
...
src/components/subcomponents/MyAside.vue
浏览文件 @
ee937db0
...
...
@@ -2,7 +2,7 @@
<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"
>
<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>
</el-menu-item>
</router-link>
...
...
src/router/index.js
浏览文件 @
ee937db0
...
...
@@ -35,7 +35,7 @@ const router = new VueRouter({
{
path
:
'
/home
'
,
component
:
Home
,
redirect
:
'
/home/
chat
'
,
redirect
:
'
/home/
interview
'
,
children
:
[
{
path
:
'
users
'
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录