mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-11 11:56:46 +08:00
Merge branch 'dongwu_develop' into develop
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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 })
|
||||
|
||||
@@ -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: "工号",
|
||||
@@ -242,7 +253,7 @@ const columns = ref([
|
||||
align: "center",
|
||||
ellipsis: true,
|
||||
className: "h",
|
||||
customRender: ({ record: { workScore } }) => <span> {workScore!==-2?workScore:"-" || "-"}</span>
|
||||
customRender: ({ record: { workScore } }) => <span> {workScore !== -2 ? workScore : "-" || "-"}</span>
|
||||
},
|
||||
{
|
||||
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;
|
||||
|
||||
@@ -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}`,
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
//二维码
|
||||
|
||||
@@ -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端完成");
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user