feat:合并

This commit is contained in:
lixg
2023-01-28 16:46:37 +08:00
56 changed files with 646 additions and 643 deletions

5
.env
View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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);
}); });

View File

@@ -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'

View File

@@ -59,7 +59,6 @@
:options="projectNameList2" :options="projectNameList2"
@change="selectProjectName2" @change="selectProjectName2"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
</div> </div>

View File

@@ -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;

View File

@@ -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>

View File

@@ -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,

View File

@@ -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;

View File

@@ -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>

View File

@@ -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;
} }
} }
} }

View File

@@ -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}上传失败`);

View File

@@ -36,7 +36,6 @@
:options="projectNameList" :options="projectNameList"
@change="selectProjectName" @change="selectProjectName"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
</div> </div>

View File

@@ -61,7 +61,6 @@
:options="projectNameList2" :options="projectNameList2"
@change="selectProjectName2" @change="selectProjectName2"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
</div> </div>

View File

@@ -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;

View File

@@ -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>

View File

@@ -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;
} }
} }
} }

View File

@@ -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;
} // }

View File

@@ -37,7 +37,6 @@
:options="projectNameList" :options="projectNameList"
@change="selectProjectName" @change="selectProjectName"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
</div> </div>

View File

@@ -37,7 +37,6 @@
:options="projectNameList" :options="projectNameList"
@change="selectProjectName" @change="selectProjectName"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
</div> </div>

View File

@@ -37,7 +37,6 @@
:options="projectNameList" :options="projectNameList"
@change="selectProjectName" @change="selectProjectName"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
</div> </div>

View File

@@ -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,

View File

@@ -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({

View File

@@ -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 {

View File

@@ -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({

View File

@@ -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){

View File

@@ -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=>{

View File

@@ -48,7 +48,6 @@
:options="projectNameList" :options="projectNameList"
@change="selectProjectName" @change="selectProjectName"
allowClear allowClear
showSearch
></a-select> ></a-select>
</div> </div>
</div> </div>

View File

@@ -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,

View File

@@ -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({

View File

@@ -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 {

View File

@@ -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({

View File

@@ -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,

View File

@@ -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}`
); );
} }

View File

@@ -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
}; };
}, },
}; };

View File

@@ -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;

View File

@@ -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"
> >

View File

@@ -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

View File

@@ -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;

View File

@@ -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%;

View File

@@ -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;

View File

@@ -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>

View File

@@ -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%;

View File

@@ -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 = "";

View File

@@ -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>
), ),
}, },

View File

@@ -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">

View File

@@ -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">

View File

@@ -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;
} }

View File

@@ -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);

View File

@@ -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>
), ),
}, },

View File

@@ -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">

View File

@@ -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);
} }

View File

@@ -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({

View File

@@ -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">