feat:移动任务 选择面授

This commit is contained in:
宋文超
2022-11-16 09:43:21 +08:00
parent f21d7994dd
commit aa5ed4e7b6
7 changed files with 712 additions and 487 deletions

View File

@@ -22,4 +22,7 @@ export const updateLiveBroadcastMessage = (obj) => http.post('/liveBroadcast/upd
headers: { headers: {
'token': '123' 'token': '123'
} }
}) })
//获取全部评估信息接口
export const queryAssessmentDetailList = (obj) => http.post('/assessment/queryAssessmentDetailList', obj)

View File

@@ -18,3 +18,15 @@ export const editProj = (obj) => http.post('/admin/project/edit', obj)
//路径图里的新建或编辑关卡任务 //路径图里的新建或编辑关卡任务
export const editTask = (obj) => http.post('/admin/router/editTask', obj) export const editTask = (obj) => http.post('/admin/router/editTask', obj)
//项目里获取项目积分规则
export const scoreRule = (obj) => http.get('/admin/project/scoreRule', { params: obj })
//项目里设置项目积分规则
export const setScoreRule = (obj) => http.post('/admin/project/setScoreRule', obj)
//面授课开课列表
export const planList = (obj) => http.post('/admin/offcourse/planList', obj)
//获取面授课列表
export const list = (obj) => http.post('/admin/offcourse/list', obj)

View File

@@ -7,8 +7,8 @@
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">{{edit?'编辑':'添加'}}讨论</div> <div class="headerTitle">{{ edit ? "编辑" : "添加" }}讨论</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"
@@ -56,7 +56,9 @@
<span style="margin-right: 3px">讨论设置</span> <span style="margin-right: 3px">讨论设置</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-checkbox v-model:checked="checkedC1" @change = "checkRadio">允许评论</a-checkbox> <a-checkbox v-model:checked="checkedC1" @change="checkRadio"
>允许评论</a-checkbox
>
</div> </div>
</div> </div>
</div> </div>
@@ -66,14 +68,13 @@
<button class="btn2" @click="updateDiscussInfo">确定</button> <button class="btn2" @click="updateDiscussInfo">确定</button>
</div> </div>
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
import * as api from "../../api/indexDiscuss"; 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";
const rowSelection = ref({ const rowSelection = ref({
checkStrictly: false, checkStrictly: false,
@@ -104,7 +105,8 @@ export default {
type: Number, type: Number,
default: null, default: null,
}, },
edit: { // 是否为编辑 edit: {
// 是否为编辑
type: Boolean, type: Boolean,
default: null, default: null,
}, },
@@ -120,15 +122,18 @@ export default {
type: Number, type: Number,
default: 0, default: 0,
}, },
isLevel: { // 是否是关卡页面触发 isLevel: {
// 是否是关卡页面触发
type: Boolean, type: Boolean,
default: null, default: null,
}, },
EditWorkId: { // 要编辑的workId EditWorkId: {
// 要编辑的workId
type: Number, type: Number,
default: null, default: null,
}, },
projectTaskId: { // 要编辑的projectId projectTaskId: {
// 要编辑的projectId
type: Number, type: Number,
default: null, default: null,
}, },
@@ -139,84 +144,103 @@ export default {
isactive: { isactive: {
type: Number, type: Number,
default: null, default: null,
} },
}, },
setup(props, ctx) { setup(props, ctx) {
console.log("学习路径",props.isStudiscuss); console.log("学习路径", props.isStudiscuss);
const state = reactive({ const state = reactive({
inputV1: "", inputV1: "",
inputV2: "", inputV2: "",
textV1: "", textV1: "",
checkedC1: false, checkedC1: false,
discussSettings:"", discussSettings: "",
addLoading:false, addLoading: false,
}); });
const checkRadio = () =>{ const checkRadio = () => {
if(state.checkedC1){ if (state.checkedC1) {
state.discussSettings = "true" state.discussSettings = "true";
}else{ } else {
state.discussSettings = "false"; state.discussSettings = "false";
} }
console.log("state.checkedC1=====",state.discussSettings,state.discussSettings=="true"); console.log(
} "state.checkedC1=====",
state.discussSettings,
state.discussSettings == "true"
);
};
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:adddiscussVisible", false); ctx.emit("update:adddiscussVisible", false);
ctx.emit("update:edit", false); ctx.emit("update:edit", false);
state.inputV1 = ""; state.inputV1 = "";
state.textV1 = ""; state.textV1 = "";
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`) message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
localStorage.setItem("stageId", props.chooseStageId);
}; };
const queryDiscuss = () =>{ const queryDiscuss = () => {
if(props.edit){ if (props.edit) {
//编辑讨 //编辑讨
api.getDiscussDetail({discussId:props.EditDiscussId}).then(res => { api
console.log('获取讨论信息成功',res.data.data) .getDiscussDetail({ discussId: props.EditDiscussId })
//更新讨论信息 .then((res) => {
state.inputV1 = res.data.data.discussName; console.log("获取讨论信息成功", res.data.data);
state.textV1 = res.data.data.discussExplain; //更新讨论信息
state.checkedC1 = res.data.data.discussSettings=="true"?true:false; state.inputV1 = res.data.data.discussName;
console.log("props.EditDiscussId",res.data.data.discussSettings,"===",res.data.data.discussSettings=="true",state.checkedC1) state.textV1 = res.data.data.discussExplain;
}).catch(err=>{ state.checkedC1 =
console.log('获取讨论信息失败',err) res.data.data.discussSettings == "true" ? true : false;
}) console.log(
"props.EditDiscussId",
} res.data.data.discussSettings,
"===",
res.data.data.discussSettings == "true",
state.checkedC1
);
})
.catch((err) => {
console.log("获取讨论信息失败", err);
});
}
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
if(bool){ if (bool) {
queryDiscuss(); queryDiscuss();
} }
}; };
const updateTask = (res) => { const updateTask = (res) => {
console.log("jinlaile ========",props.isLevel); console.log("jinlaile ========", props.isLevel);
if(props.isLevel){ if (props.isLevel) {
RouterEditTask({ RouterEditTask({
chapterId:props.isactive, chapterId: props.isactive,
courseId: res.data.data.discussId,
name: res.data.data.discussName,
routerId: props.routerId,
routerTaskId: props.routerTaskId ||0,
type: 8,
}).then(res => {
console.log("新增关卡任务失败",res);
}).catch(err => {console.log("新增关卡任务失败",err);})
}else{
apiTask
.addTask({
courseId: res.data.data.discussId, courseId: res.data.data.discussId,
name: res.data.data.discussName, name: res.data.data.discussName,
projectId: props.projectId, routerId: props.routerId,
projectTaskId: props.projectTaskId || 0, routerTaskId: props.routerTaskId || 0,
stageId:props.chooseStageId, type: 8,
type: 8,
}).then(r=>{
console.log("新增关卡任务成功",r);
}).catch(r=>{
console.log('更新阶段任务失败',r)
}) })
} .then((res) => {
} console.log("新增关卡任务失败", res);
})
.catch((err) => {
console.log("新增关卡任务失败", err);
});
} else {
apiTask
.addTask({
courseId: res.data.data.discussId,
name: res.data.data.discussName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId,
type: 8,
})
.then((r) => {
console.log("新增关卡任务成功", r);
})
.catch((r) => {
console.log("更新阶段任务失败", r);
});
}
};
const updateDiscussInfo = () => { const updateDiscussInfo = () => {
if (!state.inputV1) { if (!state.inputV1) {
message.destroy(); message.destroy();
@@ -226,36 +250,36 @@ export default {
discussName: state.inputV1, //讨论名称 discussName: state.inputV1, //讨论名称
discussExplain: state.textV1, //讨论说明 discussExplain: state.textV1, //讨论说明
discussSettings: state.discussSettings, //讨论设置 discussSettings: state.discussSettings, //讨论设置
discussId: props.edit?props.EditDiscussId:0,//讨论Id discussId: props.edit ? props.EditDiscussId : 0, //讨论Id
projectId: 0, //项目id,接口多余字段, projectId: 0, //项目id,接口多余字段,
}; };
console.log("dianwanle -======",String(state.checkedC1)); console.log("dianwanle -======", String(state.checkedC1));
if(props.edit){ if (props.edit) {
api api
.updateDiscuss(obj) .updateDiscuss(obj)
.then((res)=> { .then((res) => {
updateTask(res); updateTask(res);
closeDrawer(); closeDrawer();
ctx.emit("changeData", false); ctx.emit("changeData", false);
console.log("更新成功",res); console.log("更新成功", res);
console.log("项目任务ID",props.projectTaskId) console.log("项目任务ID", props.projectTaskId);
}) })
.catch((err) => { .catch((err) => {
console.log("更新失败",err) console.log("更新失败", err);
}) });
}else{ } else {
api api
.createDiscuss(obj) .createDiscuss(obj)
.then((res)=> { .then((res) => {
updateTask(res); updateTask(res);
closeDrawer(); closeDrawer();
ctx.emit("changeData", false); ctx.emit("changeData", false);
console.log("创建成功",res); console.log("创建成功", res);
console.log("项目任务ID",props.projectTaskId) console.log("项目任务ID", props.projectTaskId);
}) })
.catch((err) => { .catch((err) => {
console.log("创建失败",err) console.log("创建失败", err);
}) });
} }
}; };
return { return {
@@ -392,6 +416,5 @@ export default {
} }
} }
} }
} }
</style> </style>

View File

@@ -10,7 +10,7 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">{{edit?'编辑':'添加'}}直播</div> <div class="headerTitle">{{ edit ? "编辑" : "添加" }}直播</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"
@@ -81,13 +81,18 @@
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input-number <a-input-number
:min="0" :min="0"
:max="300" :max="300"
:precision="0" :precision="0"
style=" width: 364px; height: 32px; border-radius: 8px;overflow: hidden; " style="
v-model:value="inputV2" width: 364px;
></a-input-number> height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV2"
></a-input-number>
<span style="margin-left: 5px">分钟</span> <span style="margin-left: 5px">分钟</span>
</div> </div>
</div> </div>
@@ -102,19 +107,17 @@
<span style="margin-right: 3px">授课老师</span> <span style="margin-right: 3px">授课老师</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-select
<a-select v-model:value="value"
v-model:value="value" show-search
show-search placeholder="Select a teacher"
placeholder="Select a teacher" style="width: 364px"
style="width: 364px" :options="options"
:options="options" :filter-option="filterOption"
:filter-option="filterOption" @focus="handleFocus"
@focus="handleFocus" @blur="handleBlur"
@blur="handleBlur" @change="handleChange2"
@change="handleChange2" ></a-select>
></a-select>
</div> </div>
</div> </div>
<div class="main_item2"> <div class="main_item2">
@@ -122,9 +125,6 @@
<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">
<a-upload <a-upload
v-model:file-list="fileList" v-model:file-list="fileList"
name="avatar" name="avatar"
@@ -135,7 +135,12 @@
:before-upload="beforeUpload" :before-upload="beforeUpload"
@change="handleChange" @change="handleChange"
> >
<img v-if="imageUrl" :src="imageUrl" alt="avatar" style=width100pxheight:100px;/> <img
v-if="imageUrl"
:src="imageUrl"
alt="avatar"
style="“width100pxheight:100px;”"
/>
<div v-else> <div v-else>
<loading-outlined v-if="loading"></loading-outlined> <loading-outlined v-if="loading"></loading-outlined>
<plus-outlined v-else></plus-outlined> <plus-outlined v-else></plus-outlined>
@@ -185,23 +190,26 @@
<span style="margin-right: 3px">评价</span> <span style="margin-right: 3px">评价</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-checkbox v-model:checked="checkedC1" @change = "checkRadio">需要评估</a-checkbox> <a-checkbox v-model:checked="checkedC1" @change="checkRadio"
>需要评估</a-checkbox
>
</div> </div>
</div> </div>
<div class="main_item" style="margin-top: -25px," :style="{ display: checkedC1 ? 'block' : 'none' }"> <div
class="main_item"
style="margin-top: -25px"
:style="{ display: checkedC1 ? 'block' : 'none' }"
>
<div class="signbox"></div> <div class="signbox"></div>
<div class="btnbox"> <div class="btnbox">
<a-select <a-select
v-model:value="value" v-model:value="assessmentvalue"
show-search show-search
placeholder="选择评估" placeholder="选择评估"
style="width: 364px" style="width: 364px"
:options="options" :options="assessment"
:filter-option="filterOption" @change="handleChangeAssessment"
@focus="handleFocus" ></a-select>
@blur="handleBlur"
@change="handleChange2"
></a-select>
</div> </div>
</div> </div>
<div class="main_item2"> <div class="main_item2">
@@ -219,7 +227,12 @@
:min="0" :min="0"
:max="30" :max="30"
:precision="0" :precision="0"
style="width: 88px; height: 32px; border-radius: 8px;overflow: hidden; " style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV6" v-model:value="inputV6"
></a-input-number> ></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
@@ -230,7 +243,12 @@
:min="0" :min="0"
:max="30" :max="30"
:precision="0" :precision="0"
style="width: 88px;height: 32px;border-radius: 8px; overflow: hidden;" style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV7" v-model:value="inputV7"
></a-input-number> ></a-input-number>
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
@@ -246,7 +264,12 @@
:min="0" :min="0"
:max="30" :max="30"
:precision="0" :precision="0"
style=" width: 88px;height: 32px;border-radius: 8px; overflow: hidden; " style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV8" v-model:value="inputV8"
></a-input-number> ></a-input-number>
<span style="color: #999999; margin-left: 8px" <span style="color: #999999; margin-left: 8px"
@@ -274,7 +297,9 @@
<span style="margin-right: 3px">其他设置</span> <span style="margin-right: 3px">其他设置</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-checkbox v-model:checked="checkedC2" @onclick = "checkedC2 = !checkedC2" <a-checkbox
v-model:checked="checkedC2"
@onclick="checkedC2 = !checkedC2"
>学员请假后记为任务完成</a-checkbox >学员请假后记为任务完成</a-checkbox
> >
</div> </div>
@@ -295,7 +320,7 @@ 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 dayjs from 'dayjs'; import dayjs from "dayjs";
// 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();
@@ -309,7 +334,6 @@ const options1 = ref([
}, },
]); ]);
const rowSelection = ref({ const rowSelection = ref({
checkStrictly: false, checkStrictly: false,
onChange: (selectedRowKeys, selectedRows) => { onChange: (selectedRowKeys, selectedRows) => {
@@ -333,12 +357,13 @@ export default {
type: Boolean, type: Boolean,
default: false, default: false,
}, },
EditLiveId: { EditLiveId: {
type: Number, type: Number,
default: null, default: null,
}, },
edit: { // 是否为编辑 edit: {
// 是否为编辑
type: Boolean, type: Boolean,
default: null, default: null,
}, },
@@ -354,11 +379,13 @@ export default {
type: Number, type: Number,
default: 0, default: 0,
}, },
isLevel: { // 是否是关卡页面触发 isLevel: {
// 是否是关卡页面触发
type: Boolean, type: Boolean,
default: null, default: null,
}, },
projectTaskId: { // 要编辑的projectId projectTaskId: {
// 要编辑的projectId
type: Number, type: Number,
default: null, default: null,
}, },
@@ -369,8 +396,7 @@ export default {
isactive: { isactive: {
type: Number, type: Number,
default: null, default: null,
} },
}, },
setup(props, ctx) { setup(props, ctx) {
// const router = useRouter(); // const router = useRouter();
@@ -396,11 +422,13 @@ export default {
checkedC1: false, checkedC1: false,
checkedC2: false, checkedC2: false,
playback: false, playback: false,
assessmentId:"0", assessmentId: null,
obj: {}, //要传的obj数据 obj: {}, //要传的obj数据
assessment: [], //评估信息
assessmentvalue: null,
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:addliveVisible", false); ctx.emit("update:addliveVisible", false);
ctx.emit("update:edit", false); ctx.emit("update:edit", false);
console.log(props, "props"); console.log(props, "props");
state.radioV1 = ""; state.radioV1 = "";
@@ -419,37 +447,59 @@ export default {
state.imageUrl = ""; state.imageUrl = "";
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("props.edit===================", props.edit,bool); console.log("props.edit===================", props.edit, bool);
if(props.edit){ if (props.edit) {
queryLive(); queryLive();
} }
api
.queryAssessmentDetailList({
assessmentName: "",
pageNo: 1,
pageSize: 200,
releaseStatus: "",
searchEndTime: "",
searchStartTime: "",
})
.then((res) => {
console.log(res.data.data.rows, "获取全部评估信息");
res.data.data.rows.forEach((item) => {
let obj = item;
obj.value = item.assessmentId;
obj.label = item.assessmentName;
state.assessment.push(obj);
});
console.log("eeee", state.assessment);
});
}; };
const queryLive = () => { const queryLive = () => {
let d =props.EditLiveId; let d = props.EditLiveId;
console.log("直播查询=======",d); console.log("直播查询=======", d);
api api
.getLiveBroadcastInfor({liveId:d}).then((res) => { .getLiveBroadcastInfor({ liveId: d })
// console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD")); .then((res) => {
state.inputV1 = res.data.data.liveName; // console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD"));
state.time = [dayjs(res.data.data.liveStartTime, "YYYY-MM-DD"), dayjs(res.data.data.liveEndTime, "YYYY-MM-DD")] state.inputV1 = res.data.data.liveName;
state.inputV2= res.data.data.liveDuration; state.time = [
state.inputV3= res.data.data. liveTeacherId; dayjs(res.data.data.liveStartTime, "YYYY-MM-DD"),
//state.fileList= res.data.data dayjs(res.data.data.liveEndTime, "YYYY-MM-DD"),
state.inputV4= res.data.data.liveLink; ];
state.inputV5= res.data.data.livePlaybackLink; state.inputV2 = res.data.data.liveDuration;
state.inputV6= res.data.data.beforeSignIn; state.inputV3 = res.data.data.liveTeacherId;
state.inputV7= res.data.data.afterSignIn; //state.fileList= res.data.data
state.inputV8= res.data.data.signOutTime; state.inputV4 = res.data.data.liveLink;
state.textV1= res.data.data.liveExplain; state.inputV5 = res.data.data.livePlaybackLink;
state.radioV1= res.data.data.standardSettings state.inputV6 = res.data.data.beforeSignIn;
//state.= res.data.data state.inputV7 = res.data.data.afterSignIn;
state.inputV8 = res.data.data.signOutTime;
state.textV1 = res.data.data.liveExplain;
console.log("查询成功=====inputv1",state.inputV1); state.radioV1 = res.data.data.standardSettings;
}).catch(() => { //state.= res.data.data
message.error(`查询失败`) state.assessmentId = res.data.data.assessmentId;
}) console.log("查询成功=====inputv1", state.inputV1);
})
.catch(() => {
message.error(`查询失败`);
});
}; };
const cloradio1 = (value) => { const cloradio1 = (value) => {
@@ -458,7 +508,7 @@ export default {
state.radioV1 = ""; state.radioV1 = "";
} }
}; };
const handleChange = (info) => { const handleChange = (info) => {
if (info.file.status === "uploading") { if (info.file.status === "uploading") {
state.loading = true; state.loading = true;
@@ -496,48 +546,46 @@ export default {
return isJpgOrPng && isLt2M; return isJpgOrPng && isLt2M;
}; };
const updateTask =(res)=>{ const updateTask = (res) => {
if(props.isLevel){ if (props.isLevel) {
RouterEditTask({ RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
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,
routerId: props.routerId, routerId: props.routerId,
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
type: 6, type: 6,
}) })
.then((res) => { .then((res) => {
console.log(res, 11111); console.log(res, 11111);
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`) message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
}) })
.catch((err) => { .catch((err) => {
console.log(err, 1111); console.log(err, 1111);
}); });
}else{ } else {
apiTask apiTask
.addTask({ .addTask({
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,
projectId: props.projectId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId, stageId: props.chooseStageId,
type: 6, type: 6,
}) })
.then((res) => { .then((res) => {
console.log("调用项目添加接口后", res.data); console.log("调用项目添加接口后", res.data);
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`) message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
ctx.emit("changeData", false); ctx.emit("changeData", false);
})
}) .catch((err) => {
.catch((err) => { console.log(err);
console.log(err); });
}); }
};
}
}
//创建直播 //创建直播
const updateLiveBroadcast = () => { const updateLiveBroadcast = () => {
if (!state.inputV1) { if (!state.inputV1) {
@@ -556,8 +604,8 @@ export default {
if (!regular.test(state.inputV2)) { if (!regular.test(state.inputV2)) {
message.destroy(); message.destroy();
return message.warning("直播时长需大于0"); return message.warning("直播时长需大于0");
} }
let startTime = toDate( let startTime = toDate(
new Date(state.time[0].$d).getTime() / 1000, new Date(state.time[0].$d).getTime() / 1000,
"Y-M-D" "Y-M-D"
@@ -566,89 +614,85 @@ export default {
new Date(state.time[1].$d).getTime() / 1000, new Date(state.time[1].$d).getTime() / 1000,
"Y-M-D" "Y-M-D"
); );
state.obj = { state.obj = {
afterSignIn: state.inputV6, afterSignIn: state.inputV6,
beforeSignIn: state.inputV7, beforeSignIn: state.inputV7,
assessmentId: 0, assessmentId: state.assessmentId == null ? 0 : state.assessmentId,
// liveCover: state.fileList,//直播封面 // liveCover: state.fileList,//直播封面
liveDuration: state.inputV2, liveDuration: state.inputV2,
liveEndTime: endTime, liveEndTime: endTime,
liveStartTime: startTime, liveStartTime: startTime,
liveExplain: state.textV1, liveExplain: state.textV1,
liveFlag: "", liveFlag: "",
liveId: props.edit?props.EditLiveId:0, liveId: props.edit ? props.EditLiveId : 0,
liveLink: state.inputV4, liveLink: state.inputV4,
liveName: state.inputV1, liveName: state.inputV1,
livePlayback:state.playback ? "true":"false", livePlayback: state.playback ? "true" : "false",
livePlaybackLink: state.playback?state.inputV5:"", livePlaybackLink: state.playback ? state.inputV5 : "",
liveTeacherId: state.inputV3, liveTeacherId: state.inputV3,
otherSettings:0, //1或0 otherSettings: 0, //1或0
signOutTime: state.inputV8, signOutTime: state.inputV8,
standardSettings: state.radioV1, //1或2 standardSettings: state.radioV1, //1或2
}; };
console.log("zhibo-==========",props.EditLiveId); console.log("zhibo-==========", props.EditLiveId);
if(props.edit){ if (props.edit) {
api api
.updateLiveBroadcastMessage(state.obj) .updateLiveBroadcastMessage(state.obj)
.then((res) => { .then((res) => {
console.log("直播编辑成功", res.data.data); console.log("直播编辑成功", res.data.data);
message.success("提交成功"); message.success("提交成功");
updateTask(res); updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch((err) => { .catch((err) => {
console.log(err, 2222); console.log(err, 2222);
}); });
}else{ } else {
api api
.createLiveBroadcast(state.obj) .createLiveBroadcast(state.obj)
.then((res) => { .then((res) => {
console.log("调用添加直播接口后", res.data.data); console.log("调用添加直播接口后", res.data.data);
// console.log(state, 2222); // console.log(state, 2222);
message.success("提交成功"); message.success("提交成功");
updateTask(res); updateTask(res);
closeDrawer(); closeDrawer();
}) })
.catch((err) => { .catch((err) => {
console.log(err, 2222); console.log(err, 2222);
}); });
} }
}; };
const options = ref([{ const options = ref([]);
value: 'jack', const handleChange2 = (value) => {
label: 'Jack',
}, {
value: 'lucy',
label: 'Lucy',
}, {
value: 'tom',
label: 'Tom',
}]);
const handleChange2 = value => {
console.log(`selected ${value}`); console.log(`selected ${value}`);
}; };
const handleBlur = () => { const handleBlur = () => {
console.log('blur'); console.log("blur");
}; };
const handleFocus = () => { const handleFocus = () => {
console.log('focus'); console.log("focus");
}; };
const checkRadio = () =>{ const checkRadio = () => {
if(state.checkedC1){ if (state.checkedC1) {
state.discussSettings = "true" state.discussSettings = "true";
}else{ } else {
state.discussSettings = "false"; state.discussSettings = "false";
} }
console.log("state.checkedC1=====",state.discussSettings,state.discussSettings=="true"); console.log(
} "state.checkedC1=====",
state.discussSettings,
state.discussSettings == "true"
);
};
const filterOption = (input, option) => { const filterOption = (input, option) => {
return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0; return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0;
}; };
const handleChangeAssessment = (value, option) => {
console.log("选择了", value, option);
state.assessmentId = option.assessmentId;
};
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
@@ -666,6 +710,7 @@ export default {
handleChange2, handleChange2,
options, options,
checkRadio, checkRadio,
handleChangeAssessment,
}; };
}, },
}; };

View File

@@ -52,19 +52,19 @@
<div class="grouprightscore"> <div class="grouprightscore">
<div class="sbutton" @click="typeChange(1)"> <div class="sbutton" @click="typeChange(1)">
<img <img
v-if="stuValue===2" v-if="stuValue === 2"
src="../../assets/images/taskpage/stu0.png" src="../../assets/images/taskpage/stu0.png"
/> />
<img v-else src="../../assets/images/taskpage/stu.png" /> <img v-else src="../../assets/images/taskpage/stu.png" />
<div :class="stuValue===2 ? '' : 'btn1'">学员积分榜</div> <div :class="stuValue === 2 ? '' : 'btn1'">学员积分榜</div>
</div> </div>
<div class="sbutton" @click="typeChange(2)"> <div class="sbutton" @click="typeChange(2)">
<img <img
v-if="stuValue===2" v-if="stuValue === 2"
src="../../assets/images/taskpage/group.png" src="../../assets/images/taskpage/group.png"
/> />
<img v-else src="../../assets/images/taskpage/group0.png" /> <img v-else src="../../assets/images/taskpage/group0.png" />
<div :class="stuValue===2 ? 'btn1' : ''">小组积分榜</div> <div :class="stuValue === 2 ? 'btn1' : ''">小组积分榜</div>
</div> </div>
</div> </div>
<div class="group" style="justify-content: center"> <div class="group" style="justify-content: center">
@@ -101,7 +101,7 @@
</div> </div>
<div class="listdiv"> <div class="listdiv">
<div class="slist"> <div class="slist">
<a-list :data-source="stuValue ===1? datascoreg : datascore"> <a-list :data-source="stuValue === 1 ? datascoreg : datascore">
<template #renderItem="{ item }"> <template #renderItem="{ item }">
<div class="item"> <div class="item">
<div v-if="item.id == 1" class="itemleft"> <div v-if="item.id == 1" class="itemleft">
@@ -141,13 +141,13 @@
<div class="groupright"> <div class="groupright">
<div class="spandiv"><span class="spantext">规则</span></div> <div class="spandiv"><span class="spantext">规则</span></div>
<div v-if="edit" class="btns"> <div v-if="edit" class="btns">
<div class="btn1" @click="edit = !edit"> <div class="btn1" @click="edit = false">
<img src="../../assets/images/projectadd/edit1.png" /> <img src="../../assets/images/projectadd/edit1.png" />
<span class="btn1text">编辑</span> <span class="btn1text">编辑</span>
</div> </div>
</div> </div>
<div v-else class="btns"> <div v-else class="btns">
<div class="btn1" @click="edit = !edit"> <div class="btn1" @click="editRule">
<span class="btn1text">保存</span> <span class="btn1text">保存</span>
</div> </div>
</div> </div>
@@ -164,48 +164,37 @@
><span class="scoretext">{{ score1 }} </span><span>积分</span> ><span class="scoretext">{{ score1 }} </span><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>完成在线课程获得 </span
><span class="scoretext">{{ done }}</span
><span style="margin-right:50px">积分</span>
<span>完成面授课程获得 </span
><span class="scoretext">{{ done1 }}</span
><span style="margin-right:50px">积分</span>
<span>完成作业成绩不低于 </span <span>完成作业成绩不低于 </span
><span class="scoretext">{{ done2 }}</span ><span class="scoretext">{{ done2 }}</span
><span>分获得</span> ><span>分获得</span> <span class="scoretext">{{ done3 }}</span
<span class="scoretext">{{ done3 }}</span
><span>积分</span> ><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span></span <span></span><span class="scoretext">{{ four1 }}</span
><span class="scoretext">{{ four1}}</span
><span>名学完在线课程获得</span> ><span>名学完在线课程获得</span>
<span class="scoretext">{{ four2}}</span <span class="scoretext">{{ four2 }}</span
><span style="margin-right:50px">积分</span> ><span style="margin-right: 50px">积分</span> <span></span
<span></span ><span class="scoretext">{{ four3 }}</span
><span class="scoretext">{{ four3}}</span
><span>名提交作业且成绩不低于</span> ><span>名提交作业且成绩不低于</span>
<span class="scoretext">{{ four4}}</span <span class="scoretext">{{ four4 }}</span
><span >分获得</span> ><span>分获得</span> <span class="scoretext">{{ four5 }}</span
<span class="scoretext">{{ four5}}</span
><span>积分</span> ><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>考试成绩高于</span <span>考试成绩高于</span
><span class="scoretext">{{ five1 }}</span ><span class="scoretext">{{ five1 }}</span
><span>分获得</span> ><span>分获得</span> <span class="scoretext">{{ five2 }}</span
<span class="scoretext">{{ five2 }}</span
><span>积分</span> ><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>考勤正常学员获得 </span <span>考勤正常学员获得 </span
><span class="scoretext">{{ six1}}</span ><span class="scoretext">{{ six1 }}</span
><span>积分</span> ><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>成为小组长获得</span <span>成为小组长获得</span
><span class="scoretext">{{ seven1 }}</span ><span class="scoretext">{{ seven1 }}</span
><span style="margin-right:50px">积分</span> ><span style="margin-right: 50px">积分</span>
<span>优秀学员可获得</span> <span>优秀学员可获得</span>
<span class="scoretext">{{ seven2 }}</span <span class="scoretext">{{ seven2 }}</span
><span>积分</span> ><span>积分</span>
@@ -228,82 +217,60 @@
><span>积分</span> ><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>完成在线课程获得 </span <span>完成作业成绩不低于 </span
><span ><a-input v-model:value="done2" :bordered="false" /><span
><a-input v-model:value="done" :bordered="false" /></span >分获得</span
><span style="margin-right:50px">积分</span> >
<span>完成面授课程获得 </span <a-input v-model:value="done3" :bordered="false" /><span
><a-input >积分</span
v-model:value="done1" >
:bordered="false"
/>
<span style="margin-right:50px">积分</span>
<span>完成作业成绩不低于 </span
><a-input
v-model:value="done2"
:bordered="false"
/><span>分获得</span>
<a-input
v-model:value="done3"
:bordered="false"
/><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span></span <span></span
><a-input ><a-input v-model:value="four1" :bordered="false" /><span
v-model:value="four1" >名学完在线课程获得</span
:bordered="false" >
/><span>名学完在线课程获得</span> <a-input v-model:value="four2" :bordered="false" /><span
<a-input style="margin-right: 50px"
v-model:value="four2" >积分</span
:bordered="false" >
/><span style="margin-right:50px">积分</span>
<span></span <span></span
><a-input ><a-input v-model:value="four3" :bordered="false" /><span
v-model:value="four3" >名提交作业且成绩不低于</span
:bordered="false" >
/><span>名提交作业且成绩不低于</span> <a-input v-model:value="four4" :bordered="false" /><span
<a-input >分获得</span
v-model:value="four4" >
:bordered="false" <a-input v-model:value="four5" :bordered="false" /><span
/><span >分获得</span> >积分</span
<a-input >
v-model:value="four5"
:bordered="false"
/><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>考试成绩高于</span <span>考试成绩高于</span
><a-input ><a-input v-model:value="five1" :bordered="false" /><span
v-model:value="five1" >分获得</span
:bordered="false" >
/><span>分获得</span> <a-input v-model:value="five2" :bordered="false" /><span
<a-input >积分</span
v-model:value="five2" >
:bordered="false"
/><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>考勤正常学员获得 </span <span>考勤正常学员获得 </span
><a-input ><a-input v-model:value="six1" :bordered="false" /><span
v-model:value="six1" >积分</span
:bordered="false" >
/><span>积分</span>
</div> </div>
<div class="content"> <div class="content">
<span>成为小组长获得</span <span>成为小组长获得</span
><a-input ><a-input v-model:value="seven1" :bordered="false" /><span
v-model:value="seven1" style="margin-right: 50px"
:bordered="false" >积分</span
/><span style="margin-right:50px">积分</span> >
<span>优秀学员可获得</span> <span>优秀学员可获得</span>
<a-input <a-input v-model:value="seven2" :bordered="false" /><span
v-model:value="seven2" >积分</span
:bordered="false" >
/><span>积分</span>
</div> </div>
</div> </div>
</div> </div>
</div></a-tab-pane </div></a-tab-pane
@@ -315,8 +282,11 @@
<script> <script>
import StuScoreDetail from "../../components/drawers/StuScoreDetail"; import StuScoreDetail from "../../components/drawers/StuScoreDetail";
import { reactive, toRefs } from "vue"; import { reactive, toRefs, computed } from "vue";
import * as api from "../../api/index1"; import * as api from "../../api/index1";
// import { message } from "ant-design-vue";
// import { scoreRule } from "../../api/indexTaskadd"; //获取项目积分规则
import { setScoreRule } from "../../api/indexTaskadd"; //设置项目积分规则
export default { export default {
name: "ProjectScore", name: "ProjectScore",
components: { components: {
@@ -483,24 +453,21 @@ export default {
tableDataTotal: 30, tableDataTotal: 30,
stuValue: false, stuValue: false,
Svisible: false, Svisible: false,
score1: 5, score1: null,
score2: 5, done2: null,
done:null, done3: null,
done1:null, four1: null,
done2:null, four2: null,
done3:null, four3: null,
four1:null, four4: null,
four2:null, four5: null,
four3:null, five1: null,
four4:null, five2: null,
four5:null, six1: null,
five1:null, seven1: null,
five2:null, seven2: null,
six1:null,
seven1:null,
seven2:null,
edit: true, edit: true,
searchRankName:null,//榜单搜索名称 searchRankName: null, //榜单搜索名称
}); });
const getTableData = () => { const getTableData = () => {
let datas = state.tabledataStu; let datas = state.tabledataStu;
@@ -523,6 +490,23 @@ export default {
}); });
state.tabledataStu = datas; state.tabledataStu = datas;
}; };
const scoresum = computed(() => {
// console.log(Object.prototype.toString.call(Number(state.score1)));
// if (Object.prototype.toString.call(state.score1) !== "[object Number]") {
// message.destroy();
// return message.warning("请输入合法数字");
// }
return (
Number(state.score1) +
Number(state.done3) +
Number(state.four2) +
Number(state.four5) +
Number(state.five2) +
Number(state.six1) +
Number(state.seven1) +
Number(state.seven2)
);
});
getTableData(); getTableData();
const tabsChange = (e) => { const tabsChange = (e) => {
@@ -530,30 +514,29 @@ export default {
// console.log('获取项目积分-榜单') // console.log('获取项目积分-榜单')
scoreRank(1, 1); scoreRank(1, 1);
} }
rankReset() rankReset();
state.todayvalue='1' state.todayvalue = "1";
state.stuValue=1 state.stuValue = 1;
}; };
//重置 //重置
const rankReset=()=>{ const rankReset = () => {
state.searchRankName=null state.searchRankName = null;
} };
// start -------榜单---------------榜单------------榜单------------------榜单--------- // start -------榜单---------------榜单------------榜单------------------榜单---------
//学员积分还是小组积分 //学员积分还是小组积分
const typeChange = (num) => { const typeChange = (num) => {
state.stuValue = num; state.stuValue = num;
scoreRank(state.stuValue , state.todayvalue); scoreRank(state.stuValue, state.todayvalue);
}; };
//选择时间 //选择时间
const changeday = (e) => { const changeday = (e) => {
state.todayvalue = e.target.value; state.todayvalue = e.target.value;
scoreRank(state.stuValue , state.todayvalue); scoreRank(state.stuValue, state.todayvalue);
}; };
//搜索 //搜索
const searchRank = () => { const searchRank = () => {
scoreRank(state.stuValue , state.todayvalue) scoreRank(state.stuValue, state.todayvalue);
}; };
//项目积分榜单 //项目积分榜单
const scoreRank = (period, type) => { const scoreRank = (period, type) => {
@@ -576,6 +559,46 @@ export default {
}); });
}; };
// end -----榜单----------------榜单----------------------榜单-----------榜单---------- // end -----榜单----------------榜单----------------------榜单-----------榜单----------
const editRule = () => {
console.log(props.projectId);
let obj = {
courseScore: state.score1,
examItem: {
numLimit: 0,
score: state.five2,
scoreLimit: state.five1,
},
//有名次要求的提交作业
homeworkItem: {
numLimit: state.four3,
score: state.four5,
scoreLimit: state.four4,
},
leaderScore: state.seven1,
projectId: props.projectId,
signScore: state.six1,
topCompleteCourseItem: {
numLimit: state.four1,
score: state.four2,
scoreLimit: 0,
},
topStudentScore: state.seven2,
totalScore: scoresum.value,
};
console.log(obj);
setScoreRule(obj)
.then((res) => {
console.log(res.data, "修改成功");
})
.catch((err) => {
console.log(err.data);
});
// scoreRule({
// projectId: props.projectId,
// });
state.edit = true;
};
return { return {
...toRefs(state), ...toRefs(state),
typeChange, typeChange,
@@ -584,14 +607,25 @@ export default {
rankReset, rankReset,
tabsChange, tabsChange,
scoreRank, scoreRank,
editRule,
scoresum,
}; };
}, },
computed: { // computed: {
// 计算属性的 getter // // 计算属性的 getter
scoresum: function () { // scoresum: function () {
return Number(this.score1) + Number(this.score2); // return (
}, // Number(this.score1) +
}, // Number(this.done3) +
// Number(this.four2) +
// Number(this.four5) +
// Number(this.five2) +
// Number(this.six1) +
// Number(this.seven1) +
// Number(this.seven2)
// );
// },
// },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">

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="value" v-model:value="valueClass"
style="width: 240px; height: 40px; border-radius: 8px" style="width: 240px; height: 40px; border-radius: 8px"
placeholder="请输入项目名称" placeholder="请输入项目名称"
/> />
@@ -37,6 +37,8 @@
style="width: 240px" style="width: 240px"
placeholder="请选择" placeholder="请选择"
:options="options1" :options="options1"
@change="handleChange"
v-model:value="valueContent"
allowClear allowClear
showSearch showSearch
/> />
@@ -44,11 +46,11 @@
</div> </div>
</div> </div>
<div class="mi_btns"> <div class="mi_btns">
<div class="btn btn1"> <div class="btn btn1" @click="search">
<div class="search"></div> <div class="search"></div>
<div class="btnText">搜索</div> <div class="btnText">搜索</div>
</div> </div>
<div class="btn btn2"> <div class="btn btn2" @click="reset">
<div class="search"></div> <div class="search"></div>
<div class="btnText">重置</div> <div class="btnText">重置</div>
</div> </div>
@@ -63,28 +65,23 @@
" "
:row-selection="rowSelection" :row-selection="rowSelection"
:columns="columns1" :columns="columns1"
:data-source="tableData1" :data-source="classTableData"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
:pagination="{ :pagination="false"
showSizeChanger: true,
showQuickJumper: true,
hideOnSinglePage: true,
pageSizeOptions: [],
pageSize: pageSize,
current: currentPage,
total: tableDataTotal,
onChange: (page, pageSize) => {
currentPage = page;
// console.log('page', page)
// 加翻页查找代码
// this.setState({
// currentPage: page,
// }, () => {
// this.getMilitaryDeployment()
// })
},
}"
/> />
<div class="pa">
<a-pagination
v-if="total > 10"
showSizeChanger="true"
showQuickJumper="true"
hideOnSinglePage="true"
:pageSize="pageSize"
:current="currentPage"
:total="tableDataTotal"
class="pagination"
@change="changePaginationStu"
/>
</div>
</div> </div>
</div> </div>
<div class="main_btns"> <div class="main_btns">
@@ -96,10 +93,17 @@
</template> </template>
<script> <script>
import { reactive, toRefs, ref } from "vue"; import { reactive, toRefs, ref } from "vue";
// import { planList } from "../../api/indexTaskadd";
import { list } from "../../api/indexTaskadd";
import { toDate } from "../../api/method";
const options1 = ref([ const options1 = ref([
{ {
value: "value1", value: "value1",
label: "请选择状态", label: "通用",
},
{
value: "value2",
label: "领导",
}, },
]); ]);
const columns1 = [ const columns1 = [
@@ -172,7 +176,7 @@ export default {
}, },
setup(props, ctx) { setup(props, ctx) {
const state = reactive({ const state = reactive({
tableData1: [ classTableData: [
{ {
key: "1", key: "1",
num: "JDF2022071100001", num: "JDF2022071100001",
@@ -185,8 +189,8 @@ export default {
{ {
key: "2", key: "2",
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",
@@ -194,7 +198,7 @@ export default {
{ {
key: "3", key: "3",
num: "JDF2022071100001", num: "JDF2022071100001",
name: "快速换模SMED", name: "时间管理课程",
content: "通用力", content: "通用力",
teacher: "BOE教师", teacher: "BOE教师",
creator: "管理员", creator: "管理员",
@@ -203,80 +207,119 @@ export default {
{ {
key: "4", key: "4",
num: "JDF2022071100001", num: "JDF2022071100001",
name: "巧妙对话人见人夸",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "5",
num: "JDF2022071100001",
name: "管理能力课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "6",
num: "JDF2022071100001",
name: "时间管理课程", name: "时间管理课程",
content: "领导", content: "通用",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "7",
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "8",
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师",
creator: "管理员",
time: "2022-10-31 23:12:00",
},
{
key: "9",
num: "JDF2022071100001",
name: "时间管理课程",
content: "领导力",
teacher: "BOE教师", teacher: "BOE教师",
creator: "管理员", creator: "管理员",
time: "2022-10-31 23:12:00", time: "2022-10-31 23:12:00",
}, },
], ],
currentPage: 1, currentPage: 1,
tableDataTotal: 100, tableDataTotal: null,
pageSize: 10, pageSize: 10,
value:'', valueClass: null, //课程编号
valueContent: null, //内容分类
}); });
const closeDrawer = () => { const closeDrawer = () => {
ctx.emit("update:selfacetVisible", false); ctx.emit("update:selfacetVisible", false);
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
console.log("state", bool); console.log("state", bool);
getClassList();
}; };
const showDrawerSelFacet = () => { // const showDrawerSelFacet = () => {
state.selfacetvisible = true; // state.selfacetvisible = true;
// };
//获取面授课列表
const getClassList = (obj) => {
let objn = obj || {
auditStatus: 0,
beginTime: 0,
categoryId: 0,
createName: "",
endTime: 0,
name: "",
pageNo: state.currentPage,
pageSize: 10,
projectName: "",
};
list(objn)
.then((res) => {
console.log(res.data.data.rows);
let result = res.data.data;
state.tableDataTotal = result.total;
if (result.total > 0) {
getClassData(result.rows);
}
})
.catch((err) => {
console.log("获取列表失败", err.data);
});
};
const getClassData = (tabledata) => {
let data = tabledata;
let array = [];
data.map((value) => {
let obj = {
key: value.offcourseId,
num: value.offcourseId,
name: value.name,
teacher: value.teacher,
creator: value.teacher,
time: toDate(value.publishTime / 1000, "Y-M-D"),
categoryId: value.categoryId,
//需要判断content
};
array.push(obj);
});
state.classTableData = array;
};
const handleChange = (value, option) => {
console.log("改变了", value, option);
console.log(state.valueContent);
};
//重置
const reset = () => {
state.valueClass = null;
state.valueContent = null;
//重新获取列表
getClassList();
};
//搜索
const search = () => {
let obj = {
auditStatus: 0,
beginTime: 0,
categoryId: 0, //分类
createName: "",
endTime: 0,
name: "",
pageNo: state.currentPage,
pageSize: 10,
projectName: "",
};
getClassList(obj);
};
const changePaginationStu = (page) => {
state.currentPage = page;
getClassList();
}; };
return { return {
...toRefs(state), ...toRefs(state),
showDrawerSelFacet, // showDrawerSelFacet,
afterVisibleChange, afterVisibleChange,
closeDrawer, closeDrawer,
options1, options1,
columns1, columns1,
rowSelection, rowSelection,
getClassData,
handleChange,
reset,
getClassList,
search,
changePaginationStu,
// change, // change,
}; };
}, },

View File

@@ -841,16 +841,28 @@
<a-select <a-select
v-model:value="curLevel" v-model:value="curLevel"
style="width: 100%" style="width: 100%"
placeholder="请选择关卡" placeholder="请选择阶段"
:options="projectNameList4" :options="level"
@change="selectProjectName4" @change="handleChangeStage"
allowClear allowClear
showSearch showSearch
></a-select> ></a-select>
</div> </div>
<div class="btn"> <div class="btn">
<button class="sameb btn1" @click="closeChangeModal">取消</button> <button
<button class="sameb btn2" @click="moveTask">确定</button> style="cursor: pointer"
class="sameb btn1"
@click="closeChangeModal"
>
取消
</button>
<button
style="cursor: pointer"
class="sameb btn2"
@click="moveTask"
>
确定
</button>
</div> </div>
</div> </div>
</div> </div>
@@ -943,6 +955,7 @@ export default {
? JSON.parse(storage.get("projectId")) ? JSON.parse(storage.get("projectId"))
: null, : null,
chooseStageId: null, chooseStageId: null,
removeStageId: null,
edit: false, edit: false,
// isRefEdit: 1, //外链编辑 // isRefEdit: 1, //外链编辑
// isLiveEdit: 1, //直播编辑 // isLiveEdit: 1, //直播编辑
@@ -1211,6 +1224,8 @@ export default {
tit: value.name, tit: value.name,
name: value.remark, name: value.remark,
taskList: value.taskList, taskList: value.taskList,
value: value.name,
label: value.name,
}; };
array.push(obj); array.push(obj);
}); });
@@ -1360,8 +1375,27 @@ export default {
// console.log("22222", res.data.data.stageList); // console.log("22222", res.data.data.stageList);
let leng = res.data.data.stageList.length; let leng = res.data.data.stageList.length;
if (leng > 0) { if (leng > 0) {
// let stage = localStorage.getItem("stageId")
// ? localStorage.getItem("stageId")
// : null;
// if (stage !== null) {
// // console.log("找到了origin", originStageList);
// let originStageList = res.data.data.stageList.find((item) => {
// item.stageId == stage;
// });
// getTableData(originStageList.taskList);
// console.log("找到了origin", originStageList);
// } else {
// let arr = res.data.data.stageList[0].taskList;
// console.log("任务列表", arr);
// getTableData(arr);
// }
let stage = localStorage.getItem("stageId")
? localStorage.getItem("stageId")
: null;
let arr = res.data.data.stageList[0].taskList; let arr = res.data.data.stageList[0].taskList;
console.log("任务列表", arr); console.log("任务列表", stage, arr);
getTableData(arr); getTableData(arr);
} }
@@ -1376,8 +1410,15 @@ export default {
}); });
} }
//给阶段id赋初始值 //给阶段id赋初始值
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null; let stage = localStorage.getItem("stageId")
console.log(state.chooseStageId, 1111); ? localStorage.getItem("stageId")
: null;
if (stage !== null) {
state.chooseStageId = stage;
} else {
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
console.log(state.chooseStageId, 1111);
}
} }
}) })
.catch((err) => { .catch((err) => {
@@ -1412,28 +1453,47 @@ export default {
}; };
const showChangeModal = () => { const showChangeModal = () => {
state.visiblene = true; if (state.selectRow.length == 0) {
message.destroy();
return message.warning("请选择要移动的任务");
} else {
state.visiblene = true;
}
}; };
const closeChangeModal = () => { const closeChangeModal = () => {
state.visiblene = false; state.visiblene = false;
}; };
//移动任务到阶段 //移动任务到阶段
const moveTask = () => { const moveTask = () => {
let obj = { if (state.chooseStageId == state.removeStageId) {
stageId: state.chooseStageId, console.log("buneng");
projectTaskId: state.selectRow, message.destroy();
}; message.warning("选择的任务已在当前阶段");
apimove } else if (state.removeStageId == null) {
.moveTask(obj) message.destroy();
.then((res) => { message.warning("请选择阶段");
console.log("移动成功", res); } else {
message.destroy(); {
message.success("移动成功"); let obj = {
getTask(); stageId: state.removeStageId,
}) projectTaskId: state.selectRow,
.catch((err) => { };
console.log("移动失败", err); apimove
}); .moveTask(obj)
.then((res) => {
console.log("移动成功", res);
message.destroy();
message.success("移动成功");
console.log(state.removeStageId);
getTask();
localStorage.setItem("stageId", state.chooseStageId);
})
.catch((err) => {
console.log("移动失败", err);
});
state.visiblene = false;
}
}
}; };
//批量删除 //批量删除
const deleteTaskAll = () => { const deleteTaskAll = () => {
@@ -1715,6 +1775,10 @@ export default {
const closeDeAll = () => { const closeDeAll = () => {
state.deAll = false; state.deAll = false;
}; };
const handleChangeStage = (value, option) => {
console.log("阶段改变", value, option);
state.removeStageId = option.id;
};
return { return {
...toRefs(state), ...toRefs(state),
selectProjectName, selectProjectName,
@@ -1764,6 +1828,7 @@ export default {
decideType, decideType,
showdeAll, showdeAll,
closeDeAll, closeDeAll,
handleChangeStage,
}; };
}, },
}; };