Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Kwan的解忧杂货铺@新空间代码工作室
vue-kwan-admin
提交
6848aaf7
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看板
提交
6848aaf7
编写于
10月 07, 2023
作者:
Kwan的解忧杂货铺@新空间代码工作室
🐭
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
算法
上级
27e8d5d4
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
324 addition
and
237 deletion
+324
-237
src/components/menus/MyAlgorithmic.vue
src/components/menus/MyAlgorithmic.vue
+324
-237
未找到文件。
src/components/menus/MyAlgorithmic.vue
浏览文件 @
6848aaf7
...
@@ -5,14 +5,28 @@
...
@@ -5,14 +5,28 @@
<el-dialog
title=
"新增算法问题"
:visible.sync=
"dialogFormVisible"
style=
"width: 100%"
>
<el-dialog
title=
"新增算法问题"
:visible.sync=
"dialogFormVisible"
style=
"width: 100%"
>
<el-form
:model=
"form"
class=
"custom-form"
>
<el-form
:model=
"form"
class=
"custom-form"
>
<el-form-item
label=
"算法问题"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-form-item
label=
"算法问题"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.question"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
<el-input
v-model=
"form.question
Name
"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
</el-form-item>
<br
/>
<el-form-item
label=
"问题类型"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-form-item
label=
"问题类型"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-select
v-model=
"form.questionType"
placeholder=
"请选择活动区域"
>
<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-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-form-item
label=
"重要程度"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.degreeOfImportance"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"难易程度"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.degreeOfDifficulty"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"难易分数"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.difficultyOfScore"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"力扣号"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.leetcodeNumber"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"力扣链接"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.leetcodeLink"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
<el-button
@
click=
"dialogFormVisible = false"
>
取 消
</el-button>
...
@@ -23,7 +37,7 @@
...
@@ -23,7 +37,7 @@
<div
class=
"red-title"
slot=
"title"
>
批量新增算法问题(多个问题换行填写)
</div>
<div
class=
"red-title"
slot=
"title"
>
批量新增算法问题(多个问题换行填写)
</div>
<el-form
:model=
"form"
class=
"custom-form"
>
<el-form
:model=
"form"
class=
"custom-form"
>
<el-form-item
label=
"算法问题"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-form-item
label=
"算法问题"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
type=
"textarea"
v-model=
"form.question"
autocomplete=
"off"
:rows=
"5"
:cols=
"30"
style=
"width: 100%"
></el-input>
<el-input
type=
"textarea"
v-model=
"form.question
Name
"
autocomplete=
"off"
:rows=
"5"
:cols=
"30"
style=
"width: 100%"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
...
@@ -31,6 +45,25 @@
...
@@ -31,6 +45,25 @@
<el-button
type=
"primary"
@
click=
"handleConfirm(1)"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"handleConfirm(1)"
>
确 定
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<el-dialog
title=
"随机一题"
:visible.sync=
"randomFormVisible"
style=
"width: 100%"
>
<el-descriptions
class=
"margin-top"
title=
"随机选择的题目如下:"
:column=
"3"
border
>
<el-descriptions-item
v-model=
"randomAlgorithmic.questionName"
>
<template
slot=
"label"
>
题目名称
</
template
>
{{ randomAlgorithmic.questionName }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
力扣号
</
template
>
{{ randomAlgorithmic.leetcodeNumber }}
</el-descriptions-item>
<el-descriptions-item
show-overflow-tooltip
>
<
template
slot=
"label"
>
力扣链接
</
template
>
<a
:href=
"randomAlgorithmic.leetcodeLink"
target=
"_blank"
>
{{ randomAlgorithmic.leetcodeLink }}
</a>
</el-descriptions-item>
</el-descriptions>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"randomFormVisible = false"
>
取 消
</el-button>
</div>
</el-dialog>
<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.questionName"
placeholder=
"请输入问题"
@
keydown.enter.native=
"interviewPage"
></el-input>
<el-input
clearable
v-model=
"formInline.questionName"
placeholder=
"请输入问题"
@
keydown.enter.native=
"interviewPage"
></el-input>
...
@@ -41,6 +74,9 @@
...
@@ -41,6 +74,9 @@
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"interviewPage"
>
查询
</el-button>
<el-button
type=
"primary"
@
click=
"interviewPage"
>
查询
</el-button>
</el-form-item>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"prepareRandom"
>
随机一题
</el-button>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"prepareAdd"
>
新增
</el-button>
<el-button
type=
"primary"
@
click=
"prepareAdd"
>
新增
</el-button>
</el-form-item>
</el-form-item>
...
@@ -72,24 +108,38 @@
...
@@ -72,24 +108,38 @@
</el-table-column>
</el-table-column>
<el-table-column
prop=
"操作"
label=
"操作"
width=
"180"
>
<el-table-column
prop=
"操作"
label=
"操作"
width=
"180"
>
<
template
slot-scope=
"props"
>
<
template
slot-scope=
"props"
>
<el-button
type=
"success"
@
click.prevent=
"preEdit(props.row.id, props.row.question
, props.row.questionTypeName
)"
width=
"200"
>
编辑
</el-button>
<el-button
type=
"success"
@
click.prevent=
"preEdit(props.row.id, props.row.question
Name, props.row.questionTypeName, props.row.degreeOfImportance, props.row.degreeOfDifficulty, props.row.difficultyOfScore, props.row.leetcodeNumber, props.row.leetcodeLink
)"
width=
"200"
>
编辑
</el-button>
<el-dialog
title=
"编辑算法问题"
:visible.sync=
"editVisible"
>
<el-dialog
title=
"编辑算法问题"
:visible.sync=
"editVisible"
>
<el-form
:model=
"form"
>
<el-form
:model=
"form"
>
<el-form-item
label=
"算法问题"
:label-width=
"formLabelWidth"
>
<el-form-item
label=
"算法问题"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
class=
"custom-textarea"
type=
"textarea"
v-model=
"form.question"
autocomplete=
"off"
:rows=
"5"
:cols=
"30"
style=
"text-align: left
"
></el-input>
<el-input
v-model=
"form.questionName"
autocomplete=
"off"
style=
"width: 100%
"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"问题类型"
:label-width=
"formLabelWidth"
>
<el-form-item
label=
"问题类型"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-select
v-model=
"form.questionType"
placeholder=
"请选择
问题类型"
style=
"text-align: left
"
>
<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-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-form-item
label=
"重要程度"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.degreeOfImportance"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"难易程度"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.degreeOfDifficulty"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"难易分数"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.difficultyOfScore"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"力扣号"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.leetcodeNumber"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
<el-form-item
label=
"力扣链接"
:label-width=
"formLabelWidth"
class=
"form-item"
>
<el-input
v-model=
"form.leetcodeLink"
autocomplete=
"off"
style=
"width: 100%"
></el-input>
</el-form-item>
</el-form>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"editVisible = false"
>
取 消
</el-button>
<el-button
@
click=
"editVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"editConfirm"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"editConfirm"
>
确 定
</el-button>
</div>
</div>
</el-dialog>
</el-dialog>
<el-button
type=
"danger"
@
click=
"prepareDelete(props.row.id)"
>
删除
</el-button>
<el-button
type=
"danger"
@
click=
"prepareDelete(props.row.id)"
>
删除
</el-button>
<el-dialog
title=
"提示"
:visible.sync=
"dialogVisible"
width=
"30%"
:before-close=
"handleClose"
>
<el-dialog
title=
"提示"
:visible.sync=
"dialogVisible"
width=
"30%"
:before-close=
"handleClose"
>
<span>
确认删除吗
</span>
<span>
确认删除吗
</span>
...
@@ -117,6 +167,11 @@ export default {
...
@@ -117,6 +167,11 @@ export default {
return
{
return
{
// 用户列表数据
// 用户列表数据
algorithmicList
:
[],
algorithmicList
:
[],
randomAlgorithmic
:
{
questionName
:
''
,
leetcodeNumber
:
''
,
leetcodeLink
:
''
,
},
loading
:
false
,
loading
:
false
,
elementui_page_component_key
:
0
,
elementui_page_component_key
:
0
,
currentPage
:
Number
(
localStorage
.
getItem
(
'
lastPage
'
))
||
1
,
currentPage
:
Number
(
localStorage
.
getItem
(
'
lastPage
'
))
||
1
,
...
@@ -129,10 +184,16 @@ export default {
...
@@ -129,10 +184,16 @@ export default {
questionType
:
0
,
questionType
:
0
,
// 新增的内容
// 新增的内容
dialogFormVisible
:
false
,
dialogFormVisible
:
false
,
randomFormVisible
:
false
,
dialogMutiFormVisible
:
false
,
dialogMutiFormVisible
:
false
,
form
:
{
form
:
{
question
:
''
,
questionName
:
''
,
questionType
:
0
,
questionType
:
0
,
degreeOfImportance
:
5
,
degreeOfDifficulty
:
1
,
difficultyOfScore
:
1200
,
leetcodeNumber
:
''
,
leetcodeLink
:
''
,
},
},
formLabelWidth
:
'
120px
'
,
formLabelWidth
:
'
120px
'
,
dialogVisible
:
false
,
dialogVisible
:
false
,
...
@@ -141,7 +202,7 @@ export default {
...
@@ -141,7 +202,7 @@ export default {
}
}
},
},
watch
:
{
watch
:
{
'
formInline.question
'
(
newVal
)
{
'
formInline.questionName
'
(
newVal
)
{
if
(
newVal
===
''
)
{
if
(
newVal
===
''
)
{
this
.
currentPage
=
1
this
.
currentPage
=
1
localStorage
.
setItem
(
'
lastPage
'
,
this
.
currentPage
)
localStorage
.
setItem
(
'
lastPage
'
,
this
.
currentPage
)
...
@@ -158,12 +219,17 @@ export default {
...
@@ -158,12 +219,17 @@ export default {
mounted
()
{},
mounted
()
{},
methods
:
{
methods
:
{
prepareAdd
()
{
prepareAdd
()
{
this
.
form
.
question
=
''
this
.
form
.
questionName
=
''
this
.
form
.
questionType
=
0
this
.
form
.
questionType
=
0
this
.
dialogFormVisible
=
true
this
.
dialogFormVisible
=
true
},
},
prepareRandom
()
{
this
.
randomAlgorithmic
=
[]
this
.
randomFormVisible
=
true
this
.
interviewRandom
()
},
prepareMutiAdd
()
{
prepareMutiAdd
()
{
this
.
form
.
question
=
''
this
.
form
.
questionName
=
''
this
.
form
.
questionType
=
0
this
.
form
.
questionType
=
0
this
.
dialogMutiFormVisible
=
true
this
.
dialogMutiFormVisible
=
true
},
},
...
@@ -172,8 +238,13 @@ export default {
...
@@ -172,8 +238,13 @@ export default {
this
.
currentRowId
=
id
this
.
currentRowId
=
id
this
.
dialogVisible
=
true
this
.
dialogVisible
=
true
},
},
preEdit
(
id
,
question
,
questionTypeName
)
{
preEdit
(
id
,
questionName
,
questionTypeName
,
degreeOfImportance
,
degreeOfDifficulty
,
difficultyOfScore
,
leetcodeNumber
,
leetcodeLink
)
{
this
.
form
.
question
=
question
this
.
form
.
questionName
=
questionName
this
.
form
.
degreeOfImportance
=
degreeOfImportance
this
.
form
.
degreeOfDifficulty
=
degreeOfDifficulty
this
.
form
.
difficultyOfScore
=
difficultyOfScore
this
.
form
.
leetcodeNumber
=
leetcodeNumber
this
.
form
.
leetcodeLink
=
leetcodeLink
// 定义一个映射(map)来存储 questionType 到 name 的转换
// 定义一个映射(map)来存储 questionType 到 name 的转换
const
questionTypeToNameMap
=
{}
const
questionTypeToNameMap
=
{}
...
@@ -200,14 +271,18 @@ export default {
...
@@ -200,14 +271,18 @@ export default {
async
addQuestion
(
addType
)
{
async
addQuestion
(
addType
)
{
try
{
try
{
this
.
loading
=
true
this
.
loading
=
true
const
{
data
:
res
}
=
await
axios
.
post
(
'
http://localhost:8888/algorithmicProblem/add
'
,
{
const
{
data
:
res
}
=
await
axios
.
post
(
'
http://localhost:8888/algorithmicProblem/add
'
,
{
addType
:
addType
,
addType
:
addType
,
question
:
this
.
form
.
question
,
questionName
:
this
.
form
.
questionName
,
questionType
:
this
.
form
.
questionType
,
questionType
:
this
.
form
.
questionType
,
degreeOfImportance
:
this
.
form
.
degreeOfImportance
,
degreeOfDifficulty
:
this
.
form
.
degreeOfDifficulty
,
difficultyOfScore
:
this
.
form
.
difficultyOfScore
,
leetcodeNumber
:
this
.
form
.
leetcodeNumber
,
leetcodeLink
:
this
.
form
.
leetcodeLink
,
})
})
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
form
.
question
=
''
this
.
form
.
questionName
=
''
this
.
form
.
questionType
=
0
this
.
form
.
questionType
=
0
this
.
interviewPage
()
// 确保这个方法是有效的
this
.
interviewPage
()
// 确保这个方法是有效的
}
else
{
}
else
{
...
@@ -215,7 +290,7 @@ export default {
...
@@ -215,7 +290,7 @@ export default {
this
.
errorMsg
(
res
.
message
)
this
.
errorMsg
(
res
.
message
)
}
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
'
An error occurred while adding the question
:
'
,
error
)
console
.
error
(
'
An error occurred while adding the questionName
:
'
,
error
)
// 异常处理逻辑
// 异常处理逻辑
}
finally
{
}
finally
{
this
.
loading
=
false
this
.
loading
=
false
...
@@ -231,14 +306,18 @@ export default {
...
@@ -231,14 +306,18 @@ export default {
async
editConfirm
()
{
async
editConfirm
()
{
try
{
try
{
this
.
loading
=
true
this
.
loading
=
true
const
{
data
:
res
}
=
await
axios
.
post
(
'
http://localhost:8888/algorithmicProblem/update
'
,
{
const
{
data
:
res
}
=
await
axios
.
post
(
'
http://localhost:8888/algorithmicProblem/update
'
,
{
id
:
this
.
currentRowId
,
id
:
this
.
currentRowId
,
question
:
this
.
form
.
question
,
questionName
:
this
.
form
.
questionName
,
questionType
:
this
.
form
.
questionType
,
questionType
:
this
.
form
.
questionType
,
degreeOfImportance
:
this
.
form
.
degreeOfImportance
,
degreeOfDifficulty
:
this
.
form
.
degreeOfDifficulty
,
difficultyOfScore
:
this
.
form
.
difficultyOfScore
,
leetcodeNumber
:
this
.
form
.
leetcodeNumber
,
leetcodeLink
:
this
.
form
.
leetcodeLink
,
})
})
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
form
.
question
=
''
this
.
form
.
questionName
=
''
this
.
form
.
questionType
=
0
this
.
form
.
questionType
=
0
this
.
editVisible
=
false
this
.
editVisible
=
false
currentRowId
:
null
currentRowId
:
null
...
@@ -247,7 +326,7 @@ export default {
...
@@ -247,7 +326,7 @@ export default {
console
.
error
(
'
Received non-200 status code
'
,
res
)
console
.
error
(
'
Received non-200 status code
'
,
res
)
}
}
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
error
(
'
An error occurred while adding the question
:
'
,
error
)
console
.
error
(
'
An error occurred while adding the questionName
:
'
,
error
)
// 异常处理逻辑
// 异常处理逻辑
}
finally
{
}
finally
{
this
.
loading
=
false
this
.
loading
=
false
...
@@ -295,8 +374,6 @@ export default {
...
@@ -295,8 +374,6 @@ export default {
this
.
options
.
forEach
((
option
)
=>
{
this
.
options
.
forEach
((
option
)
=>
{
questionTypeToNameMap
[
option
.
questionType
]
=
option
.
name
questionTypeToNameMap
[
option
.
questionType
]
=
option
.
name
})
})
console
.
log
(
res
.
result
.
content
)
console
.
log
(
questionTypeToNameMap
)
// 修改 algorithmicList 中的每一个元素,将 questionType 转换为 name
// 修改 algorithmicList 中的每一个元素,将 questionType 转换为 name
res
.
result
.
content
.
forEach
((
item
)
=>
{
res
.
result
.
content
.
forEach
((
item
)
=>
{
item
.
questionTypeName
=
questionTypeToNameMap
[
item
.
questionType
]
||
'
Unknown
'
item
.
questionTypeName
=
questionTypeToNameMap
[
item
.
questionType
]
||
'
Unknown
'
...
@@ -305,6 +382,16 @@ export default {
...
@@ -305,6 +382,16 @@ export default {
}
}
this
.
loading
=
false
this
.
loading
=
false
},
},
async
interviewRandom
()
{
this
.
loading
=
true
const
{
data
:
res
}
=
await
axios
.
get
(
'
http://localhost:8888/algorithmicProblem/random
'
,
{
params
:
{}
})
if
(
res
.
code
===
200
)
{
this
.
randomAlgorithmic
.
questionName
=
res
.
result
.
questionName
this
.
randomAlgorithmic
.
leetcodeNumber
=
res
.
result
.
leetcodeNumber
this
.
randomAlgorithmic
.
leetcodeLink
=
res
.
result
.
leetcodeLink
}
this
.
loading
=
false
},
getClassForValue
(
value
)
{
getClassForValue
(
value
)
{
if
(
value
===
'
链表
'
)
{
if
(
value
===
'
链表
'
)
{
return
'
reddish-purple-value
'
return
'
reddish-purple-value
'
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录