mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-10 03:16:44 +08:00
面授 审核
This commit is contained in:
@@ -1,4 +1,7 @@
|
||||
import http from "./config";
|
||||
|
||||
//获取面授课开课详情
|
||||
export const queryFaceDetailById = (offcoursePlanId) => http.post(`http://localhost:8080/api/admin/offcourse/detailPlan?offcoursePlanId=` + offcoursePlanId + ``)
|
||||
export const queryFaceDetailById = (offcoursePlanId) => http.post(`http://localhost:8080/manageApi/admin/offcourse/detailPlan?offcoursePlanId=` + offcoursePlanId + ``)
|
||||
|
||||
//新建或编辑面授课开课
|
||||
export const editPlan = (obj) => http.post('/admin/offcourse/editPlan', obj)
|
||||
@@ -6,7 +6,7 @@ import http from "./config";
|
||||
// projectId: projectId,
|
||||
// }
|
||||
// });
|
||||
export const noticeList = (projectId) => http.post(`http://localhost:8080/manageApi/admin/project/noticeList?projectId=` + projectId + ``)
|
||||
export const noticeList = (obj) => http.post('/admin/project/noticeList', obj)
|
||||
|
||||
//发布项目公告
|
||||
export const publishNotice = (obj) => http.post('/admin/project/publishNotice', obj)
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
<!-- 评估列表 -->
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="assessmentVisible"
|
||||
@@ -46,7 +47,7 @@
|
||||
expandRowByClick="true"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
:row-selection=" rowSelection "
|
||||
:row-selection="rowSelection"
|
||||
filterMultiple:false
|
||||
/>
|
||||
|
||||
@@ -65,7 +66,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
@@ -78,32 +78,34 @@ export default {
|
||||
// components: {
|
||||
// },
|
||||
props: {
|
||||
assessmentVisible: {
|
||||
assessmentVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
},
|
||||
isface: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
assessmentVisible:false,
|
||||
assessment:null,
|
||||
inputV1:"",
|
||||
assessmentVisible: false,
|
||||
assessment: null,
|
||||
inputV1: "",
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
tableDataTotal: 0,
|
||||
tableData: [],
|
||||
selectedRowKeys:[],
|
||||
selectedRowKeys: [],
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:assessmentVisible", false);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state getAllInvistText", bool);
|
||||
if(props.assessmentVisible){
|
||||
if (props.assessmentVisible) {
|
||||
getAllInvistText();
|
||||
}
|
||||
|
||||
};
|
||||
const tableDataFunc = () => {
|
||||
const columns = [
|
||||
@@ -142,11 +144,16 @@ export default {
|
||||
};
|
||||
const rowSelection = {
|
||||
type: "radio",
|
||||
onSelect:(selectedRows)=>{
|
||||
onSelect: (selectedRows) => {
|
||||
state.assessment = selectedRows;
|
||||
console.log("selectedRows=======",state.assessment);
|
||||
ctx.emit("checkedAss", state.assessment);
|
||||
state.selectedRowKeys = []
|
||||
console.log("selectedRows=======", state.assessment);
|
||||
if (props.isface == 1) {
|
||||
ctx.emit("faceAssess", state.assessment);
|
||||
} else {
|
||||
ctx.emit("checkedAss", state.assessment);
|
||||
}
|
||||
|
||||
state.selectedRowKeys = [];
|
||||
closeDrawer();
|
||||
},
|
||||
};
|
||||
@@ -166,7 +173,7 @@ export default {
|
||||
data.map((value, index) => {
|
||||
let obj = {
|
||||
key: index,
|
||||
assessmentId:value.assessmentId,
|
||||
assessmentId: value.assessmentId,
|
||||
num: value.essayQuestionVoList.length,
|
||||
name: value.assessmentName ? value.assessmentName : "-",
|
||||
creator: value.createUser ? value.createUser : "-",
|
||||
@@ -174,17 +181,16 @@ export default {
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.selectedRowKeys = [],
|
||||
state.tableData = array;
|
||||
(state.selectedRowKeys = []), (state.tableData = array);
|
||||
};
|
||||
//获取全部评估信息接口
|
||||
const getAllInvistText = () => {
|
||||
api
|
||||
.queryAssessmentDetailList({
|
||||
assessmentName:state.inputV1,
|
||||
pageNo: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
})
|
||||
assessmentName: state.inputV1,
|
||||
pageNo: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
})
|
||||
.then((res) => {
|
||||
let arr = res.data.data.rows;
|
||||
if (res.status === 200) {
|
||||
@@ -199,7 +205,6 @@ export default {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
//重置评估信息
|
||||
const resetInvist = () => {
|
||||
state.inputV1 = "";
|
||||
@@ -243,7 +248,7 @@ export default {
|
||||
justify-content: space-between;
|
||||
.main_left {
|
||||
padding-right: 30px;
|
||||
margin-top:32px;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -48,7 +48,24 @@
|
||||
<span style="margin-right: 3px">选择课程:</span>
|
||||
</div>
|
||||
<div class="btnbox" @click="showDrawerSelFacet">
|
||||
<button class="xkbtn">授课课程</button>
|
||||
<button class="xkbtn">
|
||||
{{ chooseCourse == null ? "授课" : "修改" }}课程
|
||||
</button>
|
||||
<a-tag
|
||||
style="
|
||||
width: 104px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
color: #388be1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
"
|
||||
color="#ECF3FC"
|
||||
v-if="chooseCourse !== null"
|
||||
closable
|
||||
@close="closeTag"
|
||||
>{{ chooseCourseName }}</a-tag
|
||||
>
|
||||
</div>
|
||||
<!-- 选择面授侧弹窗 -->
|
||||
<div>
|
||||
@@ -259,7 +276,22 @@
|
||||
<a-checkbox v-model:checked="checkedAssessment"
|
||||
>需要评估</a-checkbox
|
||||
>
|
||||
<button class="xkbtn">选择评估</button>
|
||||
<button class="xkbtn" @click="showAssessment">选择评估</button>
|
||||
<a-tag
|
||||
style="
|
||||
width: 104px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
color: #388be1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
"
|
||||
color="#ECF3FC"
|
||||
v-if="chooseMent !== null"
|
||||
closable
|
||||
@close="closeTag"
|
||||
>{{ chooseMentName }}</a-tag
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -271,12 +303,35 @@
|
||||
<div class="btnbox" @click="showDrawerAddHomework">
|
||||
<button class="xkbtn">配置</button>
|
||||
</div>
|
||||
|
||||
<!-- 添加作业侧弹窗 -->
|
||||
<div>
|
||||
<add-homework v-model:addhomeworkVisible="addhomeworkvisible" />
|
||||
<add-homework
|
||||
v-model:addhomeworkVisible="addhomeworkvisible"
|
||||
@getWork="getWork"
|
||||
v-model:face="face"
|
||||
/>
|
||||
</div>
|
||||
<!-- 添加作业侧弹窗 -->
|
||||
</div>
|
||||
<div>
|
||||
<a-tag
|
||||
style="
|
||||
width: 104px;
|
||||
height: 32px;
|
||||
border-radius: 4px;
|
||||
color: #388be1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-left: 120px;
|
||||
"
|
||||
color="#ECF3FC"
|
||||
v-if="chooseWork !== null"
|
||||
closable
|
||||
@close="closeTagWork"
|
||||
>{{ chooseWorkName }}</a-tag
|
||||
>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">配置考试:</span>
|
||||
@@ -295,7 +350,13 @@
|
||||
<span style="margin-right: 3px">附件:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<button class="xkbtn">上传附件</button>
|
||||
<a-upload
|
||||
@change="handleChange"
|
||||
action="/manageApi/file/upload"
|
||||
v-model:file-list="fileList"
|
||||
>
|
||||
<button class="xkbtn">上传附件</button></a-upload
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -304,6 +365,11 @@
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2" @click="updateFaceTeach">确定</button>
|
||||
</div>
|
||||
<assessment-list
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
v-model:isface="isface"
|
||||
@faceAssess="faceAssess"
|
||||
/>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
@@ -315,21 +381,24 @@ import AddTest from "../../components/drawers/AddTest.vue";
|
||||
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
|
||||
// import * as method from "../../api/method"
|
||||
import { message } from "ant-design-vue";
|
||||
import { queryFaceDetailById } from "../../api/indexFace";
|
||||
import { queryFaceDetailById, editPlan } from "../../api/indexFace";
|
||||
import dayjs from "dayjs";
|
||||
import AssessmentList from "../drawers/ AssessmentList.vue";
|
||||
// import { toDate } from "../../api/method";
|
||||
export default {
|
||||
name: "AddFaceteach",
|
||||
components: {
|
||||
SelFacet,
|
||||
AddHomework,
|
||||
AddTest,
|
||||
AssessmentList,
|
||||
},
|
||||
props: {
|
||||
addfaceteachVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
EditEvalId: {
|
||||
EditFaceId: {
|
||||
// 要编辑的workId
|
||||
type: Number,
|
||||
default: null,
|
||||
@@ -390,13 +459,42 @@ export default {
|
||||
checkedHolidy: false,
|
||||
checkedAssessment: false,
|
||||
chooseTime: [],
|
||||
fileList: [],
|
||||
chooseCourse: null, //选择的在线课程
|
||||
chooseCourseName: null, //选择的课程的名字
|
||||
face: true, //面授传给配置作业的标识
|
||||
chooseWork: null, //配置的work
|
||||
chooseWorkName: null, //配置的work名字
|
||||
chooseMent: null,
|
||||
chooseMentName: null,
|
||||
assessmentVisible: false,
|
||||
isface: 1,
|
||||
});
|
||||
const clear = () => {
|
||||
state.inputV1 = null;
|
||||
state.inputV2 = null;
|
||||
state.inputV3 = null;
|
||||
state.inputV4 = null;
|
||||
state.inputV5 = null;
|
||||
state.inputV6 = null;
|
||||
state.inputV7 = null;
|
||||
state.chooseTime = [];
|
||||
state.textV1 = null;
|
||||
state.radioV1 = "";
|
||||
state.radioV2 = "";
|
||||
state.checkedHolidy = false;
|
||||
state.checkedAssessment = false;
|
||||
state.chooseMent = null;
|
||||
state.chooseWork = null;
|
||||
state.chooseCourse = null;
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addfaceteachVisible", false);
|
||||
state.radioV1 = "";
|
||||
state.radioV2 = "";
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
clear();
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if (bool && props.edit) {
|
||||
@@ -427,7 +525,7 @@ export default {
|
||||
//查询面授
|
||||
const queryFaceTeach = () => {
|
||||
//暂时写一个假的offcoursePlanId
|
||||
queryFaceDetailById(2).then((res) => {
|
||||
queryFaceDetailById(props.EditFaceId).then((res) => {
|
||||
// state.inputV1 = res.data.data.name;
|
||||
// state.inputV2 = res.data.data.teacherId;
|
||||
console.log("获取到了面授课开课详情", res.data.data);
|
||||
@@ -447,6 +545,7 @@ export default {
|
||||
state.inputV5 = result.beforeStart;
|
||||
state.inputV6 = result.afterStart;
|
||||
state.inputV7 = result.beforeEnd;
|
||||
state.fileList = JSON.parse(result.attach);
|
||||
// state.radioV1 = result.
|
||||
state.checkedHolidy =
|
||||
result.completeType == 1
|
||||
@@ -473,10 +572,79 @@ export default {
|
||||
};
|
||||
|
||||
//新建或编辑面授
|
||||
const updateFaceTeach = () => {};
|
||||
const upDateTable = () => {};
|
||||
// 新增任务
|
||||
const updateFaceTeach = () => {
|
||||
if (
|
||||
state.inputV1 == "" ||
|
||||
state.chooseCourse == null ||
|
||||
state.inputV2 == "" ||
|
||||
state.chooseTime == [] ||
|
||||
state.inputV3 == "" ||
|
||||
state.inputV4 == ""
|
||||
) {
|
||||
message.destroy();
|
||||
return message.warning("请输入必填字段");
|
||||
} else {
|
||||
let obj = {
|
||||
address: state.inputV4,
|
||||
afterStart: state.inputV6,
|
||||
applyFlag: 1,
|
||||
attach: JSON.stringify(state.fileList),
|
||||
beforeEnd: state.inputV7,
|
||||
beforeStart: state.inputV5,
|
||||
// beginTime: dayjs(state.chooseTime[0]).format("YYYY-MM-DD"),
|
||||
beginTime: parseInt(
|
||||
new Date(state.chooseTime[0].$d).getTime() / 1000
|
||||
),
|
||||
completeType: state.radioV1 == "1" ? 2 : 1,
|
||||
description: state.textV1,
|
||||
// endTime: dayjs(state.chooseTime[1]).format("YYYY-MM-DD"),
|
||||
endTime: parseInt(new Date(state.chooseTime[0].$d).getTime() / 1000),
|
||||
evalFlag: state.checkedAssessment == true ? 1 : 0,
|
||||
evaluateId:
|
||||
state.chooseMent == null ? 0 : state.chooseMent.assessmentId,
|
||||
homeWorkId: 0,
|
||||
name: state.inputV1,
|
||||
noProjectMember: state.radioV2 == "1" ? 0 : 1,
|
||||
offcourseId: 0,
|
||||
offcoursePlanId: props.edit ? props.EditFaceId : 0,
|
||||
projectMember: state.radioV2 == "1" ? 1 : 0,
|
||||
signFlag: 0,
|
||||
signWordFlag: 0,
|
||||
teacherId: 0,
|
||||
testId: 0,
|
||||
};
|
||||
|
||||
if (props.edit) {
|
||||
editPlan(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
} else {
|
||||
editPlan(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
const upDateTable = (value) => {
|
||||
console.log("gg", value);
|
||||
console.log("gg", value[0].name);
|
||||
state.chooseCourse = value[0];
|
||||
state.chooseCourseName = value[0].name;
|
||||
};
|
||||
|
||||
//更新任务列表
|
||||
// 新增编辑或新增项目任务
|
||||
const updateTask = (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
let editObj1 = {
|
||||
@@ -511,17 +679,44 @@ export default {
|
||||
ProjectEditTask(editObj)
|
||||
.then(() => {
|
||||
message.success(
|
||||
`${props.EditTestId ? "编辑" : "新增"}阶段任务成功`
|
||||
`${props.EditFaceId ? "编辑" : "新增"}阶段任务成功`
|
||||
);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.EditTestId ? "编辑" : "新增"}阶段任务失败`);
|
||||
message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("");
|
||||
}
|
||||
};
|
||||
const closeTag = () => {
|
||||
state.chooseCourse = null;
|
||||
state.chooseCourseName = null;
|
||||
};
|
||||
const closeTagWork = () => {
|
||||
state.chooseWork = null;
|
||||
state.chooseWorkName = null;
|
||||
};
|
||||
const getWork = (value) => {
|
||||
console.log("getWork", value);
|
||||
state.chooseWork = value;
|
||||
state.chooseWorkName = value.workName;
|
||||
console.log("getWorkName", value.workName);
|
||||
};
|
||||
const handleChange = ({ file, fileList }) => {
|
||||
if (file.status !== "uploading") {
|
||||
console.log(file, fileList);
|
||||
}
|
||||
};
|
||||
const showAssessment = () => {
|
||||
state.assessmentVisible = true;
|
||||
};
|
||||
const faceAssess = (value) => {
|
||||
console.log(value);
|
||||
state.chooseMent = value;
|
||||
state.chooseMentName = value.name;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
showDrawerSelFacet,
|
||||
@@ -534,6 +729,13 @@ export default {
|
||||
updateFaceTeach,
|
||||
updateTask,
|
||||
upDateTable,
|
||||
closeTag,
|
||||
getWork,
|
||||
closeTagWork,
|
||||
clear,
|
||||
handleChange,
|
||||
showAssessment,
|
||||
faceAssess,
|
||||
// change,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
action="/api/file/upload"
|
||||
action="/manageApi/file/upload"
|
||||
@change="handleChange"
|
||||
>
|
||||
<button class="xkbtn" type="button">上传附件</button>
|
||||
@@ -96,7 +96,7 @@
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<a-button class="btn1" @click="closeDrawer">取消</a-button>
|
||||
<a-button class="btn2" html-type="submit">确定</a-button>
|
||||
<a-button class="btn2" html-type="submit" @click="cle">确定</a-button>
|
||||
</div>
|
||||
</a-form>
|
||||
</div>
|
||||
@@ -164,6 +164,10 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
face: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const formState = reactive({
|
||||
@@ -362,6 +366,13 @@ export default {
|
||||
}
|
||||
};
|
||||
|
||||
const cle = () => {
|
||||
console.log("xx", formState);
|
||||
if (props.face) {
|
||||
ctx.emit("getWork", formState);
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
@@ -375,6 +386,7 @@ export default {
|
||||
formRef,
|
||||
// layout,
|
||||
rules,
|
||||
cle,
|
||||
...toRefs(state),
|
||||
};
|
||||
},
|
||||
|
||||
@@ -62,12 +62,17 @@ export default {
|
||||
state.notice = array;
|
||||
};
|
||||
const getNotice = () => {
|
||||
noticeList(props.projectId)
|
||||
let obj = {
|
||||
pageNo: 1,
|
||||
pageSize: 10,
|
||||
projectId: props.projectId,
|
||||
};
|
||||
noticeList(obj)
|
||||
.then((res) => {
|
||||
console.log("获取公告列表成功");
|
||||
let result = res.data.data;
|
||||
if (result.length > 0) {
|
||||
setNoticeData(result);
|
||||
if (result.total > 0) {
|
||||
setNoticeData(result.rows);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
|
||||
@@ -56,10 +56,10 @@ export default {
|
||||
return message.warning("请输入公告内容");
|
||||
} else {
|
||||
let obj = {
|
||||
createId: state.projectInfo.createId,
|
||||
createName: state.projectInfo.createName,
|
||||
// createId: state.projectInfo.createId,
|
||||
// createName: state.projectInfo.createName,
|
||||
notice: state.noticeContent,
|
||||
noticeId: 0,
|
||||
// noticeId: 0,
|
||||
projectId: props.projectId,
|
||||
title: "",
|
||||
};
|
||||
|
||||
@@ -216,7 +216,7 @@ export default {
|
||||
|
||||
state.selectedRowKeys = selectedRowKeys;
|
||||
state.selectedRows = selectedRows;
|
||||
console.log(selectedRows);
|
||||
console.log("选择了", state.selectedRows[0].name);
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:selfacetVisible", false);
|
||||
|
||||
@@ -53,7 +53,7 @@
|
||||
<script>
|
||||
import { toRefs, reactive } from "vue";
|
||||
import { studentScoreList } from "../../api/indexProjStu";
|
||||
import { toDate } from "@/api/method";
|
||||
// import { toDate } from "@/api/method";
|
||||
export default {
|
||||
name: "StuScoreDetail",
|
||||
props: {
|
||||
@@ -151,10 +151,10 @@ export default {
|
||||
let array = [];
|
||||
data.map((item) => {
|
||||
let obj = {
|
||||
time: toDate(item.createTime / 1000, "Y-M-D h-m"),
|
||||
time: item.createTime,
|
||||
score: item.score,
|
||||
type: "完成任务",
|
||||
from: item.source,
|
||||
from: item.source == "" ? "-" : item.source,
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
|
||||
@@ -195,7 +195,7 @@ export default {
|
||||
};
|
||||
courseListView(objn)
|
||||
.then((res) => {
|
||||
console.log("获取已审核课程成功", res);
|
||||
console.log("获取已审核课程成功", res.data.data);
|
||||
let result = res.data.data.rows;
|
||||
state.total = res.data.data.total;
|
||||
setTableData(result);
|
||||
|
||||
@@ -106,6 +106,44 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 审核日志弹窗 -->
|
||||
<a-modal
|
||||
v-model:visible="projAuditModal"
|
||||
:footer="null"
|
||||
:closable="closeBack"
|
||||
wrapClassName="projAuditModal"
|
||||
centered="true"
|
||||
>
|
||||
<div class="delete">
|
||||
<div class="del_header"></div>
|
||||
<div class="del_main">
|
||||
<div class="header">
|
||||
<div class="icon"></div>
|
||||
<span>审核记录</span>
|
||||
<div class="close_exit" @click="closeProjAuditModal"></div>
|
||||
</div>
|
||||
<div class="body">
|
||||
<a-table
|
||||
style="width: 90%"
|
||||
:columns="columnsAudit"
|
||||
:data-source="tableDataAudit"
|
||||
:loading="tableDataTotalAudit === -1 ? true : false"
|
||||
expandRowByClick="true"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
/>
|
||||
</div>
|
||||
<div class="del_btnbox">
|
||||
<div class="del_btn btn1" @click="closeProjAuditModal">
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
<div class="del_btn btn2" @click="closeProjAuditModal">
|
||||
<div class="btnText">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
@@ -137,6 +175,8 @@ export default {
|
||||
currentPage: 1,
|
||||
total: null,
|
||||
pageSize: 10,
|
||||
projAuditModal: false,
|
||||
closeBack: false,
|
||||
columns1: [
|
||||
{
|
||||
title: "序号",
|
||||
@@ -197,12 +237,52 @@ export default {
|
||||
customRender: () => {
|
||||
return (
|
||||
<div>
|
||||
<span>审核日志</span>
|
||||
<span
|
||||
onClick={() => {
|
||||
showProjAuditModal();
|
||||
}}
|
||||
style="cursor:pointer"
|
||||
>
|
||||
审核日志
|
||||
</span>
|
||||
</div>
|
||||
);
|
||||
},
|
||||
},
|
||||
],
|
||||
//审核记录的表
|
||||
columnsAudit: [
|
||||
{
|
||||
title: "审核人",
|
||||
dataIndex: "name",
|
||||
key: "name",
|
||||
align: "center",
|
||||
},
|
||||
|
||||
{
|
||||
title: "审核状态",
|
||||
dataIndex: "belong",
|
||||
key: "belong",
|
||||
align: "center",
|
||||
// width: "10%",
|
||||
},
|
||||
|
||||
{
|
||||
title: "审核时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
align: "center",
|
||||
},
|
||||
|
||||
{
|
||||
title: "备注",
|
||||
dataIndex: "description",
|
||||
key: "description",
|
||||
align: "center",
|
||||
},
|
||||
],
|
||||
//审核记录的数据
|
||||
tableDataAudit: [],
|
||||
tableData1: [
|
||||
{
|
||||
number: "1",
|
||||
@@ -220,7 +300,7 @@ export default {
|
||||
let objn = obj || {
|
||||
beginTime: 0,
|
||||
createName: "",
|
||||
endTime: 0,
|
||||
endTime: "",
|
||||
manager: "",
|
||||
name: "",
|
||||
pageNo: state.currentPage,
|
||||
@@ -229,10 +309,12 @@ export default {
|
||||
};
|
||||
listView(objn)
|
||||
.then((res) => {
|
||||
console.log("获取已审核项目成功", res);
|
||||
let result = res.data.data.rows;
|
||||
console.log("获取已审核项目成功", res.data.data.rows);
|
||||
let result = res.data.data;
|
||||
state.total = res.data.data.total;
|
||||
setTableData(result);
|
||||
if (result.total > 0) {
|
||||
setTableData(result.rows);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取已审核项目失败", err);
|
||||
@@ -240,19 +322,22 @@ export default {
|
||||
};
|
||||
const setTableData = (tabledata) => {
|
||||
let data = tabledata;
|
||||
let array = [];
|
||||
data.map((item) => {
|
||||
let obj = {
|
||||
number: item.projectId,
|
||||
name: getName(item),
|
||||
belong: getBelong(item),
|
||||
// 需要加上
|
||||
// name: getName(item),
|
||||
// belong: getBelong(item),
|
||||
manager: item.manager,
|
||||
status: item.status == 2 ? "通过" : "拒绝",
|
||||
creater: item.createName,
|
||||
time: toDate(item.beginTime, "Y-M-D h-m"),
|
||||
msg: item.description,
|
||||
};
|
||||
state.tableData1.push(obj);
|
||||
array.push(obj);
|
||||
});
|
||||
state.tableData1 = array;
|
||||
};
|
||||
const getName = (item) => {
|
||||
if (
|
||||
@@ -323,6 +408,12 @@ export default {
|
||||
state.valuestate = null;
|
||||
getProjList();
|
||||
};
|
||||
const closeProjAuditModal = () => {
|
||||
state.projAuditModal = false;
|
||||
};
|
||||
const showProjAuditModal = () => {
|
||||
state.projAuditModal = true;
|
||||
};
|
||||
onMounted(() => {
|
||||
getProjList();
|
||||
});
|
||||
@@ -336,11 +427,127 @@ export default {
|
||||
changePagination,
|
||||
search,
|
||||
reset,
|
||||
closeProjAuditModal,
|
||||
showProjAuditModal,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.projAuditModal {
|
||||
.ant-modal {
|
||||
width: 816px !important;
|
||||
min-height: 420px !important;
|
||||
.ant-modal-content {
|
||||
width: 816px !important;
|
||||
min-height: 420px !important;
|
||||
.ant-modal-body {
|
||||
width: 816px !important;
|
||||
min-height: 420px !important;
|
||||
padding: 0 !important;
|
||||
.delete {
|
||||
z-index: 999;
|
||||
width: 816px;
|
||||
min-height: 420px;
|
||||
background: #ffffff;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.21);
|
||||
border-radius: 4px;
|
||||
// position: absolute;
|
||||
// left: 50%;
|
||||
// top: 10%;
|
||||
// transform: translate(-50%, -50%);
|
||||
.del_header {
|
||||
position: absolute;
|
||||
width: calc(100%);
|
||||
height: 68px;
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
}
|
||||
.del_main {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
.header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding-top: 20px;
|
||||
padding-left: 26px;
|
||||
font-size: 16px;
|
||||
.icon {
|
||||
width: 16px;
|
||||
height: 16px;
|
||||
margin-right: 10px;
|
||||
background-image: url(@/assets/images/taskpage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.close_exit {
|
||||
position: absolute;
|
||||
right: 42px;
|
||||
cursor: pointer;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: url(@/assets/images/coursewareManage/close.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.body {
|
||||
width: 100%;
|
||||
margin: 34px auto 56px auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
flex-direction: column;
|
||||
// background-color: red;
|
||||
position: relative;
|
||||
.ant-table-empty {
|
||||
width: 100% !important;
|
||||
}
|
||||
.back {
|
||||
position: absolute;
|
||||
top: 30px;
|
||||
font-size: 12px;
|
||||
font-weight: 400;
|
||||
color: #666666;
|
||||
}
|
||||
}
|
||||
.del_btnbox {
|
||||
display: flex;
|
||||
margin: 30px auto;
|
||||
justify-content: center;
|
||||
.del_btn {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: rgba(64, 158, 255, 0);
|
||||
border-radius: 8px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
line-height: 40px;
|
||||
}
|
||||
}
|
||||
.btn1 {
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
color: #4ea6ff;
|
||||
margin-right: 14px;
|
||||
}
|
||||
.btn2 {
|
||||
background-color: #4ea6ff;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.projectviewed {
|
||||
width: 100%;
|
||||
.tmpl {
|
||||
|
||||
@@ -230,12 +230,25 @@
|
||||
<div class="lin"></div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="itcon">
|
||||
<div class="itcon" @click="showAddface">
|
||||
<div class="img">
|
||||
<img src="../../assets/images/leveladd/mian.png" />
|
||||
</div>
|
||||
<div class="text">面授</div>
|
||||
</div>
|
||||
<!-- 添加面授 -->
|
||||
<add-faceteach
|
||||
@changeData="updateTableData"
|
||||
v-model:edit="edit"
|
||||
v-model:isactive="isactive"
|
||||
v-model:routerId="routerId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:routerTaskId="routerTaskId"
|
||||
v-model:addfaceteachVisible="addfaceteachVisible"
|
||||
v-model:EditFaceId="EditFaceId"
|
||||
:isLevel="isLevel"
|
||||
/>
|
||||
<!-- 添加面授 -->
|
||||
<div class="lin"></div>
|
||||
</div>
|
||||
<div class="item">
|
||||
@@ -1042,6 +1055,7 @@ import AddInvist from "../../components/drawers/AddInvist.vue";
|
||||
import AddVote from "../../components/vote/AddVote.vue";
|
||||
import AddLive from "../../components/drawers/AddLive.vue";
|
||||
import AddRef from "../../components/drawers/AddRef.vue";
|
||||
import AddFaceteach from "../../components/drawers/AddFaceteach.vue";
|
||||
import * as api from "../../api/indexLevel";
|
||||
import { GetRouterDetail } from "../../api/indexTask";
|
||||
import { message } from "ant-design-vue";
|
||||
@@ -1072,6 +1086,7 @@ export default {
|
||||
AddRef,
|
||||
draggable,
|
||||
UnlockMode,
|
||||
AddFaceteach,
|
||||
},
|
||||
setup() {
|
||||
const state = reactive({
|
||||
@@ -1268,6 +1283,7 @@ export default {
|
||||
//项目
|
||||
editproj: false,
|
||||
addprojvisible: false,
|
||||
addfaceteachVisible: false,
|
||||
AddSvisible: false, //添加学员抽屉
|
||||
AddImpStuvisible: false, //导入学员抽屉
|
||||
addlivevisible: false, //添加直播抽屉
|
||||
@@ -1291,6 +1307,7 @@ export default {
|
||||
EditEvalId: "",
|
||||
EditInvistId: "",
|
||||
EditVoteId: "",
|
||||
EditFaceId: "",
|
||||
//项目
|
||||
EditProjId: "",
|
||||
routerTaskId: "",
|
||||
@@ -1448,6 +1465,12 @@ export default {
|
||||
state.EditWorkId = id;
|
||||
state.routerTaskId = eleId;
|
||||
};
|
||||
//面授抽屉
|
||||
const showAddface = (id, eleId) => {
|
||||
state.addfaceteachVisible = true;
|
||||
state.EditFaceId = id;
|
||||
state.routerTaskId = eleId;
|
||||
};
|
||||
//案例抽屉
|
||||
const showDrawerAddCase = (id, eleId) => {
|
||||
state.addcasevisible = true;
|
||||
@@ -1562,7 +1585,7 @@ export default {
|
||||
});
|
||||
if (state.level.length > 0) {
|
||||
let chapter = localStorage.getItem("chapterId");
|
||||
if (chapter !== null) {
|
||||
if (chapter !== "null") {
|
||||
dataAssignment(chapter); //用哪个的任务表
|
||||
state.isactive = chapter; //哪个亮
|
||||
} else {
|
||||
@@ -1954,6 +1977,8 @@ export default {
|
||||
showDrawerAddOnline(id, eleId);
|
||||
} else if (type == "案例") {
|
||||
showDrawerAddCase(id, eleId);
|
||||
} else if (type == "面授") {
|
||||
showAddface(id, eleId);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2142,6 +2167,7 @@ export default {
|
||||
deleteChapter,
|
||||
|
||||
showModeVisible,
|
||||
showAddface,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -196,7 +196,12 @@
|
||||
<div>
|
||||
<add-faceteach
|
||||
v-model:addfaceteachVisible="addfaceteachvisible"
|
||||
v-model:EditEvalId="EditEvalId"
|
||||
v-model:EditFaceId="EditFaceId"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
@changeData="updateTableData"
|
||||
/>
|
||||
</div>
|
||||
<!-- 添加面授侧弹窗 -->
|
||||
@@ -1129,6 +1134,7 @@ export default {
|
||||
EditCaseId: null, //要编辑的案例id
|
||||
EditOnlineId: null, //要编辑的在线id
|
||||
EditFaceTeach: null,
|
||||
EditFaceId: null,
|
||||
EditEvalId: null,
|
||||
EditInvistId: null,
|
||||
EditVoteId: null, //编辑需要投票的id
|
||||
@@ -1548,7 +1554,7 @@ export default {
|
||||
// console.log("任务列表", stage, arr);
|
||||
// getTableData(arr);
|
||||
}
|
||||
|
||||
//获取阶段列表
|
||||
let stagearr = res.data.data.stageList;
|
||||
let arrlist = state.curLevel;
|
||||
console.log(stagearr, 111111);
|
||||
@@ -1556,7 +1562,7 @@ export default {
|
||||
getStageData(stagearr);
|
||||
stagearr.map((value) => {
|
||||
console.log(value);
|
||||
arrlist.push();
|
||||
arrlist.push(value);
|
||||
});
|
||||
}
|
||||
//给阶段id赋初始值
|
||||
@@ -1808,8 +1814,10 @@ export default {
|
||||
state.EditOnlineId = id;
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerFaceteach = () => {
|
||||
const showDrawerFaceteach = (id, eleId) => {
|
||||
state.addfaceteachvisible = true;
|
||||
state.EditFaceId = id;
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerAddCase = (id, eleId) => {
|
||||
state.addcasevisible = true;
|
||||
@@ -2009,6 +2017,8 @@ export default {
|
||||
showDrawerAddTest(id, eleId);
|
||||
} else if (type == "在线") {
|
||||
showDrawerOnline(id, eleId);
|
||||
} else if (type == "面授") {
|
||||
showDrawerFaceteach(id, eleId);
|
||||
}
|
||||
};
|
||||
const showdeAll = () => {
|
||||
|
||||
Reference in New Issue
Block a user