提交 4a54f385 编写于 作者: huangwensu's avatar huangwensu

创建组件问题修复

上级 11aebd07
......@@ -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="rules" label-suffix=":" label-width="130px" style="width:100%;">
<el-form ref="moduleForm" :model="item" :rules="moduleRules" 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="content3">
<el-radio-group v-model="item3.content3" :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="certificateFlag">
<el-radio-group v-model="item3.certificateFlag" :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' },
]
},
rules: {
moduleRules: {
"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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册