Merge branch 'dongwu_develop' into develop

This commit is contained in:
BOE\10867418
2023-03-22 17:14:29 +08:00
9 changed files with 105 additions and 31 deletions

View File

@@ -33,7 +33,7 @@ import {USER_PERMISSION} from "@/api/ThirdApi";
const store = useStore();
const isLogin = ref(false);
console.log("版本2.2.2------------");
console.log("版本2.2.3------------");
// 监听关闭浏览器
let time1 = ref(0);

View File

@@ -34,6 +34,7 @@ export const routerStudentRank = (obj) => http.get('/admin/router/studentRank',
//是否优秀学员
export const topStudent = (obj) => http.post('/admin/project/topStudent', obj)
export const updateStudent = (obj) => http.post('/admin/student/updateStudent', obj)
export const auditStudentStatus = (obj) => http.post('/admin/student/auditStudent', obj)
//项目概览
export const overview = (obj) => http.get('/admin/project/overview', { params: obj })

View File

@@ -92,7 +92,9 @@
<div class="btn btn1" @click="batchFinish" style="margin-right: 20px">
<div class="wz">批量标注完成</div>
</div>
<CommonImport title="录入成绩" v-if="homeWorkId" :template-url="scoreTemplateUrl" :data="{ targetId: offcoursePlanId, type:3 }" :url="`/admin/student/importHomeWork`" name="uploadFile">
<CommonImport title="录入成绩" v-if="homeWorkId" :template-url="scoreTemplateUrl"
:data="{ targetId: offcoursePlanId, type:3,workId:homeWorkId }" :url="`/admin/student/importHomeWork`"
name="uploadFile">
<div class="btn btn1" style="margin-right: 20px;margin-left: 20px">
<div class="img1"></div>
<div class="wz">批量录入成绩</div>
@@ -120,6 +122,12 @@
</div>
</a-drawer>
<CheckAnsware v-model:CAvisible="CAvisible" :datasource="datasource"/>
<!-- 查看作业抽屉 -->
<CKWork
v-model:CWvisible="CWvisible"
:workId="props.datasource?.courseId"
:stuId="stuId"
/>
<ExportHomeWork
v-model:exportHomeWorkV="exportHomeWorkV"
:downloadUrl="downloadUrl"
@@ -138,10 +146,12 @@ import CommonImport from "@/components/common/CommonImport";
import CheckAnsware from "../CheckAnsware.vue";
import {batchSendMessage} from "@/api/index1";
import ExportHomeWork from "@/components/Modals/ExportHomeWork.vue";
import CKWork from "../CheckWork.vue";
const coursePlanIndex = ref(0);
const tableRef = ref();
const CAvisible = ref(false);
const CWvisible = ref(false);
const exportHomeWorkV = ref(false);
const downloadUrl = ref();
const emit = defineEmits([]);
@@ -192,7 +202,8 @@ const { data = [], loading, fetchData } = useRequest(COURSE_PLAN_LIST, planParam
const offcoursePlanId = computed(() => data.value[coursePlanIndex.value]?.id || "");
const homeWorkId = computed(() => data.value[coursePlanIndex.value]?.homeWorkId || "");
const infoId = computed(() => props.type === 1 ? props.datasource.projectId : props.datasource.routerId);
const scoreTemplateUrl = ref(`${process.env.VUE_APP_BASE_API}/admin/student/exportHomeWorkTemplate?taskId=0&type=3&pid=${offcoursePlanId.value}&thirdType=3`);
const scoreTemplateUrl = computed(() => `${process.env.VUE_APP_BASE_API}/admin/student/exportHomeWorkTemplate?taskId=0&type=3&pid=${offcoursePlanId.value}&thirdType=3`);
const stuId = ref("");
const columns = ref([
{
title: "工号",
@@ -284,12 +295,56 @@ const columns = ref([
className: "h",
dataIndex: "opacation",
key: "opacation",
width: 50,
width: 100,
align: "center",
customRender: (text) => <div class="opa" onClick={() => showExamAnswer(text)}>{data.value[coursePlanIndex.value]?.answerId ? "查看答卷" : ""}</div>
customRender: (text) => {
return (
<div style="display:flex;justify-content:center;">
<a
class="opa"
style="margin-right:12px;"
onClick={() => {
showExamAnswer(text);
}}>
{text.record.answerId ? "查看答卷" : ""}
</a>
{
text.record.answerId ?
<a
class="opa"
style="margin-right:12px;"
onClick={() => {
showExamAnswer(text);
}}>
查看答卷
</a>
: <div
class="opa"
style="margin-right:12px;color:#666">
查看答卷
</div>
}
{
text.record.workScore == 1 ?
<a
class="opa"
onClick={() => {
showCWvisible(text.record.studentId);
}}>
查看作业
</a>
: <div
class="opa"
style="color:#666;">
查看作业
</div>
}
</div>);
}
},
]);
watch(() => data.value.length, () => {
watch(() => data.value, () => {
params.value.pid = data.value[coursePlanIndex.value]?.id || 0;
tableRef.value.fetch();
});
@@ -328,6 +383,11 @@ const showExamAnswer = () => {
CAvisible.value = true;
};
const showCWvisible = (id) => {
stuId.value = id;
CWvisible.value = true;
};
const searchTaskList = () => tableRef.value.fetch();
const exportTaskData = () => window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?type=3&pid=${offcoursePlanId.value}&thirdType=2`);
@@ -347,7 +407,7 @@ function exportTaskStu() {
const hasten = () => {
message.success("催促成功");
console.log(data.value[coursePlanIndex.value])
console.log(data.value[coursePlanIndex.value]);
batchSendMessage({
// courseId: props.datasource.courseId,//任务的Id
courseId: data.value[coursePlanIndex.value].id,//任务的Id
@@ -376,6 +436,13 @@ function resetStudentPage() {
}
}
.RouterFaceStu {
.ant-drawer-content-wrapper {
min-width: 1200px !important;
width: 1200px !important;
}
}
.CopyModal {
.ant-modal {
width: 424px !important;

View File

@@ -287,7 +287,8 @@ const columns = ref([
]);
const { data = [], loading, fetchData } = useRequest(COURSE_PLAN_LIST, planParams, false);
watch(() => data.value.length, () => {
watch(() => data.value, () => {
coursePlanIndex.value = 0
params.value.pid = data.value[coursePlanIndex.value]?.id || 0;
tableRef.value.fetch();
});
@@ -359,7 +360,7 @@ function exportTaskStu() {
}
function afterVisibleChange(bool) {
bool && fetchData();
bool && fetchData()
}
function resetStudentPage() {
@@ -371,7 +372,7 @@ const qrcodeVisible = () => {
qrCode({
title: "【签到】二维码",
name: props.datasource?.name,
url: `${location.protocol}//${location.host}${process.env.VUE_APP_BASE_API}/admin/student/studentSign?taskId=${props.datasource.routerTaskId}&taskType=${props.datasource.type}&type=${props.type}`,
url: `${location.protocol}//${location.host}${process.env.VUE_APP_BASE_API}/admin/student/studentSign?taskId=${props.datasource.id}&taskType=${props.datasource.type}&type=${props.type}`,
});
};

View File

@@ -1742,7 +1742,7 @@ import AddHomework from "../../components/drawers/CommonHomework.vue";
import AddTest from "../../components/drawers/CommonTest.vue";
import TableStudent from "@/components/student/TableStudent";
import FJUpload from "@/components/common/FJUpload";
import { updateStudent } from "@/api/indexProjStu";
import {auditStudentStatus} from "@/api/indexProjStu";
import { useStore } from "vuex";
import DropDown from "@/components/common/DropDown";
import { checkPer, checkOwner } from "@/utils/utils";
@@ -4879,7 +4879,7 @@ export default defineComponent({
};
function auditStudent(record) {
updateStudent(record);
auditStudentStatus(record);
}
//二维码

View File

@@ -458,7 +458,7 @@
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">
{{ item.startTime !== null ? item.startTime : "-" }}
{{ item.type==2 ? item.createTime !== null ? item.createTime : "-" : item.startTime !== null ? item.startTime : "-" }}
</div>
</div>
<div class="progress">
@@ -2666,13 +2666,16 @@ export default {
// if (date1 < date2) return message.warning("当前面授课已结束");
// if (item.taskStatus == 1 || item.taskStatus == 2)
// return message.error("该任务无法学习,请联系管理员进行替换。");
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/faceteach?type=2&courseId=" +
item.courseId +
"&id=" +
item.id;
// codeUrl =
// window.location.protocol +
// process.env.VUE_APP_H5 +
// "/faceteach?type=2&courseId=" +
// item.courseId +
// "&id=" +
// item.id;
codeUrl = window.location.protocol + process.env.VUE_APP_H5 + "/pathdetails?routerId=" + state.routerId;
}
if (item.type == 3) return message.error("请在pc端完成");

View File

@@ -288,8 +288,8 @@
开课
</span>
<span
v-if="!element.routerTaskId"
style="color: #4ea6ff;cursor: pointer;"
:style="{marginRight:element.type===2?`6px`:`25px`,marginLeft:element.type===2?`6px`:`0px`}"
@click="editTaskForType(element,index)">
编辑
</span>

View File

@@ -258,8 +258,8 @@
开课
</span>
<span
v-if="!element.projectTaskId"
style="color: #4ea6ff;cursor: pointer;"
:style="{marginRight:element.type==2?6+'px':25+'px',marginLeft:element.type==2?6+'px':0+'px'}"
@click="editTaskForType(element,index)">
编辑
</span>

View File

@@ -587,7 +587,7 @@
<div class="time">
<div class="timetext">开始时间</div>
<div class="timetext">
{{ item.startTime !== null ? item.startTime : "-" }}
{{ item.type==2 ? item.createTime !== null ? item.createTime : "-" : item.startTime !== null ? item.startTime : "-" }}
</div>
</div>
<div class="progress">
@@ -4614,13 +4614,15 @@ export default {
item.courseId;
}
if (item.type == 2) {
codeUrl =
window.location.protocol +
process.env.VUE_APP_H5 +
"/faceteach?type=1&courseId=" +
item.courseId +
"&id=" +
item.id;
// codeUrl =
// window.location.protocol +
// process.env.VUE_APP_H5 +
// "/faceteach?type=1&courseId=" +
// item.courseId +
// "&id=" +
// item.id;
codeUrl = window.location.protocol + process.env.VUE_APP_H5 + "/projectdetails?type=1&projectId=" + state.projectId;
}
if (item.type == 3) return message.error("请在pc端完成");
if (item.type == 4) {