mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 12:26:47 +08:00
feat:合并
This commit is contained in:
5
.env
5
.env
@@ -20,7 +20,6 @@ VUE_APP_IFRAME_STUDENT_URL=https://u-pre.boe.com/pc/loadingVUE_APP_BOE_API_URLVU
|
|||||||
|
|
||||||
# 课程二维码
|
# 课程二维码
|
||||||
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_UP_LOAD_HOMEWORK_TEMPLATE=导入作业成绩模板-1673511599785.xlsx
|
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
|
||||||
# 导入作业成绩学员模板
|
|
||||||
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673511636808.xlsx
|
|
||||||
|
|||||||
5
.env.boe
5
.env.boe
@@ -6,8 +6,5 @@ VUE_APP_LOGIN_URL=https://u-pre.boe.com/web
|
|||||||
|
|
||||||
VUE_APP_BOE_API_URL=https://u-pre.boe.com
|
VUE_APP_BOE_API_URL=https://u-pre.boe.com
|
||||||
|
|
||||||
|
|
||||||
# 导入学员模板
|
# 导入学员模板
|
||||||
VUE_APP_UP_LOAD_HOMEWORK_TEMPLATE=导入作业成绩模板-1673516508029.xlsx
|
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
|
||||||
# 导入作业成绩学员模板
|
|
||||||
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673516483342.xlsx
|
|
||||||
@@ -13,4 +13,4 @@ VUE_APP_IFRAME_STUDENT_URL=https://u.boe.com/pc/loading
|
|||||||
|
|
||||||
VUE_APP_COURSE_STUDY=https://u.boe.com/pc/course/studyindex?id=
|
VUE_APP_COURSE_STUDY=https://u.boe.com/pc/course/studyindex?id=
|
||||||
|
|
||||||
VUE_APP_TEMPLATE=https://u-pre.boe.com/upload/
|
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
|
||||||
|
|||||||
@@ -13,4 +13,4 @@ VUE_APP_IFRAME_STUDENT_URL=https://u.boe.com/pc-release/loading
|
|||||||
|
|
||||||
VUE_APP_COURSE_STUDY=https://u.boe.com/pc-release/course/studyindex?id=
|
VUE_APP_COURSE_STUDY=https://u.boe.com/pc-release/course/studyindex?id=
|
||||||
|
|
||||||
VUE_APP_TEMPLATE=https://u-pre.boe.com/upload/
|
VUE_APP_UP_LOAD_STUDENT_TEMPLATE=导入学员模版-1673963663229.xlsx
|
||||||
@@ -44,7 +44,7 @@ export default defineComponent({
|
|||||||
const store = useStore();
|
const store = useStore();
|
||||||
const isLogin = ref(false);
|
const isLogin = ref(false);
|
||||||
// console.log("router", router.getRoutes(), route);
|
// console.log("router", router.getRoutes(), route);
|
||||||
console.log("版本2.0.9------------");
|
console.log("版本2.1.6------------");
|
||||||
const routes = computed(() => {
|
const routes = computed(() => {
|
||||||
return router.getRoutes().filter((e) => e.meta?.isLink);
|
return router.getRoutes().filter((e) => e.meta?.isLink);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
export const USER_LIST = '/userbasic/user/list post'
|
// export const USER_LIST = '/userbasic/user/list post'
|
||||||
|
export const USER_LIST = '/userbasic/user/searchList post'
|
||||||
export const ORG_LIST = '/userbasic/org/list post'
|
export const ORG_LIST = '/userbasic/org/list post'
|
||||||
export const ORG_CHILD_LIST = '/userbasic/org/info post'
|
export const ORG_CHILD_LIST = '/userbasic/org/info post'
|
||||||
export const AUDIENCE_LIST = '/userbasic/audience/list post'
|
export const AUDIENCE_LIST = '/userbasic/audience/list post'
|
||||||
@@ -59,7 +59,6 @@
|
|||||||
:options="projectNameList2"
|
:options="projectNameList2"
|
||||||
@change="selectProjectName2"
|
@change="selectProjectName2"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -335,6 +335,7 @@
|
|||||||
v-model:addtestVisible="addtestvisible"
|
v-model:addtestVisible="addtestvisible"
|
||||||
v-model:EditTestId="EditTestId"
|
v-model:EditTestId="EditTestId"
|
||||||
v-model:testName="testName"
|
v-model:testName="testName"
|
||||||
|
v-model:offCourseId="offCourseId"
|
||||||
:faceLevel="true"
|
:faceLevel="true"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
@@ -498,6 +499,7 @@ export default {
|
|||||||
assessmentName: null,
|
assessmentName: null,
|
||||||
isClick: false,
|
isClick: false,
|
||||||
attach:"",
|
attach:"",
|
||||||
|
offCourseId:props.EditFaceId,
|
||||||
|
|
||||||
});
|
});
|
||||||
const clear = () => {
|
const clear = () => {
|
||||||
@@ -586,6 +588,7 @@ export default {
|
|||||||
const queryFaceTeach = () => {
|
const queryFaceTeach = () => {
|
||||||
queryFaceDetailById(props.EditFaceId).then((res) => {
|
queryFaceDetailById(props.EditFaceId).then((res) => {
|
||||||
console.log("获取到了面授课开课详情", res.data.data);
|
console.log("获取到了面授课开课详情", res.data.data);
|
||||||
|
state.offCourseId = props.EditFaceId;
|
||||||
let result = res.data.data;
|
let result = res.data.data;
|
||||||
state.courseName = result.name;
|
state.courseName = result.name;
|
||||||
state.description = result.description;
|
state.description = result.description;
|
||||||
|
|||||||
@@ -72,10 +72,10 @@
|
|||||||
<FJUpload v-model:value="attach" @changevalue="changevalue"/>
|
<FJUpload v-model:value="attach" @changevalue="changevalue"/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div style="width:100%;height: 80px;"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="main_btns">
|
<div class="main_btns" style="background:#fff;">
|
||||||
<a-button class="btn1" @click="closeDrawer2">取消</a-button>
|
<a-button class="btn1" @click="closeDrawer2">取消</a-button>
|
||||||
<a-button class="btn2" html-type="submit" @click="updteHomeWork">确定</a-button>
|
<a-button class="btn2" html-type="submit" @click="updteHomeWork">确定</a-button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,35 +37,12 @@
|
|||||||
name="uploadFile"
|
name="uploadFile"
|
||||||
:multiple="false"
|
:multiple="false"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
:data="
|
:data="{
|
||||||
courseType == 1
|
|
||||||
? {
|
|
||||||
targetId: Number(courseId),
|
targetId: Number(courseId),
|
||||||
type: 3,
|
type: courseType,
|
||||||
userId: userId,
|
userId: userInfo.id,
|
||||||
userName: userName,
|
userName: userInfo.realName,
|
||||||
}
|
} "
|
||||||
: courseType == 3
|
|
||||||
? {
|
|
||||||
targetId: Number(courseId),
|
|
||||||
type: 1,
|
|
||||||
userId: userId,
|
|
||||||
userName: userName,
|
|
||||||
}
|
|
||||||
: courseType == 4
|
|
||||||
? {
|
|
||||||
targetId: Number(courseId),
|
|
||||||
type: 2,
|
|
||||||
userId: userId,
|
|
||||||
userName: userName,
|
|
||||||
}
|
|
||||||
: {
|
|
||||||
targetId: Number(courseId),
|
|
||||||
type: 3,
|
|
||||||
userId: userId,
|
|
||||||
userName: userName,
|
|
||||||
}
|
|
||||||
"
|
|
||||||
:showUploadList="false"
|
:showUploadList="false"
|
||||||
>
|
>
|
||||||
<p class="ant-upload-drag-icon">
|
<p class="ant-upload-drag-icon">
|
||||||
@@ -205,7 +182,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs } from "vue";
|
import {computed, reactive, toRefs} from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import * as api from "../../api/index1";
|
import * as api from "../../api/index1";
|
||||||
import { BATCH_IMPORT_SCORE } from "@/api/config";
|
import { BATCH_IMPORT_SCORE } from "@/api/config";
|
||||||
@@ -246,11 +223,11 @@ export default {
|
|||||||
errNum: 0, //失败数据数
|
errNum: 0, //失败数据数
|
||||||
downloadErrUrl: "",
|
downloadErrUrl: "",
|
||||||
showBottomBar: false, // 显示底部成功条数和失败条数
|
showBottomBar: false, // 显示底部成功条数和失败条数
|
||||||
userId: store.state.userInfo.id,
|
|
||||||
userName: store.state.userInfo.realName,
|
|
||||||
fileName: "",
|
fileName: "",
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const userInfo = computed(()=>store.state.userInfo)
|
||||||
|
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
clearInterval(state.timers);
|
clearInterval(state.timers);
|
||||||
state.fileList = [];
|
state.fileList = [];
|
||||||
@@ -364,6 +341,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
...toRefs(state),
|
...toRefs(state),
|
||||||
afterVisibleChange,
|
afterVisibleChange,
|
||||||
|
userInfo,
|
||||||
closeDrawer,
|
closeDrawer,
|
||||||
// change,
|
// change,
|
||||||
handleChange,
|
handleChange,
|
||||||
|
|||||||
@@ -309,8 +309,8 @@ import {message} from "ant-design-vue";
|
|||||||
import {
|
import {
|
||||||
createExamination,
|
createExamination,
|
||||||
queryExaminationDetailById,
|
queryExaminationDetailById,
|
||||||
updateExamination,
|
|
||||||
} from "@/api/indexExam";
|
} from "@/api/indexExam";
|
||||||
|
// updateExamination,
|
||||||
import STest from "./SelectTest.vue";
|
import STest from "./SelectTest.vue";
|
||||||
import {ProjectEditTask, RouterEditTask} from "@/api/indexTask";
|
import {ProjectEditTask, RouterEditTask} from "@/api/indexTask";
|
||||||
import {addTempTask} from "../../api/indexTaskadd";
|
import {addTempTask} from "../../api/indexTaskadd";
|
||||||
@@ -379,6 +379,10 @@ export default {
|
|||||||
type: String,
|
type: String,
|
||||||
default: null,
|
default: null,
|
||||||
},
|
},
|
||||||
|
offCourseId: {
|
||||||
|
type: Number,
|
||||||
|
default: null,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
setup(props, ctx) {
|
setup(props, ctx) {
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
@@ -456,7 +460,7 @@ export default {
|
|||||||
console.log("props", props);
|
console.log("props", props);
|
||||||
if (props.addtestVisible && props.EditTestId && props.EditTestId >0) {
|
if (props.addtestVisible && props.EditTestId && props.EditTestId >0) {
|
||||||
// 该页面显示同时 edit为true 时,发送查询请求,
|
// 该页面显示同时 edit为true 时,发送查询请求,
|
||||||
queryTest();
|
// queryTest();
|
||||||
}
|
}
|
||||||
if (bool) {
|
if (bool) {
|
||||||
state.test.showAnswers = 1;
|
state.test.showAnswers = 1;
|
||||||
@@ -541,30 +545,39 @@ export default {
|
|||||||
state.test.targetId = 0;
|
state.test.targetId = 0;
|
||||||
state.test.type = 0;
|
state.test.type = 0;
|
||||||
state.test.chapterId=0;
|
state.test.chapterId=0;
|
||||||
if(props.isLevel == 1){
|
console.log("props.offCourseId",props.offCourseId);
|
||||||
state.test.targetId = props.routerId;
|
if (props.faceLevel && props.offCourseId > 0) {
|
||||||
state.test.chapterId = props.isactive;
|
state.test.targetId = props.offCourseId;
|
||||||
state.test.type = 2;
|
state.test.type = 3;
|
||||||
|
}else{
|
||||||
} else if (props.isLevel == 2) {
|
if(props.isLevel == 1){
|
||||||
state.test.targetId = props.projectId;
|
state.test.targetId = props.routerId;
|
||||||
state.test.type = 1;
|
state.test.chapterId = props.isactive;
|
||||||
|
state.test.type = 2;
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (props.EditTestId > 0) {
|
} else if (props.isLevel == 2) {
|
||||||
// 编辑任务
|
state.test.targetId = props.projectId;
|
||||||
updateExamination(state.test)
|
state.test.type = 1;
|
||||||
.then(async (res) => {
|
|
||||||
await updateTask(res);
|
}
|
||||||
// closeDrawer();
|
}
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
message.destroy();
|
|
||||||
message.error(`编辑失败`);
|
|
||||||
});
|
// if (props.EditTestId > 0) {
|
||||||
} else {
|
// // 编辑任务
|
||||||
|
// updateExamination(state.test)
|
||||||
|
// .then(async (res) => {
|
||||||
|
// await updateTask(res);
|
||||||
|
// // closeDrawer();
|
||||||
|
// })
|
||||||
|
// .catch(() => {
|
||||||
|
// message.destroy();
|
||||||
|
// message.error(`编辑失败`);
|
||||||
|
// });
|
||||||
|
// } else {
|
||||||
// 创建任务
|
// 创建任务
|
||||||
createExamination(state.test)
|
createExamination(state.test)
|
||||||
.then(async (res) => {
|
.then(async (res) => {
|
||||||
@@ -575,7 +588,7 @@ export default {
|
|||||||
message.destroy();
|
message.destroy();
|
||||||
message.error(`创建失败`);
|
message.error(`创建失败`);
|
||||||
});
|
});
|
||||||
}
|
// }
|
||||||
};
|
};
|
||||||
const updateTask = (res) => {
|
const updateTask = (res) => {
|
||||||
state.EditTestId = res.data.data.examinationId;
|
state.EditTestId = res.data.data.examinationId;
|
||||||
|
|||||||
@@ -23,7 +23,6 @@
|
|||||||
style="width: 264px; border-radius: 8px"
|
style="width: 264px; border-radius: 8px"
|
||||||
:options="stugroupList"
|
:options="stugroupList"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -28,8 +28,8 @@
|
|||||||
<div class="sortbox">
|
<div class="sortbox">
|
||||||
<div class="sortname">进度排名</div>
|
<div class="sortname">进度排名</div>
|
||||||
<div class="sortnub">
|
<div class="sortnub">
|
||||||
<span class="nub1">{{pro.currentChapterCnt}}</span>
|
<span class="nub1">{{rank.current}}</span>
|
||||||
<span class="total">/{{pro.totalChapterCnt}}</span>
|
<span class="total">/{{rank.total}}</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<a-divider
|
<a-divider
|
||||||
@@ -209,6 +209,7 @@
|
|||||||
import { reactive, toRefs } from "vue";
|
import { reactive, toRefs } from "vue";
|
||||||
import CheckStuMess from "./CheckStuMess.vue";
|
import CheckStuMess from "./CheckStuMess.vue";
|
||||||
import {stuProgress} from "@/api/index1";
|
import {stuProgress} from "@/api/index1";
|
||||||
|
import {studentRank} from "@/api/indexProjStu";
|
||||||
// import {message} from "ant-design-vue";
|
// import {message} from "ant-design-vue";
|
||||||
export default {
|
export default {
|
||||||
name: "CheckStu",
|
name: "CheckStu",
|
||||||
@@ -234,17 +235,29 @@ export default {
|
|||||||
pro:null,
|
pro:null,
|
||||||
loading:true,
|
loading:true,
|
||||||
stageListActive: 0,
|
stageListActive: 0,
|
||||||
|
rank:{total:1,current:1},
|
||||||
});
|
});
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
ctx.emit("update:CheckStuvisible", false);
|
ctx.emit("update:CheckStuvisible", false);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getStuRank = () => {
|
||||||
|
studentRank({
|
||||||
|
projectId: props.routerId,
|
||||||
|
studentId: props.studentId,
|
||||||
|
type:2
|
||||||
|
}).then(res=>{
|
||||||
|
state.rank = res.data.data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
const showProMess = () => {
|
const showProMess = () => {
|
||||||
state.StuMessvisible = true;
|
state.StuMessvisible = true;
|
||||||
};
|
};
|
||||||
const afterVisibleChange = (bool) => {
|
const afterVisibleChange = (bool) => {
|
||||||
if(props.CheckStuvisible) {
|
if(props.CheckStuvisible) {
|
||||||
getStuProgress()
|
getStuProgress()
|
||||||
|
getStuRank()
|
||||||
}
|
}
|
||||||
console.log("state", bool);
|
console.log("state", bool);
|
||||||
};
|
};
|
||||||
@@ -546,11 +559,17 @@ export default {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin-left: 25px;
|
margin-left: 25px;
|
||||||
|
word-break:keep-all;
|
||||||
|
white-space:nowrap;
|
||||||
}
|
}
|
||||||
.text2 {
|
.text2 {
|
||||||
color: rgba(51, 51, 51, 0.8);
|
color: rgba(51, 51, 51, 0.8);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-left: 65px;
|
margin-left: 65px;
|
||||||
|
word-break:keep-all;
|
||||||
|
white-space:nowrap;
|
||||||
|
overflow:hidden;
|
||||||
|
text-overflow:ellipsis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.alreadyclass {
|
.alreadyclass {
|
||||||
@@ -564,6 +583,8 @@ export default {
|
|||||||
color: rgba(56, 125, 247, 1);
|
color: rgba(56, 125, 247, 1);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-left: 16px;
|
margin-left: 16px;
|
||||||
|
word-break:keep-all;
|
||||||
|
white-space:nowrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -188,11 +188,10 @@
|
|||||||
</a-drawer>
|
</a-drawer>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, toRefs } from "vue";
|
import {reactive, toRefs} from "vue";
|
||||||
import { message } from "ant-design-vue";
|
import { message } from "ant-design-vue";
|
||||||
import * as api from "../../api/index1";
|
import * as api from "../../api/index1";
|
||||||
import { BATCH_IMPORT_SCORE } from "@/api/config";
|
import { BATCH_IMPORT_SCORE } from "@/api/config";
|
||||||
import { useStore } from "vuex";
|
|
||||||
export default {
|
export default {
|
||||||
name: "EScore",
|
name: "EScore",
|
||||||
props: {
|
props: {
|
||||||
@@ -219,7 +218,6 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
setup(props, ctx) {
|
setup(props, ctx) {
|
||||||
const store = useStore();
|
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
fileType: ["xls", "xlsx"],
|
fileType: ["xls", "xlsx"],
|
||||||
importHomeWork:
|
importHomeWork:
|
||||||
@@ -231,8 +229,6 @@ export default {
|
|||||||
succNum: 0, //成功数据数
|
succNum: 0, //成功数据数
|
||||||
errNum: 0, //失败数据数
|
errNum: 0, //失败数据数
|
||||||
downloadErrUrl: null, //下载失败数据
|
downloadErrUrl: null, //下载失败数据
|
||||||
userId: store.state.userInfo.id,
|
|
||||||
userName: store.state.userInfo.realName,
|
|
||||||
fileName: "",
|
fileName: "",
|
||||||
});
|
});
|
||||||
const closeDrawer = () => {
|
const closeDrawer = () => {
|
||||||
@@ -290,6 +286,10 @@ export default {
|
|||||||
console.log("props.getStudent", props.getStudent);
|
console.log("props.getStudent", props.getStudent);
|
||||||
clearInterval(timer);
|
clearInterval(timer);
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
state.addLoading = false;
|
||||||
|
message.destroy();
|
||||||
|
message.error(`文件导入超时`);
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch((err) => {
|
.catch((err) => {
|
||||||
@@ -298,6 +298,12 @@ export default {
|
|||||||
console.log("查询导入状态失败", err);
|
console.log("查询导入状态失败", err);
|
||||||
});
|
});
|
||||||
}, 500);
|
}, 500);
|
||||||
|
setTimeout(() => {
|
||||||
|
clearInterval(timer)
|
||||||
|
state.addLoading = false;
|
||||||
|
message.destroy();
|
||||||
|
message.error(`文件导入超时`);
|
||||||
|
}, 30000);
|
||||||
} else if (status === "error") {
|
} else if (status === "error") {
|
||||||
state.uploadErr = true;
|
state.uploadErr = true;
|
||||||
message.error(`${info.file.name}上传失败`);
|
message.error(`${info.file.name}上传失败`);
|
||||||
|
|||||||
@@ -36,7 +36,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -61,7 +61,6 @@
|
|||||||
:options="projectNameList2"
|
:options="projectNameList2"
|
||||||
@change="selectProjectName2"
|
@change="selectProjectName2"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
<div>发布时间</div>
|
<div>发布时间</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="noticeContent">
|
<div class="noticeContent">
|
||||||
<div v-for="item in notice" :key="item.id" class="item">
|
<div v-for="item in notice" :key="item.id" class="item" style="align-items:flex-start;">
|
||||||
<!-- <div class="itemcontent">{{ item.content }}</div> -->
|
<!-- <div class="itemcontent">{{ item.content }}</div> -->
|
||||||
<a-textarea
|
<a-textarea
|
||||||
class="itemcontent"
|
class="itemcontent"
|
||||||
@@ -15,8 +15,9 @@
|
|||||||
v-model:value="item.content"
|
v-model:value="item.content"
|
||||||
:maxlength="150"
|
:maxlength="150"
|
||||||
placeholder="公告信息最多输入150个字"
|
placeholder="公告信息最多输入150个字"
|
||||||
style="margin-top: -10px; height: 120px;background-color: #fff;"
|
style="margin-top: -10px; height: 220px;background-color: #fff;border:1px solid #fff;"
|
||||||
/>
|
/>
|
||||||
|
<!-- <pre style="text-align: left;padding-left: 20px">{{item.content}}</pre> -->
|
||||||
<div class="itemtime">{{ item.pubtime }}</div>
|
<div class="itemtime">{{ item.pubtime }}</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -138,7 +139,7 @@ export default {
|
|||||||
margin-top: 20px;
|
margin-top: 20px;
|
||||||
margin-left: 32px;
|
margin-left: 32px;
|
||||||
.item {
|
.item {
|
||||||
height: 66px;
|
// height: 66px;
|
||||||
width: 74%;
|
width: 74%;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
|
|||||||
@@ -22,8 +22,9 @@
|
|||||||
v-model:value="noticeContent1"
|
v-model:value="noticeContent1"
|
||||||
:maxlength="150"
|
:maxlength="150"
|
||||||
placeholder="公告信息最多输入150个字"
|
placeholder="公告信息最多输入150个字"
|
||||||
style="margin-top: -10px; height: 160px; resize: none;background-color: #fff;color:#666;"
|
style="margin-top: -10px; height: 220px;border:1px solid #fff; resize: none;background-color: #fff;color:#666;"
|
||||||
/>
|
/>
|
||||||
|
<!-- <pre>{{noticeContent1}}</pre> -->
|
||||||
<div class="btn-content">
|
<div class="btn-content">
|
||||||
<a-button type="primary" @click="handleEdit">编辑</a-button>
|
<a-button type="primary" @click="handleEdit">编辑</a-button>
|
||||||
</div>
|
</div>
|
||||||
@@ -33,19 +34,20 @@
|
|||||||
<!-- <div class="txt-content">
|
<!-- <div class="txt-content">
|
||||||
{{ noticeContent1 ? noticeContent1 : "暂无公告" }}
|
{{ noticeContent1 ? noticeContent1 : "暂无公告" }}
|
||||||
</div> -->
|
</div> -->
|
||||||
|
<!-- <pre>{{noticeContent1}}</pre> -->
|
||||||
<a-textarea
|
<a-textarea
|
||||||
disabled="true"
|
disabled="true"
|
||||||
v-model:value="noticeContent1"
|
v-model:value="noticeContent1"
|
||||||
:maxlength="150"
|
:maxlength="150"
|
||||||
placeholder="公告信息最多输入150个字"
|
placeholder="公告信息最多输入150个字"
|
||||||
style="margin-top: -10px; height:160px; resize: none;background-color: #fff;color:#666;"
|
style="margin-top: -10px; height: 220px;border:1px solid #fff; resize: none;background-color: #fff;color:#666;"
|
||||||
/>
|
/>
|
||||||
<p>编辑新公告:</p>
|
<p>编辑新公告:</p>
|
||||||
<a-textarea
|
<a-textarea
|
||||||
v-model:value="noticeContent"
|
v-model:value="noticeContent"
|
||||||
:maxlength="150"
|
:maxlength="150"
|
||||||
placeholder="公告信息最多输入150个字"
|
placeholder="公告信息最多输入150个字"
|
||||||
style="margin-top: -10px; height: 160px"
|
style="margin-top: -10px; height: 160px;"
|
||||||
/>
|
/>
|
||||||
<div class="btn-content">
|
<div class="btn-content">
|
||||||
<a-button class="cancel" @click="handleCancel">取消</a-button>
|
<a-button class="cancel" @click="handleCancel">取消</a-button>
|
||||||
|
|||||||
@@ -249,6 +249,7 @@ export default {
|
|||||||
studentRank({
|
studentRank({
|
||||||
projectId: props.projectId,
|
projectId: props.projectId,
|
||||||
studentId: props.checkStuId,
|
studentId: props.checkStuId,
|
||||||
|
type:1
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
state.rank = res.data.data
|
state.rank = res.data.data
|
||||||
})
|
})
|
||||||
@@ -302,6 +303,7 @@ export default {
|
|||||||
? "投票"
|
? "投票"
|
||||||
: "-",
|
: "-",
|
||||||
name: value.name,
|
name: value.name,
|
||||||
|
projectTaskId: value.projectTaskId,
|
||||||
complete:
|
complete:
|
||||||
value.status == -1
|
value.status == -1
|
||||||
? "未开始"
|
? "未开始"
|
||||||
@@ -316,6 +318,8 @@ export default {
|
|||||||
};
|
};
|
||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
|
array.sort((a,b)=>{return a.projectTaskId - b.projectTaskId})
|
||||||
|
console.log('我排序了吗--------------------------》', array)
|
||||||
return array;
|
return array;
|
||||||
};
|
};
|
||||||
const setStageList = (tableData) => {
|
const setStageList = (tableData) => {
|
||||||
@@ -546,11 +550,17 @@ export default {
|
|||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
margin-left: 25px;
|
margin-left: 25px;
|
||||||
|
word-break:keep-all;
|
||||||
|
white-space:nowrap;
|
||||||
}
|
}
|
||||||
.text2 {
|
.text2 {
|
||||||
color: rgba(51, 51, 51, 0.8);
|
color: rgba(51, 51, 51, 0.8);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-left: 65px;
|
margin-left: 65px;
|
||||||
|
word-break:keep-all;
|
||||||
|
white-space:nowrap;
|
||||||
|
overflow:hidden;
|
||||||
|
text-overflow:ellipsis;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.alreadyclass {
|
.alreadyclass {
|
||||||
@@ -564,6 +574,8 @@ export default {
|
|||||||
color: rgba(56, 125, 247, 1);
|
color: rgba(56, 125, 247, 1);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
margin-left: 16px;
|
margin-left: 16px;
|
||||||
|
word-break:keep-all;
|
||||||
|
white-space:nowrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -120,6 +120,8 @@ import { reactive, toRefs, computed } from "vue";
|
|||||||
// import { planList } from "../../api/indexTaskadd";
|
// import { planList } from "../../api/indexTaskadd";
|
||||||
//import {detail} from "../../api/indexCourse";
|
//import {detail} from "../../api/indexCourse";
|
||||||
import { list } from "../../api/indexTaskadd";
|
import { list } from "../../api/indexTaskadd";
|
||||||
|
import {useStore} from "vuex";
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const columns1 = [
|
const columns1 = [
|
||||||
@@ -147,14 +149,14 @@ const columns1 = [
|
|||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
},
|
},
|
||||||
{
|
// {
|
||||||
title: "授课教师",
|
// title: "授课教师",
|
||||||
width: "15%",
|
// width: "15%",
|
||||||
dataIndex: "teacher",
|
// dataIndex: "teacher",
|
||||||
key: "teacher",
|
// key: "teacher",
|
||||||
align: "center",
|
// align: "center",
|
||||||
ellipsis: true,
|
// ellipsis: true,
|
||||||
},
|
// },
|
||||||
{
|
{
|
||||||
title: "创建人",
|
title: "创建人",
|
||||||
width: "15%",
|
width: "15%",
|
||||||
@@ -194,6 +196,7 @@ export default {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
setup(props, ctx) {
|
setup(props, ctx) {
|
||||||
|
const store = useStore();
|
||||||
const state = reactive({
|
const state = reactive({
|
||||||
classTableData: [
|
classTableData: [
|
||||||
// {
|
// {
|
||||||
@@ -417,6 +420,17 @@ export default {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const sysTypeOptions = computed(() => store.state.sysType);
|
||||||
|
|
||||||
|
function findClassFullName(list,classify, name = '') {
|
||||||
|
console.log(list,classify)
|
||||||
|
return list && list.length && list
|
||||||
|
.map(e => classify == e.dictCode ? name ? name + '-' + e.dictName : e.dictName : findClassFullName(e.children, classify,name ? name + '-' + e.dictName : e.dictName))
|
||||||
|
.filter(name => name)
|
||||||
|
.join('') || ''
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
const getClassData = (tabledata) => {
|
const getClassData = (tabledata) => {
|
||||||
let data = tabledata;
|
let data = tabledata;
|
||||||
let array = [];
|
let array = [];
|
||||||
@@ -429,8 +443,8 @@ export default {
|
|||||||
teacher: value.teacher || "-",
|
teacher: value.teacher || "-",
|
||||||
creator: value.createName || "-",
|
creator: value.createName || "-",
|
||||||
time: value.publishTime,
|
time: value.publishTime,
|
||||||
categoryId: value.categoryId,
|
categoryId: value.sysTypeId,
|
||||||
category: changeTreeSelectValue(String(value.categoryId)),
|
category: value.sysTypeId,
|
||||||
//需要判断content
|
//需要判断content
|
||||||
};
|
};
|
||||||
console.log("obj", obj);
|
console.log("obj", obj);
|
||||||
@@ -455,43 +469,48 @@ export default {
|
|||||||
// break;
|
// break;
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
if (!obj.category) {
|
// if (!obj.category) {
|
||||||
obj.category = "-";
|
// obj.category = "-";
|
||||||
}
|
// }
|
||||||
console.log("obj. obj.category22 ", obj.category);
|
// console.log("obj. obj.category22 ", obj.category);
|
||||||
array.push(obj);
|
array.push(obj);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
array.forEach((itm) => {
|
||||||
|
itm.category = findClassFullName(sysTypeOptions.value,itm.categoryId) || '-'
|
||||||
|
});
|
||||||
|
console.log(array)
|
||||||
state.classTableData = array;
|
state.classTableData = array;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 格式化树型结构选择数据
|
// 格式化树型结构选择数据
|
||||||
const changeTreeSelectValue = (values) => {
|
// const changeTreeSelectValue = (values) => {
|
||||||
let data = state.options2222;
|
// let data = state.options2222;
|
||||||
console.log(values, data)
|
// console.log(values, data)
|
||||||
let str = ''
|
// let str = ''
|
||||||
for (let i = 0; i < data.length; i++) {
|
// for (let i = 0; i < data.length; i++) {
|
||||||
if (data[i].value == values) {
|
// if (data[i].value == values) {
|
||||||
str = data[i].title
|
// str = data[i].title
|
||||||
} else {
|
// } else {
|
||||||
for (let j = 0; j < data[i].children.length; j++) {
|
// for (let j = 0; j < data[i].children.length; j++) {
|
||||||
if (data[i].children[j].value == values) {
|
// if (data[i].children[j].value == values) {
|
||||||
str = data[i].title + '/' + data[i].children[j].title
|
// str = data[i].title + '/' + data[i].children[j].title
|
||||||
} else {
|
// } else {
|
||||||
if (data[i].children[j].children) {
|
// if (data[i].children[j].children) {
|
||||||
for (let k = 0; k < data[i].children[j].children.length; k++) {
|
// for (let k = 0; k < data[i].children[j].children.length; k++) {
|
||||||
if (data[i].children[j].children[k].value == values) {
|
// if (data[i].children[j].children[k].value == values) {
|
||||||
str = data[i].title + '/' + data[i].children[j].title + '/' + data[i].children[j].children[k].title
|
// str = data[i].title + '/' + data[i].children[j].title + '/' + data[i].children[j].children[k].title
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
console.log('str-str-str-str', str)
|
// console.log('str-str-str-str', str)
|
||||||
state.fen_lei1 = str;
|
// state.fen_lei1 = str;
|
||||||
return str;
|
// return str;
|
||||||
}
|
// }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -184,15 +183,15 @@ export default {
|
|||||||
tablecolumns: [
|
tablecolumns: [
|
||||||
{
|
{
|
||||||
title: "工号",
|
title: "工号",
|
||||||
dataIndex: "studentCode",
|
dataIndex: "studentUserNo",
|
||||||
key: "studentCode",
|
key: "studentUserNo",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h head",
|
className: "h head",
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.studentCode?text.record.studentCode:"-"}</span>
|
<span> {text.record.studentUserNo?text.record.studentUserNo:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -246,8 +245,8 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "考试次数",
|
title: "考试次数",
|
||||||
dataIndex: "testNumber",
|
dataIndex: "num",
|
||||||
key: "testNumber",
|
key: "num",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
@@ -255,15 +254,15 @@ export default {
|
|||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.testNumber?text.record.testNumber:"-"}</span>
|
<span> {text.record.num?text.record.num:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "成绩",
|
title: "成绩",
|
||||||
dataIndex: "score",
|
dataIndex: "examinationScore",
|
||||||
key: "score",
|
key: "examinationScore",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
@@ -271,7 +270,7 @@ export default {
|
|||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.score?text.record.score:"-"}</span>
|
<span> {text.record.examinationScore?text.record.examinationScore:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -279,8 +278,8 @@ export default {
|
|||||||
|
|
||||||
{
|
{
|
||||||
title: "完成时间",
|
title: "完成时间",
|
||||||
dataIndex: "finishedTime",
|
dataIndex: "examinationSubmitTime",
|
||||||
key: "finishedTime",
|
key: "examinationSubmitTime",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
@@ -288,27 +287,20 @@ export default {
|
|||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.finishedTime?text.record.finishedTime:"-"}</span>
|
<span> {text.record.examinationSubmitTime?text.record.examinationSubmitTime:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "任务状态",
|
title: "任务状态",
|
||||||
dataIndex: "status",
|
dataIndex: "finishStatus",
|
||||||
key: "status",
|
key: "finishStatus",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
className: "h",
|
className: "h",
|
||||||
customRender: (text) => {
|
customRender: ({record:{finishStatus}}) => ({1:'通过',2:'未通过'}[finishStatus] || '未开始'),
|
||||||
console.log(text.record.status);
|
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span> {text.record.status==0||text.record.status==null?"未开始":text.record.status==10?"未通过":"已通过"}</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
loadingData: true
|
loadingData: true
|
||||||
@@ -355,40 +347,19 @@ export default {
|
|||||||
|
|
||||||
// 获取数据
|
// 获取数据
|
||||||
function getData() {
|
function getData() {
|
||||||
console.log('我是传递的参数',{
|
api.AssessmentManagementMessage({
|
||||||
"chapterId": props.datasource.stageId,
|
pageNo: state.currentPage,
|
||||||
"pageNo": state.currentPage,
|
pageSize: state.pageSize,
|
||||||
"pageSize": state.pageSize,
|
currentStageId: props.datasource.stageId,
|
||||||
"studentName": state.name,
|
type: 1,
|
||||||
"status": state.projectName,
|
pid: props.datasource.projectId,
|
||||||
"targetId": props.datasource.projectId,
|
taskId: props.datasource.projectTaskId,
|
||||||
"taskId": props.datasource.courseId,
|
taskType: props.datasource.type,
|
||||||
"type": 1
|
status: state.projectName,
|
||||||
})
|
studentName: state.name,
|
||||||
api.ExamManagementMessage({
|
|
||||||
"chapterId": props.datasource.stageId,
|
|
||||||
"pageNo": state.currentPage,
|
|
||||||
"pageSize": state.pageSize,
|
|
||||||
"studentName": state.name,
|
|
||||||
"status": state.projectName,
|
|
||||||
"targetId": props.datasource.projectId,
|
|
||||||
"taskId": props.datasource.courseId,
|
|
||||||
"type": 1
|
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
console.log(res)
|
state.tabledata = res.data.data.records;
|
||||||
if(res.data.code == 200){
|
state.tableDataTotal = res.data.data.total;
|
||||||
let newData = [];
|
|
||||||
for(let i=0;i<res.data.data.managementDtoList.length;i++){
|
|
||||||
res.data.data.managementDtoList[i].key = i + 1;
|
|
||||||
newData.push(res.data.data.managementDtoList[i])
|
|
||||||
}
|
|
||||||
state.tabledata = newData;
|
|
||||||
state.tableDataTotal = res.data.data.total;
|
|
||||||
state.loadingData = false;
|
|
||||||
console.log('我是处理过后的数据', newData)
|
|
||||||
}
|
|
||||||
}).catch(err=>{
|
|
||||||
console.log(err)
|
|
||||||
state.loadingData = false;
|
state.loadingData = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -415,7 +386,9 @@ export default {
|
|||||||
|
|
||||||
{/* 导出数据 */}
|
{/* 导出数据 */}
|
||||||
function exportData() {
|
function exportData() {
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.chapterId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&type=${1}`)
|
// window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.stageId=="0"?"":props.datasource.stageId}&targetId=${props.datasource.projectId}&taskId=${props.datasource.courseId}&type=${2}`)
|
||||||
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId}&type=${1}&pid=${props.datasource.projectId}&taskId=${props.datasource.projectTaskId}&taskType=${props.datasource.type}`)
|
||||||
|
|
||||||
{/* api.ExportExam({
|
{/* api.ExportExam({
|
||||||
"chapterId": props.datasource.chapterId,
|
"chapterId": props.datasource.chapterId,
|
||||||
"targetId": props.datasource.routerId,
|
"targetId": props.datasource.routerId,
|
||||||
|
|||||||
@@ -186,7 +186,7 @@
|
|||||||
v-model:AddImpStuvisible="AddImpStuvisible"
|
v-model:AddImpStuvisible="AddImpStuvisible"
|
||||||
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
||||||
:courseId="projectTaskInfo.courseId"
|
:courseId="projectTaskInfo.courseId"
|
||||||
:courseType="2"
|
:courseType="3"
|
||||||
/>
|
/>
|
||||||
<!-- 批量签到弹窗 -->
|
<!-- 批量签到弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
@@ -397,7 +397,7 @@ export default {
|
|||||||
ids: state.selectedStudents,
|
ids: state.selectedStudents,
|
||||||
taskId: Number(props.projectTaskInfo.projectTaskId),
|
taskId: Number(props.projectTaskInfo.projectTaskId),
|
||||||
taskType: Number(props.projectTaskInfo.type),
|
taskType: Number(props.projectTaskInfo.type),
|
||||||
type: 1,
|
type: 3,
|
||||||
// userName: "",
|
// userName: "",
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
@@ -663,7 +663,7 @@ export default {
|
|||||||
studentName: text.record.studentName,
|
studentName: text.record.studentName,
|
||||||
taskId: Number(props.projectTaskInfo.projectTaskId),
|
taskId: Number(props.projectTaskInfo.projectTaskId),
|
||||||
taskType: Number(props.projectTaskInfo.type),
|
taskType: Number(props.projectTaskInfo.type),
|
||||||
type: 1,
|
type: 3,
|
||||||
// userName: "",
|
// userName: "",
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
@@ -697,7 +697,7 @@ export default {
|
|||||||
studentName: text.record.studentName,
|
studentName: text.record.studentName,
|
||||||
taskId: Number(props.projectTaskInfo.projectTaskId),
|
taskId: Number(props.projectTaskInfo.projectTaskId),
|
||||||
taskType: Number(props.projectTaskInfo.type),
|
taskType: Number(props.projectTaskInfo.type),
|
||||||
type: 1,
|
type: 3,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.attendanceLeave(obj)
|
.attendanceLeave(obj)
|
||||||
@@ -797,29 +797,18 @@ export default {
|
|||||||
|
|
||||||
//获取学员
|
//获取学员
|
||||||
const getStudent = () => {
|
const getStudent = () => {
|
||||||
console.log("我是传递的查询参数", props.projectTaskInfo, {
|
|
||||||
pageNo: state.currentPage,
|
|
||||||
pageSize: state.pageSize,
|
|
||||||
currentStageId: props.projectTaskInfo.stageId,
|
|
||||||
type: 1,
|
|
||||||
pid: props.projectTaskInfo.projectId,
|
|
||||||
// status: Number(state.name),
|
|
||||||
studentName: state.name,
|
|
||||||
signStatus: state.projectName2,
|
|
||||||
taskId: props.projectTaskInfo.projectTaskId,
|
|
||||||
});
|
|
||||||
api
|
api
|
||||||
.AssessmentManagementMessage({
|
.AssessmentManagementMessage({
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
currentStageId: props.projectTaskInfo.stageId,
|
currentStageId: props.projectTaskInfo.stageId,
|
||||||
type: 1,
|
type: 3,
|
||||||
pid: props.projectTaskInfo.projectId,
|
pid: props.projectTaskInfo.courseId,
|
||||||
// status: Number(state.name),
|
// status: Number(state.name),
|
||||||
studentName: state.name,
|
studentName: state.name,
|
||||||
taskId: props.projectTaskInfo.projectTaskId,
|
// taskId: props.projectTaskInfo.projectTaskId,
|
||||||
signStatus: state.projectName2,
|
signStatus: state.projectName2,
|
||||||
taskType: props.projectTaskInfo.type,
|
// taskType: props.projectTaskInfo.type,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取面授管理学员", res);
|
console.log("获取面授管理学员", res);
|
||||||
@@ -866,7 +855,7 @@ export default {
|
|||||||
function exportTaskStu() {
|
function exportTaskStu() {
|
||||||
console.log("props.projectTaskInfo", props.projectTaskInfo);
|
console.log("props.projectTaskInfo", props.projectTaskInfo);
|
||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.projectTaskInfo.stageId}&type=${1}&taskId=${props.projectTaskInfo.projectTaskId}&pid=${props.projectTaskInfo.projectId}&taskType=2&thirdType=2`
|
`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.projectTaskInfo.stageId}&type=3&pid=${props.projectTaskInfo.courseId}&thirdType=6`
|
||||||
);
|
);
|
||||||
// api
|
// api
|
||||||
// .exportTaskStudent({
|
// .exportTaskStudent({
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -148,12 +147,8 @@
|
|||||||
? projectTaskInfo.projectTaskId
|
? projectTaskInfo.projectTaskId
|
||||||
: null
|
: null
|
||||||
"
|
"
|
||||||
:type="1"
|
:type="3"
|
||||||
:pid="
|
:pid="projectTaskInfo?.courseId"
|
||||||
projectTaskInfo && projectTaskInfo.projectId
|
|
||||||
? projectTaskInfo.projectId
|
|
||||||
: null
|
|
||||||
"
|
|
||||||
:taskType="
|
:taskType="
|
||||||
projectTaskInfo && projectTaskInfo.type ? projectTaskInfo.type : null
|
projectTaskInfo && projectTaskInfo.type ? projectTaskInfo.type : null
|
||||||
"
|
"
|
||||||
@@ -167,9 +162,9 @@
|
|||||||
<!-- 录入成绩抽屉 -->
|
<!-- 录入成绩抽屉 -->
|
||||||
<EScore
|
<EScore
|
||||||
v-model:eScorevisible="Evisible"
|
v-model:eScorevisible="Evisible"
|
||||||
:type="1"
|
:type="3"
|
||||||
:id="projectTaskInfo?.projectTaskId"
|
:id="projectTaskInfo?.projectTaskId"
|
||||||
:pid="projectTaskInfo?.projectId"
|
:pid="projectTaskInfo?.courseId"
|
||||||
v-model:searchTaskList="searchTaskList"
|
v-model:searchTaskList="searchTaskList"
|
||||||
/>
|
/>
|
||||||
<!-- 查看作业抽屉 -->
|
<!-- 查看作业抽屉 -->
|
||||||
@@ -394,15 +389,7 @@ export default {
|
|||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
className: "h",
|
className: "h",
|
||||||
customRender: (text) => {
|
customRender: ({record:{assessmentScore}}) => (assessmentScore ? Math.round(assessmentScore * 100) / 100 : "-"),
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span>
|
|
||||||
{text.record.assessmentScore || "-"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "任务状态",
|
title: "任务状态",
|
||||||
@@ -613,23 +600,23 @@ export default {
|
|||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
currentStageId: props.projectTaskInfo.stageId,
|
currentStageId: props.projectTaskInfo.stageId,
|
||||||
type: 1,
|
type: 3,
|
||||||
pid: props.projectTaskInfo.projectId,
|
pid: props.projectTaskInfo.courseId,
|
||||||
status: state.projectName,
|
status: state.projectName,
|
||||||
studentName: state.name,
|
studentName: state.name,
|
||||||
taskId: props.projectTaskInfo.projectTaskId,
|
// taskId: props.projectTaskInfo.projectTaskId,
|
||||||
});
|
});
|
||||||
api
|
api
|
||||||
.AssessmentManagementMessage({
|
.AssessmentManagementMessage({
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
currentStageId: props.projectTaskInfo.stageId,
|
currentStageId: props.projectTaskInfo.stageId,
|
||||||
type: 1,
|
type: 3,
|
||||||
pid: props.projectTaskInfo.projectId,
|
pid: props.projectTaskInfo.courseId,
|
||||||
status: 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,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取面授管理学员", res);
|
console.log("获取面授管理学员", res);
|
||||||
@@ -677,10 +664,7 @@ export default {
|
|||||||
// 导出数据
|
// 导出数据
|
||||||
function exportTaskStu() {
|
function exportTaskStu() {
|
||||||
console.log("props.projectTaskInfo", props.projectTaskInfo);
|
console.log("props.projectTaskInfo", props.projectTaskInfo);
|
||||||
window.open(
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.projectTaskInfo.stageId}&type=3&pid=${props.projectTaskInfo.courseId}&thirdType=4&taskId=${props.projectTaskInfo.projectTaskId}`);
|
||||||
`${
|
|
||||||
process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.projectTaskInfo.stageId}&type=${1}&pid=${props.projectTaskInfo.projectId}&taskId=${props.projectTaskInfo.projectTaskId}&taskType=2`
|
|
||||||
);
|
|
||||||
// api
|
// api
|
||||||
// .exportTaskStudent({
|
// .exportTaskStudent({
|
||||||
// pageNo: state.currentPage,
|
// pageNo: state.currentPage,
|
||||||
@@ -704,10 +688,9 @@ export default {
|
|||||||
// exportHomeWork();
|
// exportHomeWork();
|
||||||
let obj = {
|
let obj = {
|
||||||
currentStageId: props.projectTaskInfo.stageId,
|
currentStageId: props.projectTaskInfo.stageId,
|
||||||
pid: props.projectTaskInfo.projectId,
|
pid: props.projectTaskInfo.courseId,
|
||||||
taskId: props.projectTaskInfo.projectTaskId,
|
taskId: props.projectTaskInfo.projectTaskId,
|
||||||
taskType: props.projectTaskInfo.type,
|
type: 3,
|
||||||
type: 1,
|
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.exportHomeWork(obj)
|
.exportHomeWork(obj)
|
||||||
@@ -728,15 +711,7 @@ export default {
|
|||||||
};
|
};
|
||||||
//导出作业
|
//导出作业
|
||||||
function exportHomeWork() {
|
function exportHomeWork() {
|
||||||
console.log("props.projectTaskInfo", props.projectTaskInfo);
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportHomeWork?currentStageId=${props.projectTaskInfo.stageId}&type=3&pid=${props.projectTaskInfo.courseId}&thirdType=3`);
|
||||||
window.open(
|
|
||||||
`${
|
|
||||||
process.env.VUE_APP_BASE_API}/admin/student/exportHomeWork?currentStageId=${
|
|
||||||
props.projectTaskInfo.stageId
|
|
||||||
}&type=${1}&pid=${props.projectTaskInfo.projectId}&taskId=${
|
|
||||||
props.projectTaskInfo.projectTaskId
|
|
||||||
}&taskType=${props.projectTaskInfo.type}`
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -49,7 +49,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -570,7 +569,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=${4}`
|
}&type=${1}&pid=${props.projectTaskInfo.projectId}&taskType=${4}&taskId=${props.projectTaskInfo.projectTaskId}`
|
||||||
);
|
);
|
||||||
// api
|
// api
|
||||||
// .exportTaskStudent({
|
// .exportTaskStudent({
|
||||||
|
|||||||
@@ -65,7 +65,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -381,23 +380,26 @@ export default {
|
|||||||
});
|
});
|
||||||
} else if(props.datasource.type == 1) {
|
} else if(props.datasource.type == 1) {
|
||||||
console.log("我是传递的查询参数", {
|
console.log("我是传递的查询参数", {
|
||||||
|
"pageNo": state.currentPage,
|
||||||
|
"pageSize": state.pageSize,
|
||||||
"chapterId": props.datasource.stageId=="0"?"":props.datasource.stageId,
|
"chapterId": props.datasource.stageId=="0"?"":props.datasource.stageId,
|
||||||
"status": state.projectName,
|
"status": state.projectName,
|
||||||
"studentName": state.name,
|
"studentName": state.name,
|
||||||
"targetId":props.datasource.projectId,
|
"targetId":props.datasource.projectId,
|
||||||
"taskId": props.datasource.projectTaskId,
|
"taskId": props.datasource.courseId,
|
||||||
"thirdId": props.datasource.targetId,
|
"thirdId": props.datasource.targetId,
|
||||||
"type": 1
|
"type": 2
|
||||||
});
|
});
|
||||||
|
{/* "chapterId": props.datasource.stageId=="0"?"":props.datasource.stageId, */}
|
||||||
api.QueryOnlineManagementDetail({
|
api.QueryOnlineManagementDetail({
|
||||||
"chapterId": props.datasource.stageId=="0"?"":props.datasource.stageId,
|
"pageNo": state.currentPage,
|
||||||
|
"pageSize": state.pageSize,
|
||||||
"status": state.projectName,
|
"status": state.projectName,
|
||||||
"studentName": state.name,
|
"studentName": state.name,
|
||||||
"targetId":props.datasource.projectId,
|
"targetId":props.datasource.projectId,
|
||||||
"taskId": props.datasource.projectTaskId,
|
"taskId": props.datasource.courseId,
|
||||||
"thirdId": props.datasource.targetId,
|
"thirdId": props.datasource.targetId,
|
||||||
"type": 1
|
"type": 2
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
console.log('在线课数据获取', res)
|
console.log('在线课数据获取', res)
|
||||||
if(res.data.code==200){
|
if(res.data.code==200){
|
||||||
|
|||||||
@@ -384,20 +384,24 @@ export default {
|
|||||||
});
|
});
|
||||||
} else if(props.datasource.type == 1) {
|
} else if(props.datasource.type == 1) {
|
||||||
console.log("我是传递的查询参数", {
|
console.log("我是传递的查询参数", {
|
||||||
|
"pageNo": state.currentPage,
|
||||||
|
"pageSize": state.pageSize,
|
||||||
"chapterId": props.datasource.chapterId,
|
"chapterId": props.datasource.chapterId,
|
||||||
"status": state.projectName,
|
"status": state.projectName,
|
||||||
"studentName": state.name,
|
"studentName": state.name,
|
||||||
"taskId": props.datasource.routerTaskId,
|
"taskId": props.datasource.courseId,
|
||||||
"thirdId": props.datasource.targetId,
|
"thirdId": props.datasource.targetId,
|
||||||
"type": 1
|
"type": 1
|
||||||
});
|
});
|
||||||
|
|
||||||
api.QueryOnlineManagementDetail({
|
api.QueryOnlineManagementDetail({
|
||||||
|
"pageNo": state.currentPage,
|
||||||
|
"pageSize": state.pageSize,
|
||||||
"chapterId": props.datasource.chapterId,
|
"chapterId": props.datasource.chapterId,
|
||||||
"status": state.projectName,
|
"status": state.projectName,
|
||||||
"studentName": state.name,
|
"studentName": state.name,
|
||||||
"targetId":props.datasource.routerId,
|
"targetId":props.datasource.routerId,
|
||||||
"taskId": props.datasource.routerTaskId,
|
"taskId": props.datasource.courseId,
|
||||||
"thirdId": props.datasource.targetId,
|
"thirdId": props.datasource.targetId,
|
||||||
"type": 1
|
"type": 1
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -37,7 +37,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -187,15 +186,15 @@ export default {
|
|||||||
tablecolumns: [
|
tablecolumns: [
|
||||||
{
|
{
|
||||||
title: "工号",
|
title: "工号",
|
||||||
dataIndex: "studentCode",
|
dataIndex: "studentUserNo",
|
||||||
key: "studentCode",
|
key: "studentUserNo",
|
||||||
width: 120,
|
width: 120,
|
||||||
align: "center",
|
align: "center",
|
||||||
className: "h head",
|
className: "h head",
|
||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.studentCode?text.record.studentCode:"-"}</span>
|
<span> {text.record.studentUserNo?text.record.studentUserNo:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -264,8 +263,8 @@ export default {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "考试次数",
|
title: "考试次数",
|
||||||
dataIndex: "testNumber",
|
dataIndex: "num",
|
||||||
key: "testNumber",
|
key: "num",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
@@ -273,7 +272,7 @@ export default {
|
|||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.testNumber?text.record.testNumber:"-"}</span>
|
<span> {text.record.num?text.record.num:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -289,7 +288,7 @@ export default {
|
|||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.score?text.record.score:"-"}</span>
|
<span> {text.record.examinationScore?text.record.examinationScore:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
@@ -297,8 +296,8 @@ export default {
|
|||||||
|
|
||||||
{
|
{
|
||||||
title: "完成时间",
|
title: "完成时间",
|
||||||
dataIndex: "finishedTime",
|
dataIndex: "examinationSubmitTime",
|
||||||
key: "finishedTime",
|
key: "examinationSubmitTime",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
@@ -306,27 +305,20 @@ export default {
|
|||||||
customRender: (text) => {
|
customRender: (text) => {
|
||||||
return (
|
return (
|
||||||
<div class="racona">
|
<div class="racona">
|
||||||
<span> {text.record.finishedTime?text.record.finishedTime:"-"}</span>
|
<span> {text.record.examinationSubmitTime?text.record.examinationSubmitTime:"-"}</span>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "任务状态",
|
title: "任务状态",
|
||||||
dataIndex: "status",
|
dataIndex: "finishStatus",
|
||||||
key: "status",
|
key: "finishStatus",
|
||||||
width: 60,
|
width: 60,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
className: "h",
|
className: "h",
|
||||||
customRender: (text) => {
|
customRender: ({record:{finishStatus}}) => ({1:'通过',2:'未通过'}[finishStatus] || '未开始'),
|
||||||
console.log(text.record.status);
|
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span> {text.record.status==0||text.record.status==null?"未开始":text.record.status==10?"未通过":"已通过"}</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
loadingData: true
|
loadingData: true
|
||||||
@@ -373,40 +365,19 @@ export default {
|
|||||||
|
|
||||||
// 获取数据
|
// 获取数据
|
||||||
function getData() {
|
function getData() {
|
||||||
console.log('我是传递的参数',{
|
api.AssessmentManagementMessage({
|
||||||
"chapterId": props.datasource.chapterId,
|
pageNo: state.currentPage,
|
||||||
"pageNo": state.currentPage,
|
pageSize: state.pageSize,
|
||||||
"pageSize": state.pageSize,
|
currentStageId: props.datasource.chapterId,
|
||||||
"studentName": state.name,
|
type: 2,
|
||||||
"status": state.projectName,
|
pid: props.datasource.routerId,
|
||||||
"targetId": props.datasource.routerId,
|
taskId: props.datasource.routerTaskId,
|
||||||
"taskId": props.datasource.courseId,
|
taskType: props.datasource.type,
|
||||||
"type": 1
|
status: state.projectName,
|
||||||
})
|
studentName: state.name,
|
||||||
api.ExamManagementMessage({
|
|
||||||
"chapterId": props.datasource.chapterId,
|
|
||||||
"pageNo": state.currentPage,
|
|
||||||
"pageSize": state.pageSize,
|
|
||||||
"studentName": state.name,
|
|
||||||
"status": state.projectName,
|
|
||||||
"targetId": props.datasource.routerId,
|
|
||||||
"taskId": props.datasource.courseId,
|
|
||||||
"type": 1
|
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
console.log(res)
|
state.tabledata = res.data.data.records;
|
||||||
if(res.data.code == 200){
|
state.tableDataTotal = res.data.data.total;
|
||||||
let newData = [];
|
|
||||||
for(let i=0;i<res.data.data.managementDtoList.length;i++){
|
|
||||||
res.data.data.managementDtoList[i].key = i + 1;
|
|
||||||
newData.push(res.data.data.managementDtoList[i])
|
|
||||||
}
|
|
||||||
state.tabledata = newData;
|
|
||||||
state.tableDataTotal = res.data.data.total;
|
|
||||||
state.loadingData = false;
|
|
||||||
console.log('我是处理过后的数据', newData)
|
|
||||||
}
|
|
||||||
}).catch(err=>{
|
|
||||||
console.log(err)
|
|
||||||
state.loadingData = false;
|
state.loadingData = false;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -434,7 +405,9 @@ export default {
|
|||||||
|
|
||||||
{/* 导出数据 */}
|
{/* 导出数据 */}
|
||||||
function exportData() {
|
function exportData() {
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.chapterId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&type=${1}`)
|
// window.open(`${process.env.VUE_APP_BASE_API}/admin/exam/manage/exportExam?chapterId=${props.datasource.chapterId}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}&type=${1}`)
|
||||||
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.routerTaskId}&taskType=${props.datasource.type}`)
|
||||||
|
|
||||||
{/* api.ExportExam({
|
{/* api.ExportExam({
|
||||||
"chapterId": props.datasource.chapterId,
|
"chapterId": props.datasource.chapterId,
|
||||||
"targetId": props.datasource.routerId,
|
"targetId": props.datasource.routerId,
|
||||||
|
|||||||
@@ -63,7 +63,6 @@
|
|||||||
:options="projectNameList2"
|
:options="projectNameList2"
|
||||||
@change="selectProjectName2"
|
@change="selectProjectName2"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -181,7 +180,7 @@
|
|||||||
v-model:AddImpStuvisible="AddImpStuvisible"
|
v-model:AddImpStuvisible="AddImpStuvisible"
|
||||||
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
||||||
:courseId="datasource.courseId"
|
:courseId="datasource.courseId"
|
||||||
:courseType="1"
|
:courseType="3"
|
||||||
/>
|
/>
|
||||||
<!-- 批量签到弹窗 -->
|
<!-- 批量签到弹窗 -->
|
||||||
<a-modal
|
<a-modal
|
||||||
@@ -764,14 +763,14 @@ export default {
|
|||||||
.AssessmentManagementMessage({
|
.AssessmentManagementMessage({
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
currentStageId: props.datasource.chapterId,
|
// currentStageId: props.datasource.chapterId,
|
||||||
type: 2,
|
type: 3,
|
||||||
pid: props.datasource.routerId,
|
pid: props.datasource.courseId,
|
||||||
// status: Number(state.name),
|
// status: Number(state.name),
|
||||||
signStatus: state.projectName2,
|
signStatus: state.projectName2,
|
||||||
studentName: state.name,
|
studentName: state.name,
|
||||||
taskId: props.datasource.routerTaskId,
|
// taskId: props.datasource.routerTaskId,
|
||||||
taskType: props.datasource.type,
|
// taskType: props.datasource.type,
|
||||||
})
|
})
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取面授管理学员", res);
|
console.log("获取面授管理学员", res);
|
||||||
@@ -822,7 +821,7 @@ export default {
|
|||||||
process.env.VUE_APP_BASE_API
|
process.env.VUE_APP_BASE_API
|
||||||
}/admin/student/exportTaskStudent?currentStageId=${
|
}/admin/student/exportTaskStudent?currentStageId=${
|
||||||
props.datasource.chapterId
|
props.datasource.chapterId
|
||||||
}&type=${2}&pid=${props.datasource.routerId}&taskType=2&thirdType=2`
|
}&type=3&pid=${props.datasource.courseId}&thirdType=7&taskId=${props.datasource.routerTaskId}`
|
||||||
);
|
);
|
||||||
// api
|
// api
|
||||||
// .exportTaskStudent({
|
// .exportTaskStudent({
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -133,23 +132,16 @@
|
|||||||
<ASOver
|
<ASOver
|
||||||
v-model:ASOvervisible="ASOvervisible"
|
v-model:ASOvervisible="ASOvervisible"
|
||||||
v-model:ids="selectedRowKeys"
|
v-model:ids="selectedRowKeys"
|
||||||
:taskId="
|
:type="3"
|
||||||
datasource && datasource.routerTaskId ? datasource.routerTaskId : null
|
:pid="datasource?.courseId"
|
||||||
"
|
|
||||||
:type="2"
|
|
||||||
:pid="datasource && datasource.routerId ? datasource.routerId : null"
|
|
||||||
:taskType="datasource && datasource.type ? datasource.type : null"
|
|
||||||
:currentStageId="
|
|
||||||
datasource && datasource.chapterId ? datasource.chapterId : null
|
|
||||||
"
|
|
||||||
v-model:getStudent="getStudent"
|
v-model:getStudent="getStudent"
|
||||||
/>
|
/>
|
||||||
<!-- 录入成绩抽屉 -->
|
<!-- 录入成绩抽屉 -->
|
||||||
<EScore
|
<EScore
|
||||||
v-model:eScorevisible="Evisible"
|
v-model:eScorevisible="Evisible"
|
||||||
:type="2"
|
:type="3"
|
||||||
:id="datasource?.routerTaskId"
|
:id="datasource?.routerTaskId"
|
||||||
:pid="datasource?.routerId"
|
:pid="datasource?.courseId"
|
||||||
v-model:searchTaskList="searchTaskList"
|
v-model:searchTaskList="searchTaskList"
|
||||||
/>
|
/>
|
||||||
<!-- 查看作业抽屉 -->
|
<!-- 查看作业抽屉 -->
|
||||||
@@ -325,7 +317,7 @@ export default {
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
/** {
|
||||||
title: "学员关卡",
|
title: "学员关卡",
|
||||||
dataIndex: "chapterName",
|
dataIndex: "chapterName",
|
||||||
key: "chapterName",
|
key: "chapterName",
|
||||||
@@ -342,7 +334,7 @@ export default {
|
|||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},*/
|
||||||
{
|
{
|
||||||
title: "作业成绩",
|
title: "作业成绩",
|
||||||
dataIndex: "workScore",
|
dataIndex: "workScore",
|
||||||
@@ -392,15 +384,7 @@ export default {
|
|||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
className: "h",
|
className: "h",
|
||||||
customRender: (text) => {
|
customRender: ({record:{assessmentScore}}) => (assessmentScore ? Math.round(assessmentScore * 100) / 100 : "-"),
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span>
|
|
||||||
{text.record.assessmentScore || "-"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "任务状态",
|
title: "任务状态",
|
||||||
@@ -549,26 +533,15 @@ export default {
|
|||||||
// 获取数据
|
// 获取数据
|
||||||
//获取学员
|
//获取学员
|
||||||
const getStudent = () => {
|
const getStudent = () => {
|
||||||
console.log("我是传递的查询参数", {
|
|
||||||
pageNo: state.currentPage,
|
|
||||||
pageSize: state.pageSize,
|
|
||||||
currentStageId: props.datasource.chapterId,
|
|
||||||
type: 2,
|
|
||||||
pid: props.datasource.routerId,
|
|
||||||
taskId: props.datasource.routerTaskId,
|
|
||||||
taskType: props.datasource.type,
|
|
||||||
status: state.projectName,
|
|
||||||
studentName: state.name,
|
|
||||||
});
|
|
||||||
api
|
api
|
||||||
.AssessmentManagementMessage({
|
.AssessmentManagementMessage({
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
currentStageId: props.datasource.chapterId,
|
currentStageId: props.datasource.chapterId,
|
||||||
type: 2,
|
type: 3,
|
||||||
pid: props.datasource.routerId,
|
pid: props.datasource.courseId,
|
||||||
taskId: props.datasource.routerTaskId,
|
// taskId: props.datasource.routerTaskId,
|
||||||
taskType: props.datasource.type,
|
// taskType: props.datasource.type,
|
||||||
status: state.projectName,
|
status: state.projectName,
|
||||||
studentName: state.name,
|
studentName: state.name,
|
||||||
})
|
})
|
||||||
@@ -622,7 +595,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=3&pid=${props.datasource.courseId}&thirdType=5&taskId=${props.datasource.routerTaskId}`
|
||||||
);
|
);
|
||||||
// api
|
// api
|
||||||
// .exportTaskStudent({
|
// .exportTaskStudent({
|
||||||
@@ -647,10 +620,10 @@ export default {
|
|||||||
state.downloadUrl = null;
|
state.downloadUrl = null;
|
||||||
let obj = {
|
let obj = {
|
||||||
currentStageId: props.datasource.chapterId,
|
currentStageId: props.datasource.chapterId,
|
||||||
pid: props.datasource.routerId,
|
pid: props.datasource.courseId,
|
||||||
taskId: props.datasource.routerTaskId,
|
// taskId: props.datasource.routerTaskId,
|
||||||
taskType: props.datasource.type,
|
// taskType: props.datasource.type,
|
||||||
type: 2,
|
type: 3,
|
||||||
};
|
};
|
||||||
api
|
api
|
||||||
.exportHomeWork(obj)
|
.exportHomeWork(obj)
|
||||||
@@ -679,7 +652,7 @@ export default {
|
|||||||
props.datasource.chapterId
|
props.datasource.chapterId
|
||||||
}&type=${2}&pid=${props.datasource.routerId}&taskId=${
|
}&type=${2}&pid=${props.datasource.routerId}&taskId=${
|
||||||
props.datasource.routerTaskId
|
props.datasource.routerTaskId
|
||||||
}&taskType=${props.datasource.type}`
|
}&taskType=${props.datasource.type}&thirdType=5`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -44,7 +44,6 @@
|
|||||||
:options="projectNameList"
|
:options="projectNameList"
|
||||||
@change="selectProjectName"
|
@change="selectProjectName"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -561,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}&taskId=${props.datasource.routerTaskId}`
|
||||||
);
|
);
|
||||||
// api
|
// api
|
||||||
// .exportTaskStudent({
|
// .exportTaskStudent({
|
||||||
|
|||||||
@@ -341,7 +341,7 @@
|
|||||||
</a-modal>
|
</a-modal>
|
||||||
-->
|
-->
|
||||||
<a-modal
|
<a-modal
|
||||||
:style="{padding: 0,position: relative,right: - (screenWidth/2 - 660) + 'px',}"
|
:style="{padding: 0,position: relative,right: '-20%'}"
|
||||||
:closable="true"
|
:closable="true"
|
||||||
:visible="stageVisible"
|
:visible="stageVisible"
|
||||||
:footer="null"
|
:footer="null"
|
||||||
@@ -560,7 +560,7 @@ const stuSelectKeys = ref([]);
|
|||||||
const orgSelectKeys = ref([]);
|
const orgSelectKeys = ref([]);
|
||||||
const auditSelectKeys = ref([]);
|
const auditSelectKeys = ref([]);
|
||||||
const screenHeight = ref(document.body.clientHeight);
|
const screenHeight = ref(document.body.clientHeight);
|
||||||
const screenWidth = ref(document.body.clientWidth);
|
//const screenWidth = ref(document.body.clientWidth);
|
||||||
const stuRowSelection = computed(() => ({
|
const stuRowSelection = computed(() => ({
|
||||||
columnWidth: 20,
|
columnWidth: 20,
|
||||||
selectedRowKeys: stuSelectKeys.value,
|
selectedRowKeys: stuSelectKeys.value,
|
||||||
|
|||||||
@@ -117,7 +117,8 @@
|
|||||||
导出学习信息
|
导出学习信息
|
||||||
</a-button>
|
</a-button>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col :span="1.5" v-else>
|
|
||||||
|
<a-col :span="1.5" v-if="type === 2">
|
||||||
<a-button class="cus-btn white" @click="exportTaskStuRouter">
|
<a-button class="cus-btn white" @click="exportTaskStuRouter">
|
||||||
导出学习信息
|
导出学习信息
|
||||||
</a-button>
|
</a-button>
|
||||||
@@ -232,7 +233,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
-->
|
-->
|
||||||
<a-col v-if="type === 3">
|
<a-col v-if="type === 3 && record.status!==0">
|
||||||
<div
|
<div
|
||||||
style=" color: #4ea6ff; font-size: 14px;text-align: center; margin-left: 10px; cursor: pointer; "
|
style=" color: #4ea6ff; font-size: 14px;text-align: center; margin-left: 10px; cursor: pointer; "
|
||||||
@click="updateStatus(0, record.id)"
|
@click="updateStatus(0, record.id)"
|
||||||
@@ -240,7 +241,7 @@
|
|||||||
通过
|
通过
|
||||||
</div>
|
</div>
|
||||||
</a-col>
|
</a-col>
|
||||||
<a-col v-if="type === 3">
|
<a-col v-if="type === 3 && record.status!==0">
|
||||||
<div
|
<div
|
||||||
style=" color: #4ea6ff;font-size: 14px;text-align: center; margin-left: 10px;cursor: pointer; "
|
style=" color: #4ea6ff;font-size: 14px;text-align: center; margin-left: 10px;cursor: pointer; "
|
||||||
@click="updateStatus(2, record.id)"
|
@click="updateStatus(2, record.id)"
|
||||||
@@ -361,7 +362,7 @@
|
|||||||
v-model:AddImpStuvisible="AddImpStuvisible"
|
v-model:AddImpStuvisible="AddImpStuvisible"
|
||||||
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
@AddImpStuvisibleClose="AddImpStuvisibleClose"
|
||||||
:courseId="id"
|
:courseId="id"
|
||||||
:courseType="type === 1 ? 3 : 4"
|
:courseType="type"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
@@ -456,6 +457,8 @@ const tablecolumns = ref([
|
|||||||
align: "center",
|
align: "center",
|
||||||
className: "h",
|
className: "h",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
|
customRender: ({ record: { studentOrgName, studentDepartName } }) =>
|
||||||
|
(allDepartShow(studentOrgName, studentDepartName)),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "加入方式",
|
title: "加入方式",
|
||||||
@@ -464,7 +467,8 @@ const tablecolumns = ref([
|
|||||||
width: "10%",
|
width: "10%",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: ({ record: { source } }) =>
|
customRender: ({ record: { source } }) =>
|
||||||
({ 1: "快速添加", 2: "组织", 3: "受众", 4: "报名" }[source]),
|
// ({ 1: "快速添加", 2: "组织", 3: "受众", 4: "报名" }[source]),
|
||||||
|
({ 0: "手动加入", 1: "手动加入", 2: "手动加入", 3: "手动加入", 4: "报名", 5: "手动加入", 6: "手动加入"}[source]),
|
||||||
},
|
},
|
||||||
...props.columns,
|
...props.columns,
|
||||||
{
|
{
|
||||||
@@ -476,6 +480,14 @@ const tablecolumns = ref([
|
|||||||
slots: { customRender: "action" },
|
slots: { customRender: "action" },
|
||||||
},
|
},
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
function allDepartShow(a,b) {
|
||||||
|
let org = (a=="" || a == null || a == undefined) ? a = "" : a.slice(0,1) =='/' ? a.slice(1,a.length) : a;
|
||||||
|
let depart = (b=="" || b == null || b == undefined) ? b = "" : b;
|
||||||
|
let allname = org == "" && depart == "" ? '-' : org + depart;
|
||||||
|
return allname;
|
||||||
|
}
|
||||||
|
|
||||||
const tableParam = ref({
|
const tableParam = ref({
|
||||||
studentName: "", //学员名称
|
studentName: "", //学员名称
|
||||||
groupName: "", //学员小组
|
groupName: "", //学员小组
|
||||||
@@ -506,7 +518,7 @@ function exportTaskStu() {
|
|||||||
window.open(
|
window.open(
|
||||||
`${
|
`${
|
||||||
process.env.VUE_APP_BASE_API
|
process.env.VUE_APP_BASE_API
|
||||||
}/admin/student/exportTaskStudent?type=${1}&pid=${props.id}&taskType=0`
|
}/admin/student/exportTaskStudent?type=${1}&pid=${props.id}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -515,7 +527,7 @@ function exportTaskStuRouter() {
|
|||||||
window.open(
|
window.open(
|
||||||
`${
|
`${
|
||||||
process.env.VUE_APP_BASE_API
|
process.env.VUE_APP_BASE_API
|
||||||
}/admin/student/exportTaskStudent?type=${2}&pid=${props.id}&taskType=0`
|
}/admin/student/exportTaskStudent?type=${2}&pid=${props.id}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -59,7 +59,7 @@
|
|||||||
'0%': countCMB>2?'#FF0000 ':'#45B058',
|
'0%': countCMB>2?'#FF0000 ':'#45B058',
|
||||||
'100%': countCMB>2?'#FF0000 ':'#45B058',
|
'100%': countCMB>2?'#FF0000 ':'#45B058',
|
||||||
}" />
|
}" />
|
||||||
<div v-if="countCMB>2" style="color:rgba(255, 116, 116, 1);font-size:12px;">容量已满,请删除文件</div>
|
<div v-if="formatCapacityGB(capacity)>2" style="color:rgba(255, 116, 116, 1);font-size:12px;">容量已满,请删除文件</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 文件容器 -->
|
<!-- 文件容器 -->
|
||||||
@@ -176,6 +176,12 @@ export default {
|
|||||||
return CMB
|
return CMB
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function formatCapacityGB(data) {
|
||||||
|
let num = Number(data);
|
||||||
|
let CMB = (num / (1048576*1024)).toFixed(2);
|
||||||
|
return CMB
|
||||||
|
}
|
||||||
|
|
||||||
// 下载文件
|
// 下载文件
|
||||||
function downLoadFile(data) {
|
function downLoadFile(data) {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
@@ -226,7 +232,8 @@ export default {
|
|||||||
changePaginationStu,
|
changePaginationStu,
|
||||||
searchDownloadList,
|
searchDownloadList,
|
||||||
reseatDownloadList,
|
reseatDownloadList,
|
||||||
formatCapacity
|
formatCapacity,
|
||||||
|
formatCapacityGB
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -34,18 +34,13 @@
|
|||||||
placeholder="请选择状态"
|
placeholder="请选择状态"
|
||||||
:options="options1"
|
:options="options1"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="select">
|
<div class="select">
|
||||||
<a-tree-select
|
<a-tree-select
|
||||||
:getPopupContainer="
|
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
||||||
(triggerNode) => {
|
v-model:value="sysTypeId"
|
||||||
return triggerNode.parentNode || document.body;
|
|
||||||
}
|
|
||||||
"
|
|
||||||
v-model:value="categoryId"
|
|
||||||
show-search
|
show-search
|
||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||||
@@ -54,7 +49,7 @@
|
|||||||
tree-default-expand-all
|
tree-default-expand-all
|
||||||
:fieldNames="{
|
:fieldNames="{
|
||||||
children: 'children',
|
children: 'children',
|
||||||
title: 'dictName',
|
label: 'dictName',
|
||||||
value: 'dictCode',
|
value: 'dictCode',
|
||||||
}"
|
}"
|
||||||
:tree-data="sysTypeOptions"
|
:tree-data="sysTypeOptions"
|
||||||
@@ -987,9 +982,9 @@
|
|||||||
<div class="onlinemanage" :style="{ display: om_1 ? 'block' : 'none' }">
|
<div class="onlinemanage" :style="{ display: om_1 ? 'block' : 'none' }">
|
||||||
<div class="om_main">
|
<div class="om_main">
|
||||||
<div class="om_body">
|
<div class="om_body">
|
||||||
<div class="b_title">课程:{{ newCourseName }}</div>
|
|
||||||
<div class="b_sub">
|
<div class="b_sub">
|
||||||
<div class="bs_type">类型:</div>
|
<div class="b_title">课程:{{ newCourseName }}</div>
|
||||||
|
<div class="bs_type" style="margin-left: 20px">类型:</div>
|
||||||
<div class="bs_right">{{ faceType }}</div>
|
<div class="bs_right">{{ faceType }}</div>
|
||||||
<div class="bs_left">内容分类:</div>
|
<div class="bs_left">内容分类:</div>
|
||||||
<div class="bs_right">{{ faceClassification }}</div>
|
<div class="bs_right">{{ faceClassification }}</div>
|
||||||
@@ -1435,10 +1430,10 @@
|
|||||||
<div class="cstm_items">
|
<div class="cstm_items">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
<div class="sign">
|
<div class="sign">
|
||||||
<img
|
<!-- <img
|
||||||
src="@/assets/images/coursewareManage/asterisk.png"
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
alt=""
|
alt=""
|
||||||
/>
|
/> -->
|
||||||
</div>
|
</div>
|
||||||
<span style="margin-right: 3px">地点</span>
|
<span style="margin-right: 3px">地点</span>
|
||||||
</div>
|
</div>
|
||||||
@@ -2541,111 +2536,63 @@ const columns2 = [
|
|||||||
title: "姓名",
|
title: "姓名",
|
||||||
dataIndex: "studentName",
|
dataIndex: "studentName",
|
||||||
key: "studentName",
|
key: "studentName",
|
||||||
width: "12%",
|
width: "6%",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: (text) => {
|
customRender: ({record: {studentName}}) => (studentName || "-")
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span>
|
|
||||||
{" "}
|
|
||||||
{text.record.studentName ? text.record.studentName : "-"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "工号",
|
title: "工号",
|
||||||
dataIndex: "studentUserNo",
|
dataIndex: "studentUserNo",
|
||||||
key: "studentUserNo",
|
key: "studentUserNo",
|
||||||
width: "12%",
|
width: "12%",
|
||||||
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: (text) => {
|
customRender: ({record: {studentUserNo}}) => (studentUserNo || "-")
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span>
|
|
||||||
{" "}
|
|
||||||
{text.record.studentUserNo ? text.record.studentUserNo : "-"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "开课名称",
|
title: "开课名称",
|
||||||
dataIndex: "name",
|
dataIndex: "name",
|
||||||
key: "name",
|
key: "name",
|
||||||
width: "12%",
|
width: "12%",
|
||||||
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: (text) => {
|
customRender: ({record: {name}}) => (name || "-")
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span> {text.record.name ? text.record.name : "-"}</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "地点",
|
title: "地点",
|
||||||
dataIndex: "address",
|
dataIndex: "address",
|
||||||
key: "address",
|
key: "address",
|
||||||
width: "12%",
|
width: "12%",
|
||||||
|
ellipsis: true,
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: (text) => {
|
customRender: ({record: {address}}) => (address || "-")
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span> {text.record.address ? text.record.address : "-"}</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "数据来源",
|
title: "数据来源",
|
||||||
dataIndex: "courseSource",
|
dataIndex: "courseSource",
|
||||||
key: "courseSource",
|
key: "courseSource",
|
||||||
|
ellipsis: true,
|
||||||
width: "12%",
|
width: "12%",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: (text) => {
|
customRender: ({record:{courseName,routerName}}) => (courseName || routerName || "开课"),
|
||||||
return (
|
|
||||||
<div class="racona">
|
|
||||||
<span>
|
|
||||||
{" "}
|
|
||||||
{text.record.courseSource ? text.record.courseSource : "-"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "学习时间",
|
title: "学习时间",
|
||||||
dataIndex: "lastStudyTime",
|
dataIndex: "lastStudyTime",
|
||||||
key: "lastStudyTime",
|
key: "lastStudyTime",
|
||||||
width: "12%",
|
width: "10%",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: (text) => {
|
ellipsis: true,
|
||||||
return (
|
customRender: ({record:{lastStudyTime}}) => (lastStudyTime || "-")
|
||||||
<div class="racona">
|
|
||||||
<span>
|
|
||||||
{" "}
|
|
||||||
{text.record.lastStudyTime ? text.record.lastStudyTime : "-"}
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "签到时间",
|
title: "签到时间",
|
||||||
dataIndex: "signTime",
|
dataIndex: "signTime",
|
||||||
key: "signTime",
|
key: "signTime",
|
||||||
width: "12%",
|
width: "10%",
|
||||||
align: "center",
|
align: "center",
|
||||||
customRender: (text) => {
|
ellipsis: true,
|
||||||
return (
|
customRender: ({record:{signTime}}) => (signTime || "-")
|
||||||
<div class="racona">
|
|
||||||
<span> {text.record.signTime ? text.record.signTime : "-"}</span>
|
|
||||||
</div>
|
|
||||||
);
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
title: "状态",
|
title: "状态",
|
||||||
@@ -2785,8 +2732,8 @@ const columns6 = [
|
|||||||
// 新加学员数
|
// 新加学员数
|
||||||
{
|
{
|
||||||
title: "学员数",
|
title: "学员数",
|
||||||
dataIndex: "createName",
|
dataIndex: "studentCnt",
|
||||||
key: "createName",
|
key: "studentCnt",
|
||||||
width: 100,
|
width: 100,
|
||||||
align: "center",
|
align: "center",
|
||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
@@ -3285,6 +3232,7 @@ export default defineComponent({
|
|||||||
createName: "",
|
createName: "",
|
||||||
auditStatus: null,
|
auditStatus: null,
|
||||||
categoryId: undefined,
|
categoryId: undefined,
|
||||||
|
sysTypeId: undefined,
|
||||||
projectTime: "",
|
projectTime: "",
|
||||||
|
|
||||||
//列表
|
//列表
|
||||||
@@ -3543,30 +3491,30 @@ export default defineComponent({
|
|||||||
state.viewpowervisible = true;
|
state.viewpowervisible = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
const sysTypeOptions = computed(() => formateDictT(store.state.sysType));
|
const sysTypeOptions = computed(() => store.state.sysType);
|
||||||
|
|
||||||
// console.log('12344', sysTypeOptions)
|
// console.log('12344', sysTypeOptions)
|
||||||
|
|
||||||
// 处理数据字典
|
// 处理数据字典
|
||||||
function formateDictT(data) {
|
// function formateDictT(data) {
|
||||||
for(let i=0;i<data.length;i++){
|
// for(let i=0;i<data.length;i++){
|
||||||
data[i].title = data[i].dictName;
|
// data[i].title = data[i].dictName;
|
||||||
data[i].value = data[i].dictCode;
|
// data[i].value = data[i].dictCode;
|
||||||
if(data[i].children.length!==0){
|
// if(data[i].children.length!==0){
|
||||||
for(let j=0;j<data[i].children.length;j++){
|
// for(let j=0;j<data[i].children.length;j++){
|
||||||
data[i].children[j].title = data[i].children[j].dictName;
|
// data[i].children[j].title = data[i].children[j].dictName;
|
||||||
data[i].children[j].value = data[i].children[j].dictCode;
|
// data[i].children[j].value = data[i].children[j].dictCode;
|
||||||
if(data[i].children[j].children.length!==0){
|
// if(data[i].children[j].children.length!==0){
|
||||||
for(let k=0; k<data[i].children[j].children.length; k++) {
|
// for(let k=0; k<data[i].children[j].children.length; k++) {
|
||||||
data[i].children[j].children[k].title = data[i].children[j].children[k].dictName;
|
// data[i].children[j].children[k].title = data[i].children[j].children[k].dictName;
|
||||||
data[i].children[j].children[k].value = data[i].children[j].children[k].dictCode;
|
// data[i].children[j].children[k].value = data[i].children[j].children[k].dictCode;
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
return data;
|
// return data;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 富文本 sssssssssssssss
|
// 富文本 sssssssssssssss
|
||||||
// 编辑器实例,必须用 shallowRef
|
// 编辑器实例,必须用 shallowRef
|
||||||
@@ -3735,7 +3683,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
// 渲染列表1操作
|
// 渲染列表1操作
|
||||||
const getTableDate = async () => {
|
const getTableDate = async () => {
|
||||||
console.log('我是点击搜索的数据',state.categoryId)
|
console.log('我是点击搜索的数据',state.sysTypeId)
|
||||||
// let datas = state.tableData1;
|
// let datas = state.tableData1;
|
||||||
let startTime = "";
|
let startTime = "";
|
||||||
let endTime = "";
|
let endTime = "";
|
||||||
@@ -3753,7 +3701,8 @@ export default defineComponent({
|
|||||||
pageNo: state.currentPage1,
|
pageNo: state.currentPage1,
|
||||||
pageSize: state.pageSize1,
|
pageSize: state.pageSize1,
|
||||||
auditStatus: state.auditStatus,
|
auditStatus: state.auditStatus,
|
||||||
categoryId: state.categoryId,
|
// categoryId: state.categoryId,
|
||||||
|
sysTypeId: state.sysTypeId,
|
||||||
projectName: state.projectName,
|
projectName: state.projectName,
|
||||||
name: state.name,
|
name: state.name,
|
||||||
createName: state.createName,
|
createName: state.createName,
|
||||||
@@ -3772,7 +3721,7 @@ export default defineComponent({
|
|||||||
key: "offcourseId",
|
key: "offcourseId",
|
||||||
num: "num",
|
num: "num",
|
||||||
name: "name",
|
name: "name",
|
||||||
content: "categoryId",
|
content: "sysTypeId",
|
||||||
courseform: "type",
|
courseform: "type",
|
||||||
project: "projectName",
|
project: "projectName",
|
||||||
stunum: "studentCnt",
|
stunum: "studentCnt",
|
||||||
@@ -3790,7 +3739,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
datas.forEach((itm) => {
|
datas.forEach((itm) => {
|
||||||
itm.pageNo = pageNo;
|
itm.pageNo = pageNo;
|
||||||
itm.contentTxt = findClassFullName(sysTypeOptions.value,itm.categoryId) || '-'
|
itm.contentTxt = findClassFullName(sysTypeOptions.value,itm.sysTypeId) || '-'
|
||||||
});
|
});
|
||||||
state.tableData1 = datas;
|
state.tableData1 = datas;
|
||||||
};
|
};
|
||||||
@@ -3816,7 +3765,7 @@ export default defineComponent({
|
|||||||
state.name = "";
|
state.name = "";
|
||||||
state.createName = "";
|
state.createName = "";
|
||||||
state.auditStatus = null;
|
state.auditStatus = null;
|
||||||
state.categoryId = null;
|
state.sysTypeId = null;
|
||||||
state.projectTime = "";
|
state.projectTime = "";
|
||||||
getTableDate();
|
getTableDate();
|
||||||
};
|
};
|
||||||
@@ -4524,7 +4473,7 @@ export default defineComponent({
|
|||||||
console.log(postData);
|
console.log(postData);
|
||||||
const checkList = [
|
const checkList = [
|
||||||
postData.name,
|
postData.name,
|
||||||
postData.address,
|
// postData.address,
|
||||||
postData.beginTime,
|
postData.beginTime,
|
||||||
postData.endTime,
|
postData.endTime,
|
||||||
postData.teacherId,
|
postData.teacherId,
|
||||||
@@ -4891,7 +4840,8 @@ export default defineComponent({
|
|||||||
picUrl: item.picUrl,
|
picUrl: item.picUrl,
|
||||||
targetUser: item.targetUser,
|
targetUser: item.targetUser,
|
||||||
meaning: item.meaning,
|
meaning: item.meaning,
|
||||||
categoryId: item.categoryId,
|
// categoryId: item.categoryId,
|
||||||
|
sysTypeId: item.sysTypeId,
|
||||||
sceneId: item.sceneId,
|
sceneId: item.sceneId,
|
||||||
tips: item.tips,
|
tips: item.tips,
|
||||||
teacherId: item.teacherId, //?
|
teacherId: item.teacherId, //?
|
||||||
@@ -4959,7 +4909,7 @@ export default defineComponent({
|
|||||||
state.currentPage1
|
state.currentPage1
|
||||||
}&pageSize=${state.pageSize1}&auditStatus=${
|
}&pageSize=${state.pageSize1}&auditStatus=${
|
||||||
state.auditStatus ? state.auditStatus : ""
|
state.auditStatus ? state.auditStatus : ""
|
||||||
}&categoryId=${state.categoryId ? state.categoryId : ""}&projectName=${
|
}&sysTypeId=${state.sysTypeId ? state.sysTypeId : ""}&projectName=${
|
||||||
state.projectName ? state.projectName : ""
|
state.projectName ? state.projectName : ""
|
||||||
}&name=${state.name ? state.name : ""}&createName=${
|
}&name=${state.name ? state.name : ""}&createName=${
|
||||||
state.createName ? state.createName : ""
|
state.createName ? state.createName : ""
|
||||||
@@ -5517,7 +5467,7 @@ export default defineComponent({
|
|||||||
: process.env.VUE_APP_BASE_API +
|
: process.env.VUE_APP_BASE_API +
|
||||||
`/admin/student/studentSign?taskId=${
|
`/admin/student/studentSign?taskId=${
|
||||||
record.offcoursePlanId
|
record.offcoursePlanId
|
||||||
}&type=${3}`,
|
}&taskType=${2}&type=${3}`,
|
||||||
};
|
};
|
||||||
console.log("codeInfo", state.codeInfo);
|
console.log("codeInfo", state.codeInfo);
|
||||||
state.codeIndex = 0;
|
state.codeIndex = 0;
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
placeholder="请选择状态"
|
placeholder="请选择状态"
|
||||||
:options="options1"
|
:options="options1"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
>
|
>
|
||||||
</a-select>
|
</a-select>
|
||||||
</div>
|
</div>
|
||||||
@@ -1862,7 +1861,6 @@
|
|||||||
style="width: 200px"
|
style="width: 200px"
|
||||||
:options="options1"
|
:options="options1"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
@focus="focus"
|
@focus="focus"
|
||||||
@change="handleChange"
|
@change="handleChange"
|
||||||
>
|
>
|
||||||
|
|||||||
@@ -127,7 +127,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb_right">
|
<div class="mb_right">
|
||||||
<div class="mbl_items">
|
<!-- <div class="mbl_items">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
<img
|
<img
|
||||||
@@ -142,7 +142,7 @@
|
|||||||
{{ filterTxt(detail.teacher) }}
|
{{ filterTxt(detail.teacher) }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
<div class="mbl_items2" v-if="detail.intro">
|
<div class="mbl_items2" v-if="detail.intro">
|
||||||
<div class="item_nam">
|
<div class="item_nam">
|
||||||
<div class="asterisk_icon">
|
<div class="asterisk_icon">
|
||||||
@@ -444,7 +444,7 @@ export default defineComponent({
|
|||||||
const sysTypeOptions = computed(() => store.state.sysType);
|
const sysTypeOptions = computed(() => store.state.sysType);
|
||||||
|
|
||||||
watch(
|
watch(
|
||||||
() => props.detail.categoryId,
|
() => props.detail.sysTypeId,
|
||||||
() => {
|
() => {
|
||||||
state.categoryName = findClassFullName(sysTypeOptions.value);
|
state.categoryName = findClassFullName(sysTypeOptions.value);
|
||||||
}
|
}
|
||||||
@@ -456,7 +456,7 @@ export default defineComponent({
|
|||||||
list.length &&
|
list.length &&
|
||||||
list
|
list
|
||||||
.map((e) =>
|
.map((e) =>
|
||||||
props.detail.categoryId == e.dictCode
|
props.detail.sysTypeId == e.dictCode
|
||||||
? name
|
? name
|
||||||
? name + "-" + e.dictName
|
? name + "-" + e.dictName
|
||||||
: e.dictName
|
: e.dictName
|
||||||
|
|||||||
@@ -766,7 +766,8 @@ export default defineComponent({
|
|||||||
picUrl: state.feng_mian_1,
|
picUrl: state.feng_mian_1,
|
||||||
targetUser: state.qdms_inputV2,
|
targetUser: state.qdms_inputV2,
|
||||||
meaning: state.qdms_inputV3,
|
meaning: state.qdms_inputV3,
|
||||||
categoryId: state.fen_lei,
|
// categoryId: state.fen_lei,
|
||||||
|
sysTypeId: state.fen_lei,
|
||||||
sceneContent: state.chang_jin,
|
sceneContent: state.chang_jin,
|
||||||
tips: state.tags_val ? state.tags_val.join(",") : null,
|
tips: state.tags_val ? state.tags_val.join(",") : null,
|
||||||
// teacherId: state.member.value,
|
// teacherId: state.member.value,
|
||||||
@@ -780,7 +781,8 @@ export default defineComponent({
|
|||||||
const checkList = [
|
const checkList = [
|
||||||
postData.name,
|
postData.name,
|
||||||
postData.targetUser,
|
postData.targetUser,
|
||||||
postData.categoryId,
|
// postData.categoryId,
|
||||||
|
postData.sysTypeId,
|
||||||
// postData.teacherId,
|
// postData.teacherId,
|
||||||
postData.picUrl,
|
postData.picUrl,
|
||||||
postData.intro,
|
postData.intro,
|
||||||
@@ -855,7 +857,8 @@ export default defineComponent({
|
|||||||
state.feng_mian_1 = item.picUrl;
|
state.feng_mian_1 = item.picUrl;
|
||||||
state.qdms_inputV2 = item.targetUser;
|
state.qdms_inputV2 = item.targetUser;
|
||||||
state.qdms_inputV3 = item.meaning;
|
state.qdms_inputV3 = item.meaning;
|
||||||
state.fen_lei = item.categoryId;
|
// state.fen_lei = item.categoryId;
|
||||||
|
state.fen_lei = item.sysTypeId;
|
||||||
state.chang_jin = String(item.sceneContent ? item.sceneContent : '');
|
state.chang_jin = String(item.sceneContent ? item.sceneContent : '');
|
||||||
state.tags_val = item.tips ? item.tips.split(",") : [];
|
state.tags_val = item.tips ? item.tips.split(",") : [];
|
||||||
state.qdms_inputV6 = item.intro;
|
state.qdms_inputV6 = item.intro;
|
||||||
|
|||||||
@@ -23,33 +23,52 @@
|
|||||||
...calssifyList,
|
...calssifyList,
|
||||||
]"
|
]"
|
||||||
/>-->
|
/>-->
|
||||||
<a-tree-select :getPopupContainer="
|
<a-tree-select
|
||||||
(triggerNode) => {
|
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
||||||
return triggerNode.parentNode || document.body;
|
v-model:value="valueproj"
|
||||||
}
|
show-search
|
||||||
" v-model:value="valueproj" show-search :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
:dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
|
||||||
placeholder="请选择内容分类" allow-clear tree-default-expand-all :tree-data="sysTypeOptions">
|
:fieldNames="{
|
||||||
<template #title="{ value: val, title }">
|
children: 'children',
|
||||||
|
label: 'dictName',
|
||||||
|
value: 'dictCode',
|
||||||
|
}"
|
||||||
|
placeholder="请选择内容分类"
|
||||||
|
allow-clear
|
||||||
|
tree-default-expand-all
|
||||||
|
:tree-data="sysTypeOptions">
|
||||||
|
|
||||||
|
<!-- <template #title="{ value: val, title }">
|
||||||
<b v-if="val === '11111'" style="color: #08c">sss</b>
|
<b v-if="val === '11111'" style="color: #08c">sss</b>
|
||||||
<template v-else>{{ title }}</template>
|
<template v-else>{{ title }}</template>
|
||||||
</template>
|
</template> -->
|
||||||
</a-tree-select>
|
</a-tree-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="inpbox1">
|
<div class="inpbox1">
|
||||||
<a-input v-model:value="valuecreater" style="
|
<a-input v-model:value="valuecreater" style="
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
" placeholder="请输入创建人" />
|
" placeholder="请输入创建人" />
|
||||||
</div>
|
</div>
|
||||||
<div class="inpbox1">
|
<div class="inpbox1">
|
||||||
<a-input v-model:value="valuename" style="
|
<a-input v-model:value="valuename" style="
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
" placeholder="请输入名称" />
|
" placeholder="请输入名称" />
|
||||||
|
</div>
|
||||||
|
<div class="select addTimeBox">
|
||||||
|
<div class="addTime">审核时间:</div>
|
||||||
|
<a-range-picker
|
||||||
|
v-model:value="searchParam"
|
||||||
|
style="width: 420px"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
separator="至"
|
||||||
|
:placeholder="[' 开始时间', ' 结束时间']"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -111,6 +130,7 @@ import {reactive, toRefs, onMounted, computed} from "vue";
|
|||||||
import { courseListView } from "../../api/indexAudit";
|
import { courseListView } from "../../api/indexAudit";
|
||||||
import * as api1 from "@/api/index1";
|
import * as api1 from "@/api/index1";
|
||||||
import {useStore} from "vuex";
|
import {useStore} from "vuex";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "CoursereViewed",
|
name: "CoursereViewed",
|
||||||
@@ -397,32 +417,12 @@ export default {
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
searchParam:[], // 时间搜索
|
||||||
});
|
});
|
||||||
|
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
|
||||||
const sysTypeOptions = computed(() => formateDictT(store.state.sysType));
|
const sysTypeOptions = computed(() => store.state.sysType);
|
||||||
|
|
||||||
// 处理数据字典
|
|
||||||
function formateDictT(data) {
|
|
||||||
for(let i=0;i<data.length;i++){
|
|
||||||
data[i].title = data[i].dictName;
|
|
||||||
data[i].value = data[i].dictCode;
|
|
||||||
if(data[i].children.length!==0){
|
|
||||||
for(let j=0;j<data[i].children.length;j++){
|
|
||||||
data[i].children[j].title = data[i].children[j].dictName;
|
|
||||||
data[i].children[j].value = data[i].children[j].dictCode;
|
|
||||||
if(data[i].children[j].children.length!==0){
|
|
||||||
for(let k=0; k<data[i].children[j].children.length; k++) {
|
|
||||||
data[i].children[j].children[k].title = data[i].children[j].children[k].dictName;
|
|
||||||
data[i].children[j].children[k].value = data[i].children[j].children[k].dictCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
function findClassFullName(list,classify,name=''){
|
function findClassFullName(list,classify,name=''){
|
||||||
return list && list.length && list.map(e=>{
|
return list && list.length && list.map(e=>{
|
||||||
@@ -436,10 +436,13 @@ export default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const getList = () => {
|
const getList = () => {
|
||||||
|
console.log(state.searchParam[0],state.searchParam[1],new Date(state.searchParam[0]).getTime(),new Date(state.searchParam[0]))
|
||||||
state.loading = true
|
state.loading = true
|
||||||
let objn = {
|
let objn = {
|
||||||
auditStatus: 0,
|
auditStatus: 0,
|
||||||
categoryId: Number(state.valueproj),
|
beginTime:state.searchParam.length!==0? dayjs(new Date(state.searchParam[0]).getTime()).format("YYYY-MM-DD"): "",
|
||||||
|
endTime:state.searchParam.length!==0? dayjs(new Date(state.searchParam[1]).getTime()).format("YYYY-MM-DD"): "",
|
||||||
|
sysTypeId: state.valueproj,
|
||||||
createName: state.valuecreater,
|
createName: state.valuecreater,
|
||||||
name: state.valuename,
|
name: state.valuename,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
@@ -469,7 +472,7 @@ export default {
|
|||||||
number: n + 1 + (state.currentPage - 1) * 10,
|
number: n + 1 + (state.currentPage - 1) * 10,
|
||||||
name: item.name || "- ",
|
name: item.name || "- ",
|
||||||
type: item.type == 1 ? "线上" : "线下",
|
type: item.type == 1 ? "线上" : "线下",
|
||||||
content: sHX(item.categoryId),
|
content: sHX(item.sysTypeId),
|
||||||
status:
|
status:
|
||||||
item.auditStatus == 0
|
item.auditStatus == 0
|
||||||
? "未提交"
|
? "未提交"
|
||||||
@@ -542,6 +545,28 @@ export default {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
.addTimeBox {
|
||||||
|
top: 4px;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.addTime {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
margin-left: 10px;
|
||||||
|
color: rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-picker {
|
||||||
|
padding-left: 85px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-picker-range .ant-picker-active-bar {
|
||||||
|
margin-left: 85px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.coursereviewed {
|
.coursereviewed {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@
|
|||||||
<a-tree-select
|
<a-tree-select
|
||||||
:fieldNames="{
|
:fieldNames="{
|
||||||
children: 'children',
|
children: 'children',
|
||||||
title: 'dictName',
|
label: 'dictName',
|
||||||
value: 'dictCode',
|
value: 'dictCode',
|
||||||
}"
|
}"
|
||||||
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
:getPopupContainer="triggerNode => triggerNode.parentNode || document.body"
|
||||||
@@ -39,19 +39,29 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="inpbox1">
|
<div class="inpbox1">
|
||||||
<a-input v-model:value="valuecreater" style="
|
<a-input v-model:value="valuecreater" style="
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
" placeholder="请输入创建人" />
|
" placeholder="请输入创建人" />
|
||||||
</div>
|
</div>
|
||||||
<div class="inpbox1">
|
<div class="inpbox1">
|
||||||
<a-input v-model:value="valuename" style="
|
<a-input v-model:value="valuename" style="
|
||||||
width: 270px;
|
width: 270px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
margin-right: 14px;
|
margin-right: 14px;
|
||||||
" placeholder="请输入名称" />
|
" placeholder="请输入名称" />
|
||||||
|
</div>
|
||||||
|
<div class="select addTimeBox">
|
||||||
|
<div class="addTime">创建时间:</div>
|
||||||
|
<a-range-picker
|
||||||
|
v-model:value="searchParam"
|
||||||
|
style="width: 420px"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
separator="至"
|
||||||
|
:placeholder="[' 开始时间', ' 结束时间']"
|
||||||
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -140,6 +150,7 @@ import SeeModal from "../courselibrary/components/seeModal.vue";
|
|||||||
import { iframeUrl } from "../../api/method";
|
import { iframeUrl } from "../../api/method";
|
||||||
import * as api1 from "@/api/index1";
|
import * as api1 from "@/api/index1";
|
||||||
import {useStore} from "vuex";
|
import {useStore} from "vuex";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "CoursereViewedN",
|
name: "CoursereViewedN",
|
||||||
@@ -408,32 +419,11 @@ export default {
|
|||||||
],
|
],
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
searchParam:[], // 时间搜索
|
||||||
});
|
});
|
||||||
const store = useStore();
|
const store = useStore();
|
||||||
|
|
||||||
const sysTypeOptions = computed(() => formateDictT(store.state.sysType));
|
const sysTypeOptions = computed(() => store.state.sysType);
|
||||||
// console.log('asdasd--------------------------------------', sysTypeOptions)
|
|
||||||
|
|
||||||
// 处理数据字典
|
|
||||||
function formateDictT(data) {
|
|
||||||
for(let i=0;i<data.length;i++){
|
|
||||||
data[i].title = data[i].dictName;
|
|
||||||
data[i].value = data[i].dictCode;
|
|
||||||
if(data[i].children.length!==0){
|
|
||||||
for(let j=0;j<data[i].children.length;j++){
|
|
||||||
data[i].children[j].title = data[i].children[j].dictName;
|
|
||||||
data[i].children[j].value = data[i].children[j].dictCode;
|
|
||||||
if(data[i].children[j].children.length!==0){
|
|
||||||
for(let k=0; k<data[i].children[j].children.length; k++) {
|
|
||||||
data[i].children[j].children[k].title = data[i].children[j].children[k].dictName;
|
|
||||||
data[i].children[j].children[k].value = data[i].children[j].children[k].dictCode;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return data;
|
|
||||||
}
|
|
||||||
|
|
||||||
function findClassFullName(list,classify,name=''){
|
function findClassFullName(list,classify,name=''){
|
||||||
return list && list.length && list.map(e=>{
|
return list && list.length && list.map(e=>{
|
||||||
@@ -463,7 +453,8 @@ export default {
|
|||||||
state.loading = true
|
state.loading = true
|
||||||
let objn = {
|
let objn = {
|
||||||
auditStatus: 1,
|
auditStatus: 1,
|
||||||
categoryId: state.valueproj,
|
// categoryId: state.valueproj,
|
||||||
|
sysTypeId: state.valueproj,
|
||||||
createName: state.valuecreater,
|
createName: state.valuecreater,
|
||||||
name: state.valuename,
|
name: state.valuename,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
@@ -530,9 +521,16 @@ export default {
|
|||||||
// contentList11.find(e => e.dictCode == text)?.dictValue
|
// contentList11.find(e => e.dictCode == text)?.dictValue
|
||||||
|
|
||||||
const searchList = () => {
|
const searchList = () => {
|
||||||
|
console.log('searchParamsearchParamsearchParam', state.searchParam)
|
||||||
|
console.log('searchParamsearchParamsearchParam', Math.ceil(new Date(state.searchParam[0]).getTime()))
|
||||||
let objn = {
|
let objn = {
|
||||||
auditStatus: 1,
|
auditStatus: 1,
|
||||||
categoryId: state.valueproj,
|
// categoryId: state.valueproj,
|
||||||
|
// beginTime:state.searchParam.length!==0? Math.ceil(new Date(state.searchParam[0]).getTime()/1000): "",
|
||||||
|
// endTime:state.searchParam.length!==0? Math.ceil(new Date(state.searchParam[1]).getTime()/1000): "",
|
||||||
|
beginTime:state.searchParam.length!==0? dayjs(new Date(state.searchParam[0]).getTime()).format("YYYY-MM-DD"): "",
|
||||||
|
endTime:state.searchParam.length!==0? dayjs(new Date(state.searchParam[1]).getTime()).format("YYYY-MM-DD"): "",
|
||||||
|
sysTypeId: state.valueproj,
|
||||||
createName: state.valuecreater,
|
createName: state.valuecreater,
|
||||||
name: state.valuename,
|
name: state.valuename,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
@@ -575,7 +573,7 @@ export default {
|
|||||||
number: i + 1 + (state.currentPage - 1) * 10,
|
number: i + 1 + (state.currentPage - 1) * 10,
|
||||||
name: item.name,
|
name: item.name,
|
||||||
type: item.type == 1 ? "线上" : "线下",
|
type: item.type == 1 ? "线上" : "线下",
|
||||||
content: sHX(item.categoryId),
|
content: sHX(item.sysTypeId),
|
||||||
status:
|
status:
|
||||||
item.status == 0
|
item.status == 0
|
||||||
? "未提交"
|
? "未提交"
|
||||||
@@ -597,6 +595,7 @@ export default {
|
|||||||
state.tableData1 = array;
|
state.tableData1 = array;
|
||||||
};
|
};
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
|
state.searchParam = [];
|
||||||
state.valueproj = null;
|
state.valueproj = null;
|
||||||
state.valuecreater = null;
|
state.valuecreater = null;
|
||||||
state.valuename = null;
|
state.valuename = null;
|
||||||
@@ -695,6 +694,27 @@ export default {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
.addTimeBox {
|
||||||
|
top: 4px;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.addTime {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
margin-left: 10px;
|
||||||
|
color: rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-picker {
|
||||||
|
padding-left: 85px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-picker-range .ant-picker-active-bar {
|
||||||
|
margin-left: 85px;
|
||||||
|
}
|
||||||
|
}
|
||||||
.courAuditModal {
|
.courAuditModal {
|
||||||
.ant-modal {
|
.ant-modal {
|
||||||
width: 640px !important;
|
width: 640px !important;
|
||||||
|
|||||||
@@ -65,7 +65,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tmplh_btn">
|
<div class="tmplh_btn" style="margin-top:50px;">
|
||||||
<div class="btn btn1" @click="getProjList">
|
<div class="btn btn1" @click="getProjList">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText btnText1">搜索</div>
|
<div class="btnText btnText1">搜索</div>
|
||||||
|
|||||||
@@ -53,9 +53,19 @@
|
|||||||
<!-- <a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"-->
|
<!-- <a-range-picker v-model:value="valueDate" style="border-radius: 8px; height: 40px; margin-left: 5px"-->
|
||||||
<!-- :placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />-->
|
<!-- :placeholder="[' 开始时间', ' 结束时间']" @change="rankTimeChange" />-->
|
||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
|
<div class="select addTimeBox">
|
||||||
|
<div class="addTime">提交时间:</div>
|
||||||
|
<a-range-picker
|
||||||
|
v-model:value="searchParam"
|
||||||
|
style="width: 420px"
|
||||||
|
format="YYYY-MM-DD"
|
||||||
|
separator="至"
|
||||||
|
:placeholder="[' 开始时间', ' 结束时间']"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="tmplh_btn">
|
<div class="tmplh_btn" style="margin-top:50px;">
|
||||||
<div class="btn btn1" @click="getProjList">
|
<div class="btn btn1" @click="getProjList">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText btnText1">搜索</div>
|
<div class="btnText btnText1">搜索</div>
|
||||||
@@ -108,6 +118,7 @@
|
|||||||
import { onMounted, reactive, toRefs } from "vue";
|
import { onMounted, reactive, toRefs } from "vue";
|
||||||
import ProjectAudit from "../../components/drawers/ProjectAudit";
|
import ProjectAudit from "../../components/drawers/ProjectAudit";
|
||||||
import { auditlist } from "../../api/indexAudit";
|
import { auditlist } from "../../api/indexAudit";
|
||||||
|
import dayjs from "dayjs";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: "ProjectViewedN",
|
name: "ProjectViewedN",
|
||||||
@@ -230,6 +241,7 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
tableData1: [],
|
tableData1: [],
|
||||||
|
searchParam:[]
|
||||||
});
|
});
|
||||||
const showProjAudit = (id, createId, creater) => {
|
const showProjAudit = (id, createId, creater) => {
|
||||||
state.ProjAuditvisible = true;
|
state.ProjAuditvisible = true;
|
||||||
@@ -240,17 +252,16 @@ export default {
|
|||||||
const getProjList = () => {
|
const getProjList = () => {
|
||||||
state.loading=true
|
state.loading=true
|
||||||
let objn = {
|
let objn = {
|
||||||
beginTime:
|
beginTime:state.searchParam.length!==0? dayjs(new Date(state.searchParam[0]).getTime()).format("YYYY-MM-DD"): "",
|
||||||
state.valueDate == undefined ? "" : Date.parse(state.valueDate[0]),
|
endTime:state.searchParam.length!==0? dayjs(new Date(state.searchParam[1]).getTime()).format("YYYY-MM-DD"): "",
|
||||||
createName: state.valuecreater,
|
createName: state.valuecreater,
|
||||||
endTime:
|
|
||||||
state.valueDate == undefined ? "" : Date.parse(state.valueDate[1]),
|
|
||||||
manager: state.valuename,
|
manager: state.valuename,
|
||||||
name: state.valueproj,
|
name: state.valueproj,
|
||||||
pageNo: state.currentPage,
|
pageNo: state.currentPage,
|
||||||
pageSize: state.pageSize,
|
pageSize: state.pageSize,
|
||||||
status: 1,
|
status: 1,
|
||||||
};
|
};
|
||||||
|
console.log(objn)
|
||||||
auditlist(objn)
|
auditlist(objn)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
console.log("获取待审核项目成功", res);
|
console.log("获取待审核项目成功", res);
|
||||||
@@ -278,6 +289,7 @@ export default {
|
|||||||
getProjList();
|
getProjList();
|
||||||
};
|
};
|
||||||
const reset = () => {
|
const reset = () => {
|
||||||
|
state.searchParam = [];
|
||||||
(state.valueproj = ""),
|
(state.valueproj = ""),
|
||||||
(state.valuecreater = ""),
|
(state.valuecreater = ""),
|
||||||
(state.valuename = ""),
|
(state.valuename = ""),
|
||||||
@@ -298,6 +310,28 @@ export default {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
.addTimeBox {
|
||||||
|
top: 4px;
|
||||||
|
position: relative;
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
|
.addTime {
|
||||||
|
position: absolute;
|
||||||
|
z-index: 10;
|
||||||
|
margin-left: 10px;
|
||||||
|
color: rgba(0, 0, 0, 0.4);
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-picker {
|
||||||
|
padding-left: 85px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ant-picker-range .ant-picker-active-bar {
|
||||||
|
margin-left: 85px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.projectviewedn {
|
.projectviewedn {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
:options="statusList"
|
:options="statusList"
|
||||||
@change="selectStatusClassify"
|
@change="selectStatusClassify"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -859,12 +858,14 @@ export default {
|
|||||||
state.pathName = "";
|
state.pathName = "";
|
||||||
state.pathBg = "";
|
state.pathBg = "";
|
||||||
state.pathBgId = "";
|
state.pathBgId = "";
|
||||||
if(store.state.userInfo.departId && store.state.userInfo.departName){
|
|
||||||
state.organizationSelectName = store.state.userInfo.departName;
|
|
||||||
state.organizationSelectId = store.state.userInfo.departId;
|
|
||||||
}
|
|
||||||
state.pathIntro = "";
|
state.pathIntro = "";
|
||||||
state.out = !state.out;
|
state.out = !state.out;
|
||||||
|
setTimeout(() => {
|
||||||
|
if(store.state.userInfo.departId && store.state.userInfo.departName){
|
||||||
|
state.organizationSelectName = store.state.userInfo.departName;
|
||||||
|
state.organizationSelectId = store.state.userInfo.departId;
|
||||||
|
}
|
||||||
|
}, 2000);
|
||||||
};
|
};
|
||||||
const handleOut1 = () => {
|
const handleOut1 = () => {
|
||||||
state.pathName = "";
|
state.pathName = "";
|
||||||
|
|||||||
@@ -431,23 +431,13 @@
|
|||||||
<a-progress
|
<a-progress
|
||||||
:showInfo="false"
|
:showInfo="false"
|
||||||
:percent="
|
:percent="
|
||||||
parseInt(
|
parseInt((item.finishStuNum / item.totalStuNum) * 100)
|
||||||
(item.finishStuNum / item.totalStuNum) * 100
|
|
||||||
)
|
|
||||||
"
|
"
|
||||||
strokeColor="#FFC067"
|
strokeColor="#FFC067"
|
||||||
trailColor="rgba(253, 209, 98, 0.2)"
|
trailColor="rgba(253, 209, 98, 0.2)"
|
||||||
/>
|
/>
|
||||||
<span class="progresstext" style="margin-left: 10px"
|
<span class="progresstext" style="margin-left: 10px"
|
||||||
>{{
|
>{{parseInt((item.finishStuNum / item.totalStuNum) * 100) || 0}}%</span
|
||||||
item.totalStuNum == 0
|
|
||||||
? 0
|
|
||||||
: item.finishStuNum == 0
|
|
||||||
? 0
|
|
||||||
: parseInt(
|
|
||||||
(item.finishStuNum / item.totalStuNum) * 100
|
|
||||||
)
|
|
||||||
}}%</span
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -911,7 +901,6 @@
|
|||||||
:options="statess"
|
:options="statess"
|
||||||
@change="selectProjectName4"
|
@change="selectProjectName4"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
@@ -1670,7 +1659,7 @@ export default {
|
|||||||
className: "h",
|
className: "h",
|
||||||
customRender: ({ record }) => (
|
customRender: ({ record }) => (
|
||||||
<div>
|
<div>
|
||||||
{record.finishTaskNum}/{record.totalTaskNum}
|
{record.finishTaskNum || 0}/{record.totalTaskNum || 0}
|
||||||
</div>
|
</div>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1005,7 +1005,6 @@
|
|||||||
:options="level"
|
:options="level"
|
||||||
@change="handleChangeStage"
|
@change="handleChangeStage"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
|
|||||||
@@ -717,7 +717,6 @@
|
|||||||
:options="projectNameList4"
|
:options="projectNameList4"
|
||||||
@change="selectProjectName4"
|
@change="selectProjectName4"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
|
|||||||
@@ -192,19 +192,35 @@
|
|||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<div class="inname">同步学习记录</div>
|
<div class="inname">同步学习记录</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="in">
|
<div class="in ggysxz" v-if="courseSyncFlag">
|
||||||
|
<!-- :disabled="viewDetail ? true : false" -->
|
||||||
<a-checkbox
|
<a-checkbox
|
||||||
v-model:checked="courseSyncFlag"
|
v-model:checked="courseSyncFlag"
|
||||||
:disabled="viewDetail ? true : false"
|
disabled>
|
||||||
><span
|
<span
|
||||||
style="
|
style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
color: rgba(109, 117, 132, 1);
|
color: rgba(109, 117, 132, 1);
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
"
|
">
|
||||||
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
|
同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)
|
||||||
></a-checkbox
|
</span>
|
||||||
>
|
</a-checkbox>
|
||||||
|
</div>
|
||||||
|
<div class="in" v-else>
|
||||||
|
<!-- :disabled="viewDetail ? true : false" -->
|
||||||
|
<a-checkbox
|
||||||
|
v-model:checked="courseSyncFlag"
|
||||||
|
disabled>
|
||||||
|
<span
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
color: rgba(109, 117, 132, 1);
|
||||||
|
font-size: 14px;
|
||||||
|
">
|
||||||
|
同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)
|
||||||
|
</span>
|
||||||
|
</a-checkbox>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="name name2">
|
<div class="name name2">
|
||||||
@@ -320,7 +336,7 @@ export default {
|
|||||||
keyWord: "",
|
keyWord: "",
|
||||||
},
|
},
|
||||||
classifyList5: [],
|
classifyList5: [],
|
||||||
courseSyncFlag: false,
|
courseSyncFlag: true,
|
||||||
auditDescription: "",
|
auditDescription: "",
|
||||||
ptojectType: "",
|
ptojectType: "",
|
||||||
});
|
});
|
||||||
@@ -533,6 +549,16 @@ export default {
|
|||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
|
||||||
|
.ggysxz {
|
||||||
|
.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {
|
||||||
|
border-color: #FFF !important;
|
||||||
|
}
|
||||||
|
.ant-checkbox-disabled .ant-checkbox-inner {
|
||||||
|
background-color: #1890ff !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.flex-top {
|
.flex-top {
|
||||||
align-items: flex-start !important;
|
align-items: flex-start !important;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1177,7 +1177,7 @@ export default {
|
|||||||
arraynew.push(data[i])
|
arraynew.push(data[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log(arraynew)
|
// console.log(arraynew)
|
||||||
if (arraynew.length !== 0) {
|
if (arraynew.length !== 0) {
|
||||||
state.chooseStageId = Number(arraynew[arraynew.length - 1].stageId);
|
state.chooseStageId = Number(arraynew[arraynew.length - 1].stageId);
|
||||||
}
|
}
|
||||||
@@ -1439,8 +1439,7 @@ export default {
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
document.getElementsByTagName("main")[0].style.background =
|
document.getElementsByTagName("main")[0].style.background = "rgb(245, 247, 250,1)";
|
||||||
"rgb(245, 247, 250,1)";
|
|
||||||
document.getElementsByTagName("main")[0].style.boxShadow = "none";
|
document.getElementsByTagName("main")[0].style.boxShadow = "none";
|
||||||
getTask();
|
getTask();
|
||||||
});
|
});
|
||||||
@@ -1452,8 +1451,7 @@ export default {
|
|||||||
});
|
});
|
||||||
onUnmounted(() => {
|
onUnmounted(() => {
|
||||||
document.getElementsByTagName("main")[0].style.background = "#ffffff";
|
document.getElementsByTagName("main")[0].style.background = "#ffffff";
|
||||||
document.getElementsByTagName("main")[0].style.boxShadow =
|
document.getElementsByTagName("main")[0].style.boxShadow = "0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
||||||
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
|
|
||||||
});
|
});
|
||||||
const showDrawerOnline = (id, eleId) => {
|
const showDrawerOnline = (id, eleId) => {
|
||||||
console.log("id, eleId", id, eleId);
|
console.log("id, eleId", id, eleId);
|
||||||
|
|||||||
@@ -540,32 +540,17 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="progress">
|
<div class="progress">
|
||||||
<div class="progresstext">
|
<div class="progresstext">
|
||||||
{{
|
{{item.finishStuCnt || 0 }}/{{item.totalStuCnt || 0}}人
|
||||||
item.finishStuCnt && item.finishStuCnt !== null
|
|
||||||
? item.finishStuCnt
|
|
||||||
: 0
|
|
||||||
}}/{{
|
|
||||||
item.totalStuCnt && item.totalStuCnt !== null
|
|
||||||
? item.totalStuCnt
|
|
||||||
: 0
|
|
||||||
}}人
|
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex">
|
<div style="display: flex">
|
||||||
<a-progress
|
<a-progress
|
||||||
:showInfo="false"
|
:showInfo="false"
|
||||||
:percent="item.percent"
|
:percent="parseInt((item.finishStuCnt / item.totalStuCnt) * 100)"
|
||||||
strokeColor="#FFC067"
|
strokeColor="#FFC067"
|
||||||
trailColor="rgba(253, 209, 98, 0.2)"
|
trailColor="rgba(253, 209, 98, 0.2)"
|
||||||
/>
|
/>
|
||||||
<span class="progresstext" style="margin-left: 10px"
|
<span class="progresstext" style="margin-left: 10px"
|
||||||
>{{
|
>{{parseInt((item.finishStuCnt / item.totalStuCnt) * 100) || 0 }}%</span
|
||||||
(item.finishStuCnt && item.finishStuCnt !== null
|
|
||||||
? item.finishStuCnt
|
|
||||||
: 0 / item.totalStuCnt &&
|
|
||||||
item.totalStuCnt !== null
|
|
||||||
? item.totalStuCnt
|
|
||||||
: 0) * 100
|
|
||||||
}}%</span
|
|
||||||
>
|
>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -1854,7 +1839,7 @@ export default {
|
|||||||
ellipsis: true,
|
ellipsis: true,
|
||||||
customRender: ({ record }) => (
|
customRender: ({ record }) => (
|
||||||
<div>
|
<div>
|
||||||
{record.finishTaskNum}/{record.totalTaskNum}
|
{record.finishTaskNum|| 0}/{record.totalTaskNum || 0}
|
||||||
</div>
|
</div>
|
||||||
),
|
),
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1016,7 +1016,6 @@
|
|||||||
:options="level"
|
:options="level"
|
||||||
@change="handleChangeStage"
|
@change="handleChangeStage"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="btn">
|
<div class="btn">
|
||||||
|
|||||||
@@ -166,10 +166,26 @@
|
|||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<div class="inname">同步学习记录</div>
|
<div class="inname">同步学习记录</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="in">
|
<div class="in ggysxz" v-if="courseSyncFlag">
|
||||||
|
<!-- :disabled="viewDetail ? true : false" -->
|
||||||
<a-checkbox
|
<a-checkbox
|
||||||
|
disabled
|
||||||
|
v-model:checked="courseSyncFlag"
|
||||||
|
><span
|
||||||
|
style="
|
||||||
|
width: 100%;
|
||||||
|
color: rgba(109, 117, 132, 1);
|
||||||
|
font-size: 14px;
|
||||||
|
"
|
||||||
|
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
|
||||||
|
></a-checkbox
|
||||||
|
>
|
||||||
|
</div>
|
||||||
|
<div class="in" v-else>
|
||||||
|
<!-- :disabled="viewDetail ? true : false" -->
|
||||||
|
<a-checkbox
|
||||||
|
disabled
|
||||||
v-model:checked="courseSyncFlag"
|
v-model:checked="courseSyncFlag"
|
||||||
:disabled="viewDetail ? true : false"
|
|
||||||
><span
|
><span
|
||||||
style="
|
style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -223,7 +239,7 @@ const router = useRouter();
|
|||||||
const store = useStore();
|
const store = useStore();
|
||||||
const projectInfo = ref({});
|
const projectInfo = ref({});
|
||||||
const projectPic = ref([]);
|
const projectPic = ref([]);
|
||||||
const courseSyncFlag = ref(false)
|
const courseSyncFlag = ref(true)
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getDetail();
|
getDetail();
|
||||||
projectPic.value = store.state.projectPic.map((e) => ({
|
projectPic.value = store.state.projectPic.map((e) => ({
|
||||||
@@ -305,6 +321,15 @@ function managerChange(e, l, d, t,orgName) {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
|
.ggysxz {
|
||||||
|
.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {
|
||||||
|
border-color: #FFF !important;
|
||||||
|
}
|
||||||
|
.ant-checkbox-disabled .ant-checkbox-inner {
|
||||||
|
background-color: #1890ff !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.active {
|
.active {
|
||||||
border: 2px solid rgba(78, 166, 255, 1);
|
border: 2px solid rgba(78, 166, 255, 1);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -69,6 +69,7 @@
|
|||||||
border-radius: 8px;
|
border-radius: 8px;
|
||||||
background-color: #4ea6ff;
|
background-color: #4ea6ff;
|
||||||
"
|
"
|
||||||
|
:loading="loading"
|
||||||
@click="handleSave"
|
@click="handleSave"
|
||||||
>
|
>
|
||||||
保存
|
保存
|
||||||
@@ -132,6 +133,7 @@ export default {
|
|||||||
|
|
||||||
allFormsData: [],
|
allFormsData: [],
|
||||||
valueMore: "",
|
valueMore: "",
|
||||||
|
loading:false
|
||||||
});
|
});
|
||||||
|
|
||||||
// 详情
|
// 详情
|
||||||
@@ -483,6 +485,7 @@ export default {
|
|||||||
if (!checkVal(filterData)) {
|
if (!checkVal(filterData)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
state.loading = true
|
||||||
|
|
||||||
if (state.assessmentId) {
|
if (state.assessmentId) {
|
||||||
resultPost = {
|
resultPost = {
|
||||||
@@ -496,6 +499,7 @@ export default {
|
|||||||
"assessmentMinScore",
|
"assessmentMinScore",
|
||||||
]);
|
]);
|
||||||
editResearchMessage(resultPost).then((res) => {
|
editResearchMessage(resultPost).then((res) => {
|
||||||
|
state.loading = false
|
||||||
if (res.data.code === 200) {
|
if (res.data.code === 200) {
|
||||||
message.success("编辑成功");
|
message.success("编辑成功");
|
||||||
router.push({
|
router.push({
|
||||||
|
|||||||
@@ -20,7 +20,6 @@
|
|||||||
:options="projectStateList"
|
:options="projectStateList"
|
||||||
@change="handleProjectState"
|
@change="handleProjectState"
|
||||||
allowClear
|
allowClear
|
||||||
showSearch
|
|
||||||
></a-select>
|
></a-select>
|
||||||
</div>
|
</div>
|
||||||
<div class="select">
|
<div class="select">
|
||||||
|
|||||||
Reference in New Issue
Block a user