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

View File

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

View File

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

View File

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

View File

@@ -217,7 +217,7 @@ export default {
key: "status",
align: "center",
customRender: ({ record: { status } }) => (
<div>{status == -2 ? "未通过" : "已通过"}</div>
<div>{{ '2': "审核通过", "-5": "未通过" }[status + ""] || '审核通过'}</div>
),
},
{
@@ -286,7 +286,7 @@ export default {
key: "status",
align: "center",
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>
<script>
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 ProjOwnerShip from "../../components/drawers/ProjectOwn";
import ProjPowerList from "../../components/drawers/ProjPowerList";
@@ -1178,11 +1178,13 @@ export default {
type: 1,
};
api.handleProject(obj).then((res) => {
console.log("模版保存成功", res);
message.destroy();
message.success("模版保存成功");
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"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -198,6 +199,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -221,6 +223,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -244,6 +247,7 @@
@changeData="updateTableData"
v-model:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditWorkId="EditWorkId"
@@ -267,6 +271,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditTestId="EditTestId"
@@ -289,6 +294,7 @@
v-model:addliveVisible="addlivevisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:edit="edit"
@@ -312,6 +318,7 @@
v-model:addrefVisible="addrefvisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:edit="edit"
@@ -335,6 +342,7 @@
v-model:adddiscussVisible="adddiscussvisible"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditDiscussId="EditDiscussId"
@@ -357,6 +365,7 @@
<add-active
v-model:addactiveVisible="addactivevisible"
v-model:projectTemplateId="projectTemplateId"
v-model:projectId="projectId"
v-model:EditActiveId="EditActiveId"
v-model:projectTaskId="projectTaskId"
v-model:edit="edit"
@@ -382,6 +391,7 @@
@changeData="updateTableData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -405,6 +415,7 @@
@changeData="updateTableData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -428,6 +439,7 @@
@getData="changeVData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
@@ -1059,7 +1071,7 @@ import draggable from "vuedraggable";
import { storage } from "../../api/storage";
// import UnlockMode from "../../components/drawers/UnlockMode.vue";
// import * as api1 from "../../api/index1";
import { useRouter } from "vue-router";
import { useRouter, useRoute } from "vue-router";
const drawercolumns = [
{
title: "项目名称",
@@ -1118,8 +1130,10 @@ export default {
// UnlockMode,
},
setup() {
const route = useRoute();
const router = useRouter();
const state = reactive({
projectId: route.query.projectId,
projectTemplateId: storage.get("projectTemplateId")
? JSON.parse(storage.get("projectTemplateId"))
: null,
@@ -1391,6 +1405,9 @@ export default {
console.log(array)
if(array[0].id=='0'){
state.level = [];
// state.tableData = array[0]
// 当无阶段任务出现时 显示当前数据
getTableData(array[0].taskList)
}else{
state.level = array;
}
@@ -1790,6 +1807,7 @@ export default {
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
});
const showDrawerOnline = (id, eleId) => {
console.log(id, eleId)
state.addonlinevisible = true;
state.EditOnlineId = id;
state.projectTaskId = eleId;