Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
提交
打开侧边栏
com.pica.cloud.education.frontend
pica.cloud.web-education-admin
提交
cbc7952c
提交
cbc7952c
编写于
12月 26, 2019
作者:
chendeli
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'release-backups' into release
上级
e90fb9ed
29e1b9d9
变更
5
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
741 行增加
和
169 行删除
+741
-169
create-component.vue
src/views/education/create-component.vue
+57
-24
edit-manager.vue
src/views/education/edit-manager.vue
+550
-95
item-component.vue
src/views/education/item-component.vue
+4
-3
item-manager.vue
src/views/education/item-manager.vue
+10
-7
item-role.vue
src/views/system/item-role.vue
+120
-40
未找到文件。
src/views/education/create-component.vue
浏览文件 @
cbc7952c
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
</div>
</div>
</div>
</div>
<div
class=
"first-step"
v-if=
"stepNum == 1"
>
<div
class=
"first-step"
v-if=
"stepNum == 1"
>
<el-form
ref=
"basicInfoForm"
class=
"basic-form"
:model=
"portalComponent"
:rules=
"rules"
label-width=
"1
2
5px"
label-suffix=
":"
size=
"small"
style=
"margin-bottom:30px;"
>
<el-form
ref=
"basicInfoForm"
class=
"basic-form"
:model=
"portalComponent"
:rules=
"rules"
label-width=
"1
7
5px"
label-suffix=
":"
size=
"small"
style=
"margin-bottom:30px;"
>
<el-form-item
label=
"组件名称"
prop=
"name"
>
<el-form-item
label=
"组件名称"
prop=
"name"
>
<el-input
type=
"text"
v-model=
"portalComponent.name"
@
blur=
"componentName"
size=
"small"
placeholder=
"请输入组件名称"
style=
"width:30%;"
></el-input>
<el-input
type=
"text"
v-model=
"portalComponent.name"
@
blur=
"componentName"
size=
"small"
placeholder=
"请输入组件名称"
style=
"width:30%;"
></el-input>
<span
class=
"word-num"
>
{{
(
portalComponent
.
name
).
replace
(
/
\s
+/g
,
""
).
length
}}
/20
</span>
<span
class=
"word-num"
>
{{
(
portalComponent
.
name
).
replace
(
/
\s
+/g
,
""
).
length
}}
/20
</span>
...
@@ -53,11 +53,23 @@
...
@@ -53,11 +53,23 @@
</el-form-item>
</el-form-item>
<p
class=
"upload-message"
v-if=
"uploadImgMessage"
>
请上传组件图片
</p>
<p
class=
"upload-message"
v-if=
"uploadImgMessage"
>
请上传组件图片
</p>
</div>
-->
</div>
-->
<el-form-item
label=
"组件内的模块完成比率须≥"
prop=
"certificateCondition"
>
<el-input-number
v-model=
"portalComponent.certificateCondition"
controls-position=
"right"
@
change=
"handleChange"
:disabled=
"componentStatus == 3 || componentStatus == 4"
:precision=
"0"
:step=
"1"
:min=
"0"
:max=
"100"
>
</el-input-number>
</el-form-item>
<el-row>
<el-row>
<el-col
:span=
"
6
"
>
<el-col
:span=
"
8
"
>
<div
class=
"basic-item-icon"
>
<div
class=
"basic-item-icon"
>
<span
class=
"require"
>
*
</span>
<el-form-item
label=
"配置证书"
>
<el-form-item
label=
"配置证书"
required
>
<el-radio-group
v-model=
"certificateLable"
@
change=
"selectCertificate"
:disabled=
"componentStatus == 3 || componentStatus == 4"
>
<el-radio-group
v-model=
"certificateLable"
@
change=
"selectCertificate"
:disabled=
"componentStatus == 3 || componentStatus == 4"
>
<el-radio
label=
"是"
></el-radio>
<el-radio
label=
"是"
></el-radio>
<el-radio
label=
"否"
></el-radio>
<el-radio
label=
"否"
></el-radio>
...
@@ -78,17 +90,7 @@
...
@@ -78,17 +90,7 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<el-form-item
v-if=
"hasCertificate"
label=
"组件完成(%)"
prop=
"certificateCondition"
>
<el-input-number
v-model=
"portalComponent.certificateCondition"
controls-position=
"right"
@
change=
"handleChange"
:disabled=
"componentStatus == 3 || componentStatus == 4"
:step=
"10"
:min=
"10"
:max=
"100"
>
</el-input-number>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
<div
class=
""
v-if=
"stepNum == 2"
>
<div
class=
""
v-if=
"stepNum == 2"
>
...
@@ -107,6 +109,13 @@
...
@@ -107,6 +109,13 @@
<el-input
v-model=
"item.name"
@
blur=
"moduleNameValidate(index)"
:disabled=
"fieldDisabled(item)"
size=
"small"
placeholder=
"请选择模块名称"
style=
"width:288px;"
></el-input>
<el-input
v-model=
"item.name"
@
blur=
"moduleNameValidate(index)"
:disabled=
"fieldDisabled(item)"
size=
"small"
placeholder=
"请选择模块名称"
style=
"width:288px;"
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
<el-row>
<!--
<el-col
:span=
"10"
>
<el-form-item
label=
"模块名称"
prop=
"name"
>
<el-input
v-model=
"item.name"
@
blur=
"moduleNameValidate(index)"
:disabled=
"fieldDisabled(item)"
size=
"small"
placeholder=
"请选择模块名称"
style=
"width:288px;"
></el-input>
</el-form-item>
</el-col>
-->
<el-col
:span=
"8"
v-if=
"idType == 1"
>
<el-col
:span=
"8"
v-if=
"idType == 1"
>
<el-form-item
label=
"是否对外开放"
prop=
"openFlag"
>
<el-form-item
label=
"是否对外开放"
prop=
"openFlag"
>
<el-radio-group
v-model=
"item.openFlag"
@
change=
"selectIsOpen(index)"
:disabled=
"fieldDisabled(item) || item.openDisabled"
>
<el-radio-group
v-model=
"item.openFlag"
@
change=
"selectIsOpen(index)"
:disabled=
"fieldDisabled(item) || item.openDisabled"
>
...
@@ -115,6 +124,14 @@
...
@@ -115,6 +124,14 @@
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"8"
v-if=
"idType == 1"
>
<el-form-item
label=
"通过标准"
prop=
"passType"
>
<el-radio-group
v-model=
"item.passType"
@
change=
"selectStandard(index)"
:disabled=
"fieldDisabledStandard(item)"
>
<el-radio
:label=
"1"
>
全部完成
</el-radio>
<el-radio
:label=
"2"
>
无要求
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span=
"6"
v-if=
"idType == 1"
>
<el-col
:span=
"6"
v-if=
"idType == 1"
>
<el-form-item
label=
"是否启用"
prop=
"status"
>
<el-form-item
label=
"是否启用"
prop=
"status"
>
<el-radio-group
v-model=
"item.status"
@
change=
"selectIsOpenStatus(index)"
:disabled=
"fieldDisabled(item)"
>
<el-radio-group
v-model=
"item.status"
@
change=
"selectIsOpenStatus(index)"
:disabled=
"fieldDisabled(item)"
>
...
@@ -405,14 +422,15 @@ export default {
...
@@ -405,14 +422,15 @@ export default {
imageUrl
:
''
,
imageUrl
:
''
,
seqNo
:
''
,
seqNo
:
''
,
certificateId
:
''
,
// 0 没有证书,配置证书为否
certificateId
:
''
,
// 0 没有证书,配置证书为否
certificateCondition
:
'
6
0'
,
// 证书完成率
certificateCondition
:
'
10
0'
,
// 证书完成率
status
:
''
status
:
''
},
},
componentList
:
{
componentList
:
{
moduleModelList
:
[{
moduleModelList
:
[{
id
:
''
,
id
:
''
,
name
:
''
,
name
:
''
,
openFlag
:
''
,
// 1 否 不开放 2 是 开放
openFlag
:
''
,
// 1 否 不开放 2 是 开放,
passType
:
'1'
,
//1:全部完成 2:无要求
templetModelList
:
[]
templetModelList
:
[]
}]
}]
},
},
...
@@ -437,7 +455,7 @@ export default {
...
@@ -437,7 +455,7 @@ export default {
{
required
:
true
,
message
:
'请选择证书'
,
trigger
:
'blur'
},
{
required
:
true
,
message
:
'请选择证书'
,
trigger
:
'blur'
},
],
],
"certificateCondition"
:
[
"certificateCondition"
:
[
{
required
:
true
,
message
:
'请
选择获得证书完成率
'
,
trigger
:
'blur'
},
{
required
:
true
,
message
:
'请
输入内容
'
,
trigger
:
'blur'
},
]
]
},
},
moduleRules
:
{
moduleRules
:
{
...
@@ -510,6 +528,10 @@ export default {
...
@@ -510,6 +528,10 @@ export default {
})
})
}
}
},
},
selectStandard
(
index
){
},
// 删除图片
// 删除图片
deleteImg
()
{
deleteImg
()
{
vm
.
portalComponent
.
imageUrl
=
''
vm
.
portalComponent
.
imageUrl
=
''
...
@@ -520,14 +542,19 @@ export default {
...
@@ -520,14 +542,19 @@ export default {
vm
.
portalComponent
.
certificateId
=
''
vm
.
portalComponent
.
certificateId
=
''
if
(
val
==
'否'
)
{
if
(
val
==
'否'
)
{
vm
.
hasCertificate
=
false
vm
.
hasCertificate
=
false
vm
.
portalComponent
.
certificateCondition
=
0
//
vm.portalComponent.certificateCondition = 0
}
else
{
}
else
{
vm
.
hasCertificate
=
true
vm
.
hasCertificate
=
true
vm
.
portalComponent
.
certificateCondition
=
6
0
//vm.portalComponent.certificateCondition = 10
0
}
}
vm
.
portalComponent
.
certificateCondition
=
100
},
},
// 获取组件完成率
// 获取组件完成率
handleChange
(
value
)
{
handleChange
(
value
)
{
console
.
log
(
value
)
if
(
value
==
1
){
}
vm
.
portalComponent
.
certificateCondition
=
value
vm
.
portalComponent
.
certificateCondition
=
value
},
},
// 获取证书下拉列表
// 获取证书下拉列表
...
@@ -757,6 +784,9 @@ export default {
...
@@ -757,6 +784,9 @@ export default {
}
}
}
}
},
},
fieldDisabledStandard
(
item
){
return
(
vm
.
componentStatus
==
3
||
vm
.
componentStatus
==
4
);
},
fieldDisabled
(
item
){
fieldDisabled
(
item
){
// return vm.conditionSelect || item.moduleType == 2 || (item.id != '' && item.openFlag == 2) || vm.idType == 2 || item.statusFlag
// return vm.conditionSelect || item.moduleType == 2 || (item.id != '' && item.openFlag == 2) || vm.idType == 2 || item.statusFlag
return
vm
.
newconditionSelect
||
item
.
moduleType
==
2
||
vm
.
idType
==
2
||
(
vm
.
componentStatus
!=
1
&&
vm
.
componentStatus
!=
2
&&
item
.
statusFlag
);
return
vm
.
newconditionSelect
||
item
.
moduleType
==
2
||
vm
.
idType
==
2
||
(
vm
.
componentStatus
!=
1
&&
vm
.
componentStatus
!=
2
&&
item
.
statusFlag
);
...
@@ -854,9 +884,10 @@ export default {
...
@@ -854,9 +884,10 @@ export default {
openFlag
:
1
,
// 1不开放 2开放
openFlag
:
1
,
// 1不开放 2开放
moduleType
:
1
,
// 2为从预设模块中添加
moduleType
:
1
,
// 2为从预设模块中添加
status
:
1
,
// 1 不启用 2启用
status
:
1
,
// 1 不启用 2启用
passType
:
1
,
templetModelList
:
[]
templetModelList
:
[]
});
});
vm
.
componentList
.
moduleModelList
[(
vm
.
componentList
.
moduleModelList
.
length
-
1
)].
openDisabled
=
true
;
//
vm.componentList.moduleModelList[(vm.componentList.moduleModelList.length - 1)].openDisabled = true;
},
},
// 添加模板
// 添加模板
addTemplate
(
item
,
index
)
{
addTemplate
(
item
,
index
)
{
...
@@ -1113,7 +1144,11 @@ export default {
...
@@ -1113,7 +1144,11 @@ export default {
vm
.
GET
(
'portal/portalComponent/disableOrStart'
,
req
).
then
((
res
)
=>
{
vm
.
GET
(
'portal/portalComponent/disableOrStart'
,
req
).
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
code
==
"000000"
)
{
if
(
flag
==
2
)
{
if
(
flag
==
2
)
{
vm
.
$router
.
push
({
path
:
'item-component'
})
let
query
=
{}
if
(
this
.
$route
.
query
.
pageNum
){
query
=
{
pageNum
:
this
.
$route
.
query
.
pageNum
}
}
vm
.
$router
.
push
({
path
:
'item-component'
,
query
:
query
})
}
else
{
}
else
{
vm
.
$message
.
info
(
"暂存成功!"
)
vm
.
$message
.
info
(
"暂存成功!"
)
}
}
...
@@ -1397,5 +1432,3 @@ export default {
...
@@ -1397,5 +1432,3 @@ export default {
}
}
}
}
</
style
>
</
style
>
src/views/education/edit-manager.vue
浏览文件 @
cbc7952c
...
@@ -203,6 +203,16 @@
...
@@ -203,6 +203,16 @@
<el-radio
:label=
"1"
>
使用小生态范围
</el-radio>
<el-radio
:label=
"1"
>
使用小生态范围
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
<el-form-item
label=
"人员权限设定"
>
<el-radio-group
size=
"small"
v-model=
"formData.authorityType"
:disabled=
"showNoticeType()"
>
<el-radio
:label=
"1"
>
自定义
</el-radio>
<el-radio
:label=
"2"
>
使用平台默认权限
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"项目范围外可见"
>
<el-form-item
label=
"项目范围外可见"
>
<el-radio-group
<el-radio-group
size=
"small"
size=
"small"
...
@@ -728,6 +738,7 @@
...
@@ -728,6 +738,7 @@
v-model=
"formComponent.component"
v-model=
"formComponent.component"
multiple
multiple
collapse-tags
collapse-tags
filterable
style=
"width: 350px"
style=
"width: 350px"
placeholder=
"请选择组件"
placeholder=
"请选择组件"
@
change=
"changeValue"
@
change=
"changeValue"
...
@@ -756,33 +767,26 @@
...
@@ -756,33 +767,26 @@
>
{{tag.name}}
</el-tag>
>
{{tag.name}}
</el-tag>
</el-col>
</el-col>
</el-form-item>
</el-form-item>
<el-form-item
label=
"学习时长控制
:"
class=
"time-contrl"
>
<el-form-item
required
label=
"学习时长
:"
class=
"time-contrl"
>
<el-col
:span=
"10"
>
<el-col
:span=
"10"
>
<el-radio-group
class=
"el-time-ctr"
v-model=
"formComponent.courseRequire"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
>
<el-radio-group
class=
"el-time-ctr"
v-model=
"formComponent.courseRequire"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
>
<el-radio
:label=
"1"
>
是(
则项目中各课程须达到课程配置中的观看时长要求才允许
通过)
</el-radio>
<el-radio
:label=
"1"
>
是(
必须达到课程配置的观看时长要求才算
通过)
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
</el-radio-group>
</el-radio-group>
</el-col>
</el-col>
</el-form-item>
</el-form-item>
<el-form-item
label=
"配置证书:"
>
<el-col
:span=
"10"
>
<el-radio-group
class=
"el-configure"
v-model=
"formComponent.configure"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-col>
</el-form-item>
</el-form>
</el-form>
<el-form
<el-form
ref=
"formExam"
ref=
"formExam"
label-width=
"150px"
label-width=
"150px"
:model=
"formExam"
:model=
"formExam"
class=
"achievement"
class=
"achievement"
v-show=
"formComponent.configure == 1"
>
>
<el-form-item
label=
"项目成绩评定条件
"
>
<el-form-item
required
label=
"项目通过标准"
:class=
"customError.standard.className
"
>
<el-select
<el-select
v-model=
"formExam.
certificate
Type"
v-model=
"formExam.
pass
Type"
placeholder=
"请选择"
placeholder=
"请选择"
style=
"width: 350px"
style=
"width: 350px"
@
change=
"updateCertificateType"
@
change=
"updateCertificateType"
...
@@ -795,31 +799,126 @@
...
@@ -795,31 +799,126 @@
:value=
"item.value"
:value=
"item.value"
></el-option>
></el-option>
</el-select>
</el-select>
<div
class=
"el-form-item__error"
v-if=
"customError.standard.error != ''"
>
{{customError.standard.error}}
</div>
</el-form-item>
</el-form-item>
<div
v-show=
"formExam.certificateType == 2"
v-for=
"(item , index) in formExam.exam"
:key=
"index"
>
<el-form-item
label=
"发放证书"
>
<el-form-item
required
label=
"累计学习时长大于等于:"
v-show=
"formExam.passType == 3"
:class=
"customError.passTotalLearnTime.className"
>
<el-col
:span=
"6"
>
<el-input
placeholder=
"请输入"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
v-model=
"formComponent.passTotalLearnTime"
style=
"width:200px"
@
input=
"focusFun($event,'passTotalLearnTime')"
>
<el-select
<
template
slot=
"append"
>
分钟
</
template
>
v-model=
"item.certificateId"
</el-input>
placeholder=
"请选择证书"
<div
class=
"el-form-item__error"
v-if=
"customError.passTotalLearnTime.error != ''"
>
{{customError.passTotalLearnTime.error}}
</div>
style=
""
</el-form-item>
@
change=
"updateCertificate(index)"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
<!--add 选择平均分展示-->
>
<div
v-show=
"formExam.passType == 2"
>
<el-option
v-for=
"item in optionsCertificate"
<div
class=
"mleft60"
v-show=
"formExam.passType == 2"
>
:key=
"item.value"
:label=
"item.label"
<div
class=
"mini-source"
style=
"overflow: hidden;"
>
:value=
"item.value"
<el-form-item
label=
"项目中最高"
label-width=
"80px"
style=
"float: left;"
:class=
"customError.passExamCount.className"
class=
"min-label"
>
></el-option>
<div
class=
"source-item"
>
</el-select>
</el-col>
<el-input
placeholder=
"请输入数字"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
size=
"mini"
v-model=
"formComponent.passExamCount"
style=
"width:150px"
@
input=
"focusFun($event,'passExamCount')"
>
<el-col
:span=
"3"
>
<
template
slot=
"append"
>
门
</
template
>
<el-button
@
click=
"addCertificate"
icon=
"el-icon-plus"
circle
></el-button>
</el-input>
<el-button
@
click=
"reduceCertificate(index)"
icon=
"el-icon-minus"
circle
></el-button>
</el-col>
</div>
</el-form-item>
<div
class=
"el-form-item__error"
v-if=
"customError.passExamCount.error != ''"
>
{{customError.passExamCount.error}}
</div>
<el-form-item
label=
"项目中最高"
>
</el-form-item>
<div
style=
"float: left;padding:0 5px;line-height: 26px;font-size: 12px;color:#606266"
>
考试成绩的平均分大于等于
</div>
<el-form-item
label=
""
label-width=
"0px"
style=
"float: left;"
:class=
"customError.passAverageScore.className"
class=
"min-label"
>
<div
class=
"source-item"
>
<el-input
placeholder=
"请输入数字"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
size=
"mini"
v-model=
"formComponent.passAverageScore"
style=
"width:150px"
@
input=
"focusFun($event,'passAverageScore')"
>
<
template
slot=
"append"
>
分
</
template
>
</el-input>
</div>
<div
class=
"el-form-item__error"
v-if=
"customError.passAverageScore.error != ''"
>
{{customError.passAverageScore.error}}
</div>
</el-form-item>
<div
style=
"float: left;padding:0 5px;line-height: 26px;font-size: 12px;color:#606266"
>
则项目通过
</div>
</div>
</div>
</div>
<el-form-item
required
label=
"配置证书:"
>
<el-col
:span=
"10"
>
<el-radio-group
class=
"el-configure"
v-model=
"formComponent.configure"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"2"
>
否
</el-radio>
</el-radio-group>
</el-col>
</el-form-item>
<!--edit 选择配置证书展示-->
<div
v-show=
"formComponent.configure == 1 && formExam.passType == 2"
v-for=
"(item , index) in formExam.exam"
:key=
"index"
>
<div
class=
"mleft60"
>
<div
class=
"soure-configure"
>
<div
class=
"configure-item"
>
<el-form-item
label=
"平均分:"
label-width=
"65px"
style=
"float: left;"
:class=
"item.minClass"
class=
"min-label"
>
<el-col
:span=
"5"
>
<el-input
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
placeholder=
"请输入数字"
size=
"mini"
v-model=
"item.rangeMin"
style=
"width:215px"
@
input=
"focusFun($event,'rangeMin',index)"
>
<
template
slot=
"append"
>
分
</
template
>
</el-input>
</el-col>
<div
class=
"el-form-item__error"
v-if=
"item.minError"
>
{{item.minError}}
</div>
</el-form-item>
<div
style=
"float: left;padding:0 5px;line-height: 26px;"
>
~
</div>
<el-form-item
label-width=
"0"
style=
"float: left;margin-left:0px;"
:class=
"item.maxClass"
class=
"min-label"
>
<el-col
:span=
"5"
>
<el-input
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
placeholder=
"请输入数字"
size=
"mini"
v-model=
"item.rangeMax"
style=
"width:215px"
@
input=
"focusFun($event,'rangeMax',index)"
>
<
template
slot=
"append"
>
分
</
template
>
</el-input>
</el-col>
<div
class=
"el-form-item__error"
v-if=
"item.maxError"
>
{{item.maxError}}
</div>
</el-form-item>
</div>
<div
class=
"configure-item"
>
<el-form-item
label=
"发放证书:"
style=
"margin-left: -85px;"
:class=
"item.certClass"
>
<el-select
v-model=
"item.certificateId"
placeholder=
"请选择证书"
size=
"mini"
style=
"width: 450px;"
@
change=
"updateCertificate(index)"
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
>
<el-option
v-for=
"item in optionsCertificate"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
></el-option>
</el-select>
<div
class=
"el-form-item__error"
v-if=
"item.certError"
>
{{item.certError}}
</div>
</el-form-item>
</div>
<!-- <el-form-item label="发放证书" style="width:100px;">
<el-col :span="3">
<el-button @click="addCertificate" icon="el-icon-plus" circle></el-button>
<el-button @click="reduceCertificate(index)" icon="el-icon-minus" circle></el-button>
</el-col>
</el-form-item> -->
<div
class=
"configure-option"
>
<el-button
size=
"mini"
@
click=
"addCertificate"
icon=
"el-icon-plus"
circle
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
></el-button>
<el-button
size=
"mini"
@
click=
"reduceCertificate(index)"
icon=
"el-icon-minus"
circle
:disabled=
"projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"
></el-button>
</div>
</div>
</div>
<!-- <el-form-item label="项目中最高">
<el-col :span="3">
<el-col :span="3">
<el-input v-model="item.examCount" @change="updateCount(index)" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"></el-input>
<el-input v-model="item.examCount" @change="updateCount(index)" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"></el-input>
</el-col>
</el-col>
...
@@ -831,9 +930,10 @@
...
@@ -831,9 +930,10 @@
<el-col :span="3">
<el-col :span="3">
<el-input v-model="item.rangeMax" @change="updateMax(index)" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"></el-input>
<el-input v-model="item.rangeMax" @change="updateMax(index)" :disabled="projectStatus == 3 || projectStatus == 4 || projectStatus == 5 || projectStatus == 6"></el-input>
</el-col>
</el-col>
</el-form-item>
</el-form-item> -->
</div>
</div>
<el-form-item
v-show=
"formExam.certificateType == 1"
label=
"发放证书
"
>
<el-form-item
required
v-show=
"formComponent.configure == 1 && (formExam.passType == 1 || formExam.passType == 3)"
label=
"发放证书"
:class=
"customError.certificate.className
"
>
<el-select
<el-select
v-model=
"formComponent.certificate"
v-model=
"formComponent.certificate"
placeholder=
"请选择证书"
placeholder=
"请选择证书"
...
@@ -847,6 +947,7 @@
...
@@ -847,6 +947,7 @@
:value=
"item.value"
:value=
"item.value"
></el-option>
></el-option>
</el-select>
</el-select>
<div
class=
"el-form-item__error"
v-if=
"customError.certificate.error != ''"
>
{{customError.certificate.error}}
</div>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -892,7 +993,28 @@ export default {
...
@@ -892,7 +993,28 @@ export default {
return {
return {
idTypeValue: 1,
idTypeValue: 1,
idTypeProject: '',
idTypeProject: '',
customError:{
standard:{
className:'',
error:''
},
certificate:{
className:'',
error:''
},
passTotalLearnTime:{
className:'',
error:''
},
passExamCount:{
className:'',
error:''
},
passAverageScore:{
className:'',
error:''
}
},
projectId: null,
projectId: null,
peopleLevel: null,
peopleLevel: null,
//面包屑
//面包屑
...
@@ -925,6 +1047,7 @@ export default {
...
@@ -925,6 +1047,7 @@ export default {
receiveOption: 1,
receiveOption: 1,
visibleFlag: 1,
visibleFlag: 1,
learnableFlag: 2,
learnableFlag: 2,
authorityType:1,
},
},
pickerOptions0: {
pickerOptions0: {
disabledDate: time => {
disabledDate: time => {
...
@@ -1055,6 +1178,9 @@ export default {
...
@@ -1055,6 +1178,9 @@ export default {
configure: 2,
configure: 2,
certificate: "",
certificate: "",
courseRequire: 0, //0:不控制 1:按课程时长配置要求
courseRequire: 0, //0:不控制 1:按课程时长配置要求
passExamCount:'',
passAverageScore:'',
passTotalLearnTime:''
},
},
tagsComponent: [],
tagsComponent: [],
projectStatus: "",
projectStatus: "",
...
@@ -1063,6 +1189,7 @@ export default {
...
@@ -1063,6 +1189,7 @@ export default {
//考试数据
//考试数据
formExam: {
formExam: {
certificateType: 1,
certificateType: 1,
passType:1,
exam: [{
exam: [{
examCount: 1,
examCount: 1,
rangeMin: '',
rangeMin: '',
...
@@ -1072,14 +1199,19 @@ export default {
...
@@ -1072,14 +1199,19 @@ export default {
}]
}]
},
},
certificateTypeList: [
certificateTypeList: [
{
label: '所有组件通过',
value: 1,
},
{
{
label: '根据平均分
发证书
',
label: '根据平均分
设定
',
value: 2,
value: 2,
},
},
{
{
label: '
所有组件通过即发放
',
label: '
根据项目内学习时长设定
',
value:
1
,
value:
3
,
}
}
,
],
],
visibleName: false,
visibleName: false,
organizationContent: '',
organizationContent: '',
...
@@ -1144,7 +1276,12 @@ export default {
...
@@ -1144,7 +1276,12 @@ export default {
visitTime: [
visitTime: [
{required: false, trigger: "
change
", validator: checkNormalInt,}
{required: false, trigger: "
change
", validator: checkNormalInt,}
],
],
showRules1:[
{ required: true, message: "
请输入门数
", trigger: "
blur
" }
],
},
},
rules: {
rules: {
projectName: [
projectName: [
{ required: true, message: "
请输入项目名称
", trigger: "
blur
" },
{ required: true, message: "
请输入项目名称
", trigger: "
blur
" },
...
@@ -1227,6 +1364,45 @@ export default {
...
@@ -1227,6 +1364,45 @@ export default {
commonUtil.resizeHeight();
commonUtil.resizeHeight();
},
},
methods: {
methods: {
focusFun(ev,parm,index){
if(index != undefined){
if(parseInt(ev) < 0 || !this.checkIntFun(ev)){
console.log(typeof index)
this.formExam.exam[index][parm] = ''
}
if(parm == 'rangeMax' && parseInt(ev) > 100){
this.formExam.exam[index][parm] = "
100
"
}
if(ev != ''){
if(parm == 'rangeMax'){
this.formExam.exam[index].maxClass = ''
this.formExam.exam[index].maxError = ''
}
if(parm == 'rangeMin'){
this.formExam.exam[index].minClass = ''
this.formExam.exam[index].minError = ''
}
}
}else{
if(parseInt(ev) < 0 || !this.checkIntFun(ev)){
this.formComponent[parm] = ''
}
if(parm == 'passAverageScore' && parseInt(ev) > 100){
this.formComponent[parm] = "
100
"
}
if(ev != ''){
this.customError[parm] = {
className:'',
error:''
}
}
}
},
//表单校验
//表单校验
submitForm(formName) {
submitForm(formName) {
let flag = null;
let flag = null;
...
@@ -1289,6 +1465,7 @@ export default {
...
@@ -1289,6 +1465,7 @@ export default {
receiveOption: editData.notifyData.receiveOption,
receiveOption: editData.notifyData.receiveOption,
visibleFlag: editData.projectData.visibleFlag,
visibleFlag: editData.projectData.visibleFlag,
learnableFlag: editData.projectData.learnableFlag,
learnableFlag: editData.projectData.learnableFlag,
authorityType:editData.projectData.authorityType,
};
};
this.organizationContent = editData.projectData.creatorOrganizationName;
this.organizationContent = editData.projectData.creatorOrganizationName;
if (editData.attachmentData.length > 2) {
if (editData.attachmentData.length > 2) {
...
@@ -1320,7 +1497,22 @@ export default {
...
@@ -1320,7 +1497,22 @@ export default {
}
}
//初始化考试平均分配置数据
//初始化考试平均分配置数据
this.formExam.certificateType = editData.projectData.certificateType;
this.formExam.certificateType = editData.projectData.certificateType;
this.formExam.passType = editData.projectData.passType;
this.formExam.exam = editData.certificateRule;
this.formExam.exam = editData.certificateRule;
if(this.formExam.exam.length > 0){
for(let k=0;k<this.formExam.exam.length;k++){
this.formExam.exam[k].certClass = ''
this.formExam.exam[k].certError = ''
this.formExam.exam[k].minClass = ''
this.formExam.exam[k].minError = ''
this.formExam.exam[k].maxClass = ''
this.formExam.exam[k].maxError = ''
}
}
console.log(this.formExam.exam)
this.formComponent.passAverageScore = editData.projectData.passAverageScore > 0 ? editData.projectData.passAverageScore : ''
this.formComponent.passExamCount = editData.projectData.passExamCount > 0 ? editData.projectData.passExamCount : ''
this.formComponent.passTotalLearnTime = editData.projectData.passTotalLearnTime
if(this.formExam.exam.length == 0) {
if(this.formExam.exam.length == 0) {
this.formExam.exam = [{
this.formExam.exam = [{
examCount: 1,
examCount: 1,
...
@@ -1328,6 +1520,12 @@ export default {
...
@@ -1328,6 +1520,12 @@ export default {
rangeMax: '',
rangeMax: '',
certificateId: '',
certificateId: '',
certificateName: '',
certificateName: '',
minClass:'',
minError:'',
maxClass:'',
maxError:'',
certClass:'',
certError:''
}]
}]
}
}
},
},
...
@@ -1342,6 +1540,7 @@ export default {
...
@@ -1342,6 +1540,7 @@ export default {
closeLoading(vm);
closeLoading(vm);
if (res.code == "
000000
" && res.data.projectData != null) {
if (res.code == "
000000
" && res.data.projectData != null) {
let editData = res.data;
let editData = res.data;
console.log(editData)
this.status4Flag = res.data.projectData.status4Flag;
this.status4Flag = res.data.projectData.status4Flag;
this.setEditData(editData);
this.setEditData(editData);
this.idTypeProject = res.data.projectData.idType;
this.idTypeProject = res.data.projectData.idType;
...
@@ -1373,6 +1572,7 @@ export default {
...
@@ -1373,6 +1572,7 @@ export default {
organizationName: this.formData.organizationName,
organizationName: this.formData.organizationName,
visibleFlag: this.formData.visibleFlag,
visibleFlag: this.formData.visibleFlag,
learnableFlag: this.formData.learnableFlag,
learnableFlag: this.formData.learnableFlag,
authorityType:this.formData.authorityType,
};
};
let attachmentModel = [
let attachmentModel = [
{
{
...
@@ -1528,14 +1728,23 @@ export default {
...
@@ -1528,14 +1728,23 @@ export default {
projectId: this.projectId,
projectId: this.projectId,
type: type,
type: type,
status: this.projectStatus,
status: this.projectStatus,
certificateType: this.formExam.
certificateType
,
certificateType: this.formExam.
passType == 2 ? 2 : 1
,
getCertificateRule: [],
getCertificateRule: [],
courseRequire: this.formComponent.courseRequire,
courseRequire: this.formComponent.courseRequire,
passType:this.formExam.passType
};
};
if(this.formExam.passType == 2){
param.passAverageScore = this.formComponent.passAverageScore
param.passExamCount = this.formComponent.passExamCount
}
if(this.formExam.passType == 3){
param.passTotalLearnTime = this.formComponent.passTotalLearnTime
}
// console.log('排序后',vm.tagsComponent,'param',param);
// console.log('排序后',vm.tagsComponent,'param',param);
if(this.formComponent.configure == 1) {
if(this.formComponent.configure == 1) {
// 2.多证书有规
// 2.多证书有规
if(this.formExam.
certificate
Type == 2) {
if(this.formExam.
pass
Type == 2) {
let ruleData = vm.formExam.exam;
let ruleData = vm.formExam.exam;
for(let o=0;o<ruleData.length;o++) {
for(let o=0;o<ruleData.length;o++) {
if(ruleData[o].certificateId != '' && ruleData[o].certificateId != null) {
if(ruleData[o].certificateId != '' && ruleData[o].certificateId != null) {
...
@@ -1552,11 +1761,11 @@ export default {
...
@@ -1552,11 +1761,11 @@ export default {
}
}
}
}
// 1.单证书无规则
// 1.单证书无规则
else {
else {
if(this.formComponent.certificate != '' && this.formComponent.certificate != null) {
if(this.formComponent.certificate != '' && this.formComponent.certificate != null) {
param.certificateId[0] = this.formComponent.certificate;
param.certificateId[0] = this.formComponent.certificate;
}
}
}
}
}
}
vm.POST("
portal
/
portalInfo
/
componentDraft
", param).then(res => {
vm.POST("
portal
/
portalInfo
/
componentDraft
", param).then(res => {
console.log(res);
console.log(res);
...
@@ -1567,7 +1776,12 @@ export default {
...
@@ -1567,7 +1776,12 @@ export default {
if (res.code == "
000000
") {
if (res.code == "
000000
") {
//notify
//notify
if (type == 2) {
if (type == 2) {
this.$router.push("
item
-
manager
");
let query = {}
if(this.$route.query.pageNum){
query = {pageNum:this.$route.query.pageNum}
}
this.$router.push({ path: 'item-manager',query:query })
// this.$router.push("
item
-
manager
?
pageNum
=
"+this.$route.query.pageNum);
}
}
}
}
});
});
...
@@ -2352,10 +2566,7 @@ export default {
...
@@ -2352,10 +2566,7 @@ export default {
this
.
changedPerson2
this
.
changedPerson2
);
);
},
},
selectionChangeDepartment
(
val
)
{
this
.
multipleSelectionDepartment
=
val
;
//console.log(this.multipleSelectionDepartment);
},
//改变小生态 table check
//改变小生态 table check
selectionChangeEcology
(
rows
)
{
selectionChangeEcology
(
rows
)
{
this
.
changedEcology
=
[];
this
.
changedEcology
=
[];
...
@@ -3071,12 +3282,21 @@ export default {
...
@@ -3071,12 +3282,21 @@ export default {
// }
// }
},
},
addCertificate
()
{
addCertificate
()
{
if
(
vm
.
formExam
.
exam
.
length
==
5
){
return
vm
.
$message
(
'最多配置5个证书'
);
}
let
obj
=
{
let
obj
=
{
examCount
:
1
,
examCount
:
1
,
rangeMin
:
''
,
rangeMin
:
''
,
rangeMax
:
''
,
rangeMax
:
''
,
certificateId
:
''
,
certificateId
:
''
,
certificateName
:
''
,
certificateName
:
''
,
minClass
:
''
,
minError
:
''
,
maxClass
:
''
,
maxError
:
''
,
certClass
:
''
,
certError
:
''
};
};
vm
.
formExam
.
exam
.
push
(
obj
);
vm
.
formExam
.
exam
.
push
(
obj
);
},
},
...
@@ -3085,7 +3305,7 @@ export default {
...
@@ -3085,7 +3305,7 @@ export default {
if
(
vm
.
formExam
.
exam
.
length
>
1
)
{
if
(
vm
.
formExam
.
exam
.
length
>
1
)
{
vm
.
formExam
.
exam
.
splice
(
index
,
1
);
vm
.
formExam
.
exam
.
splice
(
index
,
1
);
}
else
{
}
else
{
vm
.
$message
(
'至少配置
一
个证书'
);
vm
.
$message
(
'至少配置
1
个证书'
);
}
}
},
},
//考试门数更新校验
//考试门数更新校验
...
@@ -3184,68 +3404,267 @@ export default {
...
@@ -3184,68 +3404,267 @@ export default {
break
;
break
;
}
}
}
}
vm
.
formExam
.
exam
[
index
].
certClass
=
''
vm
.
formExam
.
exam
[
index
].
certError
=
''
},
// add 校验输入是否为整数
checkIntFun
(
str
){
let
r
=
/^
\+?[
0-9
]
*$/
;
return
r
.
test
(
str
);
},
},
//更新项目成绩评定条件
//更新项目成绩评定条件
updateCertificateType
()
{
updateCertificateType
()
{
console
.
log
(
'更新certificateType'
,
vm
.
formExam
.
certificateType
)
console
.
log
(
'更新certificateType'
,
vm
.
formExam
.
certificateType
)
if
(
vm
.
formExam
.
certificate
Type
==
2
)
{
if
(
vm
.
formExam
.
pass
Type
==
2
)
{
vm
.
formExam
.
exam
=
[{
vm
.
formExam
.
exam
=
[{
examCount
:
1
,
examCount
:
1
,
rangeMin
:
''
,
rangeMin
:
''
,
rangeMax
:
''
,
rangeMax
:
''
,
certificateId
:
''
,
certificateId
:
''
,
certificateName
:
''
,
certificateName
:
''
,
minClass
:
''
,
minError
:
''
,
maxClass
:
''
,
maxError
:
''
,
certClass
:
''
,
certError
:
''
}];
}];
}
else
if
(
vm
.
formExam
.
certificate
Type
==
1
)
{
}
else
if
(
vm
.
formExam
.
pass
Type
==
1
)
{
vm
.
formComponent
.
certificate
=
''
;
vm
.
formComponent
.
certificate
=
''
;
}
}
},
},
//校验考试通过平均分配置
//校验分数是否存在交叉
checkCertificate
()
{
checkCrossFun
(
d
){
if
(
vm
.
formComponent
.
configure
==
2
)
{
let
isRepart
=
false
,
index
=
null
,
parm
=
null
;
return
true
;
//alert(d.length)
}
if
(
d
.
length
>
0
){
//空判断
for
(
let
i
=
1
;
i
<
d
.
length
;
i
++
){
if
(
vm
.
formExam
.
certificateType
==
2
)
{
console
.
log
(
d
[
i
-
1
].
rangeMin
,
d
[
i
-
1
].
rangeMax
)
let
checkIdList
=
[];
if
(
parseInt
(
d
[
i
-
1
].
rangeMax
)
<
parseInt
(
d
[
i
-
1
].
rangeMin
)){
for
(
let
i
=
0
;
i
<
vm
.
formExam
.
exam
.
length
;
i
++
)
{
isRepart
=
true
;
checkIdList
[
i
]
=
vm
.
formExam
.
exam
[
i
].
certificateId
;
index
=
i
-
1
;
if
(
vm
.
formExam
.
exam
[
i
].
certificateId
==
''
){
parm
=
'1'
vm
.
$message
(
'证书不能为空'
);
break
;
return
false
;
}
if
(
d
[
i
].
rangeMin
<=
d
[
i
-
1
].
rangeMax
&&
d
[
i
].
rangeMin
>=
d
[
i
-
1
].
rangeMin
||
d
[
i
-
1
].
rangeMax
>=
d
[
i
].
rangeMin
&&
d
[
i
-
1
].
rangeMax
<=
d
[
i
].
rangeMax
||
d
[
i
].
rangeMax
>=
d
[
i
-
1
].
rangeMin
&&
d
[
i
].
rangeMax
<=
d
[
i
-
1
].
rangeMax
){
isRepart
=
true
;
index
=
i
;
parm
=
"2"
//alert(isRepart)
break
;
}
}
if
(
vm
.
formExam
.
exam
[
i
].
examCount
==
''
){
if
(
parseInt
(
d
[
i
].
rangeMin
)
>
parseInt
(
d
[
i
].
rangeMax
)){
vm
.
$message
(
'考试门数不能为空'
);
isRepart
=
true
;
return
false
;
index
=
i
;
parm
=
'3'
break
;
}
}
if
(
vm
.
formExam
.
exam
[
i
].
rangeMin
==
''
||
vm
.
formExam
.
exam
[
i
].
rangeMax
==
''
){
vm
.
$message
(
'分数不能为空'
);
}
return
false
;
}
console
.
log
(
parm
)
return
{
isRepart
:
isRepart
,
index
:
index
,
parm
:
parm
}
},
hideErrorInfo
(
str
){
if
(
str
){
this
.
customError
[
str
]
=
{
className
:
''
,
error
:
''
}
}
else
{
this
.
customError
=
{}
}
},
dioErrorPop
(
str
){
return
this
.
$message
({
message
:
str
,
type
:
'warning'
});
},
//校验考试通过平均分配置
checkCertificate
()
{
// if(vm.formComponent.configure == 2) {
// return true;
// }
console
.
log
(
vm
.
formExam
.
exam
)
if
(
vm
.
formExam
.
passType
==
2
)
{
if
(
vm
.
formComponent
.
passExamCount
==
''
){
this
.
customError
.
passExamCount
=
{
className
:
'is-error'
,
error
:
'请输入门数'
}
return
}
if
(
vm
.
formComponent
.
passAverageScore
==
''
){
this
.
customError
.
passAverageScore
=
{
className
:
'is-error'
,
error
:
'请输入分数'
}
}
return
}
}
// 判断证书不能重复
checkIdList
=
checkIdList
.
sort
();
if
(
!
vm
.
checkIntFun
(
vm
.
formComponent
.
passAverageScore
)){
for
(
let
j
=
0
;
j
<
checkIdList
.
length
-
1
;
j
++
)
{
return
vm
.
dioErrorPop
(
'项目通过分数只能是数字'
)
if
(
checkIdList
[
j
]
==
checkIdList
[
j
+
1
])
{
}
vm
.
$message
(
'证书不能重复选择'
);
}
else
if
(
vm
.
formExam
.
passType
==
3
){
return
false
;
if
(
vm
.
formComponent
.
passTotalLearnTime
===
''
||
vm
.
formComponent
.
passTotalLearnTime
==
null
){
vm
.
customError
.
passTotalLearnTime
=
{
className
:
'is-error'
,
error
:
'请输入学习时长'
}
}
return
}
}
// 考试门数必须相同
}
for
(
let
i
=
0
;
i
<
vm
.
formExam
.
exam
.
length
-
1
;
i
++
)
{
console
.
log
(
vm
.
formExam
.
exam
)
if
(
vm
.
formExam
.
exam
[
i
].
examCount
!=
vm
.
formExam
.
exam
[
i
+
1
].
examCount
)
{
//空判断
vm
.
$message
(
'考试门数必须相同'
);
if
(
vm
.
formComponent
.
configure
==
1
)
{
return
false
;
if
(
vm
.
formExam
.
passType
==
2
){
let
checkIdList
=
[];
var
compare
=
function
(
obj1
,
obj2
)
{
var
val1
=
obj1
.
rangeMin
;
var
val2
=
obj2
.
rangeMin
;
if
(
val1
<
val2
)
{
return
-
1
;
}
else
if
(
val1
>
val2
)
{
return
1
;
}
else
{
return
0
;
}
}
vm
.
formExam
.
exam
.
sort
(
compare
)
console
.
log
(
vm
.
formExam
.
exam
);
let
isCross
=
vm
.
checkCrossFun
(
vm
.
formExam
.
exam
).
isRepart
;
let
parm
=
vm
.
checkCrossFun
(
vm
.
formExam
.
exam
).
parm
;
if
(
isCross
){
let
l
=
vm
.
checkCrossFun
(
vm
.
formExam
.
exam
).
index
if
(
parm
==
'1'
||
parm
==
'3'
){
vm
.
formExam
.
exam
[
l
].
minClass
=
'is-error'
vm
.
formExam
.
exam
[
l
].
minError
=
'分数最小值不能大于最大值'
//return;
}
else
if
(
parm
==
'2'
){
vm
.
formExam
.
exam
[
l
].
minClass
=
'is-error'
vm
.
formExam
.
exam
[
l
].
minError
=
'请重新输入,不能出现重合分数'
}
// if(l > 0){
// vm.formExam.exam[l-1].minClass = 'is-error'
// vm.formExam.exam[l-1].minError = '请重新输入,不能出现重合分数'
// }
//
this
.
$set
(
vm
.
formExam
.
exam
,
l
,
vm
.
formExam
.
exam
[
l
])
return
}
for
(
let
i
=
0
;
i
<
vm
.
formExam
.
exam
.
length
;
i
++
)
{
if
(
vm
.
formExam
.
exam
[
i
].
rangeMin
===
''
){
vm
.
formExam
.
exam
[
i
].
minClass
=
'is-error'
vm
.
formExam
.
exam
[
i
].
minError
=
'请输入平均分'
this
.
$set
(
vm
.
formExam
.
exam
,
i
,
vm
.
formExam
.
exam
[
i
])
return
}
vm
.
formExam
.
exam
[
i
].
minClass
=
''
vm
.
formExam
.
exam
[
i
].
minError
=
''
if
(
vm
.
formExam
.
exam
[
i
].
rangeMax
===
''
){
vm
.
formExam
.
exam
[
i
].
maxClass
=
'is-error'
vm
.
formExam
.
exam
[
i
].
maxError
=
'请输入平均分'
this
.
$set
(
vm
.
formExam
.
exam
,
i
,
vm
.
formExam
.
exam
[
i
])
return
}
vm
.
formExam
.
exam
[
i
].
maxClass
=
''
vm
.
formExam
.
exam
[
i
].
maxError
=
''
if
(
parseInt
(
vm
.
formExam
.
exam
[
i
].
rangeMin
)
>
parseInt
(
vm
.
formExam
.
exam
[
i
].
rangeMax
)){
vm
.
formExam
.
exam
[
i
].
minClass
=
'is-error'
vm
.
formExam
.
exam
[
i
].
minError
=
'分数最小值不能大于最大值'
this
.
$set
(
vm
.
formExam
.
exam
,
i
,
vm
.
formExam
.
exam
[
i
])
return
}
if
(
vm
.
formExam
.
exam
[
i
].
certificateId
==
''
){
vm
.
formExam
.
exam
[
i
].
certClass
=
'is-error'
vm
.
formExam
.
exam
[
i
].
certError
=
'请选择证书'
this
.
$set
(
vm
.
formExam
.
exam
,
i
,
vm
.
formExam
.
exam
[
i
])
return
}
vm
.
formExam
.
exam
[
i
].
certClass
=
''
vm
.
formExam
.
exam
[
i
].
certError
=
''
if
(
parseInt
(
vm
.
formComponent
.
passAverageScore
)
>
parseInt
(
vm
.
formExam
.
exam
[
i
].
rangeMin
)){
vm
.
formExam
.
exam
[
i
].
minClass
=
'is-error'
vm
.
formExam
.
exam
[
i
].
minError
=
'平均分不能低于考试通过分数'
vm
.
customError
.
passAverageScore
=
{
className
:
'is-error'
,
error
:
'平均分不能低于考试通过分数'
}
return
}
if
(
checkIdList
.
indexOf
(
vm
.
formExam
.
exam
[
i
].
certificateId
)
==
-
1
){
checkIdList
.
push
(
vm
.
formExam
.
exam
[
i
].
certificateId
)
}
else
{
vm
.
formExam
.
exam
[
i
].
certClass
=
'is-error'
vm
.
formExam
.
exam
[
i
].
certError
=
'请重新选择,不能出现重复证书'
this
.
$set
(
vm
.
formExam
.
exam
,
i
,
vm
.
formExam
.
exam
[
i
])
return
;
}
this
.
customError
.
passAverageScore
=
{
className
:
''
,
error
:
''
}
//checkIdList[i] = vm.formExam.exam[i].certificateId;
this
.
$set
(
vm
.
formExam
.
exam
,
i
,
vm
.
formExam
.
exam
[
i
])
}
// 判断证书不能重复
// checkIdList = checkIdList.sort();
// for(let j=0;j
<
checkIdList
.
length
-
1
;
j
++
)
{
// if (checkIdList[j] == checkIdList[j+1]) {
// //vm.$message('证书不能重复选择');
// this.$message({
// message: '请重新选择,不能出现重复证书',
// type: 'warning'
// });
// return false;
// }
// }
// 考试门数必须相同
// for(let i=0;i
<
vm
.
formExam
.
exam
.
length
-
1
;
i
++
)
{
// if (vm.formExam.exam[i].examCount != vm.formExam.exam[i+1].examCount) {
// // vm.$message('考试门数必须相同');
// this.$message({
// message: '考试门数必须相同',
// type: 'warning'
// });
// return false;
// }
// }
}
else
{
if
(
this
.
formComponent
.
certificate
==
''
){
vm
.
customError
.
certificate
=
{
className
:
'is-error'
,
error
:
'请选择证书'
}
return
;
}
}
}
}
}
else
if
(
vm
.
formExam
.
certificateType
==
1
)
{
}
else
if
(
vm
.
formExam
.
certificateType
==
1
)
{
//组件通过即发放 证书必填
//组件通过即发放 证书必填
if
(
vm
.
formComponent
.
configure
==
1
&&
vm
.
formExam
.
certificateType
==
1
)
{
//
if(vm.formComponent.configure == 1 && vm.formExam.certificateType == 1) {
if
(
vm
.
formComponent
.
certificate
==
''
)
{
//
if(vm.formComponent.certificate == '') {
vm
.
$message
(
'证书不能为空!'
);
//
vm.$message('证书不能为空!');
return
false
;
//
return false;
}
//
}
}
//
}
}
}
return
true
;
return
true
;
},
},
...
@@ -3606,6 +4025,14 @@ export default {
...
@@ -3606,6 +4025,14 @@ export default {
};
};
</
script
>
</
script
>
<
style
lang=
"scss"
>
<
style
lang=
"scss"
>
.min-label
{
.el-form-item__label
{
line-height
:
26px
;
}
.el-form-item__content
{
line-height
:
26px
;
}
}
.add-manager-wrap
{
.add-manager-wrap
{
.add-content
{
.add-content
{
background
:
#fff
;
background
:
#fff
;
...
@@ -3613,6 +4040,34 @@ export default {
...
@@ -3613,6 +4040,34 @@ export default {
.rim
{
.rim
{
border
:
1px
solid
#dddddd
;
border
:
1px
solid
#dddddd
;
}
}
.mleft60
{
margin-left
:
60px
;
}
.soure-configure
{
background
:
#F9F9F9
;
padding
:
15px
;
width
:
550px
;
font-size
:
12px
;
color
:
#606266
;
position
:relative
;
margin-bottom
:
20px
;
.configure-option
{
position
:
absolute
;
right
:
-95px
;
top
:
50%
;
margin-top
:
-15px
;
}
.mb15
{
margin-bottom
:
15px
}
.configure-item
{
overflow
:hidden
;
.configure-item-l
{
display
:
inline-block
;
width
:
60px
;
text-align
:
right
;
}
}
}
.mini-source
{
background
:
#F9F9F9
;
width
:
650px
;
padding
:
15px
;
margin-bottom
:
20px
;
.source-item
{
padding-top
:
0px
;
font-size
:
12px
;
line-height
:
28px
;
color
:
#606266
;
}
}
.step-content
{
.step-content
{
overflow
:
hidden
;
overflow
:
hidden
;
height
:
60px
;
height
:
60px
;
...
...
src/views/education/item-component.vue
浏览文件 @
cbc7952c
...
@@ -145,6 +145,9 @@ export default {
...
@@ -145,6 +145,9 @@ export default {
vm
=
this
vm
=
this
vm
.
idType
=
localStorage
.
getItem
(
'storageIdType'
)
vm
.
idType
=
localStorage
.
getItem
(
'storageIdType'
)
vm
.
masterAdministratorFlag
=
localStorage
.
getItem
(
'storageMaster'
)
vm
.
masterAdministratorFlag
=
localStorage
.
getItem
(
'storageMaster'
)
if
(
this
.
$route
.
query
.
pageNum
){
vm
.
searchParam
.
pageNo
=
parseInt
(
this
.
$route
.
query
.
pageNum
)
}
vm
.
search
()
vm
.
search
()
},
},
// 挂载到Dom完成时
// 挂载到Dom完成时
...
@@ -190,7 +193,7 @@ export default {
...
@@ -190,7 +193,7 @@ export default {
}
}
vm
.
GET
(
'portal/portalComponent/componentEditRange'
,
req
).
then
((
res
)
=>
{
vm
.
GET
(
'portal/portalComponent/componentEditRange'
,
req
).
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
code
==
"000000"
)
{
vm
.
$router
.
push
({
path
:
'create-component'
,
query
:
{
id
:
row
.
id
,
status
:
row
.
status
,
resultFlag
:
res
.
data
.
resultFlag
}})
vm
.
$router
.
push
({
path
:
'create-component'
,
query
:
{
id
:
row
.
id
,
status
:
row
.
status
,
resultFlag
:
res
.
data
.
resultFlag
,
pageNum
:
vm
.
searchParam
.
pageNo
}})
}
else
{
}
else
{
vm
.
$message
.
info
(
res
.
message
)
vm
.
$message
.
info
(
res
.
message
)
}
}
...
@@ -310,5 +313,3 @@ export default {
...
@@ -310,5 +313,3 @@ export default {
}
}
}
}
</
style
>
</
style
>
src/views/education/item-manager.vue
浏览文件 @
cbc7952c
...
@@ -260,7 +260,7 @@ export default {
...
@@ -260,7 +260,7 @@ export default {
if
(
this
.
formInline
.
projectEndtime
!=
""
&&
this
.
formInline
.
projectEndtime
!=
null
)
{
if
(
this
.
formInline
.
projectEndtime
!=
""
&&
this
.
formInline
.
projectEndtime
!=
null
)
{
return
(
return
(
time
.
getTime
()
>
time
.
getTime
()
>
new
Date
(
this
.
formInline
.
projectEndtime
).
getTime
()
new
Date
(
this
.
formInline
.
projectEndtime
).
getTime
()
);
);
}
}
}
}
...
@@ -269,7 +269,7 @@ export default {
...
@@ -269,7 +269,7 @@ export default {
disabledDate
:
time
=>
{
disabledDate
:
time
=>
{
return
(
return
(
time
.
getTime
()
<
time
.
getTime
()
<
new
Date
(
this
.
formInline
.
projectBegintime
).
getTime
()
new
Date
(
this
.
formInline
.
projectBegintime
).
getTime
()
);
//减去一天的时间代表可以选择同一天;
);
//减去一天的时间代表可以选择同一天;
}
}
},
},
...
@@ -279,7 +279,7 @@ export default {
...
@@ -279,7 +279,7 @@ export default {
},
},
computed
:
{
computed
:
{
...
mapGetters
([
...
mapGetters
([
"_token"
,
"_token"
,
// "idType",
// "idType",
// "masterAdministratorFlag"
// "masterAdministratorFlag"
])
])
...
@@ -289,6 +289,9 @@ export default {
...
@@ -289,6 +289,9 @@ export default {
vm
.
idType
=
localStorage
.
getItem
(
'storageIdType'
);
vm
.
idType
=
localStorage
.
getItem
(
'storageIdType'
);
vm
.
masterAdministratorFlag
=
localStorage
.
getItem
(
'storageMaster'
);
vm
.
masterAdministratorFlag
=
localStorage
.
getItem
(
'storageMaster'
);
console
.
log
(
'idType:'
,
vm
.
idType
);
console
.
log
(
'idType:'
,
vm
.
idType
);
if
(
this
.
$route
.
query
.
pageNum
){
this
.
formInline
.
pageNo
=
parseInt
(
this
.
$route
.
query
.
pageNum
)
}
this
.
$nextTick
(
function
()
{;
this
.
$nextTick
(
function
()
{;
this
.
getProjectList
();
this
.
getProjectList
();
});
});
...
@@ -360,7 +363,7 @@ export default {
...
@@ -360,7 +363,7 @@ export default {
let
level
=
row
.
level
;
let
level
=
row
.
level
;
if
(
type
===
0
)
{
if
(
type
===
0
)
{
//编辑
//编辑
this
.
$router
.
push
(
"edit-manager?projectId="
+
projectId
+
"&level="
+
level
);
this
.
$router
.
push
(
"edit-manager?projectId="
+
projectId
+
"&level="
+
level
+
'&pageNum='
+
this
.
formInline
.
pageNo
);
}
else
if
(
type
===
7
)
{
}
else
if
(
type
===
7
)
{
//提醒审核
//提醒审核
let
req
=
{
let
req
=
{
...
@@ -542,7 +545,7 @@ export default {
...
@@ -542,7 +545,7 @@ export default {
}
}
}
}
}
}
.el-tooltip__popper
{
.el-tooltip__popper
{
max-width
:
50%
max-width
:
50%
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/system/item-role.vue
浏览文件 @
cbc7952c
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
<div
class=
"header-title"
>
<div
class=
"header-title"
>
查询条件
查询条件
<el-upload
<el-upload
v-if=
"activeUser == 'L1'"
v-if=
"activeUser == 'L1'
&& authorityType == 1
"
class=
"upload-excel"
class=
"upload-excel"
action=
"#"
action=
"#"
accept=
".xlsx"
accept=
".xlsx"
...
@@ -106,42 +106,61 @@
...
@@ -106,42 +106,61 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"350"
align=
"left"
>
<el-table-column
fixed=
"right"
label=
"操作"
width=
"350"
align=
"left"
>
<
template
slot-scope=
"scope"
>
<el-button
<
template
slot-scope=
"scope"
>
class=
"button-text"
<div
v-if=
"authorityType == 2"
>
type=
"text"
<el-button
size=
"small"
class=
"button-text"
v-show=
"showButton(scope.row,'L2')"
type=
"text"
@
click=
"openDialog(scope.row,'L2')"
size=
"small"
>
升级项目负责人
</el-button>
v-if=
"scope.row.projeceRole != 'L2'"
<el-button
@
click=
"proChange(scope.row,'L2')"
class=
"button-text"
>
升级项目负责人
</el-button>
type=
"text"
<el-button
size=
"small"
class=
"button-text"
v-show=
"showButton(scope.row,'L3')"
type=
"text"
@
click=
"openDialog(scope.row,'L3')"
size=
"small"
>
升级次级负责人
</el-button>
v-else
<el-button
@
click=
"proChange(scope.row,'')"
class=
"button-text"
>
取消项目负责人
</el-button>
type=
"text"
</div>
size=
"small"
<div
v-if=
"authorityType == 1"
>
v-show=
"showButton(scope.row,'L3_2')"
<el-button
@
click=
"openDialog(scope.row,'L3_2')"
class=
"button-text"
>
降为次级负责人
</el-button>
type=
"text"
<el-button
size=
"small"
class=
"button-text"
v-show=
"showButton(scope.row,'L2')"
type=
"text"
@
click=
"openDialog(scope.row,'L2')"
size=
"small"
>
升级项目负责人
</el-button>
v-show=
"showButton(scope.row,'L0')"
<el-button
@
click=
"openDialog(scope.row,'L0')"
class=
"button-text"
>
降为普通用户
</el-button>
type=
"text"
<el-button
size=
"small"
class=
"button-text"
v-show=
"showButton(scope.row,'L3')"
type=
"text"
@
click=
"openDialog(scope.row,'L3')"
size=
"small"
>
升级次级负责人
</el-button>
v-show=
"showAppend(scope.row.projeceRole)"
<el-button
@
click=
"addArea(scope.row)"
class=
"button-text"
>
追加区域权限
</el-button>
type=
"text"
size=
"small"
v-show=
"showButton(scope.row,'L3_2')"
@
click=
"openDialog(scope.row,'L3_2')"
>
降为次级负责人
</el-button>
<el-button
class=
"button-text"
type=
"text"
size=
"small"
v-show=
"showButton(scope.row,'L0')"
@
click=
"openDialog(scope.row,'L0')"
>
降为普通用户
</el-button>
<el-button
class=
"button-text"
type=
"text"
size=
"small"
v-show=
"showAppend(scope.row.projeceRole)"
@
click=
"addArea(scope.row)"
>
追加区域权限
</el-button>
</div>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<div
slot=
"empty"
>
<div
slot=
"empty"
>
...
@@ -163,6 +182,18 @@
...
@@ -163,6 +182,18 @@
:total=
"totalRows"
:total=
"totalRows"
></el-pagination>
></el-pagination>
</div>
</div>
<el-dialog
title
:visible
.
sync=
"changeDialog.show"
width=
"30%"
center
>
<p
v-html=
"changeDialog.txt"
>
</p>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"default"
size=
"small"
@
click=
"changeDialog.show = false"
>
取消
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"changeFunRole()"
>
确定
</el-button>
</span>
</el-dialog>
<el-dialog
title
:visible
.
sync=
"dialog.show"
width=
"30%"
center
>
<el-dialog
title
:visible
.
sync=
"dialog.show"
width=
"30%"
center
>
<!-- <p v-if="numL3 > 1" class="dialog-p">
<!-- <p v-if="numL3 > 1" class="dialog-p">
确认将{{ dialog.role }}
确认将{{ dialog.role }}
...
@@ -359,7 +390,12 @@ export default {
...
@@ -359,7 +390,12 @@ export default {
role
:
"项目负责人"
,
role
:
"项目负责人"
,
name
:
"李雷"
,
name
:
"李雷"
,
option
:
"升级为项目负责人"
,
option
:
"升级为项目负责人"
,
full
:
false
full
:
false
,
},
changeDialog
:{
show
:
false
,
txt
:
''
},
},
dialogFull
:
false
,
dialogFull
:
false
,
scopeRow
:
{},
scopeRow
:
{},
...
@@ -384,7 +420,10 @@ export default {
...
@@ -384,7 +420,10 @@ export default {
attachRegionId
:
""
,
attachRegionId
:
""
,
creator
:
false
,
creator
:
false
,
hospitalMasterAdmin
:
false
hospitalMasterAdmin
:
false
,
optionType
:
''
,
optionItem
:{},
authorityType
:
0
,
};
};
},
},
created
()
{
created
()
{
...
@@ -396,6 +435,45 @@ export default {
...
@@ -396,6 +435,45 @@ export default {
commonUtil
.
resizeHeight
();
commonUtil
.
resizeHeight
();
},
},
methods
:
{
methods
:
{
//add 升、降项目负责人
proChange
(
item
,
str
){
this
.
optionType
=
str
;
this
.
optionItem
=
item
;
let
s
=
''
s
=
str
!=
''
?
'确认将项目负责人 <span class="user-name">'
+
item
.
userName
+
'</span> 升级为项目负责人吗?'
:
'确认取消 <span class="user-name">'
+
item
.
userName
+
'</span> 项目负责人权限吗?'
this
.
changeDialog
=
{
show
:
true
,
txt
:
s
}
},
changeFunRole
()
{
let
req
=
{
portalProjectId
:
this
.
formInline
.
portalProjectId
,
updateL
:
this
.
optionType
==
''
?
'L3'
:
'L2'
,
userId
:
this
.
optionItem
.
userId
,
numL2
:
this
.
numL2
,
nowL
:
this
.
optionItem
.
projeceRole
};
// vm.GET("portal/portalProjectOrRole/roleLevelUpdate", req).then(res => {
vm
.
GET
(
"portal/v2/role/roleLevelUpdate"
,
req
).
then
(
res
=>
{
vm
.
dialog
.
show
=
false
;
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
res
);
vm
.
queryRoleList
();
vm
.
$message
({
message
:
"设置成功!"
,
type
:
"success"
});
this
.
changeDialog
=
{
show
:
false
,
txt
:
''
}
}
else
{
this
.
$message
.
error
(
res
.
code
);
}
});
},
updateAgain
()
{
updateAgain
()
{
vm
.
dialogFail
=
false
;
vm
.
dialogFail
=
false
;
},
},
...
@@ -497,6 +575,8 @@ export default {
...
@@ -497,6 +575,8 @@ export default {
closeLoading
(
vm
);
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
code
==
"000000"
)
{
vm
.
tableData
=
res
.
data
.
projectRoleInfoModels
;
vm
.
tableData
=
res
.
data
.
projectRoleInfoModels
;
vm
.
authorityType
=
res
.
data
.
authorityType
vm
.
totalRows
=
res
.
data
.
total
;
vm
.
totalRows
=
res
.
data
.
total
;
vm
.
activeUser
=
res
.
data
.
activeUser
;
vm
.
activeUser
=
res
.
data
.
activeUser
;
vm
.
creator
=
res
.
data
.
creator
;
vm
.
creator
=
res
.
data
.
creator
;
...
@@ -1094,4 +1174,4 @@ export default {
...
@@ -1094,4 +1174,4 @@ export default {
overflow-y
:
scroll
;
overflow-y
:
scroll
;
}
}
}
}
</
style
>
</
style
>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录