feat:合并

This commit is contained in:
lixg
2022-11-26 09:40:47 +08:00
42 changed files with 4078 additions and 2207 deletions

2
.gitignore vendored
View File

@@ -21,3 +21,5 @@ pnpm-debug.log*
*.njsproj *.njsproj
*.sln *.sln
*.sw? *.sw?
fe-manage.iml
package-lock.json

BIN
dist.zip

Binary file not shown.

1002
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -34,7 +34,7 @@ http.interceptors.request.use(
// 此处测试默认配置token // 此处测试默认配置token
config.headers.token = "123456"; config.headers.token = "123456";
// config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NjkzMDA4MDksImV4cCI6MTY2OTMwODAwOSwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.bb3e0e031513761003d5c3bfeaf16e364bdf8fe7bc4cf691a05a74dc454afbfb"; // config.headers.token = "eyJ0eXBlIjoidG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOlwvXC91LmJvZS5jb20iLCJpYXQiOjE2NjkzODQ5MTgsImV4cCI6MTY2OTM5MjExOCwiR2l2ZW5OYW1lIjoiYm9ldSIsInVzZXJJZCI6IjZCMDQ5RkFGLUMzMTQtN0NDRi0wRDI4LTBEMjNGNEM0MjUzMSIsInVJZCI6Ijk2NTM0MjAyNzQ5NzYwNzE2OCIsInBlcm1pc3Npb24iOiIifQ==.7c3af587cbacf68180e86681442e06ffd33c65a78fc835aaac34d0c773752d99";
} }
return config; return config;
}, },

View File

@@ -3,10 +3,12 @@ import http from "./config";
/** /**
* 1 * 1
*/ */
//添加课程学员 //1添加课程学员
export const addStudent = (obj) => export const addStudent = (obj) =>
http.post("/admin/offcourse/addStudent", obj); http.post("/admin/offcourse/addStudent", obj);
//删除开课 //2面授课审核
export const auditView = (obj) => http.post("/admin/offcourse/auditView", obj);
//3删除开课
export const deletePlan = (obj) => export const deletePlan = (obj) =>
http.delete( http.delete(
"/admin/offcourse/deletePlan", "/admin/offcourse/deletePlan",
@@ -15,40 +17,44 @@ export const deletePlan = (obj) =>
headers: { "Content-Type": "application/x-www-form-urlencoded" }, headers: { "Content-Type": "application/x-www-form-urlencoded" },
} }
); );
//获取面授课详情 //4获取面授课详情
export const detail = (obj) => export const detail = (obj) =>
http.post("/admin/offcourse/detail", obj, { http.post("/admin/offcourse/detail", obj, {
headers: { "Content-Type": "application/x-www-form-urlencoded" }, headers: { "Content-Type": "application/x-www-form-urlencoded" },
}); });
//获取面授课开课详情 //5获取面授课开课详情
export const detailPlan = (obj) => export const detailPlan = (obj) =>
http.post("/admin/offcourse/detailPlan", obj, { http.post("/admin/offcourse/detailPlan", obj, {
headers: { "Content-Type": "application/x-www-form-urlencoded" }, headers: { "Content-Type": "application/x-www-form-urlencoded" },
}); });
//新建或编辑面授课 //6新建或编辑面授课
export const edit = (obj) => http.post("/admin/offcourse/edit", obj); export const edit = (obj) => http.post("/admin/offcourse/edit", obj);
//新建或编辑面授课开课 //7新建或编辑面授课开课
export const editPlan = (obj) => http.post("/admin/offcourse/editPlan", obj); export const editPlan = (obj) => http.post("/admin/offcourse/editPlan", obj);
//课程导出 //8课程导出
export const exportP = (obj) => http.post("/admin/offcourse/export", obj); export const exportP = (obj) => http.post("/admin/offcourse/export", obj);
//操作面授课(发布,撤回,删除,审核,停用) //9操作面授课(发布,撤回,删除,审核,停用)
export const handle = (obj) => http.post("/admin/offcourse/handle", obj); export const handle = (obj) => http.post("/admin/offcourse/handle", obj);
//学员操作-支持批量 //10学员操作-支持批量
export const handleStudent = (obj) => export const handleStudent = (obj) =>
http.post("/admin/offcourse/handleStudent", obj); http.post("/admin/offcourse/handleStudent", obj);
//获取面授课列表 //11获取面授课列表
export const list = (obj) => http.post("/admin/offcourse/list", obj); export const list = (obj) => http.post("/admin/offcourse/list", obj);
//获取面授课已审核列表 //12获取面授课已审核列表
export const listReview = (obj) => export const listReview = (obj) =>
http.post("/admin/offcourse/listReview", obj); http.post("/admin/offcourse/listReview", obj);
//面授课开课列表 //13面授课开课列表
export const planList = (obj) => http.post("/admin/offcourse/planList", obj); export const planList = (obj) => http.post("/admin/offcourse/planList", obj);
//学员导出 //14学员导出
export const studentExport = (obj) => export const studentExport = (obj) =>
http.post("/admin/offcourse/studentExport", obj); http.post("/admin/offcourse/studentExport", obj);
//获取学员列表 //15获取学员列表
export const studentList = (obj) => export const studentList = (obj) =>
http.post("/admin/offcourse/studentList", obj); http.post("/admin/offcourse/studentList", obj);
//学习记录列表 //16学习记录列表
export const studyRecordList = (obj) => export const studyRecordList = (obj) =>
http.post("/admin/offcourse/studyRecordList", obj); http.post("/admin/offcourse/studyRecordList", obj);
// 获取员工信息
export const getMemberInfoApi = (obj) =>
http.post("/admin/orgStruct/getMemberInfo", obj);

View File

@@ -9,6 +9,15 @@ export const queryExaminationDetailById = (obj) => http.post('/examination/query
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
} }
}); });
// 创建考试信息接口 // 查询用户答卷信息-三方
export const updateExamination = (obj) => http.post('/examination/updateExamination', obj); export const queryUserAnswerDetail = (id) => http.get(`/examination/updateExamination?aloneId=${id}`);
// 查询用户答卷列表-三方
export const queryUserAnswerPageDetailList = (obj) => http.post('/examination/queryUserAnswerPageDetailList', obj);
// 获取试卷列表接口-三方
export const queryExaminationPaperList = (obj) => http.post('/examination/queryExaminationPaperList', obj);
// 考试列表查询接三方
export const queryExaminationList = (obj) => http.post('/examination/queryExaminationList', obj);
// 获取考试任务列表的接口-三方
export const queryExaminationAloneExtendList = (obj) => http.post('/examination/queryExaminationAloneExtendList', obj);
// 对接三方考试任务保存接口-三方
export const examinationTaskSave = (obj) => http.post('/examination/examinationTaskSave', obj);

14
src/api/indexStu.js Normal file
View File

@@ -0,0 +1,14 @@
import http from "./config";
/**
* 1
*/
//获取受众信息
export const getAudienceInfoApi = (obj) =>
http.post("/admin/orgStruct/getAudienceInfo", obj);
//获取员工信息
export const getMemberInfoApi = (obj) =>
http.post("/admin/orgStruct/getMemberInfo", obj);
//获取所有组织
export const getOrgInfoApi = (obj) =>
http.post("/admin/orgStruct/getOrgInfo", obj);

View File

@@ -228,6 +228,7 @@ import * as apiTask from "../../api/indexTaskadd";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import dayjs from "dayjs"; import dayjs from "dayjs";
export default { export default {
name: "AddActive", name: "AddActive",
// components: { // components: {
@@ -332,8 +333,7 @@ export default {
dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"), dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"),
]; ];
}) })
.catch(() => { .catch(() => {});
});
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
if (bool && props.edit) { if (bool && props.edit) {

View File

@@ -49,7 +49,10 @@
:row-class-name=" :row-class-name="
(_record, index) => (index % 2 === 1 ? 'table-striped' : null) (_record, index) => (index % 2 === 1 ? 'table-striped' : null)
" "
:row-selection="{ selectedRowKeys: selectedRowKeys, onChange: onSelectChange }" :row-selection="{
selectedRowKeys: selectedRowKeys,
onChange: onSelectChange,
}"
:columns="tableDataFunc()" :columns="tableDataFunc()"
:data-source="tableData" :data-source="tableData"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
@@ -57,6 +60,7 @@
/> />
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
v-if="tableDataTotal>10"
showSizeChanger="true" showSizeChanger="true"
showQuickJumper="true" showQuickJumper="true"
hideOnSinglePage="true" hideOnSinglePage="true"
@@ -82,6 +86,7 @@ import * as api from "../../api/indexCase.js";
import * as apiTask from "../../api/indexTaskadd"; import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
// import { addTempTask } from "../../api/indexTaskadd";
// import dayjs from "dayjs"; // import dayjs from "dayjs";
export default { export default {
@@ -137,8 +142,8 @@ export default {
currentPage: 1, currentPage: 1,
tableDataTotal: 0, tableDataTotal: 0,
pageSize: 10, pageSize: 10,
selectedRowKeys:[], selectedRowKeys: [],
apiTaskList:[], apiTaskList: [],
inputV1: "", inputV1: "",
time: undefined, time: undefined,
caseId: null, caseId: null,
@@ -149,12 +154,12 @@ export default {
ctx.emit("update:edit", false); ctx.emit("update:edit", false);
localStorage.setItem("stageId", props.chooseStageId); localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive); localStorage.setItem("chapterId", props.isactive);
state.inputV1="" state.inputV1 = "";
state.selectedRowKeys=[] state.selectedRowKeys = [];
}; };
const afterVisibleChange = (bol) => { const afterVisibleChange = (bol) => {
if ( bol == true ) { if (bol == true) {
getAllCaseText() getAllCaseText();
} }
}; };
const tableDataFunc = () => { const tableDataFunc = () => {
@@ -185,9 +190,9 @@ export default {
]; ];
return columns; return columns;
}; };
const onSelectChange = (selectedRowKeys,selectedRows)=> { const onSelectChange = (selectedRowKeys, selectedRows) => {
if(selectedRowKeys.length>2){ if (selectedRowKeys.length > 2) {
return return;
} }
state.selectedRowKeys = selectedRowKeys; state.selectedRowKeys = selectedRowKeys;
state.apiTaskList = selectedRows; state.apiTaskList = selectedRows;
@@ -203,13 +208,13 @@ export default {
data.map((value, index) => { data.map((value, index) => {
let obj = { let obj = {
key: index, key: index,
authorId:value.authorId, authorId: value.authorId,
authorName:value.authorName, authorName: value.authorName,
companyId:value.companyId, companyId: value.companyId,
coverUrl:value.coverUrl, coverUrl: value.coverUrl,
id:value.id, id: value.id,
casesId:value.casesId, casesId: value.casesId,
title:value.title, title: value.title,
}; };
array.push(obj); array.push(obj);
}); });
@@ -219,24 +224,23 @@ export default {
const getAllCaseText = () => { const getAllCaseText = () => {
api api
.queryCasesDetailList({ .queryCasesDetailList({
"keyWord": state.inputV1, keyWord: state.inputV1,
"orderAsc": true, orderAsc: true,
"orderField": "", orderField: "",
"pageIndex": 0, pageIndex: 0,
"pageSize": 0, pageSize: 0,
"top": true top: true,
}) })
.then((res) => { .then((res) => {
if (res.status === 200) { if (res.status === 200) {
getTableDate(res.data.data); getTableDate(res.data.data);
} }
}) })
.catch(() => { .catch(() => {});
});
}; };
const updateTask = () => { const updateTask = () => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
for(let i = 0;i < state.apiTaskList.length;i++){ for (let i = 0; i < state.apiTaskList.length; i++) {
RouterEditTask({ RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: state.apiTaskList[i].casesId, courseId: state.apiTaskList[i].casesId,
@@ -256,51 +260,54 @@ export default {
}); });
} }
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
for(let i = 0;i < state.apiTaskList.length;i++){ for (let i = 0; i < state.apiTaskList.length; i++) {
apiTask apiTask
.addTask({ .addTask({
"courseId": state.apiTaskList[i].casesId, courseId: state.apiTaskList[i].casesId,
"duration": 0, duration: 0,
"flag": true, flag: true,
"name": state.apiTaskList[i].title, name: state.apiTaskList[i].title,
"projectId": props.projectId, projectId: props.projectId,
"projectTaskId": props.projectTaskId, projectTaskId: props.projectTaskId,
"stageId": Number(props.chooseStageId), stageId: Number(props.chooseStageId),
"type": 3, type: 3,
}) })
.then(() => { .then(() => {
message.destroy() message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.destroy() message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} }
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
for(let i = 0;i < state.apiTaskList.length;i++){ for (let i = 0; i < state.apiTaskList.length; i++) {
console.log(state.apiTaskList[i],'state.apiTaskList[i].caseIdstate.apiTaskList[i].caseId'); console.log(
state.apiTaskList[i],
"state.apiTaskList[i].caseIdstate.apiTaskList[i].caseId"
);
apiTask apiTask
.addTask({ .addTask({
"courseId": state.apiTaskList[i].caseid, courseId: state.apiTaskList[i].caseid,
"duration": 0, duration: 0,
"flag": true, flag: true,
"name": state.apiTaskList[i].caseName, name: state.apiTaskList[i].caseName,
"projectId": props.projectId, projectId: props.projectId,
"projectTemplateId": props.projectTemplateId, projectTemplateId: props.projectTemplateId,
"stageId": props.chooseStageId, stageId: props.chooseStageId,
"type": 3, type: 3,
}) })
.then(() => { .then(() => {
message.destroy() message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.destroy() message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} }
@@ -308,7 +315,9 @@ export default {
}; };
//重置案例信息 //重置案例信息
const resetCase = () => { const resetCase = () => {
state.inputV1 = ""; state.inputV1 = ""
state.selectedRowKeys=[]
state.currentPage = 1
getAllCaseText(); getAllCaseText();
}; };
return { return {
@@ -449,7 +458,7 @@ export default {
.ant-table-selection-column { .ant-table-selection-column {
padding: 0px !important; padding: 0px !important;
padding-left: 15px !important; padding-left: 15px !important;
.ant-table-selection{ .ant-table-selection {
display: none; display: none;
} }
} }
@@ -468,8 +477,6 @@ export default {
.pa { .pa {
left: 0; left: 0;
width: 100%; width: 100%;
// height: 20px;
// background-color: red;
display: flex; display: flex;
justify-content: center; justify-content: center;
position: absolute; position: absolute;

View File

@@ -76,6 +76,7 @@ import * as api from "../../api/indexDiscuss";
import * as apiTask from "../../api/indexTaskadd"; import * as apiTask from "../../api/indexTaskadd";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
name: "AddDiscuss", name: "AddDiscuss",
props: { props: {
@@ -165,8 +166,7 @@ export default {
state.checkedC1 = state.checkedC1 =
res.data.data.discussSettings == "true" ? true : false; res.data.data.discussSettings == "true" ? true : false;
}) })
.catch(() => { .catch(() => {});
});
} }
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
@@ -191,7 +191,8 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
}); });
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
apiTask.addTask({ apiTask
.addTask({
courseId: res.data.data.discussId, courseId: res.data.data.discussId,
duration: res.data.data.discussExplain, duration: res.data.data.discussExplain,
name: res.data.data.discussName, name: res.data.data.discussName,
@@ -199,16 +200,29 @@ export default {
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 8, type: 8,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
apiTask.addTask({ console.log("");
addTempTask({
courseId: res.data.data.discussId, courseId: res.data.data.discussId,
duration: res.data.data.discussExplain, duration: res.data.data.discussExplain,
name: res.data.data.discussName, name: res.data.data.discussName,
projectId: props.projectId, projectId: props.projectId,
projectTaskTemplateId: props.projectTaskTemplateId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 8, type: 8,
})
.then(() => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
}); });
} }
}; };
@@ -232,8 +246,7 @@ export default {
closeDrawer(); closeDrawer();
ctx.emit("changeData", false); ctx.emit("changeData", false);
}) })
.catch(() => { .catch(() => {});
});
} else { } else {
api api
.createDiscuss(obj) .createDiscuss(obj)
@@ -242,8 +255,7 @@ export default {
closeDrawer(); closeDrawer();
ctx.emit("changeData", false); ctx.emit("changeData", false);
}) })
.catch(() => { .catch(() => {});
});
} }
}; };
return { return {

View File

@@ -54,7 +54,7 @@
<span style="margin-left: 10px"> <span style="margin-left: 10px">
<a-tag <a-tag
class="tag-style" class="tag-style"
v-if="evaluationTypeName != ''" v-if="evaluationTypeName !== ''"
:closable="true" :closable="true"
@close="delTag" @close="delTag"
>{{ evaluationTypeName }}</a-tag >{{ evaluationTypeName }}</a-tag
@@ -97,6 +97,7 @@
</div> </div>
<EvList <EvList
v-model:EvalListVisible="EvalListVisible" v-model:EvalListVisible="EvalListVisible"
v-model:evaluationTypeName="evaluationTypeName"
@getEvListData="checkFinish" @getEvListData="checkFinish"
/> />
<!-- <div class="aeLoading" :style="{display:addLoading?'flex':'none'}"> <!-- <div class="aeLoading" :style="{display:addLoading?'flex':'none'}">
@@ -113,7 +114,7 @@ import * as apitaskadd from "../../api/indexTaskadd";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs"; import dayjs from "dayjs";
// const router = useRouter(); import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
name: "AddEval", name: "AddEval",
components: { components: {
@@ -165,40 +166,40 @@ export default {
time: undefined, time: undefined,
EvalId: null, EvalId: null,
//子传回来的参数 //子传回来的参数
evaluationTypeId: 0, evaluationTypeId: null,
evaluationTypeName: "", evaluationTypeName: '',
description: "", description: "",
EvalListVisible: false, EvalListVisible: false,
// addLoading:false, // addLoading:false,
}); });
const checkFinish = (value)=> { const checkFinish = (value)=> {
state.evaluationTypeId = value.quiz_kid state.evaluationTypeId = value.quiz_kid ? value.quiz_kid : null
state.evaluationTypeName = value.title state.evaluationTypeName = value.title ? value.title : ""
} }
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addevalVisible", false); ctx.emit("update:addevalVisible", false);
ctx.emit("update:edit", false); ctx.emit("update:edit", false);
state.inputV1 = ""; state.inputV1 = "";
state.time= undefined; state.time = undefined;
state.description=""; state.description = "";
state.evaluationTypeId= 0, state.evaluationTypeId = 0,
state.evaluationTypeName= "", state.evaluationTypeName = "",
localStorage.setItem("stageId", props.chooseStageId); localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive); localStorage.setItem("chapterId", props.isactive);
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
if (props.edit && bool) { if (props.edit && bool) {
queryInvistById() queryInvistById();
} }
}; };
const showEvalDrawer = () => { const showEvalDrawer = () => {
state.EvalListVisible = true; state.EvalListVisible = true;
}; };
//删除标签要清除子组件传过来的参数 //删除标签要清除子组件传过来的参数
const delTag = ()=> { const delTag = () => {
state.evaluationTypeId= 0 state.evaluationTypeId = 0;
state.evaluationTypeName= "" state.evaluationTypeName = "";
} };
//向关卡或阶段渲染 //向关卡或阶段渲染
const updateTask = (value) => { const updateTask = (value) => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
@@ -210,10 +211,12 @@ export default {
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
type: 10, type: 10,
}) })
.then(( ) => { .then(() => {
message.success(`${props.EditTestId ? "编辑" : "新增"}关卡任务成功`); message.success(
`${props.EditTestId ? "编辑" : "新增"}关卡任务成功`
);
}) })
.catch(( ) => { .catch(() => {
message.error(`${props.EditTestId ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.EditTestId ? "编辑" : "新增"}关卡任务失败`);
}); });
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
@@ -228,39 +231,39 @@ export default {
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 10, type: 10,
}) })
.then(( ) => { .then(() => {
message.destroy() message.destroy()
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
}) })
.catch(( ) => { .catch(() => {
message.destroy() message.destroy()
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
apitaskadd console.log("");
.addTask({ addTempTask({
duration:0, duration: 0,
flag:true, flag: true,
courseId: Number(value.evaluationId), courseId: Number(value.evaluationId),
name: value.evaluationName, name: value.evaluationName,
projectTemplateId: props.projectTemplateId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 10, type: 10,
}) })
.then(( ) => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
}) })
.catch(( ) => { .catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} }
}; };
//根据id获取测评信息 //根据id获取测评信息
const queryInvistById = ()=> { const queryInvistById = () => {
let objqi = { let objqi = {
evaluationId : props.EditEvalId evaluationId: props.EditEvalId,
} };
api api
.queryEvaluationDetailById(objqi) .queryEvaluationDetailById(objqi)
.then((res) => { .then((res) => {
@@ -269,10 +272,11 @@ export default {
state.inputV1 = res.data.data.evaluationName state.inputV1 = res.data.data.evaluationName
state.evaluationTypeName = res.data.data.evaluationTypeName state.evaluationTypeName = res.data.data.evaluationTypeName
state.evaluationTypeId = res.data.data.evaluationTypeId; state.evaluationTypeId = res.data.data.evaluationTypeId;
state.time = [ state.time = res.data.data.evaluationStartTime ? [
dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"), dayjs(res.data.data.evaluationStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD"), dayjs(res.data.data.evaluationEndTime, "YYYY-MM-DD"),
]; ] : undefined ;
state.description = res.data.data.evaluationExplain
}) })
.catch((err) => { .catch((err) => {
message.destroy() message.destroy()
@@ -298,16 +302,16 @@ export default {
} }
let objei = { let objei = {
evaluationName: state.inputV1, evaluationName: state.inputV1,
evaluationEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"), evaluationEndTime: state.time ? dayjs(state.time[1]).format("YYYY-MM-DD") : "",
evaluationId: props.edit ? Number(props.EditEvalId) : 0, evaluationId: props.edit ? Number(props.EditEvalId) : 0,
evaluationStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"), evaluationStartTime: state.time ? dayjs(state.time[0]).format("YYYY-MM-DD") : "",
evaluationTypeId: state.evaluationTypeId, evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName, evaluationTypeName: state.evaluationTypeName,
evaluationFlag: "", evaluationFlag: state.description,
evaluationPictureAddress: "", evaluationPictureAddress: "",
evaluationTag: "", evaluationTag: "",
updateTime: "", updateTime: "",
} };
api api
.updateEvaluation(objei) .updateEvaluation(objei)
.then((res) => { .then((res) => {
@@ -315,8 +319,7 @@ export default {
closeDrawer(); closeDrawer();
ctx.emit("changeData", false); ctx.emit("changeData", false);
}) })
.catch((err) => { .catch(() => {
console.log(err,'errrrrrrrrrrrrrrrrrrrrr');
}); });
} }
//创建测评信息 //创建测评信息
@@ -331,11 +334,12 @@ export default {
} }
let obj = { let obj = {
evaluationName: state.inputV1, evaluationName: state.inputV1,
evaluationEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"), evaluationEndTime: state.time ? dayjs(state.time[1]).format("YYYY-MM-DD") : "",
evaluationId: props.evaluationId , evaluationId: props.evaluationId ,
evaluationStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"), evaluationStartTime: state.time ? dayjs(state.time[0]).format("YYYY-MM-DD") : "",
evaluationTypeId: state.evaluationTypeId, evaluationTypeId: state.evaluationTypeId,
evaluationTypeName: state.evaluationTypeName, evaluationTypeName: state.evaluationTypeName,
evaluationExplain:state.description,
evaluationFlag: "", evaluationFlag: "",
evaluationPictureAddress: "", evaluationPictureAddress: "",
evaluationTag: "", evaluationTag: "",

View File

@@ -100,11 +100,19 @@
<span style="margin-right: 3px">授课教师</span> <span style="margin-right: 3px">授课教师</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input <a-auto-complete
v-model:value="inputV2" v-model:value="memberValue"
style="width: 384px; height: 32px" show-search
placeholder="请输入授课教师" :not-found-content="fetching ? undefined : null"
/> placeholder="Select a teacher"
style="width: 364px"
:options="options"
@focus="handleFocus"
@blur="handleBlur"
@change="handleChange2"
@popupScroll="templateScroll"
@search="handleSearch"
></a-auto-complete>
</div> </div>
</div> </div>
<div class="main_item"> <div class="main_item">
@@ -374,18 +382,21 @@
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs, ref } from "vue";
import SelFacet from "../../components/drawers/SelFacet.vue"; import SelFacet from "../../components/drawers/SelFacet.vue";
import AddHomework from "../../components/drawers/AddHomework.vue"; import AddHomework from "../../components/drawers/AddHomework.vue";
import AddTest from "../../components/drawers/AddTest.vue"; import AddTest from "../../components/drawers/AddTest.vue";
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask"; import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
// import * as method from "../../api/method" // import * as method from "../../api/method"
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { getMemberInfo } from "@/api/index1";
import { debounce } from "lodash-es";
import { queryFaceDetailById, editPlan } from "../../api/indexFace"; import { queryFaceDetailById, editPlan } from "../../api/indexFace";
import dayjs from "dayjs"; import dayjs from "dayjs";
import AssessmentList from "../drawers/ AssessmentList.vue"; import AssessmentList from "../drawers/ AssessmentList.vue";
// import { toDate } from "../../api/method"; // import { toDate } from "../../api/method";
import { queryWorkDetailById } from "../../api/indexWork"; import { queryWorkDetailById } from "../../api/indexWork";
import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
name: "AddFaceteach", name: "AddFaceteach",
components: { components: {
@@ -442,17 +453,25 @@ export default {
}, },
}, },
setup(props, ctx) { setup(props, ctx) {
const options = ref([]);
const state = reactive({ const state = reactive({
selfacetvisible: false, selfacetvisible: false,
addhomeworkvisible: false, addhomeworkvisible: false,
addtestvisible: false, addtestvisible: false,
memberValue: null,
fetching: false,
totalPages: 0,
currentPage: 1,
tableDataTotal: 100,
memberId: 0,
pageSize: 10,
inputV1: "", inputV1: "",
inputV2: "", inputV2: "",
inputV3: "", inputV3: "",
inputV4: "", inputV4: null,
inputV5: "", inputV5: null,
inputV6: "", inputV6: null,
inputV7: "", inputV7: null,
testV1: "", testV1: "",
radioV1: "", radioV1: "",
radioV2: "", radioV2: "",
@@ -598,19 +617,21 @@ export default {
} else { } else {
let obj = { let obj = {
address: state.inputV4, address: state.inputV4,
afterStart: state.inputV6,
applyFlag: 1, applyFlag: 1,
attach: JSON.stringify(state.fileList), attach: JSON.stringify(state.fileList),
beforeEnd: state.inputV7, afterStart: state.inputV6 || 0,
beforeStart: state.inputV5, beforeEnd: state.inputV7 || 0,
// beginTime: dayjs(state.chooseTime[0]).format("YYYY-MM-DD"), beforeStart: state.inputV5 || 0,
// beginTime: dayjs(state.chooseTime[0]).format("YYYY-MM-DD hh-mm-ss"),
beginTime: parseInt( beginTime: parseInt(
new Date(state.chooseTime[0].$d).getTime() / 1000 new Date(state.chooseTime[0].$d).getTime() / 1000
), ),
// beginTime: "",
completeType: state.radioV1 == "1" ? 2 : 1, completeType: state.radioV1 == "1" ? 2 : 1,
description: state.textV1, description: state.textV1,
// endTime: dayjs(state.chooseTime[1]).format("YYYY-MM-DD"), // endTime: dayjs(state.chooseTime[1]).format("YYYY-MM-DD hh-mm-ss"),
endTime: parseInt(new Date(state.chooseTime[0].$d).getTime() / 1000), endTime: parseInt(new Date(state.chooseTime[1].$d).getTime() / 1000),
// endTime: "",
evalFlag: state.checkedAssessment == true ? 1 : 0, evalFlag: state.checkedAssessment == true ? 1 : 0,
evaluateId: evaluateId:
state.chooseMent == null ? 0 : state.chooseMent.assessmentId, state.chooseMent == null ? 0 : state.chooseMent.assessmentId,
@@ -622,9 +643,9 @@ export default {
projectMember: state.radioV2 == "1" ? 1 : 0, projectMember: state.radioV2 == "1" ? 1 : 0,
signFlag: 0, signFlag: 0,
signWordFlag: 0, signWordFlag: 0,
teacherId: 0, teacherId: state.memberId,
testId: 0, testId: 0,
teacher: state.inputV2, // teacher: state.inputV2,
}; };
if (props.edit) { if (props.edit) {
@@ -699,17 +720,15 @@ export default {
message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
let editObj = { addTempTask({
courseId: res.data.data.offcoursePlanId, courseId: res.data.data.offcoursePlanId,
duration: 0, duration: 0,
name: res.data.data.name, name: res.data.data.name,
projectTemplateId: props.projecTempaltetId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 2, type: 2,
}; })
// 新增编辑或新增项目
ProjectEditTask(editObj)
.then(() => { .then(() => {
message.success( message.success(
`${props.EditFaceId ? "编辑" : "新增"}阶段任务成功` `${props.EditFaceId ? "编辑" : "新增"}阶段任务成功`
@@ -751,6 +770,66 @@ export default {
state.chooseMent = value; state.chooseMent = value;
state.chooseMentName = value.name; state.chooseMentName = value.name;
}; };
// 员工滚动
const templateScroll = (e) => {
console.log("滚动", e);
const { target } = e;
const scrllHeight = target.scrollHeight - target.scrollTop;
const clientHeight = target.clientHeight;
// console.log("scrllHeight", scrllHeight, clientHeight);
if (scrllHeight === 0 && clientHeight === 0) {
state.currentPage = 1;
} else if (scrllHeight - clientHeight == 0) {
// 下拉到底部时
if (state.currentPage < state.totalPages) {
// 如果滑到底部,则加载下一页
state.currentPage++;
// queryMember();
}
}
};
// 获取员工
const queryMember = () => {
if (!state.memberValue) return;
let obj = {
keyWord: state.memberValue,
id: 0,
org: 0,
pageNo: state.currentPage,
pageSize: state.pageSize,
};
getMemberInfo(obj)
.then((res) => {
let data = res.data.data.rows;
state.totalPages = res.data.data.total;
for (let i in data) {
options.value.push({
value: data[i].id,
label: data[i].realName,
});
}
})
.catch((err) => {
message.error("获取员工失败" + err);
});
};
const handleSearch = debounce((memberValue) => {
console.log("fetching user", memberValue);
options.value = [];
state.fetching = true;
state.currentPage = 1;
state.memberValue = memberValue;
queryMember();
state.fetching = false;
}, 300);
const handleChange2 = (value, label) => {
console.log(`selected ${value}`);
state.memberId = value;
state.inputV2 = label;
};
const handleFocus = () => {
queryMember();
};
return { return {
...toRefs(state), ...toRefs(state),
showDrawerSelFacet, showDrawerSelFacet,
@@ -771,6 +850,11 @@ export default {
showAssessment, showAssessment,
faceAssess, faceAssess,
// change, // change,
options,
handleFocus,
handleSearch,
handleChange2,
templateScroll,
}; };
}, },
}; };

View File

@@ -116,6 +116,7 @@ import {
} from "@/api/indexWork"; } from "@/api/indexWork";
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask"; import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
name: "AddHomework", name: "AddHomework",
@@ -362,15 +363,15 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
let editObj = { console.log("");
addTempTask({
courseId: res.data.data.workId, courseId: res.data.data.workId,
name: res.data.data.workName, name: res.data.data.workName,
projectId: props.edit ? props.projectId : 0, projectId: props.edit ? props.projectId : 0,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 4, type: 4,
}; })
ProjectEditTask(editObj)
.then(() => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);

View File

@@ -106,6 +106,7 @@ import { message } from "ant-design-vue";
import AssessmentList from "./ AssessmentList.vue"; import AssessmentList from "./ AssessmentList.vue";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
import * as api from "../../api/indexInvist"; import * as api from "../../api/indexInvist";
import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
name: "AddInvist", name: "AddInvist",
components: { components: {
@@ -247,8 +248,8 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
apiTask console.log("");
.addTask({ addTempTask({
courseId: state.assessment.assessmentId, courseId: state.assessment.assessmentId,
name: state.assessment.name, name: state.assessment.name,
projectId: props.projectId, projectId: props.projectId,

View File

@@ -107,31 +107,35 @@
<span style="margin-right: 3px">授课老师</span> <span style="margin-right: 3px">授课老师</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-select <a-auto-complete
v-model:value="value" v-model:value="memberValue"
show-search show-search
:not-found-content="fetching ? undefined : null"
placeholder="Select a teacher" placeholder="Select a teacher"
style="width: 364px" style="width: 364px"
:options="options" :options="options"
:filter-option="filterOption"
@focus="handleFocus" @focus="handleFocus"
@blur="handleBlur"
@change="handleChange2" @change="handleChange2"
></a-select> @popupScroll="templateScroll"
@search="handleSearch"
></a-auto-complete>
</div> </div>
</div> </div>
<div class="main_item2"> <div class="main_item2">
<div class="signbox"> <div class="signbox">
<span style="margin-right: 3px">直播封面</span> <span style="margin-right: 3px">直播封面</span>
</div> </div>
<div class="textarea" style="overflow: hidden"> <div
class="textarea"
style="overflow: hidden; width: 102px; height: 102px"
>
<a-upload <a-upload
v-model:file-list="fileList" v-model:file-list="fileList"
name="avatar" name="avatar"
list-type="picture-card" list-type="picture-card"
class="avatar-uploader" class="avatar-uploader"
:show-upload-list="false" :show-upload-list="false"
action="/api/file/upload" action="/manageApi/file/upload"
:before-upload="beforeUpload" :before-upload="beforeUpload"
@change="handleChange" @change="handleChange"
> >
@@ -320,7 +324,10 @@ import * as api from "../../api/indexLiveBroadcast";
import * as apiTask from "../../api/indexTaskadd"; import * as apiTask from "../../api/indexTaskadd";
import { toDate } from "@/api/method"; import { toDate } from "@/api/method";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
import { addTempTask } from "../../api/indexTaskadd";
import { getMemberInfo } from "@/api/index1";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { debounce } from "lodash-es";
// import { useRouter } from "vue-router"; // import { useRouter } from "vue-router";
function getBase64(img, callback) { function getBase64(img, callback) {
const reader = new FileReader(); const reader = new FileReader();
@@ -328,7 +335,6 @@ function getBase64(img, callback) {
reader.readAsDataURL(img); reader.readAsDataURL(img);
} }
export default { export default {
name: "AddLive", name: "AddLive",
props: { props: {
@@ -379,10 +385,14 @@ export default {
}, },
setup(props, ctx) { setup(props, ctx) {
// const router = useRouter(); // const router = useRouter();
const options = ref([]);
const state = reactive({ const state = reactive({
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
pageSize: 10, pageSize: 10,
fetching: false,
totalPages: 0,
memberValue: null, // 授课老师关键词
inputV1: "", //*直播名称 inputV1: "", //*直播名称
time: "", //*直播时间 time: "", //*直播时间
inputV2: "", //*直播时长 inputV2: "", //*直播时长
@@ -471,6 +481,7 @@ export default {
state.radioV1 = res.data.data.standardSettings; state.radioV1 = res.data.data.standardSettings;
//state.= res.data.data //state.= res.data.data
state.assessmentId = res.data.data.assessmentId; state.assessmentId = res.data.data.assessmentId;
state.imageUrl = res.data.data.liveCover;
}) })
.catch(() => { .catch(() => {
message.error(`查询失败`); message.error(`查询失败`);
@@ -486,6 +497,7 @@ export default {
const handleChange = (info) => { const handleChange = (info) => {
if (info.file.status === "uploading") { if (info.file.status === "uploading") {
state.loading = true; state.loading = true;
console.log("info", info);
return; return;
} }
@@ -494,6 +506,7 @@ export default {
getBase64(info.file.originFileObj, (base64Url) => { getBase64(info.file.originFileObj, (base64Url) => {
state.imageUrl = base64Url; state.imageUrl = base64Url;
state.loading = false; state.loading = false;
console.log("imgURL", state.imageUrl);
}); });
} }
@@ -557,12 +570,12 @@ export default {
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
apiTask console.log("");
.addTask({ addTempTask({
courseId: res.data.data.liveId, courseId: res.data.data.liveId,
duration: res.data.data.duration, duration: res.data.data.duration,
name: res.data.data.liveName, name: res.data.data.liveName,
projectTemplateId: props.projectTemplateId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 6, type: 6,
@@ -609,7 +622,7 @@ export default {
afterSignIn: state.inputV6, afterSignIn: state.inputV6,
beforeSignIn: state.inputV7, beforeSignIn: state.inputV7,
assessmentId: state.assessmentId == null ? 0 : state.assessmentId, assessmentId: state.assessmentId == null ? 0 : state.assessmentId,
// liveCover: state.fileList,//直播封面 liveCover: state.imageUrl, //直播封面
liveDuration: state.inputV2, liveDuration: state.inputV2,
liveEndTime: endTime, liveEndTime: endTime,
liveStartTime: startTime, liveStartTime: startTime,
@@ -633,8 +646,7 @@ export default {
updateTask(res); updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {});
});
} else { } else {
api api
.createLiveBroadcast(state.obj) .createLiveBroadcast(state.obj)
@@ -643,20 +655,67 @@ export default {
updateTask(res); updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {});
});
} }
}; };
const templateScroll = (e) => {
console.log("滚动", e);
const { target } = e;
const scrllHeight = target.scrollHeight - target.scrollTop;
const clientHeight = target.clientHeight;
// console.log("scrllHeight", scrllHeight, clientHeight);
if (scrllHeight === 0 && clientHeight === 0) {
state.currentPage = 1;
} else if (scrllHeight - clientHeight == 0) {
// 下拉到底部时
if (state.currentPage < state.totalPages) {
// 如果滑到底部,则加载下一页
state.currentPage++;
// queryMember();
}
}
};
// 获取员工
const queryMember = () => {
if (!state.memberValue) return;
let obj = {
keyWord: state.memberValue,
id: 0,
org: 0,
pageNo: state.currentPage,
pageSize: state.pageSize,
};
getMemberInfo(obj)
.then((res) => {
let data = res.data.data.rows;
state.totalPages = res.data.data.total;
for (let i in data) {
options.value.push({
value: data[i].id,
label: data[i].realName,
});
}
})
.catch((err) => {
message.error("获取员工失败" + err);
});
};
const handleSearch = debounce((memberValue) => {
console.log("fetching user", memberValue);
options.value = [];
state.fetching = true;
state.currentPage = 1;
state.memberValue = memberValue;
queryMember();
state.fetching = false;
}, 300);
const options = ref([]);
const handleChange2 = (value) => { const handleChange2 = (value) => {
console.log(`selected ${value}`); console.log(`selected ${value}`);
}; state.inputV3 = value;
const handleBlur = () => {
console.log("blur");
}; };
const handleFocus = () => { const handleFocus = () => {
console.log("focus"); queryMember();
}; };
const checkRadio = () => { const checkRadio = () => {
if (state.checkedC1) { if (state.checkedC1) {
@@ -665,9 +724,6 @@ export default {
state.discussSettings = "false"; state.discussSettings = "false";
} }
}; };
const filterOption = (input, option) => {
return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0;
};
const handleChangeAssessment = (option) => { const handleChangeAssessment = (option) => {
state.assessmentId = option.assessmentId; state.assessmentId = option.assessmentId;
}; };
@@ -679,13 +735,14 @@ export default {
handleChange, handleChange,
beforeUpload, beforeUpload,
updateLiveBroadcast, updateLiveBroadcast,
filterOption,
handleBlur,
handleFocus, handleFocus,
handleChange2, handleChange2,
options, options,
checkRadio, checkRadio,
handleChangeAssessment, handleChangeAssessment,
queryMember,
templateScroll,
handleSearch,
}; };
}, },
}; };

View File

@@ -59,7 +59,9 @@
<div class="mntc_left"> <div class="mntc_left">
<div class="notice_icon"></div> <div class="notice_icon"></div>
<span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px" <span style="color: rgba(0, 0, 0, 0.65); margin-right: 17px"
>已选择 <span style="color: #388be1">{{ selectedRowKeys.length }}</span> </span >已选择
<span style="color: #388be1">{{ selectedRowKeys.length }}</span>
</span
> >
<span style="color: rgba(0, 0, 0, 0.65)" <span style="color: rgba(0, 0, 0, 0.65)"
>列表选项总计<span>{{ tableDataTotal }}</span> </span >列表选项总计<span>{{ tableDataTotal }}</span> </span
@@ -76,9 +78,9 @@
(_record, index) => (index % 2 === 1 ? 'table-striped' : null) (_record, index) => (index % 2 === 1 ? 'table-striped' : null)
" "
:row-selection="{ :row-selection="{
selectedRowKeys:selectedRowKeys, selectedRowKeys: selectedRowKeys,
onChange:onSelectChange, onChange: onSelectChange,
onSelect:onSelected, onSelect: onSelected,
}" }"
:columns="tableDataFunc()" :columns="tableDataFunc()"
:data-source="tableData" :data-source="tableData"
@@ -113,6 +115,7 @@ import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
import dayjs from "dayjs"; import dayjs from "dayjs";
import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
name: "AddOnline", name: "AddOnline",
props: { props: {
@@ -172,7 +175,7 @@ export default {
time: undefined, time: undefined,
assessmentId: null, assessmentId: null,
assessmentName: "", assessmentName: "",
selectedRowKeys:[], selectedRowKeys: [],
tableData: [], tableData: [],
currentPage: 1, currentPage: 1,
tableDataTotal: 0, tableDataTotal: 0,
@@ -238,15 +241,15 @@ export default {
const onSelected = (record) => { const onSelected = (record) => {
state.assessmentId = record.assessmentId; state.assessmentId = record.assessmentId;
state.assessmentName = record.name; state.assessmentName = record.name;
} };
const onSelectChange = (selectedRowKeys,b) => { const onSelectChange = (selectedRowKeys, b) => {
state.selectedRowKeys = selectedRowKeys state.selectedRowKeys = selectedRowKeys;
console.log(b); console.log(b);
} };
//清空所选 //清空所选
const clearLine = ()=> { const clearLine = () => {
state.selectedRowKeys=[] state.selectedRowKeys = [];
} };
const handelChangePage = (page, pageSize) => { const handelChangePage = (page, pageSize) => {
state.currentPage = page; state.currentPage = page;
state.pageSize = pageSize; state.pageSize = pageSize;
@@ -257,7 +260,7 @@ export default {
let array = []; let array = [];
data.map((value, index) => { data.map((value, index) => {
let obj = { let obj = {
key: index+1, key: index + 1,
assessmentId: value.assessmentId, assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length, num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-", name: value.assessmentName ? value.assessmentName : "-",
@@ -283,8 +286,7 @@ export default {
state.tableDataTotal = Number(res.data.data.total); state.tableDataTotal = Number(res.data.data.total);
} }
}) })
.catch(() => { .catch(() => {});
});
}; };
const updateTask = () => { const updateTask = () => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
@@ -297,14 +299,14 @@ export default {
type: 1, type: 1,
}) })
.then(() => { .then(() => {
message.destroy() message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`); message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
state.addLoading = false; state.addLoading = false;
}) })
.catch(() => { .catch(() => {
message.destroy() message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
}); });
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
@@ -318,33 +320,32 @@ export default {
type: 1, type: 1,
}) })
.then(() => { .then(() => {
message.destroy() message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.destroy() message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
apiTask addTempTask({
.addTask({
courseId: state.assessmentId, courseId: state.assessmentId,
name: state.assessmentName, name: state.assessmentName,
projectTemplateId: props.projectTemplateId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 1, type: 1,
}) })
.then(() => { .then(() => {
message.destroy() message.destroy();
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
.catch(() => { .catch(() => {
message.destroy() message.destroy();
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} }

View File

@@ -470,6 +470,7 @@ export default {
}) })
.then(() => { .then(() => {
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`); message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
closeDrawer();
}) })
.catch(() => { .catch(() => {
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);

View File

@@ -92,6 +92,7 @@ import * as api from "../../api/indexExternalChain";
import * as apiTask from "../../api/indexTaskadd"; import * as apiTask from "../../api/indexTaskadd";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask"; import { RouterEditTask } from "@/api/indexTask";
import { addTempTask } from "../../api/indexTaskadd";
export default { export default {
name: "AddRef", name: "AddRef",
props: { props: {
@@ -159,7 +160,6 @@ export default {
}; };
const afterVisibleChange = () => { const afterVisibleChange = () => {
if (props.edit) { if (props.edit) {
queryRef(); queryRef();
} }
@@ -202,7 +202,9 @@ export default {
type: 7, type: 7,
}) })
.then(() => { .then(() => {
message.success(`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`); message.success(
`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`
);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
@@ -210,17 +212,19 @@ export default {
message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
apiTask console.log("");
.addTask({ addTempTask({
courseId: res.data.data.linkId, courseId: res.data.data.linkId,
name: res.data.data.linkName, name: res.data.data.linkName,
projectTempalteId: props.projectTemplateId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 7, type: 7,
}) })
.then(() => { .then(() => {
message.success(`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`); message.success(
`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`
);
ctx.emit("changeData", false); ctx.emit("changeData", false);
closeDrawer(); closeDrawer();
}) })
@@ -254,9 +258,7 @@ export default {
message.success("编辑成功"); message.success("编辑成功");
updateTask(res); updateTask(res);
}) })
.catch(() => { .catch(() => {});
});
} else { } else {
api api
.createExternalChain(obj) .createExternalChain(obj)
@@ -264,9 +266,7 @@ export default {
message.success("提交成功"); message.success("提交成功");
updateTask(res); updateTask(res);
}) })
.catch(() => { .catch(() => {});
});
} }
}; };
// 查询任务 // 查询任务

View File

@@ -313,7 +313,7 @@
<a-spin :spinning="addLoading" tip="添加中..." /> <a-spin :spinning="addLoading" tip="添加中..." />
</div> </div>
<!-- 选择考试抽屉 --> <!-- 选择考试抽屉 -->
<s-test v-model:STvisible="STvisible" @getSTData="getData"/> <s-test v-model:STvisible="STvisible" @getSTData="getData" />
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
@@ -324,9 +324,9 @@ import {
queryExaminationDetailById, queryExaminationDetailById,
updateExamination, updateExamination,
} from "@/api/indexExam"; } from "@/api/indexExam";
import STest from "./SelectTest.vue" import STest from "./SelectTest.vue";
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask"; import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
import { addTempTask } from "../../api/indexTaskadd";
import dayjs from "dayjs"; import dayjs from "dayjs";
export default { export default {
@@ -411,9 +411,9 @@ export default {
const state = reactive({ const state = reactive({
addLoading: false, addLoading: false,
isOuter: 1, // 是否为外部考试 isOuter: 1, // 是否为外部考试
STvisible:false, //选择试卷抽屉 STvisible: false, //选择试卷抽屉
paperId:null, //试卷id 子组件传过来给考试抽屉创建考试信息需要 paperId: null, //试卷id 子组件传过来给考试抽屉创建考试信息需要
paperName:"", //试卷名称 子组件传过来给考试抽屉选择试卷后框框用 paperName: "", //试卷名称 子组件传过来给考试抽屉选择试卷后框框用
choosedTestList: [ choosedTestList: [
{ {
value: "提高核心竞争力", value: "提高核心竞争力",
@@ -593,9 +593,9 @@ export default {
} }
}; };
const selectTest = ()=> { const selectTest = () => {
state.STvisible = true state.STvisible = true;
} };
const queryTest = () => { const queryTest = () => {
state.addLoading = true; state.addLoading = true;
@@ -717,7 +717,8 @@ export default {
message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`); message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
let editObj = { console.log("");
addTempTask({
courseId: res.data.data.examinationId, courseId: res.data.data.examinationId,
duration: 0, duration: 0,
name: res.data.data.examinationName, name: res.data.data.examinationName,
@@ -725,9 +726,7 @@ export default {
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 5, type: 5,
}; })
// 新增编辑或新增项目
ProjectEditTask(editObj)
.then(() => { .then(() => {
message.success( message.success(
`${props.EditTestId ? "编辑" : "新增"}阶段任务成功` `${props.EditTestId ? "编辑" : "新增"}阶段任务成功`
@@ -776,10 +775,10 @@ export default {
); );
state.choosedTestList = tags; state.choosedTestList = tags;
}; };
const getData = (value)=> { const getData = (value) => {
state.paperId = value.paperId; state.paperId = value.paperId;
state.paperName = value.testName; state.paperName = value.testName;
} };
return { return {
formState, formState,
afterVisibleChange, afterVisibleChange,

View File

@@ -0,0 +1,354 @@
<!-- 评估列表 -->
<template>
<a-drawer
:visible="assessmentVisible"
class="drawerStyle addinvistDrawer"
width="70%"
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_left">
<div class="main_item">
<div class="fi_input">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 40px"
placeholder="请输入评估名称"
maxlength="20"
/>
</div>
<div class="btns" @click="getAllInvistText">
<div class="search"></div>
<div class="btnText">搜索</div>
</div>
<div class="btnsn" @click="resetInvist">
<div class="search"></div>
<div class="btnText">重置</div>
</div>
</div>
<div class="main_item2">
<a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tableData"
:loading="tableDataTotal === -1 ? true : false"
expandRowByClick="true"
@expand="expandTable"
:pagination="false"
:row-selection="rowSelection"
filterMultiple:false
/>
<div class="pa">
<a-pagination
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="handelChangePage"
/>
</div>
</div>
</div>
</div>
</div>
</a-drawer>
</template>
<script>
import { reactive, toRefs } from "vue";
import * as api from "../../api/indexInvist.js";
import dayjs from "dayjs";
export default {
name: "AssessmentList",
// components: {
// },
props: {
assessmentVisible: {
type: Boolean,
default: false,
},
isface: {
type: Number,
default: null,
},
},
setup(props, ctx) {
const state = reactive({
assessmentVisible: false,
assessment: null,
inputV1: "",
currentPage: 1,
pageSize: 10,
tableDataTotal: 0,
tableData: [],
selectedRowKeys: [],
});
const closeDrawer = () => {
ctx.emit("update:assessmentVisible", false);
};
const afterVisibleChange = (bool) => {
console.log("state getAllInvistText", bool);
if (props.assessmentVisible) {
getAllInvistText();
}
};
const tableDataFunc = () => {
const columns = [
{
title: "名称",
dataIndex: "name",
// width: "30%",
key: "name",
width: "150px",
align: "left",
className: "classify",
},
{
title: "题数",
dataIndex: "num",
key: "num",
width: "80px",
align: "center",
},
{
title: "创建人",
dataIndex: "creator",
key: "creator",
width: "150px",
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: "200px",
align: "center",
},
];
return columns;
};
const rowSelection = {
type: "radio",
onSelect: (selectedRows) => {
state.assessment = selectedRows;
console.log("selectedRows=======", state.assessment);
if (props.isface == 1) {
ctx.emit("faceAssess", state.assessment);
} else {
ctx.emit("checkedAss", state.assessment);
}
state.selectedRowKeys = [];
closeDrawer();
},
};
// const onSelectChange = (selectedRowKeys) => {
// if(selectedRowKeys.length>2){return}
// state.selectedRowKeys = selectedRowKeys;
// };
const handelChangePage = (page, pageSize) => {
state.currentPage = page;
state.pageSize = pageSize;
getAllInvistText();
};
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
let obj = {
key: index,
assessmentId: value.assessmentId,
num: value.essayQuestionVoList.length,
name: value.assessmentName ? value.assessmentName : "-",
creator: value.createUser ? value.createUser : "-",
time: dayjs(value.createTime).format("YYYY-MM-DD"),
};
array.push(obj);
});
(state.selectedRowKeys = []), (state.tableData = array);
};
//获取全部评估信息接口
const getAllInvistText = () => {
api
.queryAssessmentDetailList({
assessmentName: state.inputV1,
pageNo: state.currentPage,
pageSize: state.pageSize,
})
.then((res) => {
let arr = res.data.data.rows;
if (res.status === 200) {
// console.log("获取全部评估信息", res.data.data);
getTableDate(arr);
state.tableDataTotal = Number(res.data.data.total);
}
})
.catch((err) => {
console.log("获取全部评估信息接口失败", err);
// state.createLoading = false;
});
};
//重置评估信息
const resetInvist = () => {
state.inputV1 = "";
getAllInvistText();
};
return {
...toRefs(state),
afterVisibleChange,
closeDrawer,
tableDataFunc,
rowSelection,
getAllInvistText,
resetInvist,
handelChangePage,
};
},
};
</script>
<style lang="scss">
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addinvistDrawer {
.drawerMain {
.header {
height: 73px;
border-bottom: 1px solid #e8e8e8;
display: flex;
justify-content: space-between;
align-items: center;
.headerTitle {
font-size: 18px;
font-weight: 600;
color: #333333;
line-height: 25px;
margin-left: 24px;
}
}
.contentMain {
display: flex;
justify-content: space-between;
.main_left {
padding-right: 30px;
margin-top: 32px;
.main_item {
display: flex;
align-items: center;
margin-bottom: 32px;
.fi_input {
margin-right: 20px;
}
.btns {
margin-right: 20px;
padding: 0px 26px 0px 26px;
height: 38px;
background: #409eff;
border-radius: 8px;
//border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 15px;
height: 17px;
background-image: url("../../assets/images/courseManage/search0.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #ffffff;
line-height: 36px;
margin-left: 5px;
}
}
.btnsn {
padding: 0px 26px 0px 26px;
height: 38px;
background: #ffffff;
border-radius: 8px;
border: 1px solid rgba(64, 158, 255, 1);
display: flex;
align-items: center;
justify-content: center;
margin-right: 14px;
flex-shrink: 0;
cursor: pointer;
.search {
width: 16px;
height: 18px;
background-image: url("../../assets/images/courseManage/reset1.png");
background-size: 100% 100%;
}
.btnText {
font-size: 14px;
font-weight: 400;
color: #409eff;
line-height: 36px;
margin-left: 5px;
}
}
}
.main_item2 {
.pa {
width: 100%;
margin: 15px auto;
display: flex;
justify-content: center;
}
}
}
}
.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

@@ -72,6 +72,8 @@
<script> <script>
import { toRefs,reactive } from '@vue/reactivity'; import { toRefs,reactive } from '@vue/reactivity';
import { message } from 'ant-design-vue';
import {queryUserAnswerDetail} from '@/api/indexExam';
export default { export default {
name:"CheckWork", name:"CheckWork",
props:{ props:{
@@ -164,6 +166,14 @@ export default {
} }
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log(bool); console.log(bool);
if(bool == true) {getQue()}
}
const getQue = () => {
queryUserAnswerDetail(1).then(res => {
console.log(res)
}).catch(err =>{
message.error('用户答卷信息获取失败'+err)
})
} }
return{ return{
...toRefs(state), ...toRefs(state),

View File

@@ -23,7 +23,7 @@
<div class="ipt_name">测评信息</div> <div class="ipt_name">测评信息</div>
<div class="fi_input"> <div class="fi_input">
<a-input <a-input
v-model:value="value1" v-model:value="inputV1"
style="width: 240px; height: 40px; border-radius: 8px" style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称" placeholder="请输入项目名称"
/> />
@@ -31,7 +31,7 @@
</div> </div>
</div> </div>
<div class="mi_btns"> <div class="mi_btns">
<div class="btn btn1"> <div class="btn btn1" @click="searchList">
<div class="search"></div> <div class="search"></div>
<div class="btnText">搜索</div> <div class="btnText">搜索</div>
</div> </div>
@@ -52,13 +52,13 @@
/> />
<div class="pa"> <div class="pa">
<a-pagination <a-pagination
v-if="total > 10" v-if="tableDataTotal > 10"
showSizeChanger="true" showSizeChanger="true"
showQuickJumper="true" showQuickJumper="true"
hideOnSinglePage="true" hideOnSinglePage="true"
:pageSize="pageSize" :pageSize="pageSize"
:current="currentPage" :current="currentPage"
:total="total" :total="tableDataTotal"
class="pagination" class="pagination"
@change="changePagination" @change="changePagination"
/> />
@@ -73,7 +73,7 @@
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import { reactive, toRefs } from "vue";
import * as api from "../../api/indexEval"; import * as api from "../../api/indexEval";
export default { export default {
name: "EvList", name: "EvList",
@@ -96,7 +96,8 @@
currentPage: 1, currentPage: 1,
tableDataTotal: 0, tableDataTotal: 0,
pageSize: 10, pageSize: 10,
vlue1:"", inputV1:"",
searching:false,
evaluationTypeId:null, evaluationTypeId:null,
evaluationTypeName:"", evaluationTypeName:"",
tableData: [], tableData: [],
@@ -111,7 +112,7 @@
align: "center", align: "center",
}, },
{ {
title: "title", title: "课程名称",
width: "20%", width: "20%",
dataIndex: "title", dataIndex: "title",
key: "title", key: "title",
@@ -123,6 +124,10 @@
dataIndex: "theme_desc", dataIndex: "theme_desc",
key: "content", key: "content",
align: "center", align: "center",
maxWidth: "13%",
overflow: 'hidden',
whiteSpace: 'nowrap',
textOverflow: 'ellipsis',
}, },
{ {
title: "状态", title: "状态",
@@ -152,10 +157,14 @@
return return
} }
state.selectedRowKeys = selectedRowKeys state.selectedRowKeys = selectedRowKeys
state.evListData = selectedRows[0] ? selectedRows[0] : [] state.evListData = selectedRows[0] ? selectedRows[0] : {}
} }
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:EvalListVisible", false); ctx.emit("update:EvalListVisible", false);
state.selectedRowKeys = []
state.evListData = {}
state.inputV1 = ""
state.searching = false
}; };
const afterVisibleChange = (bol) => { const afterVisibleChange = (bol) => {
if ( bol == true ) { if ( bol == true ) {
@@ -169,12 +178,53 @@
const changePagination = (page) => { const changePagination = (page) => {
state.currentPage = page; state.currentPage = page;
}; };
//如果编辑情况会通过父亲传回来evaluationTypeId遍历出相同的那个选项 再将那个选项的key值赋给state.selectRowKeys
const getTableDataList = (tableData) => { const getTableDataList = (tableData) => {
let data = tableData; let data = tableData;
let array = []; let array = [];
data.map((value) => { let arrayKey = [];
if(props.evaluationTypeName != ""){
data.map((value,index) => {
let obj = { let obj = {
key:index+1,
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,
quiz_range:value.quiz_range,
};
array.push(obj)
if(obj.title == props.evaluationTypeName){
arrayKey.push(obj.key);
}
});
state.tableData = array;
state.selectedRowKeys = arrayKey;
}else if (state.searching){
data.map((value,index) => {
let obj = {
key:index+1,
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,
quiz_range:value.quiz_range,
};
if(state.inputV1 == obj.title)
{
array.push(obj);
}
});
state.tableData = array;
}
else{
data.map((value,index) => {
let obj = {
key:index+1,
status:value.status, status:value.status,
quiz_code:value.quiz_code, quiz_code:value.quiz_code,
quiz_kid:value.quiz_kid, quiz_kid:value.quiz_kid,
@@ -186,13 +236,14 @@
array.push(obj); array.push(obj);
}); });
state.tableData = array; state.tableData = array;
}
}; };
//获取测评列表 //获取测评列表
const getAllEvalText = ()=> { const getAllEvalText = ()=> {
let objael = { let objael = {
"keyword": "", "keyword": "",
"user_id": 0, "user_id": "965341999643234304",
} }
api api
.choiceEvaluation(objael) .choiceEvaluation(objael)
@@ -202,13 +253,21 @@
.catch(()=>{ .catch(()=>{
}) })
} }
//搜索测评列表
const searchList = ()=> {
if(state.inputV1 !== ''){
state.searching = true
getAllEvalText()
}else {
state.searching = false
resetData()
}
}
//重置测评列表 //重置测评列表
const resetData = ()=> { const resetData = ()=> {
state.currentPage = 1; state.currentPage = 1;
state.tableData = [];
state.selectedRowKeys = []; state.selectedRowKeys = [];
state.evaluationTypeId = null; state.evListData = {}
state.evaluationTypeName = "";
getAllEvalText(); getAllEvalText();
} }
return { return {
@@ -219,6 +278,7 @@
getTableDataList, getTableDataList,
checkFinish, checkFinish,
changePagination, changePagination,
searchList,
resetData, resetData,
}; };
}, },
@@ -384,8 +444,6 @@
.pa { .pa {
left: 0; left: 0;
width: 100%; width: 100%;
// height: 20px;
// background-color: red;
display: flex; display: flex;
justify-content: center; justify-content: center;
position: absolute; position: absolute;

View File

@@ -58,7 +58,7 @@
<div class="btnss" style="margin-top: 20px"> <div class="btnss" style="margin-top: 20px">
<div class="btn btn1" style="margin-right: 20px" @click="godie"> <div class="btn btn1" style="margin-right: 20px" @click="godie">
<div class="img1"></div> <div class="img1"></div>
<div class="wz">催促学习</div> <div class="wz">催促{{title}}</div>
</div> </div>
<div class="btn btn2" @click="allStuOver"> <div class="btn btn2" @click="allStuOver">
<div class="wz">批量标注完成</div> <div class="wz">批量标注完成</div>
@@ -342,11 +342,14 @@ export default {
); );
} }
}); });
// state.tabledata = arr;
}; };
ListOpera(); ListOpera();
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Fvisible", false); ctx.emit("update:Fvisible", false);
state.name = ""
state.projectName = ""
state.selectedRowKeys = []
state.currentPage = 1
}; };
const afterVisibleChange = (bol) => { const afterVisibleChange = (bol) => {
if ( bol == true ) { if ( bol == true ) {
@@ -373,9 +376,9 @@ export default {
//催促学员学习 //催促学员学习
const godie = () => { const godie = () => {
message.destroy() message.destroy()
message.success("催促学员成功") message.success("催促"+props.title+"成功")
}; };
//清空所选 //表头清空
const clearLine = ()=> { const clearLine = ()=> {
state.selectedRowKeys=[] state.selectedRowKeys=[]
} }
@@ -455,10 +458,11 @@ export default {
//重置任务列表 //重置任务列表
const resetTaskList = () => { const resetTaskList = () => {
state.name = ""; state.name = ""
state.projectName = ""; state.projectName = ""
state.tabledata = []; state.selectedRowKeys = []
//getManageList(); state.currentPage = 1
getManageList();
}; };

View File

@@ -166,42 +166,15 @@ export default {
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
classTableData: [ classTableData: [
{ // {
key: "1", // key: "1",
num: "JDF2022071100001", // num: "JDF2022071100001",
name: "时间管理课程", // name: "时间管理课程",
content: "通用力", // content: "通用力",
teacher: "BOE教师", // teacher: "BOE教师",
creator: "管理员", // creator: "管理员",
time: "2022-10-31 23:12:00", // time: "2022-10-31 23:12:00",
}, // }
{
key: "2",
num: "JDF2022071100001",
name: "时间管理课程",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "3",
num: "JDF2022071100001",
name: "时间管理课程",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "4",
num: "JDF2022071100001",
name: "时间管理课程",
content: "通用力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
], ],
currentPage: 1, currentPage: 1,
tableDataTotal: null, tableDataTotal: null,
@@ -233,10 +206,10 @@ export default {
const getClassList = (obj) => { const getClassList = (obj) => {
let objn = obj || { let objn = obj || {
auditStatus: 0, auditStatus: 0,
beginTime: 0, // beginTime: 0,
categoryId: 0, categoryId: 0,
createName: "", createName: "",
endTime: 0, // endTime: 0,
name: "", name: "",
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: 10, pageSize: 10,
@@ -263,10 +236,10 @@ export default {
let obj = { let obj = {
key: value.offcourseId, key: value.offcourseId,
num: value.offcourseId, num: value.offcourseId,
name: value.name, name: value.name || "-",
teacher: value.teacher, teacher: value.teacher || "-",
creator: value.teacher, creator: value.createName || "-",
time: toDate(value.publishTime / 1000, "Y-M-D"), time: toDate(value.publishTime / 1000, "Y-M-D h:m"),
categoryId: value.categoryId, categoryId: value.categoryId,
//需要判断content //需要判断content
}; };
@@ -290,11 +263,11 @@ export default {
const search = () => { const search = () => {
let obj = { let obj = {
auditStatus: 0, auditStatus: 0,
beginTime: 0, // beginTime: 0,
categoryId: 0, //分类 categoryId: 0, //分类
createName: "", createName: "",
endTime: 0, // endTime: 0,
name: "", name: state.valueClass,
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: 10, pageSize: 10,
projectName: "", projectName: "",

View File

@@ -39,7 +39,7 @@
<div <div
class="btn btn1" class="btn btn1"
style="margin-right: 20px" style="margin-right: 20px"
@click="searchTaskList" @click="getManageList"
> >
<div class="img1"></div> <div class="img1"></div>
<div class="wz">搜索</div> <div class="wz">搜索</div>
@@ -112,7 +112,7 @@
<script> <script>
import { toRefs, reactive } from "vue"; import { toRefs, reactive } from "vue";
import * as api from "../../api/indexTest"; import * as api from "../../api/indexExam";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { iframeUrl } from "../../api/method"; import { iframeUrl } from "../../api/method";
export default { export default {
@@ -131,7 +131,7 @@ export default {
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
tableDataTotal: 0, tableDataTotal: 50,
projectName: "", projectName: "",
tableData: [], tableData: [],
selectedRowKeys: [], selectedRowKeys: [],
@@ -205,7 +205,9 @@ export default {
}; };
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); state.pageNo = pageNumber;
state.currentPage = pageNumber;
getManageList();
}; };
const onSelectChange = (selectedRowKeys, selectedRows) => { const onSelectChange = (selectedRowKeys, selectedRows) => {
@@ -237,21 +239,16 @@ export default {
}); });
state.tableData = array; state.tableData = array;
}; };
//获取任务管理列表 //获取选择考试列表
const getManageList = () => { const getManageList = () => {
let obj = { let obj = {
// "keyWord": "", "keyWord": state.inputPname,
// "pageIndex": 0, "pageIndex": state.pageSize,
// "pageSize": 0, "pageSize": state.pageSize,
// "published": true, "published": true
keyWord: "",
orderAsc: true,
orderFiled: "",
pageIndex: 0,
pageSize: 0,
}; };
api api
.queryExaminationPaper(obj) .queryExaminationList(obj)
.then((res) => { .then((res) => {
getTableDate(res.data.data); getTableDate(res.data.data);
message.success("获取选择考试列表成功"); message.success("获取选择考试列表成功");
@@ -262,35 +259,6 @@ export default {
}); });
}; };
//搜索任务列表 没接口
const searchTaskList = () => {
let objser = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
// projectTaskId: props.projectTaskId,
projectTaskId: 370,
status: -1,
};
if (state.name !== "" || state.projectName !== "") {
api
.taskStudentList(objser)
.then((res) => {
state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize;
let newArr = [];
for (let i = 0; i < res.data.data.rows.length; i++) {
if (res.data.data.rows[i].userInfoBo.userName == state.name)
newArr.push(res.data.data.rows[i].userInfoBo);
}
state.tabledata = newArr;
})
.catch(() => {});
}
};
//重置任务列表 //重置任务列表
const resetTaskList = () => { const resetTaskList = () => {
state.inputPname = ""; state.inputPname = "";
@@ -312,7 +280,6 @@ export default {
tableDataFunc, tableDataFunc,
onChange, onChange,
getManageList, getManageList,
searchTaskList,
resetTaskList, resetTaskList,
}; };
}, },

File diff suppressed because it is too large Load Diff

View File

@@ -64,7 +64,7 @@
style="margin-right: 20px; cursor: pointer" style="margin-right: 20px; cursor: pointer"
> >
<div class="img2"></div> <div class="img2"></div>
<div class="wz">催促考试</div> <div class="wz">催促{{title}}</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2">
<div class="img1"></div> <div class="img1"></div>
@@ -72,14 +72,6 @@
</div> </div>
</div> </div>
<div class="tab" style="margin-top: 20px; margin-bottom: 100px"> <div class="tab" style="margin-top: 20px; margin-bottom: 100px">
<!-- <a-table
style="border: 1px solid #f2f6fe"
:columns="tableDataFunc()"
:data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900 }"
:pagination="false"
/> -->
<div v-if="itemsType == 5"> <div v-if="itemsType == 5">
<a-table <a-table
style="border: 1px solid #f2f6fe" style="border: 1px solid #f2f6fe"
@@ -134,7 +126,7 @@
<script> <script>
import { toRefs, reactive } from "vue"; import { toRefs, reactive } from "vue";
import { message } from 'ant-design-vue'; import { message } from 'ant-design-vue';
import * as api from "../../api/index"; import * as api from "../../api/indexExam";
import CQue from './CheckQue.vue' import CQue from './CheckQue.vue'
export default { export default {
name: "TestManage", name: "TestManage",
@@ -163,7 +155,6 @@ export default {
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
name: null, name: null,
open: false,
CQvisible:false, //查看答卷抽屉 CQvisible:false, //查看答卷抽屉
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
@@ -395,6 +386,10 @@ export default {
} }
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:TMvisible", false); ctx.emit("update:TMvisible", false);
state.name = ""
state.currentPage = 1
state.projectName = ""
state.selectedRowKeys = []
}; };
const afterVisibleChange = (bol) => { const afterVisibleChange = (bol) => {
if ( bol == true ) { if ( bol == true ) {
@@ -408,7 +403,7 @@ export default {
//催促 //催促
const godie = () => { const godie = () => {
message.destroy() message.destroy()
message.success("催促考试成功") message.success("催促"+props.title+"成功")
}; };
//换页 //换页
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
@@ -439,15 +434,17 @@ export default {
//获取任务管理列表 //获取任务管理列表
const getManageList = () => { const getManageList = () => {
let obj = { let obj = {
// name: "", aid:0,
pageNo: state.pageNo, orderAsc:'',
pageSize: state.pageSize, orderField:'',
// projectId: 27, pageIndex:1,
projectTaskId: props.projectTaskId, pageSize:10,
status: 0, refId:'',
refType:'',
testId:''
}; };
api api
.taskStudentList(obj) .queryUserAnswerPageDetailList(obj)
.then((res) => { .then((res) => {
state.pageNo = res.data.data.pageNo; state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize; state.pageSize = res.data.data.pageSize;
@@ -460,41 +457,42 @@ export default {
}; };
//搜索任务列表 //搜索任务列表
const searchTaskList = () => { // const searchTaskList = () => {
let objser = { // let objser = {
// name: "", // // name: "",
pageNo: state.pageNo, // pageNo: state.pageNo,
pageSize: state.pageSize, // pageSize: state.pageSize,
// projectId: 27, // // projectId: 27,
projectTaskId: props.projectTaskId, // projectTaskId: props.projectTaskId,
status: 0, // status: 0,
}; // };
if (state.name !== "" || state.projectName !== "") { // if (state.name !== "" || state.projectName !== "") {
api // api
.taskStudentList(objser) // .taskStudentList(objser)
.then((res) => { // .then((res) => {
state.pageNo = res.data.data.pageNo; // state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize; // state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize; // state.pageSize = res.data.data.pageSize;
let newArr = []; // let newArr = [];
for (let i = 0; i < res.data.data.rows.length; i++) { // for (let i = 0; i < res.data.data.rows.length; i++) {
if (res.data.data.rows[i].userInfoBo.userName == state.name) // if (res.data.data.rows[i].userInfoBo.userName == state.name)
newArr.push(res.data.data.rows[i].userInfoBo); // newArr.push(res.data.data.rows[i].userInfoBo);
} // }
state.tabledata = newArr; // state.tabledata = newArr;
}) // })
.catch((err) => { // .catch((err) => {
console.log("搜索任务列表失败", err); // console.log("搜索任务列表失败", err);
}); // });
} // }
}; // };
//重置任务列表 //重置任务列表
const resetTaskList = () => { const resetTaskList = () => {
state.name = ""; state.name = ""
state.projectName = ""; state.currentPage = 1
state.tabledata = []; state.projectName = ""
// getManageList(); state.selectedRowKeys = []
getManageList();
}; };
return { return {
@@ -508,7 +506,7 @@ export default {
godie, godie,
onChange, onChange,
getManageList, getManageList,
searchTaskList, // searchTaskList,
resetTaskList, resetTaskList,
}; };
}, },
@@ -670,7 +668,7 @@ export default {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }
th,th.h { th.h {
background-color: #eff4fc !important; background-color: #eff4fc !important;
} }

View File

@@ -60,7 +60,7 @@
<div class="btnss" style="margin-top: 20px"> <div class="btnss" style="margin-top: 20px">
<div class="btn btn1" @click="godie" style="margin-right: 20px"> <div class="btn btn1" @click="godie" style="margin-right: 20px">
<div class="img1"></div> <div class="img1"></div>
<div class="wz">催促学习</div> <div class="wz">催促{{title}}</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2">
<div class="img2"></div> <div class="img2"></div>
@@ -135,7 +135,6 @@ export default {
visible: props.Tvisible, visible: props.Tvisible,
CVvisible:false, //查看投票抽屉 CVvisible:false, //查看投票抽屉
name: "", name: "",
open: false,
pageNo: 1, pageNo: 1,
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
@@ -344,6 +343,10 @@ export default {
ListOpera(); ListOpera();
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Tvisible", false); ctx.emit("update:Tvisible", false);
state.currentPage = 1
state.name = ""
state.projectName = ""
state.tabledata = []
}; };
const afterVisibleChange = (bol) => { const afterVisibleChange = (bol) => {
if ( bol == true ) { if ( bol == true ) {
@@ -356,11 +359,43 @@ export default {
//催促 //催促
const godie = () => { const godie = () => {
message.destroy() message.destroy()
message.success("催促学习成功") message.success("催促"+props.title+"成功")
}; };
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); console.log("Page: ", pageNumber);
}; };
//渲染到列表中
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
if(props.itemsType ==12 ){
let obj = {
key: index+1,
workNum:"",
userName:value.useInfoBo.userName,
deptName:value.useInfoBo.deptName,
jobName:value.useInfoBo.jobName,
time:"",
status:"",
operation:"",
};
array.push(obj);
}else{
let obj = {
key: index+1,
workNum:"",
userName:value.userName,
deptName:value.deptName,
jobName:value.jobName,
time:"",
status:"",
};
array.push(obj);
}
});
state.tabledata = array;
};
//获取任务管理列表 //获取任务管理列表
const getManageList = () => { const getManageList = () => {
let obj = { let obj = {
@@ -376,10 +411,10 @@ export default {
.then((res) => { .then((res) => {
state.pageNo = res.data.data.pageNo; state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize; state.pageSize = res.data.data.pageSize;
for (let i = 0; i < res.data.data.rows.length; i++) { // for (let i = 0; i < res.data.data.rows.length; i++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo); // state.tabledata.push(res.data.data.rows[i].userInfoBo);
} // }
ListOpera(); getTableDate(res.data.data.rows)
}) })
.catch((err) => { .catch((err) => {
console.log(err,'sss'); console.log(err,'sss');

View File

@@ -298,6 +298,9 @@ export default {
ListOpera(); ListOpera();
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Wvisible", false); ctx.emit("update:Wvisible", false);
state.name = ""
state.currentPage = 1
state.projectName = ""
}; };
const afterVisibleChange = (bol) => { const afterVisibleChange = (bol) => {
if ( bol == true ) { if ( bol == true ) {
@@ -319,7 +322,38 @@ export default {
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); console.log("Page: ", pageNumber);
}; };
//渲染到列表中
const getTableDate = (tableData) => {
let data = tableData;
let array = [];
data.map((value, index) => {
if(props.itemsType ==12 ){
let obj = {
key: index+1,
workNum:"",
userName:value.useInfoBo.userName,
deptName:value.useInfoBo.deptName,
jobName:value.useInfoBo.jobName,
time:"",
status:"",
operation:"",
};
array.push(obj);
}else{
let obj = {
key: index+1,
workNum:"",
userName:value.userName,
deptName:value.deptName,
jobName:value.jobName,
time:"",
status:"",
};
array.push(obj);
}
});
state.tabledata = array;
};
//获取任务管理列表 //获取任务管理列表
const getManageList = () => { const getManageList = () => {
let obj = { let obj = {
@@ -335,10 +369,10 @@ export default {
.then((res) => { .then((res) => {
state.pageNo = res.data.data.pageNo; state.pageNo = res.data.data.pageNo;
state.pageSize = res.data.data.pageSize; state.pageSize = res.data.data.pageSize;
state.pageSize = res.data.data.pageSize; // for (let i = 0; i < res.data.data.rows.length; i++) {
for (let i = 0; i < res.data.data.rows.length; i++) { // state.tabledata.push(res.data.data.rows[i].userInfoBo);
state.tabledata.push(res.data.data.rows[i].userInfoBo); // }
} getTableDate(res.data.data.rows)
}) })
.catch(() => { .catch(() => {
}); });
@@ -377,10 +411,10 @@ export default {
//重置任务列表 //重置任务列表
const resetTaskList = () => { const resetTaskList = () => {
state.name = ""; state.name = ""
state.projectName = ""; state.currentPage = 1
state.tabledata = []; state.projectName = ""
// getManageList(); getManageList();
}; };
return { return {

View File

@@ -26,20 +26,20 @@ export function traverseArr(arr, traverseObj, saveOld = false) {
return newArr; return newArr;
} }
// export function deepClone(obj) { export function deepClone(obj) {
// let result = typeof obj.splice === "function" ? [] : {}; let result = typeof obj.splice === "function" ? [] : {};
// if (obj && typeof obj === "object") { if (obj && typeof obj === "object") {
// for (let key in obj) { for (let key in obj) {
// if (obj[key] && typeof obj[key] === "object") { if (obj[key] && typeof obj[key] === "object") {
// result[key] = deepClone(obj[key]); result[key] = deepClone(obj[key]);
// } else { } else {
// result[key] = obj[key]; result[key] = obj[key];
// } }
// } }
// return result; return result;
// } }
// return obj; return obj;
// } }
export function deepCloneFilterString(obj, fillterKeys) { export function deepCloneFilterString(obj, fillterKeys) {
let result = typeof obj.splice === "function" ? [] : {}; let result = typeof obj.splice === "function" ? [] : {};
@@ -95,6 +95,14 @@ export function getdateToTime(date) {
return `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${hh}:${mm}`; return `${y}-${m < 10 ? "0" + m : m}-${d < 10 ? "0" + d : d} ${hh}:${mm}`;
} }
export function getdateToDate(date) {
let now = new Date(parseInt(date)),
y = now.getFullYear(),
m = now.getMonth() + 1,
d = now.getDate();
return `${y}${m < 10 ? "0" + m : m}${d < 10 ? "0" + d : d}`;
}
//计算两个时间之间的时间差 多少天时分秒 //计算两个时间之间的时间差 多少天时分秒
export function intervalTime(startTime) { export function intervalTime(startTime) {
const curTime = new Date().getTime(); //计算当前时间戳 const curTime = new Date().getTime(); //计算当前时间戳
@@ -117,3 +125,47 @@ export function intervalTime(startTime) {
seconds, seconds,
}; };
} }
// 分片处理
export function batchLoadList(
sourceData,
dataTotal,
splitNumber = 10,
callback,
complete
) {
if (sourceData.length <= splitNumber) {
typeof callback === "function" && callback(sourceData);
typeof callback === "function" && complete();
return;
}
let first = 0;
const intTime = parseInt(String(dataTotal / splitNumber));
const floatTime = sourceData.length % splitNumber;
const total = intTime + (floatTime > 0 ? 1 : 0);
for (let i = 0; i < total; i += 1) {
const end = first + splitNumber;
const splitArray = sourceData.slice(first, end);
setTimeout(() => {
typeof callback === "function" && callback(splitArray);
if (i === total - 1) {
// 分片处理完成
typeof callback === "function" && complete();
}
});
first = end;
}
}
export function newFile(code) {
const blob = new Blob([code], {
type: "application/vnd.ms-excel",
});
const linkNode = document.createElement("a");
linkNode.style.display = "none";
linkNode.href = URL.createObjectURL(blob); //生成一个Blob URL
document.body.appendChild(linkNode);
linkNode.click(); //模拟在按钮上的一次鼠标单击
URL.revokeObjectURL(linkNode.href); // 释放URL 对象
document.body.removeChild(linkNode);
}

File diff suppressed because it is too large Load Diff

View File

@@ -167,7 +167,7 @@ export default {
key: "opt", key: "opt",
align: "center", align: "center",
customRender: () => { customRender: () => {
return <div>审核日志</div>; return <div style="color:#387DF7">审核日志</div>;
}, },
}, },
], ],
@@ -198,7 +198,9 @@ export default {
console.log("获取已审核课程成功", res.data.data); console.log("获取已审核课程成功", res.data.data);
let result = res.data.data.rows; let result = res.data.data.rows;
state.total = res.data.data.total; state.total = res.data.data.total;
if (res.data.data.total > 0) {
setTableData(result); setTableData(result);
}
}) })
.catch((err) => { .catch((err) => {
console.log("获取已审核课程失败", err); console.log("获取已审核课程失败", err);
@@ -210,13 +212,22 @@ export default {
data.map((item) => { data.map((item) => {
let obj = { let obj = {
number: item.offcourseId, number: item.offcourseId,
name: item.name, name: item.name || "- ",
type: item.type == 1 ? "线上" : "线下", type: item.type == 1 ? "线上" : "线下",
content: item.categoryId, content: item.categoryId,
status: item.auditStatus == 2 ? "通过" : "拒绝", status:
item.auditStatus == 0
? "未提交"
: item.auditStatus == 1
? "提交待审核"
: item.auditStatus == 2
? "通过"
: item.auditStatus == -1
? "拒绝"
: "-",
creater: item.createName, creater: item.createName,
time: "-", time: "-",
msg: item.description, msg: item.description || "-",
}; };
array.push(obj); array.push(obj);
}); });

View File

@@ -500,7 +500,7 @@ export default {
return ( return (
<div> <div>
<span <span
style="cursor:pointer" style="cursor:pointer;color:#387DF7"
onClick={() => { onClick={() => {
showAudit( showAudit(
value.record.createId, value.record.createId,
@@ -512,7 +512,7 @@ export default {
审核 审核
</span> </span>
&nbsp; &nbsp;
<span style="cursor:pointer">预览</span> <span style="cursor:pointer;color:#387DF7">预览</span>
</div> </div>
); );
}, },
@@ -529,10 +529,10 @@ export default {
const getFaceList = (obj) => { const getFaceList = (obj) => {
let objn = obj || { let objn = obj || {
auditStatus: 1, auditStatus: 1,
beginTime: 0, // beginTime: 0,
categoryId: 0, categoryId: 0,
createName: "", createName: "",
endTime: 0, // endTime: 0,
name: "", name: "",
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: 10, pageSize: 10,
@@ -560,10 +560,19 @@ export default {
name: item.name, name: item.name,
type: item.type == 1 ? "线上" : "线下", type: item.type == 1 ? "线上" : "线下",
content: item.categoryId, content: item.categoryId,
status: "待审核", status:
item.status == 0
? "未提交"
: item.status == 1
? "待审核"
: item.status == 2
? "通过"
: item.status == -1
? "拒绝"
: "-",
change: "-", change: "-",
creater: item.createName, creater: item.createName,
time: toDate(item.createTime, "Y-M-D h-m"), time: toDate(item.createTime, "Y-M-D h:m"),
createrId: item.createId, createrId: item.createId,
offId: item.offcourseId, offId: item.offcourseId,
}; };
@@ -580,10 +589,11 @@ export default {
const search = () => { const search = () => {
let obj = { let obj = {
auditStatus: 1, auditStatus: 1,
beginTime: 0, // beginTime: 0,
categoryId: state.valueproj, // categoryId: state.valueproj,
categoryId: 0,
createName: state.valuecreater, createName: state.valuecreater,
endTime: 0, // endTime: 0,
name: state.valuename, name: state.valuename,
pageNo: state.currentPage, pageNo: state.currentPage,
pageSize: 10, pageSize: 10,

View File

@@ -242,7 +242,7 @@ export default {
onClick={() => { onClick={() => {
showProjAuditModal(value.record.id); showProjAuditModal(value.record.id);
}} }}
style="cursor:pointer" style="cursor:pointer;color:#387DF7"
> >
审核日志 审核日志
</span> </span>
@@ -330,11 +330,24 @@ export default {
// 需要加上 // 需要加上
// name: getName(item), // name: getName(item),
// belong: getBelong(item), // belong: getBelong(item),
manager: item.manager, manager: item.manager || "-",
status: item.status == 2 ? "通过" : "拒绝", status:
item.status == 0
? "草稿"
: item.status == 1
? "待审核"
: item.status == 2
? "通过"
: item.status == 3
? "发布"
: item.status == -1
? "已结束"
: item.status == -2
? "拒绝"
: "-",
creater: item.createName, creater: item.createName,
time: toDate(item.beginTime, "Y-M-D h-m"), time: toDate(item.beginTime, "Y-M-D h:m"),
msg: item.description, msg: item.description || "-",
id: item.projectId, id: item.projectId,
}; };
array.push(obj); array.push(obj);

View File

@@ -194,7 +194,7 @@ export default {
return ( return (
<div> <div>
<span <span
style="cursor:pointer" style="cursor:pointer;color:#387DF7"
onClick={() => { onClick={() => {
showProjAudit( showProjAudit(
value.record.projectId, value.record.projectId,
@@ -260,8 +260,21 @@ export default {
number: item.projectId, number: item.projectId,
name: getName(item), name: getName(item),
belong: getBelong(item), belong: getBelong(item),
manager: item.manager, manager: item.manager || "-",
status: "待审核", status:
item.status == 0
? "草稿"
: item.status == 1
? "待审核"
: item.status == 2
? "通过"
: item.status == 3
? "发布"
: item.status == -1
? "已结束"
: item.status == -2
? "拒绝"
: "-",
creater: item.createName, creater: item.createName,
time: toDate(item.createTime, "Y-M-D h-m"), time: toDate(item.createTime, "Y-M-D h-m"),
projectId: item.projectId, projectId: item.projectId,

View File

@@ -1348,7 +1348,7 @@ export default {
//在线抽屉 //在线抽屉
const showDrawerAddOnline = (id, eleId) => { const showDrawerAddOnline = (id, eleId) => {
state.addonlinevisible = true; state.addonlinevisible = true;
state.EditWorkId = id; state.EditOnlineId = id;
state.routerTaskId = eleId; state.routerTaskId = eleId;
}; };
//面授抽屉 //面授抽屉
@@ -1360,12 +1360,11 @@ export default {
//案例抽屉 //案例抽屉
const showDrawerAddCase = (id, eleId) => { const showDrawerAddCase = (id, eleId) => {
state.addcasevisible = true; state.addcasevisible = true;
state.EditWorkId = id; state.EditCaseId = id;
state.routerTaskId = eleId; state.routerTaskId = eleId;
}; };
// 作业抽屉 // 作业抽屉
const showDrawerAddHomework = (id, eleId) => { const showDrawerAddHomework = (id, eleId) => {
console.log("homework==============", id, state.isactive);
state.addhomeworkvisible = true; state.addhomeworkvisible = true;
state.EditWorkId = id; state.EditWorkId = id;
state.routerTaskId = eleId; state.routerTaskId = eleId;
@@ -1390,7 +1389,6 @@ export default {
}; };
//投票抽屉 //投票抽屉
const showDrawerAddVote = (id, eleId) => { const showDrawerAddVote = (id, eleId) => {
// state.addhomeworkvisible = true;
state.addvotevisible = true; state.addvotevisible = true;
state.EditVoteId = id; state.EditVoteId = id;
state.routerTaskId = eleId; state.routerTaskId = eleId;
@@ -1432,10 +1430,6 @@ export default {
if (state.level[i].chapterId === id) { if (state.level[i].chapterId === id) {
let array = []; let array = [];
state.chooseProjectList = JSON.stringify(state.level[i].taskList); state.chooseProjectList = JSON.stringify(state.level[i].taskList);
// console.log(
// "goggoo",
// Object.prototype.toString.call(state.chooseProjectList)
// );
state.level[i].taskList.forEach((element) => { state.level[i].taskList.forEach((element) => {
let obj = { let obj = {
id: element.routerTaskId, id: element.routerTaskId,
@@ -1465,7 +1459,6 @@ export default {
const getDetail = () => { const getDetail = () => {
GetRouterDetail(state.routerId) GetRouterDetail(state.routerId)
.then((res) => { .then((res) => {
console.log("res.data.data.chapterList", res.data.data.chapterList);
//给level赋初始值 //给level赋初始值
state.level = res.data.data.chapterList; state.level = res.data.data.chapterList;
state.styTitle = res.data.data.routerInfo.name; state.styTitle = res.data.data.routerInfo.name;
@@ -1526,7 +1519,6 @@ export default {
{ {
title: "姓名", title: "姓名",
dataIndex: "name", dataIndex: "name",
// width: "30%",
key: "name", key: "name",
width: 60, width: 60,
align: "left", align: "left",

View File

@@ -651,11 +651,9 @@ import { message } from "ant-design-vue";
import * as api from "@/api/indexTemplate" import * as api from "@/api/indexTemplate"
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import {scoreRule,setScoreRule} from "@/api/indexTaskadd" import {scoreRule,setScoreRule} from "@/api/indexTaskadd"
import { useStore } from "vuex";
export default defineComponent({ export default defineComponent({
name: "LibraryAdd", name: "LibraryAdd",
setup() { setup() {
const store = useStore();
const state = reactive({ const state = reactive({
//任务大纲列表 //任务大纲列表
taskSyllabus: [ taskSyllabus: [
@@ -817,6 +815,9 @@ export default defineComponent({
level: null, level: null,
systemId: null, systemId: null,
boeFlag: false, boeFlag: false,
status:null,
picUrl: null,
noticeFlag: null,
} }
}); });
const value = ref(""); const value = ref("");
@@ -880,12 +881,12 @@ export default defineComponent({
}); });
// 获取详情 // 获取详情
const getDetail = () => { const getDetail = () => {
api.templateDetail(store.state.projectTemplateId).then(res => { api.templateDetail(localStorage.getItem('projectTemplateId')).then(res => {
state.taskSyllabus = [] state.taskSyllabus = []
console.log(res); console.log(res);
state.projectInfo.name = res.data.data.projectTemplateInfo.name state.projectInfo.name = res.data.data.projectTemplateInfo.name
let time = new Date(Number(res.data.data.projectTemplateInfo.createTime)) state.projectInfo.beginTime = res.data.data.projectTemplateInfo.beginTime
state.projectInfo.beginTime = time.toLocaleDateString() state.projectInfo.endTime = res.data.data.projectTemplateInfo.endTime
state.projectInfo.manager = res.data.data.projectTemplateInfo.manager state.projectInfo.manager = res.data.data.projectTemplateInfo.manager
state.projectInfo.notice = res.data.data.projectTemplateInfo.notice state.projectInfo.notice = res.data.data.projectTemplateInfo.notice
state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId state.projectInfo.sourceBelongId = res.data.data.projectTemplateInfo.sourceBelongId
@@ -895,6 +896,9 @@ export default defineComponent({
state.projectInfo.level = res.data.data.projectTemplateInfo.level state.projectInfo.level = res.data.data.projectTemplateInfo.level
state.projectInfo.systemId = res.data.data.projectTemplateInfo.systemId state.projectInfo.systemId = res.data.data.projectTemplateInfo.systemId
state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag state.projectInfo.boeFlag = res.data.data.projectTemplateInfo.boeFlag
state.projectInfo.noticeFlag = res.data.data.projectTemplateInfo.noticeFlag
state.projectInfo.remark = res.data.data.projectTemplateInfo.remark
state.projectInfo.status = res.data.data.projectTemplateInfo.status
state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl state.projectInfo.picUrl = res.data.data.projectTemplateInfo.picUrl
let data = res.data.data.stageList; let data = res.data.data.stageList;
for(let i in data) { for(let i in data) {
@@ -922,9 +926,9 @@ export default defineComponent({
let obj = { let obj = {
"name": state.projectInfo.name, "name": state.projectInfo.name,
"category": state.projectInfo.category, "category": state.projectInfo.category,
"picUrl": "x", "picUrl": state.projectInfo.picUrl,
"beginTime": Number(state. projectInfo.beginTime) || 1, "beginTime": new Date(state.projectInfo.beginTime).getTime(),
"endTime": 1, "endTime": new Date(state.projectInfo.endTime).getTime(),
"manager": state.projectInfo.manager, "manager": state.projectInfo.manager,
"managerId": state.projectInfo.managerId || 0, "managerId": state.projectInfo.managerId || 0,
"sourceBelongId": state.projectInfo.sourceBelongId, "sourceBelongId": state.projectInfo.sourceBelongId,
@@ -934,7 +938,7 @@ export default defineComponent({
"courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0, "courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0,
"notice": state.projectInfo.notice, "notice": state.projectInfo.notice,
"noticeFlag": 0, "noticeFlag": 0,
"projectTemplateId": store.state.projectTemplateId, "projectTemplateId": localStorage.getItem('projectTemplateId'),
"remark": "", "remark": "",
"status": 0, "status": 0,
}; };
@@ -981,7 +985,7 @@ export default defineComponent({
const stateEdit = () => { const stateEdit = () => {
let obj={ let obj={
"name": "", "name": "",
"projectTemplateId": store.state.projectTemplateId, "projectTemplateId": localStorage.getItem('projectTemplateId'),
"remark": "", "remark": "",
"stageId": 0 "stageId": 0
} }
@@ -1001,7 +1005,7 @@ export default defineComponent({
"flag": true, "flag": true,
"name": "", "name": "",
"projectTaskId": 0, "projectTaskId": 0,
"projectTemplateId": store.state.projectTemplateId, "projectTemplateId": localStorage.getItem('projectTemplateId'),
"stageId": 0, "stageId": 0,
"type": 0 "type": 0
} }
@@ -1015,7 +1019,7 @@ export default defineComponent({
} }
const getScoreRule = () => { const getScoreRule = () => {
scoreRule({ scoreRule({
projectId: store.state.projectTemplateId, projectId: localStorage.getItem('projectTemplateId'),
}) })
.then((res) => { .then((res) => {
console.log("获取了项目积分规则", res.data.data); console.log("获取了项目积分规则", res.data.data);
@@ -1070,7 +1074,7 @@ export default defineComponent({
}, },
], ],
leaderScore: state.seven1, leaderScore: state.seven1,
projectId: store.state.projectTemplateId, projectId: localStorage.getItem('projectTemplateId'),
signScore: state.six1, signScore: state.six1,
topCompleteCourseItem: [ topCompleteCourseItem: [
{ {
@@ -1612,7 +1616,7 @@ export default defineComponent({
} }
.ntc_body { .ntc_body {
margin-left: 65px; margin-left: 35px;
margin-right: 34px; margin-right: 34px;
.ntc_switch { .ntc_switch {
display: flex; display: flex;

View File

@@ -10,19 +10,11 @@
@click="showCancel" @click="showCancel"
/> />
</div> </div>
<!-- @click="showModal" -->
<div class="btn btn3" @click="showModal()" style="margin-left: 19px"> <div class="btn btn3" @click="showModal()" style="margin-left: 19px">
<div class="search"></div> <div class="search"></div>
<div class="btnText">添加阶段</div> <div class="btnText">添加阶段</div>
</div> </div>
<div class="maincon" style="background-color: #fff"> <div class="maincon" style="background-color: #fff">
<!-- <div
class="items"
:class="{ active: isActive == true }"
@click="changebgc"
v-for="item in level"
:key="item.id"
> -->
<draggable <draggable
v-model="level" v-model="level"
@@ -691,12 +683,6 @@
</div> --> </div> -->
</div> </div>
</div> </div>
<!-- 编辑在线侧弹窗 -->
<div>
<edit-online v-model:editonlineVisible="editonlinevisible" />
</div>
<!-- 编辑在线侧弹窗 -->
</div> </div>
</div> </div>
</div> </div>
@@ -1034,7 +1020,6 @@
<script> <script>
import { reactive, toRefs, onMounted, onUnmounted, onUpdated } from "vue"; import { reactive, toRefs, onMounted, onUnmounted, onUpdated } from "vue";
import AddOnline from "../../components/drawers/AddOnline.vue"; import AddOnline from "../../components/drawers/AddOnline.vue";
import EditOnline from "../../components/drawers/EditOnline.vue";
import AddFaceteach from "../../components/drawers/AddFaceteach.vue"; import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
import AddCase from "../../components/drawers/AddCase.vue"; import AddCase from "../../components/drawers/AddCase.vue";
import AddHomework from "../../components/drawers/AddHomework.vue"; import AddHomework from "../../components/drawers/AddHomework.vue";
@@ -1055,50 +1040,11 @@ import { storage } from "../../api/storage";
import UnlockMode from "../../components/drawers/UnlockMode.vue"; import UnlockMode from "../../components/drawers/UnlockMode.vue";
// import * as api1 from "../../api/index1"; // import * as api1 from "../../api/index1";
const drawercolumns = [
{
title: "项目名称",
dataIndex: "projectName",
key: "projectName",
width: 200,
// align: "center",
ellipsis: true,
// scopedSlots: { customRender: "action" }, //引入的插槽
// customRender: (text, record) => {
// console.log(text, record);
// return <span>{text.text}</span>;
// },
},
{
title: "项目经理",
dataIndex: "manager",
key: "manager",
width: 100,
align: "center",
},
{
title: "创建人",
dataIndex: "creater",
// width: "30%",
key: "creater",
width: 100,
align: "center",
},
{
title: "创建时间",
dataIndex: "time",
key: "time",
width: 180,
align: "center",
},
];
export default { export default {
name: "TaskAdd", name: "TaskAdd",
components: { components: {
draggable, draggable,
AddOnline, AddOnline,
EditOnline,
AddFaceteach, AddFaceteach,
AddCase, AddCase,
AddHomework, AddHomework,
@@ -1136,45 +1082,11 @@ export default {
EditOnlineId: null, //要编辑的在线id EditOnlineId: null, //要编辑的在线id
EditFaceTeach: null, EditFaceTeach: null,
EditFaceId: null, EditFaceId: null,
EditEvalId: null, EditEvalId: null, //要编辑的测评id
EditInvistId: null, EditInvistId: null,
EditVoteId: null, //编辑需要投票的id EditVoteId: null, //编辑需要投票的id
ballotId: "", //编辑需要的题干id ballotId: "", //编辑需要的题干id
projectTaskId: null, // 要编辑的具体任务id projectTaskId: null, // 要编辑的具体任务id
projectNameList: [
{
id: 1,
value: "项目一",
label: "项目一",
},
{
id: 2,
value: "项目二",
label: "项目二",
},
{
id: 3,
value: "项目三",
label: "项目三",
},
{
id: 4,
value: "项目四",
label: "项目四",
},
],
projectNameList2: [
{
id: 1,
value: "删除任务",
label: "删除任务",
},
{
id: 2,
value: "移动任务到关卡",
label: "移动任务到关卡",
},
],
//阶段数据 //阶段数据
level: [], level: [],
@@ -1182,93 +1094,12 @@ export default {
picUrl: null, picUrl: null,
//任务数据 //任务数据
tableData: [], tableData: [],
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: "1-1-1",
projectName: "管理者进阶-腾飞班K1",
manager: "黄华 刘俊",
creater: "毛继禹",
time: "2022-07-20 14:00:03",
},
],
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
pageSize: 10, pageSize: 10,
addonlinevisible: false, addonlinevisible: false,
addfaceteachvisible: false, addfaceteachvisible: false,
addcasevisible: false, addcasevisible: false,
editonlinevisible: false,
addhomeworkvisible: false, addhomeworkvisible: false,
addtestvisible: false, addtestvisible: false,
addlivevisible: false, addlivevisible: false,
@@ -1488,7 +1319,6 @@ export default {
<div class="opacation"> <div class="opacation">
<span <span
onClick={() => { onClick={() => {
state.editonlinevisible = true;
console.log(text, "编辑text"); console.log(text, "编辑text");
}} }}
style="color:#4EA6FF;margin-right:25px;cursor:pointer" style="color:#4EA6FF;margin-right:25px;cursor:pointer"
@@ -1600,8 +1430,7 @@ export default {
api api
.deleteTask(obj) .deleteTask(obj)
.then((res) => { .then((res) => {
console.log(res, "gggggggggggggggg"); console.log(res);
// deleteVoteText();
}) })
.catch((err) => { .catch((err) => {
console.log(err); console.log(err);
@@ -1850,7 +1679,6 @@ export default {
state.projectTaskId = eleId; state.projectTaskId = eleId;
state.adddiscussvisible = true; state.adddiscussvisible = true;
}; };
const showDrawerAddActive = (id, eleId) => { const showDrawerAddActive = (id, eleId) => {
state.addactivevisible = true; state.addactivevisible = true;
state.EditActiveId = id; state.EditActiveId = id;
@@ -1859,8 +1687,7 @@ export default {
}; };
const showDrawerAddEval = (id, eleId) => { const showDrawerAddEval = (id, eleId) => {
state.addevalvisible = true; state.addevalvisible = true;
// state.EditEvalId = id; state.EditEvalId = id;
state.evaluationId = id;
state.projectTaskId = eleId; state.projectTaskId = eleId;
}; };
const showDrawerAddInvist = (id, eleId) => { const showDrawerAddInvist = (id, eleId) => {
@@ -1869,7 +1696,6 @@ export default {
state.projectTaskId = eleId; state.projectTaskId = eleId;
}; };
const showDrawerAddVote = (id, eleId) => { const showDrawerAddVote = (id, eleId) => {
state.addvotevisible = true; state.addvotevisible = true;
state.EditVoteId = id; state.EditVoteId = id;
state.projectTaskId = eleId; state.projectTaskId = eleId;
@@ -1985,13 +1811,6 @@ export default {
message.warning("修改失败"); message.warning("修改失败");
}); });
}; };
//打开测评的弹窗
const showEditEvalDrawer = (id, eleId) => {
state.addevalvisible = true;
state.projectTaskId = eleId;
state.EditEvalId = id;
};
//编辑的按钮 //编辑的按钮
const decideType = (type, id, eleId) => { const decideType = (type, id, eleId) => {
state.edit = true; state.edit = true;
@@ -2001,7 +1820,7 @@ export default {
} else if (type == "直播") { } else if (type == "直播") {
showDrawerAddLive(id, eleId); showDrawerAddLive(id, eleId);
} else if (type == "测评") { } else if (type == "测评") {
showEditEvalDrawer(id, eleId); showDrawerAddEval(id, eleId);
} else if (type == "评估") { } else if (type == "评估") {
showDrawerAddInvist(id, eleId); showDrawerAddInvist(id, eleId);
} else if (type == "投票") { } else if (type == "投票") {
@@ -2049,9 +1868,7 @@ export default {
tableDataFunc, tableDataFunc,
showModal, showModal,
closeModal, closeModal,
// showDrawer,
afterVisibleChange, afterVisibleChange,
drawercolumns,
onSelectChange, onSelectChange,
showDrawerOnline, showDrawerOnline,
showDrawerFaceteach, showDrawerFaceteach,
@@ -2063,7 +1880,6 @@ export default {
showDrawerAddDiscuss, showDrawerAddDiscuss,
showDrawerAddActive, showDrawerAddActive,
showDrawerAddEval, showDrawerAddEval,
showEditEvalDrawer,
showDrawerAddInvist, showDrawerAddInvist,
showDrawerAddVote, showDrawerAddVote,
showConfirm, showConfirm,
@@ -2104,12 +1920,6 @@ export default {
</script> </script>
<style lang="scss"> <style lang="scss">
// .ant-input {
// border-radius: 8px;
// // height: 120%;
// width: 384px;
// height: 88px;
// }
.ConfirmModal { .ConfirmModal {
.ant-modal { .ant-modal {
width: 424px !important; width: 424px !important;
@@ -2128,10 +1938,6 @@ export default {
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
border-radius: 4px; border-radius: 4px;
// position: absolute;
// left: 50%;
// top: 10%;
// transform: translate(-50%, -50%);
.del_header { .del_header {
position: absolute; position: absolute;
width: calc(100%); width: calc(100%);
@@ -2174,7 +1980,6 @@ export default {
justify-content: center; justify-content: center;
align-items: center; align-items: center;
flex-direction: column; flex-direction: column;
// background-color: red;
position: relative; position: relative;
.back { .back {
position: absolute; position: absolute;
@@ -2248,12 +2053,9 @@ export default {
.name { .name {
width: 78%; width: 78%;
// background-color: lightcoral;
display: flex; display: flex;
margin-top: 20px; margin-top: 20px;
align-items: center; align-items: center;
//height: 40px;
// border: 1px solid black;
.namebox { .namebox {
width: 120px; width: 120px;
display: flex; display: flex;
@@ -2287,7 +2089,6 @@ export default {
left: 50%; left: 50%;
top: 50%; top: 50%;
height: 50px; height: 50px;
//margin-left: -5px;
margin-top: -25px; margin-top: -25px;
border-left: 2px solid rgba(78, 166, 255, 1); border-left: 2px solid rgba(78, 166, 255, 1);
} }
@@ -2300,16 +2101,12 @@ export default {
.in { .in {
margin-left: 14px; margin-left: 14px;
flex: 1; flex: 1;
// .ant-radio-wrapper {
// }
.ant-input-affix-wrapper { .ant-input-affix-wrapper {
width: 384px; width: 384px;
border-radius: 8px; border-radius: 8px;
} }
.ant-input { .ant-input {
border-radius: 8px; border-radius: 8px;
// height: 120%;
//width: 384px;
height: 30px; height: 30px;
} }
} }
@@ -2327,7 +2124,6 @@ export default {
width: 549px !important; width: 549px !important;
height: 245px !important; height: 245px !important;
.con { .con {
// background-color: #bfa;
width: 100%; width: 100%;
height: 100%; height: 100%;
@@ -2416,133 +2212,20 @@ export default {
} }
} }
} }
// .info {
// width: 78%;
// // background-color: lightcoral;
// display: flex;
// margin-top: 30px;
// // align-items: center;
// // height: 40px;
// // border: 1px solid black;
// .inname {
// color: #6f6f6f;
// font-size: 14px;
// margin-left: 26px;
// margin-top: 15px;
// }
// .in {
// margin-left: 14px;
// width: 81%;
// position: relative;
// .ant-input {
// border-radius: 5px;
// // height: 120%;
// width: 100%;
// height: 130px;
// resize: none;
// }
// }
// }
// .drawerStyle {
// .ant-drawer-content-wrapper {
// // max-width: 1000px;
// .ant-drawer-header {
// display: none !important;
// }
// .ant-drawer-body {
// padding: 0;
// }
// }
// .drawerMain {
// min-width: 600px;
// margin: 0px 32px 0px 32px;
// overflow-x: auto;
// display: flex;
// flex-direction: column;
// .header {
// height: 73px;
// border-bottom: 1px solid #e8e8e8;
// display: flex;
// justify-content: space-between;
// align-items: center;
// // background-color: red;
// margin-bottom: 20px;
// .headerTitle {
// font-size: 18px;
// font-weight: 600;
// color: #333333;
// line-height: 25px;
// // margin-left: 24px;
// }
// }
// .drawerbox {
// margin: 20px 38px 30px;
// th {
// background-color: #eff4fc !important;
// }
// .ant-table-tbody
// > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
// > td {
// background: #f6f9fd;
// }
// }
// .btnn {
// height: 72px;
// width: 100%;
// position: absolute;
// 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;
// }
// }
// }
// }
.taskadd { .taskadd {
width: 100%; width: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
min-width: 933px; min-width: 933px;
// min-width: 1200px;
// overflow-x: hidden;
// min-width: 1400px;
// overflow: scroll;
background-color: rgba(245, 247, 250, 1); background-color: rgba(245, 247, 250, 1);
.left { .left {
margin-right: 20px; margin-right: 20px;
width: 208px; width: 208px;
// height: 100%;
// flex: 1;
// height: 100%;
background: #ffffff; background: #ffffff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
display: flex; display: flex;
justify-content: center; justify-content: center;
.leftmain { .leftmain {
// width: 86%;
margin-top: 20px; margin-top: 20px;
.tit { .tit {
margin-left: 20px; margin-left: 20px;
@@ -2550,17 +2233,14 @@ export default {
color: #363636; color: #363636;
} }
// flex-wrap: wrap;
.btn { .btn {
margin-top: 20px; margin-top: 20px;
// padding: 0px 26px 0px 26px;
height: 38px; height: 38px;
background: #fff6e8; background: #fff6e8;
border-radius: 8px; border-radius: 8px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
// margin-right: 14px;
flex-shrink: 0; flex-shrink: 0;
cursor: pointer; cursor: pointer;
.search { .search {
@@ -2570,7 +2250,6 @@ export default {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
color: #ffb64e; color: #ffb64e;
// line-height: 38px;
margin-top: 4px; margin-top: 4px;
margin-left: 5px; margin-left: 5px;
} }
@@ -2594,12 +2273,10 @@ export default {
align-items: center; align-items: center;
.ghost { .ghost {
// background-color: red;
opacity: 0 !important; opacity: 0 !important;
} }
.items { .items {
width: 171px; width: 171px;
// height: 83px;
background: rgba(255, 182, 78, 0.1); background: rgba(255, 182, 78, 0.1);
border: 1px solid #ffb64e; border: 1px solid #ffb64e;
opacity: 0.45; opacity: 0.45;
@@ -2647,9 +2324,6 @@ export default {
.items2 { .items2 {
.nname { .nname {
width: 140px; width: 140px;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
font-weight: bold; font-weight: bold;
overflow: hidden; overflow: hidden;
@@ -2662,21 +2336,16 @@ export default {
} }
.active { .active {
opacity: 1; opacity: 1;
// transition: all 0.5s;
} }
} }
} }
} }
.right { .right {
flex: 1; flex: 1;
// background-color: #fff;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
.addhead { .addhead {
width: 100%; width: 100%;
// min-width: 500px;
// height: 130px;
// flex: 1;
background-color: #fff; background-color: #fff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
display: flex; display: flex;
@@ -2692,7 +2361,6 @@ export default {
.le { .le {
display: flex; display: flex;
align-items: center; align-items: center;
// margin-bottom: 10px;
.leftimg { .leftimg {
width: 151px; width: 151px;
height: 100px; height: 100px;
@@ -2719,11 +2387,7 @@ export default {
} }
.rightt { .rightt {
// width: 500px;
height: 100%; height: 100%;
// background-color: red;
// position: absolute;
// right: 0;
display: flex; display: flex;
align-items: center; align-items: center;
.select { .select {
@@ -2849,7 +2513,6 @@ export default {
.mid { .mid {
width: 100%; width: 100%;
// height: 130px;
margin-top: 20px; margin-top: 20px;
margin-bottom: 20px; margin-bottom: 20px;
background-color: #fff; background-color: #fff;
@@ -2859,7 +2522,6 @@ export default {
flex-wrap: wrap; flex-wrap: wrap;
.item { .item {
height: 115px; height: 115px;
// width: 7.7%;
display: flex; display: flex;
align-items: center; align-items: center;
.itcon { .itcon {
@@ -2900,8 +2562,6 @@ export default {
justify-content: center; justify-content: center;
.boomcen { .boomcen {
width: 95%; width: 95%;
// height: 100%;
// background-color: #bfa;
.onerow { .onerow {
width: 100%; width: 100%;
display: flex; display: flex;
@@ -3011,7 +2671,6 @@ export default {
height: 50px; height: 50px;
background: #f5faff; background: #f5faff;
border: 1px solid #4ea6ff; border: 1px solid #4ea6ff;
// opacity: 0.22;
display: flex; display: flex;
align-items: center; align-items: center;
.im { .im {
@@ -3045,15 +2704,11 @@ export default {
opacity: 1; opacity: 1;
} }
.ghost { .ghost {
// background-color: red;
opacity: 0; opacity: 0;
} }
.tableRow:hover { .tableRow:hover {
background-color: #f2f6fc; background-color: #f2f6fc;
} }
// .tableRow: {
// background-color: #f2f6fc;
// }
.classify { .classify {
margin-left: 10px !important; margin-left: 10px !important;
padding-left: 9px !important; padding-left: 9px !important;
@@ -3081,8 +2736,6 @@ export default {
.pa { .pa {
left: 0; left: 0;
width: 100%; width: 100%;
// height: 20px;
// background-color: red;
display: flex; display: flex;
justify-content: center; justify-content: center;
position: absolute; position: absolute;
@@ -3092,18 +2745,6 @@ export default {
} }
} }
} }
// .drawerbox {
// // margin: 20px 38px 30px;
// th.h {
// background-color: #eff4fc !important;
// }
// .ant-table-tbody
// > tr:hover:not(.ant-table-expanded-row):not(.ant-table-row-selected)
// > td {
// background: #f6f9fd;
// }
// }
} }
.opat { .opat {
@@ -3115,13 +2756,11 @@ export default {
background-color: #5dc988; background-color: #5dc988;
} }
.showt { .showt {
// margin-top: 10px;
display: flex; display: flex;
margin-left: 10px; margin-left: 10px;
height: 23px; height: 23px;
position: relative; position: relative;
.bi { .bi {
// margin-top: 10px;
width: 63px; width: 63px;
height: 23; height: 23;
background-color: #5dc988; background-color: #5dc988;
@@ -3136,7 +2775,6 @@ export default {
height: 23px; height: 23px;
background-color: #f2f6fc; background-color: #f2f6fc;
line-height: 23px; line-height: 23px;
// display: none;
position: absolute; position: absolute;
z-index: 998; z-index: 998;
color: #5dc988; color: #5dc988;
@@ -3153,8 +2791,6 @@ export default {
width: 17px; width: 17px;
height: 14px; height: 14px;
background-image: url("../../assets/images/leveladd/z1.png"); background-image: url("../../assets/images/leveladd/z1.png");
// position: absolute;
// left: -40px;
} }
.ch { .ch {
margin-left: 10px; margin-left: 10px;
@@ -3164,7 +2800,6 @@ export default {
width: 100%; width: 100%;
height: 80px; height: 80px;
margin-top: 16px; margin-top: 16px;
// flex: 1;
background-color: #fff; background-color: #fff;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.07);
display: flex; display: flex;

View File

@@ -48,7 +48,6 @@
import { reactive, defineComponent, toRefs, onMounted } from "vue"; import { reactive, defineComponent, toRefs, onMounted } from "vue";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
import { useRouter } from "vue-router"; import { useRouter } from "vue-router";
import { useStore } from "vuex";
import * as api from "@/api/indexTemplate" import * as api from "@/api/indexTemplate"
const columns1 = [ const columns1 = [
@@ -93,7 +92,6 @@ const columns1 = [
export default defineComponent({ export default defineComponent({
name: "TemplateLibrary", name: "TemplateLibrary",
setup() { setup() {
const store = useStore();
// 编辑页面跳转过来时候,自动填充表格 // 编辑页面跳转过来时候,自动填充表格
const router = useRouter(); const router = useRouter();
const state = reactive({ const state = reactive({
@@ -101,7 +99,7 @@ export default defineComponent({
time:null, time:null,
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
total:0, total:50,
tableData1: [ tableData1: [
{ {
key: "1", key: "1",
@@ -244,7 +242,7 @@ export default defineComponent({
}; };
const toLibraryAdd = (id) => { const toLibraryAdd = (id) => {
router.push("/libraryAdd"); router.push("/libraryAdd");
store.state.projectTemplateId = id localStorage.setItem("projectTemplateId",id);
} }
return { return {

View File

@@ -1045,7 +1045,6 @@ import * as api from "../../api/indexTemplate";
import draggable from "vuedraggable"; import draggable from "vuedraggable";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
import UnlockMode from "../../components/drawers/UnlockMode.vue"; import UnlockMode from "../../components/drawers/UnlockMode.vue";
import { useStore } from "vuex";
// import * as api1 from "../../api/index1"; // import * as api1 from "../../api/index1";
const drawercolumns = [ const drawercolumns = [
@@ -1106,7 +1105,6 @@ export default {
UnlockMode, UnlockMode,
}, },
setup() { setup() {
const store = useStore();
const state = reactive({ const state = reactive({
projectId: storage.get("projectId") projectId: storage.get("projectId")
? JSON.parse(storage.get("projectId")) ? JSON.parse(storage.get("projectId"))
@@ -1509,7 +1507,7 @@ export default {
const getTask = () => { const getTask = () => {
state.tableData = []; state.tableData = [];
api api
.templateDetail(store.state.projectTemplateId) .templateDetail(localStorage.getItem("projectTemplateId"))
.then((res) => { .then((res) => {
if (res.status == 200) { if (res.status == 200) {
console.log("22222", res.data.data.stageList); console.log("22222", res.data.data.stageList);
@@ -1709,7 +1707,7 @@ export default {
if (state.updateStageID) { if (state.updateStageID) {
let obj = { let obj = {
name: state.valuesname, name: state.valuesname,
projectTemplateId: store.state.projectTemplateId, projectTemplateId: localStorage.getItem("templateStageId"),
remark: state.valuesnotice, remark: state.valuesnotice,
stageId: state.updateStageID, stageId: state.updateStageID,
}; };
@@ -1731,7 +1729,7 @@ export default {
} else { } else {
let obj = { let obj = {
name: state.valuesname, name: state.valuesname,
projectTemplateId: store.state.projectTemplateId, projectTemplateId: localStorage.getItem("templateStageId"),
remark: state.valuesnotice, remark: state.valuesnotice,
stageId: 0, stageId: 0,
}; };

View File

@@ -318,14 +318,12 @@ import { useRouter, useRoute } from "vue-router";
// import dayjs from "dayjs"; // import dayjs from "dayjs";
import * as api from "../../api/indexTemplate"; import * as api from "../../api/indexTemplate";
import { storage } from "../../api/storage"; import { storage } from "../../api/storage";
import {useStore} from "vuex";
// import { toDate } from "../../api/method"; // import { toDate } from "../../api/method";
import dayjs from "dayjs"; import dayjs from "dayjs";
export default { export default {
name: "projectAdd", name: "projectAdd",
setup() { setup() {
const store = useStore();
// 编辑页面跳转过来时候,自动填充表格 // 编辑页面跳转过来时候,自动填充表格
const routers = useRoute(); const routers = useRoute();
const isEdit = ref(false); const isEdit = ref(false);
@@ -641,7 +639,7 @@ export default {
"courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0, "courseSyncFlag": state.projectInfo.courseSyncFlag? 1:0,
"notice": "", "notice": "",
"noticeFlag": 0, "noticeFlag": 0,
"projectTemplateId": store.state.projectTemplateId, "projectTemplateId": localStorage.getItem("projectTemplateId"),
"remark": "", "remark": "",
"status": 0, "status": 0,

View File

@@ -8,13 +8,12 @@
*/ */
const { defineConfig } = require("@vue/cli-service"); const { defineConfig } = require("@vue/cli-service");
module.exports = defineConfig({ module.exports = defineConfig({
publicPath: '/manage', publicPath: "/manage",
// transpileDependencies: true, // transpileDependencies: true,
devServer: { devServer: {
port: 8080, port: 8080,
proxy: { proxy: {
"/manageApi": { "/manageApi": {
// target:"http://192.168.19.246:30001",
// target:"http://192.168.100.208:30001", // target:"http://192.168.100.208:30001",
target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口 target: "http://111.231.196.214:30001/", //这里后台的地址模拟的;应该填写你们真实的后台接口
changeOrigin: true, //表示是否改变原域名 changeOrigin: true, //表示是否改变原域名