From 1a64fc520d6408eeff65ab1afcb1619f293932eb Mon Sep 17 00:00:00 2001 From: zhangyc Date: Sat, 24 Dec 2022 19:48:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E9=99=84=E4=BB=B6=E7=BB=9F?= =?UTF-8?q?=E4=B8=80=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/common/FJUpload.vue | 3 +- src/components/drawers/AddFaceteach.vue | 120 +++- src/components/drawers/AddHomework.vue | 321 +++++----- src/components/drawers/AddOnline.vue | 8 + src/components/drawers/AddTest.vue | 2 +- src/components/student/CommonStudent.vue | 65 +- src/views/courselibrary/CoursewareManage.vue | 642 +------------------ src/views/courselibrary/courseModal.vue | 11 +- src/views/research/ResearchManage.vue | 2 +- 9 files changed, 346 insertions(+), 828 deletions(-) diff --git a/src/components/common/FJUpload.vue b/src/components/common/FJUpload.vue index 030d570d..0403dbd5 100644 --- a/src/components/common/FJUpload.vue +++ b/src/components/common/FJUpload.vue @@ -6,7 +6,7 @@ -
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
+
支持.pdf,.ppt,.pptx,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif,.zip
{ watch(files, () => { files.value && files.value.length && emit('update:value', files.value.filter(e => e.url).map(e => e.url).join(',')) + console.log(files.value.filter(e => e.url).map(e => e.url).join(',')); }) watch(props, init) diff --git a/src/components/drawers/AddFaceteach.vue b/src/components/drawers/AddFaceteach.vue index f0ab3ba6..ebb0a811 100644 --- a/src/components/drawers/AddFaceteach.vue +++ b/src/components/drawers/AddFaceteach.vue @@ -128,7 +128,7 @@ style="width: 400px; height: 40px; border-radius: 8px;" v-model:value="duration" > - 分钟 +
@@ -245,6 +245,10 @@ @click="innerPersion = !innerPersion" >允许项目内人员临时到场参加 + +
+
+
-
-
- 附件: -
-
- - - -
-
+
+
+ +
+
+ +
+
@@ -388,7 +386,7 @@ import AssessmentList from "@/components/drawers/AssessmentList.vue"; // import { toDate } from "../../api/method";、 import { addTempTask } from "../../api/indexTaskadd"; import ProjectManager from "@/components/project/ProjectManagerNew"; - +import FJUpload from "@/components/common/FJUpload"; import { detail } from "../../api/indexCourse"; import { queryAppraiseDetailById } from "../../api/indexInvist"; import { queryWorkDetailById } from "@/api/indexWork"; @@ -402,6 +400,7 @@ export default { AddTest, AssessmentList, ProjectManager, + FJUpload, }, props: { addfaceteachVisible: { @@ -497,7 +496,9 @@ export default { innerPersion: false, outPersion: false, assessmentName: null, - isClick: false + isClick: false, + attach:"", + }); const clear = () => { state.courseName = ""; @@ -520,6 +521,7 @@ export default { state.EditEvalId = null; state.applyFlag = ""; state.needEval = false; + state.attach=""; }; const closeDrawer = () => { ctx.emit("update:addfaceteachVisible", false); @@ -564,7 +566,22 @@ export default { const showDrawerAddTest = () => { state.addtestvisible = true; }; - + // 删除文件返回参数 + const changevalue = (e) => { + let arr = state.attach.split(',') + let newarr = [] + for(let i=0;i { queryFaceDetailById(props.EditFaceId).then((res) => { @@ -585,7 +602,14 @@ export default { state.address = result.address; state.before = result.beforeStart; state.afterStartValue = result.afterStart; - state.fileList = JSON.parse(result.attach); + + let arrss =result.attach.split(',') + let str = '' + for (let i = 0; i < arrss.length; i++) { + i == arrss.length - 1 ? str += arrss[i].slice(arrss[i].lastIndexOf('/') + 1) : str += arrss[i].slice(arrss[i].lastIndexOf('/') + 1) + ',' + } + console.log(str) + state.attach = str; state.onlySign = result.completeType.split(",")[0] == "1" ? true : false; state.completeLeave = @@ -661,7 +685,7 @@ export default { teacher: state.memberValue.label, address: state.address, applyFlag: state.applyFlag, - attach: JSON.stringify(state.fileList), + afterStart: state.afterStartValue || 0, beforeStart: state.before || 0, beginTime: parseInt( @@ -679,6 +703,7 @@ export default { offcoursePlanId: props.EditFaceId > 0 ? props.EditFaceId : 0, testId: state.EditTestId, duration: state.duration, + attach:state.attach, }; console.log("obj============", obj, "6" + "9"); @@ -770,11 +795,7 @@ export default { } }; - const handleChange = ({ file, fileList }) => { - if (file.status !== "uploading") { - console.log(file, fileList); - } - }; + const showAssessment = () => { state.assessmentVisible = true; }; @@ -877,7 +898,7 @@ export default { updateTask, disabledDateTime, clear, - handleChange, + changevalue, showAssessment, disabledDate, @@ -963,7 +984,7 @@ export default { } } } - + .main_item2 { display: flex; align-items: flex-start; @@ -1056,7 +1077,7 @@ export default { } .main_right { - width: 337px; + width: 400px; .main_item { display: flex; @@ -1089,6 +1110,49 @@ export default { } } } + .mbl_items { + display: flex; + align-items: center; + justify-content: flex-end; + margin-bottom: 10px; + + .item_nam { + width: 100px; + display: flex; + align-items: center; + justify-content: flex-end; + white-space: nowrap; + + .asterisk_icon { + width: 10px; + height: 10px; + margin-right: 5px; + margin-top: -15px; + } + } + + .item_inp { + flex: 1; + position: relative; + + .inp_num { + position: absolute; + left: 398px; + top: 10px; + } + .accessory{ + margin-left: 92px; + } + } + } + .tips{ + font-size: 12px; + margin-top: 10px; + } + .mbl_items12{ + width: 373px; + margin-left: 10px; + } } } diff --git a/src/components/drawers/AddHomework.vue b/src/components/drawers/AddHomework.vue index 31ccc205..30d3e251 100644 --- a/src/components/drawers/AddHomework.vue +++ b/src/components/drawers/AddHomework.vue @@ -7,63 +7,79 @@
-
+
+
+ +
+ 作业名称: +
- - - +
+
+
+ +
+ 开始时间: +
- - - +
- -
- -
-
-
-
- +
- 附件: + 作业要求: +
+
+ +
+ +
+
+
+
-
- - - -
-
-
-
-
- 支持:pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip +
+
+
取消 - 确定 + 确定
- +
@@ -83,9 +99,12 @@ import { ProjectEditTask, RouterEditTask } from "@/api/indexTask"; import dayjs from "dayjs"; import { addTempTask } from "../../api/indexTaskadd"; import {FILE_UPLOAD_URL} from "@/api/config"; - +import FJUpload from "@/components/common/FJUpload"; export default { name: "AddHomework", + components:{ + FJUpload, + }, props: { addhomeworkVisible: { type: Boolean, @@ -145,70 +164,19 @@ export default { }, }, setup(props, ctx) { - const formState = reactive({ - workName: "", - workRequirement: "", - choosedTime: "", - }); + const state = reactive({ + name: "", + workRequirement: "", + chooseTime: [], addLoading: false, workEnclosureAddress: "", - isClick: false + isClick: false, + attach:"", }); const formRef = ref(); - let checkWorkName = async (_rule, value) => { - if (!value) { - return Promise.reject("请输入作业名称"); - } - }; - - let checkWorkRequirement = async (_rule, value) => { - if (!value) { - return Promise.reject("请输入作业要求"); - } - }; - - let checkTime = async (_rule, value) => { - if (!value.length) { - return Promise.reject("请选择时间"); - } - }; - - const rules = { - workName: [ - { - required: true, - validator: checkWorkName, - trigger: "change", - }, - ], - workRequirement: [ - { - required: true, - validator: checkWorkRequirement, - trigger: "change", - }, - ], - choosedTime: [ - { - required: true, - validator: checkTime, - trigger: "change", - }, - ], - }; - // const layout = { - // labelCol: { - // span: 4, - // }, - // wrapperCol: { - // span: 14, - // }, - // }; - const handleFinish = () => { - updteHomeWork(); - }; + const handleFinishFailed = () => { message.error("handleFinishFailed"); @@ -216,83 +184,56 @@ export default { const resetForm = () => { // formRef.value.resetFields(); - formState.workName = ""; - formState.workRequirement = ""; - formState.choosedTime = []; + state.name = ""; + state.workRequirement = ""; + state.chooseTime = []; + state.attach=""; }; const handleValidate = (...args) => { console.log(args); }; - const beforeUpload = (file) => { - console.log("file", file); - const isJpgOrPng = - file.name.indexOf(".pdf") === -1 && - file.name.indexOf(".ppt") === -1 && - file.name.indexOf(".pptx") === -1 && - file.name.indexOf(".doc") === -1 && - file.name.indexOf(".docx") === -1 && - file.name.indexOf(".xls") === -1 && - file.name.indexOf(".xlsx") === -1 && - file.name.indexOf(".jpg") === -1 && - file.name.indexOf(".jpeg") === -1 && - file.name.indexOf(".png") === -1 && - file.name.indexOf(".gif") === -1 && - file.name.indexOf(".zip") === -1; - // console.log("isJpgOrPng", isJpgOrPng); - return isJpgOrPng; - }; - const handleChange = (info) => { - const isfileformat = beforeUpload(info.file); - if (isfileformat) { - fileList.value = []; - message.destroy(); - return message.error("请上传正确格式附件"); - } - if (info.file.status !== "uploading") { - console.log(info.file, info.fileList); - // state.workEnclosureAddress = info.fileList[0].response.data; - state.workEnclosureAddress = JSON.stringify(info.fileList); - console.log("state.workEnclosureAddress", state.workEnclosureAddress); - } - - if (info.file.status === "done") { - message.success(`${info.file.name} 文件上传成功`); - console.log("info.file", info.file.response.data); - if (info.file.response && info.file.response.data) { - // console.log("fileList", fileList); - // fileList.value = [info]; + + // 删除文件返回参数 + const changevalue = (e) => { + let arr = state.attach.split(',') + let newarr = [] + for(let i=0;i { - formState.choosedTime = ""; + ctx.emit("update:addhomeworkVisible", false); ctx.emit("update:edit", false); ctx.emit("update:EditWorkId", state.EditWorkId); - ctx.emit("update:workName", formState.workName); - console.log("state.EditWorkId==============", state.workName); + ctx.emit("update:workName", state.name); + console.log("state.EditWorkId==============", state.name); localStorage.setItem("stageId", props.chooseStageId); localStorage.setItem("chapterId", props.isactive); - fileList.value = []; - state.workEnclosureAddress = ""; + resetForm(); }; const closeDrawer2 = () => { - formState.choosedTime = ""; + ctx.emit("update:addhomeworkVisible", false); ctx.emit("update:edit", false); ctx.emit("update:EditWorkId", state.EditWorkId); - ctx.emit("update:workName", formState.workName); - console.log("state.EditWorkId==============", state.workName); + ctx.emit("update:workName", state.name); + console.log("state.EditWorkId==============", state.name); localStorage.setItem("stageId", props.chooseStageId); localStorage.setItem("chapterId", props.isactive); - fileList.value = []; - state.workEnclosureAddress = ""; + resetForm(); }; @@ -303,26 +244,29 @@ export default { state.EditWorkId = props.EditWorkId; queryWork(); } else { - formRef.value.resetFields(); + resetForm(); } }; // 新增任务 const updteHomeWork = () => { + if(!state.name||!state.workRequirement||!state.chooseTime){ + return message.warning("请输入必填项"); + } let obj = { - submitEndTime: dayjs(formState.choosedTime[1]).format( + submitEndTime: dayjs(state.chooseTime[1]).format( "YYYY-MM-DD HH:mm" ), - submitStartTime: dayjs(formState.choosedTime[0]).format( + submitStartTime: dayjs(state.chooseTime[0]).format( "YYYY-MM-DD HH:mm" ), - workEnclosureAddress: state.workEnclosureAddress - ? state.workEnclosureAddress + workEnclosureAddress: state.attach + ? state.attach : "", workId: props.edit ? props.EditWorkId : 0, - workName: formState.workName, - workRequirement: formState.workRequirement, + workName: state.name, + workRequirement: state.workRequirement, }; if (props.EditWorkId > 0) { @@ -375,18 +319,20 @@ export default { queryWorkDetailById({ workId: props.EditWorkId }) .then((res) => { console.log(res); - try { - fileList.value = JSON.parse(res.data.data.workEnclosureAddress); - } catch (e) { - console.log(e); - fileList.value = []; - } - formState.workName = res.data.data.workName; - formState.workRequirement = res.data.data.workRequirement; - formState.choosedTime = [ + + state.name = res.data.data.workName; + state.workRequirement = res.data.data.workRequirement; + state.chooseTime = [ dayjs(res.data.data.submitStartTime, "YYYY-MM-DD HH:mm"), dayjs(res.data.data.submitEndTime, "YYYY-MM-DD HH:mm"), ]; + let arrss = res.data.data.workEnclosureAddress.split(',') + let str = '' + for (let i = 0; i < arrss.length; i++) { + i == arrss.length - 1 ? str += arrss[i].slice(arrss[i].lastIndexOf('/') + 1) : str += arrss[i].slice(arrss[i].lastIndexOf('/') + 1) + ',' + } + console.log(str) + state.attach = str; state.addLoading = false; }) .catch(() => { @@ -470,14 +416,14 @@ export default { const cle = () => { let obj = { - submitEndTime: dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"), - submitStartTime: dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"), + submitEndTime: dayjs(state.chooseTime[1]).format("YYYY-MM-DD"), + submitStartTime: dayjs(state.chooseTime[0]).format("YYYY-MM-DD"), workEnclosureAddress: state.workEnclosureAddress ? state.workEnclosureAddress : "", workId: props.EditWorkId > 0 ? props.EditWorkId : 0, - workName: formState.workName, - workRequirement: formState.workRequirement, + workName: state.name, + workRequirement: state.workRequirement, }; if (props.face) { createWorkTask(obj).then((res) => { @@ -517,16 +463,15 @@ export default { FILE_UPLOAD_URL, closeDrawer, closeDrawer2, - handleChange, + changevalue, fileList, - formState, - handleFinish, + updteHomeWork, handleFinishFailed, resetForm, handleValidate, formRef, // layout, - rules, + cle, ...toRefs(state), }; @@ -601,14 +546,45 @@ export default { } } } + .mbl_items { + display: flex; + align-items: center; + justify-content: flex-end; + margin-bottom: 10px; + .item_nam { + width: 100px; + display: flex; + align-items: center; + justify-content: flex-end; + white-space: nowrap; + + .asterisk_icon { + width: 10px; + height: 10px; + margin-right: 5px; + margin-top: -15px; + } + } + + .item_inp { + flex: 1; + position: relative; + margin-left: 19px; + .inp_num { + position: absolute; + left: 398px; + top: 10px; + } + } + } .main_item2 { display: flex; align-items: flex-start; margin-bottom: 32px; - + .textarea { - width: 400px; + width: 373px; .ant-input { width: 100%; @@ -677,6 +653,7 @@ export default { color: #fff; margin-top: 16px; margin-bottom: 60px; + margin-left: 124px; } } } diff --git a/src/components/drawers/AddOnline.vue b/src/components/drawers/AddOnline.vue index 10771461..3fe6438d 100644 --- a/src/components/drawers/AddOnline.vue +++ b/src/components/drawers/AddOnline.vue @@ -323,6 +323,14 @@ export default { align: "center", ellipsis: true, }, + { + title: "时长", + dataIndex:"studyTime", + key: "studyTime", + width: "15%x", + align: "center", + ellipsis: true, + }, // { // title: "创建时间", // dataIndex: "createTime", diff --git a/src/components/drawers/AddTest.vue b/src/components/drawers/AddTest.vue index 469d18c7..8edb0bb5 100644 --- a/src/components/drawers/AddTest.vue +++ b/src/components/drawers/AddTest.vue @@ -102,7 +102,7 @@
+ + +
+
+
+ +
{{ type === 1 ? "选择阶段" : "添加学员到关卡" }}
+
+
+
+
+
+ +
+ + {{ item.name || "默认" }} + + +
+ 已在其他关卡的学员,不会被添加到该关卡 +
+ + +
+
+
+
+
+ + +