mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-13 12:56:45 +08:00
feat:合并
This commit is contained in:
@@ -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}`
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@@ -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 });
|
||||
|
||||
@@ -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
|
||||
// },
|
||||
}
|
||||
@@ -619,6 +619,7 @@ const closeChangeModal = () => {
|
||||
|
||||
//暂存
|
||||
const temporaryStorage = async () => {
|
||||
debugger
|
||||
templateLoading.value = true
|
||||
await request(ROUTER_DETAIL_MODIFY, routerInfo.value)
|
||||
await getDetail()
|
||||
|
||||
@@ -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("阶段和任务数据已保存")
|
||||
|
||||
Reference in New Issue
Block a user