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
# api项目基础url
VUE_APP_BASE_API=/manageApi
# 导出url
#文件路径
VUE_APP_FILE_PATH=/file/
# 代理url 本地调试,不可以用在其他地方
VUE_APP_PROXY_URL=http://111.231.196.214/manageApi
# 登录url
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_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
* @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 router from "@/router";
// import { getCookie } from '../api/method'
@@ -21,7 +21,7 @@ const http = axios.create({
baseURL: process.env.VUE_APP_BASE_API,
timeout: 1000 * 15,
// headers: { "Content-Type": "multipart/form-data" },
headers: { "Content-Type": "application/json" },
headers: {"Content-Type": "application/json"},
});
http.interceptors.request.use(
@@ -51,18 +51,19 @@ http.interceptors.response.use(
(response) => {
// console.log('response', response)
const {
data: { code, msg },
data: {code, msg, show},
} = response;
// console.log('code', code)
console.log('code', code)
if (code === 0 || code === 200) {
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) {
if (error.message == "timeout of 1ms exceeded") {

View File

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

View File

@@ -18,7 +18,7 @@
<div class="main">
<div class="minatitl">
<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>
<div class="upload">
@@ -221,10 +221,9 @@ export default {
setup(props, ctx) {
const store = useStore();
const state = reactive({
template:
process.env.VUE_APP_TEMPLATE + "导入学员模版-1672998102528.xlsx",
template: process.env.VUE_APP_FILE_PATH + process.env.VUE_APP_UP_LOAD_STUDENT_TEMPLATE,
importStudent:
process.env.VUE_APP_BASE_API + "admin/student/importStudent",
process.env.VUE_APP_BASE_API + "/admin/student/importStudent",
timers: "", // 定时器,用于清空定时器使用
isAddStudent: false, // 用于判断用户是否关闭弹框需要重新获取学员列表
uploadpercent: -1,
@@ -235,11 +234,6 @@ export default {
errNum: 0, //失败数据数
downloadErrUrl: "",
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,
userName: store.state.userInfo.realName,
fileName: "",
@@ -337,9 +331,8 @@ export default {
// 下载失败数据
const downloadEeeorData = () => {
console.log(state.locationHref + 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="minatitl">
<div class="up1">请下载</div>
<div class="up2">模板</div>
<div class="up2" @click="downTemplate" style="cursor:pointer">模板</div>
<div class="up1">按要求填写数据并导入</div>
</div>
<div class="upload">
@@ -352,15 +352,19 @@ export default {
const downloadEeeorData = () => {
console.log(state.locationHref + 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 {
...toRefs(state),
afterVisibleChange,
closeDrawer,
handleChange,
downTemplate,
BATCH_IMPORT_SCORE,
beforeUpload,
handleUpload,

View File

@@ -100,7 +100,7 @@
>
<div class="asstype">描述</div>
<div style="color: rgba(51, 51, 51, 1); font-size: 14px">
{{ values?.assessmentQaDescribe }}
{{ values?.content }}
</div>
</div>
</div>
@@ -118,8 +118,8 @@
</div>
<div class="lastbox">
<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 v-if="iittem >= values.assessmentMinScore && iittem <= values.assessmentMaxScore" :class="index+1 == values.selectAnswer ? 'numbox' : 'numbox1'">{{ iittem }}</div>
<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="(iittem + 1 - values.assessmentMinScore) == values.selectAnswer ? 'numbox' : 'numbox1'">{{ iittem }}</div>
</div>
<div class="sorcetext">非常满意</div>
</div>
@@ -225,6 +225,7 @@ export default {
};
},
};
</script>
<style lang="scss">

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -80,12 +80,12 @@
<div class="timemanag" style="margin-top: 12px">
{{values.createTime?values.createTime:'-'}} {{values.createName?values.createName:'-'}}
</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 class="itemdown">
</div>
<div class="itemdown">
<div class="download" @click="downLoadFile(values)">下载</div>
<div class="delete" @click="removeFile(values)">删除</div>
</div>
@@ -181,7 +181,7 @@ export default {
function downLoadFile(data) {
console.log(data)
window.open(state.locationHref + data.url)
}
}
// 删除文件
function removeFile(data) {
console.log(data)
@@ -204,14 +204,14 @@ export default {
// 搜索
function searchDownloadList() {
getData()
}
}
// 重置
function reseatDownloadList() {
state.name = "";
state.currentPage = 1;
getData()
}
}
// 分页
//分页

View File

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