Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica-admin-IM
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
计划
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
作业
提交
议题看板
打开侧边栏
com.pica.cloud.education.frontend
pica-admin-IM
提交
4a54f385
提交
4a54f385
编写于
3月 12, 2019
作者:
huangwensu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
创建组件问题修复
上级
11aebd07
变更
1
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
118 行增加
和
44 行删除
+118
-44
create-component.vue
src/views/education/create-component.vue
+118
-44
未找到文件。
src/views/education/create-component.vue
浏览文件 @
4a54f385
...
...
@@ -15,16 +15,18 @@
<el-step
title=
"选择模块"
:class=
"stepNum == 2 ? 'class-1-text' : 'class-2-text'"
></el-step>
</el-steps>
<div
class=
"btn-container"
>
<el-button
v-if=
"
componentStatus == 1 || !componentStatus"
type=
"default"
size=
"small"
@
click=
"storageAndNext(1)
"
>
暂存
</el-button>
<el-button
v-if=
"
stepNum == 1 && (componentStatus == 1 || !componentStatus)"
@
click=
"storageAndNext(1)"
type=
"default"
size=
"small
"
>
暂存
</el-button>
<el-button
v-if=
"stepNum == 1"
@
click=
"storageAndNext(2)"
type=
"primary"
size=
"small"
style=
"margin-left:0;"
>
下一步
</el-button>
<el-button
v-if=
"stepNum == 2"
@
click=
"finishConponent"
type=
"primary"
size=
"small"
style=
"margin-left:0;"
>
完成
</el-button>
<el-button
v-if=
"stepNum == 2 && (componentStatus == 1 || !componentStatus)"
@
click=
"finishConponent(1)"
type=
"default"
size=
"small"
>
暂存
</el-button>
<el-button
v-if=
"stepNum == 2"
@
click=
"finishConponent(2)"
type=
"primary"
size=
"small"
style=
"margin-left:0;"
>
完成
</el-button>
</div>
</div>
<div
class=
"first-step"
v-if=
"stepNum == 1"
>
<el-form
ref=
"basicInfoForm"
class=
"basic-form"
:model=
"portalComponent"
:rules=
"
isStorage ? basicStorageRule : basicRule
"
label-width=
"125px"
label-suffix=
":"
size=
"mini"
style=
"margin-bottom:30px;"
>
<el-form
ref=
"basicInfoForm"
class=
"basic-form"
:model=
"portalComponent"
:rules=
"
rules
"
label-width=
"125px"
label-suffix=
":"
size=
"mini"
style=
"margin-bottom:30px;"
>
<el-form-item
label=
"组件名称"
prop=
"name"
>
<el-input
type=
"text"
v-model=
"portalComponent.name"
size=
"mini"
placeholder=
"请输入组件名称"
style=
"width:30%;"
></el-input>
<el-input
type=
"text"
v-model=
"portalComponent.name"
@
blur=
"componentName"
size=
"mini"
placeholder=
"请输入组件名称"
style=
"width:30%;"
></el-input>
<span
class=
"word-num"
>
0/20
</span>
<p
class=
"component-name"
v-if=
"isStorage"
>
输入组件名称
</p>
</el-form-item>
<el-form-item
label=
"组件简介"
prop=
"introduce"
>
<el-input
type=
"textarea"
rows=
"4"
cols=
"10"
v-model=
"portalComponent.introduce"
size=
"mini"
placeholder=
"请输入组件简介"
style=
"width:37%;"
></el-input>
...
...
@@ -89,7 +91,7 @@
<el-tabs
type=
"card"
v-model=
"firstTab"
closable
@
tab-remove=
"removeTab"
>
<el-tab-pane
v-for=
"(item,index) in componentList.moduleModelList"
:key=
"index"
:label=
"'模块' + parseInt(index + 1)"
:name=
'"" + parseInt(index + 1)'
>
<div>
<el-form
ref=
"moduleForm"
:model=
"item"
:rules=
"
r
ules"
label-suffix=
":"
label-width=
"130px"
style=
"width:100%;"
>
<el-form
ref=
"moduleForm"
:model=
"item"
:rules=
"
moduleR
ules"
label-suffix=
":"
label-width=
"130px"
style=
"width:100%;"
>
<el-row>
<el-col
:span=
"10"
>
<el-form-item
label=
"模块名称"
prop=
"name"
>
...
...
@@ -133,6 +135,7 @@
<div
v-for=
"(item2,index2) in item1.partModelList"
:key=
"index2"
>
<!-- 考试 -->
<div
v-if=
"item2.type == 1"
>
<div
class=
"partText"
v-if=
"index2 > 0"
>
{{
item2
.
introduce
}}
</div>
<div
v-for=
"(item3,index3) in item2.partContentModelList"
:key=
"index3"
>
<el-row>
<el-col
:span=
"10"
>
...
...
@@ -157,10 +160,10 @@
</el-row>
<el-row>
<el-col
:span=
"10"
>
<el-form-item
label=
"配置证书"
prop=
"c
ontent3
"
>
<el-radio-group
v-model=
"item3.c
ontent3
"
:disabled=
"item.moduleType == 2 || (componentId && item.openFlag == 2)"
>
<el-radio
:label=
"
item3.content3
"
>
是
</el-radio>
<el-radio
:label=
"
item3.content3
"
>
否
</el-radio>
<el-form-item
label=
"配置证书"
prop=
"c
ertificateFlag
"
>
<el-radio-group
v-model=
"item3.c
ertificateFlag
"
:disabled=
"item.moduleType == 2 || (componentId && item.openFlag == 2)"
>
<el-radio
:label=
"
2
"
>
是
</el-radio>
<el-radio
:label=
"
1
"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
</el-col>
...
...
@@ -181,6 +184,7 @@
</div>
<!-- 课程 -->
<div
v-if=
"item2.type == 2"
>
<div
class=
"partText"
v-if=
"index2 > 0"
>
{{
item2
.
introduce
}}
</div>
<el-row
v-for=
"(item3,index3) in item2.partContentModelList"
:key=
"index3"
>
<el-col
:span=
"10"
>
<el-form-item
label=
"课程名称"
prop=
"content1"
>
...
...
@@ -195,7 +199,7 @@
<el-option
v-for=
"(itemCourse,indexCourse) in courseIdSelect"
:key=
"indexCourse"
:label=
"itemCourse.
id
"
:label=
"itemCourse.
name
"
:value=
"itemCourse.id"
>
</el-option>
</el-select>
...
...
@@ -347,9 +351,9 @@ export default {
courseIndex2
:
''
,
courseIndex3
:
''
,
stepNum
:
1
,
isStorage
:
true
,
componentId
:
''
,
componentStatus
:
''
,
isStorage
:
false
,
dialogTitle
:
'选择模板'
,
curmbFirst
:
'教培项目'
,
curmbSecond
:
'项目组件'
,
...
...
@@ -393,16 +397,7 @@ export default {
selectResource
:
{
resourceModuleSelect
:
''
},
basicStorageRule
:
{
"name"
:
[
{
required
:
true
,
message
:
'输入组件名称'
,
trigger
:
'blur'
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
validateRepeatWord
(
rule
,
value
,
callback
,
'输入长度为2-20个中文'
)
},
trigger
:
'blur'
}
]
},
basicRule
:
{
rules
:
{
"name"
:
[
{
required
:
true
,
message
:
'输入组件名称'
,
trigger
:
'blur'
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
...
...
@@ -430,7 +425,7 @@ export default {
{
required
:
true
,
message
:
'请选择获得证书完成率'
,
trigger
:
'blur'
},
]
},
r
ules
:
{
moduleR
ules
:
{
"name"
:
[
{
required
:
true
,
message
:
'请输入模块名称'
,
trigger
:
'blur'
},
{
validator
:
function
(
rule
,
value
,
callback
)
{
...
...
@@ -510,15 +505,34 @@ export default {
submitBasicData
(
flag
,
url
)
{
if
(
flag
==
1
)
{
// 暂存
vm
.
portalComponent
.
status
=
1
if
(
!
vm
.
portalComponent
.
name
)
{
vm
.
isStorage
=
true
}
else
{
// 下一步
vm
.
portalComponent
.
status
=
''
return
}
else
{
vm
.
isStorage
=
false
}
vm
.
submitBasic
(
url
)
}
else
{
// 下一步
vm
.
isStorage
=
false
vm
.
portalComponent
.
status
=
''
vm
.
$refs
.
basicInfoForm
.
validate
((
valid
)
=>
{
if
(
valid
)
{
vm
.
submitBasic
(
url
)
}
else
{
return
false
;
}
})
}
},
componentName
()
{
vm
.
isStorage
=
false
},
submitBasic
(
url
)
{
vm
.
POST
(
url
,{
model
:
vm
.
portalComponent
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
if
(
!
vm
.
componentId
)
{
vm
.
componentId
=
res
.
data
}
vm
.
stepNum
=
2
vm
.
getTemplateData
()
vm
.
getModuleData
()
...
...
@@ -526,10 +540,6 @@ export default {
vm
.
getCourseData
()
}
})
}
else
{
return
false
;
}
})
},
// 上传组件图片
beforeAvatarUpload
(
file
)
{
...
...
@@ -570,12 +580,13 @@ export default {
},
// 根据考试ID填充考试名称
changeExamID
(
value
)
{
let
examName
for
(
let
i
=
0
;
i
<
vm
.
testIdSelect
.
length
;
i
++
)
{
if
(
value
==
vm
.
testIdSelect
[
i
].
id
)
{
vm
.
examName
=
vm
.
testIdSelect
[
i
].
onlineExamName
examName
=
vm
.
testIdSelect
[
i
].
onlineExamName
}
}
vm
.
componentList
.
moduleModelList
[
vm
.
examIndex
].
templetModelList
[
vm
.
examIndex1
].
partModelList
[
vm
.
examIndex2
].
partContentModelList
[
vm
.
examIndex3
].
content1
=
vm
.
examName
vm
.
componentList
.
moduleModelList
[
vm
.
examIndex
].
templetModelList
[
vm
.
examIndex1
].
partModelList
[
vm
.
examIndex2
].
partContentModelList
[
vm
.
examIndex3
].
content1
=
examName
},
examIDfocus
(
index
,
index1
,
index2
,
index3
)
{
vm
.
examIndex
=
index
...
...
@@ -707,7 +718,9 @@ export default {
conditionFlag
:
item
.
partConfigModelList
[
i
].
conditionFlag
,
// 1为没有限制 2有限制
numFlag
:
item
.
partConfigModelList
[
i
].
numFlag
,
// 1为单个 2为可以无限添加
templetSeqNo
:
''
,
introduce
:
item
.
partConfigModelList
[
i
].
introduce
,
partContentModelList
:
[{
certificateFlag
:
1
,
// 是否有证书 1无 2有
id
:
''
,
seqNo
:
''
,
content_1
:
''
,
...
...
@@ -724,6 +737,7 @@ export default {
conditionFlag
:
item
.
partConfigModelList
[
i
].
conditionFlag
,
// 1为没有限制 2有限制
numFlag
:
item
.
partConfigModelList
[
i
].
numFlag
,
// 1为单个 2为可以无限添加
templetSeqNo
:
''
,
introduce
:
item
.
partConfigModelList
[
i
].
introduce
,
partContentModelList
:
[{
id
:
''
,
seqNo
:
''
,
...
...
@@ -830,16 +844,54 @@ export default {
}
},
// 完成
finishConponent
()
{
finishConponent
(
flag
)
{
let
req
=
null
if
(
vm
.
componentList
.
moduleModelList
&&
vm
.
componentList
.
moduleModelList
.
length
>
0
)
{
for
(
let
i
=
0
;
i
<
vm
.
componentList
.
moduleModelList
.
length
;
i
++
)
{
if
(
flag
==
2
)
{
req
=
{
id
:
vm
.
componentId
,
status
:
2
}
if
(
!
vm
.
componentList
.
moduleModelList
[
i
].
name
)
{
vm
.
$message
.
info
(
"请输入第"
+
parseInt
(
i
+
1
)
+
"个模块名称"
)
return
}
if
(
!
vm
.
componentList
.
moduleModelList
[
i
])
{
vm
.
$message
.
info
(
"请添加有效模块
后再保存"
)
vm
.
$message
.
info
(
"请给第"
+
parseInt
(
i
+
1
)
+
"个模块添加有效模板
后再保存"
)
return
}
}
else
{
req
=
{
id
:
vm
.
componentId
,
status
:
1
}
}
vm
.
componentList
.
moduleModelList
[
i
].
componentId
=
vm
.
componentId
vm
.
finishModule
(
req
)
}
}
else
{
vm
.
$message
.
info
(
"请添加有效模块后再保存"
)
return
}
},
finishModule
(
req
)
{
vm
.
POST
(
'portalComponent/insertOrUpdatePortalModule'
,{
model
:
vm
.
componentList
.
moduleModelList
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
vm
.
enableComponent
(
req
)
}
})
},
// 启用
enableComponent
(
req
)
{
vm
.
GET
(
'portalComponent/disableOrStart'
,
req
).
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
$router
.
push
({
path
:
'item-component'
})
}
else
{
vm
.
$message
({
message
:
res
.
message
,
type
:
'warning'
});
}
})
},
...
...
@@ -849,6 +901,13 @@ export default {
vm
.
GET
(
'portalComponent/ModuleList'
,{
openFlag
:
2
}).
then
((
res
)
=>
{
if
(
res
.
code
==
'000000'
)
{
vm
.
resourceArray
=
res
.
data
.
moduleModelList
for
(
let
i
=
0
;
i
<
vm
.
componentList
.
moduleModelList
.
length
;
i
++
)
{
for
(
let
j
=
0
;
j
<
vm
.
resourceArray
.
length
;
j
++
)
{
if
(
vm
.
componentList
.
moduleModelList
[
i
].
id
==
vm
.
resourceArray
[
j
].
id
)
{
vm
.
resourceArray
.
splice
(
j
,
1
)
}
}
}
}
})
},
...
...
@@ -903,6 +962,15 @@ export default {
}
}
}
.component-name
{
color
:
#F56C6C
;
font-size
:
12px
;
line-height
:
1
;
padding-top
:
1px
;
position
:
absolute
;
top
:
100%
;
left
:
0
;
}
}
.step-content
{
overflow
:
hidden
;
...
...
@@ -1003,6 +1071,12 @@ export default {
margin-bottom
:
20px
;
}
}
.partText
{
font-size
:
12px
;
margin-left
:
67px
;
color
:
#999
;
padding
:
0px
0
15px
;
}
}
.module-form
{
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录