fix:修改项目编辑的BOEU是否实施

This commit is contained in:
lixg
2022-12-04 13:21:25 +08:00
parent 0f1a2c0b3e
commit 7e13091088

View File

@@ -2,12 +2,14 @@
<template>
<div class="projectAdd">
<div class="header">
<span class="title">{{ projectInfo.parentId ? '编辑' : '创建' }}项目</span>
<span class="title"
>{{ projectInfo.parentId ? "编辑" : "创建" }}项目</span
>
<div
@click="backPage"
style="cursor: pointer"
to="/projectmanage"
class="goback"
@click="backPage"
style="cursor: pointer"
to="/projectmanage"
class="goback"
>
<span class="return"></span><span class="returntext">返回</span>
</div>
@@ -17,8 +19,8 @@
<div class="name" v-if="projectInfo.parentName">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目归属</div>
</div>
@@ -31,26 +33,26 @@
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目名称</div>
</div>
<div class="in">
<a-input
v-model:value="projectInfo.name"
placeholder="请输入项目名称"
show-count
:maxlength="30"
:disabled="viewDetail ? true : false"
v-model:value="projectInfo.name"
placeholder="请输入项目名称"
show-count
:maxlength="30"
:disabled="viewDetail ? true : false"
/>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">分类</div>
</div>
@@ -61,14 +63,14 @@
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">封面图</div>
</div>
<div
:class="`box ${projectInfo.picUrl == src?'active':''}`"
style="
:class="`box ${projectInfo.picUrl == src ? 'active' : ''}`"
style="
width: 100px;
height: 100px;
border-radius: 5px;
@@ -76,69 +78,77 @@
position: relative;
overflow: hidden;
"
v-for="(src,index) in projectPic"
:key="index"
@click="()=>{
projectInfo.picUrl = src
}"
v-for="(src, index) in projectPic"
:key="index"
@click="
() => {
projectInfo.picUrl = src;
}
"
>
<img
style="
style="
width: 100px;
height: 100px;
margin-bottom: 4px;
margin-right: 4px;
"
:src="src"
alt="avatar"
:src="src"
alt="avatar"
/>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目时间</div>
</div>
<div class="in">
<a-range-picker
separator="至"
:placeholder="[' 开始时间', ' 结束时间']"
v-model:value="projectInfo.rangeTime"
style="width: 100%; height: 40px; border-radius: 5px"
valueFormat="YYYY-MM-DD HH:mm:ss"
@change="timeChange"
:disabled="viewDetail ? true : false"
separator="至"
:placeholder="[' 开始时间', ' 结束时间']"
v-model:value="projectInfo.rangeTime"
style="width: 100%; height: 40px; border-radius: 5px"
valueFormat="YYYY-MM-DD HH:mm:ss"
@change="timeChange"
:disabled="viewDetail ? true : false"
/>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目经理</div>
</div>
<div class="in">
<ProjectManager v-model:value="projectInfo.managerId" v-model:name="projectInfo.manager"
mode="multiple"></ProjectManager>
<ProjectManager
v-model:value="projectInfo.managerId"
v-model:name="projectInfo.manager"
mode="multiple"
></ProjectManager>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">资源归属</div>
</div>
<div class="in select">
<OrgClass v-model:value="projectInfo.sourceBelongId" v-model:name="projectInfo.sourceBelongName"></OrgClass>
<OrgClass
v-model:value="projectInfo.sourceBelongId"
v-model:name="projectInfo.sourceBelongName"
></OrgClass>
</div>
</div>
<div class="name name2">
@@ -147,12 +157,12 @@
</div>
<div class="in">
<a-textarea
v-model:value="projectInfo.remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
:disabled="viewDetail ? true : false"
v-model:value="projectInfo.remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
:disabled="viewDetail ? true : false"
/>
</div>
</div>
@@ -162,25 +172,26 @@
</div>
<div class="in">
<a-switch
v-model:checked="projectInfo.courseSyncFlag"
:checkedValue="1"
:unCheckedValue="0"
:disabled="viewDetail ? true : false"
><span
v-model:checked="projectInfo.courseSyncFlag"
:checkedValue="1"
:unCheckedValue="0"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%;
color: rgba(109, 117, 132, 1);
font-size: 14px;
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-switch>
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-switch
>
</div>
</div>
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目级别</div>
</div>
@@ -191,8 +202,8 @@
<div class="name">
<div class="namebox">
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">培训分类</div>
</div>
@@ -202,19 +213,30 @@
</div>
<div class="name">
<div class="namebox">
<!-- <img-->
<!-- class="nameimg"-->
<!-- src="../../assets/images/basicinfo/asterisk.png"-->
<!-- />-->
<!-- <img-->
<!-- class="nameimg"-->
<!-- src="../../assets/images/basicinfo/asterisk.png"-->
<!-- />-->
<img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">是否BOEU实施</div>
</div>
<div class="in">
<a-switch
<!-- <a-switch
v-model:checked="projectInfo.boeFlag"
:checkedValue="1"
:unCheckedValue="0"
:disabled="viewDetail ? true : false"
></a-switch>
></a-switch> -->
<a-radio-group
v-model:value="projectInfo.boeFlag"
:disabled="viewDetail ? true : false"
>
<a-radio :style="radioStyle" :value="1"></a-radio>
<a-radio :style="radioStyle" :value="0"></a-radio>
</a-radio-group>
</div>
</div>
</div>
@@ -223,19 +245,19 @@
<div class="inname" style="width: 50px">模版</div>
<div class="in select" style="margin-left: 2px">
<a-select
:getPopupContainer="
:getPopupContainer="
(triggerNode) => {
return triggerNode.parentNode || document.body;
}
"
v-model:value="classifySelect5"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
@popupScroll="templateScroll"
:fieldNames="{
v-model:value="classifySelect5"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
@popupScroll="templateScroll"
:fieldNames="{
label: 'name',
value: 'projectTemplateId',
}"
@@ -248,26 +270,25 @@
<div class="footer">
<div class="btn">
<a-button v-on:click="createProject" type="primary" class="btn1"
>确定
</a-button
>
>确定
</a-button>
<a-button @click="backPage" class="btn2">取消</a-button>
</div>
</div>
</div>
</template>
<script>
import {onMounted, reactive, toRefs, watch} from "vue";
import {message} from "ant-design-vue";
import {useRoute, useRouter} from "vue-router";
import { onMounted, reactive, toRefs, watch } from "vue";
import { message } from "ant-design-vue";
import { useRoute, useRouter } from "vue-router";
import * as api from "../../api/index";
import {useStore} from "vuex";
import { useStore } from "vuex";
import ProjectClass from "@/components/project/ProjectClass";
import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManager";
import ProjectLevel from "@/components/project/ProjectLevel";
import {scrollLoad} from "@/api/method";
import { scrollLoad } from "@/api/method";
export default {
name: "projectAdd",
@@ -276,7 +297,7 @@ export default {
ProjectLevel,
ProjectClass,
TrainClass,
OrgClass
OrgClass,
},
setup() {
const store = useStore();
@@ -295,37 +316,44 @@ export default {
pageSize: 10,
keyWord: "",
},
classifyList5: []
classifyList5: [],
});
onMounted(() => {
state.projectPic = store.state.projectPic.map(e => e.dictValue)
state.viewDetail = routers.query.viewDetail
getProjectInfo()
getTemplate()
})
state.projectPic = store.state.projectPic.map((e) => e.dictValue);
state.viewDetail = routers.query.viewDetail;
getProjectInfo();
getTemplate();
});
watch(routers.query, () => {
state.projectInfo.projectId = routers.query.projectId
state.projectInfo.parentName = routers.query.parentName
state.projectInfo.parentId = routers.query.parentId
})
state.projectInfo.projectId = routers.query.projectId;
state.projectInfo.parentName = routers.query.parentName;
state.projectInfo.parentId = routers.query.parentId;
});
function getProjectInfo() {
if (!routers.query.projectId) {
state.projectInfo = {parentName: routers.query.parentName, parentId: routers.query.parentId}
return
state.projectInfo = {
parentName: routers.query.parentName,
parentId: routers.query.parentId,
};
return;
}
api.getProjectDetail({projectId: routers.query.projectId}).then(res => {
state.projectInfo = res.data.data.projectInfo
state.projectInfo.rangeTime = [state.projectInfo.beginTime, state.projectInfo.endTime]
state.projectInfo.parentName = routers.query.parentName
})
api
.getProjectDetail({ projectId: routers.query.projectId })
.then((res) => {
state.projectInfo = res.data.data.projectInfo;
state.projectInfo.rangeTime = [
state.projectInfo.beginTime,
state.projectInfo.endTime,
];
state.projectInfo.parentName = routers.query.parentName;
});
}
const backPage = () => {
router.back()
router.back();
};
//选择分类
@@ -334,25 +362,24 @@ export default {
state.projectType = value; //分类选择的id
};
const classificationChange5 = (key, option) => {
state.projectInfo = option
state.projectInfo.type = 3
state.projectInfo.rangeTime = [option.beginTime, option.endTime]
state.projectInfo.parentName = routers.query.parentName
state.projectInfo.parentId = routers.query.parentId
state.projectInfo = option;
state.projectInfo.type = 3;
state.projectInfo.rangeTime = [option.beginTime, option.endTime];
state.projectInfo.parentName = routers.query.parentName;
state.projectInfo.parentId = routers.query.parentId;
};
//获取模版列表
const getTemplate = () => {
let obj = {
pageNo: state.currentPage,
pageSize: state.pageSize,
status: 1
status: 1,
};
api.getTemplate(obj).then((res) => {
state.totalPages = Number(res.data.data.pages);
state.classifyList5 = res.data.data.rows
})
state.classifyList5 = res.data.data.rows;
});
};
//模版滚动加载模板信息
@@ -378,18 +405,19 @@ export default {
sourceBelongId: "请选择资源归属",
level: "请填写项目级别",
systemId: "请填写项目培训体系",
boeFlag: "请选择是否BOEU实施",
};
function timeChange(e) {
if (e && e.length === 2) {
state.projectInfo.beginTime = e[0]
state.projectInfo.endTime = e[1]
state.projectInfo.beginTime = e[0];
state.projectInfo.endTime = e[1];
}
}
function validate(obj, errorMsgs) {
for (let i in errorMsgs) {
if (!obj[i]) {
if (!obj[i] && obj[i] !== 0) {
message.destroy();
message.warning(errorMsgs[i]);
return false;
@@ -403,13 +431,12 @@ export default {
if (!validate(state.projectInfo, errorMsgs)) {
return;
}
state.projectInfo.type = 3
state.projectInfo.type = 3;
api.createProject(state.projectInfo).then(() => {
message.destroy();
message.success("编辑成功");
router.back()
}
)
message.destroy();
message.success("编辑成功");
router.back();
});
};
return {
@@ -419,7 +446,7 @@ export default {
classificationChange5,
createProject,
backPage,
templateScroll
templateScroll,
};
},
};
@@ -523,7 +550,6 @@ export default {
position: relative;
margin-left: 14px;
.box1 {
position: absolute;
left: 50%;