feat:合并

This commit is contained in:
lixg
2022-12-08 14:33:11 +08:00
8 changed files with 489 additions and 639 deletions

View File

@@ -1,27 +1,27 @@
<template> <template>
<div id="container" v-if="!isLogin"> <div id="container" v-if="!isLogin">
<nav-top /> <nav-top/>
<div style="display: flex"> <div style="display: flex">
<nav-left /> <nav-left/>
<div style="flex: 1; display: flex; flex-direction: column; width: 0"> <div style="flex: 1; display: flex; flex-direction: column; width: 0">
<open-pages /> <open-pages/>
<bread-crumb /> <bread-crumb/>
<main> <main>
<a-config-provider :locale="zhCN"> <a-config-provider :locale="zhCN">
<router-view /> <router-view/>
</a-config-provider> </a-config-provider>
</main> </main>
</div> </div>
</div> </div>
</div> </div>
<div id="container" v-if="isLogin"> <div id="container" v-if="isLogin">
<router-view /> <router-view/>
</div> </div>
</template> </template>
<script> <script>
import { computed, defineComponent, ref, watch } from "vue"; import {computed, defineComponent, ref, watch} from "vue";
import { useRouter, useRoute } from "vue-router"; import {useRouter, useRoute} from "vue-router";
import { useStore } from "vuex"; import {useStore} from "vuex";
import NavLeft from "@/components/NavLeft"; import NavLeft from "@/components/NavLeft";
import NavTop from "@/components/NavTop"; import NavTop from "@/components/NavTop";
import OpenPages from "@/components/OpenPages"; import OpenPages from "@/components/OpenPages";
@@ -30,6 +30,7 @@ import zhCN from "ant-design-vue/es/locale/zh_CN";
import * as api from "./api/index1"; import * as api from "./api/index1";
import * as api1 from "@/api/index1"; import * as api1 from "@/api/index1";
import * as api2 from "@/api/index"; import * as api2 from "@/api/index";
export default defineComponent({ export default defineComponent({
components: { components: {
NavLeft, NavLeft,
@@ -48,12 +49,13 @@ export default defineComponent({
return router.getRoutes().filter((e) => e.meta?.isLink); return router.getRoutes().filter((e) => e.meta?.isLink);
}); });
watch( watch(
() => route.path, () => route.path,
() => { () => {
route.path === "/login" && (isLogin.value = true); route.path === "/login" && (isLogin.value = true);
} }
); );
const currentRouteName = computed(() => route.name); const currentRouteName = computed(() => route.name);
function init() { function init() {
console.log(store); console.log(store);
getUserInfo(); getUserInfo();
@@ -68,6 +70,7 @@ export default defineComponent({
getMemberInfo(); getMemberInfo();
getOrgTree(); getOrgTree();
} }
async function getMemberInfo() { async function getMemberInfo() {
const list = localStorage.getItem("memberInitInfo"); const list = localStorage.getItem("memberInitInfo");
if (list) { if (list) {
@@ -75,33 +78,39 @@ export default defineComponent({
return; return;
} }
const memberInitInfo = await api1 const memberInitInfo = await api1
.getMemberInfo({ keyWord: "", pageNo: 1, pageSize: 10 }) .getMemberInfo({keyWord: "", pageNo: 1, pageSize: 10})
.then((res) => res.data.data.rows); .then((res) => res.data.data.rows);
store.commit("SET_MEMBER_INFO", memberInitInfo); store.commit("SET_MEMBER_INFO", memberInitInfo);
localStorage.setItem("memberInitInfo", JSON.stringify(memberInitInfo)); localStorage.setItem("memberInitInfo", JSON.stringify(memberInitInfo));
} }
async function getUserInfo() { async function getUserInfo() {
const userInfo = await api2.userInfo(); const userInfo = await api2.userInfo();
store.commit("SET_USER", userInfo); store.commit("SET_USER", userInfo);
} }
async function initDict(key) {
let list = localStorage.getItem(key); async function initDict(key, localStory = false) {
if (list) { let list;
store.commit("SET_DICT", { key, data: JSON.parse(list) }); if (localStory) {
return; list = localStorage.getItem(key);
if (list) {
store.commit("SET_DICT", {key, data: JSON.parse(list)});
return;
}
} }
list = await getDictList(key); list = await getDictList(key);
localStorage.setItem(key, JSON.stringify(list)); localStory && localStorage.setItem(key, JSON.stringify(list));
store.commit("SET_DICT", { key, data: list }); store.commit("SET_DICT", {key, data: list});
} }
const getDictList = (param) => const getDictList = (param) =>
api1 api1
.getDict({ .getDict({
pageNo: 1, pageNo: 1,
pageSize: 20, pageSize: 20,
setCode: param, setCode: param,
}) })
.then((res) => res.data.data.rows); .then((res) => res.data.data.rows);
//获取组织树 //获取组织树
const getOrgTree = () => { const getOrgTree = () => {
const orgtreeList = localStorage.getItem("orgtreeList"); const orgtreeList = localStorage.getItem("orgtreeList");
@@ -109,25 +118,16 @@ export default defineComponent({
store.commit("getOrgtreeList", JSON.parse(orgtreeList)); store.commit("getOrgtreeList", JSON.parse(orgtreeList));
return; return;
} }
let obj = { api.getOrgInfo({
keyWord: "", keyWord: "",
id: -1, id: -1,
pageNo: 1, pageNo: 1,
pageSize: 20, pageSize: 20,
}; })
api .then((res) => {
.getOrgInfo(obj)
.then((res) => {
console.log("组织树获取成功", res);
if (res.data.code === 200) {
// state.treeData = res.data.data;
localStorage.setItem("orgtreeList", JSON.stringify(res.data.data)); localStorage.setItem("orgtreeList", JSON.stringify(res.data.data));
store.commit("getOrgtreeList", res.data.data); store.commit("getOrgtreeList", res.data.data);
} })
})
.catch((err) => {
console.log("组织树获取失败", err);
});
}; };
init(); init();
return { return {
@@ -144,12 +144,13 @@ export default defineComponent({
// font-family: MicrosoftYaHei, Microsoft YaHei, Avenir, Helvetica, Arial, // font-family: MicrosoftYaHei, Microsoft YaHei, Avenir, Helvetica, Arial,
// sans-serif; // sans-serif;
font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB,
Microsoft YaHei, Arial, sans-serif; Microsoft YaHei, Arial, sans-serif;
-webkit-font-smoothing: antialiased; -webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; -moz-osx-font-smoothing: grayscale;
color: #2c3e50; color: #2c3e50;
height: 100%; height: 100%;
} }
#container { #container {
margin: 0; margin: 0;
display: flex; display: flex;
@@ -158,6 +159,7 @@ export default defineComponent({
min-width: 1000px; min-width: 1000px;
min-height: 100%; min-height: 100%;
background-color: rgba(245, 247, 250, 1); background-color: rgba(245, 247, 250, 1);
main { main {
height: 0; height: 0;
flex: 1 1 auto; flex: 1 1 auto;
@@ -173,6 +175,7 @@ export default defineComponent({
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
} }
// @media screen and (max-width: 1366px) { // @media screen and (max-width: 1366px) {
// .cmMain { // .cmMain {
// width: 750px; // width: 750px;

View File

@@ -316,13 +316,11 @@ export default {
for (let i = 0; i < state.apiTaskList.length; i++) { for (let i = 0; i < state.apiTaskList.length; i++) {
apiTask apiTask
.addTask({ .addTask({
courseId: state.apiTaskList[i].caseid, courseId: Number(state.apiTaskList[i].casesId),
duration: 0, name: state.apiTaskList[i].title,
flag: true,
name: state.apiTaskList[i].caseName,
projectTaskId: props.projectTaskId, projectTaskId: props.projectTaskId,
projectTemplateId: props.projectTemplateId, projectTemplateId: Number(localStorage.getItem("projectTemplateId")),
stageId: props.chooseStageId || 0, stageId: Number(props.chooseStageId) || 0,
type: 3, type: 3,
}) })
.then(() => { .then(() => {

View File

@@ -499,7 +499,7 @@ export default {
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
}); });
} else if (props.isLevel === 2) { } else if (props.isLevel == 2) {
console.log("我是要便利的数据2", state.addOnlineList); console.log("我是要便利的数据2", state.addOnlineList);
let p_data = state.addOnlineList; let p_data = state.addOnlineList;
let p_data_id = []; let p_data_id = [];
@@ -556,24 +556,28 @@ export default {
console.log(err); console.log(err);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
addTempTask({ state.addOnlineList.map((value) => {
courseId: state.onlineClassesId, console.log( props, props.projectTemplateId,props.projectTaskId)
name: state.onlineName, addTempTask({
projectTemplateId: props.projectTemplateId, courseId: value.num,
projectTaskId: props.projectTaskId || 0, name: value.name,
stageId: props.chooseStageId || 0, projectTemplateId: localStorage.getItem("projectTemplateId"),
type: 1, projectTaskId: props.projectTaskId || 0,
}) stageId: props.chooseStageId || 0,
.then(() => { type: 1,
message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false);
closeDrawer();
}) })
.catch(() => { .then((res) => {
message.destroy(); console.log('新增或者编辑在线课',res)
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`); message.destroy();
}); message.success(`${props.edit ? "编辑" : "新增"}模板库任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}模板库任务失败`);
});
})
} }
//if(state.addOnlineList.Target==undefined){ //if(state.addOnlineList.Target==undefined){
// closeDrawer(); // closeDrawer();

View File

@@ -4,14 +4,14 @@
<div class="noticeTitle"> <div class="noticeTitle">
<!-- <div class="notitle"><span class="titlespan">公告</span></div> --> <!-- <div class="notitle"><span class="titlespan">公告</span></div> -->
<div class="switch"> <div class="switch">
<a-switch v-model:checked="noticeChecked" size="small" /><span <a-switch v-model:checked="noticeChecked" @click="noticeFlag" size="small" /><span
style="margin-left: 16px" style="margin-left: 16px"
> >
开启 开启
</span> </span>
</div> </div>
<template v-if="noticeChecked"> <template v-if="noticeChecked">
<p>当前公告内容</p> <p>当前公告内容</p>
<!-- 预览 --> <!-- 预览 -->
<template v-if="!editOn"> <template v-if="!editOn">
<div class="txt-content"> <div class="txt-content">
@@ -44,11 +44,11 @@
</template> </template>
</template> </template>
</div> </div>
</template>s </template>
<script> <script>
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { reactive, toRefs, onMounted } from "vue"; import { reactive, toRefs, onMounted } from "vue";
import { getTask } from "../../api/indexTaskadd"; import { editProj, getTask } from "../../api/indexTaskadd";
// import { editProj } from "../../api/indexTaskadd"; // import { editProj } from "../../api/indexTaskadd";
import { publishNotice } from "../../api/indexNotice"; import { publishNotice } from "../../api/indexNotice";
import emitter from "../../utils/bus"; import emitter from "../../utils/bus";
@@ -62,7 +62,7 @@ export default {
}, },
setup(props) { setup(props) {
const state = reactive({ const state = reactive({
noticeChecked: true, noticeChecked: false,
projectInfo: {}, projectInfo: {},
noticeContent1: "", noticeContent1: "",
noticeContent: "", noticeContent: "",
@@ -74,31 +74,42 @@ export default {
state.projectInfo = res.data.data.projectInfo; state.projectInfo = res.data.data.projectInfo;
state.noticeContent1 = state.projectInfo.notice; state.noticeContent1 = state.projectInfo.notice;
state.noticeContent = state.projectInfo.notice; state.noticeContent = state.projectInfo.notice;
state.noticeChecked = state.projectInfo.noticeFlag==0?false:true;
}); });
console.log("state.noticeChecked",state.noticeChecked);
}; };
const handleEdit = () => { const handleEdit = () => {
state.editOn = true; state.editOn = true;
}; };
const handleCancel = () => { const handleCancel = () => {
state.editOn = false; state.editOn = false;
}; };
const noticeFlag =()=>{
//state.noticeChecked = !state.noticeChecked;
console.log("111",state.projectInfo);
state.projectInfo.noticeFlag = state.noticeChecked?1:0;
editProj(state.projectInfo).then((res)=>{
console.log("res",res.data.data.projectInfo);
}).catch((error)=>{
console.log(error);
});
console.log("222",state.projectInfo);
}
const pubNotice = () => { const pubNotice = () => {
if (state.noticeContent == "") { if (state.noticeContent == "") {
message.destroy(); message.destroy();
return message.warning("请输入公告内容"); return message.warning("请输入公告内容");
} else { } else {
let obj = { let obj = {
// createId: state.projectInfo.createId, notice: state.noticeContent1,
// createName: state.projectInfo.createName,
notice: state.noticeContent,
// noticeId: 0,
projectId: props.projectId, projectId: props.projectId,
title: "", title: "",
}; };
publishNotice(obj) publishNotice(obj);//加入历史
.then((res) => { state.projectInfo.notice =state.noticeContent;
editProj(state.projectInfo).then((res) => {
// console.log("res"); // console.log("res");
// console.log(res); // console.log(res);
if (res.data.code === 200) { if (res.data.code === 200) {
@@ -114,6 +125,8 @@ export default {
message.warning("发布失败"); message.warning("发布失败");
console.log(err); console.log(err);
}); });
} }
}; };
onMounted(() => { onMounted(() => {
@@ -125,6 +138,7 @@ export default {
pubNotice, pubNotice,
handleEdit, handleEdit,
handleCancel, handleCancel,
noticeFlag,
}; };
}, },
}; };

View File

@@ -217,7 +217,7 @@ export default {
key: "status", key: "status",
align: "center", align: "center",
customRender: ({ record: { status } }) => ( customRender: ({ record: { status } }) => (
<div>{status == -2 ? "未通过" : "已通过"}</div> <div>{{ '2': "审核通过", "-5": "未通过" }[status + ""] || '审核通过'}</div>
), ),
}, },
{ {
@@ -286,7 +286,7 @@ export default {
key: "status", key: "status",
align: "center", align: "center",
customRender: ({ record: { status } }) => ( customRender: ({ record: { status } }) => (
<div>{{ 2: "审核通过", "-2": "审核拒绝" }[status + ""]}</div> <div>{{ '2': "审核通过", "-5": "审核拒绝" }[status + ""] || '审核通过'}</div>
), ),
}, },

File diff suppressed because it is too large Load Diff

View File

@@ -801,7 +801,7 @@
</template> </template>
<script> <script>
import {reactive, toRefs, ref, watch} from "vue"; import {reactive, toRefs, ref, watch} from "vue";
import {message} 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";
@@ -1178,11 +1178,13 @@ export default {
type: 1, type: 1,
}; };
api.handleProject(obj).then((res) => { api.handleProject(obj).then((res) => {
console.log("模版保存成功", res);
message.destroy();
message.success("模版保存成功");
state.startModal = false; state.startModal = false;
getTableDate(); if (res.data.code === 200) {
message.destroy();
message.success("模版保存成功");
return;
}
Modal.error({title: res.data.msg})
}); });
}; };
//关闭存为模版弹窗 //关闭存为模版弹窗

View File

@@ -175,6 +175,7 @@
@changeData="updateTableData" @changeData="updateTableData"
:isLevel="isLevel" :isLevel="isLevel"
v-model:edit="edit" v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:projectTaskId="projectTaskId"
@@ -198,6 +199,7 @@
@changeData="updateTableData" @changeData="updateTableData"
:isLevel="isLevel" :isLevel="isLevel"
v-model:edit="edit" v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:projectTaskId="projectTaskId"
@@ -221,6 +223,7 @@
@changeData="updateTableData" @changeData="updateTableData"
:isLevel="isLevel" :isLevel="isLevel"
v-model:edit="edit" v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:projectTaskId="projectTaskId"
@@ -244,6 +247,7 @@
@changeData="updateTableData" @changeData="updateTableData"
v-model:isLevel="isLevel" v-model:isLevel="isLevel"
v-model:edit="edit" v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:EditWorkId="EditWorkId" v-model:EditWorkId="EditWorkId"
@@ -267,6 +271,7 @@
@changeData="updateTableData" @changeData="updateTableData"
:isLevel="isLevel" :isLevel="isLevel"
v-model:edit="edit" v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:EditTestId="EditTestId" v-model:EditTestId="EditTestId"
@@ -289,6 +294,7 @@
v-model:addliveVisible="addlivevisible" v-model:addliveVisible="addlivevisible"
:isLevel="isLevel" :isLevel="isLevel"
@changeData="updateTableData" @changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:edit="edit" v-model:edit="edit"
@@ -312,6 +318,7 @@
v-model:addrefVisible="addrefvisible" v-model:addrefVisible="addrefvisible"
:isLevel="isLevel" :isLevel="isLevel"
@changeData="updateTableData" @changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:edit="edit" v-model:edit="edit"
@@ -335,6 +342,7 @@
v-model:adddiscussVisible="adddiscussvisible" v-model:adddiscussVisible="adddiscussvisible"
v-model:edit="edit" v-model:edit="edit"
:isLevel="isLevel" :isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:EditDiscussId="EditDiscussId" v-model:EditDiscussId="EditDiscussId"
@@ -357,6 +365,7 @@
<add-active <add-active
v-model:addactiveVisible="addactivevisible" v-model:addactiveVisible="addactivevisible"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:projectId="projectId"
v-model:EditActiveId="EditActiveId" v-model:EditActiveId="EditActiveId"
v-model:projectTaskId="projectTaskId" v-model:projectTaskId="projectTaskId"
v-model:edit="edit" v-model:edit="edit"
@@ -382,6 +391,7 @@
@changeData="updateTableData" @changeData="updateTableData"
v-model:edit="edit" v-model:edit="edit"
:isLevel="isLevel" :isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:projectTaskId="projectTaskId"
@@ -405,6 +415,7 @@
@changeData="updateTableData" @changeData="updateTableData"
v-model:edit="edit" v-model:edit="edit"
:isLevel="isLevel" :isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:projectTaskId="projectTaskId"
@@ -428,6 +439,7 @@
@getData="changeVData" @getData="changeVData"
v-model:edit="edit" v-model:edit="edit"
:isLevel="isLevel" :isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId" v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId" v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId" v-model:projectTaskId="projectTaskId"
@@ -1059,7 +1071,7 @@ import draggable from "vuedraggable";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
// import UnlockMode from "../../components/drawers/UnlockMode.vue"; // import UnlockMode from "../../components/drawers/UnlockMode.vue";
// import * as api1 from "../../api/index1"; // import * as api1 from "../../api/index1";
import { useRouter } from "vue-router"; import { useRouter, useRoute } from "vue-router";
const drawercolumns = [ const drawercolumns = [
{ {
title: "项目名称", title: "项目名称",
@@ -1118,8 +1130,10 @@ export default {
// UnlockMode, // UnlockMode,
}, },
setup() { setup() {
const route = useRoute();
const router = useRouter(); const router = useRouter();
const state = reactive({ const state = reactive({
projectId: route.query.projectId,
projectTemplateId: storage.get("projectTemplateId") projectTemplateId: storage.get("projectTemplateId")
? JSON.parse(storage.get("projectTemplateId")) ? JSON.parse(storage.get("projectTemplateId"))
: null, : null,
@@ -1391,6 +1405,9 @@ export default {
console.log(array) console.log(array)
if(array[0].id=='0'){ if(array[0].id=='0'){
state.level = []; state.level = [];
// state.tableData = array[0]
// 当无阶段任务出现时 显示当前数据
getTableData(array[0].taskList)
}else{ }else{
state.level = array; state.level = array;
} }
@@ -1790,6 +1807,7 @@ export default {
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)"; "0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
}); });
const showDrawerOnline = (id, eleId) => { const showDrawerOnline = (id, eleId) => {
console.log(id, eleId)
state.addonlinevisible = true; state.addonlinevisible = true;
state.EditOnlineId = id; state.EditOnlineId = id;
state.projectTaskId = eleId; state.projectTaskId = eleId;