mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-20 16:26:45 +08:00
Merge branch 'develop' of http://gitlab.dongwu-inc.com:10080/BOE/fe-manage into develop
This commit is contained in:
@@ -11,14 +11,14 @@
|
|||||||
<div class="titl">
|
<div class="titl">
|
||||||
<div class="endtime">
|
<div class="endtime">
|
||||||
起止时间:{{
|
起止时间:{{
|
||||||
datasource.info && datasource.info.liveStartTime ? datasource.info.liveStartTime : "-"
|
datasource.startTime ? datasource.startTime : "-"
|
||||||
}}
|
}}
|
||||||
~
|
~
|
||||||
{{ datasource.info && datasource.info.liveEndTime ? datasource.info.liveEndTime : "-" }}
|
{{ datasource.endTime ? datasource.endTime : "-" }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="endtime" style="margin-left: 64px">签到时间:{{ beginTime }}</div>
|
<div class="endtime" style="margin-left: 64px">签到时间:{{ beginTime }} ~ {{ endTime }}</div>
|
||||||
<div class="endtime" style="margin-left: 40px">签退时间:{{ endTime }}</div>
|
<!--<div class="endtime" style="margin-left: 40px">签退时间:{{ endTime }}</div>-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="search">
|
<div class="search">
|
||||||
@@ -354,25 +354,24 @@ export default {
|
|||||||
|
|
||||||
// 计算签到时间
|
// 计算签到时间
|
||||||
const isSignClick = () => {
|
const isSignClick = () => {
|
||||||
// debugger
|
console.log("计算签到时间", props.datasource);
|
||||||
console.log("计算签到时间", props.datasource.info);
|
let beginTime = new Date(props.datasource.startTime).getTime();
|
||||||
let beginTime = new Date(props.datasource.info.liveStartTime).getTime();
|
let endTime = !props.datasource.afterStart
|
||||||
let endTime = !props.datasource.info.afterSignIn
|
? new Date(props.datasource.endTime).getTime()
|
||||||
? new Date(props.datasource.info.liveEndTime).getTime()
|
: new Date(props.datasource.startTime).getTime();
|
||||||
: new Date(props.datasource.info.liveStartTime).getTime();
|
|
||||||
|
|
||||||
if (props.datasource.info.beforeSignIn && props.datasource.info.afterSignIn) {
|
if (props.datasource.beforeStart && props.datasource.afterStart) {
|
||||||
//有开始前有开始后
|
//有开始前有开始后
|
||||||
beginTime = beginTime - props.datasource.info.beforeSignIn * 60 * 1000;
|
beginTime = beginTime - props.datasource.beforeStart * 60 * 1000;
|
||||||
endTime = endTime + props.datasource.info.afterSignIn * 60 * 1000;
|
endTime = endTime + props.datasource.afterStart * 60 * 1000;
|
||||||
console.log("1111", beginTime, endTime);
|
console.log("1111", beginTime, endTime);
|
||||||
} else if (props.datasource.info.beforeSignIn && !props.datasource.info.afterSignIn) {
|
} else if (props.datasource.beforeStart && !props.datasource.afterStart) {
|
||||||
//只有开始前无开始后
|
//只有开始前无开始后
|
||||||
beginTime = beginTime - props.datasource.info.beforeSignIn * 60 * 1000;
|
beginTime = beginTime - props.datasource.beforeStart * 60 * 1000;
|
||||||
console.log("11112222", beginTime);
|
console.log("11112222", beginTime);
|
||||||
} else if (!props.datasource.info.beforeSignIn && props.datasource.info.afterSignIn) {
|
} else if (!props.datasource.beforeStart && props.datasource.afterStart) {
|
||||||
//无开始前有开始后
|
//无开始前有开始后
|
||||||
endTime = endTime + props.datasource.info.afterSignIn * 60 * 1000;
|
endTime = endTime + props.datasource.afterStart * 60 * 1000;
|
||||||
console.log("1111333", endTime);
|
console.log("1111333", endTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -393,7 +392,6 @@ export default {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const getTableData = () => {
|
const getTableData = () => {
|
||||||
debugger
|
|
||||||
// debugger
|
// debugger
|
||||||
console.log('当前是项目还是路径图 1 项目 2 路径图', props)
|
console.log('当前是项目还是路径图 1 项目 2 路径图', props)
|
||||||
console.log('当前是项目还是路径图 1 项目 2 路径图', props.types)
|
console.log('当前是项目还是路径图 1 项目 2 路径图', props.types)
|
||||||
@@ -690,7 +688,6 @@ export default {
|
|||||||
<div class="opa" style='display:flex;justify-content:center;align-items:center;'>
|
<div class="opa" style='display:flex;justify-content:center;align-items:center;'>
|
||||||
<div
|
<div
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
debugger
|
|
||||||
{/* debugger */ }
|
{/* debugger */ }
|
||||||
console.log("点击签到", value);
|
console.log("点击签到", value);
|
||||||
// 获取当前时间
|
// 获取当前时间
|
||||||
@@ -866,13 +863,13 @@ export default {
|
|||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API
|
`${process.env.VUE_APP_BASE_API
|
||||||
}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId
|
}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId
|
||||||
}&type=2&pid=${props.datasource.courseId}&thirdType=1&taskId=${props.datasource.id}&taskType=${props.datasource.type}`
|
}&type=2&pid=${props.datasource.routerId}&thirdType=1&taskId=${props.datasource.id}&taskType=${props.datasource.type}`
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
window.open(
|
window.open(
|
||||||
`${process.env.VUE_APP_BASE_API
|
`${process.env.VUE_APP_BASE_API
|
||||||
}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId
|
}/admin/student/exportTaskStudent?currentStageId=${props.datasource.stageId
|
||||||
}&type=1&pid=${props.datasource.courseId}&thirdType=1&taskId=${props.datasource.id}&taskType=${props.datasource.type}`
|
}&type=1&pid=${props.datasource.projectId}&thirdType=1&taskId=${props.datasource.id}&taskType=${props.datasource.type}`
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,12 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="main_item2">
|
<div class="main_item2">
|
||||||
<div class="signbox">
|
<div class="signbox">
|
||||||
|
<div class="sign">
|
||||||
|
<img
|
||||||
|
src="@/assets/images/coursewareManage/asterisk.png"
|
||||||
|
alt=""
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<span style="margin-right: 3px">讨论说明:</span>
|
<span style="margin-right: 3px">讨论说明:</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="textarea">
|
<div class="textarea">
|
||||||
@@ -91,6 +97,12 @@ const rulesRef = ref({
|
|||||||
message: '请输入讨论名称',
|
message: '请输入讨论名称',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
discussExplain: [
|
||||||
|
{
|
||||||
|
required: true,
|
||||||
|
message: '请输入讨论说明',
|
||||||
|
},
|
||||||
|
],
|
||||||
});
|
});
|
||||||
|
|
||||||
const {resetFields, validate} = Form.useForm(formData, rulesRef);
|
const {resetFields, validate} = Form.useForm(formData, rulesRef);
|
||||||
|
|||||||
@@ -236,7 +236,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import { defineEmits, defineProps, ref, watch } from "vue";
|
import { defineEmits, defineProps, ref, watch } from "vue";
|
||||||
import STest from "./SelectTest.vue";
|
import STest from "./SelectTest.vue";
|
||||||
import { createExamination } from "@/api/index1";
|
|
||||||
import dayjs from "dayjs";
|
import dayjs from "dayjs";
|
||||||
import { Form, message } from "ant-design-vue";
|
import { Form, message } from "ant-design-vue";
|
||||||
|
|
||||||
@@ -358,14 +357,6 @@ async function confirm() {
|
|||||||
data.name = formData.value.examinationName
|
data.name = formData.value.examinationName
|
||||||
data.info = { ...formData.value }
|
data.info = { ...formData.value }
|
||||||
}
|
}
|
||||||
let obj = formData.value;
|
|
||||||
createExamination(obj).then(res => {
|
|
||||||
console.log(res)
|
|
||||||
message.success("成功");
|
|
||||||
}).catch(err => {
|
|
||||||
console.log(err)
|
|
||||||
})
|
|
||||||
|
|
||||||
emit('update:taskList', [...props.taskList])
|
emit('update:taskList', [...props.taskList])
|
||||||
closeDrawer()
|
closeDrawer()
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,6 +183,7 @@ export default {
|
|||||||
};
|
};
|
||||||
//获取作业详情
|
//获取作业详情
|
||||||
const getWorkDetail = () => {
|
const getWorkDetail = () => {
|
||||||
|
debugger
|
||||||
console.log("props.workId, props.stuId", props.workId, props.stuId);
|
console.log("props.workId, props.stuId", props.workId, props.stuId);
|
||||||
getWorkSubmitInfo(props.workId, props.stuId)
|
getWorkSubmitInfo(props.workId, props.stuId)
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
|
|||||||
@@ -428,8 +428,8 @@
|
|||||||
// 导出数据
|
// 导出数据
|
||||||
function exportTaskStu() {
|
function exportTaskStu() {
|
||||||
console.log("导出数据")
|
console.log("导出数据")
|
||||||
console.log(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${2}&voteId=${props.datasource.courseId}`)
|
console.log(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${1}&voteId=${props.datasource.courseId}`)
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${2}&voteId=${props.datasource.courseId}`)
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${1}&voteId=${props.datasource.courseId}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -465,6 +465,9 @@ export default {
|
|||||||
if(props.datasource.type==1){
|
if(props.datasource.type==1){
|
||||||
{/* 在线课导出 */}
|
{/* 在线课导出 */}
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/online/manage/exportOnline?chapterId=${props.datasource.chapterId}&type=${2}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}`)
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/online/manage/exportOnline?chapterId=${props.datasource.chapterId}&type=${2}&targetId=${props.datasource.routerId}&taskId=${props.datasource.courseId}`)
|
||||||
|
}else if(props.datasource.type==11){
|
||||||
|
{/* 评估导出 */}
|
||||||
|
window.open(`${process.env.VUE_APP_BASE_API}admin/assessment/manage/exportAssessmentMessage?chapterId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&courseId=${props.datasource.courseId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`)
|
||||||
}else{
|
}else{
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`)
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/student/exportTaskStudent?currentStageId=${props.datasource.chapterId}&type=${2}&pid=${props.datasource.routerId}&taskId=${props.datasource.id}&taskType=${props.datasource.type}`)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -381,7 +381,7 @@
|
|||||||
"studentName": state.name,
|
"studentName": state.name,
|
||||||
"targetId":props.datasource.projectId,
|
"targetId":props.datasource.projectId,
|
||||||
"taskId": props.datasource.courseId,
|
"taskId": props.datasource.courseId,
|
||||||
"type": 1
|
"type": 2
|
||||||
});
|
});
|
||||||
api.QueryVoteManagementDetail({
|
api.QueryVoteManagementDetail({
|
||||||
"pageNo": state.currentPage,
|
"pageNo": state.currentPage,
|
||||||
@@ -391,7 +391,7 @@
|
|||||||
"studentName": state.name,
|
"studentName": state.name,
|
||||||
"targetId":props.datasource.routerId,
|
"targetId":props.datasource.routerId,
|
||||||
"taskId": props.datasource.courseId,
|
"taskId": props.datasource.courseId,
|
||||||
"type": 1
|
"type": 2
|
||||||
}).then(res=>{
|
}).then(res=>{
|
||||||
console.log('投票数据获取', res)
|
console.log('投票数据获取', res)
|
||||||
if(res.data.code==200){
|
if(res.data.code==200){
|
||||||
@@ -448,8 +448,8 @@
|
|||||||
|
|
||||||
// 导出数据
|
// 导出数据
|
||||||
function exportTaskStu() {
|
function exportTaskStu() {
|
||||||
console.log(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${1}&voteId=${props.datasource.courseId}`)
|
console.log(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${2}&voteId=${props.datasource.courseId}`)
|
||||||
window.open(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${1}&voteId=${props.datasource.courseId}`)
|
window.open(`${process.env.VUE_APP_BASE_API}/admin/vote/manage/export/vote?type=${2}&voteId=${props.datasource.courseId}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
|||||||
@@ -85,7 +85,6 @@ const selectGroup = (e, v) => {
|
|||||||
};
|
};
|
||||||
//确认换组
|
//确认换组
|
||||||
const changeGroup = (item) => {
|
const changeGroup = (item) => {
|
||||||
debugger
|
|
||||||
console.log("换组", selectGroupId.value, item);
|
console.log("换组", selectGroupId.value, item);
|
||||||
props.checkgroupStuId.forEach(stu => {
|
props.checkgroupStuId.forEach(stu => {
|
||||||
let obj = {
|
let obj = {
|
||||||
|
|||||||
@@ -427,7 +427,6 @@ const stuRowSelection = computed(() => ({
|
|||||||
|
|
||||||
//显示学员换组弹窗
|
//显示学员换组弹窗
|
||||||
function showChangeGroupModal() {
|
function showChangeGroupModal() {
|
||||||
debugger
|
|
||||||
console.log("批量")
|
console.log("批量")
|
||||||
const d = props.groupList
|
const d = props.groupList
|
||||||
console.log("d" + d)
|
console.log("d" + d)
|
||||||
|
|||||||
@@ -211,6 +211,8 @@ export default {
|
|||||||
// 搜索
|
// 搜索
|
||||||
function searchDownloadList() {
|
function searchDownloadList() {
|
||||||
getData()
|
getData()
|
||||||
|
// 获取当前用户容量
|
||||||
|
getDownLoadTotalSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 重置
|
// 重置
|
||||||
@@ -218,6 +220,8 @@ export default {
|
|||||||
state.name = "";
|
state.name = "";
|
||||||
state.currentPage = 1;
|
state.currentPage = 1;
|
||||||
getData()
|
getData()
|
||||||
|
// 获取当前用户容量
|
||||||
|
getDownLoadTotalSize()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 分页
|
// 分页
|
||||||
|
|||||||
@@ -70,12 +70,12 @@
|
|||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div style="display: flex; margin-bottom: 20px">
|
<div style="display: flex; margin-bottom: 20px" class="courseBtn">
|
||||||
<div class="btn btn1" @click="handleSearch1">
|
<div class="btn btn1" @click="handleSearch1">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">搜索</div>
|
<div class="btnText">搜索</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn btn2" @click="handleRest1">
|
<div class="btnn btn2" @click="handleRest1" style="width: 103px">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">重置</div>
|
<div class="btnText">重置</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -749,7 +749,11 @@
|
|||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">搜索</div>
|
<div class="btnText">搜索</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn btn2" @click="handleRestTable">
|
<div
|
||||||
|
class="btnn btn2"
|
||||||
|
@click="handleRestTable"
|
||||||
|
style="width: 103px"
|
||||||
|
>
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">重置</div>
|
<div class="btnText">重置</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -4620,16 +4624,19 @@ export default defineComponent({
|
|||||||
|
|
||||||
// 管理开课
|
// 管理开课
|
||||||
const handleGuan22 = (item) => {
|
const handleGuan22 = (item) => {
|
||||||
if (String(item.courseform) === "1") {
|
// console.log('点击面授课管理',item)
|
||||||
return;
|
// if (String(item.courseform) === "1") {
|
||||||
}
|
// return;
|
||||||
if (String(item.courseform) === ("1" || "线上")) {
|
// }
|
||||||
state.om_1 = true;
|
// if (String(item.courseform) === ("1" || "线上")) {
|
||||||
state.ft_1 = false;
|
// state.om_1 = true;
|
||||||
} else if (String(item.courseform) === ("2" || "面授")) {
|
// state.ft_1 = false;
|
||||||
|
// } else if (String(item.courseform) === ("2" || "面授")) {
|
||||||
|
// state.om_1 = true;
|
||||||
|
// state.ft_1 = true;
|
||||||
|
// }
|
||||||
state.om_1 = true;
|
state.om_1 = true;
|
||||||
state.ft_1 = true;
|
state.ft_1 = true;
|
||||||
}
|
|
||||||
state.manageStuLoading = true;
|
state.manageStuLoading = true;
|
||||||
console.log(787666, item);
|
console.log(787666, item);
|
||||||
state.faceClassification = item.contentTxt;
|
state.faceClassification = item.contentTxt;
|
||||||
|
|||||||
@@ -10,13 +10,13 @@
|
|||||||
<div class="fort">创建时间:{{ cretime }}</div>
|
<div class="fort">创建时间:{{ cretime }}</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<!--
|
|
||||||
<img
|
<img
|
||||||
class="img1"
|
class="img1"
|
||||||
src="../../assets/images/leveladd/ma.png"
|
src="../../assets/images/leveladd/ma.png"
|
||||||
@click="showCodeModel2()"
|
@click="showCodeModel2()"
|
||||||
/>
|
/>
|
||||||
<div v-if="action == 1 || action == 0" class="line"></div>-->
|
<div v-if="action == 1 || action == 0" class="line"></div>
|
||||||
<div
|
<div
|
||||||
class="pubIcon"
|
class="pubIcon"
|
||||||
v-if="(action == 1 || action == 0) && checkPer(permissions)"
|
v-if="(action == 1 || action == 0) && checkPer(permissions)"
|
||||||
@@ -325,9 +325,9 @@
|
|||||||
<div style="flex: 1">
|
<div style="flex: 1">
|
||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="taskmain">任务大纲</div>
|
<div class="taskmain">任务大纲</div>
|
||||||
<ImpoterGroupLeader title="批量面授报名" :data="{targetId:routerId,type:2}" :url="`/admin/offcourse/importCourse`" :template-url="`/admin/router/exportTaskCoursePlan/${routerId}?type=1&taskType=2&thirdType=3`">
|
<!-- <ImpoterGroupLeader title="批量面授报名" :data="{targetId:routerId,type:2}" :url="`/admin/offcourse/importCourse`" :template-url="`/admin/router/exportTaskCoursePlan/${routerId}?type=1&taskType=2&thirdType=3`">
|
||||||
<button class="btn">批量面授报名</button>
|
<button class="btn">批量面授报名</button>
|
||||||
</ImpoterGroupLeader>
|
</ImpoterGroupLeader> -->
|
||||||
<router-link
|
<router-link
|
||||||
:to="{ path: '/leveladddetail', query: { routerId: routerId } }"
|
:to="{ path: '/leveladddetail', query: { routerId: routerId } }"
|
||||||
class="editright"
|
class="editright"
|
||||||
@@ -1387,7 +1387,7 @@ import RouterHomeworkManage from "../../components/drawers/router/RouterHomework
|
|||||||
import RouterCommonManage from "../../components/drawers/router/RouterCommonManage";
|
import RouterCommonManage from "../../components/drawers/router/RouterCommonManage";
|
||||||
import RouterVoteManage from "../../components/drawers/router/RouterVoteManage";
|
import RouterVoteManage from "../../components/drawers/router/RouterVoteManage";
|
||||||
import RouterProjectManage from "../../components/drawers/router/RouterProjectManage";
|
import RouterProjectManage from "../../components/drawers/router/RouterProjectManage";
|
||||||
import ImpoterGroupLeader from "@/components/drawers/project/ImpoterGroupLeader.vue";
|
// import ImpoterGroupLeader from "@/components/drawers/project/ImpoterGroupLeader.vue";
|
||||||
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
import TaskImpStu from "../../components/drawers/TaskFaceIn";
|
||||||
|
|
||||||
import { checkPer } from "@/utils/utils";
|
import { checkPer } from "@/utils/utils";
|
||||||
@@ -1395,7 +1395,7 @@ import { checkPer } from "@/utils/utils";
|
|||||||
export default {
|
export default {
|
||||||
name: "LevelAdd",
|
name: "LevelAdd",
|
||||||
components: {
|
components: {
|
||||||
ImpoterGroupLeader,
|
// ImpoterGroupLeader,
|
||||||
ProjCheckShip,
|
ProjCheckShip,
|
||||||
ImpStu,
|
ImpStu,
|
||||||
CheckStu,
|
CheckStu,
|
||||||
@@ -2759,7 +2759,10 @@ export default {
|
|||||||
let obj = {
|
let obj = {
|
||||||
title: "[学习路径]二维码",
|
title: "[学习路径]二维码",
|
||||||
name: state.styTitle,
|
name: state.styTitle,
|
||||||
// url: codeUrl,
|
url: window.location.protocol +
|
||||||
|
process.env.VUE_APP_H5 +
|
||||||
|
"/pathdetails?routerId=" +
|
||||||
|
state.routerId,
|
||||||
};
|
};
|
||||||
state.codeInfo = obj;
|
state.codeInfo = obj;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -325,7 +325,9 @@
|
|||||||
<a-button class="btn btn1" @click="cancelStorage" :loading="cancleLoading">取消</a-button>
|
<a-button class="btn btn1" @click="cancelStorage" :loading="cancleLoading">取消</a-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div><div style="height:80px;width:100%;" /></div>
|
<div>
|
||||||
|
<div style="height:80px;width:100%;"/>
|
||||||
|
</div>
|
||||||
<!-- 移动任务到阶段 -->
|
<!-- 移动任务到阶段 -->
|
||||||
<a-modal style="padding: 0" v-model:visible="visiblene" :footer="null" :centered="true"
|
<a-modal style="padding: 0" v-model:visible="visiblene" :footer="null" :centered="true"
|
||||||
wrapClassName="moveModal">
|
wrapClassName="moveModal">
|
||||||
@@ -533,8 +535,20 @@ const temporaryStorage = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const submitStorage = async () => {
|
const submitStorage = async () => {
|
||||||
|
if (routerInfo.value.routerInfo.status === 1) {
|
||||||
|
dialog({
|
||||||
|
content: '该路径图已经发布,修改后如未点击暂存当前操作未保存数据将丢失,确认保存?',
|
||||||
|
ok: async () => {
|
||||||
confirmLoading.value = true
|
confirmLoading.value = true
|
||||||
routerInfo.value.routerInfo.status === 1 ? await releaseRouter(routerId) : await request(ROUTER_DETAIL_MODIFY, routerInfo.value)
|
await releaseRouter(routerId)
|
||||||
|
message.success("关卡和任务数据已保存");
|
||||||
|
confirmLoading.value = false
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
confirmLoading.value = true
|
||||||
|
await request(ROUTER_DETAIL_MODIFY, routerInfo.value)
|
||||||
message.success("关卡和任务数据已保存")
|
message.success("关卡和任务数据已保存")
|
||||||
confirmLoading.value = false
|
confirmLoading.value = false
|
||||||
};
|
};
|
||||||
@@ -1031,6 +1045,7 @@ const cancelStorage = async () => {
|
|||||||
top: 0;
|
top: 0;
|
||||||
height: 80vh;
|
height: 80vh;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
.tit {
|
.tit {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
color: #363636;
|
color: #363636;
|
||||||
@@ -1297,6 +1312,7 @@ const cancelStorage = async () => {
|
|||||||
position: sticky;
|
position: sticky;
|
||||||
top: 0;
|
top: 0;
|
||||||
z-index: 999;
|
z-index: 999;
|
||||||
|
|
||||||
.item {
|
.item {
|
||||||
height: 115px;
|
height: 115px;
|
||||||
// width: 7.7%;
|
// width: 7.7%;
|
||||||
@@ -2136,6 +2152,7 @@ const cancelStorage = async () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.footBox {
|
.footBox {
|
||||||
position: fixed;
|
position: fixed;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
|
|||||||
@@ -585,8 +585,20 @@ const temporaryStorage = async () => {
|
|||||||
};
|
};
|
||||||
//确定
|
//确定
|
||||||
const submitStorage = async () => {
|
const submitStorage = async () => {
|
||||||
|
if (projectInfo.value.projectInfo.status === 3) {
|
||||||
|
dialog({
|
||||||
|
content: '该项目已经发布,修改后如未点击暂存当前操作未保存数据将丢失,确认保存?',
|
||||||
|
ok: async () => {
|
||||||
confirmLoading.value = true
|
confirmLoading.value = true
|
||||||
projectInfo.value.projectInfo.status === 3 ? await request(PROJECT_RELEASE, {projectId: route.query.projectId}) : await request(PROJECT_DETAIL_MODIFY, projectInfo.value)
|
await request(PROJECT_RELEASE, {projectId: route.query.projectId})
|
||||||
|
message.success("保存成功");
|
||||||
|
confirmLoading.value = false
|
||||||
|
},
|
||||||
|
})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
confirmLoading.value = true
|
||||||
|
await request(PROJECT_DETAIL_MODIFY, projectInfo.value)
|
||||||
message.success("阶段和任务数据已保存")
|
message.success("阶段和任务数据已保存")
|
||||||
confirmLoading.value = false
|
confirmLoading.value = false
|
||||||
};
|
};
|
||||||
@@ -953,6 +965,7 @@ const cancelStorage = async () => {
|
|||||||
top: 0;
|
top: 0;
|
||||||
height: 80vh;
|
height: 80vh;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
.tit {
|
.tit {
|
||||||
margin-left: 20px;
|
margin-left: 20px;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<!-- 2022-12-10注释 后面放开 -->
|
<!-- 2022-12-10注释 后面放开 -->
|
||||||
<!-- <img
|
<img
|
||||||
class="img1"
|
class="img1"
|
||||||
src="../../assets/images/leveladd/ma.png"
|
src="../../assets/images/leveladd/ma.png"
|
||||||
@click="showCodeModel2()"
|
@click="showCodeModel2()"
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
action == 3 ||
|
action == 3 ||
|
||||||
action == -2
|
action == -2
|
||||||
"
|
"
|
||||||
></div>-->
|
></div>
|
||||||
<!-- 显示发布图标 -->
|
<!-- 显示发布图标 -->
|
||||||
<img
|
<img
|
||||||
v-if="action == 2 && checkPer(permissions)"
|
v-if="action == 2 && checkPer(permissions)"
|
||||||
@@ -459,14 +459,14 @@
|
|||||||
<div class="split"></div>
|
<div class="split"></div>
|
||||||
<div class="onerow">
|
<div class="onerow">
|
||||||
<div class="taskmain">任务大纲</div>
|
<div class="taskmain">任务大纲</div>
|
||||||
<ImpoterGroupLeader
|
<!-- <ImpoterGroupLeader
|
||||||
title="批量面授报名"
|
title="批量面授报名"
|
||||||
:data="{ targetId: projectId, type: 1 }"
|
:data="{ targetId: projectId, type: 1 }"
|
||||||
:url="`/admin/offcourse/importCourse`"
|
:url="`/admin/offcourse/importCourse`"
|
||||||
:template-url="`/admin/project/exportTaskCoursePlan/${projectId}?type=1&taskType=2&thirdType=3`"
|
:template-url="`/admin/project/exportTaskCoursePlan/${projectId}?type=1&taskType=2&thirdType=3`"
|
||||||
>
|
>
|
||||||
<button class="btn">批量面授报名</button>
|
<button class="btn">批量面授报名</button>
|
||||||
</ImpoterGroupLeader>
|
</ImpoterGroupLeader> -->
|
||||||
<router-link
|
<router-link
|
||||||
v-if="checkPer(permissions)"
|
v-if="checkPer(permissions)"
|
||||||
:to="{ path: `/taskadd`, query: { projectId: projectId } }"
|
:to="{ path: `/taskadd`, query: { projectId: projectId } }"
|
||||||
@@ -769,7 +769,10 @@
|
|||||||
<a-button @click="settingTopFlag(record)" type="link"
|
<a-button @click="settingTopFlag(record)" type="link"
|
||||||
>{{ record.topFlag ? "取消优秀" : "优秀学员" }}
|
>{{ record.topFlag ? "取消优秀" : "优秀学员" }}
|
||||||
</a-button>
|
</a-button>
|
||||||
<a-button type="link" :disabled="record.isLeader === '1'" @click="showChangeGroupModal(record)"
|
<a-button
|
||||||
|
type="link"
|
||||||
|
:disabled="record.isLeader === '1'"
|
||||||
|
@click="showChangeGroupModal(record)"
|
||||||
>换组
|
>换组
|
||||||
</a-button>
|
</a-button>
|
||||||
</template>
|
</template>
|
||||||
@@ -3934,9 +3937,9 @@ export default {
|
|||||||
const createGroup = async () => {
|
const createGroup = async () => {
|
||||||
console.log("state.groupPageList" + state.groupPageList);
|
console.log("state.groupPageList" + state.groupPageList);
|
||||||
const id = state.groupInfo.id;
|
const id = state.groupInfo.id;
|
||||||
const d = state.groupPageList.filter(item => item.id !== id).filter(
|
const d = state.groupPageList
|
||||||
(item) => item.leaderId === state.groupInfo.leaderId
|
.filter((item) => item.id !== id)
|
||||||
);
|
.filter((item) => item.leaderId === state.groupInfo.leaderId);
|
||||||
if (state.isEdit) {
|
if (state.isEdit) {
|
||||||
if (d.length > 0 && d[0].id !== id) {
|
if (d.length > 0 && d[0].id !== id) {
|
||||||
return message.warn(d[0].leaderName + "已是小组长,请重新选择");
|
return message.warn(d[0].leaderName + "已是小组长,请重新选择");
|
||||||
@@ -3951,7 +3954,6 @@ export default {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
state.isEdit = false;
|
state.isEdit = false;
|
||||||
await editGroup({ ...state.groupInfo, projectId: state.projectId });
|
await editGroup({ ...state.groupInfo, projectId: state.projectId });
|
||||||
message.success(id ? "小组编辑成功" : "小组创建成功");
|
message.success(id ? "小组编辑成功" : "小组创建成功");
|
||||||
@@ -4662,7 +4664,11 @@ export default {
|
|||||||
let obj = {
|
let obj = {
|
||||||
title: "[项目]二维码",
|
title: "[项目]二维码",
|
||||||
name: state.name,
|
name: state.name,
|
||||||
// url: codeUrl,
|
url:
|
||||||
|
window.location.protocol +
|
||||||
|
process.env.VUE_APP_H5 +
|
||||||
|
"/projectdetails?projectId=" +
|
||||||
|
state.projectId,
|
||||||
};
|
};
|
||||||
state.codeInfo = obj;
|
state.codeInfo = obj;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -95,7 +95,6 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<div class="namebox">
|
<div class="namebox">
|
||||||
<img
|
<img
|
||||||
@@ -108,7 +107,8 @@
|
|||||||
<div class="in">
|
<div class="in">
|
||||||
<a-range-picker
|
<a-range-picker
|
||||||
:show-time="{ format: 'HH:mm' }"
|
:show-time="{ format: 'HH:mm' }"
|
||||||
:disabled-date="disabledDate" :disabled-time="disabledRangeTime"
|
:disabled-date="disabledDate"
|
||||||
|
:disabled-time="disabledRangeTime"
|
||||||
separator="至"
|
separator="至"
|
||||||
:placeholder="[' 开始时间', ' 结束时间']"
|
:placeholder="[' 开始时间', ' 结束时间']"
|
||||||
v-model:value="projectInfo.rangeTime"
|
v-model:value="projectInfo.rangeTime"
|
||||||
@@ -197,9 +197,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="in ggysxz" v-if="courseSyncFlag">
|
<div class="in ggysxz" v-if="courseSyncFlag">
|
||||||
<!-- :disabled="viewDetail ? true : false" -->
|
<!-- :disabled="viewDetail ? true : false" -->
|
||||||
<a-checkbox
|
<a-checkbox disabled v-model:checked="courseSyncFlag"
|
||||||
disabled
|
|
||||||
v-model:checked="courseSyncFlag"
|
|
||||||
><span
|
><span
|
||||||
style="
|
style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -212,9 +210,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="in" v-else>
|
<div class="in" v-else>
|
||||||
<!-- :disabled="viewDetail ? true : false" -->
|
<!-- :disabled="viewDetail ? true : false" -->
|
||||||
<a-checkbox
|
<a-checkbox disabled v-model:checked="courseSyncFlag"
|
||||||
disabled
|
|
||||||
v-model:checked="courseSyncFlag"
|
|
||||||
><span
|
><span
|
||||||
style="
|
style="
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@@ -268,7 +264,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(true)
|
const courseSyncFlag = ref(true);
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
getDetail();
|
getDetail();
|
||||||
projectPic.value = store.state.project_pic.map((e) => ({
|
projectPic.value = store.state.project_pic.map((e) => ({
|
||||||
@@ -288,7 +284,8 @@ const getDetail = () =>
|
|||||||
route.query.projectTemplateId &&
|
route.query.projectTemplateId &&
|
||||||
api.templateDetail(route.query.projectTemplateId).then((res) => {
|
api.templateDetail(route.query.projectTemplateId).then((res) => {
|
||||||
projectInfo.value = res.data.data.projectTemplateInfo;
|
projectInfo.value = res.data.data.projectTemplateInfo;
|
||||||
projectInfo.value.rangeTime = [dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"),
|
projectInfo.value.rangeTime = [
|
||||||
|
dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"),
|
||||||
dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm"),
|
dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm"),
|
||||||
];
|
];
|
||||||
projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag;
|
projectInfo.value.courseSyncFlag = !!projectInfo.value.courseSyncFlag;
|
||||||
@@ -304,8 +301,8 @@ const backPage = () => {
|
|||||||
|
|
||||||
function timeChange(e) {
|
function timeChange(e) {
|
||||||
if (e && e.length === 2) {
|
if (e && e.length === 2) {
|
||||||
projectInfo.value.beginTime = dayjs(e[0]).format("YYYY-MM-DD HH:mm"),
|
(projectInfo.value.beginTime = dayjs(e[0]).format("YYYY-MM-DD HH:mm")),
|
||||||
projectInfo.value.endTime =dayjs(e[1]).format("YYYY-MM-DD HH:mm")
|
(projectInfo.value.endTime = dayjs(e[1]).format("YYYY-MM-DD HH:mm"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -332,8 +329,12 @@ const createProject = () => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
projectInfo.value.courseSyncFlag = courseSyncFlag.value ? 1 : 0;
|
projectInfo.value.courseSyncFlag = courseSyncFlag.value ? 1 : 0;
|
||||||
projectInfo.value.beginTime = dayjs(projectInfo.value.beginTime).format("YYYY-MM-DD HH:mm"),
|
(projectInfo.value.beginTime = dayjs(projectInfo.value.beginTime).format(
|
||||||
projectInfo.value.endTime =dayjs(projectInfo.value.endTime).format("YYYY-MM-DD HH:mm")
|
"YYYY-MM-DD HH:mm"
|
||||||
|
)),
|
||||||
|
(projectInfo.value.endTime = dayjs(projectInfo.value.endTime).format(
|
||||||
|
"YYYY-MM-DD HH:mm"
|
||||||
|
));
|
||||||
api
|
api
|
||||||
.templateEdit({
|
.templateEdit({
|
||||||
...projectInfo.value,
|
...projectInfo.value,
|
||||||
@@ -347,16 +348,16 @@ const createProject = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
function managerChange(e, l, d, t, orgName) {
|
function managerChange(e, l, d, t, orgName) {
|
||||||
console.log(e, l)
|
console.log(e, l);
|
||||||
projectInfo.value.sourceBelongId = d;
|
projectInfo.value.sourceBelongId = d;
|
||||||
projectInfo.value.sourceBelongName = t;
|
projectInfo.value.sourceBelongName = t;
|
||||||
projectInfo.value.sourceBelongFullName = orgName
|
projectInfo.value.sourceBelongFullName = orgName;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
.ggysxz {
|
.ggysxz {
|
||||||
.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {
|
.ant-checkbox-disabled.ant-checkbox-checked .ant-checkbox-inner::after {
|
||||||
border-color: #FFF !important;
|
border-color: #fff !important;
|
||||||
}
|
}
|
||||||
.ant-checkbox-disabled .ant-checkbox-inner {
|
.ant-checkbox-disabled .ant-checkbox-inner {
|
||||||
background-color: #1890ff !important;
|
background-color: #1890ff !important;
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">搜索</div>
|
<div class="btnText">搜索</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnn btn2" @click="handleRest">
|
<div class="btnn btn2" @click="handleRest" style="width: 103px">
|
||||||
<div class="search"></div>
|
<div class="search"></div>
|
||||||
<div class="btnText">重置</div>
|
<div class="btnText">重置</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -114,7 +114,6 @@
|
|||||||
placeholder="请输入评估名称"
|
placeholder="请输入评估名称"
|
||||||
v-model:value="assessmentName"
|
v-model:value="assessmentName"
|
||||||
v-model:validate="validate"
|
v-model:validate="validate"
|
||||||
|
|
||||||
:maxlength="15"
|
:maxlength="15"
|
||||||
show-count
|
show-count
|
||||||
:type="4"
|
:type="4"
|
||||||
@@ -170,7 +169,9 @@
|
|||||||
<div class="btnText" @click="handleCancelModal">取消</div>
|
<div class="btnText" @click="handleCancelModal">取消</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="del_btn btn2">
|
<div class="del_btn btn2">
|
||||||
<div class="btnText" v-if="!addLoading" @click="handleSure">确定</div>
|
<div class="btnText" v-if="!addLoading" @click="handleSure">
|
||||||
|
确定
|
||||||
|
</div>
|
||||||
<div class="btnText" v-else>确定</div>
|
<div class="btnText" v-else>确定</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@@ -458,7 +459,8 @@ export default {
|
|||||||
<div class="operation">
|
<div class="operation">
|
||||||
{value.state === "2" ? (
|
{value.state === "2" ? (
|
||||||
<div class="fb">
|
<div class="fb">
|
||||||
<div class="jc"
|
<div
|
||||||
|
class="jc"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
handleToManagepage(value, "/managepage");
|
handleToManagepage(value, "/managepage");
|
||||||
}}
|
}}
|
||||||
@@ -606,7 +608,11 @@ export default {
|
|||||||
message.destroy();
|
message.destroy();
|
||||||
return message.warning("该评估名称已存在");
|
return message.warning("该评估名称已存在");
|
||||||
}
|
}
|
||||||
const offName = await validateName({name: state.assessmentName, type:4, id:state.id}).then(res => {
|
const offName = await validateName({
|
||||||
|
name: state.assessmentName,
|
||||||
|
type: 4,
|
||||||
|
id: state.id,
|
||||||
|
}).then((res) => {
|
||||||
return res.data.data == 1;
|
return res.data.data == 1;
|
||||||
});
|
});
|
||||||
if (offName) {
|
if (offName) {
|
||||||
@@ -614,8 +620,6 @@ export default {
|
|||||||
return message.warning("课程名称重复,请重新填写");
|
return message.warning("课程名称重复,请重新填写");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
store.commit("SET_assessmentName", state.assessmentName);
|
store.commit("SET_assessmentName", state.assessmentName);
|
||||||
router.push("/researchadd");
|
router.push("/researchadd");
|
||||||
handleCancel();
|
handleCancel();
|
||||||
@@ -675,7 +679,6 @@ export default {
|
|||||||
state.copy_hs = true;
|
state.copy_hs = true;
|
||||||
};
|
};
|
||||||
const handleSure = () => {
|
const handleSure = () => {
|
||||||
|
|
||||||
// 发布
|
// 发布
|
||||||
if (state.pub_hs) {
|
if (state.pub_hs) {
|
||||||
editReleaseStatus({
|
editReleaseStatus({
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
* @Author: lixg lixg@dongwu-inc.com
|
* @Author: lixg lixg@dongwu-inc.com
|
||||||
* @Date: 2022-11-21 14:32:52
|
* @Date: 2022-11-21 14:32:52
|
||||||
* @LastEditors: lixg lixg@dongwu-inc.com
|
* @LastEditors: lixg lixg@dongwu-inc.com
|
||||||
* @LastEditTime: 2023-02-24 09:03:55
|
* @LastEditTime: 2022-12-14 17:38:38
|
||||||
* @FilePath: /fe-manage/vue.config.js
|
* @FilePath: /fe-manage/vue.config.js
|
||||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
*/
|
*/
|
||||||
@@ -16,7 +16,6 @@ module.exports = defineConfig({
|
|||||||
proxy: {
|
proxy: {
|
||||||
"/manageApi": {
|
"/manageApi": {
|
||||||
target: 'http:' + process.env.VUE_APP_PROXY_URL,
|
target: 'http:' + process.env.VUE_APP_PROXY_URL,
|
||||||
//target: 'http://localhost:30001',
|
|
||||||
changeOrigin: true, //表示是否改变原域名
|
changeOrigin: true, //表示是否改变原域名
|
||||||
pathRewrite: {
|
pathRewrite: {
|
||||||
"^/manageApi": "",
|
"^/manageApi": "",
|
||||||
|
|||||||
Reference in New Issue
Block a user