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

View File

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

View File

@@ -56,7 +56,7 @@
/> />
<div class="inname">封面图</div> <div class="inname">封面图</div>
</div> </div>
<div class="in select" style="flex: 1;display: flex"> <div class="in select" style="flex: 1; display: flex">
<div <div
:class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`" :class="`box ${projectInfo.picUrl === src.value ? 'active' : ''}`"
style=" style="
@@ -77,7 +77,10 @@
height: 100px; height: 100px;
margin-bottom: 4px; margin-bottom: 4px;
margin-right: 4px; margin-right: 4px;
" :src="src.value" alt="avatar"/> "
:src="src.value"
alt="avatar"
/>
</div> </div>
</div> </div>
</div> </div>
@@ -242,29 +245,37 @@
<div class="footer"> <div class="footer">
<div class="btn"> <div class="btn">
<a-button @click="backPage" class="btn2">取消</a-button> <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> </div>
</div> </div>
</template> </template>
<script> <script>
import {onMounted, reactive, toRefs, watch} from "vue"; import { onMounted, reactive, toRefs, watch } from "vue";
import {message} from "ant-design-vue"; import { message } from "ant-design-vue";
import {useRoute, useRouter} from "vue-router"; import { useRoute, useRouter } from "vue-router";
import * as api from "../../api/index"; 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 TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
import ProjectLevel from "@/components/project/ProjectLevel"; import ProjectLevel from "@/components/project/ProjectLevel";
import {changeOwnership, scrollLoad} from "@/api/method"; import { changeOwnership, scrollLoad } from "@/api/method";
import {storage} from "../../api/storage"; import { storage } from "../../api/storage";
export default { export default {
name: "projectAdd", name: "projectAdd",
components: { components: {
ProjectManager, ProjectManager,
ProjectLevel, ProjectLevel,
// ProjectClass,
TrainClass, TrainClass,
OrgClass, OrgClass,
}, },
@@ -314,10 +325,21 @@ export default {
state.projectInfo.parentName = routers.query.parentName; state.projectInfo.parentName = routers.query.parentName;
state.projectInfo.parentId = routers.query.parentId; state.projectInfo.parentId = routers.query.parentId;
state.projectInfo.projectId = routers.query.projectId; state.projectInfo.projectId = routers.query.projectId;
(state.projectInfo.projectId || state.projectInfo.parentId) && api.getProjectDetail({projectId: state.projectInfo.projectId || state.projectInfo.parentId}) (state.projectInfo.projectId || state.projectInfo.parentId) &&
.then(res => { api
state.projectInfo = {...res.data.data.projectInfo, ...state.projectInfo}; .getProjectDetail({
state.projectInfo.rangeTime = [state.projectInfo.beginTime, state.projectInfo.endTime,]; 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; state.courseSyncFlag = !!state.projectInfo.courseSyncFlag;
}); });
} }
@@ -405,22 +427,24 @@ export default {
api.createProject(state.projectInfo).then((res) => { api.createProject(state.projectInfo).then((res) => {
state.projectInfo.projectId || state.projectInfo.projectId ||
changeOwnership("project", res.data.data.projectId, [ changeOwnership("project", res.data.data.projectId, [
{id: res.data.data.createId, name: res.data.data.createName}, { id: res.data.data.createId, name: res.data.data.createName },
]); ]);
message.destroy(); message.destroy();
message.success(state.projectInfo.projectId ? "编辑成功" : "创建成功"); message.success(state.projectInfo.projectId ? "编辑成功" : "创建成功");
// router.back(); // router.back();
router.push({ router.push({
path: "/taskpage", path: "/taskpage",
query: {projectId: res.data.data.projectId}, query: { projectId: res.data.data.projectId },
}); });
storage.set("projectId", res.data.data.projectId); storage.set("projectId", res.data.data.projectId);
}); });
}; };
function managerChange(e, l, d) { function managerChange(e, l, d) {
!state.projectInfo.sourceBelongId && (state.projectInfo.sourceBelongId = d) !state.projectInfo.sourceBelongId &&
!state.projectInfo.sourceBelongId && (state.projectInfo.sourceBelongName = d) (state.projectInfo.sourceBelongId = d);
!state.projectInfo.sourceBelongId &&
(state.projectInfo.sourceBelongName = d);
} }
return { return {

View File

@@ -112,13 +112,13 @@
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)" style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left2.png"/> <img src="../../assets/images/taskpage/left2.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/projectadd/nopro.png"/> <img src="../../assets/images/projectadd/nopro.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right2.png"/> <img src="../../assets/images/taskpage/right2.png" />
</div> </div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)"> <div class="centerbox" style="color: rgba(78, 166, 255, 1)">
创建项目 创建项目
@@ -285,13 +285,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left2.png"/> <img src="../../assets/images/taskpage/left2.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture4.png"/> <img src="../../assets/images/taskpage/picture4.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right2.png"/> <img src="../../assets/images/taskpage/right2.png" />
</div> </div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)"> <div class="centerbox" style="color: rgba(78, 166, 255, 1)">
单层子项目 单层子项目
@@ -305,13 +305,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left1.png"/> <img src="../../assets/images/taskpage/left1.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture5.png"/> <img src="../../assets/images/taskpage/picture5.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right1.png"/> <img src="../../assets/images/taskpage/right1.png" />
</div> </div>
<div class="centerbox" style="color: rgba(255, 182, 78, 1)"> <div class="centerbox" style="color: rgba(255, 182, 78, 1)">
多层子项目 多层子项目
@@ -372,13 +372,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left2.png"/> <img src="../../assets/images/taskpage/left2.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture6.png"/> <img src="../../assets/images/taskpage/picture6.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right2.png"/> <img src="../../assets/images/taskpage/right2.png" />
</div> </div>
<div class="centerbox" style="color: rgba(78, 166, 255, 1)"> <div class="centerbox" style="color: rgba(78, 166, 255, 1)">
单层{{ projectInfo.parentId ? "子" : "" }}项目 单层{{ projectInfo.parentId ? "子" : "" }}项目
@@ -397,13 +397,13 @@
" "
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left3.png"/> <img src="../../assets/images/taskpage/left3.png" />
</div> </div>
<div class="photo"> <div class="photo">
<img src="../../assets/images/taskpage/picture7.png"/> <img src="../../assets/images/taskpage/picture7.png" />
</div> </div>
<div class="rightt"> <div class="rightt">
<img src="../../assets/images/taskpage/right3.png"/> <img src="../../assets/images/taskpage/right3.png" />
</div> </div>
<div class="centerbox1" style="color: rgba(93, 201, 136, 1)"> <div class="centerbox1" style="color: rgba(93, 201, 136, 1)">
多层{{ projectInfo.parentId ? "子" : "" }}项目 多层{{ projectInfo.parentId ? "子" : "" }}项目
@@ -625,7 +625,7 @@
class="aeLoading" class="aeLoading"
:style="{ display: projectPubLoading ? 'flex' : 'none' }" :style="{ display: projectPubLoading ? 'flex' : 'none' }"
> >
<a-spin :spinning="projectPubLoading"/> <a-spin :spinning="projectPubLoading" />
</div> </div>
</a-modal> </a-modal>
<!-- 撤回路径弹窗 --> <!-- 撤回路径弹窗 -->
@@ -812,21 +812,22 @@
</div> </div>
</template> </template>
<script> <script>
import {reactive, toRefs, ref, watch} from "vue"; import { reactive, toRefs, ref, watch } from "vue";
import {message, Modal} from "ant-design-vue"; import { message, Modal } from "ant-design-vue";
import {useRouter} from "vue-router"; import { useRouter } from "vue-router";
import ProjOwnerShip from "../../components/drawers/ProjectOwn"; import ProjOwnerShip from "../../components/drawers/ProjectOwn";
import ProjPowerList from "../../components/drawers/ProjPowerList"; import ProjPowerList from "../../components/drawers/ProjPowerList";
import ProjCheckShip from "../../components/drawers/ProjCheckPower"; import ProjCheckShip from "../../components/drawers/ProjCheckPower";
import * as api from "../../api/index"; import * as api from "../../api/index";
import * as api1 from "../../api/index1"; import * as api1 from "../../api/index1";
import {storage} from "../../api/storage"; import { storage } from "../../api/storage";
import ProjectManager from "@/components/project/ProjectManagerNew"; import ProjectManager from "@/components/project/ProjectManagerNew";
// import ProjectClass from "@/components/project/ProjectClass";
import TrainClass from "@/components/project/TrainClass"; import TrainClass from "@/components/project/TrainClass";
import OrgClass from "@/components/project/OrgClass"; import OrgClass from "@/components/project/OrgClass";
import dayjs from "dayjs"; import dayjs from "dayjs";
import * as moment from "moment"; import * as moment from "moment";
import {changeOwnership} from "@/api/method"; import { changeOwnership } from "@/api/method";
export default { export default {
name: "projectManage", name: "projectManage",
@@ -835,6 +836,7 @@ export default {
ProjPowerList, ProjPowerList,
ProjCheckShip, ProjCheckShip,
ProjectManager, ProjectManager,
// ProjectClass,
OrgClass, OrgClass,
TrainClass, TrainClass,
// ProjManageShip // ProjManageShip
@@ -913,15 +915,15 @@ export default {
// 数据接入 - start - // 数据接入 - start -
const router = useRouter(); const router = useRouter();
const sProjectStateList = ref([ const sProjectStateList = ref([
{value: 0, label: "草稿"}, { value: 0, label: "草稿" },
{value: 1, label: "审核中"}, { value: 1, label: "审核中" },
{value: 2, label: "审核通过"}, { value: 2, label: "审核通过" },
{value: 3, label: "已发布"}, { value: 3, label: "已发布" },
{value: -2, label: "未通过"}, { value: -2, label: "未通过" },
{value: -1, label: "已结束"}, { value: -1, label: "已结束" },
]); ]);
const searchReset = () => { const searchReset = () => {
state.searchParam = {pageNo: 1, pageSize: 10}; state.searchParam = { pageNo: 1, pageSize: 10 };
getTableDate(); getTableDate();
}; };
const searchSubmit = () => { const searchSubmit = () => {
@@ -970,7 +972,7 @@ export default {
state.currentPage = 1; state.currentPage = 1;
state.projectInfo.projectId || state.projectInfo.projectId ||
changeOwnership("project", res.data.data.projectId, [ changeOwnership("project", res.data.data.projectId, [
{id: res.data.data.createId, name: res.data.data.createName}, { id: res.data.data.createId, name: res.data.data.createName },
]); ]);
getTableDate(); getTableDate();
}); });
@@ -1200,7 +1202,7 @@ export default {
message.success("模版保存成功"); message.success("模版保存成功");
return; return;
} }
Modal.error({title: res.data.msg}); Modal.error({ title: res.data.msg });
}); });
}; };
//关闭存为模版弹窗 //关闭存为模版弹窗
@@ -1648,7 +1650,7 @@ export default {
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/taskpage", path: "/taskpage",
query: {projectId: value.record.projectId}, query: { projectId: value.record.projectId },
}); });
storage.set("projectId", value.record.projectId); storage.set("projectId", value.record.projectId);
}} }}
@@ -1790,8 +1792,10 @@ export default {
); );
function managerChange(e, l, d) { function managerChange(e, l, d) {
!state.projectInfo.sourceBelongId && (state.projectInfo.sourceBelongId = d) !state.projectInfo.sourceBelongId &&
!state.projectInfo.sourceBelongId && (state.projectInfo.sourceBelongName = d) (state.projectInfo.sourceBelongId = d);
!state.projectInfo.sourceBelongId &&
(state.projectInfo.sourceBelongName = d);
} }
return { return {