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
console.log("计算签到时间", props.datasource);
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.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;
endTime = endTime + props.datasource.info.afterSignIn * 60 * 1000;
beginTime = beginTime - props.datasource.beforeStart * 60 * 1000;
endTime = endTime + props.datasource.afterStart * 60 * 1000;
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);
} 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);
}
@@ -585,7 +585,7 @@ export default {
courseId: Number(props.datasource.courseId),
routerId: Number(props.datasource.routerId),
ids: state.selectedStudents,
taskId: Number(props.datasource.routerTaskId),
taskId: Number(props.datasource.id),
taskType: Number(props.datasource.type),
type: 1,
};
@@ -739,6 +739,7 @@ export default {
<div class="opa" style='display:flex;justify-content:center;align-items:center;'>
<div
onClick={()=>{
debugger
console.log("点击签到", value);
// 获取当前时间
{/* showsingleqdModal(); */}
@@ -748,7 +749,7 @@ export default {
courseId: Number(props.datasource.courseId),
routerId: Number(props.datasource.routerId),
ids: [value.record.studentId],
taskId: Number(props.datasource.routerTaskId),
taskId: Number(props.datasource.id),
taskType: Number(props.datasource.type),
type: 1,
};
@@ -921,7 +922,7 @@ export default {
process.env.VUE_APP_BASE_API
}/admin/student/exportTaskStudent?currentStageId=${
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="header">
<div class="headerTitle">{{ taskIndex >= 0 ? "编辑" : "添加" }}直播</div>
<div class="headerTitle">
{{ taskIndex >= 0 ? "编辑" : "添加" }}直播
</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@@ -189,7 +191,8 @@
<span style="margin-right: 3px">回放设置</span>
</div>
<div class="btnbox">
<a-switch v-model:checked="formData.livePlayback"
<a-switch
v-model:checked="formData.livePlayback"
@change="getchange(formData.livePlayback)"
/>
</div>
@@ -281,8 +284,7 @@
<span style="margin-right: 3px">评估</span>
</div>
<div class="btnbox2">
<a-checkbox
v-model:checked="formData.isEvaluate"
<a-checkbox v-model:checked="formData.isEvaluate"
>需要评估
</a-checkbox>
</div>
@@ -290,13 +292,18 @@
<div v-if="formData.isEvaluate" class="main_item">
<div class="signbox"></div>
<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>
</AddInvistRoot>
<div v-if="formData.assessmentId">
<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>
</div>
</div>
@@ -317,43 +324,43 @@
</a-drawer>
</template>
<script setup>
import {defineEmits, defineProps, ref} from "vue";
import { defineEmits, defineProps, ref } from "vue";
import dayjs from "dayjs";
import ProjectManager from "@/components/project/ProjectManagerNew";
import AddInvistRoot from "@/components/drawers/AddInvistRoot.vue";
import {Form, message} from "ant-design-vue";
import { Form, message } from "ant-design-vue";
import { fileUp } from "../../api/indexEval";
const removePG = () => {
formData.value.assessmentId = ''
formData.value.assessmentName = ''
formData.value.assessmentId = "";
formData.value.assessmentName = "";
};
const getchange=(mess)=> {
const getchange = (mess) => {
console.log(mess); //输出true或者false
};
const props = defineProps({
type: Number,
taskList: []
})
const visible = ref(false)
taskList: [],
});
const visible = ref(false);
const formData = ref({
liveName: '',
liveLink: '',
liveStartTime: '',
liveEndTime: '',
liveNotice: '',
liveDuration: '',
liveTeacherId: '',
liveTeacherName: '',
liveCover: '',
beforeSignIn:'',
afterSignIn:'',
isEvaluate:'',
assessmentId:'',
assessmentName:'',
livePlayback:'',
})
const emit = defineEmits({})
liveName: "",
liveLink: "",
liveStartTime: "",
liveEndTime: "",
liveNotice: "",
liveDuration: "",
liveTeacherId: "",
liveTeacherName: "",
liveCover: "",
beforeSignIn: "",
afterSignIn: "",
isEvaluate: "",
assessmentId: "",
assessmentName: "",
livePlayback: "",
});
const emit = defineEmits({});
const taskIndex = ref(-1);
const dateTime = ref([]);
@@ -361,67 +368,67 @@ const rulesRef = ref({
liveName: [
{
required: true,
message: '请输入直播名称',
message: "请输入直播名称",
},
],
liveLink: [
{
type: 'url',
type: "url",
required: true,
message: '请输入直播链接',
message: "请输入直播链接",
},
],
liveStartTime: [
{
required: true,
message: '请选择开始时间',
message: "请选择开始时间",
},
],
liveEndTime: [
{
required: true,
message: '请选择结束时间',
message: "请选择结束时间",
},
],
liveNotice: [
{
required: true,
message: '请输入直播公告',
message: "请输入直播公告",
},
],
liveDuration: [
{
required: true,
message: '请输入直播时长',
message: "请输入直播时长",
},
],
liveTeacherId: [
{
required: true,
message: '请选择直播教师',
message: "请选择直播教师",
},
],
liveTeacherName: [
{
required: true,
message: '请选择直播教师',
message: "请选择直播教师",
},
],
liveCover: [
{
required: true,
message: '请上传直播封面',
message: "请上传直播封面",
},
],
});
const {resetFields, validate} = Form.useForm(formData, rulesRef);
const { resetFields, validate } = Form.useForm(formData, rulesRef);
const closeDrawer = () => {
visible.value = false
taskIndex.value = -1
dateTime.value = []
resetFields()
visible.value = false;
taskIndex.value = -1;
dateTime.value = [];
resetFields();
};
const range = (start, end) => {
@@ -433,12 +440,12 @@ const range = (start, end) => {
};
function timeChange(time, timeStr) {
formData.value.liveStartTime = timeStr[0]
formData.value.liveEndTime = timeStr[1]
formData.value.liveStartTime = timeStr[0];
formData.value.liveEndTime = timeStr[1];
}
const disabledDate = (current) => {
return current && current < dayjs().startOf('day');
return current && current < dayjs().startOf("day");
};
const disabledRangeTime = () => ({
@@ -448,32 +455,38 @@ const disabledRangeTime = () => ({
});
async function confirm() {
await validate().catch(({errorFields}) => {
debugger;
console.log("确定按钮:");
await validate().catch(({ errorFields }) => {
message.warning(errorFields[0].errors.join());
throw Error("数据校验不通过")
throw Error("数据校验不通过");
});
if (taskIndex.value === -1) {
const list = props.taskList
list.push({name: formData.value.liveName, type: props.type, info: {...formData.value}})
const list = props.taskList;
list.push({
name: formData.value.liveName,
type: props.type,
info: { ...formData.value },
});
} else {
const data = props.taskList[taskIndex.value]
data.name = formData.value.liveName
data.info = formData.value
const data = props.taskList[taskIndex.value];
data.name = formData.value.liveName;
data.info = formData.value;
}
emit('update:taskList', [...props.taskList])
closeDrawer()
emit("update:taskList", [...props.taskList]);
closeDrawer();
}
function openDrawer(i, row) {
row && (formData.value = {...row.info});
row && (formData.value = { ...row.info });
row && (dateTime.value = [row.info.liveStartTime, row.info.liveEndTime]);
(i >= 0) && (taskIndex.value = i)
visible.value = true
i >= 0 && (taskIndex.value = i);
visible.value = true;
}
defineExpose({openDrawer})
defineExpose({ openDrawer });
const imageUrl = ref('')
const imageUrl = ref("");
const beforeUpload = (file) => {
const isJpgOrPng =
file.type === "image/jpg" ||
@@ -497,11 +510,9 @@ const beforeUpload = (file) => {
formDatas.append("file", file);
fileUp(formDatas).then((res) => {
if (res.data.code === 200) {
console.log(res.data.data,45);
imageUrl.value = process.env.VUE_APP_FILE_PATH +res.data.data
formData.value.liveCover =process.env.VUE_APP_FILE_PATH + res.data.data
console.log(res.data.data, 45);
imageUrl.value = 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;
// 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 evaImg from '@/assets/images/leveladd/diao.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 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 AddLive from "@/components/drawers/AddLive.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";
export const TASK_TYPE = {
@@ -87,9 +87,9 @@ export const TASK_TYPE = {
img: voteImg,
component: AddVote
},
13: {
name: '项目',
img: projectImg,
component: AddProject
},
// 13: {
// name: '项目',
// img: projectImg,
// component: AddProject
// },
}

View File

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

View File

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