Merge remote-tracking branch 'origin/develop' into develop

# Conflicts:
#	src/views/projectcenter/ProjectAdd.vue
#	src/views/projectcenter/ProjectManage.vue
This commit is contained in:
yuping
2022-12-10 16:41:41 +08:00
4 changed files with 818 additions and 791 deletions

View File

@@ -153,8 +153,8 @@
<router-link to="/coursemanage">课件管理</router-link>
</a-menu-item>
</a-sub-menu>
<a-menu-item key="sub4" @titleClick="titleClick">
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub4" @titleClick="titleClick">
<div class="imgBox">
<img
style="width: 19px; height: 19px"
@@ -162,9 +162,9 @@
/>
</div>
<span>考试中心</span>
</a-menu-item>
<a-menu-item key="sub5" @titleClick="titleClick">
</a-menu-item> -->
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub5" @titleClick="titleClick">
<div class="imgBox">
<img
style="width: 16px; height: 16px"
@@ -172,9 +172,9 @@
/>
</div>
<router-link to="/researchmanage">评估管理</router-link>
</a-menu-item>
<a-menu-item key="sub6" @titleClick="titleClick">
</a-menu-item> -->
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub6" @titleClick="titleClick">
<div class="imgBox">
<img
style="width: 17px; height: 15px"
@@ -182,9 +182,9 @@
/>
</div>
<span>报表中心</span>
</a-menu-item>
<a-menu-item key="sub7" @titleClick="titleClick">
</a-menu-item> -->
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub7" @titleClick="titleClick">
<div class="imgBox">
<img
style="width: 17px; height: 18px"
@@ -192,9 +192,9 @@
/>
</div>
<span>教师管理</span>
</a-menu-item>
<a-menu-item key="sub8" @titleClick="titleClick">
</a-menu-item> -->
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub8" @titleClick="titleClick">
<div class="imgBox">
<img
style="width: 20px; height: 20px"
@@ -202,18 +202,17 @@
/>
</div>
<span>证书中心</span>
<!-- <router-link to="/certificatecenter">证书中心</router-link> -->
</a-menu-item>
<a-menu-item key="sub9" @titleClick="titleClick">
</a-menu-item> -->
<!-- <a-menu-item key="sub9" @titleClick="titleClick">
<div class="imgBox">
<img
style="width: 19px; height: 18px"
src="../assets/images/navleft/system.png"
/>
</div>
<span>系统管理</span>
<!-- <router-link to="/systemmanage">系统管理</router-link> -->
</a-menu-item>
<span>系统管理</span> -->
<!-- <router-link to="/systemmanage">系统管理</router-link> -->
<!-- </a-menu-item> -->
</a-menu>
</div>
<div
@@ -243,8 +242,8 @@
<a-menu-item key="sub3" @titleClick="titleClick">
<router-link to="/coursewaremanage">课程</router-link>
</a-menu-item>
<a-menu-item key="sub4" @titleClick="titleClick">
<!-- 2022-12-10注释 后面放开 -->
<!-- <a-menu-item key="sub4" @titleClick="titleClick">
<span>考试</span>
</a-menu-item>
@@ -265,7 +264,7 @@
</a-menu-item>
<a-menu-item key="sub9" @titleClick="titleClick">
<span>系统</span>
</a-menu-item>
</a-menu-item> -->
</a-menu>
</div>
</div>

View File

@@ -36,7 +36,7 @@
<a-input
v-model:value="courseName"
style="width: 423px; height: 32px"
placeholder="请输入名称最多输入20个字"
placeholder="请输入名称"
:maxlength="20"
/>
<div class="inp_num" style="position: absolute; right: 7px">

View File

@@ -3,13 +3,13 @@
<div class="projectAdd">
<div class="header">
<span class="title"
>{{ projectInfo.parentId ? "编辑" : "创建" }}项目</span
>{{ 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>
@@ -19,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>
@@ -33,114 +33,117 @@
<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 flex-top">
<div class="namebox" style="margin-top: 10px">
<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" style="flex: 1;display: flex">
<div class="in select" style="flex: 1; display: flex">
<div
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
style="
width: 100px;
height: 100px;
border-radius: 5px;
cursor: pointer;
position: relative;
overflow: hidden;
"
v-for="(src, index) in projectPic"
:key="index"
@click="() => (projectInfo.picUrl = src.value)"
>
<img
style="
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
style="
width: 100px;
height: 100px;
margin-bottom: 4px;
margin-right: 4px;
" :src="src.value" alt="avatar"/>
border-radius: 5px;
cursor: pointer;
position: relative;
overflow: hidden;
"
v-for="(src, index) in projectPic"
:key="index"
@click="() => (projectInfo.picUrl = src.value)"
>
<img
style="
width: 100px;
height: 100px;
margin-bottom: 4px;
margin-right: 4px;
"
:src="src.value"
alt="avatar"
/>
</div>
</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
show-time
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"
show-time
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"
@onChange="managerChange"
mode="multiple"
v-model:value="projectInfo.managerId"
v-model:name="projectInfo.manager"
@onChange="managerChange"
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"
v-model:value="projectInfo.sourceBelongId"
v-model:name="projectInfo.sourceBelongName"
></OrgClass>
</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>
@@ -151,8 +154,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>
@@ -163,15 +166,15 @@
<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">是否BOEU实施</div>
</div>
<div class="in">
<a-radio-group
v-model:value="projectInfo.boeFlag"
:disabled="viewDetail ? true : false"
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>
@@ -184,16 +187,16 @@
</div>
<div class="in">
<a-checkbox
v-model:checked="courseSyncFlag"
:disabled="viewDetail ? true : false"
><span
v-model:checked="courseSyncFlag"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%;
color: rgba(109, 117, 132, 1);
font-size: 14px;
"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-checkbox
>
</div>
</div>
@@ -203,12 +206,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>
@@ -218,18 +221,18 @@
<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;
}
"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
@popupScroll="templateScroll"
:fieldNames="{
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
@popupScroll="templateScroll"
:fieldNames="{
label: 'name',
value: 'projectTemplateId',
}"
@@ -242,29 +245,37 @@
<div class="footer">
<div class="btn">
<a-button @click="backPage" class="btn2">取消</a-button>
<a-button v-on:click="createProject" type="primary" class="btn1" style="margin-left: 20px">确定</a-button>
<a-button
v-on:click="createProject"
type="primary"
class="btn1"
style="margin-left: 20px"
>确定</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/ProjectManagerNew";
import ProjectLevel from "@/components/project/ProjectLevel";
import {changeOwnership, scrollLoad} from "@/api/method";
import {storage} from "../../api/storage";
import { changeOwnership, scrollLoad } from "@/api/method";
import { storage } from "../../api/storage";
export default {
name: "projectAdd",
components: {
ProjectManager,
ProjectLevel,
// ProjectClass,
TrainClass,
OrgClass,
},
@@ -314,10 +325,21 @@ export default {
state.projectInfo.parentName = routers.query.parentName;
state.projectInfo.parentId = routers.query.parentId;
state.projectInfo.projectId = routers.query.projectId;
(state.projectInfo.projectId || state.projectInfo.parentId) && api.getProjectDetail({projectId: state.projectInfo.projectId || state.projectInfo.parentId})
.then(res => {
state.projectInfo = {...res.data.data.projectInfo, ...state.projectInfo};
state.projectInfo.rangeTime = [state.projectInfo.beginTime, state.projectInfo.endTime,];
(state.projectInfo.projectId || state.projectInfo.parentId) &&
api
.getProjectDetail({
projectId:
state.projectInfo.projectId || state.projectInfo.parentId,
})
.then((res) => {
state.projectInfo = {
...res.data.data.projectInfo,
...state.projectInfo,
};
state.projectInfo.rangeTime = [
state.projectInfo.beginTime,
state.projectInfo.endTime,
];
state.courseSyncFlag = !!state.projectInfo.courseSyncFlag;
});
}
@@ -404,23 +426,25 @@ export default {
state.projectInfo.courseSyncFlag = state.courseSyncFlag ? 1 : 0;
api.createProject(state.projectInfo).then((res) => {
state.projectInfo.projectId ||
changeOwnership("project", res.data.data.projectId, [
{id: res.data.data.createId, name: res.data.data.createName},
]);
changeOwnership("project", res.data.data.projectId, [
{ id: res.data.data.createId, name: res.data.data.createName },
]);
message.destroy();
message.success(state.projectInfo.projectId ? "编辑成功" : "创建成功");
// router.back();
router.push({
path: "/taskpage",
query: {projectId: res.data.data.projectId},
query: { projectId: res.data.data.projectId },
});
storage.set("projectId", res.data.data.projectId);
});
};
function managerChange(e, l, d) {
!state.projectInfo.sourceBelongId && (state.projectInfo.sourceBelongId = d)
!state.projectInfo.sourceBelongId && (state.projectInfo.sourceBelongName = d)
!state.projectInfo.sourceBelongId &&
(state.projectInfo.sourceBelongId = d);
!state.projectInfo.sourceBelongId &&
(state.projectInfo.sourceBelongName = d);
}
return {

File diff suppressed because it is too large Load Diff