提交 cbc7952c 编写于 作者: chendeli's avatar chendeli

Merge branch 'release-backups' into release

...@@ -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="125px" label-suffix=":" size="small" style="margin-bottom:30px;"> <el-form ref="basicInfoForm" class="basic-form" :model="portalComponent" :rules="rules" label-width="175px" 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: '60', // 证书完成率 certificateCondition: '100', // 证书完成率
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 = 60 //vm.portalComponent.certificateCondition = 100
} }
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>
...@@ -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.certificateType" v-model="formExam.passType"
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.certificateType == 2) { if(this.formExam.passType == 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.certificateType == 2) { if(vm.formExam.passType == 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.certificateType == 1) { } else if(vm.formExam.passType == 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;
......
...@@ -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>
...@@ -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
...@@ -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 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册