feat:合并

This commit is contained in:
lixg
2023-02-19 20:06:24 +08:00
5 changed files with 205 additions and 190 deletions

View File

@@ -410,22 +410,22 @@ export default {
debugger debugger
console.log("计算签到时间", props.datasource); console.log("计算签到时间", props.datasource);
let beginTime = new Date(props.datasource.startTime).getTime(); let beginTime = new Date(props.datasource.startTime).getTime();
let endTime = !props.datasource.info.afterSignIn let endTime = !props.datasource.afterStart
? new Date(props.datasource.endTime).getTime() ? new Date(props.datasource.endTime).getTime()
: new Date(props.datasource.startTime).getTime(); : new Date(props.datasource.startTime).getTime();
if (props.datasource.info.beforeSignIn && props.datasource.info.afterSignIn) { if (props.datasource.beforeStart && props.datasource.afterStart) {
//有开始前有开始后 //有开始前有开始后
beginTime = beginTime - props.datasource.info.beforeSignIn * 60 * 1000; beginTime = beginTime - props.datasource.beforeStart * 60 * 1000;
endTime = endTime + props.datasource.info.afterSignIn * 60 * 1000; endTime = endTime + props.datasource.afterStart * 60 * 1000;
console.log("1111", beginTime, endTime); console.log("1111", beginTime, endTime);
} else if (props.datasource.info.beforeSignIn && !props.datasource.info.afterSignIn) { } else if (props.datasource.beforeStart && !props.datasource.afterStart) {
//只有开始前无开始后 //只有开始前无开始后
beginTime = beginTime - props.datasource.info.beforeSignIn * 60 * 1000; beginTime = beginTime - props.datasource.beforeStart * 60 * 1000;
console.log("11112222", beginTime); console.log("11112222", beginTime);
} else if (!props.datasource.info.beforeSignIn && props.datasource.info.afterSignIn) { } else if (!props.datasource.beforeStart && props.datasource.afterStart) {
//无开始前有开始后 //无开始前有开始后
endTime = endTime + props.datasource.info.afterSignIn * 60 * 1000; endTime = endTime + props.datasource.afterStart * 60 * 1000;
console.log("1111333", endTime); console.log("1111333", endTime);
} }
@@ -585,7 +585,7 @@ export default {
courseId: Number(props.datasource.courseId), courseId: Number(props.datasource.courseId),
routerId: Number(props.datasource.routerId), routerId: Number(props.datasource.routerId),
ids: state.selectedStudents, ids: state.selectedStudents,
taskId: Number(props.datasource.routerTaskId), taskId: Number(props.datasource.id),
taskType: Number(props.datasource.type), taskType: Number(props.datasource.type),
type: 1, type: 1,
}; };
@@ -739,6 +739,7 @@ export default {
<div class="opa" style='display:flex;justify-content:center;align-items:center;'> <div class="opa" style='display:flex;justify-content:center;align-items:center;'>
<div <div
onClick={()=>{ onClick={()=>{
debugger
console.log("点击签到", value); console.log("点击签到", value);
// 获取当前时间 // 获取当前时间
{/* showsingleqdModal(); */} {/* showsingleqdModal(); */}
@@ -748,7 +749,7 @@ export default {
courseId: Number(props.datasource.courseId), courseId: Number(props.datasource.courseId),
routerId: Number(props.datasource.routerId), routerId: Number(props.datasource.routerId),
ids: [value.record.studentId], ids: [value.record.studentId],
taskId: Number(props.datasource.routerTaskId), taskId: Number(props.datasource.id),
taskType: Number(props.datasource.type), taskType: Number(props.datasource.type),
type: 1, type: 1,
}; };
@@ -921,7 +922,7 @@ export default {
process.env.VUE_APP_BASE_API process.env.VUE_APP_BASE_API
}/admin/student/exportTaskStudent?currentStageId=${ }/admin/student/exportTaskStudent?currentStageId=${
props.datasource.stageId props.datasource.stageId
}&type=1&pid=${props.datasource.courseId}&thirdType=1&taskId=${props.datasource.projectTaskId}&taskType=${props.datasource.type}` }&type=1&pid=${props.datasource.courseId}&thirdType=1&taskId=${props.datasource.id}&taskType=${props.datasource.type}`
); );
} }

View File

@@ -12,7 +12,9 @@
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">{{ taskIndex >= 0 ? "编辑" : "添加" }}直播</div> <div class="headerTitle">
{{ taskIndex >= 0 ? "编辑" : "添加" }}直播
</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"
@@ -189,7 +191,8 @@
<span style="margin-right: 3px">回放设置</span> <span style="margin-right: 3px">回放设置</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-switch v-model:checked="formData.livePlayback" <a-switch
v-model:checked="formData.livePlayback"
@change="getchange(formData.livePlayback)" @change="getchange(formData.livePlayback)"
/> />
</div> </div>
@@ -281,8 +284,7 @@
<span style="margin-right: 3px">评估</span> <span style="margin-right: 3px">评估</span>
</div> </div>
<div class="btnbox2"> <div class="btnbox2">
<a-checkbox <a-checkbox v-model:checked="formData.isEvaluate"
v-model:checked="formData.isEvaluate"
>需要评估 >需要评估
</a-checkbox> </a-checkbox>
</div> </div>
@@ -290,13 +292,18 @@
<div v-if="formData.isEvaluate" class="main_item"> <div v-if="formData.isEvaluate" class="main_item">
<div class="signbox"></div> <div class="signbox"></div>
<div class="btnbox"> <div class="btnbox">
<AddInvistRoot v-model:id="formData.assessmentId" v-model:name="formData.assessmentName"> <AddInvistRoot
v-model:id="formData.assessmentId"
v-model:name="formData.assessmentName"
>
<button class="xkbtn">选择评估</button> <button class="xkbtn">选择评估</button>
</AddInvistRoot> </AddInvistRoot>
<div v-if="formData.assessmentId"> <div v-if="formData.assessmentId">
<a-tag closable @close="removePG" color="processing"> <a-tag closable @close="removePG" color="processing">
<span style="font-size: 14px; line-height: 33px">{{ formData.assessmentName }}</span> <span style="font-size: 14px; line-height: 33px">{{
formData.assessmentName
}}</span>
</a-tag> </a-tag>
</div> </div>
</div> </div>
@@ -325,35 +332,35 @@ import {Form, message} from "ant-design-vue";
import { fileUp } from "../../api/indexEval"; import { fileUp } from "../../api/indexEval";
const removePG = () => { const removePG = () => {
formData.value.assessmentId = '' formData.value.assessmentId = "";
formData.value.assessmentName = '' formData.value.assessmentName = "";
}; };
const getchange = (mess) => { const getchange = (mess) => {
console.log(mess); //输出true或者false console.log(mess); //输出true或者false
}; };
const props = defineProps({ const props = defineProps({
type: Number, type: Number,
taskList: [] taskList: [],
}) });
const visible = ref(false) const visible = ref(false);
const formData = ref({ const formData = ref({
liveName: '', liveName: "",
liveLink: '', liveLink: "",
liveStartTime: '', liveStartTime: "",
liveEndTime: '', liveEndTime: "",
liveNotice: '', liveNotice: "",
liveDuration: '', liveDuration: "",
liveTeacherId: '', liveTeacherId: "",
liveTeacherName: '', liveTeacherName: "",
liveCover: '', liveCover: "",
beforeSignIn:'', beforeSignIn: "",
afterSignIn:'', afterSignIn: "",
isEvaluate:'', isEvaluate: "",
assessmentId:'', assessmentId: "",
assessmentName:'', assessmentName: "",
livePlayback:'', livePlayback: "",
}) });
const emit = defineEmits({}) const emit = defineEmits({});
const taskIndex = ref(-1); const taskIndex = ref(-1);
const dateTime = ref([]); const dateTime = ref([]);
@@ -361,56 +368,56 @@ const rulesRef = ref({
liveName: [ liveName: [
{ {
required: true, required: true,
message: '请输入直播名称', message: "请输入直播名称",
}, },
], ],
liveLink: [ liveLink: [
{ {
type: 'url', type: "url",
required: true, required: true,
message: '请输入直播链接', message: "请输入直播链接",
}, },
], ],
liveStartTime: [ liveStartTime: [
{ {
required: true, required: true,
message: '请选择开始时间', message: "请选择开始时间",
}, },
], ],
liveEndTime: [ liveEndTime: [
{ {
required: true, required: true,
message: '请选择结束时间', message: "请选择结束时间",
}, },
], ],
liveNotice: [ liveNotice: [
{ {
required: true, required: true,
message: '请输入直播公告', message: "请输入直播公告",
}, },
], ],
liveDuration: [ liveDuration: [
{ {
required: true, required: true,
message: '请输入直播时长', message: "请输入直播时长",
}, },
], ],
liveTeacherId: [ liveTeacherId: [
{ {
required: true, required: true,
message: '请选择直播教师', message: "请选择直播教师",
}, },
], ],
liveTeacherName: [ liveTeacherName: [
{ {
required: true, required: true,
message: '请选择直播教师', message: "请选择直播教师",
}, },
], ],
liveCover: [ liveCover: [
{ {
required: true, required: true,
message: '请上传直播封面', message: "请上传直播封面",
}, },
], ],
}); });
@@ -418,10 +425,10 @@ const rulesRef = ref({
const { resetFields, validate } = Form.useForm(formData, rulesRef); const { resetFields, validate } = Form.useForm(formData, rulesRef);
const closeDrawer = () => { const closeDrawer = () => {
visible.value = false visible.value = false;
taskIndex.value = -1 taskIndex.value = -1;
dateTime.value = [] dateTime.value = [];
resetFields() resetFields();
}; };
const range = (start, end) => { const range = (start, end) => {
@@ -433,12 +440,12 @@ const range = (start, end) => {
}; };
function timeChange(time, timeStr) { function timeChange(time, timeStr) {
formData.value.liveStartTime = timeStr[0] formData.value.liveStartTime = timeStr[0];
formData.value.liveEndTime = timeStr[1] formData.value.liveEndTime = timeStr[1];
} }
const disabledDate = (current) => { const disabledDate = (current) => {
return current && current < dayjs().startOf('day'); return current && current < dayjs().startOf("day");
}; };
const disabledRangeTime = () => ({ const disabledRangeTime = () => ({
@@ -448,32 +455,38 @@ const disabledRangeTime = () => ({
}); });
async function confirm() { async function confirm() {
debugger;
console.log("确定按钮:");
await validate().catch(({ errorFields }) => { await validate().catch(({ errorFields }) => {
message.warning(errorFields[0].errors.join()); message.warning(errorFields[0].errors.join());
throw Error("数据校验不通过") throw Error("数据校验不通过");
}); });
if (taskIndex.value === -1) { if (taskIndex.value === -1) {
const list = props.taskList const list = props.taskList;
list.push({name: formData.value.liveName, type: props.type, info: {...formData.value}}) list.push({
name: formData.value.liveName,
type: props.type,
info: { ...formData.value },
});
} else { } else {
const data = props.taskList[taskIndex.value] const data = props.taskList[taskIndex.value];
data.name = formData.value.liveName data.name = formData.value.liveName;
data.info = formData.value data.info = formData.value;
} }
emit('update:taskList', [...props.taskList]) emit("update:taskList", [...props.taskList]);
closeDrawer() closeDrawer();
} }
function openDrawer(i, row) { function openDrawer(i, row) {
row && (formData.value = { ...row.info }); row && (formData.value = { ...row.info });
row && (dateTime.value = [row.info.liveStartTime, row.info.liveEndTime]); row && (dateTime.value = [row.info.liveStartTime, row.info.liveEndTime]);
(i >= 0) && (taskIndex.value = i) i >= 0 && (taskIndex.value = i);
visible.value = true visible.value = true;
} }
defineExpose({openDrawer}) defineExpose({ openDrawer });
const imageUrl = ref('') const imageUrl = ref("");
const beforeUpload = (file) => { const beforeUpload = (file) => {
const isJpgOrPng = const isJpgOrPng =
file.type === "image/jpg" || file.type === "image/jpg" ||
@@ -498,10 +511,8 @@ const beforeUpload = (file) => {
fileUp(formDatas).then((res) => { fileUp(formDatas).then((res) => {
if (res.data.code === 200) { if (res.data.code === 200) {
console.log(res.data.data, 45); console.log(res.data.data, 45);
imageUrl.value = process.env.VUE_APP_FILE_PATH +res.data.data imageUrl.value = process.env.VUE_APP_FILE_PATH + res.data.data;
formData.value.liveCover =process.env.VUE_APP_FILE_PATH + res.data.data formData.value.liveCover = process.env.VUE_APP_FILE_PATH + res.data.data;
// state.hasImgName = file.name; // state.hasImgName = file.name;
// emit("src", { id: '', src: res.data.data }); // emit("src", { id: '', src: res.data.data });

View File

@@ -10,7 +10,7 @@ import activityImg from '@/assets/images/leveladd/huo.png'
import testImg from '@/assets/images/leveladd/ce.png' import testImg from '@/assets/images/leveladd/ce.png'
import evaImg from '@/assets/images/leveladd/diao.png' import evaImg from '@/assets/images/leveladd/diao.png'
import voteImg from '@/assets/images/leveladd/tou.png' import voteImg from '@/assets/images/leveladd/tou.png'
import projectImg from '@/assets/images/leveladd/xiang.png' // import projectImg from '@/assets/images/leveladd/xiang.png'
import AddOnline from "@/components/drawers/AddOnline.vue"; import AddOnline from "@/components/drawers/AddOnline.vue";
import AddCase from "@/components/drawers/AddCase.vue"; import AddCase from "@/components/drawers/AddCase.vue";
@@ -23,7 +23,7 @@ import AddInvist from "@/components/drawers/AddInvist.vue";
import AddVote from "@/components/vote/AddVote.vue"; import AddVote from "@/components/vote/AddVote.vue";
import AddLive from "@/components/drawers/AddLive.vue"; import AddLive from "@/components/drawers/AddLive.vue";
import AddRef from "@/components/drawers/AddRef.vue"; import AddRef from "@/components/drawers/AddRef.vue";
import AddProject from "@/components/drawers/AddProject.vue"; // import AddProject from "@/components/drawers/AddProject.vue";
// import AddFaceteach from "@/components/drawers/AddFaceteach.vue"; // import AddFaceteach from "@/components/drawers/AddFaceteach.vue";
export const TASK_TYPE = { export const TASK_TYPE = {
@@ -87,9 +87,9 @@ export const TASK_TYPE = {
img: voteImg, img: voteImg,
component: AddVote component: AddVote
}, },
13: { // 13: {
name: '项目', // name: '项目',
img: projectImg, // img: projectImg,
component: AddProject // component: AddProject
}, // },
} }

View File

@@ -619,6 +619,7 @@ const closeChangeModal = () => {
//暂存 //暂存
const temporaryStorage = async () => { const temporaryStorage = async () => {
debugger
templateLoading.value = true templateLoading.value = true
await request(ROUTER_DETAIL_MODIFY, routerInfo.value) await request(ROUTER_DETAIL_MODIFY, routerInfo.value)
await getDetail() await getDetail()

View File

@@ -720,6 +720,7 @@ const closeDeAll = () => {
//暂存 //暂存
const temporaryStorage = async () => { const temporaryStorage = async () => {
debugger
templateLoading.value = true templateLoading.value = true
await request(PROJECT_DETAIL_MODIFY, projectInfo.value) await request(PROJECT_DETAIL_MODIFY, projectInfo.value)
await getTask() await getTask()
@@ -728,6 +729,7 @@ const temporaryStorage = async () => {
}; };
//确定 //确定
const submitStorage = async () => { const submitStorage = async () => {
debugger
confirmLoading.value = true confirmLoading.value = true
projectInfo.value.projectInfo.status === 3 ? await request(PROJECT_RELEASE, {projectId: route.query.projectId}) : await request(PROJECT_DETAIL_MODIFY, projectInfo.value) projectInfo.value.projectInfo.status === 3 ? await request(PROJECT_RELEASE, {projectId: route.query.projectId}) : await request(PROJECT_DETAIL_MODIFY, projectInfo.value)
message.success("阶段和任务数据已保存") message.success("阶段和任务数据已保存")