Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
S
saas-lab
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
saas-lab
Commits
37f1ea21
提交
37f1ea21
authored
11月 21, 2024
作者:
lhh
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update
上级
7cea37bb
隐藏空白字符变更
内嵌
并排
正在显示
3 个修改的文件
包含
53 行增加
和
6 行删除
+53
-6
api.ts
src/modules/admin/contest/items/api.ts
+11
-2
ScoringExpertsAddDialog.vue
...dmin/contest/items/components/ScoringExpertsAddDialog.vue
+22
-2
ScoringExpertsDialog.vue
...s/admin/contest/items/components/ScoringExpertsDialog.vue
+20
-2
没有找到文件。
src/modules/admin/contest/items/api.ts
浏览文件 @
37f1ea21
...
...
@@ -209,4 +209,14 @@ export function bindExperiment(data: { id: string; experiment_id: any }) {
// 删除绑定的实验
export
function
unbindExperiment
(
data
:
{
id
:
string
,
experiment_id
:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/competition/unbind-experiment'
,
data
)
}
\ No newline at end of file
}
// 获取赛项列表
export
function
getClassList
(
params
?:
{
id
:
string
})
{
return
httpRequest
.
get
(
'/api/resource/v1/backend/competition/classes'
,
{
params
})
}
// 评分专家绑定班级
export
function
bindClass
(
data
:
{
id
:
string
;
expert_id
:
string
;
class_id
:
string
})
{
return
httpRequest
.
post
(
'/api/resource/v1/backend/competition/expert-bind-class'
,
data
)
}
src/modules/admin/contest/items/components/ScoringExpertsAddDialog.vue
浏览文件 @
37f1ea21
<
script
setup
lang=
"ts"
>
import
type
{
FormInstance
,
FormRules
}
from
'element-plus'
import
type
{
ContestItem
}
from
'../types'
import
{
getContestUnbindExpertList
,
getExpert
}
from
'../api'
import
{
getContestUnbindExpertList
,
getExpert
,
getClassList
}
from
'../api'
import
{
useMapStore
}
from
'@/stores/map'
const
emit
=
defineEmits
<
{
...
...
@@ -29,7 +29,13 @@ function fetchInfo(id: string) {
info
=
undefined
}
}
const
classes
:
any
=
$ref
([])
let
classList
:
any
=
$ref
()
onMounted
(()
=>
{
getClassList
({
id
:
detail
.
id
}).
then
(
res
=>
{
classList
=
res
.
data
})
fetchList
()
})
...
...
@@ -46,7 +52,16 @@ const rules = ref<FormRules>({
// 添加
function
handleSubmit
()
{
formRef
?.
validate
().
then
(()
=>
{
emit
(
'add'
,
Object
.
assign
(
info
,
{
info
:
{
role
:
form
.
role
,
id
:
'0'
},
expert_id
:
form
.
id
,
id
:
'0'
}))
const
classesList
=
classList
.
filter
((
item
:
{
id
:
string
})
=>
classes
.
includes
(
item
.
id
))
emit
(
'add'
,
Object
.
assign
(
info
,
{
info
:
{
role
:
form
.
role
,
id
:
'0'
,
class_id
:
classes
.
toString
()
},
expert_id
:
form
.
id
,
id
:
'0'
,
class_info
:
classesList
})
)
emit
(
'update:modelValue'
,
false
)
})
}
...
...
@@ -66,6 +81,11 @@ function handleSubmit() {
<el-option
v-for=
"item in list"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"添加班级"
>
<el-select
multiple
v-model=
"classes"
style=
"width: 100%"
>
<el-option
v-for=
"item in classList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<template
v-if=
"info"
>
<el-form-item
label=
"联系电话"
>
{{
info
.
mobile
}}
</el-form-item>
<el-form-item
label=
"所在单位"
>
{{
info
.
company
}}
</el-form-item>
...
...
src/modules/admin/contest/items/components/ScoringExpertsDialog.vue
浏览文件 @
37f1ea21
...
...
@@ -40,6 +40,7 @@ const listOptions = $computed(() => {
return
{
hasPagination
:
false
,
columns
:
[
{
type
:
'expand'
,
slots
:
'class'
},
{
label
:
'序号'
,
type
:
'index'
,
width
:
60
},
{
label
:
'专家姓名'
,
prop
:
'name'
},
{
label
:
'所在单位'
,
prop
:
'company'
},
...
...
@@ -71,13 +72,15 @@ const listOptions = $computed(() => {
})
const
dialogVisible
=
$ref
(
false
)
// const classIds: any = ref()
function
handleAdd
(
data
:
any
)
{
// classIds.value = class_ids
list
.
push
(
data
)
}
// 保存
function
handleSubmit
()
{
const
experts
=
list
.
map
((
item
:
any
)
=>
{
return
{
id
:
item
.
id
,
expert_id
:
item
.
expert_id
,
role
:
item
.
info
.
role
}
return
{
id
:
item
.
id
,
expert_id
:
item
.
expert_id
,
role
:
item
.
info
.
role
,
class_id
:
item
.
info
.
class_id
}
})
const
expertsLeader
=
experts
.
filter
((
item
:
any
)
=>
item
.
role
===
'1'
)
if
(
expertsLeader
.
length
!==
1
)
{
...
...
@@ -100,7 +103,13 @@ function handleRemoveClass(index: number) {
</
script
>
<
template
>
<el-dialog
title=
"评分专家列表"
:close-on-click-modal=
"false"
@
update:modelValue=
"value => $emit('update:modelValue', value)"
>
<el-dialog
width=
"1000px"
title=
"评分专家列表"
:close-on-click-modal=
"false"
@
update:modelValue=
"value => $emit('update:modelValue', value)"
>
<!--
<el-form
:disabled=
"false"
>
-->
<el-form
:disabled=
"disabled"
>
<AppList
v-bind=
"listOptions"
ref=
"appList"
>
<template
#
header-buttons
>
...
...
@@ -109,6 +118,15 @@ function handleRemoveClass(index: number) {
<p>
赛项名称:
{{
detail
.
name
}}
</p>
</el-row>
</
template
>
<
template
#
class=
"{ row }"
>
<div
style=
"padding-left: 20px"
>
<h3>
班级信息
</h3>
<el-table
:data=
"row.class_info"
:border=
"false"
>
<el-table-column
width=
"200"
label=
"班级id"
prop=
"id"
/>
<el-table-column
label=
"班级名称"
prop=
"name"
/>
</el-table>
</div>
</
template
>
<
template
#
table-x=
"{ $index }"
>
<el-button
link
round
type=
"danger"
@
click=
"handleRemoveClass($index)"
>
移除
</el-button>
</
template
>
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论