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";
// const Qs = require("qs");
@@ -7,7 +15,7 @@ import axios from "axios";
axios.defaults.withCredentials = true;
const http = axios.create({
baseURL: "/api",
baseURL: "/manageApi",
timeout: 1000 * 5,
// headers: { "Content-Type": "multipart/form-data" },
headers: { "Content-Type": "application/json" },

View File

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

View File

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

View File

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

View File

@@ -73,7 +73,7 @@
</div>
</div>
<div class="line"></div>
<router-link to="/learningpath"
<router-link to="/manage/learningpath"
><div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div>
@@ -98,29 +98,29 @@
<div class="taskmain">快速创建项目详情</div>
</div>
<div class="second">
<router-link :to="{ path: '/leveladddetail' }">
<router-link :to="{ path: '/manage/leveladddetail' }">
<div
class="taskbox"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left1.png" />
</div>
<div class="photo">
<img src="../../assets/images/taskpage/picture1.png" />
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right1.png" />
</div>
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
添加任务
</div>
<div class="centermain">快速添加任务/关卡</div>
</div>
</router-link>
<div
class="taskbox"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
>
<div class="leftt">
<img src="../../assets/images/taskpage/left1.png" />
</div>
<div class="photo">
<img src="../../assets/images/taskpage/picture1.png" />
</div>
<div class="rightt">
<img src="../../assets/images/taskpage/right1.png" />
</div>
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
添加任务
</div>
<div class="centermain">快速添加任务/关卡</div>
</div>
</router-link>
<div
class="taskbox" @click="showAddStu"
@click="showAddStu"
style="background: linear-gradient(180deg, #ddeaff, #f0f8fe)"
>
<div class="leftt">
@@ -132,9 +132,7 @@
<div class="rightt">
<img src="../../assets/images/taskpage/right2.png" />
</div>
<div class="centerbox"
style="color: rgba(78, 166, 255, 1)">
<div class="centerbox" style="color: rgba(78, 166, 255, 1)">
添加学员
</div>
<div class="centermain">快速添加学员</div>
@@ -219,16 +217,16 @@
stage2: item.stageId != choosedStageId,
}"
:key="item.stageId"
@click="stageChange(item.name,item.stageId)"
@click="stageChange(item.name, item.stageId)"
>
关卡{{ item.stageId }}
关卡{{ item.stageId }}
</div>
<!-- <div class="stage1">阶段1</div>
<div class="stage2">阶段2</div> -->
</div>
<div class="stagesecond">
<div class="staname">关卡名称</div>
<div class="stamess">{{stateName}}</div>
<div class="stamess">{{ stateName }}</div>
</div>
<div class="stagelast">
<div class="stagepro">
@@ -314,7 +312,7 @@
<div class="search"></div>
<div class="btnText">重置</div>
</div>
<router-link to="/leveladddetail">
<router-link to="/manage/leveladddetail">
<div class="btn btn3" @click="handleOut">
<div class="search"></div>
<div class="btnText">创建关卡</div>
@@ -336,7 +334,7 @@
<div class="onerow">
<div class="taskmain">任务大纲</div>
<router-link to="/leveladddetail" class="editright">
<router-link to="/manage/leveladddetail" class="editright">
<img
class="editimg"
src="../../assets/images/leveladd/edit.png"
@@ -346,7 +344,7 @@
</div>
<!-- 无数据显示快速创建 -->
<div v-show="!taskSyllabus.length">
<router-link :to="{ path: '/leveladddetail' }">
<router-link :to="{ path: '/manage/leveladddetail' }">
<div
class="taskbox"
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
@@ -564,14 +562,31 @@
style="width: 270px; height: 40px; border-radius: 8px"
placeholder="关卡名称"
/>
<div class="btns" @click="searchLevel" >
<div class="btns" @click="searchLevel">
<div class="btn btn1">
<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 class="btn btn2" @click="resetLevel">
<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>
@@ -592,11 +607,11 @@
<div class="xu">
<span class="yi">已选择</span>
<div style="width: 5px; display: inline-block"></div>
<span class="th">{{selectedRowKeys.length}}</span>
<span class="th">{{ selectedRowKeys.length }}</span>
<div style="width: 5px; display: inline-block"></div>
<span class="yi"></span>
<span class="zon">列表选项总数</span>
<span class="th">{{tableData.length}}</span>
<span class="th">{{ tableData.length }}</span>
<span class="yi"> </span>
</div>
</div>
@@ -763,7 +778,7 @@
<div
v-for="item in docList"
:key="item.src"
style="margin-top: 20px;"
style="margin-top: 20px"
class="docListStyle"
>
<img
@@ -829,11 +844,11 @@
>
<!-- 查看学员 传入查看学员的id-->
<see-stu
v-model:Seevisible="Seevisible"
v-model:checkStuId="checkStuId"
v-model:projectId="projectId"
/>
<see-stu
v-model:Seevisible="Seevisible"
v-model:checkStuId="checkStuId"
v-model:projectId="projectId"
/>
<!-- 批量删除学员弹窗 -->
<a-modal
@@ -1181,7 +1196,7 @@ export default {
TestManage,
FaceManage,
WorkManage,
SeeStu
SeeStu,
},
setup() {
// const routers = useRoute();
@@ -1208,31 +1223,31 @@ export default {
CheckStuvisible: false, //学员管理的查看抽屉
addLoading: false, // 加载动画
choosedStageId: 1, // 选择的阶段id
selectedRowKeys:[],
selectedRowKeys: [],
twobtn: true,
number: true,
twobtnn: false,
Seevisible:false,
checkStuId:null,
Seevisible: false,
checkStuId: null,
inputbox: false,
Wvisible: false, //作业管理
studentId: null,
styTitle: null,
cretime: null,
picUrl: null,
projectNameList:[
projectNameList: [
{
value: '1',
label: '导出信息',
value: "1",
label: "导出信息",
},
{
value: '2',
label: '批量调整关卡',
value: "2",
label: "批量调整关卡",
},
{
value: '3',
label: '批量删除',
}
value: "3",
label: "批量删除",
},
],
// 共享文档列表
docList: [
@@ -1299,7 +1314,7 @@ export default {
visible: false, //时间管理
TMvisible: false, //考试管理
FaceVisivle: false, //面授管理
stateName:null, // 关卡名称
stateName: null, // 关卡名称
//关卡的数据
level: [
// {
@@ -1563,10 +1578,10 @@ export default {
const closehuodModal = () => {
state.huodModal = false;
};
const stageChange = (name,id) => {
const stageChange = (name, id) => {
state.choosedStageId = id;
state.stateName = name;
}
};
const changeTabs = (e) => {
console.log("切换tabs", e, state.routerId);
if (e == 2) {
@@ -1756,7 +1771,6 @@ export default {
.catch((err) => {
console.log("复制失败", err);
});
};
const showStop = () => {
state.stopModal = true;
@@ -1832,7 +1846,7 @@ export default {
const myGetRouterDetail = () => {
GetRouterDetail(state.routerId)
.then((res) => {
if(res.data.data.routerInfo.status == 1) {
if (res.data.data.routerInfo.status == 1) {
state.nodata = false;
}
let data = res.data.data.chapterList;
@@ -1847,12 +1861,15 @@ export default {
// }
// }
levelList.stageList = [];
for(let i in data) {
if(i==0) {state.stateName = data[0].name}
levelList.stageList.push({
stageId:Number(i)+1,
name:data[i].name
}) }
for (let i in data) {
if (i == 0) {
state.stateName = data[0].name;
}
levelList.stageList.push({
stageId: Number(i) + 1,
name: data[i].name,
});
}
})
.catch((err) => {
console.log(err);
@@ -1884,7 +1901,7 @@ export default {
.delStudent({ routerId: 100, studentIds: [id] })
.then((res) => {
message.success("删除成功");
getStudent()
getStudent();
console.log(res);
})
.catch((err) => {
@@ -1895,61 +1912,74 @@ export default {
});
};
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;
};
const resetLevel = () => {
state.gatenamee = '';
state.gatenamee = "";
getStudent();
};
const handleStuChange = (value) => {
console.log(value);
if(value == 2) {state.visiblene = true}
if(value == 3 ) { deleteStu() }
if (value == 2) {
state.visiblene = true;
}
if (value == 3) {
deleteStu();
}
};
const deleteStu = () => {
if(state.selectedRowKeys.length == 0) {
if (state.selectedRowKeys.length == 0) {
message.warning("请选择成员");
return }
let obj = {
routerId:100,
studentIds:state.selectedRowKeys,
return;
}
api.delStudent(obj).then((res) => {
console.log(res);
getStudent();
message.success("批量删除成功")
}).catch(err => {
message.error("批量删除失败"+err);
console.log(err)
})
let obj = {
routerId: 100,
studentIds: state.selectedRowKeys,
};
api
.delStudent(obj)
.then((res) => {
console.log(res);
getStudent();
message.success("批量删除成功");
})
.catch((err) => {
message.error("批量删除失败" + err);
console.log(err);
});
};
const pageChange = (value) => {
state.currentPage = value;
getStudent();
}
};
const setconfig = () => {
let obj = {
"autoJoinFlag": 0,
"deptBoList": [
{
"deptId": 0,
"deptName": ""
}
],
"preLearnFlag": 0,
"previewFlag": 0,
"routerId": 0,
"showFlag": 0
}
api.setConfig(obj).then((res) => {
message.success("编辑成功")
console.log(res);
}).catch(err => {
console.log(err);
message.error("编辑失败")
})
}
autoJoinFlag: 0,
deptBoList: [
{
deptId: 0,
deptName: "",
},
],
preLearnFlag: 0,
previewFlag: 0,
routerId: 0,
showFlag: 0,
};
api
.setConfig(obj)
.then((res) => {
message.success("编辑成功");
console.log(res);
})
.catch((err) => {
console.log(err);
message.error("编辑失败");
});
};
return {
...toRefs(state),
...toRefs(levelList),

View File

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

View File

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

View File

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

View File

@@ -33,7 +33,7 @@
</div>
</div>
<div class="line"></div>
<router-link to="/templatelibrary"
<router-link to="/manage/templatelibrary"
><div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div>
@@ -55,7 +55,7 @@
<div class="onerow">
<div class="taskmain">任务大纲</div>
<button class="btn" @click="showFaceIn">批量面授报名</button>
<router-link to="/taskadd" class="edit">
<router-link to="/manage/taskadd" class="edit">
<img
class="editimg"
src="../../assets/images/projectadd/edit.png"
@@ -200,7 +200,7 @@
: 'none',
}"
>
<!-- 考勤 -->
<!-- 考勤 -->
</div>
<div
class="operation"
@@ -278,7 +278,7 @@
<hr color="#E8E8E8" />
<div class="ntc_body">
<div class="ntc_switch">
<a-switch v-model:checked="checked" @click="changeopclo" />
<a-switch v-model:checked="checked" @click="changeopclo" />
<div
class="opclo"
:style="{ display: hideshow ? 'block' : 'none' }"
@@ -385,165 +385,217 @@
<div class="split"></div>
<a-tabs>
<a-tab-pane key="1" tab="编辑">
<div class="setting">
<div class="set_tit">
<span>基本信息</span>
<span class="editBtn" @click="toEdit">编辑</span>
</div>
<hr color="#E8E8E8" />
<div class="set_body">
<div class="set_content">
<div class="setc_name"><span>模板名称</span></div>
<div class="setc_main">
<a-input v-model:value="formData.name"
:bordered="isEdit" :disabled="!isEdit"
style="width:300px;"
></a-input>
<div class="setting">
<div class="set_tit">
<span>基本信息</span>
<span class="editBtn" @click="toEdit">编辑</span>
</div>
<hr color="#E8E8E8" />
<div class="set_body">
<div class="set_content">
<div class="setc_name"><span>模板名称</span></div>
<div class="setc_main">
<a-input
v-model:value="formData.name"
:bordered="isEdit"
:disabled="!isEdit"
style="width: 300px"
></a-input>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>封面图</span></div>
<div class="setc_main">
<a-upload
v-model:file-list="fileList"
name="file"
action="/api/file/upload"
@change="handleChange"
:disabled="!isEdit"
>
<img
src="@/assets/images/projectadd/picture.png"
alt=""
/>
</a-upload>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>模板时间</span></div>
<div class="setc_main">
<a-range-picker
v-model:value="formData.time"
:bordered="isEdit"
:disabled="!isEdit"
/>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目经理</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.manager"
mode="multiple"
placeholder="请选择项目经理"
:size="large"
:bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="managerOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>资源归属</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.sourceBelongId"
placeholder="请选择资源归属"
:size="large"
:bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="sourceBelongOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>模板说明</span></div>
<div class="setc_main">
<a-input
v-model:value="formData.remark"
style="width: 300px"
:bordered="isEdit"
:disabled="!isEdit"
></a-input>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>同步学习记录</span></div>
<div class="setc_main" @click="changecheck2">
<a-radio
v-model:checked="formData.courseSyncFlag"
:bordered="isEdit"
:disabled="!isEdit"
><span style="color: #333333"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目级别</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.level"
placeholder="请选择项目级别"
:size="large"
:bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="levelOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>培训分类</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.systemId"
placeholder="请选择培训分类"
:size="large"
:bordered="isEdit"
:disabled="!isEdit"
style="width: 200px; color: #999999"
:options="systemOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>是否BOEU实施</span></div>
<div class="setc_main" @click="changecheck3">
<a-radio
v-model:checked="formData.boeFlag"
:bordered="isEdit"
:disabled="!isEdit"
><span style="color: #333333">BOEU实施</span></a-radio
>
</div>
</div>
<div v-if="isEdit" style="transform: translateX(50%)">
<a-button
@click="cancelEdit"
style="background-color: #f9f9f9"
>取消</a-button
>
<a-button
@click="confirmEdit"
style="background-color: #f5faff"
>保存</a-button
>
</div>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>封面图</span></div>
<div class="setc_main">
<a-upload
v-model:file-list="fileList"
name="file"
action="/api/file/upload"
@change="handleChange"
:disabled="!isEdit"
>
<img src="@/assets/images/projectadd/picture.png" alt="" />
</a-upload>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>模板时间</span></div>
<div class="setc_main">
<a-range-picker v-model:value="formData.time"
:bordered="isEdit" :disabled="!isEdit" />
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目经理</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.manager" mode="multiple"
placeholder="请选择项目经理"
:size="large" :bordered="isEdit" :disabled="!isEdit"
style="width: 200px;color: #999999;" :options="managerOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>资源归属</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.sourceBelongId"
placeholder="请选择资源归属"
:size="large" :bordered="isEdit" :disabled="!isEdit"
style="width: 200px;color: #999999;" :options="sourceBelongOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>模板说明</span></div>
<div class="setc_main">
<a-input v-model:value="formData.remark"
style="width:300px;"
:bordered="isEdit" :disabled="!isEdit"
></a-input>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>同步学习记录</span></div>
<div class="setc_main" @click="changecheck2">
<a-radio v-model:checked="formData.courseSyncFlag"
:bordered="isEdit" :disabled="!isEdit"
><span style="color: #333333"
>同步课程学习记录如学员在课程库中拥有课程的学习记录自动免修该课程</span
></a-radio
>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>项目级别</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.level"
placeholder="请选择项目级别"
:size="large" :bordered="isEdit" :disabled="!isEdit"
style="width: 200px;color: #999999;" :options="levelOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>培训分类</span></div>
<div class="setc_main">
<a-select
v-model:value="formData.systemId"
placeholder="请选择培训分类"
:size="large" :bordered="isEdit" :disabled="!isEdit"
style="width: 200px;color: #999999;" :options="systemOptions"
></a-select>
</div>
</div>
<div class="set_content">
<div class="setc_name"><span>是否BOEU实施</span></div>
<div class="setc_main" @click="changecheck3">
<a-radio v-model:checked="formData.boeFlag"
:bordered="isEdit" :disabled="!isEdit"
><span style="color: #333333">BOEU实施</span></a-radio
>
</div>
</div>
<div v-if="isEdit" style="transform: translateX(50%)">
<a-button @click="cancelEdit" style="background-color: #f9f9f9">取消</a-button>
<a-button @click="confirmEdit" style="background-color: #f5faff">保存</a-button>
</div>
</div>
</div>
</a-tab-pane>
<a-tab-pane key="2" tab="共享文档">
<div class="sametab">
<div class="Gcon">
<div class="pad"></div>
<div class="Gin">
<div class="headone" style="transform: translateX(30px)">
<div class="box"></div>
<div class="onetitle">上传共享文档</div>
<div class="oneedi">
<a-switch v-model:checked="docChecked" ></a-switch>
<div class="Gcon">
<div class="pad"></div>
<div class="Gin">
<div class="headone" style="transform: translateX(30px)">
<div class="box"></div>
<div class="onetitle">上传共享文档</div>
<div class="oneedi">
<a-switch v-model:checked="docChecked"></a-switch>
</div>
</div>
<div class="btnbox" style="margin: 20px">
<a-upload
v-model:file-list="fileList"
name="file"
action="/api/file/upload"
@change="handleChange"
>
<span
class="xkbtn"
style="cursor: pointer; font-size: 17px"
>上传</span
>
<img
src="@/assets/images/basicinfo/cloud.png"
style="cursor: pointer; width: 34px; height: 34px"
alt=""
/>
</a-upload>
<div class="btnbox" style="margin: 20px">
<span style="color: #999999">
支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
</span>
</div>
<div
v-for="item in docList"
:key="item.src"
class="docListStyle"
>
<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 class="btnbox" style="margin:20px;">
<a-upload
v-model:file-list="fileList"
name="file"
action="/api/file/upload"
@change="handleChange"
>
<span class="xkbtn" style="cursor: pointer; font-size: 17px" >上传</span>
<img src="@/assets/images/basicinfo/cloud.png" style="cursor: pointer;
width:34px;height:34px;
" alt="">
</a-upload>
<div class="btnbox" style="margin:20px;">
<span style="color: #999999">
支持pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
</span>
</div>
<div v-for="item in docList" :key="item.src" class="docListStyle">
<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>
</a-tab-pane>
</a-tabs>
</a-tab-pane>
@@ -590,9 +642,9 @@
</template>
<script>
import { ref, reactive, defineComponent, toRefs, onMounted} from "vue";
import { ref, reactive, defineComponent, toRefs, onMounted } from "vue";
import { message } from "ant-design-vue";
import * as api from "@/api/indexTemplate"
import * as api from "@/api/indexTemplate";
import { useRouter } from "vue-router";
export default defineComponent({
name: "LibraryAdd",
@@ -720,27 +772,27 @@ export default defineComponent({
},
],
// 模板编辑列表
managerOptions:[
{ value: "李俊国"},
{ value: "将小米"},
{ value: "刘孟君"},
managerOptions: [
{ value: "李俊国" },
{ value: "将小米" },
{ value: "刘孟君" },
],
sourceBelongOptions:[
{ value: "项目一"},
{ value: "项目二"},
{ value: "项目三"},
sourceBelongOptions: [
{ value: "项目一" },
{ value: "项目二" },
{ value: "项目三" },
],
levelOptions:[
{ value: "集团级"},
{ value: "组织级"},
{ value: "现地级"},
{ value: "部门级"},
levelOptions: [
{ value: "集团级" },
{ value: "组织级" },
{ value: "现地级" },
{ value: "部门级" },
],
systemOptions:[
{ value: "集团级"},
{ value: "组织级"},
{ value: "现地级"},
{ value: "部门级"},
systemOptions: [
{ value: "集团级" },
{ value: "组织级" },
{ value: "现地级" },
{ value: "部门级" },
],
taskSyllabusActive: 0,
//在线管理等页面传递参数
@@ -752,7 +804,7 @@ export default defineComponent({
checked: true,
checked2: false,
checked3: false,
docChecked:true,
docChecked: true,
value3: false,
value4: false,
hideshow: true,
@@ -760,22 +812,22 @@ export default defineComponent({
score2: 5,
edit: true,
// 共享文档列表
docList:[
docList: [
{
name:'测试文档1.doc',
src:"",
name: "测试文档1.doc",
src: "",
},
{
name:'测试文档2.doc',
src:"",
name: "测试文档2.doc",
src: "",
},
{
name:'测试文档3.doc',
src:"",
}
name: "测试文档3.doc",
src: "",
},
],
// 基本信息
formData:{
formData: {
name: "123",
time: "",
manager: "建国",
@@ -786,7 +838,7 @@ export default defineComponent({
systemId: null,
boeFlag: false,
},
isEdit:false, // 是否处于编辑状态
isEdit: false, // 是否处于编辑状态
});
const value = ref("");
const value2 = ref("");
@@ -807,153 +859,182 @@ export default defineComponent({
};
const confirmEdit = () => {
state.isEdit = false;
editTemplate()
editTemplate();
getDetail();
};
onMounted(() => {getDetail()});
onMounted(() => {
getDetail();
});
// 获取详情
const getDetail = () => {
api.templateDetail(0).then(res => {
console.log(res)
state.formData.name = res.data.data.projectInfo.name
state.formData.time = res.data.data.projectInfo.startTime+res.data.data.projectInfo.endTime;
state.formData.manager = res.data.data.projectInfo.manager
state.formData.sourceBelongId = res.data.data.projectInfo.sourceBelongId
state.formData.remark = res.data.data.stageList.remark
state.formData.courseSyncFlag = res.data.data.projectInfo.courseSyncFlag
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)
})
}
api
.templateDetail(0)
.then((res) => {
console.log(res);
state.formData.name = res.data.data.projectInfo.name;
state.formData.time =
res.data.data.projectInfo.startTime +
res.data.data.projectInfo.endTime;
state.formData.manager = res.data.data.projectInfo.manager;
state.formData.sourceBelongId =
res.data.data.projectInfo.sourceBelongId;
state.formData.remark = res.data.data.stageList.remark;
state.formData.courseSyncFlag =
res.data.data.projectInfo.courseSyncFlag;
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 = () => {
let obj = {
"beginTime": state.formData.time,
"boeFlag": state.formData.boeFlag,
"category": 0,
"courseSyncFlag": state.formData.courseSyncFlag,
"endTime": state.formData.time,
"level": state.formData.level,
"manager": state.formData.manager,
"managerId": "",
"name": state.formData.name,
"notice": "",
"noticeFlag": 0,
"picUrl": "",
"projectTemplateId": 0,
"remark": state.formData.remark,
"sourceBelongId": state.formData.sourceBelongId,
"status": 0,
"systemId": state.formData.systemId
beginTime: state.formData.time,
boeFlag: state.formData.boeFlag,
category: 0,
courseSyncFlag: state.formData.courseSyncFlag,
endTime: state.formData.time,
level: state.formData.level,
manager: state.formData.manager,
managerId: "",
name: state.formData.name,
notice: "",
noticeFlag: 0,
picUrl: "",
projectTemplateId: 0,
remark: state.formData.remark,
sourceBelongId: state.formData.sourceBelongId,
status: 0,
systemId: state.formData.systemId,
};
api.templateEdit(obj).methods(obj).then(res => {
message.success("编辑成功")
console.log(res)
}).catch(err => {
message.error("编辑失败"+err)
console.log(err)
})
}
api
.templateEdit(obj)
.methods(obj)
.then((res) => {
message.success("编辑成功");
console.log(res);
})
.catch((err) => {
message.error("编辑失败" + err);
console.log(err);
});
};
// 发布公告
const addNotice = () => {
let obj = {
"beginTime": 0,
"boeFlag": 0,
"category": 0,
"courseSyncFlag": 0,
"endTime": 0,
"level": 0,
"manager": "",
"managerId": "",
"name": "",
"notice": state.value2,
"noticeFlag": 0,
"picUrl": "",
"projectTemplateId": 0,
"remark": "",
"sourceBelongId": 0,
"status": 0,
"systemId": 0
beginTime: 0,
boeFlag: 0,
category: 0,
courseSyncFlag: 0,
endTime: 0,
level: 0,
manager: "",
managerId: "",
name: "",
notice: state.value2,
noticeFlag: 0,
picUrl: "",
projectTemplateId: 0,
remark: "",
sourceBelongId: 0,
status: 0,
systemId: 0,
};
api.templateEdit(obj).methods(obj).then(res => {
message.success("公告发布成功")
console.log(res)
}).catch(err => {
message.error("公告发布失败"+err)
console.log(err)
})
}
api
.templateEdit(obj)
.methods(obj)
.then((res) => {
message.success("公告发布成功");
console.log(res);
})
.catch((err) => {
message.error("公告发布失败" + err);
console.log(err);
});
};
// 删除阶段
const stateDel = (id) => {
api.deleteStage(id).then(res => {
message.success("删除阶段成功")
console.log(res)
}).catch(err => {
message.error("删除阶段失败"+err)
console.log(err)
})
}
api
.deleteStage(id)
.then((res) => {
message.success("删除阶段成功");
console.log(res);
})
.catch((err) => {
message.error("删除阶段失败" + err);
console.log(err);
});
};
// 删除任务
const taskDel = (id) => {
api.deleteTask(id).then(res => {
message.success("删除任务成功")
console.log(res)
}).catch(err => {
message.error("删除任务失败"+err)
console.log(err)
})
}
api
.deleteTask(id)
.then((res) => {
message.success("删除任务成功");
console.log(res);
})
.catch((err) => {
message.error("删除任务失败" + err);
console.log(err);
});
};
const toEdit = () => {
routered.push({
path: "/templateAdd",
query: {
projectId: state.projectId,
name: state.name,
},
});
}
path: "/manage/templateAdd",
query: {
projectId: state.projectId,
name: state.name,
},
});
};
// 新建或编辑阶段
const stateEdit = () => {
let obj={
"name": "",
"projectTemplateId": 0,
"remark": "",
"stageId": 0
}
api.editStagek(obj).then(res => {
message.success("编辑阶段成功")
console.log(res)
}).catch(err => {
message.error("编辑阶段失败"+err)
console.log(err)
})
}
let obj = {
name: "",
projectTemplateId: 0,
remark: "",
stageId: 0,
};
api
.editStagek(obj)
.then((res) => {
message.success("编辑阶段成功");
console.log(res);
})
.catch((err) => {
message.error("编辑阶段失败" + err);
console.log(err);
});
};
//新建或编辑阶段任务
const taskEdit = () => {
let obj = {
"courseId": 0,
"duration": 0,
"flag": true,
"name": "",
"projectTaskId": 0,
"projectTemplateId": 0,
"stageId": 0,
"type": 0
}
api.editTask(obj).then(res => {
message.success("编辑任务成功")
console.log(res)
}).catch(err => {
message.error("编辑任务失败"+err)
console.log(err)
})
}
courseId: 0,
duration: 0,
flag: true,
name: "",
projectTaskId: 0,
projectTemplateId: 0,
stageId: 0,
type: 0,
};
api
.editTask(obj)
.then((res) => {
message.success("编辑任务成功");
console.log(res);
})
.catch((err) => {
message.error("编辑任务失败" + err);
console.log(err);
});
};
return {
...toRefs(state),
value,
@@ -982,11 +1063,11 @@ export default defineComponent({
</script>
<style lang="scss">
.editBtn {
float:right;
margin-right: 150px;
color:#4ea6ff;
cursor: pointer;
}
float: right;
margin-right: 150px;
color: #4ea6ff;
cursor: pointer;
}
.clearfix:before,
.clearfix:after {
content: " ";
@@ -1156,15 +1237,15 @@ export default defineComponent({
}
.split {
width: 100%;
height: 20px;
background-color: #edf0f5;
}
.docListStyle {
display: flex;
width: 300px !important;
justify-content: space-around;
}
width: 100%;
height: 20px;
background-color: #edf0f5;
}
.docListStyle {
display: flex;
width: 300px !important;
justify-content: space-around;
}
.taskBox {
.onerow {
//width: 100%;
@@ -1393,14 +1474,12 @@ export default defineComponent({
}
.notice {
.ntc_tit {
padding-top:22px;
padding-top: 22px;
margin-left: 34px;
font-size: 18px;
font-weight: 500;
color: #232425;
}
.ntc_body {
margin-left: 34px;
@@ -1422,7 +1501,6 @@ export default defineComponent({
.btnarea {
display: flex;
justify-content: flex-end;
}
.area_btn {
width: 100px;
@@ -1457,7 +1535,7 @@ export default defineComponent({
}
.projectscore {
padding-top:22px;
padding-top: 22px;
.pjc_tit {
margin-left: 34px;
font-size: 18px;
@@ -1536,7 +1614,7 @@ export default defineComponent({
}
.setting {
padding-top:22px;
padding-top: 22px;
.set_tit {
margin-left: 34px;
font-size: 18px;

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

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

View File

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

View File

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

View File

@@ -327,7 +327,7 @@ export default {
};
const router = useRouter();
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");
module.exports = defineConfig({
// transpileDependencies: true,
devServer: {
port:8080,
port: 8080,
proxy: {
"/api": {
"/manageApi": {
// target:"http://192.168.100.208:30001",
target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口
changeOrigin: true, //表示是否改变原域名
// secure: false,
// ws: false, //表示WebSocket协议
pathRewrite: {
"^/api": "",
"^/manageApi": "",
},
},
},