feat:合并

This commit is contained in:
lixg
2023-01-12 09:31:19 +08:00
22 changed files with 232 additions and 263 deletions

9
.env
View File

@@ -2,7 +2,9 @@
VUE_APP_BASE=/manage VUE_APP_BASE=/manage
# api项目基础url # api项目基础url
VUE_APP_BASE_API=/manageApi VUE_APP_BASE_API=/manageApi
# 导出url #文件路径
VUE_APP_FILE_PATH=/file/
# 代理url 本地调试,不可以用在其他地方
VUE_APP_PROXY_URL=http://111.231.196.214/manageApi VUE_APP_PROXY_URL=http://111.231.196.214/manageApi
# 登录url # 登录url
VUE_APP_LOGIN_URL=https://u-pre.boe.com/web VUE_APP_LOGIN_URL=https://u-pre.boe.com/web
@@ -18,5 +20,6 @@ VUE_APP_IFRAME_STUDENT_URL=https://u-pre.boe.com/pc/loading
# 课程二维码 # 课程二维码
VUE_APP_COURSE_STUDY=https://u-pre.boe.com/pc/course/studyindex?id= VUE_APP_COURSE_STUDY=https://u-pre.boe.com/pc/course/studyindex?id=
# 导入学员模板 # 导入学员模板
VUE_APP_TEMPLATE=https://u-pre.boe.com/upload/ VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE=导入作业成绩 模板-1673450632417.xlsx
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673452888323.xlsx

View File

@@ -6,7 +6,7 @@
* @FilePath: /fe-manage/src/api/config.js * @FilePath: /fe-manage/src/api/config.js
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
*/ */
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
import axios from "axios"; import axios from "axios";
import router from "@/router"; import router from "@/router";
// import { getCookie } from '../api/method' // import { getCookie } from '../api/method'
@@ -21,7 +21,7 @@ const http = axios.create({
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
timeout: 1000 * 15, timeout: 1000 * 15,
// headers: { "Content-Type": "multipart/form-data" }, // headers: { "Content-Type": "multipart/form-data" },
headers: { "Content-Type": "application/json" }, headers: {"Content-Type": "application/json"},
}); });
http.interceptors.request.use( http.interceptors.request.use(
@@ -51,18 +51,19 @@ http.interceptors.response.use(
(response) => { (response) => {
// console.log('response', response) // console.log('response', response)
const { const {
data: { code, msg }, data: {code, msg, show},
} = response; } = response;
// console.log('code', code) console.log('code', code)
if (code === 0 || code === 200) { if (code === 0 || code === 200) {
return response; return response;
} else {
if (code === 1000) {
(process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'test') ? router.push({ path: 'login' }) : (window.location.href = process.env.VUE_APP_LOGIN_URL)
}
console.log("api %o", msg);
} }
return response; if (code === 1000) {
(process.env.NODE_ENV === 'development' || process.env.NODE_ENV === 'alpine') ? router.push({path: 'login'}) : (window.location.href = process.env.VUE_APP_LOGIN_URL)
return Promise.reject(response);
}
show && message.error(msg);
console.log("api %o", msg);
return Promise.reject(response);
}, },
function (error) { function (error) {
if (error.message == "timeout of 1ms exceeded") { if (error.message == "timeout of 1ms exceeded") {

View File

@@ -27,7 +27,7 @@
style="width: 40px; height: 40px; margin-bottom: 16px" style="width: 40px; height: 40px; margin-bottom: 16px"
src="../../assets/images/leveladd/success.png" src="../../assets/images/leveladd/success.png"
/> />
<span>作业导出完成请下载本地或去下载中心查看</span> <span>作业导出完成请下载本地或去下载中心查看</span>
</div> </div>
<div class="del_btnbox"> <div class="del_btnbox">
<div class="del_btn btn1" @click="clostModal"> <div class="del_btn btn1" @click="clostModal">
@@ -66,7 +66,7 @@ export default {
const downloadHomeWork = () => { const downloadHomeWork = () => {
// props.url // props.url
if (props.downloadUrl) { if (props.downloadUrl) {
window.open(props.downloadUrl); window.open(process.env.VUE_APP_FILE_PATH+props.downloadUrl);
} }
}; };
console.log("props", props); console.log("props", props);

View File

@@ -18,7 +18,7 @@
<div class="main"> <div class="main">
<div class="minatitl"> <div class="minatitl">
<div class="up1">请下载</div> <div class="up1">请下载</div>
<a class="up2" :href="template" style="course: pointer">模板</a> <a class="up2" :href="template" target="_blank" style="cursor: pointer">模板</a>
<div class="up1">按要求填写数据并导入</div> <div class="up1">按要求填写数据并导入</div>
</div> </div>
<div class="upload"> <div class="upload">
@@ -221,10 +221,9 @@ export default {
setup(props, ctx) { setup(props, ctx) {
const store = useStore(); const store = useStore();
const state = reactive({ const state = reactive({
template: template: process.env.VUE_APP_FILE_PATH + process.env.VUE_APP_UP_LOAD_STUDENT_TEMPLATE,
process.env.VUE_APP_TEMPLATE + "导入学员模版-1672998102528.xlsx",
importStudent: importStudent:
process.env.VUE_APP_BASE_API + "admin/student/importStudent", process.env.VUE_APP_BASE_API + "/admin/student/importStudent",
timers: "", // 定时器,用于清空定时器使用 timers: "", // 定时器,用于清空定时器使用
isAddStudent: false, // 用于判断用户是否关闭弹框需要重新获取学员列表 isAddStudent: false, // 用于判断用户是否关闭弹框需要重新获取学员列表
uploadpercent: -1, uploadpercent: -1,
@@ -235,11 +234,6 @@ export default {
errNum: 0, //失败数据数 errNum: 0, //失败数据数
downloadErrUrl: "", downloadErrUrl: "",
showBottomBar: false, // 显示底部成功条数和失败条数 showBottomBar: false, // 显示底部成功条数和失败条数
locationHref:
location.href.indexOf("http://") !== -1
? "http://111.231.196.214:12016/"
: location.href.slice(0, location.href.indexOf("/m")) + "/upload/",
userId: store.state.userInfo.id, userId: store.state.userInfo.id,
userName: store.state.userInfo.realName, userName: store.state.userInfo.realName,
fileName: "", fileName: "",
@@ -337,9 +331,8 @@ export default {
// 下载失败数据 // 下载失败数据
const downloadEeeorData = () => { const downloadEeeorData = () => {
console.log(state.locationHref + state.downloadErrUrl);
if (state.downloadErrUrl !== "") { if (state.downloadErrUrl !== "") {
window.open(state.locationHref + state.downloadErrUrl); window.open(process.env.VUE_APP_FILE_PATH + state.downloadErrUrl);
} }
}; };

View File

@@ -20,7 +20,7 @@
<div class="main"> <div class="main">
<div class="minatitl"> <div class="minatitl">
<div class="up1">请下载</div> <div class="up1">请下载</div>
<div class="up2">模板</div> <div class="up2" @click="downTemplate" style="cursor:pointer">模板</div>
<div class="up1">按要求填写数据并导入</div> <div class="up1">按要求填写数据并导入</div>
</div> </div>
<div class="upload"> <div class="upload">
@@ -352,15 +352,19 @@ export default {
const downloadEeeorData = () => { const downloadEeeorData = () => {
console.log(state.locationHref + state.downloadErrUrl); console.log(state.locationHref + state.downloadErrUrl);
if (state.downloadErrUrl !== "") { if (state.downloadErrUrl !== "") {
window.open(state.locationHref + state.downloadErrUrl); window.open(process.env.VUE_APP_FILE_PATH + state.downloadErrUrl);
} }
}; };
function downTemplate(){
window.open(process.env.VUE_APP_FILE_PATH + process.env.VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE)
}
return { return {
...toRefs(state), ...toRefs(state),
afterVisibleChange, afterVisibleChange,
closeDrawer, closeDrawer,
handleChange, handleChange,
downTemplate,
BATCH_IMPORT_SCORE, BATCH_IMPORT_SCORE,
beforeUpload, beforeUpload,
handleUpload, handleUpload,

View File

@@ -100,7 +100,7 @@
> >
<div class="asstype">描述</div> <div class="asstype">描述</div>
<div style="color: rgba(51, 51, 51, 1); font-size: 14px"> <div style="color: rgba(51, 51, 51, 1); font-size: 14px">
{{ values?.assessmentQaDescribe }} {{ values?.content }}
</div> </div>
</div> </div>
</div> </div>
@@ -118,8 +118,8 @@
</div> </div>
<div class="lastbox"> <div class="lastbox">
<div class="sorcetext">非常不满意</div> <div class="sorcetext">非常不满意</div>
<div class="sorcebox" v-for="(iittem, index) in [1,2,3,4,5,6,7,8,9,10]" :key="index"> <div class="sorcebox" v-for="(iittem, index) in [1,2,3,4,5,6,7,8,9,10] " :key="index">
<div v-if="iittem >= values.assessmentMinScore && iittem <= values.assessmentMaxScore" :class="index+1 == values.selectAnswer ? 'numbox' : 'numbox1'">{{ iittem }}</div> <div v-if="iittem >= values.assessmentMinScore && iittem <= values.assessmentMaxScore" :class="(iittem + 1 - values.assessmentMinScore) == values.selectAnswer ? 'numbox' : 'numbox1'">{{ iittem }}</div>
</div> </div>
<div class="sorcetext">非常满意</div> <div class="sorcetext">非常满意</div>
</div> </div>
@@ -225,6 +225,7 @@ export default {
}; };
}, },
}; };
</script> </script>
<style lang="scss"> <style lang="scss">

View File

@@ -105,10 +105,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
</template> </template>

View File

@@ -108,10 +108,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
<!-- 导出成绩抽屉 --> <!-- 导出成绩抽屉 -->
<EScore v-model:eScorevisible="eScorevisible" /> <EScore v-model:eScorevisible="eScorevisible" />

View File

@@ -31,7 +31,7 @@
}} }}
</div> </div>
<div class="endtime" style="margin-left: 64px"> <div class="endtime" style="margin-left: 64px">
签到时{{ beginTime }}~{{ endTime }} 允许签到时{{ beginTime }}~{{ endTime }}
</div> </div>
</div> </div>
@@ -109,7 +109,7 @@
<div class="wz">导出数据</div> <div class="wz">导出数据</div>
</div> </div>
</div> </div>
<div class="line"> <!-- <div class="line">
<div class="inline"> <div class="inline">
<div class="left"> <div class="left">
<div class="img"></div> <div class="img"></div>
@@ -122,7 +122,7 @@
<div class="right" @click="clearLine">清空</div> <div class="right" @click="clearLine">清空</div>
</div> </div>
</div> </div>
<!-- <div class="pad"></div> --> <div class="pad"></div> -->
<div class="tableBox" style="margin-top: 30px"> <div class="tableBox" style="margin-top: 30px">
<a-table <a-table
@@ -173,10 +173,11 @@
/> />
</div> --> </div> -->
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
<!-- 二维码签到弹窗 --> <!-- 二维码签到弹窗 -->
@@ -868,7 +869,7 @@ export default {
process.env.VUE_APP_BASE_API process.env.VUE_APP_BASE_API
}/admin/student/exportTaskStudent?currentStageId=${ }/admin/student/exportTaskStudent?currentStageId=${
props.projectTaskInfo.stageId props.projectTaskInfo.stageId
}&type=${1}&pid=${props.projectTaskInfo.projectId}&taskType=0` }&type=${1}&pid=${props.projectTaskInfo.projectId}&taskType=2&thirdType=2`
); );
// api // api
// .exportTaskStudent({ // .exportTaskStudent({

View File

@@ -87,7 +87,7 @@
<div class="wz">导出作业</div> <div class="wz">导出作业</div>
</div> </div>
</div> </div>
<div class="line"> <!-- <div class="line">
<div class="inline"> <div class="inline">
<div class="left"> <div class="left">
<div class="img"></div> <div class="img"></div>
@@ -100,13 +100,15 @@
<div class="right" @click="clearLine">清空</div> <div class="right" @click="clearLine">清空</div>
</div> </div>
</div> </div>
-->
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px"> <div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
<a-table <a-table
style="border: 1px solid #f2f6fe" style="border: 1px solid #f2f6fe"
:columns="tablecolumns" :columns="tablecolumns"
:data-source="tabledata" :data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900 }" :scroll="{ x: 1300 }"
@expand="expandTable"
:pagination="false" :pagination="false"
:row-selection="{ :row-selection="{
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
@@ -129,10 +131,12 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>
-->
</div> </div>
</a-drawer> </a-drawer>
<!-- 批量标注完成 --> <!-- 批量标注完成 -->
@@ -240,11 +244,11 @@ export default {
value: "1", value: "1",
label: "已完成", label: "已完成",
}, },
{ // {
id: 2, // id: 2,
value: "2", // value: "2",
label: "进行中", // label: "进行中",
}, // },
], ],
selectedRowKeys: [], selectedRowKeys: [],
@@ -270,7 +274,7 @@ export default {
title: "工号", title: "工号",
dataIndex: "studentUserNo", dataIndex: "studentUserNo",
key: "studentUserNo", key: "studentUserNo",
width: 50, width: '15%',
align: "left", align: "left",
className: "h head", className: "h head",
customRender: (text) => { customRender: (text) => {
@@ -287,8 +291,8 @@ export default {
title: "姓名", title: "姓名",
dataIndex: "studentName", dataIndex: "studentName",
key: "studentName", key: "studentName",
width: 50, width: '10%',
align: "left", align: "center",
className: "h head", className: "h head",
customRender: (text) => { customRender: (text) => {
return ( return (
@@ -304,7 +308,7 @@ export default {
title: "所在部门", title: "所在部门",
dataIndex: "studentDepartName", dataIndex: "studentDepartName",
key: "studentDepartName", key: "studentDepartName",
width: 60, width: '15%',
align: "center", align: "center",
className: "h", className: "h",
ellipsis: true, ellipsis: true,
@@ -324,7 +328,7 @@ export default {
title: "所在岗位", title: "所在岗位",
dataIndex: "studentJobName", dataIndex: "studentJobName",
key: "studentJobName", key: "studentJobName",
width: 60, width: '10%',
align: "center", align: "center",
ellipsis: true, ellipsis: true,
className: "h", className: "h",
@@ -344,7 +348,7 @@ export default {
title: "作业成绩", title: "作业成绩",
dataIndex: "workScore", dataIndex: "workScore",
key: "workScore", key: "workScore",
width: 60, width: '10%',
align: "center", align: "center",
ellipsis: true, ellipsis: true,
className: "h", className: "h",
@@ -364,7 +368,7 @@ export default {
title: "考试成绩", title: "考试成绩",
dataIndex: "examinationScore", dataIndex: "examinationScore",
key: "examinationScore", key: "examinationScore",
width: 60, width: '10%',
align: "center", align: "center",
ellipsis: true, ellipsis: true,
className: "h", className: "h",
@@ -385,7 +389,7 @@ export default {
title: "评分", title: "评分",
dataIndex: "assessmentScore", dataIndex: "assessmentScore",
key: "assessmentScore", key: "assessmentScore",
width: 60, width: '10%',
align: "center", align: "center",
ellipsis: true, ellipsis: true,
className: "h", className: "h",
@@ -406,7 +410,7 @@ export default {
title: "任务状态", title: "任务状态",
dataIndex: "finishStatus", dataIndex: "finishStatus",
key: "finishStatus", key: "finishStatus",
width: 60, width: '10%',
align: "center", align: "center",
ellipsis: true, ellipsis: true,
className: "h", className: "h",
@@ -427,7 +431,7 @@ export default {
); );
}, },
}, },
{ {/**
title: "操作", title: "操作",
dataIndex: "operation", dataIndex: "operation",
key: "operation", key: "operation",
@@ -492,7 +496,8 @@ export default {
</div> </div>
); );
}, },
}, */ },
], ],
exportHomeWorkV: false, exportHomeWorkV: false,
downloadUrl: null, downloadUrl: null,
@@ -612,7 +617,7 @@ export default {
currentStageId: props.projectTaskInfo.stageId, currentStageId: props.projectTaskInfo.stageId,
type: 1, type: 1,
pid: props.projectTaskInfo.projectId, pid: props.projectTaskInfo.projectId,
status: Number(state.projectName), status: state.projectName,
studentName: state.name, studentName: state.name,
taskId: props.projectTaskInfo.projectTaskId, taskId: props.projectTaskInfo.projectTaskId,
}); });
@@ -623,7 +628,7 @@ export default {
currentStageId: props.projectTaskInfo.stageId, currentStageId: props.projectTaskInfo.stageId,
type: 1, type: 1,
pid: props.projectTaskInfo.projectId, pid: props.projectTaskInfo.projectId,
status: Number(state.projectName), status: state.projectName,
studentName: state.name, studentName: state.name,
taskId: props.projectTaskInfo.projectTaskId, taskId: props.projectTaskInfo.projectTaskId,
taskType: props.projectTaskInfo.type, taskType: props.projectTaskInfo.type,
@@ -678,7 +683,7 @@ export default {
`${ `${
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${ process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${
props.projectTaskInfo.stageId props.projectTaskInfo.stageId
}&type=${1}&pid=${props.projectTaskInfo.projectId}taskType=2` }&type=${1}&pid=${props.projectTaskInfo.projectId}&taskType=2`
); );
// api // api
// .exportTaskStudent({ // .exportTaskStudent({
@@ -711,12 +716,12 @@ export default {
api api
.exportHomeWork(obj) .exportHomeWork(obj)
.then((res) => { .then((res) => {
console.log("导出作业", JSON.parse(res.data).data); console.log("导出作业",res.data.data);
if (JSON.parse(res.data).code === 200) { if (res.data.code === 200) {
message.destroy(); //message.destroy();
message.success("导出作业成功"); //message.success("导出作业成功");
state.exportHomeWorkV = true; state.exportHomeWorkV = true;
state.downloadUrl = JSON.parse(res.data).data; state.downloadUrl = res.data.data;
} }
}) })
.catch((err) => { .catch((err) => {

View File

@@ -99,7 +99,7 @@
:columns="tablecolumns" :columns="tablecolumns"
:data-source="tabledata" :data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900 }" :scroll="{ x: 1300 }"
:pagination="false" :pagination="false"
:row-selection="{ :row-selection="{
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
@@ -122,10 +122,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1">取消</button> <button class="btn1">取消</button>
<button class="btn2">确定</button> <button class="btn2">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
@@ -204,11 +205,11 @@ export default {
value: "0", value: "0",
label: "未开始", label: "未开始",
}, },
{ // {
id: 2, // id: 2,
value: "2", // value: "2",
label: "进行中", // label: "进行中",
}, // },
{ {
id: 3, id: 3,
value: "1", value: "1",
@@ -257,7 +258,7 @@ export default {
dataIndex: "studentName", dataIndex: "studentName",
key: "studentName", key: "studentName",
width: 50, width: 50,
align: "left", align: "center",
className: "h head", className: "h head",
customRender: (text) => { customRender: (text) => {
return ( return (
@@ -393,15 +394,15 @@ export default {
); );
}, },
}, },
{ // {
title: "操作", // title: "操作",
dataIndex: "operation", // dataIndex: "operation",
key: "operation", // key: "operation",
width: 100, // width: 100,
align: "center", // align: "center",
ellipsis: true, // ellipsis: true,
className: "h", // className: "h",
}, // },
], ],
exportHomeWorkV: false, exportHomeWorkV: false,
downloadUrl: null, downloadUrl: null,
@@ -502,7 +503,7 @@ export default {
currentStageId: props.projectTaskInfo.stageId, currentStageId: props.projectTaskInfo.stageId,
type: 1, type: 1,
pid: props.projectTaskInfo.projectId, pid: props.projectTaskInfo.projectId,
status: Number(state.projectName), status: state.projectName,
studentName: state.name, studentName: state.name,
taskId: props.projectTaskInfo.projectTaskId, taskId: props.projectTaskInfo.projectTaskId,
taskType: props.projectTaskInfo.type, taskType: props.projectTaskInfo.type,
@@ -514,7 +515,7 @@ export default {
currentStageId: props.projectTaskInfo.stageId, currentStageId: props.projectTaskInfo.stageId,
type: 1, type: 1,
pid: props.projectTaskInfo.projectId, pid: props.projectTaskInfo.projectId,
status: Number(state.projectName), status: state.projectName,
studentName: state.name, studentName: state.name,
taskId: props.projectTaskInfo.projectTaskId, taskId: props.projectTaskInfo.projectTaskId,
taskType: props.projectTaskInfo.type, taskType: props.projectTaskInfo.type,
@@ -561,14 +562,14 @@ export default {
state.tableDataTotal2 = 0; state.tableDataTotal2 = 0;
getStudent(); getStudent();
}; };
// 导出数据 // 导出数据
function exportTaskStu() { function exportTaskStu() {
window.open( window.open(
`${ `${
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${ process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${
props.projectTaskInfo.stageId props.projectTaskInfo.stageId
}&type=${1}&pid=${props.projectTaskInfo.projectId}&taskType=4` }&type=${1}&pid=${props.projectTaskInfo.projectId}&taskType=${4}`
); );
// api // api
// .exportTaskStudent({ // .exportTaskStudent({
@@ -600,12 +601,12 @@ export default {
api api
.exportHomeWork(obj) .exportHomeWork(obj)
.then((res) => { .then((res) => {
console.log("导出作业", JSON.parse(res.data).data); console.log("导出作业", res.data.data);
if (JSON.parse(res.data).code === 200) { if (res.data.code === 200) {
message.destroy(); // message.destroy();
message.success("导出作业成功"); //message.success("导出作业成功");
state.exportHomeWorkV = true; state.exportHomeWorkV = true;
state.downloadUrl = JSON.parse(res.data).data; state.downloadUrl = res.data.data;
} }
}) })
.catch((err) => { .catch((err) => {

View File

@@ -122,10 +122,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
@@ -182,11 +183,11 @@ export default {
value: "0", value: "0",
label: "未开始", label: "未开始",
}, },
{ // {
id: 2, // id: 2,
value: "2", // value: "2",
label: "进行中", // label: "进行中",
}, // },
{ {
id: 3, id: 3,
value: "1", value: "1",

View File

@@ -121,10 +121,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
@@ -183,10 +184,10 @@ export default {
label: "未开始", label: "未开始",
}, },
//{ //{
// id: 2, // id: 2,
//value: "2", // value: "2",
// label: "进行中", // label: "进行中",
// }, // },
{ {
id: 3, id: 3,
value: "1", value: "1",

View File

@@ -104,10 +104,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
</template> </template>
@@ -164,11 +165,11 @@ export default {
value: "0", value: "0",
label: "未开始", label: "未开始",
}, },
{ //{
id: 2, // id: 2,
value: "2", // value: "2",
label: "进行中", // label: "进行中",
}, // },
{ {
id: 3, id: 3,
value: "1", value: "1",

View File

@@ -107,10 +107,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
<!-- 导出成绩抽屉 --> <!-- 导出成绩抽屉 -->
<EScore v-model:eScorevisible="eScorevisible" /> <EScore v-model:eScorevisible="eScorevisible" />

View File

@@ -25,7 +25,7 @@
{{ datasource && datasource.endTime ? datasource.endTime : "-" }} {{ datasource && datasource.endTime ? datasource.endTime : "-" }}
</div> </div>
<div class="endtime" style="margin-left: 64px"> <div class="endtime" style="margin-left: 64px">
签到时{{ beginTime }}~{{ endTime }} 允许签到时{{ beginTime }}~{{ endTime }}
</div> </div>
</div> </div>
@@ -103,7 +103,7 @@
<div class="wz">导出数据</div> <div class="wz">导出数据</div>
</div> </div>
</div> </div>
<div class="line"> <!-- <div class="line">
<div class="inline"> <div class="inline">
<div class="left"> <div class="left">
<div class="img"></div> <div class="img"></div>
@@ -116,7 +116,7 @@
<div class="right" @click="clearLine">清空</div> <div class="right" @click="clearLine">清空</div>
</div> </div>
</div> </div>
<!-- <div class="pad"></div> --> <div class="pad"></div> -->
<div class="tableBox" style="margin-top: 30px"> <div class="tableBox" style="margin-top: 30px">
<a-table <a-table
@@ -167,10 +167,11 @@
/> />
</div> --> </div> -->
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
<!-- 二维码签到弹窗 --> <!-- 二维码签到弹窗 -->

View File

@@ -81,7 +81,7 @@
<div class="wz">导出作业</div> <div class="wz">导出作业</div>
</div> </div>
</div> </div>
<div class="line"> <!-- <div class="line">
<div class="inline"> <div class="inline">
<div class="left"> <div class="left">
<div class="img"></div> <div class="img"></div>
@@ -93,14 +93,14 @@
</div> </div>
<div class="right" @click="clearLine">清空</div> <div class="right" @click="clearLine">清空</div>
</div> </div>
</div> </div>-->
<div class="tableBox" style="margin-top: 20px; margin-bottom: 100px"> <div class="tableBox" style="margin-top: 20px; margin-bottom: 100px">
<a-table <a-table
style="border: 1px solid #f2f6fe" style="border: 1px solid #f2f6fe"
:columns="tablecolumns" :columns="tablecolumns"
:data-source="tabledata" :data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900 }" :scroll="{ x: 1300 }"
:pagination="false" :pagination="false"
:row-selection="{ :row-selection="{
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
@@ -123,10 +123,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="btnn"> <!-- <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
<!-- 批量标注完成 --> <!-- 批量标注完成 -->
@@ -223,11 +223,11 @@ export default {
value: "1", value: "1",
label: "已完成", label: "已完成",
}, },
{ //{
id: 2, // id: 2,
value: "2", // value: "2",
label: "进行中", // label: "进行中",
}, // },
], ],
selectedRowKeys: [], selectedRowKeys: [],
@@ -429,15 +429,15 @@ export default {
); );
}, },
}, },
{ // {
title: "操作", // title: "操作",
dataIndex: "operation", // dataIndex: "operation",
key: "operation", // key: "operation",
width: 100, // width: 100,
align: "center", // align: "center",
ellipsis: true, // ellipsis: true,
className: "h", // className: "h",
}, // },
], ],
exportHomeWorkV: false, exportHomeWorkV: false,
downloadUrl: null, downloadUrl: null,
@@ -624,7 +624,7 @@ export default {
`${ `${
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${ process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${
props.datasource.chapterId props.datasource.chapterId
}&type=${2}&pid=${props.datasource.routerId}&taskType=2` }&type=${2}&pid=${props.datasource.routerId}&taskType=${1}`
); );
// api // api
// .exportTaskStudent({ // .exportTaskStudent({
@@ -657,12 +657,12 @@ export default {
api api
.exportHomeWork(obj) .exportHomeWork(obj)
.then((res) => { .then((res) => {
console.log("导出作业", JSON.parse(res.data).data); console.log("导出作业", res.data.data);
if (JSON.parse(res.data).code === 200) { if (res.data.code === 200) {
message.destroy(); // message.destroy();
message.success("导出作业成功"); // message.success("导出作业成功");
state.exportHomeWorkV = true; state.exportHomeWorkV = true;
state.downloadUrl = JSON.parse(res.data).data; state.downloadUrl = res.data.data;
} }
}) })
.catch((err) => { .catch((err) => {

View File

@@ -94,7 +94,7 @@
:columns="tablecolumns" :columns="tablecolumns"
:data-source="tabledata" :data-source="tabledata"
:loading="tableDataTotal === -1 ? true : false" :loading="tableDataTotal === -1 ? true : false"
:scroll="{ x: 900 }" :scroll="{ x: 1300 }"
:pagination="false" :pagination="false"
:row-selection="{ :row-selection="{
selectedRowKeys: selectedRowKeys, selectedRowKeys: selectedRowKeys,
@@ -117,10 +117,11 @@
</div> </div>
</div> </div>
</div> </div>
<!--
<div class="btnn"> <div class="btnn">
<button class="btn1" @click="closeDrawer">取消</button> <button class="btn1" @click="closeDrawer">取消</button>
<button class="btn2" @click="closeDrawer">确定</button> <button class="btn2" @click="closeDrawer">确定</button>
</div> </div>-->
</div> </div>
</a-drawer> </a-drawer>
@@ -199,11 +200,11 @@ export default {
value: "0", value: "0",
label: "未开始", label: "未开始",
}, },
{ // {
id: 2, // id: 2,
value: "2", // value: "2",
label: "进行中", // label: "进行中",
}, //},
{ {
id: 3, id: 3,
value: "1", value: "1",
@@ -251,7 +252,7 @@ export default {
dataIndex: "studentName", dataIndex: "studentName",
key: "studentName", key: "studentName",
width: 50, width: 50,
align: "left", align: "center",
className: "h", className: "h",
ellipsis: true, ellipsis: true,
customRender: (text) => { customRender: (text) => {
@@ -322,26 +323,7 @@ export default {
); );
}, },
}, },
{
title: "所属小组",
dataIndex: "studentOrgName",
key: "studentOrgName",
width: 60,
align: "center",
ellipsis: true,
className: "h",
customRender: (text) => {
return (
<div class="racona">
<span>
{text.record.studentOrgName
? text.record.studentOrgName
: "-"}
</span>
</div>
);
},
},
{ {
title: "成绩", title: "成绩",
dataIndex: "workScore", dataIndex: "workScore",
@@ -406,15 +388,15 @@ export default {
); );
}, },
}, },
{ // {
title: "操作", // title: "操作",
dataIndex: "operation", // dataIndex: "operation",
key: "operation", // key: "operation",
width: 100, // width: 100,
align: "center", // align: "center",
ellipsis: true, // ellipsis: true,
className: "h", // className: "h",
}, // },
], ],
exportHomeWorkV: false, exportHomeWorkV: false,
downloadUrl: null, downloadUrl: null,
@@ -578,7 +560,7 @@ export default {
`${ `${
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${ process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${
props.datasource.chapterId props.datasource.chapterId
}&type=${2}&pid=${props.datasource.routerId}&taskType=4` }&type=${2}&pid=${props.datasource.routerId}&taskType=${4}`
); );
// api // api
// .exportTaskStudent({ // .exportTaskStudent({
@@ -610,12 +592,12 @@ export default {
api api
.exportHomeWork(obj) .exportHomeWork(obj)
.then((res) => { .then((res) => {
console.log("导出作业", JSON.parse(res.data).data); console.log("导出作业", res.data.data);
if (JSON.parse(res.data).code === 200) { if (res.data.code === 200) {
message.destroy(); // message.destroy();
message.success("导出作业成功"); // message.success("导出作业成功");
state.exportHomeWorkV = true; state.exportHomeWorkV = true;
state.downloadUrl = JSON.parse(res.data).data; state.downloadUrl = res.data.data;
} }
}) })
.catch((err) => { .catch((err) => {

View File

@@ -14,7 +14,7 @@
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
<a-col v-if="type === 1"> <!-- <a-col v-if="type === 1">
<a-form-item title="小组名称:"> <a-form-item title="小组名称:">
<a-input <a-input
class="cus-input" class="cus-input"
@@ -23,6 +23,7 @@
/> />
</a-form-item> </a-form-item>
</a-col> </a-col>
-->
<a-col v-if="type === 1"> <a-col v-if="type === 1">
<a-form-item title="部门:"> <a-form-item title="部门:">
<div class="select in" style="width: 270px"> <div class="select in" style="width: 270px">
@@ -98,9 +99,10 @@
导入学员 导入学员
</a-button> </a-button>
</a-col> </a-col>
<!--
<a-col :span="1.5" v-if="type === 1"> <a-col :span="1.5" v-if="type === 1">
<a-button class="cus-btn white"> 批量换组 </a-button> <a-button class="cus-btn white"> 批量换组 </a-button>
</a-col> </a-col>-->
<a-col :span="1.5" v-if="type === 1"> <a-col :span="1.5" v-if="type === 1">
<a-button class="cus-btn white" @click="exportTaskStu"> <a-button class="cus-btn white" @click="exportTaskStu">
导出学习信息 导出学习信息
@@ -199,7 +201,7 @@
<a-col> <a-col>
<slot name="extension" v-bind:data="{ record }"></slot> <slot name="extension" v-bind:data="{ record }"></slot>
</a-col> </a-col>
<!-- 新加 换组 通过 拒绝--> <!-- 新加 换组 通过 拒绝
<a-col v-if="type === 1"> <a-col v-if="type === 1">
<div <div
style=" style="
@@ -213,6 +215,7 @@
换组 换组
</div> </div>
</a-col> </a-col>
-->
<a-col v-if="type === 3"> <a-col v-if="type === 3">
<div <div
style=" style="
@@ -682,19 +685,12 @@ const exportHomeWorkShow = () => {
api api
.exportHomeWork(obj) .exportHomeWork(obj)
.then((res) => { .then((res) => {
console.log("导出作业", JSON.parse(res.data).data); console.log("导出作业", res.data.data);
if (JSON.parse(res.data).code === 200) { //message.destroy();
message.destroy(); // message.success("导出作业成功");
message.success("导出作业成功"); exportHomeWorkV.value = true;
exportHomeWorkV.value = true; downloadUrl.value = res.data.data;
downloadUrl.value = JSON.parse(res.data).data;
}
}) })
.catch((err) => {
message.destroy();
message.error("导出作业失败");
console.log("导出作业失败", err);
});
}; };
// //导出作业 // //导出作业
// const exportHomeWork = () => { // const exportHomeWork = () => {

View File

@@ -80,12 +80,12 @@
<div class="timemanag" style="margin-top: 12px"> <div class="timemanag" style="margin-top: 12px">
{{values.createTime?values.createTime:'-'}} {{values.createName?values.createName:'-'}} {{values.createTime?values.createTime:'-'}} {{values.createName?values.createName:'-'}}
</div> </div>
<div class="timemanag">来源:{{values.source?values.source:'-'}}</div> <div class="timemanag">来源:{{{1:'项目',2:'路径图',3:'开课'}[values.type]+'-'+values.name}}</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="itemdown"> <div class="itemdown">
<div class="download" @click="downLoadFile(values)">下载</div> <div class="download" @click="downLoadFile(values)">下载</div>
<div class="delete" @click="removeFile(values)">删除</div> <div class="delete" @click="removeFile(values)">删除</div>
</div> </div>
@@ -181,7 +181,7 @@ export default {
function downLoadFile(data) { function downLoadFile(data) {
console.log(data) console.log(data)
window.open(state.locationHref + data.url) window.open(state.locationHref + data.url)
} }
// 删除文件 // 删除文件
function removeFile(data) { function removeFile(data) {
console.log(data) console.log(data)
@@ -204,14 +204,14 @@ export default {
// 搜索 // 搜索
function searchDownloadList() { function searchDownloadList() {
getData() getData()
} }
// 重置 // 重置
function reseatDownloadList() { function reseatDownloadList() {
state.name = ""; state.name = "";
state.currentPage = 1; state.currentPage = 1;
getData() getData()
} }
// 分页 // 分页
//分页 //分页

View File

@@ -94,11 +94,11 @@
<div class="btns"> <div class="btns">
<!-- 2022-11-30注释 后面放开 --> <!-- 2022-11-30注释 后面放开 -->
<div <div
class="btn btn3" class="btn btn2"
@click="openMessage" @click="openMessage"
style="margin-right: 14px" style="margin-right: 14px"
> >
<div class="search"></div> <div class="img2"></div>
<div class="btnText">导出</div> <div class="btnText">导出</div>
</div> </div>
<div class="btn btn3" @click="of_hShow"> <div class="btn btn3" @click="of_hShow">
@@ -1362,10 +1362,10 @@
> >
删除 删除
</a-menu-item> </a-menu-item>
<!--新加 二维码 --> <!--新加 二维码
<a-menu-item @click="qrcodeVisible(record, 1)"> <a-menu-item @click="qrcodeVisible(record, 1)">
二维码 二维码
</a-menu-item> </a-menu-item>-->
</a-menu> </a-menu>
</template> </template>
<div class="fb" style="margin-left: -20px"> <div class="fb" style="margin-left: -20px">
@@ -3067,14 +3067,7 @@ export default defineComponent({
dataIndex: "evastatus", dataIndex: "evastatus",
key: "8", key: "8",
align: "center", align: "center",
customRender: ({ record }) => { customRender: ({record}) => record.assessmentStatus ? '已评估' : '未评估'
switch (String(record.evalStatus)) {
case "0":
return "未评估";
case "1":
return "已评估";
}
},
}, },
{ {
title: "作业成绩", title: "作业成绩",
@@ -3085,8 +3078,8 @@ export default defineComponent({
customRender: ({ record }) => { customRender: ({ record }) => {
return ( return (
<div class="racona"> <div class="racona">
{record.workScore ? ( {record.score ? (
<span>{record.workScore}</span> <span>{record.score}</span>
) : ( ) : (
<span <span
style={{ color: "#4EA6FF", cursor: "pointer" }} style={{ color: "#4EA6FF", cursor: "pointer" }}
@@ -3121,16 +3114,17 @@ export default defineComponent({
{ {
title: "考试成绩", title: "考试成绩",
width: "15%", width: "15%",
dataIndex: "evastatus", dataIndex: "examinationScore",
key: "8", key: "8",
align: "center", align: "center",
}, },
{ {
title: "结业状态", title: "结业状态",
width: "15%", width: "15%",
dataIndex: "evastatus", dataIndex: "completionStatus",
key: "8", key: "8",
align: "center", align: "center",
customRender: ({ record }) => <div>{{1:'结业'}[record.completionStatus] || '-'}</div>,
}, },
], ],
shipType: 1, shipType: 1,
@@ -4761,6 +4755,7 @@ export default defineComponent({
}; };
const handleJoin = async () => { const handleJoin = async () => {
state.lrcj_inputV1 || message.error("请输入成绩")
if (state.rg_hs) { if (state.rg_hs) {
if (state.piliang) { if (state.piliang) {
api1.updateStudent({ api1.updateStudent({
@@ -5844,8 +5839,8 @@ export default defineComponent({
} }
} }
.btn1:hover { .btn1 {
background: rgba(64, 158, 255, 0.76);
.search { .search {
background-image: url("../../assets/images/courseManage/search0.png"); background-image: url("../../assets/images/courseManage/search0.png");
@@ -5855,18 +5850,18 @@ export default defineComponent({
color: #ffffff; color: #ffffff;
} }
} }
/**
.btn1:active { .btn1:active {
background: #0982ff; background: #0982ff;
} }
.btn2:hover { .btn2 {
background: rgba(64, 158, 255, 0.1); background: rgba(64, 158, 255, 0.1);
} }
.btn2:active { .btn2:active {
background: rgba(64, 158, 255, 0.2); background: rgba(64, 158, 255, 0.2);
} }*/
} }
.btns { .btns {
@@ -5899,31 +5894,22 @@ export default defineComponent({
} }
} }
.btn3 { .btn3 {
margin-right: 0px;
.search { .search {
width: 17px; width: 17px;
height: 18px; height: 18px;
background-image: url("../../assets/images/courseManage/add0.png"); background-image: url("../../assets/images/courseManage/add0.png");
} }
}
.btn3:hover {
background: rgba(64, 158, 255, 0.76);
.search {
background-image: url("../../assets/images/courseManage/add0.png");
}
.btnText { .btnText {
color: #ffffff; color: #ffffff;
} }
} }
.btn3:active {
background: #0982ff;
}
} }
} }
@@ -6945,7 +6931,7 @@ export default defineComponent({
} }
} }
.btn1:hover { .btn1 {
background: rgba(64, 158, 255, 1); background: rgba(64, 158, 255, 1);
.search { .search {
@@ -6965,7 +6951,7 @@ export default defineComponent({
} }
} }
.btn2:hover { .btn2{
background: rgba(64, 158, 255, 1); background: rgba(64, 158, 255, 1);
.search { .search {
@@ -7357,7 +7343,7 @@ export default defineComponent({
} }
} }
.btn1:hover { .btn1 {
background: #4ea6ff; background: #4ea6ff;
.search { .search {
@@ -7369,7 +7355,7 @@ export default defineComponent({
} }
} }
.btn2:hover { .btn2 {
background: #4ea6ff; background: #4ea6ff;
.reset { .reset {
@@ -7585,8 +7571,8 @@ export default defineComponent({
} }
} }
.btn1:hover { .btn1{
background: rgba(64, 158, 255, 0.76);
.search { .search {
background-image: url("../../assets/images/courseManage/search0.png"); background-image: url("../../assets/images/courseManage/search0.png");
@@ -7596,7 +7582,7 @@ export default defineComponent({
color: #ffffff; color: #ffffff;
} }
} }
/**
.btn1:active { .btn1:active {
background: #0982ff; background: #0982ff;
} }
@@ -7608,7 +7594,7 @@ export default defineComponent({
.btn2:active { .btn2:active {
background: rgba(64, 158, 255, 0.2); background: rgba(64, 158, 255, 0.2);
} }
*/
.btns { .btns {
display: flex; display: flex;
@@ -7637,33 +7623,20 @@ export default defineComponent({
line-height: 36px; line-height: 36px;
margin-left: 5px; margin-left: 5px;
} }
} .btn2 {
.btn3 {
margin-right: 0px; margin-right: 0px;
.search { .img2 {
width: 17px; width: 17px;
height: 18px; height: 18px;
background-image: url("../../assets/images/courseManage/add0.png"); background-image: url(../../assets/images/coursewareManage/export1.png);
} }
} }
.btn3:hover {
background: rgba(64, 158, 255, 0.76);
.search {
background-image: url("../../assets/images/courseManage/add0.png");
}
.btnText {
color: #ffffff;
}
} }
.btn3:active {
background: #0982ff;
}
} }
} }

View File

@@ -1859,9 +1859,10 @@ export default {
title: "最近学习时间", title: "最近学习时间",
dataIndex: "lastStudyTime", dataIndex: "lastStudyTime",
key: "lastStudyTime", key: "lastStudyTime",
width: 80, width: 120,
align: "center", align: "center",
className: "h", className: "h",
ellipsis: true,
}, },
], ],
loading: false, loading: false,
@@ -3074,6 +3075,7 @@ export default {
width: "20%", width: "20%",
align: "center", align: "center",
className: "h", className: "h",
ellipsis: true,
// sorter: { // sorter: {
// compare: (a, b) => a.stutime - b.stutime, // compare: (a, b) => a.stutime - b.stutime,
// multiple: 3, // multiple: 3,