mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 03:16:44 +08:00
feat:合并
This commit is contained in:
89
src/App.vue
89
src/App.vue
@@ -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;
|
||||
|
||||
@@ -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(() => {
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -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
@@ -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})
|
||||
});
|
||||
};
|
||||
//关闭存为模版弹窗
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user