mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-24 10:12:54 +08:00
Merge remote-tracking branch 'origin/develop' into develop
This commit is contained in:
@@ -41,7 +41,7 @@ export default defineComponent({
|
||||
const store = useStore();
|
||||
const isLogin = ref(false);
|
||||
// console.log("router", router.getRoutes(), route);
|
||||
console.log("版本0.06------------");
|
||||
console.log("版本0.08------------");
|
||||
const routes = computed(() => {
|
||||
return router.getRoutes().filter((e) => e.meta?.isLink);
|
||||
});
|
||||
|
||||
@@ -42,10 +42,10 @@ import qs from 'qs';
|
||||
// 接口-请求
|
||||
|
||||
//基础票数上传接口
|
||||
export const baseVoteupload = (obj) => http.post('/vote/baseVoteupload', obj,{
|
||||
export const baseVoteupload = (obj) => http.post('/vote/baseVoteupload', obj, {
|
||||
headers: {
|
||||
'token': '123',
|
||||
'Content-Type' : 'multipart/form-data',
|
||||
'Content-Type': 'multipart/form-data',
|
||||
|
||||
}
|
||||
})
|
||||
@@ -60,7 +60,7 @@ export const createVote = (obj) => http.post('/vote/createVote', obj)
|
||||
export const deleteVoteMessage = (obj) => http.post('/vote/deleteVoteMessage', { params: obj })
|
||||
|
||||
//删除题干信息接口
|
||||
export const deleteVoteStem = (obj) => http.post('/vote/deleteVoteStem', obj,{
|
||||
export const deleteVoteStem = (obj) => http.post('/vote/deleteVoteStem', obj, {
|
||||
headers: {
|
||||
'token': '123',
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
|
||||
@@ -74,12 +74,7 @@ export const deleteVoteStemOption = (obj) => http.post('/vote/deleteVoteStemOpti
|
||||
export const editVote = (obj) => http.post('/vote/editVote', obj)
|
||||
|
||||
//根据题干ID获取题干信息
|
||||
export const queryStemByStemId = (obj) => http.post('/vote/queryStemByStemId', obj,{
|
||||
headers: {
|
||||
'token': '123',
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
|
||||
}
|
||||
})
|
||||
export const queryStemByStemId = (ballotId) => http.post(`/vote/queryStemByStemId?ballotId=${ballotId}`)
|
||||
|
||||
//修改题干信息接口
|
||||
export const updateStemMessage = (obj) => http.post('/vote/updateStemMessage', obj);
|
||||
@@ -87,12 +82,7 @@ export const updateStemMessage = (obj) => http.post('/vote/updateStemMessage', o
|
||||
//上传组件
|
||||
export const fileUp = (obj) => http.post('/file/upload', obj, qs.stringify({ obj }));
|
||||
//根据题干ID获取投票任务
|
||||
export const queryVoteDetailById = (obj) => http.post('/vote/queryVoteDetailById', obj,{
|
||||
headers: {
|
||||
'token': '123',
|
||||
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8',
|
||||
}
|
||||
})
|
||||
export const queryVoteDetailById = (obj) => http.post('/vote/queryVoteDetailById', obj)
|
||||
|
||||
// 测试方法
|
||||
// import * as api from '../../api/index'
|
||||
|
||||
@@ -281,7 +281,7 @@ export default {
|
||||
.addTask({
|
||||
courseId: state.apiTaskList[i].casesId,
|
||||
name: state.apiTaskList[i].title,
|
||||
projectTemplateId: props.projectTemplateId,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId,
|
||||
stageId: Number(props.chooseStageId),
|
||||
type: 3,
|
||||
@@ -305,7 +305,7 @@ export default {
|
||||
duration: 0,
|
||||
flag: true,
|
||||
name: state.apiTaskList[i].caseName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId,
|
||||
projectTemplateId: props.projectTemplateId,
|
||||
stageId: props.chooseStageId || 0,
|
||||
type: 3,
|
||||
|
||||
@@ -128,7 +128,7 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTemplateId:{
|
||||
projectTemplateId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -165,7 +165,7 @@ export default {
|
||||
state.textV1 = "";
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
}
|
||||
};
|
||||
const queryDiscuss = () => {
|
||||
if (props.edit) {
|
||||
//编辑讨
|
||||
@@ -197,7 +197,6 @@ export default {
|
||||
type: 8,
|
||||
})
|
||||
.then(() => {
|
||||
|
||||
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -214,7 +213,6 @@ export default {
|
||||
type: 8,
|
||||
})
|
||||
.then(() => {
|
||||
|
||||
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -231,7 +229,6 @@ export default {
|
||||
type: 8,
|
||||
})
|
||||
.then(() => {
|
||||
|
||||
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
})
|
||||
.catch(() => {
|
||||
@@ -258,11 +255,11 @@ export default {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
message.destroy()
|
||||
message.destroy();
|
||||
message.success("创建讨论成功");
|
||||
})
|
||||
.catch(() => {
|
||||
message.destroy()
|
||||
message.destroy();
|
||||
message.error("创建讨论失败");
|
||||
});
|
||||
} else {
|
||||
@@ -272,11 +269,11 @@ export default {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
message.destroy()
|
||||
message.destroy();
|
||||
message.success("创建讨论成功");
|
||||
})
|
||||
.catch(() => {
|
||||
message.destroy()
|
||||
message.destroy();
|
||||
message.error("创建讨论失败");
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,49 +1,30 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="addfaceteachVisible"
|
||||
class="drawerStyle addfaceteachDrawer"
|
||||
width="90%"
|
||||
title="添加面授"
|
||||
placement="right"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<a-drawer :visible="addfaceteachVisible" class="drawerStyle addfaceteachDrawer" width="90%" title="添加面授"
|
||||
placement="right" @after-visible-change="afterVisibleChange">
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">添加面授</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer" />
|
||||
</div>
|
||||
<div class="contentMain">
|
||||
<div class="main_left">
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<span style="margin-right: 3px">课程名称:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="courseName"
|
||||
style="width: 384px; height: 32px"
|
||||
placeholder="请输入名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
<a-input v-model:value="courseName" style="width: 384px; height: 32px" placeholder="请输入名称"
|
||||
maxlength="20" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<span style="margin-right: 3px">选择课程:</span>
|
||||
</div>
|
||||
@@ -51,19 +32,16 @@
|
||||
<button class="xkbtn">
|
||||
{{ chooseCourse == null ? "选择" : "修改" }}面授课
|
||||
</button>
|
||||
<div v-if = "chooseCourse > 0">
|
||||
<a-tag closable color="processing" @close="logC">
|
||||
<span style="font-size:14px;line-height: 33px;" >删除课程</span>
|
||||
</a-tag></div>
|
||||
<div v-if="chooseCourse > 0">
|
||||
<a-tag closable color="processing" @close="logC">
|
||||
<span style="font-size:14px;line-height: 33px;">删除课程</span>
|
||||
</a-tag>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- 选择面授侧弹窗 -->
|
||||
<div>
|
||||
<sel-facet
|
||||
v-model:selfacetVisible="selfacetvisible"
|
||||
v-model:chooseCourse="chooseCourse"
|
||||
|
||||
/>
|
||||
<sel-facet v-model:selfacetVisible="selfacetvisible" v-model:chooseCourse="chooseCourse" />
|
||||
</div>
|
||||
<!-- 选择面授侧弹窗 -->
|
||||
</div>
|
||||
@@ -72,100 +50,59 @@
|
||||
<span style="margin-right: 3px">面授说明:</span>
|
||||
</div>
|
||||
<div class="textarea">
|
||||
<a-textarea
|
||||
v-model:value="description"
|
||||
placeholder="请输入说明"
|
||||
allow-clear
|
||||
maxlength="100"
|
||||
/>
|
||||
<a-textarea v-model:value="description" placeholder="请输入说明" allow-clear maxlength="100" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<span style="margin-right: 3px">授课教师:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-auto-complete
|
||||
v-model:value="memberValue.label"
|
||||
show-search
|
||||
:not-found-content="fetching ? undefined : null"
|
||||
placeholder="Select a teacher"
|
||||
style="width: 364px"
|
||||
:options="options"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
@change="handleChange2"
|
||||
@popupScroll="templateScroll"
|
||||
@search="handleSearch"
|
||||
></a-auto-complete>
|
||||
<a-auto-complete v-model:value="memberValue.label" placeholder="选择老师" style="width: 364px"
|
||||
:options="options" @search="handleSearch"></a-auto-complete>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<span style="margin-right: 3px">面授时间:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-range-picker
|
||||
v-model:value="chooseTime"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
/>
|
||||
<a-range-picker v-model:value="chooseTime" :placeholder="[' 开始时间', ' 结束时间']" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<span style="margin-right: 3px">面授时长:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input-number
|
||||
:min="0"
|
||||
:max="300"
|
||||
:precision="0"
|
||||
style="
|
||||
<a-input-number :min="0" :max="300" :precision="0" style="
|
||||
width: 364px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
v-model:value="duration"
|
||||
></a-input-number>
|
||||
" v-model:value="duration"></a-input-number>
|
||||
<span style="margin-left: 5px; width: 30px">分钟</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="sign">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<span style="margin-right: 3px">上课地址:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="address"
|
||||
style="width: 384px; height: 32px"
|
||||
placeholder="请输入上课地址"
|
||||
maxlength="100"
|
||||
/>
|
||||
<a-input v-model:value="address" style="width: 384px; height: 32px" placeholder="请输入上课地址"
|
||||
maxlength="100" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
@@ -174,42 +111,32 @@
|
||||
</div>
|
||||
<div class="kqszbox">
|
||||
<div class="qdqtbox">
|
||||
<div class="qdbtn"><div class="btntext">签到</div></div>
|
||||
<div class="qdbtn">
|
||||
<div class="btntext">签到</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setbox">
|
||||
<div class="timerbox">
|
||||
<span>开始前:</span>
|
||||
<a-input-number
|
||||
:min="0"
|
||||
:max="300"
|
||||
:precision="0"
|
||||
style="
|
||||
<a-input-number :min="0" :max="300" :precision="0" style="
|
||||
width: 100px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden; "
|
||||
v-model:value="before"
|
||||
></a-input-number>
|
||||
overflow: hidden; " v-model:value="before"></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||
</div>
|
||||
<div class="timerbox">
|
||||
<span>开始后:</span>
|
||||
<a-input-number
|
||||
:min="0"
|
||||
:max="300"
|
||||
:precision="0"
|
||||
style="
|
||||
<a-input-number :min="0" :max="300" :precision="0" style="
|
||||
width: 100px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;"
|
||||
v-model:value="afterStartValue"
|
||||
></a-input-number>
|
||||
overflow: hidden;" v-model:value="afterStartValue"></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -217,11 +144,11 @@
|
||||
<span style="margin-right: 3px">完成标准设置:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
|
||||
|
||||
<a-checkbox v-model:checked="onlySign" @click="onlySign=!onlySign">仅签到</a-checkbox>
|
||||
|
||||
|
||||
|
||||
|
||||
<a-checkbox v-model:checked="onlySign" @click="onlySign = !onlySign">仅签到</a-checkbox>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -229,9 +156,8 @@
|
||||
<span style="margin-right: 3px">其他设置:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-checkbox v-model:checked="completeLeave" @click="completeLeave=!completeLeave"
|
||||
>学员请假后记为任务完成</a-checkbox
|
||||
>
|
||||
<a-checkbox v-model:checked="completeLeave"
|
||||
@click="completeLeave = !completeLeave">学员请假后记为任务完成</a-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -239,8 +165,9 @@
|
||||
<span style="margin-right: 3px">现场参与:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-checkbox v-model:checked="innerPersion" @click="innerPersion=!innerPersion">允许项目内人员临时到场参加</a-checkbox>
|
||||
<a-checkbox v-model:checked="outPersion" @click="outPersion=!outPersion">允许项目外人员临时到场参加</a-checkbox>
|
||||
<a-checkbox v-model:checked="innerPersion"
|
||||
@click="innerPersion = !innerPersion">允许项目内人员临时到场参加</a-checkbox>
|
||||
<a-checkbox v-model:checked="outPersion" @click="outPersion = !outPersion">允许项目外人员临时到场参加</a-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
@@ -248,24 +175,21 @@
|
||||
<span style="margin-right: 3px">评估:</span>
|
||||
</div>
|
||||
<div class="btnbox2">
|
||||
<a-checkbox v-model:checked="needEval" @click="needEval=!needEval"
|
||||
>需要评估</a-checkbox >
|
||||
<a-checkbox v-model:checked="needEval" @click="needEval = !needEval">需要评估</a-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="needEval" class="main_item">
|
||||
<div class="signbox">
|
||||
<div class="signbox">
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<button class="xkbtn" @click="showAssessment">选择评估</button>
|
||||
<div v-if = "assessmentId >0 ">
|
||||
<a-tag closable color="processing" @close="logA">
|
||||
<span style="font-size:14px;line-height: 33px;" >删除评估</span>
|
||||
</a-tag></div>
|
||||
<AssessmentList
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
v-model:titleTag="titleTag"
|
||||
v-model:assessmentId="assessmentId"
|
||||
/>
|
||||
<div v-if="assessmentId > 0">
|
||||
<a-tag closable color="processing" @close="logA">
|
||||
<span style="font-size:14px;line-height: 33px;">删除评估</span>
|
||||
</a-tag>
|
||||
</div>
|
||||
<AssessmentList v-model:assessmentVisible="assessmentVisible" v-model:titleTag="titleTag"
|
||||
v-model:assessmentId="assessmentId" />
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -279,26 +203,23 @@
|
||||
</div>
|
||||
<div class="btnbox" @click="showDrawerAddHomework">
|
||||
<button class="xkbtn">配置</button>
|
||||
<div v-if = "EditWorkId >0">
|
||||
<a-tag closable color="processing" @close="logW">
|
||||
<span style="font-size:14px;line-height: 33px;" >删除作业</span>
|
||||
</a-tag></div>
|
||||
<div v-if="EditWorkId > 0">
|
||||
<a-tag closable color="processing" @close="logW">
|
||||
<span style="font-size:14px;line-height: 33px;">删除作业</span>
|
||||
</a-tag>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- 添加作业侧弹窗 -->
|
||||
<div>
|
||||
<add-homework
|
||||
v-model:addhomeworkVisible="addhomeworkvisible"
|
||||
@getWork="getWork"
|
||||
:faceLevel="true"
|
||||
v-model:EditWorkId="EditWorkId"
|
||||
/>
|
||||
<add-homework v-model:addhomeworkVisible="addhomeworkvisible" @getWork="getWork" :faceLevel="true"
|
||||
v-model:EditWorkId="EditWorkId" />
|
||||
</div>
|
||||
<!-- 添加作业侧弹窗 -->
|
||||
</div>
|
||||
<div>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
@@ -306,18 +227,16 @@
|
||||
</div>
|
||||
<div class="btnbox" @click="showDrawerAddTest">
|
||||
<button class="xkbtn">配置</button>
|
||||
<div v-if = "EditTestId >0">
|
||||
<a-tag closable color="processing" @close="logT">
|
||||
<span style="font-size:14px;line-height: 33px;" >删除考试</span>
|
||||
</a-tag></div>
|
||||
<div v-if="EditTestId > 0">
|
||||
<a-tag closable color="processing" @close="logT">
|
||||
<span style="font-size:14px;line-height: 33px;">删除考试</span>
|
||||
</a-tag>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!-- 添加考试侧弹窗 -->
|
||||
<div>
|
||||
<add-test v-model:addtestVisible="addtestvisible"
|
||||
v-model:EditTestId ="EditTestId"
|
||||
:faceLevel="true"
|
||||
/>
|
||||
<add-test v-model:addtestVisible="addtestvisible" v-model:EditTestId="EditTestId" :faceLevel="true" />
|
||||
</div>
|
||||
<!-- 添加考试侧弹窗 -->
|
||||
</div>
|
||||
@@ -326,13 +245,8 @@
|
||||
<span style="margin-right: 3px">附件:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-upload
|
||||
@change="handleChange"
|
||||
action="/manageApi/file/upload"
|
||||
v-model:file-list="fileList"
|
||||
>
|
||||
<button class="xkbtn">上传附件</button></a-upload
|
||||
>
|
||||
<a-upload @change="handleChange" action="/manageApi/file/upload" v-model:file-list="fileList">
|
||||
<button class="xkbtn">上传附件</button></a-upload>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -341,7 +255,7 @@
|
||||
<button class="btn1" @click="exitAdd">取消</button>
|
||||
<button class="btn2" @click="updateFaceTeach">确定</button>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
@@ -355,7 +269,7 @@ import { ProjectEditTask, RouterEditTask } from "@/api/indexTask";
|
||||
import { message } from "ant-design-vue";
|
||||
import { getMemberInfo } from "@/api/index1";
|
||||
import { debounce } from "lodash-es";
|
||||
import { queryFaceDetailById,editPlan } from "../../api/indexFace";
|
||||
import { queryFaceDetailById, editPlan } from "../../api/indexFace";
|
||||
import dayjs from "dayjs";
|
||||
import AssessmentList from "../drawers/ AssessmentList.vue";
|
||||
// import { toDate } from "../../api/method";、
|
||||
@@ -414,11 +328,11 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTemplateId:{
|
||||
projectTemplateId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const options = ref([]);
|
||||
@@ -427,8 +341,8 @@ export default {
|
||||
addhomeworkvisible: false,
|
||||
addtestvisible: false,
|
||||
memberValue: {
|
||||
value:"",
|
||||
label:""
|
||||
value: "",
|
||||
label: ""
|
||||
},
|
||||
fetching: false,
|
||||
totalPages: 0,
|
||||
@@ -437,45 +351,45 @@ export default {
|
||||
memberId: 0,
|
||||
pageSize: 10,
|
||||
courseName: "",
|
||||
duration:null,
|
||||
duration: null,
|
||||
address: null,
|
||||
before:null,
|
||||
afterStartValue:null,
|
||||
before: null,
|
||||
afterStartValue: null,
|
||||
description: "",
|
||||
chooseTime: [],
|
||||
fileList: [],
|
||||
chooseCourse: null, //选择的在线课程
|
||||
assessmentId:null,
|
||||
EditTestId:null,
|
||||
EditWorkId:null,
|
||||
assessmentVisible:false,
|
||||
needEval:false,
|
||||
onlySign:false,
|
||||
completeLeave:false,
|
||||
innerPersion:false,
|
||||
outPersion:false,
|
||||
|
||||
assessmentId: null,
|
||||
EditTestId: null,
|
||||
EditWorkId: null,
|
||||
assessmentVisible: false,
|
||||
needEval: false,
|
||||
onlySign: false,
|
||||
completeLeave: false,
|
||||
innerPersion: false,
|
||||
outPersion: false,
|
||||
|
||||
});
|
||||
const clear = () => {
|
||||
state.courseName = "";
|
||||
state.memberValue = {};
|
||||
state.duration = null;
|
||||
state.address = null;
|
||||
state.before=null;
|
||||
state.afterStartValue=null;
|
||||
state.before = null;
|
||||
state.afterStartValue = null;
|
||||
state.chooseTime = [];
|
||||
state.description ="";
|
||||
state.onlySign =false;
|
||||
state.completeLeave =false;
|
||||
state.innerPersion =false;
|
||||
state.outPersion =false;
|
||||
state.description = "";
|
||||
state.onlySign = false;
|
||||
state.completeLeave = false;
|
||||
state.innerPersion = false;
|
||||
state.outPersion = false;
|
||||
state.chooseCourse = null;
|
||||
state.EditTestId =null;
|
||||
state.assessmentId=null;
|
||||
state.EditWorkId=null;
|
||||
state.EditEvalId=null;
|
||||
state.applyFlag="";
|
||||
state.needEval=false;
|
||||
state.EditTestId = null;
|
||||
state.assessmentId = null;
|
||||
state.EditWorkId = null;
|
||||
state.EditEvalId = null;
|
||||
state.applyFlag = "";
|
||||
state.needEval = false;
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addfaceteachVisible", false);
|
||||
@@ -487,24 +401,24 @@ export default {
|
||||
if (bool && props.edit) {
|
||||
// 该页面显示同时 edit为true 时,发送查询请求,
|
||||
queryFaceTeach();
|
||||
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
const logC= e => {
|
||||
state.chooseCourse=null;
|
||||
const logC = e => {
|
||||
state.chooseCourse = null;
|
||||
console.log(e);
|
||||
};
|
||||
const logW = e => {
|
||||
state.EditWorkId=null;
|
||||
state.EditWorkId = null;
|
||||
console.log(e);
|
||||
};
|
||||
const logT= e => {
|
||||
state.EditTestId=null;
|
||||
const logT = e => {
|
||||
state.EditTestId = null;
|
||||
console.log(e);
|
||||
};
|
||||
const logA= e => {
|
||||
state.EditEvalId=null;
|
||||
const logA = e => {
|
||||
state.EditEvalId = null;
|
||||
console.log(e);
|
||||
};
|
||||
|
||||
@@ -513,7 +427,7 @@ export default {
|
||||
};
|
||||
const showDrawerAddHomework = () => {
|
||||
state.addhomeworkvisible = true;
|
||||
|
||||
|
||||
};
|
||||
const showDrawerAddTest = () => {
|
||||
state.addtestvisible = true;
|
||||
@@ -522,14 +436,14 @@ export default {
|
||||
|
||||
//查询面授
|
||||
const queryFaceTeach = () => {
|
||||
|
||||
|
||||
queryFaceDetailById(props.EditFaceId).then((res) => {
|
||||
console.log("获取到了面授课开课详情", res.data.data);
|
||||
let result = res.data.data;
|
||||
state.courseName = result.name;
|
||||
state.description = result.description;
|
||||
state.memberValue= {value:result.teacherId,label:result.teacher}
|
||||
state.duration =result.duration;
|
||||
state.memberValue = { value: result.teacherId, label: result.teacher }
|
||||
state.duration = result.duration;
|
||||
if (result.beginTime && result.endTime) {
|
||||
state.chooseTime = [
|
||||
dayjs(result.beginTime, "YYYY-MM-DD"),
|
||||
@@ -539,21 +453,21 @@ export default {
|
||||
state.chooseTime = [];
|
||||
}
|
||||
state.address = result.address;
|
||||
state.before =result.beforeStart;
|
||||
state.before = result.beforeStart;
|
||||
state.afterStartValue = result.afterStart;
|
||||
state.fileList = JSON.parse(result.attach);
|
||||
state.EditWorkId = result.homeWorkId;
|
||||
state.onlySign = result.completeType.split(",")[0]=="1"?true:false;
|
||||
state.completeLeave =result.completeType.split(",")[1]=="1"?true:false;
|
||||
state.chooseCourse =result.offcourseId;
|
||||
state.innerPersion = result.projectMember.split(",")[0]=="1"?true:false;
|
||||
state.outPersion = result.projectMember.split(",")[1]=="1"?true:false;
|
||||
state.onlySign = result.completeType.split(",")[0] == "1" ? true : false;
|
||||
state.completeLeave = result.completeType.split(",")[1] == "1" ? true : false;
|
||||
state.chooseCourse = result.offcourseId;
|
||||
state.innerPersion = result.projectMember.split(",")[0] == "1" ? true : false;
|
||||
state.outPersion = result.projectMember.split(",")[1] == "1" ? true : false;
|
||||
state.EditTestId = result.testId;
|
||||
state.EditWorkId=result.homeWorkId;
|
||||
state.assessmentId =result.evaluateId;
|
||||
state.EditWorkId = result.homeWorkId;
|
||||
state.assessmentId = result.evaluateId;
|
||||
state.needEval = result.evaluateId;
|
||||
|
||||
console.log("state=======",state);
|
||||
console.log("state=======", state);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -565,7 +479,7 @@ export default {
|
||||
//新建或编辑面授
|
||||
// 新增任务
|
||||
const updateFaceTeach = () => {
|
||||
|
||||
|
||||
if (
|
||||
state.courseName == "" ||
|
||||
state.chooseCourse == null ||
|
||||
@@ -573,42 +487,42 @@ export default {
|
||||
state.chooseTime == [] ||
|
||||
state.duration == "" ||
|
||||
state.address == ""
|
||||
|
||||
|
||||
) {
|
||||
message.destroy();
|
||||
return message.warning("请输入必填字段");
|
||||
} else {
|
||||
let type =state.onlySign ? "1,":"0,";
|
||||
let t = state.completeLeave?"1":"0";
|
||||
let p=state.innerPersion?"1,":"0,";
|
||||
let p1=state.outPersion?"1":"0";
|
||||
let type = state.onlySign ? "1," : "0,";
|
||||
let t = state.completeLeave ? "1" : "0";
|
||||
let p = state.innerPersion ? "1," : "0,";
|
||||
let p1 = state.outPersion ? "1" : "0";
|
||||
let obj = {
|
||||
teacherId:state.memberValue.value,
|
||||
teacher:state.memberValue.label,
|
||||
address:state.address,
|
||||
teacherId: state.memberValue.value,
|
||||
teacher: state.memberValue.label,
|
||||
address: state.address,
|
||||
applyFlag: state.applyFlag,
|
||||
attach: JSON.stringify(state.fileList),
|
||||
afterStart:state.afterStartValue || 0,
|
||||
beforeStart:state.before || 0,
|
||||
beginTime: parseInt( new Date(state.chooseTime[0].$d).getTime() / 1000),
|
||||
completeType:type.concat(t),
|
||||
afterStart: state.afterStartValue || 0,
|
||||
beforeStart: state.before || 0,
|
||||
beginTime: parseInt(new Date(state.chooseTime[0].$d).getTime() / 1000),
|
||||
completeType: type.concat(t),
|
||||
description: state.description,
|
||||
endTime: parseInt(new Date(state.chooseTime[1].$d).getTime() / 1000),
|
||||
evalFlag:state.needEval?1:0,
|
||||
evaluateId:state.assessmentId,
|
||||
evalFlag: state.needEval ? 1 : 0,
|
||||
evaluateId: state.assessmentId,
|
||||
homeWorkId: state.EditWorkId,
|
||||
name: state.courseName,
|
||||
projectMember:p.concat(p1),
|
||||
offcourseId:state.chooseCourse,
|
||||
offcoursePlanId:props.EditFaceId >0 ? props.EditFaceId : 0,
|
||||
projectMember: p.concat(p1),
|
||||
offcourseId: state.chooseCourse,
|
||||
offcoursePlanId: props.EditFaceId > 0 ? props.EditFaceId : 0,
|
||||
testId: state.EditTestId
|
||||
};
|
||||
console.log("obj============",obj,"6"+"9");
|
||||
|
||||
console.log("obj============", obj, "6" + "9");
|
||||
|
||||
editPlan(obj)
|
||||
.then((res) => {
|
||||
message.destroy();
|
||||
message.error(`添加成功`);
|
||||
message.sucsess(`添加成功`);
|
||||
updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
@@ -624,7 +538,7 @@ export default {
|
||||
//更新任务列表
|
||||
// 新增编辑或新增项目任务
|
||||
const updateTask = (res) => {
|
||||
console.log("props.isLevel=====",props.isLevel);
|
||||
console.log("props.isLevel=====", props.isLevel);
|
||||
if (props.isLevel == 1) {
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
@@ -637,7 +551,7 @@ export default {
|
||||
RouterEditTask(editObj1)
|
||||
.then(() => {
|
||||
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
|
||||
|
||||
// state.addLoading = false;
|
||||
closeDrawer();
|
||||
})
|
||||
@@ -657,8 +571,8 @@ export default {
|
||||
// 新增编辑或新增项目
|
||||
ProjectEditTask(editObj)
|
||||
.then(() => {
|
||||
message.success( `${props.EditFaceId ? "编辑" : "新增"}阶段任务成功` );
|
||||
|
||||
message.success(`${props.EditFaceId ? "编辑" : "新增"}阶段任务成功`);
|
||||
|
||||
})
|
||||
.catch(() => {
|
||||
//message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);
|
||||
@@ -669,14 +583,14 @@ export default {
|
||||
courseId: res.data.data.offcoursePlanId,
|
||||
name: res.data.data.name,
|
||||
duration: res.data.data.duration,
|
||||
projectTemplateId:props.projectTemplateId,
|
||||
projectTemplateId: props.projectTemplateId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId || 0,
|
||||
type: 2,
|
||||
})
|
||||
.then(() => {
|
||||
//message.success(`${props.EditFaceId ? "编辑" : "新增"}阶段任务成功` );
|
||||
|
||||
|
||||
})
|
||||
.catch(() => {
|
||||
//message.error(`${props.EditFaceId ? "编辑" : "新增"}阶段任务失败`);
|
||||
@@ -792,6 +706,7 @@ export default {
|
||||
.ant-table-striped :deep(.table-striped) td {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
|
||||
.addfaceteachDrawer {
|
||||
.drawerMain {
|
||||
.header {
|
||||
@@ -801,6 +716,7 @@ export default {
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
flex-shrink: 0;
|
||||
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
@@ -809,14 +725,17 @@ export default {
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
|
||||
.contentMain {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
.main_left {
|
||||
height: 1080px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -909,14 +828,14 @@ export default {
|
||||
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
width: 130px;
|
||||
height: 40px;
|
||||
background: #388be1;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-right: 16px 8px 32px 0;
|
||||
color: #fff;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -930,16 +849,19 @@ export default {
|
||||
align-items: center;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
justify-content: end;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.btnbox {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
align-items: center;
|
||||
|
||||
.xkbtn {
|
||||
cursor: pointer;
|
||||
width: 130px;
|
||||
@@ -954,6 +876,7 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
@@ -963,6 +886,7 @@ export default {
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
@@ -972,6 +896,7 @@ export default {
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
|
||||
@@ -169,7 +169,7 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
projectTemplateId:{
|
||||
projectTemplateId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -182,6 +182,7 @@ export default {
|
||||
});
|
||||
const state = reactive({
|
||||
addLoading: false,
|
||||
workEnclosureAddress:"",
|
||||
});
|
||||
const formRef = ref();
|
||||
|
||||
@@ -252,6 +253,8 @@ export default {
|
||||
const handleChange = (info) => {
|
||||
if (info.file.status !== "uploading") {
|
||||
console.log(info.file, info.fileList);
|
||||
state.workEnclosureAddress = info.fileList[0].response.data;
|
||||
console.log('state.workEnclosureAddress',state.workEnclosureAddress);
|
||||
}
|
||||
|
||||
if (info.file.status === "done") {
|
||||
@@ -263,21 +266,20 @@ export default {
|
||||
|
||||
const fileList = ref([]);
|
||||
const closeDrawer = () => {
|
||||
|
||||
|
||||
formState.choosedTime = "";
|
||||
ctx.emit("update:addhomeworkVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
ctx.emit("update:EditWorkId", state.EditWorkId);
|
||||
console.log("state.EditWorkId==============",state.EditWorkId);
|
||||
console.log("state.EditWorkId==============", state.EditWorkId);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
fileList.value = [];
|
||||
state.workEnclosureAddress = "";
|
||||
resetForm();
|
||||
};
|
||||
const afterVisibleChange = () => {
|
||||
if (props.EditWorkId >0) {
|
||||
state.EditWorkId = props.EditWorkId;
|
||||
if (props.EditWorkId > 0) {
|
||||
state.EditWorkId = props.EditWorkId;
|
||||
queryWork();
|
||||
}
|
||||
};
|
||||
@@ -287,14 +289,15 @@ export default {
|
||||
let obj = {
|
||||
submitEndTime: dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
submitStartTime: dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
workEnclosureAddress: "",
|
||||
workEnclosureAddress: state.workEnclosureAddress ? state.workEnclosureAddress : "" ,
|
||||
workId: props.edit ? props.EditWorkId : 0,
|
||||
workName: formState.workName,
|
||||
workRequirement: formState.workRequirement,
|
||||
};
|
||||
if (props.EditWorkId >0) {
|
||||
if (props.EditWorkId > 0) {
|
||||
updateWorkTaskUsing(obj)
|
||||
.then((res) => {
|
||||
// console.log("添加成功", res);
|
||||
updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
@@ -306,6 +309,7 @@ export default {
|
||||
} else {
|
||||
createWorkTask(obj)
|
||||
.then((res) => {
|
||||
console.log("添加成功", res);
|
||||
updateTask(res);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
@@ -336,77 +340,80 @@ export default {
|
||||
};
|
||||
// 新增编辑或新增项目任务
|
||||
const updateTask = (res) => {
|
||||
|
||||
if(props.faceLevel){
|
||||
state.EditWorkId = res.data.data.workId
|
||||
|
||||
}else{
|
||||
if (props.faceLevel) {
|
||||
state.EditWorkId = res.data.data.workId;
|
||||
} else {
|
||||
if (props.isLevel == 1) {
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 4,
|
||||
};
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 4,
|
||||
};
|
||||
|
||||
RouterEditTask(editObj1)
|
||||
.then(() => {
|
||||
//message.success(`${props.EditWorkId > 0 ? "编辑" : "新增"}关卡任务成功`);
|
||||
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
//message.error(`${props.EditWorkId > 0 ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
let editObj = {
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
projectId: props.EditWorkId > 0 ? props.projectId : 0,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId || 0 ,
|
||||
type: 4,
|
||||
};
|
||||
ProjectEditTask(editObj)
|
||||
.then(() => {
|
||||
//message.success(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务成功`);
|
||||
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
//message.error(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("projectTemplateId,===",props.projectTemplateId);
|
||||
addTempTask({
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
projectTemplateId:props.projectTemplateId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId || 0,
|
||||
type: 4,
|
||||
})
|
||||
.then(() => {
|
||||
//message.success(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务成功`);
|
||||
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
//message.error(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
}
|
||||
RouterEditTask(editObj1)
|
||||
.then(() => {
|
||||
//message.success(`${props.EditWorkId > 0 ? "编辑" : "新增"}关卡任务成功`);
|
||||
|
||||
state.addLoading = false;
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch(() => {
|
||||
//message.error(`${props.EditWorkId > 0 ? "编辑" : "新增"}关卡任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
let editObj = {
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
projectId: props.projectId > 0 ? props.projectId : 0,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId || 0,
|
||||
type: 4,
|
||||
};
|
||||
console.log("editObj", editObj);
|
||||
ProjectEditTask(editObj)
|
||||
.then((res) => {
|
||||
//message.success(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务成功`);
|
||||
console.log("chenggong", res);
|
||||
state.addLoading = false;
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("shibaii", err);
|
||||
//message.error(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("projectTemplateId,===", props.projectTemplateId);
|
||||
addTempTask({
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
projectTemplateId: props.projectTemplateId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId || 0,
|
||||
type: 4,
|
||||
})
|
||||
.then(() => {
|
||||
//message.success(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
closeDrawer();
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
//message.error(`${props.EditWorkId > 0 ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const cle = () => {
|
||||
console.log("xx", formState);
|
||||
let obj = {
|
||||
submitEndTime: dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
submitStartTime: dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
workEnclosureAddress: "",
|
||||
workEnclosureAddress: state.workEnclosureAddress ? state.workEnclosureAddress : "" ,
|
||||
workId: props.EditWorkId > 0 ? props.EditWorkId : 0,
|
||||
workName: formState.workName,
|
||||
workRequirement: formState.workRequirement,
|
||||
|
||||
@@ -122,42 +122,41 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="mbl_items2">
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">直播封面</span>
|
||||
<div class="item_nam">
|
||||
<div class="asterisk_icon">
|
||||
<img
|
||||
src="@/assets/images/coursewareManage/asterisk.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
<span style="margin-right: 14px">直播封面</span>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
<a-upload
|
||||
name="avatar"
|
||||
list-type="picture-card"
|
||||
class="avatar-uploader"
|
||||
:show-upload-list="false"
|
||||
:before-upload="beforeUpload"
|
||||
>
|
||||
<img
|
||||
class="i_upload_img"
|
||||
v-if="imageUrl"
|
||||
:src="imageUrl"
|
||||
alt="avatar"
|
||||
/>
|
||||
<div class="i_upload" v-else>
|
||||
<div class="addimg">
|
||||
<div class="heng"></div>
|
||||
<div class="shu"></div>
|
||||
</div>
|
||||
<div class="item_inp">
|
||||
|
||||
<a-upload
|
||||
name="avatar"
|
||||
list-type="picture-card"
|
||||
class="avatar-uploader"
|
||||
:show-upload-list="false"
|
||||
:before-upload="beforeUpload"
|
||||
>
|
||||
<img
|
||||
class="i_upload_img"
|
||||
v-if="imageUrl"
|
||||
:src="imageUrl"
|
||||
alt="avatar"
|
||||
/>
|
||||
<div class="i_upload" v-else>
|
||||
<div class="addimg">
|
||||
<div class="heng"></div>
|
||||
<div class="shu"></div>
|
||||
</div>
|
||||
</div>
|
||||
</a-upload>
|
||||
<div class="i_bottom">
|
||||
<div class="tip">支持图片格式为jpg/jpeg/png 图片最大为2MB</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-upload>
|
||||
<div class="i_bottom">
|
||||
<div class="tip">支持图片格式为jpg/jpeg/png 图片最大为2MB</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main_item" style="margin-top: -10px">
|
||||
<div class="signbox">
|
||||
@@ -179,7 +178,7 @@
|
||||
<a-switch v-model:checked="switchC1" @click="PlayBack" />
|
||||
</div>
|
||||
</div>
|
||||
<div v-if ="switchC1">
|
||||
<div v-if="switchC1">
|
||||
<div class="main_item">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">回放链接:</span>
|
||||
@@ -199,29 +198,32 @@
|
||||
<span style="margin-right: 3px">评估:</span>
|
||||
</div>
|
||||
<div class="btnbox2">
|
||||
<a-checkbox v-model:checked="needEval" @click="needEval=!needEval"
|
||||
>需要评估</a-checkbox >
|
||||
<a-checkbox
|
||||
v-model:checked="needEval"
|
||||
@click="needEval = !needEval"
|
||||
>需要评估</a-checkbox
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="needEval" class="main_item">
|
||||
<div class="signbox">
|
||||
</div>
|
||||
<div class="signbox"></div>
|
||||
<div class="btnbox">
|
||||
<button class="xkbtn" @click="showAssessment">选择评估</button>
|
||||
<div v-if = "assessmentId >0 ">
|
||||
<a-tag closable color="processing" @close="logA">
|
||||
<span style="font-size:14px;line-height: 33px;" >删除评估</span>
|
||||
</a-tag></div>
|
||||
<AssessmentList
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
v-model:titleTag="titleTag"
|
||||
v-model:assessmentId="assessmentId"
|
||||
/>
|
||||
|
||||
<div v-if="assessmentId > 0">
|
||||
<a-tag closable color="processing" @close="logA">
|
||||
<span style="font-size: 14px; line-height: 33px"
|
||||
>删除评估</span
|
||||
>
|
||||
</a-tag>
|
||||
</div>
|
||||
<AssessmentList
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
v-model:titleTag="titleTag"
|
||||
v-model:assessmentId="assessmentId"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="main_item2">
|
||||
<div class="signbox">
|
||||
<span style="margin-right: 3px">考勤设置:</span>
|
||||
@@ -346,8 +348,8 @@ function getBase64(img, callback) {
|
||||
|
||||
export default {
|
||||
name: "AddLive",
|
||||
components:{
|
||||
AssessmentList
|
||||
components: {
|
||||
AssessmentList,
|
||||
},
|
||||
props: {
|
||||
addliveVisible: {
|
||||
@@ -394,7 +396,7 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTemplateId:{
|
||||
projectTemplateId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -409,8 +411,8 @@ export default {
|
||||
fetching: false,
|
||||
totalPages: 0,
|
||||
memberValue: {
|
||||
value:"",
|
||||
label:""
|
||||
value: "",
|
||||
label: "",
|
||||
}, // 授课老师关键词
|
||||
inputV1: "", //*直播名称
|
||||
time: "", //*直播时间
|
||||
@@ -434,9 +436,9 @@ export default {
|
||||
obj: {}, //要传的obj数据
|
||||
assessment: [], //评估信息
|
||||
assessmentvalue: null,
|
||||
needEval:false,
|
||||
otherSettings:false,
|
||||
assessmentVisible:false,
|
||||
needEval: false,
|
||||
otherSettings: false,
|
||||
assessmentVisible: false,
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addliveVisible", false);
|
||||
@@ -455,14 +457,14 @@ export default {
|
||||
state.textV1 = "";
|
||||
state.switchC1 = "";
|
||||
state.imageUrl = "";
|
||||
state.needEval=false;
|
||||
state.needEval = false;
|
||||
state.otherSettings;
|
||||
ctx.emit("changeData", false);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
localStorage.setItem("chapterId", props.isactive);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if (props.edit&&bool) {
|
||||
if (props.edit && bool) {
|
||||
queryLive();
|
||||
}
|
||||
api
|
||||
@@ -512,7 +514,6 @@ export default {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
const cloradio1 = (value) => {
|
||||
if (state.radioV1 === value.target._value) {
|
||||
state.radioV1 = "";
|
||||
@@ -579,12 +580,12 @@ export default {
|
||||
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("props.projectTemplateId",props.projectTemplateId);
|
||||
console.log("props.projectTemplateId", props.projectTemplateId);
|
||||
addTempTask({
|
||||
courseId: res.data.data.liveId,
|
||||
duration: res.data.data.duration,
|
||||
name: res.data.data.liveName,
|
||||
projectTemplateId:props.projectTemplateId,
|
||||
projectTemplateId: props.projectTemplateId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId || 0,
|
||||
type: 6,
|
||||
@@ -599,9 +600,8 @@ export default {
|
||||
}
|
||||
};
|
||||
const showAssessment = () => {
|
||||
|
||||
state.assessmentVisible = true;
|
||||
console.log("hshs======",state.assessmentVisible);
|
||||
console.log("hshs======", state.assessmentVisible);
|
||||
};
|
||||
//创建直播
|
||||
const updateLiveBroadcast = () => {
|
||||
@@ -651,7 +651,7 @@ export default {
|
||||
otherSettings: state.otherSettings, //1或0
|
||||
signOutTime: state.inputV8,
|
||||
standardSettings: state.radioV1, //1或2
|
||||
isEvaluate:state.eedEval ? "1":"0",
|
||||
isEvaluate: state.eedEval ? "1" : "0",
|
||||
};
|
||||
if (props.edit) {
|
||||
api
|
||||
@@ -697,14 +697,14 @@ export default {
|
||||
image.src = reader.result;
|
||||
image.onload = () => {
|
||||
const formData = new FormData();
|
||||
formData.append("file", file);
|
||||
console.log(file);
|
||||
fileUp(formData).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
state.imageUrl = res.data.data;
|
||||
}
|
||||
});
|
||||
return resolve(true);
|
||||
formData.append("file", file);
|
||||
console.log(file);
|
||||
fileUp(formData).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
state.imageUrl = res.data.data;
|
||||
}
|
||||
});
|
||||
return resolve(true);
|
||||
};
|
||||
};
|
||||
|
||||
@@ -779,7 +779,7 @@ export default {
|
||||
state.discussSettings = "false";
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
afterVisibleChange,
|
||||
@@ -924,62 +924,61 @@ export default {
|
||||
}
|
||||
}
|
||||
.mbl_items2 {
|
||||
display: flex;
|
||||
align-items: start;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
.i_bottom{
|
||||
margin-bottom: 30px;
|
||||
display: flex;
|
||||
align-items: start;
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
.i_bottom {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
.item_nam {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
white-space: nowrap;
|
||||
.asterisk_icon {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-right: 5px;
|
||||
margin-top: -15px;
|
||||
}
|
||||
}
|
||||
.item_inp {
|
||||
flex: 1;
|
||||
.i_upload_img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.i_upload {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
.addimg {
|
||||
position: relative;
|
||||
.heng {
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
left: 25px;
|
||||
width: 50px;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
.item_nam {
|
||||
width: 100px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
white-space: nowrap;
|
||||
.asterisk_icon {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
margin-right: 5px;
|
||||
margin-top: -15px;
|
||||
}
|
||||
}
|
||||
.item_inp {
|
||||
flex: 1;
|
||||
.i_upload_img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border-radius: 8px;
|
||||
}
|
||||
.i_upload {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
text-align: center;
|
||||
align-items: center;
|
||||
cursor: pointer;
|
||||
.addimg {
|
||||
position: relative;
|
||||
.heng {
|
||||
position: absolute;
|
||||
top: 50px;
|
||||
left: 25px;
|
||||
width: 50px;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
.shu {
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
left: 50px;
|
||||
height: 50px;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
.shu {
|
||||
position: absolute;
|
||||
top: 25px;
|
||||
left: 50px;
|
||||
height: 50px;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_btns {
|
||||
|
||||
@@ -24,13 +24,14 @@
|
||||
>
|
||||
系统考试
|
||||
</button>
|
||||
<button
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <button
|
||||
style="width: 100px"
|
||||
@click="changeOuter(2)"
|
||||
:class="[isOuter == 2 ? 'outer' : 'notOuter']"
|
||||
>
|
||||
外部考试
|
||||
</button>
|
||||
</button> -->
|
||||
</div>
|
||||
<a-form
|
||||
v-if="isOuter == 1"
|
||||
|
||||
@@ -95,6 +95,9 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="sign" style="position:relative;left:70px;top:-3px;">
|
||||
<img src="@/assets/images/coursewareManage/asterisk.png" alt="" />
|
||||
</div>
|
||||
<div class="setc_name"><span>审核意见:</span></div>
|
||||
<div class="setc_main">
|
||||
<a-textarea v-model:value="valueSuggest" :rows="4" />
|
||||
@@ -258,6 +261,12 @@ export default {
|
||||
state.showDetail = !state.showDetail;
|
||||
};
|
||||
const subMit = () => {
|
||||
|
||||
if (state.valueSuggest == null || state.valueSuggest == undefined || state.valueSuggest == "") {
|
||||
message.destroy();
|
||||
message.error("请输入审核意见");
|
||||
return
|
||||
}
|
||||
auditView({
|
||||
createId: props.chooseCreateId,
|
||||
createName: props.chooseCreater,
|
||||
|
||||
@@ -386,7 +386,7 @@ export default {
|
||||
}
|
||||
|
||||
let obj = {
|
||||
voteId: props.edit?state.EditVoteId : 0,
|
||||
voteId: props.edit?props.EditVoteId : 0,
|
||||
voteName: state.inputV1,
|
||||
voteStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"),
|
||||
voteEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"),
|
||||
|
||||
@@ -1,20 +1,12 @@
|
||||
<!-- 评估管理-创建评估页面 -->
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="createVoteVisible"
|
||||
class="drawerStyle createvoteDrawer"
|
||||
width="100%"
|
||||
placement="right"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<a-drawer :visible="createVoteVisible" class="drawerStyle createvoteDrawer" width="100%" placement="right"
|
||||
@after-visible-change="afterVisibleChange">
|
||||
<div class="researchadd">
|
||||
<div class="header">
|
||||
<div class="headerTitle">创建投票</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
<img style="width: 29px; height: 29px; cursor: pointer" src="../../assets/images/basicinfo/close.png"
|
||||
@click="closeDrawer" />
|
||||
</div>
|
||||
<div class="main_left">
|
||||
<div class="main_item">
|
||||
@@ -25,12 +17,8 @@
|
||||
<span style="margin-right: 3px">投票名称:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input
|
||||
v-model:value="ballotName"
|
||||
style="width: 424px; height: 32px"
|
||||
placeholder="请输入任务名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
<a-input v-model:value="ballotName" style="width: 424px; height: 32px" placeholder="请输入任务名称"
|
||||
maxlength="20" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item">
|
||||
@@ -52,29 +40,20 @@
|
||||
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
<a-button
|
||||
type="primary"
|
||||
style="
|
||||
<a-button type="primary" style="
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border-radius: 8px;
|
||||
background-color: #409eff;
|
||||
"
|
||||
@click="handleSave"
|
||||
>
|
||||
" @click="handleSave">
|
||||
保存
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
ghost
|
||||
style="
|
||||
<a-button type="primary" ghost style="
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
margin-left: 14px;
|
||||
border-radius: 8px;
|
||||
"
|
||||
@click="handleAllCancel"
|
||||
>
|
||||
" @click="handleAllCancel">
|
||||
取消
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -84,21 +63,21 @@
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs } from "vue";
|
||||
import { message } from "ant-design-vue";
|
||||
import { message } from "ant-design-vue";
|
||||
// import { createResearch } from "../../api/indexResearch";
|
||||
import VoteQuestion from "./VoteQuestion.vue";
|
||||
|
||||
import {
|
||||
// sortBy,
|
||||
traverseArr,
|
||||
//filterCommon,
|
||||
//filterCommon,
|
||||
// deepCloneFilterString,
|
||||
} from "../../utils/utils";
|
||||
|
||||
//import store from "@/store";
|
||||
import * as api from "@/api/indexVote";
|
||||
//import { useRouter } from "vue-router";
|
||||
import {} from "@/api/indexResearch";
|
||||
import { } from "@/api/indexResearch";
|
||||
|
||||
//import { message } from "ant-design-vue";
|
||||
|
||||
@@ -126,17 +105,17 @@ export default {
|
||||
ballotId: "",
|
||||
ballotName: "",
|
||||
allFormsData: [],
|
||||
|
||||
|
||||
});
|
||||
// const router = useRouter();
|
||||
// const router = useRouter();
|
||||
const afterVisibleChange = () => {
|
||||
if(state.ballotId>0){
|
||||
if (props.ballotId) {
|
||||
getInfoDate();
|
||||
}else{
|
||||
} else {
|
||||
handleTypes();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:createVoteVisible", false);
|
||||
@@ -145,49 +124,49 @@ export default {
|
||||
};
|
||||
// 详情
|
||||
const getInfoDate = async () => {
|
||||
console.log("props.editChild=====",props.editChild);
|
||||
if (props.ballotId>0) {
|
||||
console.log("props.editChild2=====",props.editChild);
|
||||
console.log("props.editChild=====", props.editChild);
|
||||
if (props.ballotId) {
|
||||
console.log("props.editChild2=====", props.editChild);
|
||||
let res = await api
|
||||
.queryStemByStemId({ballotId:props.ballotId})
|
||||
.queryStemByStemId(props.ballotId)
|
||||
.then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
return res.data.data;
|
||||
}
|
||||
});
|
||||
console.log("res====",res);
|
||||
console.log("res====", res);
|
||||
state.ballotName = res.ballotId;
|
||||
// let renderArr = [...res];
|
||||
// let renderArr = [...res];
|
||||
// sortBy(renderArr, "orderNumber"); //序号
|
||||
state.allFormsData = parseData(res); //类型
|
||||
|
||||
console.log( state.allFormsData);
|
||||
console.log(state.allFormsData);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
// 转换成前端格式
|
||||
const parseData = (arr) => {
|
||||
const resultArr = [];
|
||||
state.ballotId = arr.ballotId;
|
||||
state.ballotName =arr.ballotName;
|
||||
|
||||
console.log("arr.voteStemVoList=====",arr.voteStemVoList);
|
||||
state.ballotName = arr.ballotName;
|
||||
|
||||
console.log("arr.voteStemVoList=====", arr.voteStemVoList);
|
||||
arr.voteStemVoList.forEach((item) => {
|
||||
let obj = {};
|
||||
let restList = traverseArr(item.optionDetailList, {
|
||||
inputVal: "optionName",
|
||||
imgVal: "optionPictureAddress",
|
||||
optionId: "optionId",
|
||||
voteStemId:"voteStemId",
|
||||
stem:"stem",
|
||||
voteStemId: "voteStemId",
|
||||
stem: "stem",
|
||||
}).map((itm, idx) => {
|
||||
itm.id = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
|
||||
obj = {
|
||||
voteStemId:item.voteStemId,
|
||||
voteStemId: item.voteStemId,
|
||||
valueSingle: item.voteStemName,
|
||||
singleList: restList,
|
||||
};
|
||||
@@ -199,20 +178,20 @@ export default {
|
||||
});
|
||||
return resultArr;
|
||||
};
|
||||
|
||||
// 转换成后端格式
|
||||
const restData = (arr) => {
|
||||
const resultArr = [];
|
||||
arr.forEach((item) => {
|
||||
let obj = {};
|
||||
console.log("item=======",item);
|
||||
// if (item[typeKey] === 1) {
|
||||
|
||||
// 转换成后端格式
|
||||
const restData = (arr) => {
|
||||
const resultArr = [];
|
||||
arr.forEach((item) => {
|
||||
let obj = {};
|
||||
console.log("item=======", item);
|
||||
// if (item[typeKey] === 1) {
|
||||
let restList = traverseArr(item.singleList, {
|
||||
optionName: "inputVal",
|
||||
optionPictureAddress: "imgVal",
|
||||
optionId: "optionId",
|
||||
voteStemId:"voteStemId",
|
||||
stem:"stem",
|
||||
voteStemId: "voteStemId",
|
||||
stem: "stem",
|
||||
}).map((itm, idx) => {
|
||||
itm.optionOrderNum = idx + 1;
|
||||
return itm;
|
||||
@@ -224,54 +203,54 @@ export default {
|
||||
});
|
||||
|
||||
obj = {
|
||||
|
||||
|
||||
voteStemName: item.valueSingle,
|
||||
optionDetailList: restList,
|
||||
voteStemId:item.voteStemId,
|
||||
|
||||
};
|
||||
resultArr.push(obj);
|
||||
// }
|
||||
console.log("resultArr=======",resultArr);
|
||||
|
||||
});
|
||||
resultArr.map((itm, idx) => {
|
||||
itm.orderNumber = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
return resultArr;
|
||||
};
|
||||
voteStemId: item.voteStemId,
|
||||
|
||||
// 解散传值
|
||||
const parseItem = (arrr) => {
|
||||
// const filterComObj = filterCommon(arr, "questionType");
|
||||
let resultObj = {};
|
||||
// for (let key in filterComObj) {
|
||||
// if (key === "1") {
|
||||
// let arrSingle = arrr
|
||||
//filterComObj[key];
|
||||
console.log("arrr======",arrr);
|
||||
/*
|
||||
let arr = [];
|
||||
arrSingle.forEach((item) => {
|
||||
console.log("item======",item);
|
||||
if (item.singleList.length) {
|
||||
item.singleList.forEach((itm) => {
|
||||
arr.push({
|
||||
...itm,
|
||||
optionName: item.optionName,
|
||||
optionOrderNum: item.optionOrderNum,
|
||||
|
||||
});
|
||||
};
|
||||
resultArr.push(obj);
|
||||
// }
|
||||
console.log("resultArr=======", resultArr);
|
||||
|
||||
});
|
||||
resultArr.map((itm, idx) => {
|
||||
itm.orderNumber = idx + 1;
|
||||
return itm;
|
||||
});
|
||||
return resultArr;
|
||||
};
|
||||
|
||||
// 解散传值
|
||||
const parseItem = (arrr) => {
|
||||
// const filterComObj = filterCommon(arr, "questionType");
|
||||
let resultObj = {};
|
||||
// for (let key in filterComObj) {
|
||||
// if (key === "1") {
|
||||
// let arrSingle = arrr
|
||||
//filterComObj[key];
|
||||
console.log("arrr======", arrr);
|
||||
/*
|
||||
let arr = [];
|
||||
arrSingle.forEach((item) => {
|
||||
console.log("item======",item);
|
||||
if (item.singleList.length) {
|
||||
item.singleList.forEach((itm) => {
|
||||
arr.push({
|
||||
...itm,
|
||||
optionName: item.optionName,
|
||||
optionOrderNum: item.optionOrderNum,
|
||||
|
||||
});
|
||||
}
|
||||
});*/
|
||||
resultObj.voteStemDtoList = arrr;
|
||||
// }
|
||||
console.log("resultObj======",resultObj);
|
||||
// }
|
||||
return resultObj;
|
||||
};
|
||||
});
|
||||
}
|
||||
});*/
|
||||
resultObj.voteStemDtoList = arrr;
|
||||
// }
|
||||
console.log("resultObj======", resultObj);
|
||||
// }
|
||||
return resultObj;
|
||||
};
|
||||
|
||||
|
||||
const handleTypes = () => {
|
||||
@@ -309,24 +288,24 @@ export default {
|
||||
};
|
||||
|
||||
const handleSave = () => {
|
||||
|
||||
|
||||
let resultPost = {};
|
||||
|
||||
|
||||
let filterData = parseItem(restData(state.allFormsData, "type"));
|
||||
|
||||
|
||||
if (!state.ballotName) {
|
||||
return message.warning("请输入投票名称");
|
||||
}
|
||||
// 校验s
|
||||
|
||||
|
||||
// 校验
|
||||
if (!checkVal(filterData)) {
|
||||
return false;
|
||||
}
|
||||
// checkVal(filterData);
|
||||
// checkVal(filterData);
|
||||
console.log(12121212);
|
||||
console.log(filterData);
|
||||
|
||||
|
||||
if (state.ballotId) {
|
||||
resultPost = {
|
||||
ballotId: state.ballotId,
|
||||
@@ -342,9 +321,9 @@ export default {
|
||||
console.log(resultPost);
|
||||
api.updateStemMessage(resultPost).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
state.ballotId=res.data.data.ballotId
|
||||
console.log("res.data.data==============",res.data.data);
|
||||
console.log("res.state.ballotId==============",state.ballotId);
|
||||
state.ballotId = res.data.data.ballotId
|
||||
console.log("res.data.data==============", res.data.data);
|
||||
console.log("res.state.ballotId==============", state.ballotId);
|
||||
message.success("编辑成功");
|
||||
closeDrawer();
|
||||
}
|
||||
@@ -360,44 +339,44 @@ export default {
|
||||
"assessmentMinScore",
|
||||
]);*/
|
||||
|
||||
console.log("=========",resultPost);
|
||||
console.log("=========", resultPost);
|
||||
api.createStemMessage(resultPost).then((res) => {
|
||||
if (res.data.code === 200) {
|
||||
state.ballotId=res.data.data.ballotId
|
||||
console.log("res.data.data2==============",res.data.data);
|
||||
console.log("res.state.ballotId=2s=============",state.ballotId);
|
||||
state.ballotId = res.data.data.ballotId
|
||||
console.log("res.data.data2==============", res.data.data);
|
||||
console.log("res.state.ballotId=2s=============", state.ballotId);
|
||||
message.success("创建成功");
|
||||
closeDrawer();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
const handleAllCancel = () => {
|
||||
state.allFormsData = [];
|
||||
};
|
||||
|
||||
|
||||
const checkVal = (filterData) => {
|
||||
console.log("filterData.====",filterData);
|
||||
console.log("filterData.voteStemVoList====",filterData.voteStemDtoList);
|
||||
|
||||
if(!filterData.voteStemDtoList){
|
||||
message.error("请添加题干");
|
||||
return false;
|
||||
}
|
||||
let arr = filterData.voteStemDtoList;
|
||||
arr.forEach((item) => {
|
||||
console.log("item===",item);
|
||||
console.log("!item.voteStemName===",!item.voteStemName);
|
||||
if (!item.voteStemName) {
|
||||
console.log("item.voteStemName===",item.voteStemName);
|
||||
message.error("题干为必填 请确认",item.voteStemName);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return true;
|
||||
console.log("filterData.====", filterData);
|
||||
console.log("filterData.voteStemVoList====", filterData.voteStemDtoList);
|
||||
|
||||
if (!filterData.voteStemDtoList) {
|
||||
message.error("请添加题干");
|
||||
return false;
|
||||
}
|
||||
let arr = filterData.voteStemDtoList;
|
||||
arr.forEach((item) => {
|
||||
console.log("item===", item);
|
||||
console.log("!item.voteStemName===", !item.voteStemName);
|
||||
if (!item.voteStemName) {
|
||||
console.log("item.voteStemName===", item.voteStemName);
|
||||
message.error("题干为必填 请确认", item.voteStemName);
|
||||
return false;
|
||||
}
|
||||
});
|
||||
return true;
|
||||
};
|
||||
|
||||
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
|
||||
@@ -3735,12 +3735,15 @@ export default defineComponent({
|
||||
//渲染学员管理操作
|
||||
const getTableDate2 = async () => {
|
||||
// let data2 = state.tableData7;
|
||||
let res = await studentList({
|
||||
let obj = {
|
||||
pageNo: state.currentPage3,
|
||||
pageSize: state.pageSize3,
|
||||
offcoursePlanId: state.offcoursePlanId,
|
||||
name: state.xygl_inputV1,
|
||||
});
|
||||
};
|
||||
// console.log("获取学员信息", obj);
|
||||
let res = await studentList(obj);
|
||||
// console.log("获取学员列表", res);
|
||||
const { rows, total } = res.data.data;
|
||||
state.tableDataTotal3 = total;
|
||||
rows.forEach((item, index) => {
|
||||
@@ -4822,6 +4825,7 @@ export default defineComponent({
|
||||
.then((res) => {
|
||||
console.log("添加学员成功", res);
|
||||
message.success("添加学员成功");
|
||||
getTableDate2();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("添加学员失败", err);
|
||||
|
||||
@@ -487,7 +487,6 @@ export default {
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
setFaceData([{}]);
|
||||
console.log("获取面授列表失败", err);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -1654,7 +1654,9 @@ export default {
|
||||
console.log("获取字典成功", res);
|
||||
if (res.status === 200) {
|
||||
if (param === "pathmapPic") {
|
||||
state.imgData = res.data.data.rows;
|
||||
if (res.data.data.rows.length > 0) {
|
||||
state.imgData = [res.data.data.rows[0]];
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -862,7 +862,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footbtn">
|
||||
<!-- <div class="footbtn">
|
||||
<div class="btnbox">
|
||||
<div class="btn btn2" @click="temporaryStorage">
|
||||
<div class="btnText">暂存</div>
|
||||
@@ -874,7 +874,7 @@
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- 添加学员抽屉 -->
|
||||
<add-stu v-model:AddSvisible="AddSvisible" />
|
||||
<!-- 导入学员抽屉 -->
|
||||
@@ -1089,18 +1089,18 @@ export default {
|
||||
},
|
||||
],
|
||||
tableData: [
|
||||
{
|
||||
key: 1,
|
||||
lei: "在线",
|
||||
routerTaskId: 0,
|
||||
// state: "已发布",
|
||||
creater: "管理者课程",
|
||||
// pubtime: "2022-07-20 14:00:03",
|
||||
cretime: "60分钟",
|
||||
haspub: false,
|
||||
checked1: false,
|
||||
checkedd: false,
|
||||
},
|
||||
// {
|
||||
// key: 1,
|
||||
// lei: "在线",
|
||||
// routerTaskId: 0,
|
||||
// // state: "已发布",
|
||||
// creater: "管理者课程",
|
||||
// // pubtime: "2022-07-20 14:00:03",
|
||||
// cretime: "60分钟",
|
||||
// haspub: false,
|
||||
// checked1: false,
|
||||
// checkedd: false,
|
||||
// },
|
||||
],
|
||||
tableData2: [
|
||||
{
|
||||
@@ -1495,7 +1495,6 @@ export default {
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
const showAddStu = () => {
|
||||
state.AddSvisible = true;
|
||||
};
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="content">
|
||||
<div class="main">
|
||||
<div class="main">s
|
||||
<div class="name">
|
||||
<div class="namebox">
|
||||
<img
|
||||
@@ -343,7 +343,8 @@
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="template">
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div class="template">
|
||||
<div class="name">
|
||||
<div class="inname" style="width: 50px">模版</div>
|
||||
<div class="in select" style="margin-left: 2px">
|
||||
@@ -381,7 +382,7 @@
|
||||
</a-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
|
||||
@@ -358,7 +358,8 @@
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="template">
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div class="template">
|
||||
<div class="name">
|
||||
<div class="inname" style="width: 50px">模版</div>
|
||||
<div class="in select" style="margin-left: 2px">
|
||||
@@ -396,7 +397,7 @@
|
||||
</a-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
@@ -486,6 +487,14 @@ export default {
|
||||
if (param === "projectSys") {
|
||||
classifyList4.value = res.data.data.rows;
|
||||
}
|
||||
if (
|
||||
classifyList.value &&
|
||||
imageUrl.value &&
|
||||
classifyList3.value &&
|
||||
classifyList4.value
|
||||
) {
|
||||
getDictInfo();
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -497,6 +506,26 @@ export default {
|
||||
getDictList("projectLevel");
|
||||
getDictList("projectSys");
|
||||
//获取分类、封面图、项目级别、培训分类---------------字典配置---------------------------
|
||||
//分类、封面图、项目级别、培训分类回显
|
||||
const getDictInfo = () => {
|
||||
if (routers.query.projectId) {
|
||||
// console.log("classifyList", classifyList.value, state.projectType);
|
||||
// //分类
|
||||
// let arr=classifyList.value
|
||||
// for(let i=0;i<arr.length;i++){
|
||||
// if(arr[i].){
|
||||
// }
|
||||
// }
|
||||
// state.classifySelect: null, //分类选择信息
|
||||
// state.projectType: null, //分类选择的id
|
||||
//imageUrl.value //封面图
|
||||
//levels.value //项目级别
|
||||
//state.classifySelect3 //项目级别
|
||||
//state.classifySelect4 //培训分类
|
||||
//systemid.value //培训分类id
|
||||
}
|
||||
};
|
||||
//分类、封面图、项目级别、培训分类回显
|
||||
|
||||
const isEdit = ref(false);
|
||||
let peojectID = ""; //项目id
|
||||
|
||||
@@ -37,7 +37,8 @@
|
||||
>
|
||||
</a-input>
|
||||
</div>
|
||||
<div class="select">
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div class="select">
|
||||
<a-select
|
||||
v-model:value="sProjectState"
|
||||
style="width: 270px"
|
||||
@@ -47,7 +48,7 @@
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="select">
|
||||
<a-date-picker
|
||||
v-model:value="sProjectTime"
|
||||
|
||||
@@ -343,7 +343,8 @@
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="template">
|
||||
<!-- 2022-11-30注释 后面放开 -->
|
||||
<!-- <div class="template">
|
||||
<div class="name">
|
||||
<div class="inname" style="width: 50px">模版</div>
|
||||
<div class="in select" style="margin-left: 2px">
|
||||
@@ -381,7 +382,7 @@
|
||||
</a-select>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="footer">
|
||||
<div class="btn">
|
||||
|
||||
@@ -687,7 +687,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footbtn">
|
||||
<!-- <div class="footbtn">
|
||||
<div class="btnbox">
|
||||
<div class="btn btn2" @click="temporaryStorage">
|
||||
<div class="btnText">暂存</div>
|
||||
@@ -699,7 +699,7 @@
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- 添加阶段弹窗 -->
|
||||
<div>
|
||||
@@ -1202,18 +1202,17 @@ export default {
|
||||
let data = tableData;
|
||||
let array = [];
|
||||
data.map((value) => {
|
||||
if(value.stageId!=0){
|
||||
if (value.stageId != 0) {
|
||||
let obj = {
|
||||
id: value.stageId,
|
||||
tit: value.name,
|
||||
name: value.remark,
|
||||
taskList: value.taskList,
|
||||
value: value.stageId,
|
||||
label: value.name,
|
||||
};
|
||||
array.push(obj);
|
||||
id: value.stageId,
|
||||
tit: value.name,
|
||||
name: value.remark,
|
||||
taskList: value.taskList,
|
||||
value: value.stageId,
|
||||
label: value.name,
|
||||
};
|
||||
array.push(obj);
|
||||
}
|
||||
|
||||
});
|
||||
state.level = array;
|
||||
};
|
||||
@@ -1369,30 +1368,39 @@ export default {
|
||||
|
||||
// console.log("stage",Object.prototype.toString.call(stage))
|
||||
getStageData(res.data.data.stageList);
|
||||
if (stage !== "null") {
|
||||
if (stage != null) {
|
||||
console.log(stage);
|
||||
let stageList = res.data.data.stageList; //阶段数组
|
||||
let result = stageList.find((item) => item.stageId == stage);
|
||||
console.log("又找到了", result);
|
||||
if(result!=null){
|
||||
getTableData(result.taskList);
|
||||
}else{
|
||||
//没有选中的阶段时,获取全部的任务
|
||||
console.log(stage);
|
||||
let stageList = res.data.data.stageList; //阶段数组
|
||||
if(stageList!=null){
|
||||
let taskListAll;
|
||||
stageList.forEach((item) => {
|
||||
taskListAll=[...item.taskList];
|
||||
});
|
||||
console.log("taskListAll",taskListAll);
|
||||
getTableData(taskListAll);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
//没有选中的阶段时,获取全部的任务
|
||||
} else{
|
||||
console.log(stage);
|
||||
let stageList = res.data.data.stageList; //阶段数组
|
||||
if(stageList!=null){
|
||||
let taskListAll =null;
|
||||
stageList.forEach((item) => {
|
||||
taskListAll =[taskListAll,...item.taskList];
|
||||
});
|
||||
console.log("taskListAll",taskListAll);
|
||||
getTableData(taskListAll);
|
||||
}
|
||||
|
||||
let stageList = res.data.data.stageList; //阶段数组
|
||||
if(stageList!=null){
|
||||
let taskListAll;
|
||||
stageList.forEach((item) => {
|
||||
taskListAll=[...item.taskList];
|
||||
});
|
||||
console.log("taskListAll",taskListAll);
|
||||
getTableData(taskListAll);
|
||||
}
|
||||
}
|
||||
|
||||
// 每次都获取了第一条taskList
|
||||
// let arr = res.data.data.stageList[0].taskList;
|
||||
// console.log("任务列表", stage, arr);
|
||||
@@ -1628,6 +1636,7 @@ export default {
|
||||
console.log("删除阶段成功", res);
|
||||
message.success("删除阶段成功");
|
||||
closeDeleteStage();
|
||||
localStorage.setItem("stageId", "")
|
||||
getTask();
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -1667,6 +1676,7 @@ export default {
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerAddHomework = (id, eleId) => {
|
||||
console.log("id222222", id, eleId);
|
||||
state.EditWorkId = id;
|
||||
state.projectTaskId = eleId;
|
||||
state.addhomeworkvisible = true;
|
||||
|
||||
@@ -1852,7 +1852,7 @@ export default {
|
||||
checkedBOEU: false, //是否BOEU实施
|
||||
radioV1: "",
|
||||
radioV2: "",
|
||||
activeKey: "4", //1:概览 2.任务...
|
||||
activeKey: "1", //1:概览 2.任务...
|
||||
activeKey1: "8", //8:学员管理 9:小组管理
|
||||
activeKey2: "3",
|
||||
activeKeyNotice: "11",
|
||||
|
||||
@@ -433,7 +433,6 @@
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditVoteId="EditVoteId"
|
||||
|
||||
v-model:ballotId="ballotId"
|
||||
/>
|
||||
</div>
|
||||
@@ -702,7 +701,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="footbtn">
|
||||
<!-- <div class="footbtn">
|
||||
<div class="btnbox">
|
||||
<div class="btn btn2" @click="temporaryStorage">
|
||||
<div class="btnText">暂存</div>
|
||||
@@ -714,7 +713,7 @@
|
||||
<div class="btnText">取消</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
|
||||
<!-- 添加阶段弹窗 -->
|
||||
<div>
|
||||
@@ -1351,7 +1350,7 @@ export default {
|
||||
? "投票"
|
||||
: "-",
|
||||
creater: value.name,
|
||||
cretime: Number(value.duration)>0 ? value.duration : "-",
|
||||
cretime: Number(value.duration) > 0 ? value.duration : "-",
|
||||
checked1: value.flag ? true : false,
|
||||
checked: false, //是否选中类型
|
||||
courseId: value.courseId,
|
||||
@@ -1711,28 +1710,27 @@ export default {
|
||||
message.destroy();
|
||||
return message.warning("请输入阶段名称");
|
||||
}
|
||||
let obj = {
|
||||
name: state.valuesname,
|
||||
projectTemplateId: localStorage.getItem("projectTemplateId"),
|
||||
remark: state.valuesnotice,
|
||||
stageId: state.updateStageID || 0,
|
||||
};
|
||||
api
|
||||
.editStage(obj)
|
||||
.then((res) => {
|
||||
console.log("修改阶段成功", res);
|
||||
state.valuesname = "";
|
||||
state.valuesnotice = "";
|
||||
closeModal();
|
||||
state.updateStageID = null;
|
||||
message.destroy();
|
||||
message.success("修改阶段成功");
|
||||
getTask();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("添加阶段失败", err);
|
||||
});
|
||||
|
||||
let obj = {
|
||||
name: state.valuesname,
|
||||
projectTemplateId: localStorage.getItem("projectTemplateId"),
|
||||
remark: state.valuesnotice,
|
||||
stageId: state.updateStageID || 0,
|
||||
};
|
||||
api
|
||||
.editStage(obj)
|
||||
.then((res) => {
|
||||
console.log("修改阶段成功", res);
|
||||
state.valuesname = "";
|
||||
state.valuesnotice = "";
|
||||
closeModal();
|
||||
state.updateStageID = null;
|
||||
message.destroy();
|
||||
message.success("修改阶段成功");
|
||||
getTask();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("添加阶段失败", err);
|
||||
});
|
||||
};
|
||||
|
||||
//打开删除阶段弹窗
|
||||
@@ -1779,7 +1777,7 @@ export default {
|
||||
};
|
||||
const showDrawerFaceteach = (id, eleId) => {
|
||||
state.addfaceteachvisible = true;
|
||||
console.log("id==========",id);
|
||||
console.log("id==========", id);
|
||||
state.EditFaceId = id;
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
@@ -1809,7 +1807,7 @@ export default {
|
||||
state.addrefvisible = true;
|
||||
};
|
||||
const showDrawerAddDiscuss = (id, eleId) => {
|
||||
console.log("projectTemplateId========",state.projectTemplateId);
|
||||
console.log("projectTemplateId========", state.projectTemplateId);
|
||||
state.EditDiscussId = id;
|
||||
state.projectTaskId = eleId;
|
||||
state.adddiscussvisible = true;
|
||||
@@ -1933,8 +1931,8 @@ export default {
|
||||
flag: ele.checked1,
|
||||
name: ele.creater,
|
||||
projectTemplateId: ele.projectTemplateId,
|
||||
projectTaskId:ele.id,
|
||||
stageId:ele.stageId,
|
||||
projectTaskId: ele.id,
|
||||
stageId: ele.stageId,
|
||||
type: ele.type,
|
||||
};
|
||||
api
|
||||
@@ -1982,7 +1980,7 @@ export default {
|
||||
showDrawerAddTest(id, eleId);
|
||||
} else if (type == "在线") {
|
||||
showDrawerOnline(id, eleId);
|
||||
}else if (type == "面授") {
|
||||
} else if (type == "面授") {
|
||||
showDrawerFaceteach(id, eleId);
|
||||
}
|
||||
};
|
||||
@@ -2007,7 +2005,6 @@ export default {
|
||||
state.unlockModeVisible = true;
|
||||
};
|
||||
|
||||
|
||||
//暂存
|
||||
const temporaryStorage = () => {
|
||||
message.success("暂存成功");
|
||||
@@ -2081,8 +2078,7 @@ export default {
|
||||
|
||||
showModeVisible,
|
||||
|
||||
|
||||
temporaryStorage,
|
||||
temporaryStorage,
|
||||
submitStorage,
|
||||
cancelStorage,
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user