This commit is contained in:
songwc
2022-11-11 18:15:52 +08:00
8 changed files with 500 additions and 761 deletions

View File

@@ -109,8 +109,6 @@ import * as api from "../../api/indexVote";
import { message } from "ant-design-vue"; import { message } from "ant-design-vue";
export default { export default {
name: "CreVote", name: "CreVote",
// components: {
// },
props: { props: {
crevoteVisible: { crevoteVisible: {
type: Boolean, type: Boolean,
@@ -138,7 +136,6 @@ export default {
}, },
], ],
}); });
const addQue = () => { const addQue = () => {
state.questions.push({ state.questions.push({
stemTit: "题干", stemTit: "题干",
@@ -168,7 +165,6 @@ export default {
// delete value[0] // delete value[0]
value.pop() value.pop()
} }
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:crevoteVisible", false); ctx.emit("update:crevoteVisible", false);
}; };

View File

@@ -41,11 +41,15 @@
</div> </div>
</div> </div>
<div class="btns"> <div class="btns">
<div class="btn btn1" style="margin-right: 20px"> <div
class="btn btn1"
style="margin-right: 20px"
@click="searchTaskList"
>
<div class="img1"></div> <div class="img1"></div>
<div class="wz">搜索</div> <div class="wz">搜索</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2" @click="resetTaskList">
<div class="img2"></div> <div class="img2"></div>
<div class="wz">重置</div> <div class="wz">重置</div>
</div> </div>
@@ -158,7 +162,7 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
ProjectTaskId: { projectTaskId: {
type: Number, type: Number,
default: null, default: null,
}, },
@@ -167,140 +171,65 @@ export default {
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
Evisible: false, //录入成绩抽屉 Evisible: false, //录入成绩抽屉
name: null, name: "",
showmodal: false, //勾选提示框 showmodal: false, //勾选提示框
closable: false, //modal右上角的关闭按钮 closable: false, //modal右上角的关闭按钮
pageNo: 1,
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
showdonemodal: false, showdonemodal: false,
open: false, open: false,
selectedRowKeys: [], selectedRowKeys: [],
projectName: "",
projectNameList: [ projectNameList: [
{ {
id: 1, id: 1,
value: "项目一", value: "-1",
label: "项目一", label: "未开始",
}, },
{ {
id: 2, id: 2,
value: "项目二", value: "0",
label: "项目二", label: "进行中",
}, },
{ {
id: 3, id: 3,
value: "项目三", value: "1",
label: "项目三", label: "已完成",
},
{
id: 4,
value: "项目四",
label: "项目四",
}, },
], ],
tabledata: [ tabledata: [
{ // {
key: 1, // key: 1,
name: "哈哈", // name: "哈哈",
bum: "产品部", // bum: "产品部",
gangw: "产品经理", // gangw: "产品经理",
score: "-", // score: "-",
state: "未完成", // state: "未完成",
}, // },
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "-",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "合格",
state: "完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "不合格",
state: "完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "不合格",
state: "完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
score: "不合格",
state: "完成",
},
], ],
tablecolumns: [ tablecolumns: [
{ {
title: "姓名", title: "姓名",
dataIndex: "name", dataIndex: "userName",
key: "name", key: "userName",
width: 50, width: 50,
align: "left", align: "left",
className: "h head", className: "h head",
}, },
{ {
title: "所在部门", title: "所在部门",
dataIndex: "bum", dataIndex: "deptName",
key: "bum", key: "userName",
width: 60, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "所在岗位", title: "所在岗位",
dataIndex: "gangw", dataIndex: "jobName",
key: "gangw", key: "jobName",
width: 60, width: 60,
align: "center", align: "center",
className: "h", className: "h",
@@ -315,8 +244,8 @@ export default {
}, },
{ {
title: "任务状态", title: "任务状态",
dataIndex: "state", dataIndex: "status",
key: "state", key: "status",
width: 60, width: 60,
align: "center", align: "center",
className: "h", className: "h",
@@ -325,6 +254,7 @@ export default {
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
state.projectName = value;
}; };
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Fvisible", false); ctx.emit("update:Fvisible", false);
@@ -369,28 +299,71 @@ export default {
const getManageList = () => { const getManageList = () => {
let obj = { let obj = {
name: "", name: "",
pageNo: 0, pageNo: state.pageNo,
pageSize: 0, pageSize: state.pageSize,
projectTaskId: props.ProjectTaskId, projectId: 27,
status: 0, projectTaskId: props.projectTaskId,
status: -1,
}; };
console.log('9999999999999',obj.projectTaskId);
api api
.taskStudentList(obj) .taskStudentList(obj)
.then((res) => { .then((res) => {
console.log('获取任务管理列表成功', res); 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++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
}) })
.catch((err) => { .catch((err) => {
console.log("获取任务列表失败",err) console.log("获取面授任务列表失败", err);
});
};
//搜索任务列表
const searchTaskList = () => {
let objser = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
projectTaskId: props.projectTaskId,
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((err) => {
console.log("搜索任务列表失败", err);
});
}
};
//重置任务列表
const resetTaskList = () => {
state.name = "";
state.projectName = "";
state.tabledata = [];
getManageList();
}; };
let timer; let timer;
onMounted(() => { onMounted(() => {
setTimeout(() => { setTimeout(() => {
getManageList() getManageList();
},1000) }, 1000);
timer = setInterval(() => { timer = setInterval(() => {
state.open = false; state.open = false;
}, 3000); }, 3000);
@@ -411,6 +384,8 @@ export default {
closedoneModal, closedoneModal,
showopen, showopen,
getManageList, getManageList,
searchTaskList,
resetTaskList,
}; };
}, },
}; };

View File

@@ -8,7 +8,7 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">{{ title }}</div> <div class="headerTitle">{{ title }}管理</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@@ -43,11 +43,15 @@
</div> </div>
</div> </div>
<div class="btns"> <div class="btns">
<div class="btn btn1" style="margin-right: 20px"> <div
class="btn btn1"
style="margin-right: 20px"
@click="searchTaskList"
>
<div class="img1"></div> <div class="img1"></div>
<div class="wz">搜索</div> <div class="wz">搜索</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2" @click="resetTaskList">
<div class="img2"></div> <div class="img2"></div>
<div class="wz">重置</div> <div class="wz">重置</div>
</div> </div>
@@ -108,6 +112,7 @@
<script> <script>
import { toRefs, reactive, onMounted, onUnmounted } from "vue"; import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import * as api from "../../api/index";
export default { export default {
name: "TestManage", name: "TestManage",
props: { props: {
@@ -122,194 +127,85 @@ export default {
projectTaskId: { projectTaskId: {
type: Number, type: Number,
default: null, default: null,
} },
}, },
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
name: null, name: null,
open: false, open: false,
pageNo: 1,
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
projectName: "",
projectNameList: [ projectNameList: [
{ {
id: 1, id: 1,
value: "项目一", value: "-1",
label: "项目一", label: "未开始",
}, },
{ {
id: 2, id: 2,
value: "项目二", value: "0",
label: "项目二", label: "进行中",
}, },
{ {
id: 3, id: 3,
value: "项目三", value: "1",
label: "项目三", label: "已完成",
},
{
id: 4,
value: "项目四",
label: "项目四",
}, },
], ],
tabledata: [ tabledata: [
{ // {
key: 1, // key: 1,
name: "哈哈", // name: "哈哈",
bum: "产品部", // bum: "产品部",
gangw: "产品经理", // gangw: "产品经理",
comp: "-", // comp: "-",
score: "-", // score: "-",
time: "-", // time: "-",
state: "未完成", // state: "未完成",
}, // },
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "1",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "10",
score: "10",
time: "2022-10-31 23:12:00",
state: "未完成",
},
], ],
tablecolumns: [ tablecolumns: [
{ {
title: "姓名", title: "姓名",
dataIndex: "name", dataIndex: "userName",
key: "name", key: "userName",
width: 50, width: 50,
align: "center", align: "left",
className: "h", className: "h head",
}, },
{ {
title: "所在部门", title: "所在部门",
dataIndex: "bum", dataIndex: "deptName",
key: "bum", key: "userName",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "所在岗位", title: "所在岗位",
dataIndex: "gangw", dataIndex: "jobName",
key: "gangw", key: "jobName",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "考试次数", title: "课程成绩",
dataIndex: "comp",
key: "comp",
width: 50,
align: "center",
className: "h",
},
{
title: "成绩",
dataIndex: "score", dataIndex: "score",
key: "score", key: "score",
width: 50, width: 60,
align: "center",
className: "h",
},
{
title: "完成时间",
dataIndex: "time",
key: "time",
width: 100,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "任务状态", title: "任务状态",
dataIndex: "state", dataIndex: "status",
key: "state", key: "status",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -317,6 +213,7 @@ export default {
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
state.projectName = value;
}; };
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:TMvisible", false); ctx.emit("update:TMvisible", false);
@@ -327,8 +224,75 @@ export default {
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); console.log("Page: ", pageNumber);
}; };
//获取任务管理列表
const getManageList = () => {
let obj = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
projectTaskId: props.projectTaskId,
status: -1,
};
api
.taskStudentList(obj)
.then((res) => {
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++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
})
.catch((err) => {
console.log("获取测试任务列表失败", err);
});
};
//搜索任务列表
const searchTaskList = () => {
let objser = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
projectTaskId: props.projectTaskId,
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((err) => {
console.log("搜索任务列表失败", err);
});
}
};
//重置任务列表
const resetTaskList = () => {
state.name = "";
state.projectName = "";
state.tabledata = [];
getManageList();
};
let timer; let timer;
onMounted(() => { onMounted(() => {
setTimeout(() => {
getManageList();
}, 1000);
timer = setInterval(() => { timer = setInterval(() => {
state.open = false; state.open = false;
}, 3000); }, 3000);
@@ -344,6 +308,9 @@ export default {
onMounted, onMounted,
onUnmounted, onUnmounted,
onChange, onChange,
getManageList,
searchTaskList,
resetTaskList,
}; };
}, },
}; };

View File

@@ -8,7 +8,7 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">{{ title }}</div> <div class="headerTitle">{{ title }}管理</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@@ -43,11 +43,15 @@
</div> </div>
</div> </div>
<div class="btns"> <div class="btns">
<div class="btn btn1" style="margin-right: 20px"> <div
class="btn btn1"
style="margin-right: 20px"
@click="searchTaskList"
>
<div class="img1"></div> <div class="img1"></div>
<div class="wz">搜索</div> <div class="wz">搜索</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2" @click="resetTaskList">
<div class="img2"></div> <div class="img2"></div>
<div class="wz">重置</div> <div class="wz">重置</div>
</div> </div>
@@ -104,6 +108,7 @@
<script> <script>
import { toRefs, reactive, onMounted, onUnmounted } from "vue"; import { toRefs, reactive, onMounted, onUnmounted } from "vue";
import * as api from "../../api/index";
export default { export default {
name: "TimeManage", name: "TimeManage",
props: { props: {
@@ -118,158 +123,84 @@ export default {
projectTaskId: { projectTaskId: {
type: Number, type: Number,
default: null, default: null,
} },
}, },
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
name: null, visible: props.Tvisible,
name: "",
open: false, open: false,
pageNo: 1,
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
projectName: "",
projectNameList: [ projectNameList: [
{ {
id: 1, id: 1,
value: "项目一", value: "-1",
label: "项目一", label: "未开始",
}, },
{ {
id: 2, id: 2,
value: "项目二", value: "0",
label: "项目二", label: "进行中",
}, },
{ {
id: 3, id: 3,
value: "项目三", value: "1",
label: "项目三", label: "已完成",
},
{
id: 4,
value: "项目四",
label: "项目四",
}, },
], ],
tabledata: [ tabledata: [
{ // {
key: 1, // key: 1,
name: "哈哈", // userName: "哈哈",
bum: "产品部", // deptName: "产品部",
gangw: "产品经理", // gangw: "产品经理",
time: "-", // time: "-",
state: "未完成", // state: "未完成",
}, // },
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
time: "2022-10-31 23:12:00",
state: "未完成",
},
], ],
tablecolumns: [ tablecolumns: [
{ {
title: "姓名", title: "姓名",
dataIndex: "name", dataIndex: "userName",
key: "name", key: "userName",
width: 50, width: 50,
align: "center", align: "left",
className: "h", className: "h head",
}, },
{ {
title: "所在部门", title: "所在部门",
dataIndex: "bum", dataIndex: "deptName",
key: "bum", key: "userName",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "所在岗位", title: "所在岗位",
dataIndex: "gangw", dataIndex: "jobName",
key: "gangw", key: "jobName",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "完成时间", title: "课程成绩",
dataIndex: "time", dataIndex: "score",
key: "time", key: "score",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "任务状态", title: "任务状态",
dataIndex: "state", dataIndex: "status",
key: "state", key: "status",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
@@ -277,6 +208,7 @@ export default {
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
state.projectName = value;
}; };
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Tvisible", false); ctx.emit("update:Tvisible", false);
@@ -287,8 +219,80 @@ export default {
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); console.log("Page: ", pageNumber);
}; };
// watch(props.visible, ()=>{
// getManageList()
// },{immediate:true});
//获取任务管理列表
const getManageList = () => {
let obj = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
// projectTaskId: 370,
projectTaskId: props.projectTaskId,
status: -1,
};
api
.taskStudentList(obj)
.then((res) => {
console.log("csscas成功");
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++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
})
.catch((err) => {
console.log("获取时间任务列表失败cc", err);
});
};
//搜索任务列表
const searchTaskList = () => {
let objser = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
projectTaskId: props.projectTaskId,
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((err) => {
console.log("搜索任务列表失败", err);
});
}
};
//重置任务列表
const resetTaskList = () => {
state.name = "";
state.projectName = "";
state.tabledata = [];
getManageList();
};
let timer; let timer;
onMounted(() => { onMounted(() => {
setTimeout(() => {
getManageList();
}, 500);
timer = setInterval(() => { timer = setInterval(() => {
state.open = false; state.open = false;
}, 3000); }, 3000);
@@ -304,6 +308,9 @@ export default {
onMounted, onMounted,
onUnmounted, onUnmounted,
onChange, onChange,
getManageList,
searchTaskList,
resetTaskList,
}; };
}, },
}; };

View File

@@ -43,11 +43,15 @@
</div> </div>
</div> </div>
<div class="btns"> <div class="btns">
<div class="btn btn1" style="margin-right: 20px"> <div
class="btn btn1"
style="margin-right: 20px"
@click="searchTaskList"
>
<div class="img1"></div> <div class="img1"></div>
<div class="wz">搜索</div> <div class="wz">搜索</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2" @click="resetTaskList">
<div class="img2"></div> <div class="img2"></div>
<div class="wz">重置</div> <div class="wz">重置</div>
</div> </div>
@@ -124,8 +128,9 @@
</template> </template>
<script> <script>
import { toRefs, reactive } from "vue"; import { toRefs, reactive, onMounted } from "vue";
import WorkDetail from "../drawers/WorkDetail.vue"; import WorkDetail from "../drawers/WorkDetail.vue";
import * as api from "../../api/index";
export default { export default {
name: "WorkManage", name: "WorkManage",
components: { WorkDetail }, components: { WorkDetail },
@@ -137,7 +142,7 @@ export default {
projectTaskId: { projectTaskId: {
type: Number, type: Number,
default: null, default: null,
} },
}, },
setup(props, ctx) { setup(props, ctx) {
@@ -146,201 +151,85 @@ export default {
visible: false, //导出数据弹窗 visible: false, //导出数据弹窗
close: false, //导出弹窗的关闭按钮 close: false, //导出弹窗的关闭按钮
WDvisible: false, //作业详情 WDvisible: false, //作业详情
pageNo: 1,
pageSize: 10, pageSize: 10,
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: 100,
projectName: "",
projectNameList: [ projectNameList: [
{ {
id: 1, id: 1,
value: "项目一", value: "-1",
label: "项目一", label: "未开始",
}, },
{ {
id: 2, id: 2,
value: "项目二", value: "0",
label: "项目二", label: "进行中",
}, },
{ {
id: 3, id: 3,
value: "项目三", value: "1",
label: "项目三", label: "已完成",
},
{
id: 4,
value: "项目四",
label: "项目四",
}, },
], ],
tabledata: [ tabledata: [
{ // {
key: 1, // key: 1,
name: "哈哈", // userName: "哈哈",
bum: "产品部", // deptName: "产品部",
gangw: "产品经理", // jobName: "产品经理",
comp: "好好学习", // comp: "好好学习",
time: "-", // time: "-",
state: "未完成", // state: "未完成",
}, // },
{
key: 2,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 3,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 4,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 5,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 6,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 7,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 8,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 9,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
{
key: 10,
name: "哈哈",
bum: "产品部",
gangw: "产品经理",
comp: "好好学习",
time: "2022-10-31 23:12:00",
state: "未完成",
},
], ],
tablecolumns: [ tablecolumns: [
{ {
title: "姓名", title: "姓名",
dataIndex: "name", dataIndex: "userName",
key: "name", key: "userName",
width: 50, width: 50,
align: "center", align: "left",
className: "h", className: "h head",
}, },
{ {
title: "所在部门", title: "所在部门",
dataIndex: "bum", dataIndex: "deptName",
key: "bum", key: "userName",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "所在岗位", title: "所在岗位",
dataIndex: "gangw", dataIndex: "jobName",
key: "gangw", key: "jobName",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "所在小组", title: "课程成绩",
dataIndex: "comp", dataIndex: "score",
key: "comp", key: "score",
width: 50, width: 60,
align: "center",
className: "h",
},
{
title: "完成时间",
dataIndex: "time",
key: "time",
width: 100,
align: "center", align: "center",
className: "h", className: "h",
}, },
{ {
title: "任务状态", title: "任务状态",
dataIndex: "state", dataIndex: "status",
key: "state", key: "status",
width: 50, width: 60,
align: "center", align: "center",
className: "h", className: "h",
}, },
{
title: "操作",
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 50,
align: "center",
scopedSlots: { customRender: "action" }, //引入的插槽
customRender: () => {
return (
<div class="opa">
<div class="opacation">
<span
style="color:#4EA6FF;cursor:pointer"
onClick={() => {
showWorkDetail();
}}
>
查看
</span>
</div>
</div>
);
},
},
], ],
}); });
const selectProjectName = (value, index) => { const selectProjectName = (value, index) => {
console.log("value", value, index); console.log("value", value, index);
state.projectName = value;
}; };
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:Wvisible", false); ctx.emit("update:Wvisible", false);
@@ -357,6 +246,75 @@ export default {
const onChange = (pageNumber) => { const onChange = (pageNumber) => {
console.log("Page: ", pageNumber); console.log("Page: ", pageNumber);
}; };
//获取任务管理列表
const getManageList = () => {
let obj = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
projectTaskId: props.projectTaskId,
status: -1,
};
api
.taskStudentList(obj)
.then((res) => {
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++) {
state.tabledata.push(res.data.data.rows[i].userInfoBo);
}
})
.catch((err) => {
console.log("获取作业任务列表失败", err);
});
};
//搜索任务列表
const searchTaskList = () => {
let objser = {
name: "",
pageNo: state.pageNo,
pageSize: state.pageSize,
projectId: 27,
projectTaskId: props.projectTaskId,
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((err) => {
console.log("搜索任务列表失败", err);
});
}
};
//重置任务列表
const resetTaskList = () => {
state.name = "";
state.projectName = "";
state.tabledata = [];
getManageList();
};
onMounted(() => {
setTimeout(() => {
getManageList();
}, 1000);
});
return { return {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
@@ -365,6 +323,9 @@ export default {
closeModal, closeModal,
showWorkDetail, showWorkDetail,
onChange, onChange,
getManageList,
searchTaskList,
resetTaskList,
}; };
}, },
}; };

View File

@@ -1,161 +0,0 @@
<template>
<!--删除弹窗 -->
<a-modal
v-model:visible="delete_hs"
:footer="null"
:closable="closableQR"
wrapClassName="DelModal"
style="margin-top: 400px"
>
<div class="delete" :style="{ display: delete_hs ? 'block' : 'none' }">
<div class="del_header"></div>
<div class="del_main">
<div class="header">
<div class="del-icon"></div>
<span>提示</span>
<div class="close_exit" @click="delete_exit"></div>
</div>
<div class="body">
<span>您确定要删除此课程吗</span>
</div>
<div class="del_btnbox">
<div class="del_btn btn1">
<div class="btnText" @click="delete_exit">取消</div>
</div>
<div class="del_btn btn2">
<div class="btnText" @click="delete_exit">确定</div>
</div>
</div>
</div>
</div>
</a-modal>
<!--删除弹窗 -->
</template>
<script>
import { toRefs, reactive, defineComponent } from "vue";
export default defineComponent({
name: "DelWins",
props: {
delete_hs: {
type: Boolean,
default: false,
},
},
setup() {
const state = reactive({
delete_hs: false,
closableQR: false,
})
const delete_exit = () => {
state.delete_hs = false;
}
return {
...toRefs(state),
delete_exit,
};
},
})
</script>
<style lang="scss" scope>
.DelModal {
.ant-modal {
.ant-modal-content {
width: 424px !important;
.ant-modal-body {
.delete {
z-index: 999;
width: 424px;
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: 40px;
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;
.del-icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/notice.png);
background-size: 100% 100%;
}
.icon {
width: 16px;
height: 16px;
margin-right: 10px;
background-image: url(@/assets/images/coursewareManage/QR.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;
}
.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;
margin-right: 14px;
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;
}
.btn2 {
background-color: #4ea6ff;
color: #ffffff;
}
}
}
}
}
}
}
}
</style>

View File

@@ -187,7 +187,7 @@
}" }"
@click="showFS" @click="showFS"
> >
学员 <!-- 学员 -->
</div> </div>
<div <div
class="operation" class="operation"
@@ -200,7 +200,7 @@
: 'none', : 'none',
}" }"
> >
考勤 <!-- 考勤 -->
</div> </div>
<div <div
class="operation" class="operation"
@@ -214,7 +214,7 @@
: 'none', : 'none',
}" }"
> >
二维码 <!-- 二维码 -->
</div> </div>
<div <div
class="operation" class="operation"
@@ -238,7 +238,7 @@
: null : null
" "
> >
管理 <!-- 管理 -->
</div> </div>
</div> </div>
</div> </div>

View File

@@ -220,7 +220,10 @@
<div class="split"></div> <div class="split"></div>
<div class="onerow"> <div class="onerow">
<div class="taskmain">任务大纲</div> <div class="taskmain">任务大纲</div>
<button class="btn" @click="showFaceIn">批量面授报名</button> <button class="btn" @click="showFaceIn" v-if="morFaceT">
批量面授报名
</button>
<router-link to="/taskadd">
<button to="/taskadd" class="edit"> <button to="/taskadd" class="edit">
<img <img
class="editimg" class="editimg"
@@ -228,6 +231,7 @@
/> />
<span class="editext">编辑</span> <span class="editext">编辑</span>
</button> </button>
</router-link>
</div> </div>
<!-- <div class="taskSyllabus"> <!-- <div class="taskSyllabus">
<a-collapse v-model:activeKey="taskSyllabusActive" accordion> <a-collapse v-model:activeKey="taskSyllabusActive" accordion>
@@ -405,13 +409,13 @@
item.type == '11' || item.type == '11' ||
item.type == '12' || item.type == '12' ||
item.type == '9' item.type == '9'
? showTime(item.course, item.name) ? showTime(item.name, item.projectTaskId)
: item.type == '5' || item.type == '10' : item.type == '5' || item.type == '10'
? showTest(item.course, item.name) ? showTest(item.name, item.projectTaskId)
: item.type == '2' : item.type == '2'
? showFace(item.course) ? showFace(item.projectTaskId)
: item.type == '4' : item.type == '4'
? showWork(item.course) ? showWork(item.projectTaskId)
: null : null
" "
> >
@@ -429,6 +433,7 @@
background: linear-gradient(180deg, #ddeaff, #f0f8fe); background: linear-gradient(180deg, #ddeaff, #f0f8fe);
display: block; display: block;
" "
v-if="taskSyllabus.length == 0"
> >
<div class="leftt"> <div class="leftt">
<img src="../../assets/images/taskpage/left2.png" /> <img src="../../assets/images/taskpage/left2.png" />
@@ -920,14 +925,16 @@
</div> </div>
<!-- 时间管理抽屉 --> <!-- 时间管理抽屉 -->
<time-manage <time-manage
v-model:Tvisible="visible" v-model:Tvisible.sync="visible"
v-if="visible"
:projectTaskId="projectTaskId"
:title="showTimeText" :title="showTimeText"
v-model:ProjectTaskId="projectTaskId"
/> />
<!-- 面授管理抽屉 --> <!-- 面授管理抽屉 -->
<face-manage <face-manage
v-model:Fvisible="FaceVisivle" v-model:Fvisible.sync="FaceVisivle"
v-model:ProjectTaskId="projectTaskId" v-if="FaceVisivle"
:projectTaskId="projectTaskId"
/> />
<!-- 学员小组管理创建小组抽屉 --> <!-- 学员小组管理创建小组抽屉 -->
<subset-manage v-model:Svisible="subsetVisivle" /> <subset-manage v-model:Svisible="subsetVisivle" />
@@ -958,14 +965,16 @@
<active-attendance v-model:AAvisible="AAvisible" :title="showkaoqinText" /> <active-attendance v-model:AAvisible="AAvisible" :title="showkaoqinText" />
<!-- 作业管理抽屉 --> <!-- 作业管理抽屉 -->
<work-manage <work-manage
v-model:Wvisible="Wvisible" v-model:Wvisible.sync="Wvisible"
v-model:ProjectTaskId="projectTaskId" v-if="Wvisible"
:projectTaskId="projectTaskId"
/> />
<!-- 考试管理抽屉 --> <!-- 考试管理抽屉 -->
<test-manage <test-manage
v-model:TMvisible="TMvisible" v-model:TMvisible.sync="TMvisible"
v-if="Wvisible"
:title="showTestText" :title="showTestText"
v-model:ProjectTaskId="projectTaskId" :projectTaskId="projectTaskId"
/> />
<!-- 批量面授报名 --> <!-- 批量面授报名 -->
<task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" /> <task-imp-stu v-model:TaskFaceImpStuvisible="TaskFaceImpStuvisible" />
@@ -1473,32 +1482,6 @@ export default {
// excellent: true, // excellent: true,
// studentId: 22, // studentId: 22,
// }, // },
// {
// key: 2,
// name: "sss",
// bum: "c",
// gangw: "ss",
// group: "sss",
// progress: "sss",
// diploma: "0",
// stutime: "20202",
// putin: "shs",
// excellent: true,
// studentId: 23,
// },
// {
// key: 3,
// name: "sss",
// bum: "c",
// gangw: "ss",
// group: "sss",
// progress: "sss",
// diploma: "0",
// stutime: "20202",
// putin: "shs",
// excellent: false,
// studentId: 24,
// },
], ],
//小组信息列表 //小组信息列表
groupList: [], groupList: [],
@@ -1513,7 +1496,8 @@ export default {
selectedRowKeys: [], //选择的学员 selectedRowKeys: [], //选择的学员
selectedRows: [], //选择的学员的id值 selectedRows: [], //选择的学员的id值
chooseDeleteOne: [], //删除的单个学员id chooseDeleteOne: [], //删除的单个学员id
projectTaskId: "", //项目任务id // projectId:"", //项目任务id
projectTaskId: "", //项目任务任务id
//进度排行学员 //进度排行学员
rankjindu: [{ value: "学员", label: "学员" }], rankjindu: [{ value: "学员", label: "学员" }],
valuestu1: "学员", valuestu1: "学员",
@@ -1579,6 +1563,8 @@ export default {
valuestugn: "", //小组管理的输入的小组名称 valuestugn: "", //小组管理的输入的小组名称
checkStuId: null, //要查看的学员id checkStuId: null, //要查看的学员id
chooseGroupId: null, chooseGroupId: null,
morFaceT: false, //批量面授报名按钮
faceArr: [], //任务大纲列表所有name
//进度排行表 //进度排行表
jindutabledata: [ jindutabledata: [
{ {
@@ -2064,21 +2050,26 @@ export default {
.getProjectDetail(objtl) .getProjectDetail(objtl)
.then((res) => { .then((res) => {
if (res.status == 200) { if (res.status == 200) {
console.log("res", res);
console.log("阶段列表", res.data.data.stageList); console.log("阶段列表", res.data.data.stageList);
console.log( for (let i = 0; i < res.data.data.stageList.length; i++) {
"任务id", for (
res.data.data.stageList[0].taskList[0].projectTaskId let k = 0;
); k < res.data.data.stageList[i].taskList.length;
//taskList[num] num应该是点那个就是那个数 k++
state.projectTaskId = ) {
res.data.data.stageList[0].taskList[0].projectTaskId; if (res.data.data.stageList[i].taskList[k].name == "面授") {
state.morFaceT = true;
break;
}
}
}
//暂时传个固定的id用 到时候看数据里面是否有在更换
// state.projectTaskId = res.data.data.stageList[0].taskList[0].projectTaskId
let leng = res.data.data.stageList.length; let leng = res.data.data.stageList.length;
if (leng > 0) { if (leng > 0) {
//获取任务列表 阶段
let taskarr = res.data.data.stageList; let taskarr = res.data.data.stageList;
state.taskSyllabus = taskarr; state.taskSyllabus = taskarr;
// console.log(res.data.data.stageList[0].taskList[0].type, "ggg");
} }
} }
}) })
@@ -2258,17 +2249,18 @@ export default {
state.TaskFaceImpStuvisible = true; state.TaskFaceImpStuvisible = true;
}; };
//新增 //新增
const showTime = (course) => { const showTime = (name, id) => {
console.log("点击管理"); console.log("点击管理并传了id");
state.visible = true; state.visible = true;
state.showTimeText = "【" + course + "】" + "管理"; state.showTimeText = name;
// console.log("state.showTimeText", state.showTimeText); state.projectTaskId = id;
}; };
//新增 //新增
const showFace = () => { const showFace = (id) => {
//面授管理的抽屉 //面授管理的抽屉
// console.log("点击管理"); // console.log("点击管理");
state.FaceVisivle = true; state.FaceVisivle = true;
state.projectTaskId = id;
}; };
const showSubset = () => { const showSubset = () => {
// 随机分组 // 随机分组
@@ -2290,13 +2282,15 @@ export default {
state.showkaoqinText = "【" + course + "】" + "考勤"; state.showkaoqinText = "【" + course + "】" + "考勤";
}; };
//作业管理的抽屉 //作业管理的抽屉
const showWork = () => { const showWork = (id) => {
state.Wvisible = true; state.Wvisible = true;
state.projectTaskId = id;
}; };
//考试管理的抽屉 //考试管理的抽屉
const showTest = (course, name) => { const showTest = (name, id) => {
state.TMvisible = true; state.TMvisible = true;
state.showTestText = "【" + course + "】" + name; state.showTestText = name;
state.projectTaskId = id;
}; };
const showStuAdd = () => { const showStuAdd = () => {
state.Stuvisible = true; state.Stuvisible = true;