Merge branch 'master' of ssh://gitlab.dongwu-inc.com:10022/BOE/fe-manage

This commit is contained in:
宋文超
2022-11-24 14:29:54 +08:00
23 changed files with 955 additions and 541 deletions

View File

@@ -32,7 +32,7 @@ http.interceptors.request.use(
// 此处测试默认配置token
config.headers.token = "123456";
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2Njg4NjI2MTAsImV4cCI6MTY2ODg2OTgxMCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.defa91ecb2b61d9b20d858db0c2c8d7d80dea4613cb2559a22569b7df36b3f6b";
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NjkyMTE4MzMsImV4cCI6MTY2OTIxOTAzMywiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.40067eca3be5d50857448005a673cbe1a48f560ff8e9c7aea4e7ff12f59c7962";
}
return config;
},

View File

@@ -7,8 +7,7 @@
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/
import http from "./config";
import qs from 'qs';
import qs from "qs";
/**
* 接口传参数方式get
@@ -44,59 +43,65 @@ import qs from 'qs';
*/
//上传文件
export const uploadFile = (obj) => http.post('/test/testRequest', qs.stringify({ obj }));
export const uploadFile = (obj) =>
http.post("/test/testRequest", qs.stringify({ obj }));
// 接口-请求
//创建学习路径
export const createLearnPath = (obj) => http.post('/admin/router/edit', obj);
export const createLearnPath = (obj) => http.post("/admin/router/edit", obj);
// 获取学习路径图列表
export const getLearnPath = (obj) => http.post('/admin/router/list', obj);
export const getLearnPath = (obj) => http.post("/admin/router/list", obj);
//学习路径图的发布、停用、删除
export const handleLearnPath = (obj) => http.post('/admin/router/handle', obj);
export const handleLearnPath = (obj) => http.post("/admin/router/handle", obj);
//获取路径图统计数据
export const getLearnCount = (routerId) => http.get('/admin/router/getCount', { params: { routerId: routerId } })
export const getLearnCount = (routerId) =>
http.get("/admin/router/getCount", { params: { routerId: routerId } });
//新建或编辑关卡
export const editChapter = (obj) => http.post('/admin/router/editChapter', obj);
export const editChapter = (obj) => http.post("/admin/router/editChapter", obj);
// 编辑路径图设置
export const setConfig = (obj) => http.post('/admin/router/setConfig', obj);
export const setConfig = (obj) => http.post("/admin/router/setConfig", obj);
//获取学员列表
export const getStudent = (obj) => http.post('/admin/router/studentList', obj);
export const getStudent = (obj) => http.post("/admin/router/studentList", obj);
//获取路径图详情-包含关卡及任务列表
export const getRouterDetail = (routerId) => http.get('/admin/router/detail', {
export const getRouterDetail = (routerId) =>
http.get("/admin/router/detail", {
params: {
routerId: routerId,
}
});
},
});
//添加学员
export const addStudent = (obj) => http.post('/admin/router/addStudent', obj);
export const addStudent = (obj) => http.post("/admin/router/addStudent", obj);
//删除学员
export const delStudent = (obj) => http.post('/admin/router/deleteStudent', obj);
export const delStudent = (obj) =>
http.post("/admin/router/deleteStudent", obj);
// 获取学员路径图进度明细
export const stuProgress = (obj) => http.post('/admin/router/studentProcess', obj);
export const stuProgress = (obj) =>
http.post("/admin/router/studentProcess", obj);
//项目基础信息-----------------------------------
//项目积分榜单
export const scoreRank = (obj) => http.post('/admin/project/scoreRank', obj);
export const scoreRank = (obj) => http.post("/admin/project/scoreRank", obj);
//排行榜
export const billboard = (obj) => http.post('/admin/project/billboard', obj);
export const billboard = (obj) => http.post("/admin/project/billboard", obj);
//项目基础信息-----------------------------------
//获取字典信息
export const getDict = (obj) => http.post('/dict/getList', obj)
export const getDict = (obj) => http.post("/dict/getList", obj);
//获取组织树
export const getOrgTree = (obj) => http.post('/admin/router/orgList', obj)
export const getOrgTree = (obj) => http.post("/admin/router/orgList", obj);
// 获取组织结构树
export const orgtree = () => http.get('/org/tree');
export const orgtree = () => http.get("/org/tree");
//获取积分列表
export const noticeList = (projectId) => http.post(`http://localhost:8080/api/admin/project/noticeList?projectId=` + projectId + ``)
export const noticeList = (projectId) =>
http.post(
`http://localhost:8080/api/admin/project/noticeList?projectId=` +
projectId +
``
);
// 测试方法
// import * as api from '../../api/index'
@@ -106,5 +111,4 @@ export const noticeList = (projectId) => http.post(`http://localhost:8080/api/ad
// console.log(err)
// })
// export const choiceEvaluation = (obj) => http.post('/evaluation/choiceEvaluation', obj);

View File

@@ -38,16 +38,15 @@ import http from "./config";
// 接口-请求
//创建评估
export const createAppraiseMessage = (obj) => http.post('/survey/createAppraiseMessage', obj,);
//删除评估信息
export const deleteAppraise = (obj) => http.post('/survey/deleteAppraise', { params: obj })
//根据ID获取评估信息详情
export const queryAppraiseDetailById = (obj) => http.post('/survey/queryAppraiseDetailById', { params: obj })
//修改评估信息
export const updateAppraiseMessage = (obj) => http.post('/survey/updateAppraiseMessage', obj)
export const queryAppraiseDetailById = (obj) => http.post('/assessment/queryAssessmentDetailById', obj,{
headers: {
'token': '123',
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
}
})
//获取全部评估信息接口
export const queryAssessmentDetailList = (obj) => http.post('/assessment/queryAssessmentDetailList', obj)

View File

@@ -26,3 +26,5 @@ export const planList = (obj) => http.post('/admin/offcourse/planList', obj)
//获取面授课列表
export const list = (obj) => http.post('/admin/offcourse/list', obj)
export const addTempTask = (obj) => http.post('/admin/project//template/editTask', obj)

View File

@@ -19,3 +19,6 @@ export const editTask = (obj) => http.post('/admin/project/template/editTask',ob
export const handleTemplates = (obj) => http.post('/admin/project/template/handle',obj);
// 模板库列表
export const templateList = (obj) => http.post(`/admin/project/template/list`,obj);
// 发布项目公告
export const publishNotice = (obj) => http.post(`/admin/project/template/publishNotice`,obj);

View File

@@ -86,6 +86,10 @@ export default {
type: Number,
default: null,
},
titleTag: {
type: Boolean,
default: false,
}
},
setup(props, ctx) {
const state = reactive({
@@ -100,9 +104,10 @@ export default {
});
const closeDrawer = () => {
ctx.emit("update:assessmentVisible", false);
ctx.emit("update:titleTag", true);
};
const afterVisibleChange = (bool) => {
console.log("state getAllInvistText", bool);
console.log("state getAllInvistText", bool,"======",props.titleTag);
if (props.assessmentVisible) {
getAllInvistText();
}

View File

@@ -380,6 +380,23 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
} else if (props.isLevel == 3) {
apiTask
.addTempTask({
courseId: res.data.data.activityId,
duration: res.data.data.activityDuration,
name: res.data.data.activityName,
projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 9,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
console.log("");
}
};

View File

@@ -49,7 +49,7 @@
:row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null)
"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange,onSelect:onSelect }"
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
@@ -189,11 +189,8 @@ export default {
}
state.selectedRowKeys = selectedRowKeys;
state.apiTaskList = selectedRows;
console.log('-------------%o-%o',state.apiTaskList, state.apiTaskList.length);
};
const onSelect = ( record ) => {
state.caseId = record.caseid;
state.caseName = record.title;
}
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
@@ -215,6 +212,7 @@ export default {
array.push(obj);
});
state.tableData = array;
console.log('get下来的数据',state.tableData);
};
//获取全部案例信息接口
const getAllCaseText = () => {
@@ -237,10 +235,11 @@ export default {
};
const updateTask = () => {
if (props.isLevel == 1) {
for(let i = 0;i < state.apiTaskList.length;i++){
RouterEditTask({
chapterId: props.isactive,
courseId: state.caseId,
name: state.caseName,
courseId: state.apiTaskList[i].caseid,
name: state.apiTaskList[i].caseName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 3,
@@ -254,12 +253,14 @@ export default {
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
}
} else if (props.isLevel == 2) {
if(state.apiTaskList.length > 1){
for(let i = 0;i <= state.apiTaskList.length;i++){
console.log("state api task list: %o-length: %o", state.apiTaskList, state.apiTaskList.length )
for(let i = 0;i < state.apiTaskList.length;i++){
console.log(state.apiTaskList[i],'state.apiTaskList[i].caseIdstate.apiTaskList[i].caseId');
apiTask
.addTask({
"courseId": state.apiTaskList[i].caseId,
"courseId": state.apiTaskList[i].caseid,
"duration": 0,
"flag": true,
"name": state.apiTaskList[i].caseName,
@@ -279,27 +280,6 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
}
} else {
apiTask
.addTask({
"courseId": state.caseId,
"duration": 0,
"flag": true,
"name": state.caseName,
"projectId": props.projectId,
"projectTaskId": props.projectTaskId,
"stageId": props.chooseStageId,
"type": 3,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false);
closeDrawer();
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
}
} else if (props.isLevel == 3) {
console.log("");
}
@@ -315,7 +295,6 @@ export default {
closeDrawer,
tableDataFunc,
onSelectChange,
onSelect,
handelChangePage,
getTableDate,
updateTask,

View File

@@ -193,9 +193,11 @@ export default {
} else if (props.isLevel == 2) {
apiTask.addTask({
courseId: res.data.data.discussId,
duration: res.data.data.discussExplain,
name: res.data.data.discussName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 8,
});
} else if (props.isLevel == 3) {

View File

@@ -51,6 +51,14 @@
<button class="checkEval" @click="showEvalDrawer">
选择测评
</button>
<span style="margin-left: 10px">
<a-tag
class="tag-style"
v-if="evaluationTypeName != ''"
:closable="true"
>{{ evaluationTypeName }}</a-tag
>
</span>
</div>
</div>
<div class="main_item">
@@ -88,11 +96,8 @@
</div>
<EvList
v-model:EvalListVisible="EvalListVisible"
@getEvLsitDate="checkFinish"
@getEvListData="checkFinish"
/>
<!-- v-model:evaluationTypeId="evaluationTypeId"
v-model:evaluationTypeName="evaluationTypeName" -->
<!-- <div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
<a-spin :spinning="addLoading" tip="添加中..." />
</div> -->
@@ -161,106 +166,105 @@ export default {
setup(props, ctx) {
const state = reactive({
inputV1: "",
inputV2: "",
time: undefined,
EvalId: null,
//子传回来的参数
evaluationTypeId: null,
evaluationTypeId: 0,
evaluationTypeName: "",
description: "",
EvalListVisible: false,
// addLoading:false,
});
const checkFinish = (EvListDate)=> {
state.evaluationTypeId = EvListDate.Id
state.evaluationTypeName = EvListDate.Name
const checkFinish = (value)=> {
state.evaluationTypeId = value.quiz_kid
state.evaluationTypeName = value.title
}
const closeDrawer = () => {
ctx.emit("update:addevalVisible", false);
ctx.emit("update:edit", false);
state.inputV1 = "";
state.inputV2 = "";
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};
const afterVisibleChange = (bool) => {
if (props.edit && bool) {
queryEval();
queryInvistById()
}
};
const showEvalDrawer = () => {
state.EvalListVisible = true;
};
const queryEval = () => {
api
.queryEvaluationDetailById({ evaluationId: props.evaluationId })
.then((res) => {
state.inputV1 = res.data.data.evaluationName;
state.time = [
dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD"),
];
state.evaluationTypeId = res.data.data.evaluationTypeId;
state.evaluationTypeName = res.data.data.evaluationTypeName;
})
.catch(() => {
});
};
const updateTask = (res) => {
const updateTask = (value) => {
if (props.isLevel == 1) {
RouterEditTask({
chapterId: props.isactive,
courseId: Number(value.evaluationId),
name: value.evaluationName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 10,
})
.then(( ) => {
message.success(`${props.EditTestId ? "编辑" : "新增"}关卡任务成功`);
})
.catch(( ) => {
message.error(`${props.EditTestId ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 2) {
apitaskadd
.addTask({
courseId: res.data.data.evaluationId,
name: res.data.data.evaluationName,
duration: 0,
flag: true,
courseId: Number(value.evaluationId),
name: value.evaluationName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName,
type: 10,
})
.then(( ) => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(( ) => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 2) {
RouterEditTask({
chapterId: props.isactive,
courseId: res.data.data.evaluationId,
name: res.data.data.evaluationName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName,
type: 10,
})
.then(( ) => {
message.success(`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`);
})
.catch(( ) => {
message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
} else if (props.isLevel == 3) {
console.log("");
}
};
//创建或编辑测评信息
//根据id获取测评信息
const queryInvistById = ()=> {
let objqi = {
evaluationId : props.EditEvalId
}
api
.queryEvaluationDetailById(objqi)
.then((res) => {
message.destroy()
message.success("获取测评信息成功");
state.inputV1 = res.data.data.evaluationName
state.evaluationTypeName = res.data.data.evaluationTypeName
state.evaluationTypeId = res.data.data.evaluationTypeId;
state.time = [
dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD"),
];
})
.catch(() => {
message.destroy()
message.error("获取测量平信息失败");
});
}
//创建测评信息
const createEvalText = () => {
if (!state.inputV1) {
message.destroy();
return message.info("请输入测评名称");
}
if (!state.inputV2) {
if (!state.evaluationTypeId) {
message.destroy();
return message.info("请选择测评");
}
if (!state.time) {
message.destroy();
return message.warning("请输入直播时间");
}
let obj = {
evaluationName: state.inputV1,
evaluationEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"),
@@ -268,12 +272,15 @@ export default {
evaluationStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"),
evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName,
evaluationFlag: "",
evaluationPictureAddress: "",
evaluationTag: "",
updateTime: "",
};
if (props.edit !== true) {
api
.createEvaluation(obj)
.then((res) => {
updateTask(res);
updateTask(res.data.data);
message.success("创建成功");
closeDrawer();
ctx.emit("changeData", false);
@@ -281,19 +288,6 @@ export default {
.catch(() => {
message.error("创建失败");
});
} else {
api
.updateEvaluation(obj)
.then((res) => {
updateTask(res);
message.success("编辑成功");
closeDrawer();
ctx.emit("changeData", false);
})
.catch(( ) => {
message.error("编辑失败");
});
}
};
return {
@@ -303,6 +297,7 @@ export default {
closeDrawer,
//增改
createEvalText,
queryInvistById,
showEvalDrawer,
updateTask,
};
@@ -366,6 +361,10 @@ export default {
margin-left: 15px;
color: #fff;
}
.tag-style {
color: rgb(113, 113, 237);
background-color: #d7d1f7;
}
}
}
.main_item2 {

View File

@@ -23,12 +23,15 @@
<div class="main_notice">
<div class="mntc_left">
<div class="notice_icon"></div>
<div v-if="assessment == null">
<div v-if="assessment == null&&assessment1==null ">
<span class="title"
>已选择 <span class="data">0</span> </span
>
</div>
<div v-else>
<div v-if ="assessment1==null">
<span class="title"
>已选择 <span class="data">1</span> ;</span
>
@@ -45,6 +48,28 @@
>创建时间 <span class="data">{{ assessment.time }}</span>
</span>
</div>
<div v-else>
<span class="title"
>已选择 <span class="data">1</span> ;</span
>
<span class="title"
>名称 <span class="data">{{ assessment1.createName }}</span>
</span>
<span class="title"
>题数 <span class="data">{{ assessment1.essayQuestionVoList.length }}</span>
</span>
<span class="title"
>创建人 <span class="data">{{ assessment1.createUser }}</span>
</span>
<span class="title"
>创建时间 <span class="data">{{ assessment1.createTime }}</span>
</span>
</div>
</div>
</div>
</div>
<div class="main_item">
@@ -55,6 +80,7 @@
<div class="main_item2">
<AssessmentList
v-model:assessmentVisible="assessmentVisible"
v-model:titleTag="titleTag"
@checkedAss="getCheckedAss"
/>
</div>
@@ -77,6 +103,7 @@ import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue";
import AssessmentList from "./ AssessmentList.vue";
import { RouterEditTask } from "@/api/indexTask";
import * as api from "../../api/indexInvist";
export default {
name: "AddInvist",
components: {
@@ -139,10 +166,13 @@ export default {
assessmentId: null,
assessmentName: "",
assessment: null,
assessment1: null,
assessmentVisible: false,
titleTag:false,
});
const getCheckedAss = (ass) => {
state.assessment = ass;
state.assessment1 =null;
};
const closeDrawer = () => {
ctx.emit("update:addinvistVisible", false);
@@ -159,8 +189,24 @@ export default {
state.assessmentId = null;
state.assessmentName = "";
state.assessment = null;
};
queryInfo();
};
const queryInfo = () => {
if (props.edit) {
state.titleTg =false;
//编辑讨
api
.queryAppraiseDetailById({ assessmentId: props.EditInvistId })
.then((res) => {
//更新讨论信息
state.assessment1=res.data.data;
})
.catch(() => {
});
}
};
const updateTask = () => {
if (state.assessment == null) {
return message.warning("请选择评估");

View File

@@ -0,0 +1,574 @@
<template>
<a-drawer
:visible="addprojvisible"
class="drawerStyle addonlineDrawer"
width="80%"
title="添加在线"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div v-if="edit" class="headerTitle">编辑项目</div>
<div v-else class="headerTitle">添加项目</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="contentMain">
<div class="main_items">
<div class="mi_ipts">
<div class="mii_ipt">
<div class="ipt_name">项目名称</div>
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称"
/>
</div>
</div>
<div class="mii_ipt">
<div class="ipt_name">项目经理</div>
<div class="fi_input">
<a-input
v-model:value="inputV2"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目经理"
/>
</div>
</div>
<div class="mii_ipt">
<div class="ipt_name">创建人</div>
<div class="fi_input">
<a-input
v-model:value="inputV3"
style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入创建人"
/>
</div>
</div>
</div>
<div class="mi_btns">
<div class="btn btn1">
<div class="search"></div>
<div class="btnText" @click="searchProjectList()">搜索</div>
</div>
<div class="btn btn2" @click="resetProjectList()">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
</div>
<div class="">
<div class="drawerbox">
<a-table
:columns="tableDataFunc()"
:data-source="drawertableData"
:row-selection="rowSelection"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700 }"
@expand="expandTable"
:pagination="false"
>
</a-table>
</div>
</div>
</div>
<div class="main_btns">
<button @click="closeDrawer" class="btn1">取消</button>
<button @click="updateTaskList" class="btn2">确定</button>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs,ref } from "vue";
import * as apiTask from "../../api/indexTaskadd";
import { RouterEditTask } from "@/api/indexTask";
import { message } from "ant-design-vue";
import * as apiProj from "../../api/index.js";
import dayjs from "dayjs";
export default {
name: "AddProject",
props: {
addprojvisible: {
type: Boolean,
default: false,
},
EditProjectId: {
type: Number,
default: null,
},
edit: {
// 是否为编辑
type: Boolean,
default: null,
},
projectId: {
type: Number,
default: null,
},
chooseStageId: {
type: Number,
default: null,
},
routerTaskId: {
type: Number,
default: 0,
},
isLevel: {
// 是否是关卡页面触发
type: Number,
default: null,
},
projectTaskId: {
// 要编辑的projectId
type: Number,
default: null,
},
routerId: {
type: Number,
default: null,
},
isactive: {
type: Number,
default: null,
},
},
setup(props, ctx) {
const state = reactive({
inputV1: "",
inputV2: "",
inputV3: "",
textV1: "",
statu:0,
checkedC1: false,
discussSettings: "",
addLoading: false,
tableData: [
{
key: 1,
parentId:1,
name: '123',
manager:'afssfa',
children:[
{
key: 5,
parentId:1,
name: '123',
manager:'afssfa',
},
]
},
{
key: 2,
parentId:2,
name: '123',
manager:'afssfa',
children:[
{
key: 7,
parentId:1,
name: '123',
manager:'afssfa',
children:[
{
key: 9,
parentId:1,
name: '123',
manager:'afssfa',
},
]
},
]
},
{
key: 3,
parentId:3,
name: '123',
manager:'afssfa',
},
],
selectedRowKeys: [],
selectedRows:[],
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
//项目抽屉、列表参数
drawertableData: [
{
key: 1,
parentId:1,
name: '123',
manager:'afssfa',
children:[
{
key: 5,
parentId:1,
name: '123',
manager:'afssfa',
},
]
},
{
key: 2,
parentId:2,
name: '123',
manager:'afssfa',
children:[
{
key: 7,
parentId:1,
name: '123',
manager:'afssfa',
children:[
{
key: 9,
parentId:1,
name: '123',
manager:'afssfa',
},
]
},
]
},
{
key: 3,
parentId:3,
name: '123',
manager:'afssfa',
},
],
});
const tableDataFunc = () => {
const drawercolumns = [
{
title: "项目名称",
dataIndex: "name",
key: "projectName",
width: 200,
ellipsis: true,
},
{
title: "项目经理",
dataIndex: "manager",
key: "manager",
width: 100,
align: "center",
},
{
title: "创建人",
dataIndex: "creator",
key: "creater",
width: 100,
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: 180,
align: "center",
},
];
return drawercolumns;
};
const closeDrawer = () => {
ctx.emit("update:addprojvisible", false);
ctx.emit("update:edit", false);
};
const rowSelection =()=> ref({
checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => {
console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
},
onSelect: (record, selected, selectedRows) => {
console.log(record, selected, selectedRows);
},
onSelectAll: (selected, selectedRows, changeRows) => {
console.log(selected, selectedRows, changeRows);
},
});
const start = () => {
state.loading = true;
// ajax request after empty completing
setTimeout(() => {
state.loading = false;
state.selectedRowKeys = [];
}, 1000);
};
const onSelectChange =(selectedRowKeys,selectedRows) => {
console.log('selectedRowKeys changed: ', selectedRowKeys);
state.selectedRowKeys = selectedRowKeys;
this.selectedRows=selectedRows;
};
const searchProjectList=()=>{
getAllProjText();
}
const resetProjectList=()=>{
state.inputV1="";
state.inputV2="";
state.inputV1="";
getAllProjText();
}
//获取全部项目信息接口
const getAllProjText = () => {
apiProj
.getProjectList({
"createName": state.inputV1,
"manager": state.inputV2,
"name":state.inputV3,
pageNo: state.currentPage,
pageSize: state.pageSize,
"status": state.status
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
state.drawertableData = getTableDate(arr);
}
})
.catch(() => {
message.destroy()
message.error("获取全部项目信息接口失败")
});
};
const afterVisibleChange = (bool) => {
console.log("哈哈,我进来了")
if (bool) {
getAllProjText();
}
};
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
getAllProjText();
};
const getTableDate = (data) => {
let array = []
data.map((value)=>{
if(value.type == 3){
let obj = {
key: value.projectId,
parentId:value.parentId,
projectId:value.projectId,
name: value.name,
manager:value.manager,
time: dayjs(value.createTime).format("YYYY-MM-DD"),
}
array.push(obj)
}
else {
let obj = {
key: value.projectId,
parentId:value.parentId,
name: value.name,
manager:value.manager,
time: dayjs(value.createTime).format("YYYY-MM-DD"),
children: value.subList ? getTableDate(value.subList) : [] ,
}
array.push(obj)
}
})
return array
};
//项目抽屉用的
const updateTaskList =()=>{
//const resultArr = [];
state.selectedRows.forEach((item) => {
updateTask(item);
});
}
const updateTask = (res) => {
if (props.isLevel == 1) {
RouterEditTask({
chapterId: props.isactive,
courseId: 0,
name: res.data.data.discussName,
routerId: props.routerId,
routerTaskId: props.routerTaskId || 0,
type: 8,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 2) {
apiTask.addTask({
courseId: res.data.data.discussId,
duration: res.data.data.discussExplain,
name: res.data.data.discussName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 8,
});
} else if (props.isLevel == 3) {
console.log("");
}
};
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
getTableDate,
start,
getAllProjText,
onSelectChange,
tableDataFunc,
updateTaskList,
searchProjectList,
resetProjectList,
handelChangePage,
rowSelection,
};
},
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addrefDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
display: flex;
justify-content: space-between;
.main_left {
margin-top: 32px;
padding-right: 30px;
flex: 1;
border-right: 1px solid #e8e8e8;
.main_item {
display: flex;
align-items: center;
margin-top: 32px;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.btnbox {
display: flex;
flex: 1;
align-items: center;
.ant-input {
height: 100%;
}
.xkbtn {
cursor: pointer;
width: 130px;
height: 40px;
background: #388be1;
border-radius: 8px;
border: 0;
margin-right: 8px;
color: #fff;
}
}
}
.main_item2 {
display: flex;
align-items: flex-start;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.textarea {
width: 423px;
.ant-input {
width: 100%;
}
.ant-input-textarea-show-count {
position: relative;
}
.ant-input-textarea-show-count::after {
position: absolute;
right: 10px;
bottom: 0px;
}
.ant-input {
border-radius: 8px;
}
}
}
}
}
.main_btns {
height: 72px;
width: 100%;
bottom: 0;
left: 0;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
border: 1px solid #4ea6ff;
border-radius: 8px;
color: #4ea6ff;
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;
height: 40px;
background: #4ea6ff;
border-radius: 8px;
border: 0;
margin-left: 15px;
color: #fff;
}
}
}
}
</style>

View File

@@ -759,7 +759,7 @@ export default {
};
const getData = (value)=> {
state.paperId = value.paperId;
state.paperName = value.paperName;
state.paperName = value.testName;
}
return {
formState,

View File

@@ -103,6 +103,7 @@
evaluationTypeName:"",
tableData: [],
selectedRowKeys:[],
evListData:{},
columns:[
{
title: "课程编号",
@@ -148,17 +149,12 @@
},
]
});
// const onSelect = (record)=> {
// state.evaluationTypeName = record.title
// state.evaluationTypeId = record.quiz_code
// };
const onSelectChange = (selectedRowKeys,selectedRows)=> {
if(state.selectedRowKeys.length>1){
if(selectedRowKeys.length>1){
return
}
state.selectedRowKeys = selectedRowKeys
state.evaluationTypeName = selectedRows[0].record.title
state.evaluationTypeId = selectedRows[0].quiz_code
state.evListData = selectedRows[0] ? selectedRows[0] : []
}
const closeDrawer = () => {
ctx.emit("update:EvalListVisible", false);
@@ -169,11 +165,7 @@
}
};
const checkFinish =() =>{
let EvListDate = {
Id : state.evaluationTypeId,
Name : state.evaluationTypeName,
}
ctx.emit("getEvListDate", EvListDate);
ctx.emit("getEvListData", state.evListData);
closeDrawer();
}
const changePagination = (page) => {
@@ -187,6 +179,7 @@
let obj = {
status:value.status,
quiz_code:value.quiz_code,
quiz_kid:value.quiz_kid,
title:value.title,
theme_desc:value.theme_desc,
quiz_price:value.quiz_price,

View File

@@ -61,7 +61,7 @@
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
:row-selection="{selectedRowKeys:selectedRowKeys,onSelect:onSelect,onChange:onSelectChange}"
:row-selection="{selectedRowKeys:selectedRowKeys, onChange:onSelectChange, hideSelectAll:true}"
:scroll="{ x: 900 }"
:pagination="false"
/>
@@ -184,14 +184,13 @@
console.log("Page: ", pageNumber);
};
const onSelect = (record) => {
state.SelectTestData = record
};
const onSelectChange = (selectedRowKeys) => {
const onSelectChange = (selectedRowKeys,selectedRows) => {
if(selectedRowKeys.length>1){
return
}
state.selectedRowKeys = selectedRowKeys;
state.SelectTestData = selectedRows[0];
console.log('state.SelectTestData---------------',state.SelectTestData);
}
const newTest = ()=> {
@@ -282,7 +281,6 @@
closeDrawer,
afterVisibleChange,
getTableDate,
onSelect,
onSelectChange,
CreatSTText,
newTest,
@@ -298,7 +296,6 @@
<style lang="scss">
.TimeManage {
// overflow-x: auto;
.drawerMain {
min-width: 550px;
margin: 0px 32px 0px 32px;
@@ -406,13 +403,7 @@
}
}
.tab {
.ant-table-selection-column {
.ant-table-selection{
display: none;
}
}
th.h {
th,th.h {
background-color: #eff4fc !important;
}
@@ -423,15 +414,10 @@
}
.tableBox {
.pa {
// left: 0;
margin-top: 15px;
width: 100%;
// height: 20px;
// background-color: red;
display: flex;
justify-content: center;
// position: absolute;
// bottom: 20px;
.ant-pagination-prev,
.ant-pagination-next,
.ant-pagination-item,

View File

@@ -669,7 +669,7 @@ export default {
background-color: #eff4fc !important;
}
th.h {
th,th.h {
background-color: #eff4fc !important;
}

View File

@@ -483,10 +483,22 @@
<div class="img">
<img
src="../../assets/images/leveladd/xiang.png"
@click="showDrawer"
/>
</div>
<div class="text">项目</div>
<div>
<add-project
v-model:addprojvisible="addprojvisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:isactive="isactive"
v-model:edit="edit"
v-model:routerId="routerId"
v-model:chooseStageId="chooseStageId"
v-model:EditProjectId="EditProjectId"
v-model:routerTaskId="routerTaskId"
/>
</div>
</div>
</div>
</div>
@@ -709,42 +721,8 @@
</div>
</div>
<div class="draw" style="position: relative">
<a-drawer
v-model:visible="addprojvisible"
class="drawerStyle ProjectDrawer"
title="关联项目"
placement="right"
width="80%"
@after-visible-change="afterProjVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">关联项目</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="leaveProjDrawer"
/>
</div>
<div class="drawerbox">
<a-table
:columns="drawertableColumns()"
:data-source="drawertableData"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 700 }"
@expand="expandTable"
:pagination="false"
>
</a-table>
</div>
<div class="btnn">
<button @click="leaveProjDrawer" class="btn1">取消</button>
<button @click="updateTask" class="btn2">确定</button>
</div>
</div>
</a-drawer>
</div>
</div>
<div class="right" :style="{ display: gqxy_hs ? 'none' : 'block' }">
<div class="addhead">
@@ -1055,6 +1033,7 @@ import AddInvist from "../../components/drawers/AddInvist.vue";
import AddVote from "../../components/vote/AddVote.vue";
import AddLive from "../../components/drawers/AddLive.vue";
import AddRef from "../../components/drawers/AddRef.vue";
import AddProject from "../../components/drawers/AddProject.vue";
import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
import * as api from "../../api/indexLevel";
import { GetRouterDetail } from "../../api/indexTask";
@@ -1063,9 +1042,9 @@ import { storage } from "../../api/storage";
import { deleteStudyTask } from "../../api/indexStudy";
import draggable from "vuedraggable";
import { editTask } from "../../api/indexTaskadd";
import * as apiProj from "../../api/index.js";
import { RouterEditTask } from "@/api/indexTask";
// import dayjs from "dayjs";
import { toDate } from "../../api/method";
import UnlockMode from "../../components/drawers/UnlockMode.vue";
export default {
@@ -1087,6 +1066,7 @@ export default {
draggable,
UnlockMode,
AddFaceteach,
AddProject,
},
setup() {
const state = reactive({
@@ -1188,94 +1168,52 @@ export default {
time: "2022-07-15 14:00",
},
],
// drawertableData: [
// {
// key: 1,
// projectName: "管理者进阶",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// children: [
// {
// key: "1-1",
// projectName: "管理者进阶-腾飞班",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// children: [
// {
// key: "1-1-1",
// projectName: "管理者进阶-腾飞班K1",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// },
// ],
// },
// ],
// },
// {
// key: 2,
// projectName: "管理者进阶",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// children: [
// {
// key: "2-1",
// projectName: "管理者进阶-腾飞班",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// children: [
// {
// key: "2-1-1",
// projectName: "管理者进阶-腾飞班K1",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// },
// ],
// },
// ],
// },
// {
// key: 3,
// projectName: "管理者进阶-腾飞班K1",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// },
// {
// key: 4,
// projectName: "管理者进阶-腾飞班K1",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// },
// {
// key: 5,
// projectName: "管理者进阶-腾飞班K1",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// },
// {
// key: 6,
// projectName: "管理者进阶-腾飞班K1",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// },
// {
// key: 7,
// projectName: "管理者进阶-腾飞班K1",
// manager: "黄华 刘俊",
// creater: "毛继禹",
// time: "2022-07-20 14:00:03",
// },
// ],
drawertableData: [],
//项目抽屉、列表参数
drawertableData: [
{
key: 1,
parentId:1,
name: '123',
manager:'afssfa',
children:[
{
key: 5,
parentId:1,
name: '123',
manager:'afssfa',
},
]
},
{
key: 2,
parentId:2,
name: '123',
manager:'afssfa',
children:[
{
key: 7,
parentId:1,
name: '123',
manager:'afssfa',
children:[
{
key: 9,
parentId:1,
name: '123',
manager:'afssfa',
},
]
},
]
},
{
key: 3,
parentId:3,
name: '123',
manager:'afssfa',
},
],
selectedProjRowKeys:[],
currentPage: 1,
tableDataTotal: 0,
pageSize: 10,
@@ -1309,7 +1247,7 @@ export default {
EditVoteId: "",
EditFaceId: "",
//项目
EditProjId: "",
EditProjectId: "",
routerTaskId: "",
chapterId: "",
stageId: "",
@@ -1321,7 +1259,6 @@ export default {
isLevel: 1, //学习路径1项目2模板库3
gqxy_hs: true,
isactive: 0,
projectChecked: null, //项目单选框
adddiscussvisible: false, //讨论抽屉
isStudiscuss: false,
addactivevisible: false, //活动抽屉
@@ -1451,14 +1388,6 @@ export default {
console.log("删除关卡失败", err);
});
};
const showDrawer = () => {
state.visible = true;
};
//关闭项目抽屉
const leaveProjDrawer = () => {
state.addprojvisible = false;
};
//在线抽屉
const showDrawerAddOnline = (id, eleId) => {
state.addonlinevisible = true;
@@ -1492,14 +1421,12 @@ export default {
};
//测试抽屉
const showDrawerAddEval = (id, eleId) => {
// state.addevalVisible = true;
state.addevalvisible = true;
state.EditEvalId = id;
state.routerTaskId = eleId;
};
//评估抽屉
const showDrawerAddInvist = (id, eleId) => {
// state.addinvistVisible = true;
state.addinvistvisible = true;
state.routerTaskId = eleId;
state.EditInvistId = id;
@@ -1538,9 +1465,13 @@ export default {
//打开项目抽屉
const showDrawerAddProj = (id, eleId) => {
state.addprojvisible = true;
state.EditActiveId = id;
state.EditProjectId = id;
state.routerTaskId = eleId;
};
//关闭项目抽屉
const leaveProjDrawer = () => {
state.addprojvisible = false;
};
//tableData数据赋值方法
const dataAssignment = (id) => {
console.log(state.level);
@@ -1606,14 +1537,7 @@ export default {
message.error(err);
});
};
const closeDrawer = () => {
state.visible = false;
};
const afterProjVisibleChange = (bol) => {
if(bol == true){
getAllProjText()
}
};
const showAddStu = () => {
state.AddSvisible = true;
};
@@ -1770,7 +1694,6 @@ export default {
"rgb(245, 247, 250,1)";
document.getElementsByTagName("main")[0].style.boxShadow = "none";
getDetail();
getAllProjText();
});
onUnmounted(() => {
document.getElementsByTagName("main")[0].style.background = "#ffffff";
@@ -1944,9 +1867,9 @@ export default {
} else if (type == "活动") {
showDrawerAddActive(id, eleId);
} else if (type == "测评") {
showDrawerAddInvist(id, eleId);
} else if (type == "评估") {
showDrawerAddEval(id, eleId);
} else if (type == "评估") {
showDrawerAddInvist(id, eleId);
} else if (type == "投票") {
showDrawerAddVote(id, eleId);
} else if (type == "项目") {
@@ -2000,138 +1923,28 @@ export default {
console.log("阶段改变", value, option);
state.removeStageId = option.chapterId;
};
//项目抽屉用的
const rowSelection = {
onSelect: (selectedRows, selected, selectedRowKeys) => {
console.log(
"selectedRowKeys",
selectedRowKeys,
"selectedRows",
selectedRows,
"selected",
selected
);
state.projId = selectedRows.parentId;
state.projName = selectedRows.name;
},
};
const getTableDate = (drawertableData) => {
console.log(drawertableData,'drawertableDatadrawertableDatadrawertableDatadrawertableData')
let data = drawertableData
let array = []
data.map((value)=>{
if(value.type ==3){
let obj = {
key: value.projectId,
parentId:value.parentId,
name: value.name,
manager:value.manager,
creator: value.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
}
else if(value.type == 2){
value.subList.map((item)=>{
let obj = {
key: value.projectId,
parentId:value.parentId,
name: value.name,
manager:value.manager,
creator: value.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
children:[{
key: item.projectId,
parentId:item.parentId,
name: item.name,
manager:item.manager,
creator: item.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
}]
}
array.push(obj);
})
}
else{
value.subList.map((item)=>{
item.subList.map((items)=>{
let obj = {
key: value.projectId,
parentId:value.parentId,
name: value.name,
manager:value.manager,
creator: value.createName,
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
children:[{
key: item.projectId,
parentId:item.parentId,
name: item.name,
manager:item.manager,
creator: item.createName,
children:[{
key: items.projectId,
parentId:items.parentId,
name: items.name,
manager:items.manager,
creator: items.createName,
}]
// time: dayjs(value.createTime).format("YYYY-MM-DD"),
}]
}
array.push(obj);
})
})
}
})
state.drawertableData = array;
console.log(state.drawertableData,"------------state.drawertableData---------------");
};
//获取全部项目信息接口
const getAllProjText = () => {
apiProj
.getProjectList({
"beginTime": 0,
"createName": "",
"endTime": "",
"manager": "",
"name": "",
"pageNo": 1,
"pageSize": 10,
"status": 0
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
getTableDate(arr);
console.log("---------------项目信息---------------------------",res.data.data);
}
})
.catch((err) => {
console.log("获取全部项目信息接口失败", err);
console.log("+++++++++++++++++++++++++++++++++++++++++++++++");
// state.createLoading = false;
});
};
//不需要下面这个添加应该 没选数据
//添加关卡项目
const updateTask = () => {
RouterEditTask({
duration: 0,
flag: true,
chapterId: state.isactive,
courseId: state.assessmentId,
name: state.assessmentName,
courseId: Number(state.projId),
name: state.projName,
routerId: state.routerId,
routerTaskId: state.routerTaskId || 0,
routerTaskId: state.routerTaskId,
type: 13,
})
.then((res) => {
console.log(res, 11111);
.then(( ) => {
message.success(`${state.editproj ? "编辑" : "新增"}关卡任务成功`);
// ctx.emit("changeData", false);
closeDrawer();
leaveProjDrawer()
state.addLoading = false;
})
.catch((err) => {
console.log(err, 1111);
.catch(() => {
message.destroy()
message.error("添加关卡任务失败")
});
};
@@ -2139,19 +1952,12 @@ export default {
const showModeVisible = () => {
state.unlockModeVisible = true;
};
onMounted(() => {
// createCase();
getAllProjText();
});
return {
...toRefs(state),
// tableDataFunc,
tableDataFunc2,
showDrawer,
closeDrawer,
showModal,
closeModal,
afterProjVisibleChange,
showAddStu,
showImpStu,
// drawercolumns,
@@ -2191,9 +1997,7 @@ export default {
showChangeModal,
closeChangeModal,
handleChangeStage,
rowSelection,
getTableDate,
getAllProjText,
updateTask,
showDeleteChapter,

View File

@@ -33,7 +33,7 @@
</div>
</div>
<div class="line"></div>
<router-link to="/manage/templatelibrary"
<router-link to="/templatelibrary"
><div style="display: flex">
<img class="img2" src="../../assets/images/leveladd/back.png" />
<div class="return">返回</div>
@@ -802,23 +802,9 @@ export default defineComponent({
// 发布公告
const addNotice = () => {
let obj = {
"beginTime": 0,
"boeFlag": 0,
"category": 0,
"courseSyncFlag": 0,
"endTime": 0,
"level": 0,
"manager": "",
"managerId": "",
"name": "",
"notice": state.projectInfo.notice,
"noticeFlag": 0,
"picUrl": "",
"projectTemplateId": store.state.projectTemplateId,
"remark": "",
"sourceBelongId": 0,
"status": 0,
"systemId": 0
"projectId": store.state.projectTemplateId,
"title": ""
};
api.templateEdit(obj).methods(obj).then(res => {
message.success("公告发布成功")

View File

@@ -1855,7 +1855,7 @@ export default {
state.addactivevisible = true;
state.EditActiveId = id;
state.projectTaskId = eleId;
console.log("active=======", id);
};
const showDrawerAddEval = (id, eleId) => {
state.addevalvisible = true;
@@ -1864,12 +1864,12 @@ export default {
state.projectTaskId = eleId;
};
const showDrawerAddInvist = (id, eleId) => {
console.log(id, eleId, "213312");
state.EditInvistId = id;
state.addinvistvisible = true;
state.projectTaskId = eleId;
};
const showDrawerAddVote = (id, eleId) => {
console.log(id, eleId, "95835325932953295325");
state.addvotevisible = true;
state.EditVoteId = id;
state.projectTaskId = eleId;

View File

@@ -15,7 +15,7 @@
</div>
<div class="inpbox1">
<span>创建时间</span>
<a-date-picker v-model="selectTime" type="date" placeholder="创建时间" style="
<a-date-picker v-model:value="time" type="date" placeholder="创建时间" style="
width: 270px;
height: 40px;
border-radius: 8px;
@@ -50,6 +50,7 @@ import { message } from "ant-design-vue";
import { useRouter } from "vue-router";
import { useStore } from "vuex";
import * as api from "@/api/indexTemplate"
const columns1 = [
{
title: "模版名称",
@@ -97,6 +98,10 @@ export default defineComponent({
const router = useRouter();
const state = reactive({
value1: null,
time:null,
currentPage: 1,
pageSize: 10,
total:0,
tableData1: [
{
key: "1",
@@ -166,9 +171,9 @@ export default defineComponent({
state.tableData = data;
};
const pagination = reactive({
current: 1,
total: 50,
defaultPageSize: 10,
current: state.currentPage,
total: state.total,
defaultPageSize: state.pageSize,
onChange: (id) => { pagination.current = id; getLibraryList() },
})
getTableDate1();
@@ -179,12 +184,14 @@ export default defineComponent({
// 获取模板列表
const getLibraryList = () => {
let date = Math.ceil(new Date(state.time).getTime() / 1000);
let obj = {
"beginTime": 0,
"name": "",
// "create_time": state.time,
"createTime" : date==0?null:date,
"name": state.value1,
"pageNo": pagination.current,
"pageSize": 10,
"status": 0
"pageSize": state.pageSize
}
api.templateList(obj).then((res) => {
state.tableData1 = []
@@ -222,13 +229,16 @@ export default defineComponent({
}
const searchLevel = () => {
getLibraryList();
/*
setTimeout(() => {
const result = state.tableData1.filter(item => item.name.includes(state.value1))
state.tableData1 = result;
},100)
*/
};
const resetLevel = () => {
state.value1 = '';
state.time = '';
getLibraryList();
getTableDate1()
};

View File

@@ -176,7 +176,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditOnlineId="EditOnlineId"
@@ -216,7 +216,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditCaseId="EditCaseId"
@@ -239,7 +239,7 @@
@changeData="updateTableData"
v-model:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditWorkId="EditWorkId"
v-model:projectTaskId="projectTaskId"
@@ -262,7 +262,7 @@
@changeData="updateTableData"
:isLevel="isLevel"
v-model:edit="edit"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditTestId="EditTestId"
v-model:projectTaskId="projectTaskId"
@@ -284,7 +284,7 @@
v-model:addliveVisible="addlivevisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:edit="edit"
v-model:EditLiveId="EditLiveId"
@@ -307,7 +307,7 @@
v-model:addrefVisible="addrefvisible"
:isLevel="isLevel"
@changeData="updateTableData"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:edit="edit"
v-model:EditRefId="EditRefId"
@@ -330,7 +330,7 @@
v-model:adddiscussVisible="adddiscussvisible"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:EditDiscussId="EditDiscussId"
v-model:projectTaskId="projectTaskId"
@@ -351,7 +351,7 @@
<div>
<add-active
v-model:addactiveVisible="addactivevisible"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:EditActiveId="EditActiveId"
v-model:projectTaskId="projectTaskId"
v-model:edit="edit"
@@ -377,7 +377,7 @@
@changeData="updateTableData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditEvalId="EditEvalId"
@@ -400,7 +400,7 @@
@changeData="updateTableData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditInvistId="EditInvistId"
@@ -423,7 +423,7 @@
@getData="changeVData"
v-model:edit="edit"
:isLevel="isLevel"
v-model:projectId="projectId"
v-model:projectTemplateId="projectTemplateId"
v-model:chooseStageId="chooseStageId"
v-model:projectTaskId="projectTaskId"
v-model:EditVoteId="EditVoteId"
@@ -1114,7 +1114,7 @@
chooseStageId: null,
removeStageId: null,
edit: false,
isLevel: 2, //学习路径1项目2模板库3
isLevel: 3, //学习路径1项目2模板库3
// isRefEdit: 1, //外链编辑
// isLiveEdit: 1, //直播编辑
isRefEdit: false, //外链编辑
@@ -1528,13 +1528,16 @@
let stageList = res.data.data.stageList; //阶段数组
let result = stageList.find((item) => item.templateStageId == stage);
console.log("又找到了", result);
changebgc(res.data.data.stageList[0].templateStageId);
getTableData(result.taskList);
} else {
let arr = res.data.data.stageList[0].taskList;
console.log("任务列表", arr);
changebgc(res.data.data.stageList[0].templateStageId);
getTableData(arr);
// state.isActive = true;
changebgc(res.data.data.stageList[0].templateStageId);
}
// 每次都获取了第一条taskList
@@ -1542,7 +1545,6 @@
// console.log("任务列表", stage, arr);
// getTableData(arr);
}
let stagearr = res.data.data.stageList;
let arrlist = state.curLevel;
console.log(stagearr, 111111);
@@ -1685,6 +1687,7 @@
state.valuesname = "";
state.valuesnotice = "";
state.updateStageID = null;
};
//显示添加阶段弹窗
const showModal = (element) => {
@@ -1964,7 +1967,6 @@
//打开测评的弹窗
const showEditEvalDrawer = (id, eleId) => {
console.log("222222222222222222222", id);
state.addevalvisible = true;
state.projectTaskId = eleId;
state.EditRefId = id;

View File

@@ -47,7 +47,6 @@
}
"
v-model:value="projectInfo.category"
placeholder="管理者"
style="width: 100%"
:options="classifyList"
@change="classificationChange"
@@ -121,7 +120,8 @@
<a-range-picker
separator="至"
:placeholder="[' 开始时间', ' 结束时间']"
v-model:value="rangevalue"
v-model:value="projectInfo.choosedTime"
format="YYYY-MM-DD"
style="width: 100%; height: 40px; border-radius: 5px"
/>
</div>
@@ -141,7 +141,8 @@
return triggerNode.parentNode || document.body;
}
"
:value="projectInfo.manager"
:value="classifySelect1"
mode="multiple"
placeholder="请选择项目经理"
style="width: 100%"
@@ -319,6 +320,7 @@ import * as api from "../../api/indexTemplate";
import { storage } from "../../api/storage";
import {useStore} from "vuex";
// import { toDate } from "../../api/method";
import dayjs from "dayjs";
export default {
name: "projectAdd",
@@ -358,7 +360,7 @@ export default {
valueE: null,
valueE1: null,
valueE2: null,
classifySelect1: [],
classifySelect1: ['李俊国'],
classifySelect2: [],
classifySelect3: [],
classifySelect4: [],
@@ -370,16 +372,16 @@ export default {
totalPages: 0, //总页数
viewDetail: routers.query.viewDetail ? routers.query.viewDetail : null,
projectInfo:{
beginTime:null,
endTime:null,
choosedTime:'',
name: null,
manager: null,
notice: null,
sourceBelongId: null,
sourceBelongId: 1,
category:1,
remark: "",
courseSyncFlag: false,
level: null,
systemId: null,
level: 1,
systemId: 2,
boeFlag: false,
}
});
@@ -628,9 +630,9 @@ export default {
"name": state.projectInfo.name,
"category": state.projectInfo.category,
"picUrl": "x",
"beginTime": state.projectInfo.rangevalue || 1,
"endTime": state.projectInfo.rangevalue || 1,
"manager": state.projectInfo.manager,
"beginTime": Number(dayjs(state.projectInfo.choosedTime[0]).format("YYYY-MM-DD")) || 1,
"endTime": Number(dayjs(state.projectInfo.choosedTime[1]).format("YYYY-MM-DD")) || 1,
"manager": state.classifySelect1.toString(),
"managerId": state.projectInfo.managerId || 0,
"sourceBelongId": state.projectInfo.sourceBelongId,
"level": state.projectInfo.level,

View File

@@ -14,6 +14,7 @@ module.exports = defineConfig({
port: 8080,
proxy: {
"/manageApi": {
// target:"http://192.168.19.246:30001",
// target:"http://192.168.100.208:30001",
target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口
changeOrigin: true, //表示是否改变原域名