feat:修改vue文件跳转

This commit is contained in:
lixg
2022-11-21 15:29:25 +08:00
parent e163cd5003
commit 386c6e6ee5
22 changed files with 3132 additions and 2801 deletions

View File

@@ -1,3 +1,11 @@
/*
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-21 15:13:50
* @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import axios from "axios"; import axios from "axios";
// const Qs = require("qs"); // const Qs = require("qs");
@@ -7,7 +15,7 @@ import axios from "axios";
axios.defaults.withCredentials = true; axios.defaults.withCredentials = true;
const http = axios.create({ const http = axios.create({
baseURL: "/api", baseURL: "/manageApi",
timeout: 1000 * 5, timeout: 1000 * 5,
// headers: { "Content-Type": "multipart/form-data" }, // headers: { "Content-Type": "multipart/form-data" },
headers: { "Content-Type": "application/json" }, headers: { "Content-Type": "application/json" },

View File

@@ -34,8 +34,8 @@ export default {
console.log("new:" + n + ",old:" + o); console.log("new:" + n + ",old:" + o);
if ( if (
n.indexOf("/learningpath") !== -1 || n.indexOf("/manage/learningpath") !== -1 ||
n.indexOf("/LearningPath") !== -1 n.indexOf("/manage/LearningPath") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -45,11 +45,14 @@ export default {
}, },
]; ];
} }
if (n.indexOf("/leveladd") !== -1 || n.indexOf("/LevelAdd") !== -1) { if (
n.indexOf("/manage/leveladd") !== -1 ||
n.indexOf("/manage/LevelAdd") !== -1
) {
state.list = [ state.list = [
{ {
name: "学习路径", name: "学习路径",
href: "/learningpath", href: "/manage/learningpath",
}, },
{ {
name: "管理", name: "管理",
@@ -57,17 +60,17 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/leveladddetail") !== -1 || n.indexOf("/manage/leveladddetail") !== -1 ||
n.indexOf("/LevelAddDetail") !== -1 n.indexOf("/manage/LevelAddDetail") !== -1
) { ) {
state.list = [ state.list = [
{ {
name: "学习路径", name: "学习路径",
href: "/learningpath", href: "/manage/learningpath",
}, },
{ {
name: "管理", name: "管理",
href: "/leveladd", href: "/manage/leveladd",
}, },
{ {
name: "创建关卡", name: "创建关卡",
@@ -75,17 +78,17 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/levelcheck") !== -1 || n.indexOf("/manage/levelcheck") !== -1 ||
n.indexOf("/LevelCheck") !== -1 n.indexOf("/manage/LevelCheck") !== -1
) { ) {
state.list = [ state.list = [
{ {
name: "学习路径", name: "学习路径",
href: "/learningpath", href: "/manage/learningpath",
}, },
{ {
name: "管理", name: "管理",
href: "/leveladd", href: "/manage/leveladd",
}, },
{ {
name: "查看", name: "查看",
@@ -93,8 +96,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/projectmanage") !== -1 || n.indexOf("/manage/projectmanage") !== -1 ||
n.indexOf("/ProjectManage") !== -1 n.indexOf("/manage/ProjectManage") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -109,20 +112,23 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/projectadd") !== -1 || n.indexOf("/manage/projectadd") !== -1 ||
n.indexOf("/ProjectAdd") !== -1 n.indexOf("/manage/ProjectAdd") !== -1
) { ) {
state.list = [ state.list = [
{ {
name: "项目", name: "项目",
href: "/projectmanage", href: "/manage/projectmanage",
}, },
{ {
name: "创建项目", name: "创建项目",
}, },
]; ];
} }
if (n.indexOf("/taskpage") !== -1 || n.indexOf("/TaskPage") !== -1) { if (
n.indexOf("/manage/taskpage") !== -1 ||
n.indexOf("/manage/TaskPage") !== -1
) {
state.list = [ state.list = [
{ {
name: "项目", name: "项目",
@@ -133,7 +139,10 @@ export default {
}, },
]; ];
} }
if (n.indexOf("/taskadd") !== -1 || n.indexOf("/TaskAdd") !== -1) { if (
n.indexOf("/manage/taskadd") !== -1 ||
n.indexOf("/manage/TaskAdd") !== -1
) {
state.list = [ state.list = [
{ {
name: "项目", name: "项目",
@@ -151,8 +160,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/templatelibrary") !== -1 || n.indexOf("/manage/templatelibrary") !== -1 ||
n.indexOf("/TemplateLibrary") !== -1 n.indexOf("/manage/TemplateLibrary") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -164,8 +173,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/libraryadd") !== -1 || n.indexOf("/manage/libraryadd") !== -1 ||
n.indexOf("/LibraryAdd") !== -1 n.indexOf("/manage/LibraryAdd") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -176,13 +185,13 @@ export default {
}, },
{ {
name: "查看", name: "查看",
href: "/libraryadd", href: "/manage/libraryadd",
}, },
]; ];
} }
if ( if (
n.indexOf("/coursemanage") !== -1 || n.indexOf("/manage/coursemanage") !== -1 ||
n.indexOf("/CourseManage") !== -1 n.indexOf("/manage/CourseManage") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -197,8 +206,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/coursewaremanage") !== -1 || n.indexOf("/manage/coursewaremanage") !== -1 ||
n.indexOf("/CoursewareManage") !== -1 n.indexOf("/manage/CoursewareManage") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -210,8 +219,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/researchmanage") !== -1 || n.indexOf("/manage/researchmanage") !== -1 ||
n.indexOf("/ResearchManage") !== -1 n.indexOf("/manage/ResearchManage") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -222,8 +231,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/managepage") !== -1 || n.indexOf("/manage/managepage") !== -1 ||
n.indexOf("/ManagePage") !== -1 n.indexOf("/manage/ManagePage") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -238,8 +247,8 @@ export default {
} }
if ( if (
n.indexOf("/researchadd") !== -1 || n.indexOf("/manage/researchadd") !== -1 ||
n.indexOf("/ResearchAdd") !== -1 n.indexOf("/manage/ResearchAdd") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -254,8 +263,8 @@ export default {
} }
if ( if (
n.indexOf("/certificatecenter") !== -1 || n.indexOf("/manage/certificatecenter") !== -1 ||
n.indexOf("/CertificateCenter") !== -1 n.indexOf("/manage/CertificateCenter") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -264,8 +273,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/systemmanage") !== -1 || n.indexOf("/manage/systemmanage") !== -1 ||
n.indexOf("/SystemManage") !== -1 n.indexOf("/manage/SystemManage") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -274,8 +283,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/coursereviewed") !== -1 || n.indexOf("/manage/coursereviewed") !== -1 ||
n.indexOf("/CourseReiewed") !== -1 n.indexOf("/manage/CourseReiewed") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -287,8 +296,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/coursereviewedn") !== -1 || n.indexOf("/manage/coursereviewedn") !== -1 ||
n.indexOf("/CourseReiewedN") !== -1 n.indexOf("/manage/CourseReiewedN") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -300,8 +309,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/projectreviewed") !== -1 || n.indexOf("/manage/projectreviewed") !== -1 ||
n.indexOf("/ProjectReviewed") !== -1 n.indexOf("/manage/ProjectReviewed") !== -1
) { ) {
state.list = [ state.list = [
{ {
@@ -313,8 +322,8 @@ export default {
]; ];
} }
if ( if (
n.indexOf("/projectreviewedn") !== -1 || n.indexOf("/manage/projectreviewedn") !== -1 ||
n.indexOf("/ProjectReviewedN") !== -1 n.indexOf("/manage/ProjectReviewedN") !== -1
) { ) {
state.list = [ state.list = [
{ {

View File

@@ -1,12 +1,20 @@
<!-- 评估管理-创建评估页面 --> <!-- 评估管理-创建评估页面 -->
<template> <template>
<a-drawer :visible="createVoteVisible" class="drawerStyle createvoteDrawer" width="100%" placement="right" <a-drawer
@after-visible-change="afterVisibleChange"> :visible="createVoteVisible"
class="drawerStyle createvoteDrawer"
width="100%"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="researchadd"> <div class="researchadd">
<div class="header"> <div class="header">
<div class="headerTitle">创建投票</div> <div class="headerTitle">创建投票</div>
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png" <img
@click="closeDrawer" /> style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div> </div>
<div class="main_left"> <div class="main_left">
<div class="main_item"> <div class="main_item">
@@ -17,7 +25,12 @@
<span style="margin-right: 3px">投票名称</span> <span style="margin-right: 3px">投票名称</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input v-model:value="voteName" style="width: 424px; height: 32px" placeholder="请输入任务名称" maxlength="20" /> <a-input
v-model:value="voteName"
style="width: 424px; height: 32px"
placeholder="请输入任务名称"
maxlength="20"
/>
</div> </div>
</div> </div>
<div class="main_item"> <div class="main_item">
@@ -28,25 +41,40 @@
<span>创建题干</span> <span>创建题干</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<button class="xkbtn" @click="handleTypes"> <button class="xkbtn" @click="handleTypes">添加题干</button>
添加题干
</button>
</div> </div>
</div> <!-- 创建投票侧弹窗 --> </div>
<!-- 创建投票侧弹窗 -->
</div> </div>
<div v-for="(item, index) in allFormsData" :key="index"> <div v-for="(item, index) in allFormsData" :key="index">
<VoteQuestion :item="item" :ballotId="ballotId" @del="handleDel" /> <VoteQuestion :item="item" :ballotId="ballotId" @del="handleDel" />
</div> </div>
<div class="footer"> <div class="footer">
<div class="btn"> <div class="btn">
<a-button type="primary" style="width: 100px;height: 40px;border-radius: 8px; background-color: #409eff;" <a-button
@click="handleSave"> type="primary"
style="
width: 100px;
height: 40px;
border-radius: 8px;
background-color: #409eff;
"
@click="handleSave"
>
保存 保存
</a-button> </a-button>
<a-button type="primary" ghost style="width: 100px;height: 40px;margin-left: 14px;border-radius: 8px;" <a-button
@click="handleAllCancel"> type="primary"
ghost
style="
width: 100px;
height: 40px;
margin-left: 14px;
border-radius: 8px;
"
@click="handleAllCancel"
>
取消 取消
</a-button> </a-button>
</div> </div>
@@ -67,18 +95,15 @@ import {
// deepCloneFilterString, // deepCloneFilterString,
} from "../../utils/utils"; } from "../../utils/utils";
//import store from "@/store"; //import store from "@/store";
import * as api from "@/api/indexVote"; import * as api from "@/api/indexVote";
import {} from "@/api/indexResearch"; import {} from "@/api/indexResearch";
//import { message } from "ant-design-vue"; //import { message } from "ant-design-vue";
export default { export default {
name: "CreateVote", name: "CreateVote",
components: { components: {
VoteQuestion, VoteQuestion,
}, },
props: { props: {
createVoteVisible: { createVoteVisible: {
@@ -93,37 +118,35 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
}, },
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
ballotId: "", ballotId: "",
ballotName: "", ballotName: "",
allFormsData: [], allFormsData: [],
}); });
const afterVisibleChange = () => { const afterVisibleChange = () => {
handleTypes(); handleTypes();
}; };
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:createVoteVisible", false); ctx.emit("update:createVoteVisible", false);
} };
// 详情 // 详情
const getInfoDate = async () => { const getInfoDate = async () => {
if (props.editChild) { if (props.editChild) {
//stemId 多余字段 //stemId 多余字段
let res = await api.queryStemByStemId({ let res = await api
.queryStemByStemId({
stemId: 0, stemId: 0,
ballotId: state.ballotId, ballotId: state.ballotId,
}).then((res) => { })
.then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
return res.data.data; return res.data.data;
} }
}); });
state.ballotName = res[0].ballotId; state.ballotName = res[0].ballotId;
let renderArr = [ let renderArr = [...res];
...res,
];
// sortBy(renderArr, "orderNumber"); //序号 // sortBy(renderArr, "orderNumber"); //序号
state.allFormsData = parseData(renderArr); //类型 state.allFormsData = parseData(renderArr); //类型
} }
@@ -149,8 +172,6 @@ export default {
singleList: restList, singleList: restList,
}; };
resultArr.push(obj); resultArr.push(obj);
}); });
resultArr.map((itm, idx) => { resultArr.map((itm, idx) => {
itm.id = idx + 1; itm.id = idx + 1;
@@ -345,7 +366,7 @@ export default {
if (res.data.code === 200) { if (res.data.code === 200) {
message.success("编辑成功"); message.success("编辑成功");
router.push({ router.push({
path: "/researchmanage", path: "/manage/researchmanage",
}); });
} }
}); });
@@ -370,7 +391,6 @@ export default {
}; };
const handleAllCancel = () => { const handleAllCancel = () => {
state.allFormsData = []; state.allFormsData = [];
}; };
/** /**
const checkVal = (filterData) => { const checkVal = (filterData) => {
@@ -585,6 +605,5 @@ export default {
} }
} }
} }
} }
</style> </style>

View File

@@ -49,7 +49,7 @@
</div> </div>
</div> </div>
<div class="btns"> <div class="btns">
<!-- <router-link to="/projectadd"> <!-- <router-link to="/manage/projectadd">
<div class="btn btn3"> <div class="btn btn3">
<div class="search"></div> <div class="search"></div>
<div class="btnText">创建路径</div> <div class="btnText">创建路径</div>
@@ -1213,7 +1213,7 @@ export default {
class="g1" class="g1"
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/leveladd", path: "/manage/leveladd",
}); });
storage.set("routerId", text.record.id); storage.set("routerId", text.record.id);
}} }}

View File

@@ -73,7 +73,7 @@
</div> </div>
</div> </div>
<div class="line"></div> <div class="line"></div>
<router-link to="/learningpath" <router-link to="/manage/learningpath"
><div style="display: flex"> ><div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" /> <img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div> <div class="return">返回</div>
@@ -98,12 +98,11 @@
<div class="taskmain">快速创建项目详情</div> <div class="taskmain">快速创建项目详情</div>
</div> </div>
<div class="second"> <div class="second">
<router-link :to="{ path: '/leveladddetail' }"> <router-link :to="{ path: '/manage/leveladddetail' }">
<div <div
class="taskbox" class="taskbox"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)" style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left1.png" /> <img src="../../assets/images/taskpage/left1.png" />
</div> </div>
@@ -120,7 +119,8 @@
</div> </div>
</router-link> </router-link>
<div <div
class="taskbox" @click="showAddStu" class="taskbox"
@click="showAddStu"
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)" style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
> >
<div class="leftt"> <div class="leftt">
@@ -132,9 +132,7 @@
<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" <div class="centerbox" style="color: rgba(78, 166, 255, 1)">
style="color: rgba(78, 166, 255, 1)">
添加学员 添加学员
</div> </div>
<div class="centermain">快速添加学员</div> <div class="centermain">快速添加学员</div>
@@ -314,7 +312,7 @@
<div class="search"></div> <div class="search"></div>
<div class="btnText">重置</div> <div class="btnText">重置</div>
</div> </div>
<router-link to="/leveladddetail"> <router-link to="/manage/leveladddetail">
<div class="btn btn3" @click="handleOut"> <div class="btn btn3" @click="handleOut">
<div class="search"></div> <div class="search"></div>
<div class="btnText">创建关卡</div> <div class="btnText">创建关卡</div>
@@ -336,7 +334,7 @@
<div class="onerow"> <div class="onerow">
<div class="taskmain">任务大纲</div> <div class="taskmain">任务大纲</div>
<router-link to="/leveladddetail" class="editright"> <router-link to="/manage/leveladddetail" class="editright">
<img <img
class="editimg" class="editimg"
src="../../assets/images/leveladd/edit.png" src="../../assets/images/leveladd/edit.png"
@@ -346,7 +344,7 @@
</div> </div>
<!-- 无数据显示快速创建 --> <!-- 无数据显示快速创建 -->
<div v-show="!taskSyllabus.length"> <div v-show="!taskSyllabus.length">
<router-link :to="{ path: '/leveladddetail' }"> <router-link :to="{ path: '/manage/leveladddetail' }">
<div <div
class="taskbox" class="taskbox"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)" style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
@@ -567,11 +565,28 @@
<div class="btns" @click="searchLevel"> <div class="btns" @click="searchLevel">
<div class="btn btn1"> <div class="btn btn1">
<div class="search"></div> <div class="search"></div>
<a-button class="btnText" style="border:none;background:none;transform: translateY(-20%);" >搜索</a-button> <a-button
class="btnText"
style="
border: none;
background: none;
transform: translateY(-20%);
"
>搜索</a-button
>
</div> </div>
<div class="btn btn2" @click="resetLevel"> <div class="btn btn2" @click="resetLevel">
<div class="search"></div> <div class="search"></div>
<a-button style="border:none;background:none; transform: translateY(-20%);width:100%;" class="btnText" >重置</a-button> <a-button
style="
border: none;
background: none;
transform: translateY(-20%);
width: 100%;
"
class="btnText"
>重置</a-button
>
</div> </div>
</div> </div>
</div> </div>
@@ -763,7 +778,7 @@
<div <div
v-for="item in docList" v-for="item in docList"
:key="item.src" :key="item.src"
style="margin-top: 20px;" style="margin-top: 20px"
class="docListStyle" class="docListStyle"
> >
<img <img
@@ -1181,7 +1196,7 @@ export default {
TestManage, TestManage,
FaceManage, FaceManage,
WorkManage, WorkManage,
SeeStu SeeStu,
}, },
setup() { setup() {
// const routers = useRoute(); // const routers = useRoute();
@@ -1222,17 +1237,17 @@ export default {
picUrl: null, picUrl: null,
projectNameList: [ projectNameList: [
{ {
value: '1', value: "1",
label: '导出信息', label: "导出信息",
}, },
{ {
value: '2', value: "2",
label: '批量调整关卡', label: "批量调整关卡",
}, },
{ {
value: '3', value: "3",
label: '批量删除', label: "批量删除",
} },
], ],
// 共享文档列表 // 共享文档列表
docList: [ docList: [
@@ -1566,7 +1581,7 @@ export default {
const stageChange = (name, id) => { const stageChange = (name, id) => {
state.choosedStageId = id; state.choosedStageId = id;
state.stateName = name; state.stateName = name;
} };
const changeTabs = (e) => { const changeTabs = (e) => {
console.log("切换tabs", e, state.routerId); console.log("切换tabs", e, state.routerId);
if (e == 2) { if (e == 2) {
@@ -1756,7 +1771,6 @@ export default {
.catch((err) => { .catch((err) => {
console.log("复制失败", err); console.log("复制失败", err);
}); });
}; };
const showStop = () => { const showStop = () => {
state.stopModal = true; state.stopModal = true;
@@ -1848,11 +1862,14 @@ export default {
// } // }
levelList.stageList = []; levelList.stageList = [];
for (let i in data) { for (let i in data) {
if(i==0) {state.stateName = data[0].name} if (i == 0) {
state.stateName = data[0].name;
}
levelList.stageList.push({ levelList.stageList.push({
stageId: Number(i) + 1, stageId: Number(i) + 1,
name:data[i].name name: data[i].name,
}) } });
}
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
@@ -1884,7 +1901,7 @@ export default {
.delStudent({ routerId: 100, studentIds: [id] }) .delStudent({ routerId: 100, studentIds: [id] })
.then((res) => { .then((res) => {
message.success("删除成功"); message.success("删除成功");
getStudent() getStudent();
console.log(res); console.log(res);
}) })
.catch((err) => { .catch((err) => {
@@ -1895,61 +1912,74 @@ export default {
}); });
}; };
const searchLevel = () => { const searchLevel = () => {
const result = state.tableData.filter(item => item.cur == state.gatenamee) const result = state.tableData.filter(
(item) => item.cur == state.gatenamee
);
state.tableData = result; state.tableData = result;
}; };
const resetLevel = () => { const resetLevel = () => {
state.gatenamee = ''; state.gatenamee = "";
getStudent(); getStudent();
}; };
const handleStuChange = (value) => { const handleStuChange = (value) => {
console.log(value); console.log(value);
if(value == 2) {state.visiblene = true} if (value == 2) {
if(value == 3 ) { deleteStu() } state.visiblene = true;
}
if (value == 3) {
deleteStu();
}
}; };
const deleteStu = () => { const deleteStu = () => {
if (state.selectedRowKeys.length == 0) { if (state.selectedRowKeys.length == 0) {
message.warning("请选择成员"); message.warning("请选择成员");
return } return;
}
let obj = { let obj = {
routerId: 100, routerId: 100,
studentIds: state.selectedRowKeys, studentIds: state.selectedRowKeys,
} };
api.delStudent(obj).then((res) => { api
.delStudent(obj)
.then((res) => {
console.log(res); console.log(res);
getStudent(); getStudent();
message.success("批量删除成功") message.success("批量删除成功");
}).catch(err => {
message.error("批量删除失败"+err);
console.log(err)
}) })
.catch((err) => {
message.error("批量删除失败" + err);
console.log(err);
});
}; };
const pageChange = (value) => { const pageChange = (value) => {
state.currentPage = value; state.currentPage = value;
getStudent(); getStudent();
} };
const setconfig = () => { const setconfig = () => {
let obj = { let obj = {
"autoJoinFlag": 0, autoJoinFlag: 0,
"deptBoList": [ deptBoList: [
{ {
"deptId": 0, deptId: 0,
"deptName": "" deptName: "",
} },
], ],
"preLearnFlag": 0, preLearnFlag: 0,
"previewFlag": 0, previewFlag: 0,
"routerId": 0, routerId: 0,
"showFlag": 0 showFlag: 0,
} };
api.setConfig(obj).then((res) => { api
message.success("编辑成功") .setConfig(obj)
.then((res) => {
message.success("编辑成功");
console.log(res); console.log(res);
}).catch(err => {
console.log(err);
message.error("编辑失败")
}) })
} .catch((err) => {
console.log(err);
message.error("编辑失败");
});
};
return { return {
...toRefs(state), ...toRefs(state),
...toRefs(levelList), ...toRefs(levelList),

View File

@@ -194,7 +194,7 @@
<unlock-mode v-model:unlockModeVisible="unlockModeVisible" /> <unlock-mode v-model:unlockModeVisible="unlockModeVisible" />
</div> </div>
<div class="line"></div> <div class="line"></div>
<router-link to="/leveladd"> <router-link to="/manage/leveladd">
<div style="display: flex"> <div style="display: flex">
<img <img
class="img2" class="img2"
@@ -758,7 +758,7 @@
<unlock-mode v-model:unlockModeVisible="unlockModeVisible" /> <unlock-mode v-model:unlockModeVisible="unlockModeVisible" />
</div> </div>
<div class="line"></div> <div class="line"></div>
<router-link to="/leveladd"> <router-link to="/manage/leveladd">
<div style="display: flex"> <div style="display: flex">
<img <img
class="img2" class="img2"

View File

@@ -31,7 +31,7 @@
</div> </div>
</div> </div>
<div class="lne"></div> <div class="lne"></div>
<router-link to="/leveladd"> <router-link to="/manage/leveladd">
<div class="return"> <div class="return">
<div class="im"></div> <div class="im"></div>
<div class="fan">返回</div> <div class="fan">返回</div>

View File

@@ -6,7 +6,7 @@
<div <div
@click="backPage" @click="backPage"
style="cursor: pointer" style="cursor: pointer"
to="/projectmanage" to="/manage/projectmanage"
class="goback" class="goback"
> >
<span class="return"></span><span class="returntext">返回</span> <span class="return"></span><span class="returntext">返回</span>
@@ -408,7 +408,7 @@ export default {
if (routers.query.name == undefined) { if (routers.query.name == undefined) {
router.push({ router.push({
path: "/projectmanage", path: "/manage/projectmanage",
}); });
} }
@@ -481,7 +481,7 @@ export default {
const backPage = () => { const backPage = () => {
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage", path: "/manage/projectmanage",
}); });
}, 400); }, 400);
}; };
@@ -800,7 +800,7 @@ export default {
message.success("编辑成功"); message.success("编辑成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage", path: "/manage/projectmanage",
}); });
}, 1000); }, 1000);
} else { } else {
@@ -855,7 +855,7 @@ export default {
message.success("创建成功"); message.success("创建成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/taskpage", path: "/manage/taskpage",
query: { id: res.data.data.projectId }, query: { id: res.data.data.projectId },
}); });
}, 1000); }, 1000);

View File

@@ -33,7 +33,7 @@
</div> </div>
</div> </div>
<div class="line"></div> <div class="line"></div>
<router-link to="/templatelibrary" <router-link to="/manage/templatelibrary"
><div style="display: flex"> ><div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" /> <img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div> <div class="return">返回</div>
@@ -55,7 +55,7 @@
<div class="onerow"> <div class="onerow">
<div class="taskmain">任务大纲</div> <div class="taskmain">任务大纲</div>
<button class="btn" @click="showFaceIn">批量面授报名</button> <button class="btn" @click="showFaceIn">批量面授报名</button>
<router-link to="/taskadd" class="edit"> <router-link to="/manage/taskadd" class="edit">
<img <img
class="editimg" class="editimg"
src="../../assets/images/projectadd/edit.png" src="../../assets/images/projectadd/edit.png"
@@ -395,9 +395,11 @@
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>模板名称</span></div> <div class="setc_name"><span>模板名称</span></div>
<div class="setc_main"> <div class="setc_main">
<a-input v-model:value="formData.name" <a-input
:bordered="isEdit" :disabled="!isEdit" v-model:value="formData.name"
style="width:300px;" :bordered="isEdit"
:disabled="!isEdit"
style="width: 300px"
></a-input> ></a-input>
</div> </div>
</div> </div>
@@ -411,27 +413,35 @@
@change="handleChange" @change="handleChange"
:disabled="!isEdit" :disabled="!isEdit"
> >
<img src="@/assets/images/projectadd/picture.png" alt="" /> <img
src="@/assets/images/projectadd/picture.png"
alt=""
/>
</a-upload> </a-upload>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>模板时间</span></div> <div class="setc_name"><span>模板时间</span></div>
<div class="setc_main"> <div class="setc_main">
<a-range-picker v-model:value="formData.time" <a-range-picker
v-model:value="formData.time"
:bordered="isEdit" :disabled="!isEdit" /> :bordered="isEdit"
:disabled="!isEdit"
/>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>项目经理</span></div> <div class="setc_name"><span>项目经理</span></div>
<div class="setc_main"> <div class="setc_main">
<a-select <a-select
v-model:value="formData.manager" mode="multiple" v-model:value="formData.manager"
mode="multiple"
placeholder="请选择项目经理" placeholder="请选择项目经理"
:size="large" :bordered="isEdit" :disabled="!isEdit" :size="large"
style="width: 200px;color: #999999;" :options="managerOptions" :bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="managerOptions"
></a-select> ></a-select>
</div> </div>
</div> </div>
@@ -441,25 +451,32 @@
<a-select <a-select
v-model:value="formData.sourceBelongId" v-model:value="formData.sourceBelongId"
placeholder="请选择资源归属" placeholder="请选择资源归属"
:size="large" :bordered="isEdit" :disabled="!isEdit" :size="large"
style="width: 200px;color: #999999;" :options="sourceBelongOptions" :bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="sourceBelongOptions"
></a-select> ></a-select>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>模板说明</span></div> <div class="setc_name"><span>模板说明</span></div>
<div class="setc_main"> <div class="setc_main">
<a-input v-model:value="formData.remark" <a-input
style="width:300px;" v-model:value="formData.remark"
:bordered="isEdit" :disabled="!isEdit" style="width: 300px"
:bordered="isEdit"
:disabled="!isEdit"
></a-input> ></a-input>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>同步学习记录</span></div> <div class="setc_name"><span>同步学习记录</span></div>
<div class="setc_main" @click="changecheck2"> <div class="setc_main" @click="changecheck2">
<a-radio v-model:checked="formData.courseSyncFlag" <a-radio
:bordered="isEdit" :disabled="!isEdit" v-model:checked="formData.courseSyncFlag"
:bordered="isEdit"
:disabled="!isEdit"
><span style="color: #333333" ><span style="color: #333333"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span >同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio ></a-radio
@@ -472,8 +489,11 @@
<a-select <a-select
v-model:value="formData.level" v-model:value="formData.level"
placeholder="请选择项目级别" placeholder="请选择项目级别"
:size="large" :bordered="isEdit" :disabled="!isEdit" :size="large"
style="width: 200px;color: #999999;" :options="levelOptions" :bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="levelOptions"
></a-select> ></a-select>
</div> </div>
</div> </div>
@@ -483,23 +503,36 @@
<a-select <a-select
v-model:value="formData.systemId" v-model:value="formData.systemId"
placeholder="请选择培训分类" placeholder="请选择培训分类"
:size="large" :bordered="isEdit" :disabled="!isEdit" :size="large"
style="width: 200px;color: #999999;" :options="systemOptions" :bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="systemOptions"
></a-select> ></a-select>
</div> </div>
</div> </div>
<div class="set_content"> <div class="set_content">
<div class="setc_name"><span>是否BOEU实施</span></div> <div class="setc_name"><span>是否BOEU实施</span></div>
<div class="setc_main" @click="changecheck3"> <div class="setc_main" @click="changecheck3">
<a-radio v-model:checked="formData.boeFlag" <a-radio
:bordered="isEdit" :disabled="!isEdit" v-model:checked="formData.boeFlag"
:bordered="isEdit"
:disabled="!isEdit"
><span style="color: #333333">BOEU实施</span></a-radio ><span style="color: #333333">BOEU实施</span></a-radio
> >
</div> </div>
</div> </div>
<div v-if="isEdit" style="transform: translateX(50%)"> <div v-if="isEdit" style="transform: translateX(50%)">
<a-button @click="cancelEdit" style="background-color: #f9f9f9">取消</a-button> <a-button
<a-button @click="confirmEdit" style="background-color: #f5faff">保存</a-button> @click="cancelEdit"
style="background-color: #f9f9f9"
>取消</a-button
>
<a-button
@click="confirmEdit"
style="background-color: #f5faff"
>保存</a-button
>
</div> </div>
</div> </div>
</div> </div>
@@ -516,29 +549,48 @@
<a-switch v-model:checked="docChecked"></a-switch> <a-switch v-model:checked="docChecked"></a-switch>
</div> </div>
</div> </div>
<div class="btnbox" style="margin:20px;"> <div class="btnbox" style="margin: 20px">
<a-upload <a-upload
v-model:file-list="fileList" v-model:file-list="fileList"
name="file" name="file"
action="/api/file/upload" action="/api/file/upload"
@change="handleChange" @change="handleChange"
> >
<span class="xkbtn" style="cursor: pointer; font-size: 17px" >上传</span> <span
<img src="@/assets/images/basicinfo/cloud.png" style="cursor: pointer; class="xkbtn"
width:34px;height:34px; style="cursor: pointer; font-size: 17px"
" alt=""> >上传</span
>
<img
src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 34px; height: 34px"
alt=""
/>
</a-upload> </a-upload>
<div class="btnbox" style="margin:20px;"> <div class="btnbox" style="margin: 20px">
<span style="color: #999999"> <span style="color: #999999">
支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip 支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
</span> </span>
</div> </div>
<div v-for="item in docList" :key="item.src" class="docListStyle"> <div
<img src="@/assets/images/basicinfo/download.png" style="cursor: pointer; v-for="item in docList"
width:40px;height:40px;margin-right:40px; :key="item.src"
" alt=""> class="docListStyle"
<span style="font: oblique 16px Sans-serif">{{item.name}}</span> >
<span style="color: #4ea6ff;float:right;">删除</span> <img
src="@/assets/images/basicinfo/download.png"
style="
cursor: pointer;
width: 40px;
height: 40px;
margin-right: 40px;
"
alt=""
/>
<span style="font: oblique 16px Sans-serif">{{
item.name
}}</span>
<span style="color: #4ea6ff; float: right">删除</span>
</div> </div>
</div> </div>
</div> </div>
@@ -592,7 +644,7 @@
<script> <script>
import { ref, reactive, defineComponent, toRefs, onMounted } from "vue"; import { ref, reactive, defineComponent, toRefs, onMounted } from "vue";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import * as api from "@/api/indexTemplate" import * as api from "@/api/indexTemplate";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
export default defineComponent({ export default defineComponent({
name: "LibraryAdd", name: "LibraryAdd",
@@ -762,17 +814,17 @@ export default defineComponent({
// 共享文档列表 // 共享文档列表
docList: [ docList: [
{ {
name:'测试文档1.doc', name: "测试文档1.doc",
src: "", src: "",
}, },
{ {
name:'测试文档2.doc', name: "测试文档2.doc",
src: "", src: "",
}, },
{ {
name:'测试文档3.doc', name: "测试文档3.doc",
src: "", src: "",
} },
], ],
// 基本信息 // 基本信息
formData: { formData: {
@@ -807,153 +859,182 @@ export default defineComponent({
}; };
const confirmEdit = () => { const confirmEdit = () => {
state.isEdit = false; state.isEdit = false;
editTemplate() editTemplate();
getDetail(); getDetail();
}; };
onMounted(() => {getDetail()}); onMounted(() => {
getDetail();
});
// 获取详情 // 获取详情
const getDetail = () => { const getDetail = () => {
api.templateDetail(0).then(res => { api
console.log(res) .templateDetail(0)
state.formData.name = res.data.data.projectInfo.name .then((res) => {
state.formData.time = res.data.data.projectInfo.startTime+res.data.data.projectInfo.endTime; console.log(res);
state.formData.manager = res.data.data.projectInfo.manager state.formData.name = res.data.data.projectInfo.name;
state.formData.sourceBelongId = res.data.data.projectInfo.sourceBelongId state.formData.time =
state.formData.remark = res.data.data.stageList.remark res.data.data.projectInfo.startTime +
state.formData.courseSyncFlag = res.data.data.projectInfo.courseSyncFlag res.data.data.projectInfo.endTime;
state.formData.level = res.data.data.projectInfo.level state.formData.manager = res.data.data.projectInfo.manager;
state.formData.systemId = res.data.data.projectInfo.systemId state.formData.sourceBelongId =
state.formData.boeFlag = res.data.data.projectInfo.boeFlag res.data.data.projectInfo.sourceBelongId;
state.value2 = res.data.data.projectInfo.notice state.formData.remark = res.data.data.stageList.remark;
}).catch(err => { state.formData.courseSyncFlag =
message.error("操作失败"+err) res.data.data.projectInfo.courseSyncFlag;
console.log(err) state.formData.level = res.data.data.projectInfo.level;
state.formData.systemId = res.data.data.projectInfo.systemId;
state.formData.boeFlag = res.data.data.projectInfo.boeFlag;
state.value2 = res.data.data.projectInfo.notice;
}) })
} .catch((err) => {
message.error("操作失败" + err);
console.log(err);
});
};
// 编辑项目模板 // 编辑项目模板
const editTemplate = () => { const editTemplate = () => {
let obj = { let obj = {
"beginTime": state.formData.time, beginTime: state.formData.time,
"boeFlag": state.formData.boeFlag, boeFlag: state.formData.boeFlag,
"category": 0, category: 0,
"courseSyncFlag": state.formData.courseSyncFlag, courseSyncFlag: state.formData.courseSyncFlag,
"endTime": state.formData.time, endTime: state.formData.time,
"level": state.formData.level, level: state.formData.level,
"manager": state.formData.manager, manager: state.formData.manager,
"managerId": "", managerId: "",
"name": state.formData.name, name: state.formData.name,
"notice": "", notice: "",
"noticeFlag": 0, noticeFlag: 0,
"picUrl": "", picUrl: "",
"projectTemplateId": 0, projectTemplateId: 0,
"remark": state.formData.remark, remark: state.formData.remark,
"sourceBelongId": state.formData.sourceBelongId, sourceBelongId: state.formData.sourceBelongId,
"status": 0, status: 0,
"systemId": state.formData.systemId systemId: state.formData.systemId,
}; };
api.templateEdit(obj).methods(obj).then(res => { api
message.success("编辑成功") .templateEdit(obj)
console.log(res) .methods(obj)
}).catch(err => { .then((res) => {
message.error("编辑失败"+err) message.success("编辑成功");
console.log(err) console.log(res);
}) })
} .catch((err) => {
message.error("编辑失败" + err);
console.log(err);
});
};
// 发布公告 // 发布公告
const addNotice = () => { const addNotice = () => {
let obj = { let obj = {
"beginTime": 0, beginTime: 0,
"boeFlag": 0, boeFlag: 0,
"category": 0, category: 0,
"courseSyncFlag": 0, courseSyncFlag: 0,
"endTime": 0, endTime: 0,
"level": 0, level: 0,
"manager": "", manager: "",
"managerId": "", managerId: "",
"name": "", name: "",
"notice": state.value2, notice: state.value2,
"noticeFlag": 0, noticeFlag: 0,
"picUrl": "", picUrl: "",
"projectTemplateId": 0, projectTemplateId: 0,
"remark": "", remark: "",
"sourceBelongId": 0, sourceBelongId: 0,
"status": 0, status: 0,
"systemId": 0 systemId: 0,
}; };
api.templateEdit(obj).methods(obj).then(res => { api
message.success("公告发布成功") .templateEdit(obj)
console.log(res) .methods(obj)
}).catch(err => { .then((res) => {
message.error("公告发布失败"+err) message.success("公告发布成功");
console.log(err) console.log(res);
}) })
} .catch((err) => {
message.error("公告发布失败" + err);
console.log(err);
});
};
// 删除阶段 // 删除阶段
const stateDel = (id) => { const stateDel = (id) => {
api.deleteStage(id).then(res => { api
message.success("删除阶段成功") .deleteStage(id)
console.log(res) .then((res) => {
}).catch(err => { message.success("删除阶段成功");
message.error("删除阶段失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("删除阶段失败" + err);
console.log(err);
});
};
// 删除任务 // 删除任务
const taskDel = (id) => { const taskDel = (id) => {
api.deleteTask(id).then(res => { api
message.success("删除任务成功") .deleteTask(id)
console.log(res) .then((res) => {
}).catch(err => { message.success("删除任务成功");
message.error("删除任务失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("删除任务失败" + err);
console.log(err);
});
};
const toEdit = () => { const toEdit = () => {
routered.push({ routered.push({
path: "/templateAdd", path: "/manage/templateAdd",
query: { query: {
projectId: state.projectId, projectId: state.projectId,
name: state.name, name: state.name,
}, },
}); });
} };
// 新建或编辑阶段 // 新建或编辑阶段
const stateEdit = () => { const stateEdit = () => {
let obj = { let obj = {
"name": "", name: "",
"projectTemplateId": 0, projectTemplateId: 0,
"remark": "", remark: "",
"stageId": 0 stageId: 0,
} };
api.editStagek(obj).then(res => { api
message.success("编辑阶段成功") .editStagek(obj)
console.log(res) .then((res) => {
}).catch(err => { message.success("编辑阶段成功");
message.error("编辑阶段失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("编辑阶段失败" + err);
console.log(err);
});
};
//新建或编辑阶段任务 //新建或编辑阶段任务
const taskEdit = () => { const taskEdit = () => {
let obj = { let obj = {
"courseId": 0, courseId: 0,
"duration": 0, duration: 0,
"flag": true, flag: true,
"name": "", name: "",
"projectTaskId": 0, projectTaskId: 0,
"projectTemplateId": 0, projectTemplateId: 0,
"stageId": 0, stageId: 0,
"type": 0 type: 0,
} };
api.editTask(obj).then(res => { api
message.success("编辑任务成功") .editTask(obj)
console.log(res) .then((res) => {
}).catch(err => { message.success("编辑任务成功");
message.error("编辑任务失败"+err) console.log(res);
console.log(err)
}) })
} .catch((err) => {
message.error("编辑任务失败" + err);
console.log(err);
});
};
return { return {
...toRefs(state), ...toRefs(state),
value, value,
@@ -1393,14 +1474,12 @@ export default defineComponent({
} }
.notice { .notice {
.ntc_tit { .ntc_tit {
padding-top: 22px; padding-top: 22px;
margin-left: 34px; margin-left: 34px;
font-size: 18px; font-size: 18px;
font-weight: 500; font-weight: 500;
color: #232425; color: #232425;
} }
.ntc_body { .ntc_body {
margin-left: 34px; margin-left: 34px;
@@ -1422,7 +1501,6 @@ export default defineComponent({
.btnarea { .btnarea {
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
} }
.area_btn { .area_btn {
width: 100px; width: 100px;

View File

@@ -6,7 +6,7 @@
<div <div
@click="backPage" @click="backPage"
style="cursor: pointer" style="cursor: pointer"
to="/projectmanage" to="/manage/projectmanage"
class="goback" class="goback"
> >
<span class="return"></span><span class="returntext">返回</span> <span class="return"></span><span class="returntext">返回</span>
@@ -530,7 +530,7 @@ export default {
storage.remove("projectAddId"); storage.remove("projectAddId");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage", path: "/manage/projectmanage",
}); });
}, 400); }, 400);
}; };
@@ -993,7 +993,7 @@ export default {
message.success("编辑成功"); message.success("编辑成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage", path: "/manage/projectmanage",
}); });
}, 1000); }, 1000);
} else { } else {
@@ -1048,7 +1048,7 @@ export default {
message.success("创建成功"); message.success("创建成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/taskpage", path: "/manage/taskpage",
query: { id: res.data.data.projectId }, query: { id: res.data.data.projectId },
}); });
}, 1000); }, 1000);

View File

@@ -259,7 +259,7 @@
</div> </div>
</div> </div>
<div class="modalMain"> <div class="modalMain">
<router-link to="/projectadd"> <router-link to="/manage/projectadd">
<div <div
class="taskbox" class="taskbox"
style=" style="
@@ -1513,7 +1513,7 @@ export default {
const createChildProject = () => { const createChildProject = () => {
console.log(state.currentProjectId); console.log(state.currentProjectId);
router.push({ router.push({
path: "/sonproject", path: "/manage/sonproject",
query: { query: {
projectId: state.currentProjectId, projectId: state.currentProjectId,
name: state.currentProjectName, name: state.currentProjectName,
@@ -2182,7 +2182,7 @@ export default {
> >
{/* {/*
<a-select-option value="基础信息" label="基础信息"> <a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link> <router-link to="/manage/taskpage">基础信息</router-link>
</a-select-option> </a-select-option>
<a-select-option value="存为模版" label="存为模版"> <a-select-option value="存为模版" label="存为模版">
<div <div
@@ -2280,7 +2280,7 @@ export default {
> >
{/* {/*
<a-select-option value="基础信息" label="基础信息"> <a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link> <router-link to="/manage/taskpage">基础信息</router-link>
</a-select-option> </a-select-option>
<a-select-option value="存为模版" label="存为模版"> <a-select-option value="存为模版" label="存为模版">
<div <div
@@ -2368,7 +2368,7 @@ export default {
> >
{/* {/*
<a-select-option value="基础信息" label="基础信息"> <a-select-option value="基础信息" label="基础信息">
<router-link to="/taskpage">基础信息</router-link> <router-link to="/manage/taskpage">基础信息</router-link>
</a-select-option> </a-select-option>
<a-select-option value="存为模版" label="存为模版"> <a-select-option value="存为模版" label="存为模版">
<div <div
@@ -2474,7 +2474,7 @@ export default {
<div <div
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/classadd", path: "/manage/classadd",
query: { query: {
projectId: value.record.projectId, projectId: value.record.projectId,
name: value.record.name, name: value.record.name,
@@ -2482,7 +2482,7 @@ export default {
}); });
}} }}
style={{ cursor: "pointer" }} style={{ cursor: "pointer" }}
to="/classadd" to="/manage/classadd"
class="operation3" class="operation3"
> >
创建班级 创建班级
@@ -2566,7 +2566,7 @@ export default {
</a-select> </a-select>
</div> </div>
<router-link to="/classadd" class="operation3"> <router-link to="/manage/classadd" class="operation3">
创建班级 创建班级
</router-link> </router-link>
<div class="tableSelect"> <div class="tableSelect">
@@ -2683,7 +2683,7 @@ export default {
} }
if (value.record.parentId == "0") { if (value.record.parentId == "0") {
router.push({ router.push({
path: "/projectadd", path: "/manage/projectadd",
query: { query: {
projectId: value.record.projectId, projectId: value.record.projectId,
name: value.record.name, name: value.record.name,
@@ -2692,7 +2692,7 @@ export default {
} else { } else {
if (value.record.isbj) { if (value.record.isbj) {
router.push({ router.push({
path: "/classadd", path: "/manage/classadd",
query: { query: {
projectId: value.record.projectId, projectId: value.record.projectId,
name: value.record.paraentName, name: value.record.paraentName,
@@ -2701,7 +2701,7 @@ export default {
}); });
} else { } else {
router.push({ router.push({
path: "/sonproject", path: "/manage/sonproject",
query: { query: {
projectId: value.record.projectId, projectId: value.record.projectId,
name: value.record.paraentName, name: value.record.paraentName,
@@ -2728,7 +2728,7 @@ export default {
// } // }
// if (value.record.parentId == "0") { // if (value.record.parentId == "0") {
// router.push({ // router.push({
// path: "/projectadd", // path: "/manage/projectadd",
// query: { // query: {
// projectId: value.record.projectId, // projectId: value.record.projectId,
// name: value.record.name, // name: value.record.name,
@@ -2738,7 +2738,7 @@ export default {
// } else { // } else {
// if (value.record.isbj) { // if (value.record.isbj) {
// router.push({ // router.push({
// path: "/classadd", // path: "/manage/classadd",
// query: { // query: {
// projectId: value.record.projectId, // projectId: value.record.projectId,
// name: value.record.paraentName, // name: value.record.paraentName,
@@ -2748,7 +2748,7 @@ export default {
// }); // });
// } else { // } else {
// router.push({ // router.push({
// path: "/sonproject", // path: "/manage/sonproject",
// query: { // query: {
// projectId: value.record.projectId, // projectId: value.record.projectId,
// name: value.record.paraentName, // name: value.record.paraentName,
@@ -2878,7 +2878,7 @@ export default {
<div <div
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/taskpage", path: "/manage/taskpage",
}); });
storage.set("projectId", value.record.projectId); storage.set("projectId", value.record.projectId);
}} }}
@@ -2937,7 +2937,7 @@ export default {
<div <div
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/taskpage", path: "/manage/taskpage",
}); });
storage.set("projectId", value.record.projectId); storage.set("projectId", value.record.projectId);
}} }}
@@ -2984,7 +2984,7 @@ export default {
<div <div
onClick={() => { onClick={() => {
router.push({ router.push({
path: "/taskpage", path: "/manage/taskpage",
}); });
storage.set("projectId", value.record.projectId); storage.set("projectId", value.record.projectId);
}} }}
@@ -2992,7 +2992,7 @@ export default {
基础信息 基础信息
</div> </div>
{/** {/**
<router-link to="/taskpage">基础信息</router-link> <router-link to="/manage/taskpage">基础信息</router-link>
*/} */}
</a-select-option> </a-select-option>
</a-select> </a-select>

View File

@@ -3,7 +3,12 @@
<div class="sonproject"> <div class="sonproject">
<div class="header"> <div class="header">
<span class="title">创建/编辑单层子项目</span> <span class="title">创建/编辑单层子项目</span>
<div @click="backPage" style="cursor: pointer;" to="/projectmanage" class="goback"> <div
@click="backPage"
style="cursor: pointer"
to="/manage/projectmanage"
class="goback"
>
<span class="return"></span><span class="returntext">返回</span> <span class="return"></span><span class="returntext">返回</span>
</div> </div>
</div> </div>
@@ -11,7 +16,10 @@
<div class="main"> <div class="main">
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目归属</div> <div class="inname">项目归属</div>
</div> </div>
<div class="in"> <div class="in">
@@ -22,34 +30,60 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">子项目名称</div> <div class="inname">子项目名称</div>
</div> </div>
<div class="in"> <div class="in">
<a-input v-model:value="projectName" placeholder="请输入项目名称" show-count :maxlength="30" :disabled="viewDetail ? true : false" /> <a-input
v-model:value="projectName"
placeholder="请输入项目名称"
show-count
:maxlength="30"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">分类</div> <div class="inname">分类</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect" placeholder="四个养成" style="width: 100%" :options="classifyList" "
@change="classificationChange" allowClear showSearch :disabled="viewDetail ? true : false"> v-model:value="classifySelect"
placeholder="四个养成"
style="width: 100%"
:options="classifyList"
@change="classificationChange"
allowClear
showSearch
:disabled="viewDetail ? true : false"
>
</a-select> </a-select>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">封面图</div> <div class="inname">封面图</div>
</div> </div>
<div class="box" style=" <div
class="box"
style="
width: 100px; width: 100px;
height: 100px; height: 100px;
border: 1px solid rgba(78, 166, 255, 1); border: 1px solid rgba(78, 166, 255, 1);
@@ -57,15 +91,30 @@
cursor: pointer; cursor: pointer;
position: relative; position: relative;
overflow: hidden; overflow: hidden;
"> "
<a-upload v-model:file-list="fileList" name="file" list-type="picture-card" class="avatar-uploader" >
:show-upload-list="false" action="/api/file/upload" :before-upload="beforeUpload" @change="handleChange" :disabled="viewDetail ? true : false"> <a-upload
<img style=" v-model:file-list="fileList"
name="file"
list-type="picture-card"
class="avatar-uploader"
:show-upload-list="false"
action="/api/file/upload"
:before-upload="beforeUpload"
@change="handleChange"
:disabled="viewDetail ? true : false"
>
<img
style="
width: 100px; width: 100px;
height: 100px; height: 100px;
margin-bottom: 4px; margin-bottom: 4px;
margin-right: 4px; margin-right: 4px;
" v-if="imageUrl" :src="imageUrl" alt="avatar" /> "
v-if="imageUrl"
:src="imageUrl"
alt="avatar"
/>
<div v-else> <div v-else>
<!-- <loading-outlined v-if="loading"></loading-outlined> --> <!-- <loading-outlined v-if="loading"></loading-outlined> -->
<!-- <plus-outlined v-else></plus-outlined> --> <!-- <plus-outlined v-else></plus-outlined> -->
@@ -78,43 +127,74 @@
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">子项目时间</div> <div class="inname">子项目时间</div>
</div> </div>
<div class="in"> <div class="in">
<a-range-picker separator="至" :placeholder="[' 开始时间', ' 结束时间']" v-model:value="rangevalue" <a-range-picker
style="width: 100%; height: 40px; border-radius: 5px" @change="onRangeChange" :disabled="viewDetail ? true : false" /> separator="至"
:placeholder="[' 开始时间', ' 结束时间']"
v-model:value="rangevalue"
style="width: 100%; height: 40px; border-radius: 5px"
@change="onRangeChange"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">子项目经理</div> <div class="inname">子项目经理</div>
</div> </div>
<div class="in"> <div class="in">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" :value="classifySelect1" mode="multiple" placeholder="请选择项目经理" style="width: 100%" :options="classifyList1" "
@change="classificationChange1" allowClear showSearch :disabled="viewDetail ? true : false"> :value="classifySelect1"
mode="multiple"
placeholder="请选择项目经理"
style="width: 100%"
:options="classifyList1"
@change="classificationChange1"
allowClear
showSearch
:disabled="viewDetail ? true : false"
>
</a-select> </a-select>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">资源归属</div> <div class="inname">资源归属</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect2" placeholder="自动带出 可修改" :options="classifyList2" "
@change="classificationChange2" :disabled="viewDetail ? true : false" /> v-model:value="classifySelect2"
placeholder="自动带出 可修改"
:options="classifyList2"
@change="classificationChange2"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2">
@@ -122,7 +202,14 @@
<div class="inname" style="margin-top: 13px">项目说明</div> <div class="inname" style="margin-top: 13px">项目说明</div>
</div> </div>
<div class="in"> <div class="in">
<a-textarea v-model:value="remark" style="height: 80px" placeholder="请输入说明" show-count :maxlength="200" :disabled="viewDetail ? true : false"/> <a-textarea
v-model:value="remark"
style="height: 80px"
placeholder="请输入说明"
show-count
:maxlength="200"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name name2"> <div class="name name2">
@@ -130,52 +217,89 @@
<div class="inname">同步学习记录</div> <div class="inname">同步学习记录</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked" v-model:checked="checked" :disabled="viewDetail ? true : false"><span style=" <a-radio
@click="changeChecked"
v-model:checked="checked"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%; width: 100%;
color: rgba(109, 117, 132, 1); color: rgba(109, 117, 132, 1);
font-size: 14px; font-size: 14px;
" >同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span></a-radio> "
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio
>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">项目级别</div> <div class="inname">项目级别</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect3" :options="classifyList3" @change="classificationChange3" "
placeholder="集团级/组织级/现地级/部门级" :disabled="viewDetail ? true : false" /> v-model:value="classifySelect3"
:options="classifyList3"
@change="classificationChange3"
placeholder="集团级/组织级/现地级/部门级"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">培训分类</div> <div class="inname">培训分类</div>
</div> </div>
<div class="in select"> <div class="in select">
<a-select :getPopupContainer=" <a-select
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect4" :options="classifyList4" @change="classificationChange4" "
placeholder="集团级/组织级/现地级/部门级" :disabled="viewDetail ? true : false" /> v-model:value="classifySelect4"
:options="classifyList4"
@change="classificationChange4"
placeholder="集团级/组织级/现地级/部门级"
:disabled="viewDetail ? true : false"
/>
</div> </div>
</div> </div>
<div class="name"> <div class="name">
<div class="namebox"> <div class="namebox">
<img class="nameimg" src="../../assets/images/basicinfo/asterisk.png" /> <img
class="nameimg"
src="../../assets/images/basicinfo/asterisk.png"
/>
<div class="inname">是否BOEU实施</div> <div class="inname">是否BOEU实施</div>
</div> </div>
<div class="in"> <div class="in">
<a-radio @click="changeChecked1" v-model:checked="checked1" :disabled="viewDetail ? true : false"><span style=" <a-radio
@click="changeChecked1"
v-model:checked="checked1"
:disabled="viewDetail ? true : false"
><span
style="
width: 100%; width: 100%;
color: rgba(109, 117, 132, 1); color: rgba(109, 117, 132, 1);
font-size: 14px; font-size: 14px;
">BOEU实施</span></a-radio> "
>BOEU实施</span
></a-radio
>
</div> </div>
</div> </div>
<!-- <div class="name name2"> <!-- <div class="name name2">
@@ -202,19 +326,36 @@
<div class="name"> <div class="name">
<div class="inname" style="width: 50px">模版</div> <div class="inname" style="width: 50px">模版</div>
<div class="in select" style="margin-left: 2px"> <div class="in select" style="margin-left: 2px">
<a-select v-if="isEdit" disabled="true" :getPopupContainer=" <a-select
v-if="isEdit"
disabled="true"
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect5" placeholder="请选择模版" :size="size" style="width: 100%" :options="classifyList5" "
@change="classificationChange5" > v-model:value="classifySelect5"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
>
</a-select> </a-select>
<a-select v-else :getPopupContainer=" <a-select
v-else
:getPopupContainer="
(triggerNode) => { (triggerNode) => {
return triggerNode.parentNode || document.body; return triggerNode.parentNode || document.body;
} }
" v-model:value="classifySelect5" placeholder="请选择模版" :size="size" style="width: 100%" :options="classifyList5" "
@change="classificationChange5"> v-model:value="classifySelect5"
placeholder="请选择模版"
:size="size"
style="width: 100%"
:options="classifyList5"
@change="classificationChange5"
>
</a-select> </a-select>
</div> </div>
</div> </div>
@@ -222,7 +363,9 @@
</div> </div>
<div class="footer"> <div class="footer">
<div class="btn"> <div class="btn">
<a-button v-on:click="createProject" type="primary" class="btn1">确定</a-button> <a-button v-on:click="createProject" type="primary" class="btn1"
>确定</a-button
>
<a-button @click="backPage" class="btn2">取消</a-button> <a-button @click="backPage" class="btn2">取消</a-button>
</div> </div>
</div> </div>
@@ -232,9 +375,9 @@
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { useRouter, useRoute } from "vue-router"; import { useRouter, useRoute } from "vue-router";
import dayjs from 'dayjs'; import dayjs from "dayjs";
import * as api from "../../api/index"; import * as api from "../../api/index";
import { toDate } from '../../api/method' import { toDate } from "../../api/method";
export default { export default {
name: "projectAdd", name: "projectAdd",
@@ -260,12 +403,12 @@ export default {
classifySelect4: [], classifySelect4: [],
rangevalue: [], rangevalue: [],
projectAscription: "", projectAscription: "",
viewDetail:routers.query.viewDetail?routers.query.viewDetail:null viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
}); });
if (routers.query.name == undefined) { if (routers.query.name == undefined) {
router.push({ router.push({
path: "/projectmanage" path: "/manage/projectmanage",
}); });
} }
@@ -275,35 +418,38 @@ export default {
if (routers.query.edit !== undefined) { if (routers.query.edit !== undefined) {
isEdit.value = true; isEdit.value = true;
// 需要编辑 // 需要编辑
api.getProjectDetail({ projectId: routers.query.projectId }).then(res => { api
.getProjectDetail({ projectId: routers.query.projectId })
.then((res) => {
if (res.status == 200 && res.data.code == 200) { if (res.status == 200 && res.data.code == 200) {
let info = res.data.data.projectInfo; let info = res.data.data.projectInfo;
console.log(info) console.log(info);
// projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 * // projectName classifySelect imageUrl * classifySelect1 * remark checked classifySelect3 classifySelect4 changeChecked1 *
projectName.value = info.name; projectName.value = info.name;
state.classifySelect = classifyList.value[1]; // info.category state.classifySelect = classifyList.value[1]; // info.category
imageUrl.value = info.picUrl; imageUrl.value = info.picUrl;
let start = toDate(info.beginTime / 1000, 'YYYY/MM/DD'); let start = toDate(info.beginTime / 1000, "YYYY/MM/DD");
let end = toDate(info.endTime / 1000, 'YYYY/MM/DD'); let end = toDate(info.endTime / 1000, "YYYY/MM/DD");
state.rangevalue = [ state.rangevalue = [
dayjs(start, 'YYYY/MM/DD'), dayjs(start, "YYYY/MM/DD"),
dayjs(end, 'YYYY/MM/DD'), dayjs(end, "YYYY/MM/DD"),
]; ];
let manageName = info.manager.split(","); let manageName = info.manager.split(",");
let manageValue = info.managerId.split(","); let manageValue = info.managerId.split(",");
let optionsManage = [] let optionsManage = [];
for (let i = 0; i < manageName.length; i++) { for (let i = 0; i < manageName.length; i++) {
let obj = { let obj = {
label: manageName[i], label: manageName[i],
value: manageValue[i] value: manageValue[i],
};
optionsManage.push(obj);
} }
optionsManage.push(obj) console.log(optionsManage);
}
console.log(optionsManage)
state.classifySelect1 = optionsManage; state.classifySelect1 = optionsManage;
state.classifySelect2 = classifyList2.value[info.sourceBelongId - 1]; state.classifySelect2 =
classifyList2.value[info.sourceBelongId - 1];
remark.value = info.remark; remark.value = info.remark;
state.checked = info.boeFlag ? info.boeFlag : false; state.checked = info.boeFlag ? info.boeFlag : false;
state.classifySelect3 = classifyList3.value[info.level]; state.classifySelect3 = classifyList3.value[info.level];
@@ -324,21 +470,21 @@ export default {
boeFlag = info.boeFlag; boeFlag = info.boeFlag;
paraentID = Number(info.parentId); paraentID = Number(info.parentId);
} }
}).catch(err => { console.log(err) }) })
.catch((err) => {
console.log(err);
});
} else { } else {
paraentID = Number(routers.query.projectId); paraentID = Number(routers.query.projectId);
} }
const backPage = () => { const backPage = () => {
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage" path: "/manage/projectmanage",
}); });
}, 400); }, 400);
} };
const projectName = ref(""); const projectName = ref("");
@@ -453,7 +599,7 @@ export default {
let beginTime = ""; let beginTime = "";
let endTime = ""; let endTime = "";
const dateFormatList = ['YYYY/MM/DD']; const dateFormatList = ["YYYY/MM/DD"];
const onRangeChange = (value, dateString) => { const onRangeChange = (value, dateString) => {
console.log("Selected Time: ", value); console.log("Selected Time: ", value);
@@ -494,7 +640,7 @@ export default {
let newoptions = []; let newoptions = [];
for (let i = 0; i < state.classifySelect1.length; i++) { for (let i = 0; i < state.classifySelect1.length; i++) {
if (state.classifySelect1[i].value) { if (state.classifySelect1[i].value) {
newoptions.push(state.classifySelect1[i]) newoptions.push(state.classifySelect1[i]);
} }
} }
state.classifySelect1 = newoptions; state.classifySelect1 = newoptions;
@@ -509,7 +655,7 @@ export default {
{ value: 3, label: "项目三" }, { value: 3, label: "项目三" },
]); ]);
let sourceBelongIdC = ''; let sourceBelongIdC = "";
const classificationChange2 = (key) => { const classificationChange2 = (key) => {
console.log(`selected ${key}`, classifyList2); console.log(`selected ${key}`, classifyList2);
sourceBelongIdC = key; sourceBelongIdC = key;
@@ -603,13 +749,13 @@ export default {
sourceBelongId: "请选择资源归属", sourceBelongId: "请选择资源归属",
level: "请填写项目级别", level: "请填写项目级别",
systemId: "请填写项目培训分类", systemId: "请填写项目培训分类",
boeFlag: "请选择是否BOE实施" boeFlag: "请选择是否BOE实施",
}; };
const createProject = () => { const createProject = () => {
console.log('我是否要编辑项目', isEdit.value) console.log("我是否要编辑项目", isEdit.value);
if (isEdit.value) { if (isEdit.value) {
console.log('我要编辑项目', peojectID) console.log("我要编辑项目", peojectID);
let obj = { let obj = {
projectId: Number(peojectID), projectId: Number(peojectID),
name: projectName["value"], name: projectName["value"],
@@ -654,7 +800,7 @@ export default {
message.success("编辑成功"); message.success("编辑成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage" path: "/manage/projectmanage",
}); });
}, 1000); }, 1000);
} else { } else {
@@ -667,7 +813,6 @@ export default {
message.destroy(); message.destroy();
message.error("编辑失败,请检查当前网络状态。"); message.error("编辑失败,请检查当前网络状态。");
}); });
} else { } else {
let obj = { let obj = {
name: projectName["value"], name: projectName["value"],
@@ -710,7 +855,7 @@ export default {
message.success("创建成功"); message.success("创建成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/taskpage", path: "/manage/taskpage",
query: { id: res.data.data.projectId }, query: { id: res.data.data.projectId },
}); });
}, 1000); }, 1000);

View File

@@ -149,7 +149,7 @@
<!-- <img class="img2" src="../../assets/images/projectadd/keep.png" /> <!-- <img class="img2" src="../../assets/images/projectadd/keep.png" />
<div class="pub">保存</div> <div class="pub">保存</div>
<div class="line"></div> --> <div class="line"></div> -->
<router-link to="/taskpage"> <router-link to="/manage/taskpage">
<div style="display: flex"> <div style="display: flex">
<img <img
class="img2" class="img2"

View File

@@ -86,7 +86,7 @@
</div> </div>
</div> </div>
<div class="line"></div> <div class="line"></div>
<router-link to="/projectmanage"> <router-link to="/manage/projectmanage">
<div style="display: flex"> <div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" /> <img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div> <div class="return">返回</div>
@@ -321,8 +321,8 @@
<button class="btn" @click="showFaceIn" v-if="morFaceT"> <button class="btn" @click="showFaceIn" v-if="morFaceT">
批量面授报名 批量面授报名
</button> </button>
<router-link to="/taskadd"> <router-link to="/manage/taskadd">
<button to="/taskadd" class="edit"> <button to="/manage/taskadd" class="edit">
<img <img
class="editimg" class="editimg"
src="../../assets/images/projectadd/edit.png" src="../../assets/images/projectadd/edit.png"
@@ -505,7 +505,7 @@
</a-collapse> </a-collapse>
<!-- 无数据创建任务 v-if="taskSyllabus.length == 0"--> <!-- 无数据创建任务 v-if="taskSyllabus.length == 0"-->
<router-link <router-link
to="/taskadd" to="/manage/taskadd"
class="taskbox" class="taskbox"
style=" style="
background: linear-gradient(180deg, #ddeaff, #f0f8fe); background: linear-gradient(180deg, #ddeaff, #f0f8fe);
@@ -3349,7 +3349,7 @@ export default {
const toEdit = () => { const toEdit = () => {
if (state.parentId == "0") { if (state.parentId == "0") {
routered.push({ routered.push({
path: "/projectadd", path: "/manage/projectadd",
query: { query: {
projectId: state.projectId, projectId: state.projectId,
name: state.name, name: state.name,
@@ -3358,7 +3358,7 @@ export default {
} else { } else {
if (state.isbj !== null) { if (state.isbj !== null) {
routered.push({ routered.push({
path: "/classadd", path: "/manage/classadd",
query: { query: {
projectId: state.projectId, projectId: state.projectId,
// name: state.paraentName, // name: state.paraentName,
@@ -3368,7 +3368,7 @@ export default {
}); });
} else { } else {
routered.push({ routered.push({
path: "/sonproject", path: "/manage/sonproject",
query: { query: {
projectId: state.projectId, projectId: state.projectId,
name: state.name, name: state.name,

View File

@@ -62,7 +62,7 @@
<script> <script>
import { reactive, defineComponent, toRefs, onMounted } from "vue"; import { reactive, defineComponent, toRefs, onMounted } from "vue";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import * as api from "@/api/indexLibrary" import * as api from "@/api/indexLibrary";
const columns1 = [ const columns1 = [
{ {
title: "模版名称", title: "模版名称",
@@ -123,7 +123,7 @@ export default defineComponent({
creator: "李部长", creator: "李部长",
stutime: "2022-10-31 23:12:00", stutime: "2022-10-31 23:12:00",
operation: "operation", operation: "operation",
} },
], ],
// state // state
}); });
@@ -138,7 +138,7 @@ export default defineComponent({
{value.status === "已发布" ? ( {value.status === "已发布" ? (
<div class="nselect"> <div class="nselect">
<div class="ops2"> <div class="ops2">
<router-link to="/libraryadd"> <router-link to="/manage/libraryadd">
<div class="jc"> <div class="jc">
查看{" "} 查看{" "}
<span style="color:#E9E9E9;margin-left:15px;">|</span> <span style="color:#E9E9E9;margin-left:15px;">|</span>
@@ -146,9 +146,17 @@ export default defineComponent({
</router-link> </router-link>
</div> </div>
<div class="ops3"> <div class="ops3">
<div class="jc" <div
onClick={() => {templateHadler({"projectTemplateId": value.projectTemplateId,"type": 0})}} class="jc"
>撤回</div> onClick={() => {
templateHadler({
projectTemplateId: value.projectTemplateId,
type: 0,
});
}}
>
撤回
</div>
</div> </div>
</div> </div>
) : ( ) : (
@@ -157,14 +165,21 @@ export default defineComponent({
{value.status === "未发布" ? ( {value.status === "未发布" ? (
<div class="nselect"> <div class="nselect">
<div class="ops1"> <div class="ops1">
<div class="jc" <div
onClick={() => {templateHadler({"projectTemplateId": value.projectTemplateId,"type": 1})}}> class="jc"
onClick={() => {
templateHadler({
projectTemplateId: value.projectTemplateId,
type: 1,
});
}}
>
发布 发布
<span style="color:#E9E9E9;margin-left:15px;">|</span> <span style="color:#E9E9E9;margin-left:15px;">|</span>
</div> </div>
</div> </div>
<div class="ops2"> <div class="ops2">
<router-link to="/libraryadd"> <router-link to="/manage/libraryadd">
<div class="jc"> <div class="jc">
查看 查看
<span style="color:#E9E9E9;margin-left:15px;">|</span> <span style="color:#E9E9E9;margin-left:15px;">|</span>
@@ -172,9 +187,17 @@ export default defineComponent({
</router-link> </router-link>
</div> </div>
<div class="ops3"> <div class="ops3">
<div class="jc" <div
onClick={() => {templateHadler({"projectTemplateId": value.projectTemplateId,"type": -1})}} class="jc"
>删除</div> onClick={() => {
templateHadler({
projectTemplateId: value.projectTemplateId,
type: -1,
});
}}
>
删除
</div>
</div> </div>
</div> </div>
) : ( ) : (
@@ -191,54 +214,63 @@ export default defineComponent({
onMounted(() => { onMounted(() => {
getLibraryList(); getLibraryList();
}) });
const getLibraryList = () => { const getLibraryList = () => {
let obj = { let obj = {
"beginTime": 0, beginTime: 0,
"endTime": 0, endTime: 0,
"name": "", name: "",
"pageNo": 0, pageNo: 0,
"pageSize": 0, pageSize: 0,
"status": 0 status: 0,
} };
api.templateList(obj).then((res) =>{ api
.templateList(obj)
.then((res) => {
console.log(res); console.log(res);
let resData = res.data.data.rows let resData = res.data.data.rows;
if (resData.length) { if (resData.length) {
for (let i in resData) { for (let i in resData) {
state.tableData1[i].id = i + 1; state.tableData1[i].id = i + 1;
state.tableData1[i].projectTemplateId = resData[i].projectTemplateId; state.tableData1[i].projectTemplateId =
state.tableData1[i].status = resData[i].status ? "已发布":"未发布" ; resData[i].projectTemplateId;
state.tableData1[i].status = resData[i].status
? "已发布"
: "未发布";
state.tableData1[i].name = resData[i].name; state.tableData1[i].name = resData[i].name;
state.tableData1[i].creator = resData[i].createName; state.tableData1[i].creator = resData[i].createName;
state.tableData1[i].stutime = resData[i].publishTime; state.tableData1[i].stutime = resData[i].publishTime;
state.tableData1[i].operation = "operation"; state.tableData1[i].operation = "operation";
} }
} else { } else {
message.warning("获取的列表数据为空值") message.warning("获取的列表数据为空值");
} }
}).catch((error) => { })
message.error(`获取模板列表失败`+error) .catch((error) => {
message.error(`获取模板列表失败` + error);
}); });
}; };
const templateHadler = (obj) => { const templateHadler = (obj) => {
api.templateHadle(obj).then((res) => { api
.templateHadle(obj)
.then((res) => {
if (res.data.success) { if (res.data.success) {
message.success(`模板操作成功`) message.success(`模板操作成功`);
getLibraryList(); getLibraryList();
} }
}).catch((error) => {
message.error(`模板操作失败`+error)
}) })
} .catch((error) => {
message.error(`模板操作失败` + error);
});
};
const searchLevel = () => { const searchLevel = () => {
const result = state.tableData1.filter(item => item.name == state.value1) const result = state.tableData1.filter(
(item) => item.name == state.value1
);
state.tableData1 = result; state.tableData1 = result;
}; };
const resetLevel = () => { const resetLevel = () => {
state.value1 = ''; state.value1 = "";
// getLibraryList(); // getLibraryList();
state.tableData1 = [ state.tableData1 = [
{ {
@@ -256,8 +288,8 @@ export default defineComponent({
creator: "李部长", creator: "李部长",
stutime: "2022-10-31 23:12:00", stutime: "2022-10-31 23:12:00",
operation: "operation", operation: "operation",
} },
] ];
}; };
return { return {

View File

@@ -6,7 +6,7 @@
<div <div
@click="backPage" @click="backPage"
style="cursor: pointer" style="cursor: pointer"
to="/libraryAdd" to="/manage/libraryAdd"
class="goback" class="goback"
> >
<span class="return"></span><span class="returntext">返回</span> <span class="return"></span><span class="returntext">返回</span>
@@ -501,7 +501,7 @@
storage.remove("projectAddId"); storage.remove("projectAddId");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/libraryAdd", path: "/manage/libraryAdd",
}); });
}, 400); }, 400);
}; };
@@ -950,7 +950,7 @@
message.success("编辑成功"); message.success("编辑成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/projectmanage", path: "/manage/projectmanage",
}); });
}, 1000); }, 1000);
} else { } else {
@@ -1005,7 +1005,7 @@
message.success("创建成功"); message.success("创建成功");
setTimeout(() => { setTimeout(() => {
router.push({ router.push({
path: "/taskpage", path: "/manage/taskpage",
query: { id: res.data.data.projectId }, query: { id: res.data.data.projectId },
}); });
}, 1000); }, 1000);

View File

@@ -10,9 +10,9 @@
导出信息 导出信息
</span> </span>
</div> </div>
<router-link to="/researchmanage" class="goback"> <router-link to="/manage/researchmanage" class="goback">
<span class="return"></span> <span class="return"></span>
<router-link class="returntext" to="/researchmanage"> <router-link class="returntext" to="/manage/researchmanage">
返回 返回
</router-link> </router-link>
</router-link> </router-link>

View File

@@ -3,9 +3,9 @@
<div class="researchadd"> <div class="researchadd">
<div class="header"> <div class="header">
<span class="title">创建评估</span> <span class="title">创建评估</span>
<router-link to="/researchmanage" class="goback"> <router-link to="/manage/researchmanage" class="goback">
<span class="return"></span> <span class="return"></span>
<router-link class="returntext" to="/researchmanage"> <router-link class="returntext" to="/manage/researchmanage">
返回 返回
</router-link> </router-link>
</router-link> </router-link>
@@ -401,7 +401,9 @@ export default {
if (state.assessmentId) { if (state.assessmentId) {
resultPost = { resultPost = {
assessmentId: state.assessmentId, assessmentId: state.assessmentId,
assessmentName: state.assessmentName ? state.assessmentName : "编辑测试", assessmentName: state.assessmentName
? state.assessmentName
: "编辑测试",
assessmentMark: state.assessmentMark, assessmentMark: state.assessmentMark,
...filterData, ...filterData,
}; };

View File

@@ -3,9 +3,9 @@
<div class="researchadd"> <div class="researchadd">
<div class="header"> <div class="header">
<span class="title">创建评估</span> <span class="title">创建评估</span>
<router-link to="/researchmanage" class="goback"> <router-link to="/manage/researchmanage" class="goback">
<span class="return"></span> <span class="return"></span>
<router-link class="returntext" to="/researchmanage"> <router-link class="returntext" to="/manage/researchmanage">
返回 返回
</router-link> </router-link>
</router-link> </router-link>
@@ -499,7 +499,7 @@ export default {
if (res.data.code === 200) { if (res.data.code === 200) {
message.success("编辑成功"); message.success("编辑成功");
router.push({ router.push({
path: "/researchmanage", path: "/manage/researchmanage",
}); });
} }
}); });
@@ -517,7 +517,7 @@ export default {
if (res.data.code === 200) { if (res.data.code === 200) {
message.success("创建成功"); message.success("创建成功");
router.push({ router.push({
path: "/researchmanage", path: "/manage/researchmanage",
}); });
} }
}); });
@@ -526,7 +526,7 @@ export default {
const handleAllCancel = () => { const handleAllCancel = () => {
state.allFormsData = []; state.allFormsData = [];
router.push({ router.push({
path: "/researchmanage", path: "/manage/researchmanage",
}); });
}; };
const checkVal = (filterData) => { const checkVal = (filterData) => {

View File

@@ -428,7 +428,7 @@ export default {
<div <div
class="jc" class="jc"
onClick={() => { onClick={() => {
handleToManagepage(value, "/managepage"); handleToManagepage(value, "/manage/managepage");
}} }}
> >
管理 管理
@@ -474,7 +474,7 @@ export default {
<div <div
class="jc" class="jc"
onClick={() => { onClick={() => {
handleToResearchadd(value, "/researchadd"); handleToResearchadd(value, "/manage/researchadd");
}} }}
> >
基础信息 基础信息

View File

@@ -327,7 +327,7 @@ export default {
}; };
const router = useRouter(); const router = useRouter();
const golearningpath = () => { const golearningpath = () => {
router.push({ path: "/learningpath", params: { id: 1 } }); router.push({ path: "/manage/learningpath", params: { id: 1 } });
}; };
//下载二维码图片 //下载二维码图片

View File

@@ -1,17 +1,25 @@
/*
* @Author: lixg lixg@dongwu-inc.com
* @Date: 2022-11-21 14:32:52
* @LastEditors: lixg lixg@dongwu-inc.com
* @LastEditTime: 2022-11-21 15:15:30
* @FilePath: /fe-manage/vue.config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
const { defineConfig } = require("@vue/cli-service"); const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({ module.exports = defineConfig({
// transpileDependencies: true, // transpileDependencies: true,
devServer: { devServer: {
port: 8080, port: 8080,
proxy: { proxy: {
"/api": { "/manageApi": {
// target:"http://192.168.100.208:30001", // target:"http://192.168.100.208:30001",
target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口 target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口
changeOrigin: true, //表示是否改变原域名 changeOrigin: true, //表示是否改变原域名
// secure: false, // secure: false,
// ws: false, //表示WebSocket协议 // ws: false, //表示WebSocket协议
pathRewrite: { pathRewrite: {
"^/api": "", "^/manageApi": "",
}, },
}, },
}, },