mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-09 19:06:45 +08:00
feat:合并
This commit is contained in:
@@ -22,4 +22,7 @@ export const updateLiveBroadcastMessage = (obj) => http.post('/liveBroadcast/upd
|
||||
headers: {
|
||||
'token': '123'
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//获取全部评估信息接口
|
||||
export const queryAssessmentDetailList = (obj) => http.post('/assessment/queryAssessmentDetailList', obj)
|
||||
@@ -18,3 +18,15 @@ export const editProj = (obj) => http.post('/admin/project/edit', obj)
|
||||
|
||||
//路径图里的新建或编辑关卡任务
|
||||
export const editTask = (obj) => http.post('/admin/router/editTask', obj)
|
||||
|
||||
//项目里获取项目积分规则
|
||||
export const scoreRule = (obj) => http.get('/admin/project/scoreRule', { params: obj })
|
||||
|
||||
//项目里设置项目积分规则
|
||||
export const setScoreRule = (obj) => http.post('/admin/project/setScoreRule', obj)
|
||||
|
||||
//面授课开课列表
|
||||
export const planList = (obj) => http.post('/admin/offcourse/planList', obj)
|
||||
|
||||
//获取面授课列表
|
||||
export const list = (obj) => http.post('/admin/offcourse/list', obj)
|
||||
17
src/api/indexTemplate.js
Normal file
17
src/api/indexTemplate.js
Normal file
@@ -0,0 +1,17 @@
|
||||
// 模板相关接口
|
||||
import http from "./config";
|
||||
|
||||
//编辑项目模板
|
||||
export const templateEdit = (obj) => http.post('/admin/project/template/edit',obj);
|
||||
// 模板详情
|
||||
export const templateDetail = (id) => http.get(`/admin/project/template/edit?projectTemplateId=${id}`);
|
||||
// 删除阶段
|
||||
export const deleteStage = (id) => http.delete(`/admin/project/template/deleteStage`,{stageId:id});
|
||||
//删除任务
|
||||
export const deleteTask = (id) => http.delete(`/admin/project/template/deleteTask`,{projectTaskIds:id});
|
||||
// 移动任务到阶段
|
||||
export const moveTask = (obj) => http.post('/admin/project/template/moveTask',obj);
|
||||
// 新建或编辑阶段
|
||||
export const editStage = (obj) => http.post('/admin/project/template/editStage',obj);
|
||||
// 新建或编辑阶段任务
|
||||
export const editTask = (obj) => http.post('/admin/project/template/editTask',obj);
|
||||
347
src/components/drawers/ AssessmentList.vue
Normal file
347
src/components/drawers/ AssessmentList.vue
Normal file
@@ -0,0 +1,347 @@
|
||||
<template>
|
||||
<a-drawer
|
||||
:visible="assessmentVisible"
|
||||
class="drawerStyle addinvistDrawer"
|
||||
width="70%"
|
||||
title="添加评估"
|
||||
placement="right"
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div v-if="edit" class="headerTitle">编辑评估</div>
|
||||
<div v-else class="headerTitle">添加评估</div>
|
||||
<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="fi_input">
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width: 424px; height: 40px"
|
||||
placeholder="请输入评估名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
</div>
|
||||
<div class="btns" @click="getAllInvistText">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">搜索</div>
|
||||
</div>
|
||||
<div class="btnsn" @click="resetInvist">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
<a-table
|
||||
style="border: 1px solid #f2f6fe"
|
||||
:columns="tableDataFunc()"
|
||||
:data-source="tableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
expandRowByClick="true"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
:row-selection="rowSelection"
|
||||
filterMultiple:false
|
||||
/>
|
||||
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs} from "vue";
|
||||
import * as api from "../../api/indexInvist.js";
|
||||
import dayjs from "dayjs";
|
||||
export default {
|
||||
name: "AssessmentList",
|
||||
// components: {
|
||||
// },
|
||||
props: {
|
||||
assessmentVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
assessmentVisible:false,
|
||||
assessment:null,
|
||||
inputV1:"",
|
||||
currentPage: 1,
|
||||
pageSize: 10,
|
||||
tableDataTotal: 0,
|
||||
tableData: [],
|
||||
selectedRowKeys:[],
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:assessmentVisible", false);
|
||||
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state getAllInvistText", bool);
|
||||
if(props.assessmentVisible){
|
||||
getAllInvistText();
|
||||
}
|
||||
|
||||
};
|
||||
const tableDataFunc = () => {
|
||||
const columns = [
|
||||
{
|
||||
title: "名称",
|
||||
dataIndex: "name",
|
||||
// width: "30%",
|
||||
key: "name",
|
||||
width: "150px",
|
||||
align: "left",
|
||||
className: "classify",
|
||||
},
|
||||
{
|
||||
title: "题数",
|
||||
dataIndex: "num",
|
||||
key: "num",
|
||||
width: "80px",
|
||||
align: "center",
|
||||
},
|
||||
{
|
||||
title: "创建人",
|
||||
dataIndex: "creator",
|
||||
key: "creator",
|
||||
width: "150px",
|
||||
align: "center",
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
width: "200px",
|
||||
align: "center",
|
||||
},
|
||||
];
|
||||
return columns;
|
||||
};
|
||||
const rowSelection = {
|
||||
type: "radio",
|
||||
onSelect:(selectedRows,)=>{
|
||||
state.assessment = selectedRows;
|
||||
console.log("selectedRows=======",state.assessment);
|
||||
ctx.emit("checkedAss", state.assessment);
|
||||
state.selectedRowKeys = [],
|
||||
closeDrawer();
|
||||
}
|
||||
|
||||
};
|
||||
const handelChangePage = (page, pageSize) => {
|
||||
state.currentPage = page;
|
||||
state.pageSize = pageSize;
|
||||
getAllInvistText();
|
||||
};
|
||||
const getTableDate = (tableData) => {
|
||||
let data = tableData;
|
||||
let array = [];
|
||||
data.map((value, index) => {
|
||||
let obj = {
|
||||
key: index,
|
||||
assessmentId:value.assessmentId,
|
||||
num: value.essayQuestionVoList.length,
|
||||
name: value.assessmentName ? value.assessmentName : "-",
|
||||
creator: value.createUser ? value.createUser : "-",
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.selectedRowKeys = [],
|
||||
state.tableData = array;
|
||||
};
|
||||
//获取全部评估信息接口
|
||||
const getAllInvistText = () => {
|
||||
api
|
||||
.queryAssessmentDetailList({
|
||||
assessmentName:state.inputV1,
|
||||
pageNo: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
})
|
||||
.then((res) => {
|
||||
let arr = res.data.data.rows;
|
||||
if (res.status === 200) {
|
||||
// console.log("获取全部评估信息", res.data.data);
|
||||
getTableDate(arr);
|
||||
state.tableDataTotal = Number(res.data.data.total);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取全部评估信息接口失败", err);
|
||||
// state.createLoading = false;
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
//重置评估信息
|
||||
const resetInvist = () => {
|
||||
state.inputV1 = "";
|
||||
getAllInvistText();
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
tableDataFunc,
|
||||
rowSelection,
|
||||
getAllInvistText,
|
||||
resetInvist,
|
||||
handelChangePage,
|
||||
};
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.ant-table-striped :deep(.table-striped) td {
|
||||
background-color: #fafafa !important;
|
||||
}
|
||||
.addinvistDrawer {
|
||||
.drawerMain {
|
||||
.header {
|
||||
height: 73px;
|
||||
border-bottom: 1px solid #e8e8e8;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.headerTitle {
|
||||
font-size: 18px;
|
||||
font-weight: 600;
|
||||
color: #333333;
|
||||
line-height: 25px;
|
||||
margin-left: 24px;
|
||||
}
|
||||
}
|
||||
.contentMain {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.main_left {
|
||||
padding-right: 30px;
|
||||
margin-top:32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-bottom: 32px;
|
||||
.fi_input {
|
||||
margin-right: 20px;
|
||||
}
|
||||
.btns {
|
||||
margin-right: 20px;
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #409eff;
|
||||
border-radius: 8px;
|
||||
//border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.search {
|
||||
width: 15px;
|
||||
height: 17px;
|
||||
background-image: url("../../assets/images/courseManage/search0.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #ffffff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
.btnsn {
|
||||
padding: 0px 26px 0px 26px;
|
||||
height: 38px;
|
||||
background: #ffffff;
|
||||
border-radius: 8px;
|
||||
border: 1px solid rgba(64, 158, 255, 1);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
margin-right: 14px;
|
||||
flex-shrink: 0;
|
||||
cursor: pointer;
|
||||
.search {
|
||||
width: 16px;
|
||||
height: 18px;
|
||||
background-image: url("../../assets/images/courseManage/reset1.png");
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
.btnText {
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #409eff;
|
||||
line-height: 36px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_item2 {
|
||||
.pa {
|
||||
width: 100%;
|
||||
margin: 15px auto;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
|
||||
.btn1 {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
border: 1px solid #4ea6ff;
|
||||
border-radius: 8px;
|
||||
color: #4ea6ff;
|
||||
background-color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.btn2 {
|
||||
cursor: pointer;
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
background: #4ea6ff;
|
||||
border-radius: 8px;
|
||||
border: 0;
|
||||
margin-left: 15px;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -275,7 +275,7 @@ export default {
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
EditWorkId: { // 要编辑的workId
|
||||
@@ -358,7 +358,7 @@ export default {
|
||||
}
|
||||
};
|
||||
const updateTask = (res) => {
|
||||
if(props.isLevel){
|
||||
if(props.isLevel == 1 ){
|
||||
RouterEditTask({
|
||||
chapterId:props.isactive,
|
||||
courseId: res.data.data.activityId,
|
||||
@@ -373,7 +373,7 @@ export default {
|
||||
}).catch(err => {
|
||||
console.log("新增关卡任务失败",err);
|
||||
})
|
||||
}else{
|
||||
}else if(props.isLevel==2){
|
||||
apiTask.addTask({
|
||||
courseId: res.data.data.activityId,
|
||||
duration: res.data.data.activityDuration,
|
||||
@@ -389,6 +389,8 @@ export default {
|
||||
.catch((err)=> {
|
||||
console.log("更新任务列表失败",err);
|
||||
})
|
||||
}else if(props.isLevel == 3){
|
||||
console.log("模板库更新更新任务列表");
|
||||
}
|
||||
}
|
||||
//创建活动
|
||||
@@ -503,6 +505,7 @@ export default {
|
||||
border-radius: 8px;
|
||||
}
|
||||
.main_left {
|
||||
margin-top:32px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
|
||||
@@ -107,7 +107,7 @@ export default {
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
@@ -229,7 +229,7 @@ export default {
|
||||
};
|
||||
const updateTask = () => {
|
||||
console.log("jinlaile=================", state.assessmentName)
|
||||
if (props.isLevel) {
|
||||
if (props.isLevel==1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessmentId,
|
||||
@@ -248,7 +248,7 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
} else {
|
||||
} else if(props.isLevel==2){
|
||||
console.log("=========projectTaskId", props.projectTaskId);
|
||||
apiTask
|
||||
.addTask({
|
||||
@@ -267,6 +267,8 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel==3){
|
||||
console.log("模板库");
|
||||
}
|
||||
}
|
||||
//重置案例信息
|
||||
@@ -316,12 +318,10 @@ export default {
|
||||
}
|
||||
}
|
||||
.contentMain {
|
||||
padding-right: 15px;
|
||||
|
||||
.main_items {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 32px;
|
||||
.main_items {
|
||||
margin-top:32px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 12px;
|
||||
flex-wrap: wrap;
|
||||
.mi_ipts {
|
||||
|
||||
@@ -7,8 +7,8 @@
|
||||
@after-visible-change="afterVisibleChange"
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">{{edit?'编辑':'添加'}}讨论</div>
|
||||
<div class="header">
|
||||
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}讨论</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@@ -56,7 +56,9 @@
|
||||
<span style="margin-right: 3px">讨论设置:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-checkbox v-model:checked="checkedC1" @change = "checkRadio">允许评论</a-checkbox>
|
||||
<a-checkbox v-model:checked="checkedC1" @change="checkRadio"
|
||||
>允许评论</a-checkbox
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -66,14 +68,13 @@
|
||||
<button class="btn2" @click="updateDiscussInfo">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, ref } from "vue";
|
||||
import * as api from "../../api/indexDiscuss";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
import { RouterEditTask } from "@/api/indexTask"
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
import { message } from "ant-design-vue";
|
||||
const rowSelection = ref({
|
||||
checkStrictly: false,
|
||||
@@ -104,7 +105,8 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -120,15 +122,18 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
EditWorkId: { // 要编辑的workId
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
EditWorkId: {
|
||||
// 要编辑的workId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -139,84 +144,96 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
console.log("学习路径",props.isStudiscuss);
|
||||
console.log("学习路径", props.isStudiscuss);
|
||||
const state = reactive({
|
||||
inputV1: "",
|
||||
inputV2: "",
|
||||
textV1: "",
|
||||
checkedC1: false,
|
||||
discussSettings:"",
|
||||
addLoading:false,
|
||||
discussSettings: "",
|
||||
addLoading: false,
|
||||
});
|
||||
const checkRadio = () =>{
|
||||
if(state.checkedC1){
|
||||
state.discussSettings = "true"
|
||||
}else{
|
||||
const checkRadio = () => {
|
||||
if (state.checkedC1) {
|
||||
state.discussSettings = "true";
|
||||
} else {
|
||||
state.discussSettings = "false";
|
||||
}
|
||||
console.log("state.checkedC1=====",state.discussSettings,state.discussSettings=="true");
|
||||
}
|
||||
console.log(
|
||||
"state.checkedC1=====",
|
||||
state.discussSettings,
|
||||
state.discussSettings == "true"
|
||||
);
|
||||
};
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:adddiscussVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
state.inputV1 = "";
|
||||
state.textV1 = "";
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
localStorage.setItem("stageId", props.chooseStageId);
|
||||
};
|
||||
const queryDiscuss = () =>{
|
||||
if(props.edit){
|
||||
//编辑讨
|
||||
api.getDiscussDetail({discussId:props.EditDiscussId}).then(res => {
|
||||
console.log('获取讨论信息成功',res.data.data)
|
||||
//更新讨论信息
|
||||
state.inputV1 = res.data.data.discussName;
|
||||
state.textV1 = res.data.data.discussExplain;
|
||||
state.checkedC1 = res.data.data.discussSettings=="true"?true:false;
|
||||
console.log("props.EditDiscussId",res.data.data.discussSettings,"===",res.data.data.discussSettings=="true",state.checkedC1)
|
||||
}).catch(err=>{
|
||||
console.log('获取讨论信息失败',err)
|
||||
})
|
||||
|
||||
}
|
||||
const queryDiscuss = () => {
|
||||
if (props.edit) {
|
||||
//编辑讨
|
||||
api
|
||||
.getDiscussDetail({ discussId: props.EditDiscussId })
|
||||
.then((res) => {
|
||||
console.log("获取讨论信息成功", res.data.data);
|
||||
//更新讨论信息
|
||||
state.inputV1 = res.data.data.discussName;
|
||||
state.textV1 = res.data.data.discussExplain;
|
||||
state.checkedC1 =
|
||||
res.data.data.discussSettings == "true" ? true : false;
|
||||
console.log(
|
||||
"props.EditDiscussId",
|
||||
res.data.data.discussSettings,
|
||||
"===",
|
||||
res.data.data.discussSettings == "true",
|
||||
state.checkedC1
|
||||
);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取讨论信息失败", err);
|
||||
});
|
||||
}
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
if(bool){
|
||||
if (bool) {
|
||||
queryDiscuss();
|
||||
}
|
||||
};
|
||||
const updateTask = (res) => {
|
||||
console.log("jinlaile ========",props.isLevel);
|
||||
if(props.isLevel){
|
||||
RouterEditTask({
|
||||
chapterId:props.isactive,
|
||||
courseId: res.data.data.discussId,
|
||||
name: res.data.data.discussName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId ||0,
|
||||
type: 8,
|
||||
}).then(res => {
|
||||
console.log("新增关卡任务失败",res);
|
||||
}).catch(err => {console.log("新增关卡任务失败",err);})
|
||||
}else{
|
||||
apiTask
|
||||
.addTask({
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.discussId,
|
||||
name: res.data.data.discussName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId:props.chooseStageId,
|
||||
type: 8,
|
||||
}).then(r=>{
|
||||
console.log("新增关卡任务成功",r);
|
||||
}).catch(r=>{
|
||||
console.log('更新阶段任务失败',r)
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 8,
|
||||
})
|
||||
}
|
||||
}
|
||||
.then((res) => {
|
||||
console.log("新增关卡任务失败", res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("新增关卡任务失败", err);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
apiTask.addTask({
|
||||
courseId: res.data.data.discussId,
|
||||
name: res.data.data.discussName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 8,
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("模板库任务");
|
||||
}
|
||||
};
|
||||
const updateDiscussInfo = () => {
|
||||
if (!state.inputV1) {
|
||||
message.destroy();
|
||||
@@ -226,36 +243,36 @@ export default {
|
||||
discussName: state.inputV1, //讨论名称
|
||||
discussExplain: state.textV1, //讨论说明
|
||||
discussSettings: state.discussSettings, //讨论设置
|
||||
discussId: props.edit?props.EditDiscussId:0,//讨论Id
|
||||
discussId: props.edit ? props.EditDiscussId : 0, //讨论Id
|
||||
projectId: 0, //项目id,接口多余字段,
|
||||
};
|
||||
console.log("dianwanle -======",String(state.checkedC1));
|
||||
if(props.edit){
|
||||
console.log("dianwanle -======", String(state.checkedC1));
|
||||
if (props.edit) {
|
||||
api
|
||||
.updateDiscuss(obj)
|
||||
.then((res)=> {
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
console.log("更新成功",res);
|
||||
console.log("项目任务ID",props.projectTaskId)
|
||||
console.log("更新成功", res);
|
||||
console.log("项目任务ID", props.projectTaskId);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("更新失败",err)
|
||||
})
|
||||
}else{
|
||||
console.log("更新失败", err);
|
||||
});
|
||||
} else {
|
||||
api
|
||||
.createDiscuss(obj)
|
||||
.then((res)=> {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
console.log("创建成功",res);
|
||||
console.log("项目任务ID",props.projectTaskId)
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建失败",err)
|
||||
})
|
||||
.createDiscuss(obj)
|
||||
.then((res) => {
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
ctx.emit("changeData", false);
|
||||
console.log("创建成功", res);
|
||||
console.log("项目任务ID", props.projectTaskId);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建失败", err);
|
||||
});
|
||||
}
|
||||
};
|
||||
return {
|
||||
@@ -294,6 +311,7 @@ export default {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.main_left {
|
||||
margin-top: 32px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
@@ -393,6 +411,5 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
</style>
|
||||
|
||||
@@ -135,7 +135,7 @@ export default {
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
@@ -195,7 +195,7 @@ export default {
|
||||
});
|
||||
}
|
||||
const updateTask = (res)=>{
|
||||
if(props.isLevel){
|
||||
if(props.isLevel ==1){
|
||||
apitaskadd
|
||||
.addTask({
|
||||
courseId: res.data.data.evaluationId,
|
||||
@@ -212,7 +212,7 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}else{
|
||||
}else if(props.isLevel ==2){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.evaluationId,
|
||||
@@ -226,6 +226,8 @@ export default {
|
||||
}).catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
console.log("模板库任务")
|
||||
}
|
||||
}
|
||||
//创建或编辑测评信息
|
||||
@@ -316,6 +318,7 @@ export default {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.main_left {
|
||||
margin-top:32px;
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
|
||||
@@ -271,32 +271,17 @@
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2">确定</button>
|
||||
<button class="btn2" @click ="updateFaceTeach">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, ref } from "vue";
|
||||
import { reactive, toRefs} from "vue";
|
||||
import SelFacet from "../../components/drawers/SelFacet.vue";
|
||||
import AddHomework from "../../components/drawers/AddHomework.vue";
|
||||
import AddTest from "../../components/drawers/AddTest.vue";
|
||||
const rowSelection = ref({
|
||||
checkStrictly: false,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
console.log(
|
||||
`selectedRowKeys: ${selectedRowKeys}`,
|
||||
"selectedRows: ",
|
||||
selectedRows
|
||||
);
|
||||
},
|
||||
onSelect: (record, selected, selectedRows) => {
|
||||
console.log(record, selected, selectedRows);
|
||||
},
|
||||
onSelectAll: (selected, selectedRows, changeRows) => {
|
||||
console.log(selected, selectedRows, changeRows);
|
||||
},
|
||||
});
|
||||
|
||||
export default {
|
||||
name: "AddFaceteach",
|
||||
components: {
|
||||
@@ -309,6 +294,47 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
EditEvalId: {
|
||||
// 要编辑的workId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
projectId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
chooseStageId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
routerTaskId: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
routerId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
@@ -333,6 +359,9 @@ export default {
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
if(bool){
|
||||
queryFaceTeach();
|
||||
}
|
||||
};
|
||||
const showDrawerSelFacet = () => {
|
||||
state.selfacetvisible = true;
|
||||
@@ -353,6 +382,18 @@ export default {
|
||||
state.radioV2 = "";
|
||||
}
|
||||
}
|
||||
//查询面授
|
||||
const queryFaceTeach=()=>{
|
||||
|
||||
}
|
||||
//更新任务列表
|
||||
const updateTask=()=>{
|
||||
|
||||
}
|
||||
//新建或编辑面授
|
||||
const updateFaceTeach=()=>{
|
||||
|
||||
}
|
||||
return {
|
||||
...toRefs(state),
|
||||
showDrawerSelFacet,
|
||||
@@ -360,9 +401,10 @@ export default {
|
||||
showDrawerAddTest,
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
rowSelection,
|
||||
cloradio1,
|
||||
cloradio2,
|
||||
updateFaceTeach,
|
||||
updateTask,
|
||||
// change,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -161,7 +161,7 @@ export default {
|
||||
},
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
EditWorkId: {
|
||||
@@ -245,7 +245,7 @@ export default {
|
||||
// };
|
||||
const handleFinish = (values) => {
|
||||
console.log(values);
|
||||
updateWork(props.workId);
|
||||
updteHomeWork();
|
||||
};
|
||||
|
||||
const handleFinishFailed = (errors) => {
|
||||
@@ -288,77 +288,40 @@ export default {
|
||||
console.log("state", bool);
|
||||
};
|
||||
|
||||
const updateWork = () => {
|
||||
state.addLoading = true;
|
||||
if (props.edit) {
|
||||
// 编辑任务
|
||||
myUpdateWorkTaskUsing();
|
||||
} else {
|
||||
// 创建任务
|
||||
console.log("创建任务***************");
|
||||
myCreateWorkTask();
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
// 新增任务
|
||||
const myCreateWorkTask = () => {
|
||||
const updteHomeWork = () => {
|
||||
let obj = {
|
||||
createTime: "",
|
||||
createUser: 0,
|
||||
submitEndTime: dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
submitStartTime: dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
updateTime: "",
|
||||
updateUser: 0,
|
||||
workEnclosureAddress: "",
|
||||
workFlag: "",
|
||||
workId: 0,
|
||||
workId: props.edit?props.EditWorkId:0,
|
||||
workName: formState.workName,
|
||||
workRequirement: formState.workRequirement,
|
||||
workTag: "",
|
||||
};
|
||||
createWorkTask(obj)
|
||||
if(props.edit){
|
||||
updateWorkTaskUsing(obj)
|
||||
.then((res) => {
|
||||
if (props.isLevel) {
|
||||
// 如果是关卡页面进入 ---------------------------------
|
||||
myRouterEditTask(res.data.data.workId);
|
||||
} else {
|
||||
myProjectEditTask(res.data.data.workId);
|
||||
}
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
};
|
||||
// 编辑任务
|
||||
const myUpdateWorkTaskUsing = () => {
|
||||
let editObj = {
|
||||
createTime: "",
|
||||
createUser: 0,
|
||||
submitEndTime: dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
submitStartTime: dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
updateTime: "",
|
||||
updateUser: 0,
|
||||
workEnclosureAddress: "",
|
||||
workFlag: "",
|
||||
workId: props.EditWorkId,
|
||||
workName: formState.workName,
|
||||
workRequirement: formState.workRequirement,
|
||||
workTag: "",
|
||||
};
|
||||
updateWorkTaskUsing(editObj)
|
||||
}else{
|
||||
createWorkTask(obj)
|
||||
.then((res) => {
|
||||
console.log(res);
|
||||
if (props.isLevel) {
|
||||
// 如果是关卡页面进入 ---------------------------------
|
||||
myRouterEditTask(res.data.data.workId);
|
||||
} else {
|
||||
myProjectEditTask(res.data.data.workId);
|
||||
}
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`编辑失败${err}`);
|
||||
message.error(`添加失败${err}`);
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// 查询任务
|
||||
const queryWork = () => {
|
||||
state.addLoading = true;
|
||||
@@ -381,57 +344,51 @@ export default {
|
||||
});
|
||||
};
|
||||
// 新增编辑或新增项目任务
|
||||
const myProjectEditTask = (workId) => {
|
||||
let editObj = {
|
||||
courseId: workId,
|
||||
duration: 60,
|
||||
flag: true,
|
||||
name: formState.workName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 4,
|
||||
};
|
||||
ProjectEditTask(editObj)
|
||||
.then((res) => {
|
||||
console.log(` 编辑项目成功的打印 ${res}`);
|
||||
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
console.log(` 编辑项目失败的打印 ${err}`);
|
||||
});
|
||||
};
|
||||
// 新增编辑或新增关卡任务
|
||||
const myRouterEditTask = (testId) => {
|
||||
let editObj1 = {
|
||||
const updateTask = (res) => {
|
||||
if(props.isLevel==1 ){
|
||||
let editObj1 = {
|
||||
chapterId: props.isactive,
|
||||
courseId: testId,
|
||||
duration: 30,
|
||||
flag: true,
|
||||
name: formState.workName,
|
||||
courseId: res.data.data.workId,
|
||||
name: res.data.data.workName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 4,
|
||||
};
|
||||
|
||||
RouterEditTask(editObj1)
|
||||
.then((res) => {
|
||||
console.log(` 编辑关卡成功的打印 ${res}`);
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
|
||||
console.log(` 编辑关卡失败的打印 ${err}`);
|
||||
});
|
||||
}else if(props.isLevel==2){
|
||||
let editObj = {
|
||||
courseId: res.data.data.workId,
|
||||
name:res.data.data.workName,
|
||||
projectId: props.edit?props.projectId:0,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 4,
|
||||
};
|
||||
ProjectEditTask(editObj)
|
||||
.then(() => {
|
||||
message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
|
||||
});
|
||||
}else if(props.isLevel==3){
|
||||
console.log("模板库更新更新任务列表");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
|
||||
return {
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
@@ -446,7 +403,6 @@ export default {
|
||||
formRef,
|
||||
// layout,
|
||||
rules,
|
||||
updateWork,
|
||||
...toRefs(state),
|
||||
};
|
||||
},
|
||||
@@ -484,6 +440,7 @@ export default {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
margin-top:32px;
|
||||
|
||||
.main_item {
|
||||
display: flex;
|
||||
|
||||
@@ -18,51 +18,38 @@
|
||||
/>
|
||||
</div>
|
||||
<div class="contentMain">
|
||||
<div class="main">
|
||||
<div class="main_left">
|
||||
<div class="main_notice">
|
||||
<div class="mntc_left">
|
||||
<div class="notice_icon"></div>
|
||||
<div v-if="assessment==null">
|
||||
<span class="title">已选择 <span class ="data">0</span> 条</span>
|
||||
</div>
|
||||
<div v-else>
|
||||
<span class="title">已选择 <span class ="data">1</span> 条;</span>
|
||||
<span class="title">名称: <span class ="data">{{assessment.name}}</span> </span>
|
||||
<span class="title">题数: <span class ="data">{{assessment.num}}</span> </span>
|
||||
<span class="title">创建人: <span class ="data">{{assessment.creator}}</span> </span>
|
||||
<span class="title">创建时间: <span class ="data">{{assessment.time}}</span> </span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="main_item">
|
||||
<div class="fi_input">
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width: 424px; height: 40px"
|
||||
placeholder="请输入评估名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
</div>
|
||||
<div class="btns" @click="getAllInvistText">
|
||||
|
||||
<div class="btns" @click="checkAssDrawer">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">搜索</div>
|
||||
<div class="btnText">选择评估</div>
|
||||
<div class="main_item2">
|
||||
<AssessmentList
|
||||
v-model:assessmentVisible="assessmentVisible"
|
||||
@checkedAss="getCheckedAss"/>
|
||||
</div>
|
||||
<div class="btnsn" @click="resetInvist">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">重置</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
<a-table
|
||||
style="border: 1px solid #f2f6fe"
|
||||
:columns="tableDataFunc()"
|
||||
:data-source="tableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
expandRowByClick="true"
|
||||
@expand="expandTable"
|
||||
:pagination="false"
|
||||
:row-selection="rowSelection"
|
||||
filterMultiple:false
|
||||
/>
|
||||
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="handelChangePage"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
@@ -70,19 +57,21 @@
|
||||
<button class="btn2" @click="updateTask">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, onMounted } from "vue";
|
||||
import * as api from "../../api/indexInvist.js";
|
||||
import { reactive, toRefs} from "vue";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
import { message } from "ant-design-vue";
|
||||
import dayjs from "dayjs";
|
||||
import AssessmentList from "./ AssessmentList.vue";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
export default {
|
||||
name: "AddInvist",
|
||||
// components: {
|
||||
// },
|
||||
components: {
|
||||
AssessmentList,
|
||||
},
|
||||
props: {
|
||||
addinvistVisible: {
|
||||
type: Boolean,
|
||||
@@ -109,9 +98,10 @@ export default {
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
@@ -123,7 +113,7 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
},
|
||||
|
||||
},
|
||||
setup(props, ctx) {
|
||||
@@ -134,118 +124,38 @@ export default {
|
||||
pageSize: 10,
|
||||
tableDataTotal: 0,
|
||||
tableData: [
|
||||
|
||||
],
|
||||
assessmentId:null,
|
||||
assessmentName:"",
|
||||
|
||||
|
||||
assessment:null,
|
||||
assessmentVisible:false,
|
||||
|
||||
});
|
||||
const getCheckedAss = (ass) =>{
|
||||
state.assessment = ass
|
||||
console.log("checed===",state.assessment);
|
||||
}
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addinvistVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
state.inputV1 = "";
|
||||
};
|
||||
const checkAssDrawer =() =>{
|
||||
state.assessmentVisible = true;
|
||||
}
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
};
|
||||
const tableDataFunc = () => {
|
||||
const columns = [
|
||||
{
|
||||
title: "名称",
|
||||
dataIndex: "name",
|
||||
// width: "30%",
|
||||
key: "name",
|
||||
width: "150px",
|
||||
align: "left",
|
||||
className: "classify",
|
||||
},
|
||||
{
|
||||
title: "题数",
|
||||
dataIndex: "num",
|
||||
key: "num",
|
||||
width: "80px",
|
||||
align: "center",
|
||||
},
|
||||
{
|
||||
title: "创建人",
|
||||
dataIndex: "creator",
|
||||
key: "creator",
|
||||
width: "150px",
|
||||
align: "center",
|
||||
},
|
||||
{
|
||||
title: "创建时间",
|
||||
dataIndex: "time",
|
||||
key: "time",
|
||||
width: "200px",
|
||||
align: "center",
|
||||
},
|
||||
];
|
||||
return columns;
|
||||
};
|
||||
const rowSelection = {
|
||||
type: "radio",
|
||||
onSelect: (selectedRows, selected, selectedRowKeys) => {
|
||||
console.log(
|
||||
"selectedRowKeys",selectedRowKeys,"selectedRows",selectedRows, "selected",selected );
|
||||
console.log(selectedRows.assessmentId);
|
||||
state.assessmentId =selectedRows.assessmentId;
|
||||
state.assessmentName = selectedRows.name;
|
||||
},
|
||||
|
||||
};
|
||||
const handelChangePage = (page, pageSize) => {
|
||||
state.currentPage = page;
|
||||
state.pageSize = pageSize;
|
||||
getAllInvistText();
|
||||
};
|
||||
const getTableDate = (tableData) => {
|
||||
let data = tableData;
|
||||
let array = [];
|
||||
data.map((value, index) => {
|
||||
let obj = {
|
||||
key: index,
|
||||
assessmentId:value.assessmentId,
|
||||
num: value.essayQuestionVoList.length,
|
||||
name: value.assessmentName ? value.assessmentName : "-",
|
||||
creator: value.createUser ? value.createUser : "-",
|
||||
time: dayjs(value.createTime).format("YYYY-MM-DD"),
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.tableData = array;
|
||||
};
|
||||
//获取全部评估信息接口
|
||||
const getAllInvistText = () => {
|
||||
|
||||
api
|
||||
.queryAssessmentDetailList({
|
||||
assessmentName:state.inputV1,
|
||||
pageNo: state.currentPage,
|
||||
pageSize: state.pageSize,
|
||||
})
|
||||
.then((res) => {
|
||||
let arr = res.data.data.rows;
|
||||
if (res.status === 200) {
|
||||
// console.log("获取全部评估信息", res.data.data);
|
||||
getTableDate(arr);
|
||||
state.tableDataTotal = Number(res.data.data.total);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取全部评估信息接口失败", err);
|
||||
// state.createLoading = false;
|
||||
});
|
||||
};
|
||||
|
||||
const updateTask =()=>{
|
||||
console.log("jinlaile=================",state.assessmentName)
|
||||
if(props.isLevel){
|
||||
if(state.assessment==null){
|
||||
return message.warning("请选择评估");
|
||||
}
|
||||
if(props.isLevel ==1){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessmentId,
|
||||
name: state.assessmentName,
|
||||
courseId: state.assessment.assessmentId,
|
||||
name:state.assessment.name,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 11,
|
||||
@@ -260,12 +170,11 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else{
|
||||
console.log("=========projectTaskId",props.projectTaskId);
|
||||
}else if(props.isLevel ==2){
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId: state.assessmentId,
|
||||
name: state.assessmentName,
|
||||
courseId: state.assessment.assessmentId,
|
||||
name:state.assessment.name,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
@@ -279,28 +188,20 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel == 3){
|
||||
console.log("模板库更新更新任务列表");
|
||||
}
|
||||
}
|
||||
|
||||
//重置评估信息
|
||||
const resetInvist = () => {
|
||||
state.inputV1 = "";
|
||||
getAllInvistText();
|
||||
};
|
||||
onMounted(() => {
|
||||
// createInvist();
|
||||
getAllInvistText();
|
||||
});
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
tableDataFunc,
|
||||
rowSelection,
|
||||
getAllInvistText,
|
||||
updateTask,
|
||||
resetInvist,
|
||||
handelChangePage,
|
||||
AssessmentList,
|
||||
checkAssDrawer,
|
||||
getCheckedAss,
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -328,15 +229,18 @@ export default {
|
||||
.contentMain {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
.main{
|
||||
width:100%;
|
||||
.main_left {
|
||||
padding-right: 30px;
|
||||
margin-top:32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
margin-bottom: 64px;
|
||||
.fi_input {
|
||||
margin-right: 20px;
|
||||
|
||||
}
|
||||
.btns {
|
||||
margin-right: 20px;
|
||||
@@ -392,19 +296,45 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.main_item2 {
|
||||
.pa {
|
||||
width: 100%;
|
||||
margin: 15px auto;
|
||||
.main_notice {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 32px;
|
||||
height: 40px;
|
||||
background-color: #e9f6fe;
|
||||
.mntc_left {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
.title{
|
||||
color: rgba(0, 0, 0, 0.65);
|
||||
margin-right: 17px
|
||||
}
|
||||
.data{
|
||||
color: #388be1
|
||||
}
|
||||
.notice_icon {
|
||||
width: 14px;
|
||||
height: 14px;
|
||||
margin-right: 9px;
|
||||
margin-left: 9px;
|
||||
background-image: url(@/assets/images/coursewareManage/gan.png);
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
}
|
||||
.mntc_right {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
.main_btns {
|
||||
height: 72px;
|
||||
width: 100%;
|
||||
margin-top: 180px;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
display: flex;
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">{{edit?'编辑':'添加'}}直播</div>
|
||||
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}直播</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@@ -81,13 +81,18 @@
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-input-number
|
||||
:min="0"
|
||||
:max="300"
|
||||
:precision="0"
|
||||
style=" width: 364px; height: 32px; border-radius: 8px;overflow: hidden; "
|
||||
v-model:value="inputV2"
|
||||
></a-input-number>
|
||||
|
||||
:min="0"
|
||||
:max="300"
|
||||
:precision="0"
|
||||
style="
|
||||
width: 364px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
v-model:value="inputV2"
|
||||
></a-input-number>
|
||||
|
||||
<span style="margin-left: 5px">分钟</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -102,19 +107,17 @@
|
||||
<span style="margin-right: 3px">授课老师:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
|
||||
<a-select
|
||||
v-model:value="value"
|
||||
show-search
|
||||
placeholder="Select a teacher"
|
||||
style="width: 364px"
|
||||
:options="options"
|
||||
:filter-option="filterOption"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
@change="handleChange2"
|
||||
></a-select>
|
||||
|
||||
<a-select
|
||||
v-model:value="value"
|
||||
show-search
|
||||
placeholder="Select a teacher"
|
||||
style="width: 364px"
|
||||
:options="options"
|
||||
:filter-option="filterOption"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
@change="handleChange2"
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
@@ -122,9 +125,6 @@
|
||||
<span style="margin-right: 3px">直播封面:</span>
|
||||
</div>
|
||||
<div class="textarea" style="overflow: hidden">
|
||||
|
||||
|
||||
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="avatar"
|
||||
@@ -135,7 +135,12 @@
|
||||
:before-upload="beforeUpload"
|
||||
@change="handleChange"
|
||||
>
|
||||
<img v-if="imageUrl" :src="imageUrl" alt="avatar" style=“width:100px;height:100px;”/>
|
||||
<img
|
||||
v-if="imageUrl"
|
||||
:src="imageUrl"
|
||||
alt="avatar"
|
||||
style="“width:100px;height:100px;”"
|
||||
/>
|
||||
<div v-else>
|
||||
<loading-outlined v-if="loading"></loading-outlined>
|
||||
<plus-outlined v-else></plus-outlined>
|
||||
@@ -185,23 +190,26 @@
|
||||
<span style="margin-right: 3px">评价:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-checkbox v-model:checked="checkedC1" @change = "checkRadio">需要评估</a-checkbox>
|
||||
<a-checkbox v-model:checked="checkedC1" @change="checkRadio"
|
||||
>需要评估</a-checkbox
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item" style="margin-top: -25px," :style="{ display: checkedC1 ? 'block' : 'none' }">
|
||||
<div
|
||||
class="main_item"
|
||||
style="margin-top: -25px"
|
||||
:style="{ display: checkedC1 ? 'block' : 'none' }"
|
||||
>
|
||||
<div class="signbox"></div>
|
||||
<div class="btnbox">
|
||||
<a-select
|
||||
v-model:value="value"
|
||||
show-search
|
||||
placeholder="选择评估"
|
||||
style="width: 364px"
|
||||
:options="options"
|
||||
:filter-option="filterOption"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
@change="handleChange2"
|
||||
></a-select>
|
||||
v-model:value="assessmentvalue"
|
||||
show-search
|
||||
placeholder="选择评估"
|
||||
style="width: 364px"
|
||||
:options="assessment"
|
||||
@change="handleChangeAssessment"
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_item2">
|
||||
@@ -219,7 +227,12 @@
|
||||
:min="0"
|
||||
:max="30"
|
||||
:precision="0"
|
||||
style="width: 88px; height: 32px; border-radius: 8px;overflow: hidden; "
|
||||
style="
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
v-model:value="inputV6"
|
||||
></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||
@@ -230,7 +243,12 @@
|
||||
:min="0"
|
||||
:max="30"
|
||||
:precision="0"
|
||||
style="width: 88px;height: 32px;border-radius: 8px; overflow: hidden;"
|
||||
style="
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
v-model:value="inputV7"
|
||||
></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px">分钟</span>
|
||||
@@ -246,7 +264,12 @@
|
||||
:min="0"
|
||||
:max="30"
|
||||
:precision="0"
|
||||
style=" width: 88px;height: 32px;border-radius: 8px; overflow: hidden; "
|
||||
style="
|
||||
width: 88px;
|
||||
height: 32px;
|
||||
border-radius: 8px;
|
||||
overflow: hidden;
|
||||
"
|
||||
v-model:value="inputV8"
|
||||
></a-input-number>
|
||||
<span style="color: #999999; margin-left: 8px"
|
||||
@@ -274,7 +297,9 @@
|
||||
<span style="margin-right: 3px">其他设置:</span>
|
||||
</div>
|
||||
<div class="btnbox">
|
||||
<a-checkbox v-model:checked="checkedC2" @onclick = "checkedC2 = !checkedC2"
|
||||
<a-checkbox
|
||||
v-model:checked="checkedC2"
|
||||
@onclick="checkedC2 = !checkedC2"
|
||||
>学员请假后记为任务完成</a-checkbox
|
||||
>
|
||||
</div>
|
||||
@@ -295,7 +320,7 @@ import * as api from "../../api/indexLiveBroadcast";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
import { toDate } from "@/api/method";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
import dayjs from 'dayjs';
|
||||
import dayjs from "dayjs";
|
||||
// import { useRouter } from "vue-router";
|
||||
function getBase64(img, callback) {
|
||||
const reader = new FileReader();
|
||||
@@ -309,7 +334,6 @@ const options1 = ref([
|
||||
},
|
||||
]);
|
||||
|
||||
|
||||
const rowSelection = ref({
|
||||
checkStrictly: false,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
@@ -333,12 +357,13 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
|
||||
|
||||
EditLiveId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
// 是否为编辑
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
@@ -354,11 +379,13 @@ export default {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
isLevel: {
|
||||
// 是否是关卡页面触发
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
projectTaskId: {
|
||||
// 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
@@ -369,8 +396,7 @@ export default {
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
// const router = useRouter();
|
||||
@@ -396,11 +422,13 @@ export default {
|
||||
checkedC1: false,
|
||||
checkedC2: false,
|
||||
playback: false,
|
||||
assessmentId:"0",
|
||||
assessmentId: null,
|
||||
obj: {}, //要传的obj数据
|
||||
assessment: [], //评估信息
|
||||
assessmentvalue: null,
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:addliveVisible", false);
|
||||
ctx.emit("update:addliveVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
console.log(props, "props");
|
||||
state.radioV1 = "";
|
||||
@@ -419,37 +447,59 @@ export default {
|
||||
state.imageUrl = "";
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("props.edit===================", props.edit,bool);
|
||||
if(props.edit){
|
||||
console.log("props.edit===================", props.edit, bool);
|
||||
if (props.edit) {
|
||||
queryLive();
|
||||
|
||||
}
|
||||
api
|
||||
.queryAssessmentDetailList({
|
||||
assessmentName: "",
|
||||
pageNo: 1,
|
||||
pageSize: 200,
|
||||
releaseStatus: "",
|
||||
searchEndTime: "",
|
||||
searchStartTime: "",
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res.data.data.rows, "获取全部评估信息");
|
||||
res.data.data.rows.forEach((item) => {
|
||||
let obj = item;
|
||||
obj.value = item.assessmentId;
|
||||
obj.label = item.assessmentName;
|
||||
state.assessment.push(obj);
|
||||
});
|
||||
console.log("eeee", state.assessment);
|
||||
});
|
||||
};
|
||||
const queryLive = () => {
|
||||
let d =props.EditLiveId;
|
||||
console.log("直播查询=======",d);
|
||||
let d = props.EditLiveId;
|
||||
console.log("直播查询=======", d);
|
||||
api
|
||||
.getLiveBroadcastInfor({liveId:d}).then((res) => {
|
||||
// console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD"));
|
||||
state.inputV1 = res.data.data.liveName;
|
||||
state.time = [dayjs(res.data.data.liveStartTime, "YYYY-MM-DD"), dayjs(res.data.data.liveEndTime, "YYYY-MM-DD")]
|
||||
state.inputV2= res.data.data.liveDuration;
|
||||
state.inputV3= res.data.data. liveTeacherId;
|
||||
//state.fileList= res.data.data
|
||||
state.inputV4= res.data.data.liveLink;
|
||||
state.inputV5= res.data.data.livePlaybackLink;
|
||||
state.inputV6= res.data.data.beforeSignIn;
|
||||
state.inputV7= res.data.data.afterSignIn;
|
||||
state.inputV8= res.data.data.signOutTime;
|
||||
state.textV1= res.data.data.liveExplain;
|
||||
state.radioV1= res.data.data.standardSettings
|
||||
//state.= res.data.data
|
||||
|
||||
|
||||
console.log("查询成功=====inputv1",state.inputV1);
|
||||
}).catch(() => {
|
||||
message.error(`查询失败`)
|
||||
})
|
||||
.getLiveBroadcastInfor({ liveId: d })
|
||||
.then((res) => {
|
||||
// console.log(dayjs(res.data.data.submitStartTime).format("YYYY-MM-DD"));
|
||||
state.inputV1 = res.data.data.liveName;
|
||||
state.time = [
|
||||
dayjs(res.data.data.liveStartTime, "YYYY-MM-DD"),
|
||||
dayjs(res.data.data.liveEndTime, "YYYY-MM-DD"),
|
||||
];
|
||||
state.inputV2 = res.data.data.liveDuration;
|
||||
state.inputV3 = res.data.data.liveTeacherId;
|
||||
//state.fileList= res.data.data
|
||||
state.inputV4 = res.data.data.liveLink;
|
||||
state.inputV5 = res.data.data.livePlaybackLink;
|
||||
state.inputV6 = res.data.data.beforeSignIn;
|
||||
state.inputV7 = res.data.data.afterSignIn;
|
||||
state.inputV8 = res.data.data.signOutTime;
|
||||
state.textV1 = res.data.data.liveExplain;
|
||||
state.radioV1 = res.data.data.standardSettings;
|
||||
//state.= res.data.data
|
||||
state.assessmentId = res.data.data.assessmentId;
|
||||
console.log("查询成功=====inputv1", state.inputV1);
|
||||
})
|
||||
.catch(() => {
|
||||
message.error(`查询失败`);
|
||||
});
|
||||
};
|
||||
|
||||
const cloradio1 = (value) => {
|
||||
@@ -458,7 +508,7 @@ export default {
|
||||
state.radioV1 = "";
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
const handleChange = (info) => {
|
||||
if (info.file.status === "uploading") {
|
||||
state.loading = true;
|
||||
@@ -496,48 +546,48 @@ export default {
|
||||
|
||||
return isJpgOrPng && isLt2M;
|
||||
};
|
||||
const updateTask =(res)=>{
|
||||
if(props.isLevel){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.liveId,
|
||||
duration: res.data.data.duration,
|
||||
name: res.data.data.liveName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 6,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else{
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId: res.data.data.liveId,
|
||||
duration: res.data.data.duration,
|
||||
name: res.data.data.liveName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 6,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
const updateTask = (res) => {
|
||||
if (props.isLevel == 1) {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.liveId,
|
||||
duration: res.data.data.duration,
|
||||
name: res.data.data.liveName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 6,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
} else if (props.isLevel == 2) {
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId: res.data.data.liveId,
|
||||
duration: res.data.data.duration,
|
||||
name: res.data.data.liveName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 6,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
} else if (props.isLevel == 3) {
|
||||
console.log("mobnku");
|
||||
}
|
||||
};
|
||||
//创建直播
|
||||
const updateLiveBroadcast = () => {
|
||||
if (!state.inputV1) {
|
||||
@@ -556,8 +606,8 @@ export default {
|
||||
if (!regular.test(state.inputV2)) {
|
||||
message.destroy();
|
||||
return message.warning("直播时长需大于0");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
let startTime = toDate(
|
||||
new Date(state.time[0].$d).getTime() / 1000,
|
||||
"Y-M-D"
|
||||
@@ -566,89 +616,85 @@ export default {
|
||||
new Date(state.time[1].$d).getTime() / 1000,
|
||||
"Y-M-D"
|
||||
);
|
||||
|
||||
|
||||
|
||||
state.obj = {
|
||||
afterSignIn: state.inputV6,
|
||||
beforeSignIn: state.inputV7,
|
||||
assessmentId: 0,
|
||||
assessmentId: state.assessmentId == null ? 0 : state.assessmentId,
|
||||
// liveCover: state.fileList,//直播封面
|
||||
liveDuration: state.inputV2,
|
||||
liveEndTime: endTime,
|
||||
liveStartTime: startTime,
|
||||
liveExplain: state.textV1,
|
||||
liveFlag: "",
|
||||
liveId: props.edit?props.EditLiveId:0,
|
||||
liveId: props.edit ? props.EditLiveId : 0,
|
||||
liveLink: state.inputV4,
|
||||
liveName: state.inputV1,
|
||||
livePlayback:state.playback ? "true":"false",
|
||||
livePlaybackLink: state.playback?state.inputV5:"",
|
||||
livePlayback: state.playback ? "true" : "false",
|
||||
livePlaybackLink: state.playback ? state.inputV5 : "",
|
||||
liveTeacherId: state.inputV3,
|
||||
otherSettings:0, //1或0
|
||||
otherSettings: 0, //1或0
|
||||
signOutTime: state.inputV8,
|
||||
standardSettings: state.radioV1, //1或2
|
||||
|
||||
};
|
||||
console.log("zhibo-==========",props.EditLiveId);
|
||||
if(props.edit){
|
||||
console.log("zhibo-==========", props.EditLiveId);
|
||||
if (props.edit) {
|
||||
api
|
||||
.updateLiveBroadcastMessage(state.obj)
|
||||
.then((res) => {
|
||||
console.log("直播编辑成功", res.data.data);
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 2222);
|
||||
});
|
||||
}else{
|
||||
.updateLiveBroadcastMessage(state.obj)
|
||||
.then((res) => {
|
||||
console.log("直播编辑成功", res.data.data);
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 2222);
|
||||
});
|
||||
} else {
|
||||
api
|
||||
.createLiveBroadcast(state.obj)
|
||||
.then((res) => {
|
||||
console.log("调用添加直播接口后", res.data.data);
|
||||
// console.log(state, 2222);
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 2222);
|
||||
});
|
||||
.createLiveBroadcast(state.obj)
|
||||
.then((res) => {
|
||||
console.log("调用添加直播接口后", res.data.data);
|
||||
// console.log(state, 2222);
|
||||
message.success("提交成功");
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 2222);
|
||||
});
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
const options = ref([{
|
||||
value: 'jack',
|
||||
label: 'Jack',
|
||||
}, {
|
||||
value: 'lucy',
|
||||
label: 'Lucy',
|
||||
}, {
|
||||
value: 'tom',
|
||||
label: 'Tom',
|
||||
}]);
|
||||
const handleChange2 = value => {
|
||||
const options = ref([]);
|
||||
const handleChange2 = (value) => {
|
||||
console.log(`selected ${value}`);
|
||||
};
|
||||
const handleBlur = () => {
|
||||
console.log('blur');
|
||||
console.log("blur");
|
||||
};
|
||||
const handleFocus = () => {
|
||||
console.log('focus');
|
||||
console.log("focus");
|
||||
};
|
||||
const checkRadio = () =>{
|
||||
if(state.checkedC1){
|
||||
state.discussSettings = "true"
|
||||
}else{
|
||||
const checkRadio = () => {
|
||||
if (state.checkedC1) {
|
||||
state.discussSettings = "true";
|
||||
} else {
|
||||
state.discussSettings = "false";
|
||||
}
|
||||
console.log("state.checkedC1=====",state.discussSettings,state.discussSettings=="true");
|
||||
}
|
||||
console.log(
|
||||
"state.checkedC1=====",
|
||||
state.discussSettings,
|
||||
state.discussSettings == "true"
|
||||
);
|
||||
};
|
||||
const filterOption = (input, option) => {
|
||||
return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0;
|
||||
};
|
||||
const handleChangeAssessment = (value, option) => {
|
||||
console.log("选择了", value, option);
|
||||
state.assessmentId = option.assessmentId;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
afterVisibleChange,
|
||||
@@ -666,6 +712,7 @@ export default {
|
||||
handleChange2,
|
||||
options,
|
||||
checkRadio,
|
||||
handleChangeAssessment,
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -698,6 +745,7 @@ export default {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -141,7 +141,7 @@ export default {
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
@@ -281,8 +281,7 @@ export default {
|
||||
});
|
||||
};
|
||||
const updateTask =()=>{
|
||||
console.log("jinlaile=================",state.assessmentName)
|
||||
if(props.isLevel){
|
||||
if(props.isLevel ==1){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: state.assessmentId,
|
||||
@@ -301,7 +300,7 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else{
|
||||
}else if(props.isLevel ==2){
|
||||
console.log("=========projectTaskId",props.projectTaskId);
|
||||
apiTask
|
||||
.addTask({
|
||||
@@ -320,6 +319,8 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
console.log("");
|
||||
}
|
||||
}
|
||||
//重置在线信息
|
||||
|
||||
@@ -131,13 +131,10 @@ export default {
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
EditWorkId: { // 要编辑的workId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
@@ -186,8 +183,8 @@ export default {
|
||||
// message.error("handleFinishFailed");
|
||||
};
|
||||
const updateTask =(res)=>{
|
||||
console.log("jinlaile=================",res.data.data.linkId,props.isLevel,props.isactive,props.routerId,props.routerTaskId)
|
||||
if(props.isLevel){
|
||||
|
||||
if(props.isLevel ==1){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.linkId,
|
||||
@@ -206,7 +203,7 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else{
|
||||
}else if(props.isLevel ==2){
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId:res.data.data.linkId,
|
||||
@@ -224,6 +221,8 @@ export default {
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
console.log("");
|
||||
}
|
||||
}
|
||||
//创建外链
|
||||
@@ -315,6 +314,7 @@ export default {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
margin-top:32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
@@ -15,6 +15,13 @@
|
||||
@click="closeDrawer"
|
||||
/>
|
||||
</div>
|
||||
<div style="display: flex; flex-direction: row">
|
||||
<a-button style="width:100px;"
|
||||
@click="()=>{isOuter = 1}"
|
||||
:class="[isOuter == 1? 'outer' : '' ]">系统考试</a-button>
|
||||
<a-button style="width:100px;" @click="()=>{isOuter = 2}"
|
||||
:class="[isOuter == 2? 'outer' : '' ]" >外部考试</a-button>
|
||||
</div>
|
||||
<a-form
|
||||
ref="formRef"
|
||||
name="custom-validation"
|
||||
@@ -207,22 +214,7 @@ import {createExamination,queryExaminationDetailById,updateExamination} from "@/
|
||||
import { ProjectEditTask, RouterEditTask } from "@/api/indexTask"
|
||||
|
||||
import dayjs from 'dayjs';
|
||||
const rowSelection = ref({
|
||||
checkStrictly: false,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
console.log(
|
||||
`selectedRowKeys: ${selectedRowKeys}`,
|
||||
"selectedRows: ",
|
||||
selectedRows
|
||||
);
|
||||
},
|
||||
onSelect: (record, selected, selectedRows) => {
|
||||
console.log(record, selected, selectedRows);
|
||||
},
|
||||
onSelectAll: (selected, selectedRows, changeRows) => {
|
||||
console.log(selected, selectedRows, changeRows);
|
||||
},
|
||||
});
|
||||
|
||||
export default {
|
||||
name: "AddTest",
|
||||
// components: {
|
||||
@@ -257,7 +249,7 @@ export default {
|
||||
default: null,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
@@ -285,6 +277,7 @@ export default {
|
||||
});
|
||||
const state = reactive({
|
||||
addLoading: false,
|
||||
isOuter:1, // 是否为外部考试
|
||||
})
|
||||
const formRef = ref();
|
||||
let checkExaminationName = async (_rule, value) => {
|
||||
@@ -460,118 +453,51 @@ export default {
|
||||
}
|
||||
const updateTest = () => {
|
||||
state.addLoading = true;
|
||||
let obj = {
|
||||
"examinationDuration": formState.examinationDuration,
|
||||
"examinationEndTime": dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
"examinationExplain": formState.examinationExplain,
|
||||
"examinationId": props.edit?props.EditTestId : 0,
|
||||
"examinationLimit": formState.examinationLimit,
|
||||
"examinationName": formState.examinationName,
|
||||
"examinationPaperId": 0,
|
||||
"examinationPaperName": formState.choosedTest,
|
||||
"examinationStartTime": dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
"passLine": formState.passLine,
|
||||
"questionArrangement": formState.questionArrangement,
|
||||
"scoringModel": formState.scoringModel,
|
||||
"showAnalysis": formState.showAnalysis,
|
||||
"showAnswers": formState.showAnswers,
|
||||
}
|
||||
if(props.edit) { // 编辑任务
|
||||
myUpdateExamination()
|
||||
updateExamination(obj)
|
||||
.then((res)=>{
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
}).catch(()=>{
|
||||
message.error(`编辑失败`)
|
||||
});
|
||||
}else { // 创建任务
|
||||
myCreateExamination()
|
||||
}
|
||||
createExamination(obj)
|
||||
.then((res)=>{
|
||||
updateTask(res);
|
||||
closeDrawer();
|
||||
}).catch(()=>{
|
||||
message.error(`编辑失败`)
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const myUpdateExamination = () => {
|
||||
let obj = {
|
||||
"createTime": "",
|
||||
"createUser": 0,
|
||||
"examinationDuration": formState.examinationDuration,
|
||||
"examinationEndTime": dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
"examinationExplain": formState.examinationExplain,
|
||||
"examinationFlag": "",
|
||||
"examinationId": props.EditTestId,
|
||||
"examinationLimit": formState.examinationLimit,
|
||||
"examinationName": formState.examinationName,
|
||||
"examinationPaperId": 0,
|
||||
"examinationPaperName": formState.choosedTest,
|
||||
"examinationStartTime": dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
"examinationTag": "",
|
||||
"passLine": formState.passLine,
|
||||
"questionArrangement": formState.questionArrangement,
|
||||
"scoringModel": formState.scoringModel,
|
||||
"showAnalysis": formState.showAnalysis,
|
||||
"showAnswers": formState.showAnswers,
|
||||
"updateTime": "",
|
||||
"updateUser": 0
|
||||
}
|
||||
updateExamination(obj).then((res)=>{
|
||||
console.log(res);
|
||||
// 如果是关卡页面进入 ---------------------------------
|
||||
if(props.isLevel) {
|
||||
myRouterEditTask(res.data.data.examinationId)
|
||||
}else {
|
||||
myProjectEditTask(res.data.data.examinationId)
|
||||
}
|
||||
}).catch(()=>{
|
||||
message.error(`编辑失败`)
|
||||
})
|
||||
|
||||
}
|
||||
const myCreateExamination = () => {
|
||||
let obj = {
|
||||
"createTime": "",
|
||||
"createUser": 0,
|
||||
"examinationDuration": formState.examinationDuration,
|
||||
"examinationEndTime": dayjs(formState.choosedTime[1]).format("YYYY-MM-DD"),
|
||||
"examinationExplain": formState.examinationExplain,
|
||||
"examinationFlag": "",
|
||||
"examinationId": 0,
|
||||
"examinationLimit": formState.examinationLimit,
|
||||
"examinationName": formState.examinationName,
|
||||
"examinationPaperId": 0,
|
||||
"examinationPaperName": formState.choosedTest,
|
||||
"examinationStartTime": dayjs(formState.choosedTime[0]).format("YYYY-MM-DD"),
|
||||
"examinationTag": "",
|
||||
"passLine": formState.passLine,
|
||||
"questionArrangement": formState.questionArrangement,
|
||||
"scoringModel": formState.scoringModel,
|
||||
"showAnalysis": formState.showAnalysis,
|
||||
"showAnswers": formState.showAnswers,
|
||||
"updateTime": "",
|
||||
"updateUser": 0
|
||||
}
|
||||
createExamination(obj).then((res)=>{
|
||||
if(props.isLevel) {
|
||||
myRouterEditTask(res.data.data.examinationId)
|
||||
}else {
|
||||
myProjectEditTask(res.data.data.examinationId)
|
||||
}
|
||||
}).catch((err)=>{
|
||||
message.error(`添加失败${err}`)
|
||||
})
|
||||
}
|
||||
const myProjectEditTask = (testId) => {
|
||||
let editObj = {
|
||||
"courseId": testId,
|
||||
"duration": 50,
|
||||
"flag": true,
|
||||
"name": formState.examinationName,
|
||||
"projectId": props.projectId,
|
||||
"projectTaskId": props.projectTaskId || null,
|
||||
"stageId": props.chooseStageId,
|
||||
"type": 5
|
||||
}
|
||||
// 新增编辑或新增项目
|
||||
ProjectEditTask(editObj).then(res => {
|
||||
console.log(` 编辑项目成功的打印 ${res}`);
|
||||
message.success(`${props.EditTestId? '编辑' : '新增'}阶段任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
closeDrawer();
|
||||
}).catch(err => {
|
||||
message.error(`${props.EditTestId? '编辑' : '新增'}阶段任务失败`)
|
||||
console.log(` 编辑项目失败的打印 ${err}`);
|
||||
})
|
||||
}
|
||||
|
||||
const myRouterEditTask = (testId) => {
|
||||
let editObj1 = {
|
||||
const updateTask = (res) => {
|
||||
if(props.isLevel == 1){
|
||||
let editObj1 = {
|
||||
"chapterId": props.isactive,
|
||||
"courseId": testId,
|
||||
"duration": 30,
|
||||
"flag": true,
|
||||
"name": formState.examinationName,
|
||||
"courseId": res.data.data.examinationId,
|
||||
"name": res.data.data.examinationName,
|
||||
"routerId": props.routerId,
|
||||
"routerTaskId": props.routerTaskId || 0,
|
||||
"type": 5
|
||||
}
|
||||
|
||||
RouterEditTask(editObj1).then(res => {
|
||||
console.log(` 编辑关卡成功的打印 ${res}`);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
@@ -581,7 +507,28 @@ export default {
|
||||
}).catch(err => {
|
||||
message.error(`${props.edit ? '编辑' : '新增'}关卡任务失败`)
|
||||
console.log(` 编辑关卡失败的打印 ${err}`);
|
||||
})
|
||||
});
|
||||
}else if(props.isLevel ==2){
|
||||
let editObj = {
|
||||
"courseId": res.data.data.examinationId,
|
||||
"duration": 0,
|
||||
"name": res.data.data.examinationName,
|
||||
"projectId": props.projectId,
|
||||
"projectTaskId": props.projectTaskId || 0,
|
||||
"stageId": props.chooseStageId,
|
||||
"type": 5
|
||||
}
|
||||
// 新增编辑或新增项目
|
||||
ProjectEditTask(editObj).then(() => {
|
||||
message.success(`${props.EditTestId? '编辑' : '新增'}阶段任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
}).catch(() => {
|
||||
message.error(`${props.EditTestId? '编辑' : '新增'}阶段任务失败`)
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
console.log("");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
const cloradio1 = (value) => {
|
||||
@@ -608,7 +555,6 @@ export default {
|
||||
formState,
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
rowSelection,
|
||||
cloradio1,
|
||||
cloradio2,
|
||||
cloradio3,
|
||||
|
||||
@@ -75,8 +75,7 @@
|
||||
<cre-vote
|
||||
v-model:crevoteVisible="crevotevisible"
|
||||
@getData="getStemId"
|
||||
v-model:voteStemId="voteStemId"
|
||||
v-model:editStem="editStem"
|
||||
v-model:ballotId="ballotId"
|
||||
/>
|
||||
</div>
|
||||
<!-- 创建投票侧弹窗 -->
|
||||
@@ -122,42 +121,21 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2" @click="creoredi()">确定</button>
|
||||
<button class="btn1" @click="closeDrawer()">取消</button>
|
||||
<button class="btn2" @click="updateVoteInfo()">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, ref } from "vue";
|
||||
import CreVote from "../../components/drawers/CreVote.vue";
|
||||
import { reactive, toRefs} from "vue";
|
||||
import CreVote from "./CreVote.vue";
|
||||
import * as api from "../../api/indexVote";
|
||||
import * as apitaskadd from "../../api/indexTaskadd";
|
||||
import { message } from "ant-design-vue";
|
||||
import { toDate } from "../../api/method";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
const options1 = ref([
|
||||
{
|
||||
value: "value1",
|
||||
label: "请选择状态",
|
||||
},
|
||||
]);
|
||||
const rowSelection = ref({
|
||||
checkStrictly: false,
|
||||
onChange: (selectedRowKeys, selectedRows) => {
|
||||
console.log(
|
||||
`selectedRowKeys: ${selectedRowKeys}`,
|
||||
"selectedRows: ",
|
||||
selectedRows
|
||||
);
|
||||
},
|
||||
onSelect: (record, selected, selectedRows) => {
|
||||
console.log(record, selected, selectedRows);
|
||||
},
|
||||
onSelectAll: (selected, selectedRows, changeRows) => {
|
||||
console.log(selected, selectedRows, changeRows);
|
||||
},
|
||||
});
|
||||
import dayjs from "dayjs";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
|
||||
|
||||
export default {
|
||||
name: "AddVote",
|
||||
@@ -173,9 +151,9 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
learn: {
|
||||
voteId: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
default: null,
|
||||
},
|
||||
projectId: {
|
||||
type: Number,
|
||||
@@ -185,83 +163,71 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
voteId: {
|
||||
routerTaskId: {
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
ballotId: {
|
||||
routerId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
isactive: {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
inputV1: "",
|
||||
textV1: "",
|
||||
creVote: false,
|
||||
crevotevisible: false,
|
||||
time: undefined,
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
basevote: "",
|
||||
endTimes: "",
|
||||
startTimes: "",
|
||||
ascriptionId: "",
|
||||
voteStemId: null,
|
||||
voteId:"",
|
||||
voteStemName:"",
|
||||
ballotName: "",
|
||||
editStem: false, //编辑状态
|
||||
ballotId: "", //题干id
|
||||
ballotId: 0, //题干id
|
||||
optionId: "", //删除,修改选项id
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
state.inputV1 = "",
|
||||
state.inputV1 = "",
|
||||
state.textV1 = "",
|
||||
state.startTimes = "",
|
||||
state.time = undefined,
|
||||
state.endTimes = "",
|
||||
state.basevote = "",
|
||||
ctx.emit("update:addvoteVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
// if (props.edit == true) {
|
||||
// queryVoteText()
|
||||
// }
|
||||
queryVoteInfo();
|
||||
};
|
||||
const showDrawerCreVote = () => {
|
||||
state.crevotevisible = true;
|
||||
if (state.creVote == true) {
|
||||
state.editStem = true
|
||||
}
|
||||
};
|
||||
const getStemId = (data) => {
|
||||
state.ballotName = data.ballotName;
|
||||
state.voteStemName = data.voteStemName;
|
||||
state.voteStemId = Number(data.voteStemId);
|
||||
state.ballotId = Number(data.ballotId)
|
||||
state.creVote = data.creVote;
|
||||
console.log('state.voteStemId', state.voteStemId);
|
||||
console.log('state.voteStemId', state.creVote);
|
||||
state.ballotId =data.ballotId;
|
||||
}
|
||||
//暂时没用 之前给子用传参来着
|
||||
// const changeVData = (data) => {
|
||||
// console.log("111", data);
|
||||
// state.creVote = data.creVote;
|
||||
// state.ascriptionId = data.ascriptionId;
|
||||
// state.voteStemId = data.voteStemId;
|
||||
// state.voteStemName = data.voteStemName;
|
||||
// console.log("222", state.creVote);
|
||||
// console.log("333", state.ascriptionId);
|
||||
// };
|
||||
|
||||
const delBox = () => {
|
||||
state.creVote = false;
|
||||
};
|
||||
|
||||
const updateTableData = (data) => {
|
||||
console.log(data, 'data');
|
||||
}
|
||||
|
||||
//删除题干信息接口
|
||||
const dleVoteStem = () => {
|
||||
let objdelstem = {
|
||||
@@ -275,17 +241,68 @@ export default {
|
||||
})
|
||||
}
|
||||
|
||||
//新建还是编辑方法
|
||||
const creoredi = () => {
|
||||
if (props.eidt == false) {
|
||||
createVoteText()
|
||||
//根据投票id获取投票信息
|
||||
const queryVoteInfo = ()=>{
|
||||
/**
|
||||
let obj = {
|
||||
voteId:props.voteId
|
||||
}
|
||||
else {
|
||||
changeVoteText()
|
||||
.queryVoteText(obj)
|
||||
.then((res)=>{
|
||||
console.log('获取投票信息成功',res);
|
||||
state.inputV1 = res.data.data.voteName
|
||||
state.time = [dayjs(res.data.data.voteEndTime).format("YYYY-MM-DD"), dayjs(res.data.data.voteEndTime).format("YYYY-MM-DD")]
|
||||
state.textV1 = res.data.data.voteExplain
|
||||
state.baseVote = res.data.data.baseVote
|
||||
state.ascriptionId = res.data.data.ascriptionId
|
||||
state.ballotId = res.data.data.ballotId
|
||||
})
|
||||
.catch((err)=>{
|
||||
console.log('获取投票信息失败',err);
|
||||
})
|
||||
**/
|
||||
|
||||
}
|
||||
const updateToTask =(res)=>{
|
||||
if(props.isLevel){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.voteId,
|
||||
name: res.data.data.voteName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 12,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else{
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId:res.data.data.voteId,
|
||||
name: res.data.data.voteName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 12,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}
|
||||
}
|
||||
//创建投票信息
|
||||
const createVoteText = () => {
|
||||
//修改投票信息接口
|
||||
const updateVoteInfo = () => {
|
||||
if (!state.inputV1) {
|
||||
message.destroy();
|
||||
return message.info("请输入投票名称");
|
||||
@@ -294,137 +311,47 @@ export default {
|
||||
if (state.basevote == "") {
|
||||
state.basevote = 1;
|
||||
}
|
||||
|
||||
if (state.time != undefined) {
|
||||
state.endTimes = toDate(
|
||||
new Date(state.time[0].$d).getTime() / 1000,
|
||||
"Y-M-D"
|
||||
);
|
||||
state.startTimes = toDate(
|
||||
new Date(state.time[1].$d).getTime() / 1000,
|
||||
"Y-M-D"
|
||||
);
|
||||
if(state.time != undefined){
|
||||
state.startTime = dayjs(state.time[0]).format("YYYY-MM-DD");
|
||||
state.endTime = dayjs(state.time[1]).format("YYYY-MM-DD");
|
||||
}
|
||||
|
||||
|
||||
let obj = {
|
||||
voteId: props.edit?state.voteId : 0,
|
||||
voteName: state.inputV1,
|
||||
voteStartTime: state.startTime,
|
||||
voteEndTime: state.endTime,
|
||||
ballotId: state.ballotId,
|
||||
baseVote: state.basevote,
|
||||
createTime: "",
|
||||
createUser: 0,
|
||||
updateTime: "",
|
||||
updateUser: 0,
|
||||
voteEndTime: state.endTimes,
|
||||
voteExplain: state.textV1,
|
||||
voteFlag: "",
|
||||
voteId: 0,
|
||||
voteName: state.inputV1,
|
||||
voteStartTime: state.startTimes,
|
||||
voteTag: ""
|
||||
|
||||
};
|
||||
api
|
||||
.createVote(obj)
|
||||
.then((res) => {
|
||||
console.log("创建成功123", res);
|
||||
message.success("创建成功");
|
||||
let changeVoteId = {
|
||||
voteId: res.data.data.voteId,
|
||||
ballotId: state.ballotId,
|
||||
}
|
||||
ctx.emit("getData", changeVoteId);
|
||||
closeDrawer();
|
||||
if (props.learn == 0)
|
||||
//添加到项目任务列表
|
||||
apitaskadd
|
||||
.addTask({
|
||||
courseId: 0,
|
||||
duration: 0,
|
||||
flag: true,
|
||||
name: obj.voteName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 12,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
//自定义事件给父组件传值
|
||||
ctx.emit("changeData", false);
|
||||
//重新获取任务列表
|
||||
// apiTask.getTask({ projectId: 28 });
|
||||
// router.push("/taskadd");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
else {
|
||||
let editObj1 = {
|
||||
chapterId: 36,
|
||||
courseId: 0,
|
||||
duration: 0,
|
||||
flag: true,
|
||||
name: obj.voteName,
|
||||
routerId: 92,
|
||||
routerTaskId: 0,
|
||||
type: 12,
|
||||
};
|
||||
RouterEditTask(editObj1);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建失败", err);
|
||||
});
|
||||
};
|
||||
|
||||
//根据投票id获取投票信息
|
||||
// const queryVoteText = ()=>{
|
||||
// let objqurvt = {
|
||||
// voteStemId:state.voteStemId
|
||||
// //没有接口 个人认为应该是这个id
|
||||
// }
|
||||
// api
|
||||
// //目前没接口 大概写的
|
||||
// .queryVoteText(objqurvt)
|
||||
// .then((res)=>{
|
||||
// console.log('获取投票信息成功',res);
|
||||
// state.inputV1 = res.data.data.voteName
|
||||
// state.endTimes = res.data.data.voteEndTime
|
||||
// state.startTimes = res.data.data.voteStartTime
|
||||
// state.textV1 = res.data.data.voteExplain
|
||||
// state.baseVote = res.data.data.baseVote
|
||||
// state.ascriptionId = res.data.data.ascriptionId
|
||||
// state.ballotId = res.data.data.ballotId
|
||||
// })
|
||||
// .catch((err)=>{
|
||||
// console.log('获取投票信息失败',err);
|
||||
// })
|
||||
// }
|
||||
//修改投票信息接口
|
||||
const changeVoteText = () => {
|
||||
let objcvt = {
|
||||
ballotId: state.ballotId,
|
||||
baseVote: state.basevote,
|
||||
createTime: "",
|
||||
createUser: 0,
|
||||
updateTime: "",
|
||||
updateUser: 0,
|
||||
voteEndTime: state.endTimes,
|
||||
voteExplain: state.textV1,
|
||||
voteFlag: "",
|
||||
voteId: state.voteId,
|
||||
voteName: state.inputV1,
|
||||
voteStartTime: state.startTimes,
|
||||
voteTag: ""
|
||||
voteExplain: state.textV1,
|
||||
createUser:0,
|
||||
updateUser:0,
|
||||
voteTag:"",
|
||||
}
|
||||
api
|
||||
.editVote(objcvt)
|
||||
if(props.edit){
|
||||
api
|
||||
.editVote(obj)
|
||||
.then((res) => {
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
console.log('修改投票信息成功', res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log('修改投票信息失败', err);
|
||||
})
|
||||
}else{
|
||||
api
|
||||
.createVote(obj)
|
||||
.then((res) => {
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
console.log('创建投票信息成功', res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log('创建投票信息失败', err);
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
return {
|
||||
...toRefs(state),
|
||||
@@ -432,16 +359,11 @@ export default {
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
getStemId,
|
||||
// changeVData,
|
||||
rowSelection,
|
||||
options1,
|
||||
queryVoteInfo,
|
||||
dleVoteStem,
|
||||
creoredi,
|
||||
createVoteText,
|
||||
changeVoteText,
|
||||
updateVoteInfo,
|
||||
delBox,
|
||||
// queryVoteText,
|
||||
updateTableData,
|
||||
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -474,6 +396,7 @@ export default {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@@ -123,9 +123,9 @@ export default {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
editStem: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
ballotId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
},
|
||||
setup(props, ctx) {
|
||||
@@ -204,13 +204,13 @@ export default {
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
if (props.editStem == true) {
|
||||
if (props.ballotId != 0) {
|
||||
queryStemText()
|
||||
}
|
||||
};
|
||||
//创建题干还是编辑题干
|
||||
const creoredi = () => {
|
||||
if (props.eidtStem == false) {
|
||||
if (props.ballotId) {
|
||||
createQueTit()
|
||||
}
|
||||
else {
|
||||
@@ -320,13 +320,11 @@ export default {
|
||||
}
|
||||
//根据id获取题干信息
|
||||
const queryStemText = () => {
|
||||
let objqurst = {
|
||||
stemId: 1,
|
||||
ballotId: "",
|
||||
}
|
||||
api
|
||||
.queryStemByStemId(objqurst)
|
||||
.queryStemByStemId({ballotId:props.ballotId})
|
||||
.then((res) => {
|
||||
|
||||
|
||||
console.log('获取题干信息成功', res);
|
||||
state.inputV1 = res.data.data.voteName
|
||||
})
|
||||
@@ -437,6 +435,7 @@ export default {
|
||||
align-items: center;
|
||||
margin-top: 32px;
|
||||
margin-bottom: 32px;
|
||||
margin-top: 32px;;
|
||||
.signbox {
|
||||
width: 120px;
|
||||
display: flex;
|
||||
|
||||
@@ -52,19 +52,19 @@
|
||||
<div class="grouprightscore">
|
||||
<div class="sbutton" @click="typeChange(1)">
|
||||
<img
|
||||
v-if="stuValue===2"
|
||||
v-if="stuValue === 2"
|
||||
src="../../assets/images/taskpage/stu0.png"
|
||||
/>
|
||||
<img v-else src="../../assets/images/taskpage/stu.png" />
|
||||
<div :class="stuValue===2 ? '' : 'btn1'">学员积分榜</div>
|
||||
<div :class="stuValue === 2 ? '' : 'btn1'">学员积分榜</div>
|
||||
</div>
|
||||
<div class="sbutton" @click="typeChange(2)">
|
||||
<img
|
||||
v-if="stuValue===2"
|
||||
v-if="stuValue === 2"
|
||||
src="../../assets/images/taskpage/group.png"
|
||||
/>
|
||||
<img v-else src="../../assets/images/taskpage/group0.png" />
|
||||
<div :class="stuValue===2 ? 'btn1' : ''">小组积分榜</div>
|
||||
<div :class="stuValue === 2 ? 'btn1' : ''">小组积分榜</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="group" style="justify-content: center">
|
||||
@@ -101,7 +101,7 @@
|
||||
</div>
|
||||
<div class="listdiv">
|
||||
<div class="slist">
|
||||
<a-list :data-source="stuValue ===1? datascoreg : datascore">
|
||||
<a-list :data-source="stuValue === 1 ? datascoreg : datascore">
|
||||
<template #renderItem="{ item }">
|
||||
<div class="item">
|
||||
<div v-if="item.id == 1" class="itemleft">
|
||||
@@ -141,13 +141,13 @@
|
||||
<div class="groupright">
|
||||
<div class="spandiv"><span class="spantext">规则</span></div>
|
||||
<div v-if="edit" class="btns">
|
||||
<div class="btn1" @click="edit = !edit">
|
||||
<div class="btn1" @click="edit = false">
|
||||
<img src="../../assets/images/projectadd/edit1.png" />
|
||||
<span class="btn1text">编辑</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="btns">
|
||||
<div class="btn1" @click="edit = !edit">
|
||||
<div class="btn1" @click="editRule">
|
||||
<span class="btn1text">保存</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -164,48 +164,37 @@
|
||||
><span class="scoretext">{{ score1 }} </span><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>完成在线课程获得 </span
|
||||
><span class="scoretext">{{ done }}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>完成面授课程获得 </span
|
||||
><span class="scoretext">{{ done1 }}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>完成作业成绩不低于 </span
|
||||
><span class="scoretext">{{ done2 }}</span
|
||||
><span>分获得</span>
|
||||
<span class="scoretext">{{ done3 }}</span
|
||||
><span>分获得</span> <span class="scoretext">{{ done3 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>前</span
|
||||
><span class="scoretext">{{ four1}}</span
|
||||
<span>前</span><span class="scoretext">{{ four1 }}</span
|
||||
><span>名学完在线课程获得</span>
|
||||
<span class="scoretext">{{ four2}}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>前</span
|
||||
><span class="scoretext">{{ four3}}</span
|
||||
<span class="scoretext">{{ four2 }}</span
|
||||
><span style="margin-right: 50px">积分</span> <span>前</span
|
||||
><span class="scoretext">{{ four3 }}</span
|
||||
><span>名提交作业且成绩不低于</span>
|
||||
<span class="scoretext">{{ four4}}</span
|
||||
><span >分获得</span>
|
||||
<span class="scoretext">{{ four5}}</span
|
||||
<span class="scoretext">{{ four4 }}</span
|
||||
><span>分获得</span> <span class="scoretext">{{ four5 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考试成绩高于</span
|
||||
><span class="scoretext">{{ five1 }}</span
|
||||
><span>分获得</span>
|
||||
<span class="scoretext">{{ five2 }}</span
|
||||
><span>分获得</span> <span class="scoretext">{{ five2 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考勤正常学员获得 </span
|
||||
><span class="scoretext">{{ six1}}</span
|
||||
><span class="scoretext">{{ six1 }}</span
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>成为小组长获得</span
|
||||
><span class="scoretext">{{ seven1 }}</span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
><span style="margin-right: 50px">积分</span>
|
||||
<span>优秀学员可获得</span>
|
||||
<span class="scoretext">{{ seven2 }}</span
|
||||
><span>积分</span>
|
||||
@@ -228,82 +217,60 @@
|
||||
><span>积分</span>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>完成在线课程获得 </span
|
||||
><span
|
||||
><a-input v-model:value="done" :bordered="false" /></span
|
||||
><span style="margin-right:50px">积分</span>
|
||||
<span>完成面授课程获得 </span
|
||||
><a-input
|
||||
v-model:value="done1"
|
||||
:bordered="false"
|
||||
/>
|
||||
<span style="margin-right:50px">积分</span>
|
||||
<span>完成作业成绩不低于 </span
|
||||
><a-input
|
||||
v-model:value="done2"
|
||||
:bordered="false"
|
||||
/><span>分获得</span>
|
||||
<a-input
|
||||
v-model:value="done3"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
<span>完成作业成绩不低于 </span
|
||||
><a-input v-model:value="done2" :bordered="false" /><span
|
||||
>分获得</span
|
||||
>
|
||||
<a-input v-model:value="done3" :bordered="false" /><span
|
||||
>积分</span
|
||||
>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>前</span
|
||||
><a-input
|
||||
v-model:value="four1"
|
||||
:bordered="false"
|
||||
/><span>名学完在线课程获得</span>
|
||||
<a-input
|
||||
v-model:value="four2"
|
||||
:bordered="false"
|
||||
/><span style="margin-right:50px">积分</span>
|
||||
><a-input v-model:value="four1" :bordered="false" /><span
|
||||
>名学完在线课程获得</span
|
||||
>
|
||||
<a-input v-model:value="four2" :bordered="false" /><span
|
||||
style="margin-right: 50px"
|
||||
>积分</span
|
||||
>
|
||||
<span>前</span
|
||||
><a-input
|
||||
v-model:value="four3"
|
||||
:bordered="false"
|
||||
/><span>名提交作业且成绩不低于</span>
|
||||
<a-input
|
||||
v-model:value="four4"
|
||||
:bordered="false"
|
||||
/><span >分获得</span>
|
||||
<a-input
|
||||
v-model:value="four5"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
|
||||
><a-input v-model:value="four3" :bordered="false" /><span
|
||||
>名提交作业且成绩不低于</span
|
||||
>
|
||||
<a-input v-model:value="four4" :bordered="false" /><span
|
||||
>分获得</span
|
||||
>
|
||||
<a-input v-model:value="four5" :bordered="false" /><span
|
||||
>积分</span
|
||||
>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考试成绩高于</span
|
||||
><a-input
|
||||
v-model:value="five1"
|
||||
:bordered="false"
|
||||
/><span>分获得</span>
|
||||
<a-input
|
||||
v-model:value="five2"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
><a-input v-model:value="five1" :bordered="false" /><span
|
||||
>分获得</span
|
||||
>
|
||||
<a-input v-model:value="five2" :bordered="false" /><span
|
||||
>积分</span
|
||||
>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>考勤正常学员获得 </span
|
||||
><a-input
|
||||
v-model:value="six1"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
><a-input v-model:value="six1" :bordered="false" /><span
|
||||
>积分</span
|
||||
>
|
||||
</div>
|
||||
<div class="content">
|
||||
<span>成为小组长获得</span
|
||||
><a-input
|
||||
v-model:value="seven1"
|
||||
:bordered="false"
|
||||
/><span style="margin-right:50px">积分</span>
|
||||
><a-input v-model:value="seven1" :bordered="false" /><span
|
||||
style="margin-right: 50px"
|
||||
>积分</span
|
||||
>
|
||||
<span>优秀学员可获得</span>
|
||||
<a-input
|
||||
v-model:value="seven2"
|
||||
:bordered="false"
|
||||
/><span>积分</span>
|
||||
<a-input v-model:value="seven2" :bordered="false" /><span
|
||||
>积分</span
|
||||
>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div></a-tab-pane
|
||||
@@ -315,8 +282,11 @@
|
||||
|
||||
<script>
|
||||
import StuScoreDetail from "../../components/drawers/StuScoreDetail";
|
||||
import { reactive, toRefs } from "vue";
|
||||
import { reactive, toRefs, computed } from "vue";
|
||||
import * as api from "../../api/index1";
|
||||
// import { message } from "ant-design-vue";
|
||||
// import { scoreRule } from "../../api/indexTaskadd"; //获取项目积分规则
|
||||
import { setScoreRule } from "../../api/indexTaskadd"; //设置项目积分规则
|
||||
export default {
|
||||
name: "ProjectScore",
|
||||
components: {
|
||||
@@ -483,24 +453,21 @@ export default {
|
||||
tableDataTotal: 30,
|
||||
stuValue: false,
|
||||
Svisible: false,
|
||||
score1: 5,
|
||||
score2: 5,
|
||||
done:null,
|
||||
done1:null,
|
||||
done2:null,
|
||||
done3:null,
|
||||
four1:null,
|
||||
four2:null,
|
||||
four3:null,
|
||||
four4:null,
|
||||
four5:null,
|
||||
five1:null,
|
||||
five2:null,
|
||||
six1:null,
|
||||
seven1:null,
|
||||
seven2:null,
|
||||
score1: null,
|
||||
done2: null,
|
||||
done3: null,
|
||||
four1: null,
|
||||
four2: null,
|
||||
four3: null,
|
||||
four4: null,
|
||||
four5: null,
|
||||
five1: null,
|
||||
five2: null,
|
||||
six1: null,
|
||||
seven1: null,
|
||||
seven2: null,
|
||||
edit: true,
|
||||
searchRankName:null,//榜单搜索名称
|
||||
searchRankName: null, //榜单搜索名称
|
||||
});
|
||||
const getTableData = () => {
|
||||
let datas = state.tabledataStu;
|
||||
@@ -523,6 +490,23 @@ export default {
|
||||
});
|
||||
state.tabledataStu = datas;
|
||||
};
|
||||
const scoresum = computed(() => {
|
||||
// console.log(Object.prototype.toString.call(Number(state.score1)));
|
||||
// if (Object.prototype.toString.call(state.score1) !== "[object Number]") {
|
||||
// message.destroy();
|
||||
// return message.warning("请输入合法数字");
|
||||
// }
|
||||
return (
|
||||
Number(state.score1) +
|
||||
Number(state.done3) +
|
||||
Number(state.four2) +
|
||||
Number(state.four5) +
|
||||
Number(state.five2) +
|
||||
Number(state.six1) +
|
||||
Number(state.seven1) +
|
||||
Number(state.seven2)
|
||||
);
|
||||
});
|
||||
getTableData();
|
||||
|
||||
const tabsChange = (e) => {
|
||||
@@ -530,30 +514,29 @@ export default {
|
||||
// console.log('获取项目积分-榜单')
|
||||
scoreRank(1, 1);
|
||||
}
|
||||
rankReset()
|
||||
state.todayvalue='1'
|
||||
state.stuValue=1
|
||||
rankReset();
|
||||
state.todayvalue = "1";
|
||||
state.stuValue = 1;
|
||||
};
|
||||
|
||||
|
||||
|
||||
//重置
|
||||
const rankReset=()=>{
|
||||
state.searchRankName=null
|
||||
}
|
||||
const rankReset = () => {
|
||||
state.searchRankName = null;
|
||||
};
|
||||
// start -------榜单---------------榜单------------榜单------------------榜单---------
|
||||
//学员积分还是小组积分
|
||||
const typeChange = (num) => {
|
||||
const typeChange = (num) => {
|
||||
state.stuValue = num;
|
||||
scoreRank(state.stuValue , state.todayvalue);
|
||||
scoreRank(state.stuValue, state.todayvalue);
|
||||
};
|
||||
//选择时间
|
||||
const changeday = (e) => {
|
||||
state.todayvalue = e.target.value;
|
||||
scoreRank(state.stuValue , state.todayvalue);
|
||||
scoreRank(state.stuValue, state.todayvalue);
|
||||
};
|
||||
//搜索
|
||||
//搜索
|
||||
const searchRank = () => {
|
||||
scoreRank(state.stuValue , state.todayvalue)
|
||||
scoreRank(state.stuValue, state.todayvalue);
|
||||
};
|
||||
//项目积分榜单
|
||||
const scoreRank = (period, type) => {
|
||||
@@ -576,6 +559,46 @@ export default {
|
||||
});
|
||||
};
|
||||
// end -----榜单----------------榜单----------------------榜单-----------榜单----------
|
||||
const editRule = () => {
|
||||
console.log(props.projectId);
|
||||
let obj = {
|
||||
courseScore: state.score1,
|
||||
examItem: {
|
||||
numLimit: 0,
|
||||
score: state.five2,
|
||||
scoreLimit: state.five1,
|
||||
},
|
||||
//有名次要求的提交作业
|
||||
homeworkItem: {
|
||||
numLimit: state.four3,
|
||||
score: state.four5,
|
||||
scoreLimit: state.four4,
|
||||
},
|
||||
leaderScore: state.seven1,
|
||||
projectId: props.projectId,
|
||||
signScore: state.six1,
|
||||
topCompleteCourseItem: {
|
||||
numLimit: state.four1,
|
||||
score: state.four2,
|
||||
scoreLimit: 0,
|
||||
},
|
||||
topStudentScore: state.seven2,
|
||||
totalScore: scoresum.value,
|
||||
};
|
||||
console.log(obj);
|
||||
setScoreRule(obj)
|
||||
.then((res) => {
|
||||
console.log(res.data, "修改成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err.data);
|
||||
});
|
||||
// scoreRule({
|
||||
// projectId: props.projectId,
|
||||
// });
|
||||
|
||||
state.edit = true;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
typeChange,
|
||||
@@ -584,14 +607,25 @@ export default {
|
||||
rankReset,
|
||||
tabsChange,
|
||||
scoreRank,
|
||||
editRule,
|
||||
scoresum,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
// 计算属性的 getter
|
||||
scoresum: function () {
|
||||
return Number(this.score1) + Number(this.score2);
|
||||
},
|
||||
},
|
||||
// computed: {
|
||||
// // 计算属性的 getter
|
||||
// scoresum: function () {
|
||||
// return (
|
||||
// Number(this.score1) +
|
||||
// Number(this.done3) +
|
||||
// Number(this.four2) +
|
||||
// Number(this.four5) +
|
||||
// Number(this.five2) +
|
||||
// Number(this.six1) +
|
||||
// Number(this.seven1) +
|
||||
// Number(this.seven2)
|
||||
// );
|
||||
// },
|
||||
// },
|
||||
};
|
||||
</script>
|
||||
<style lang="scss">
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
<div class="ipt_name">课程编号:</div>
|
||||
<div class="fi_input">
|
||||
<a-input
|
||||
v-model:value="value"
|
||||
v-model:value="valueClass"
|
||||
style="width: 240px; height: 40px; border-radius: 8px"
|
||||
placeholder="请输入项目名称"
|
||||
/>
|
||||
@@ -37,6 +37,8 @@
|
||||
style="width: 240px"
|
||||
placeholder="请选择"
|
||||
:options="options1"
|
||||
@change="handleChange"
|
||||
v-model:value="valueContent"
|
||||
allowClear
|
||||
showSearch
|
||||
/>
|
||||
@@ -44,11 +46,11 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="mi_btns">
|
||||
<div class="btn btn1">
|
||||
<div class="btn btn1" @click="search">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">搜索</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
<div class="btn btn2" @click="reset">
|
||||
<div class="search"></div>
|
||||
<div class="btnText">重置</div>
|
||||
</div>
|
||||
@@ -63,28 +65,23 @@
|
||||
"
|
||||
:row-selection="rowSelection"
|
||||
:columns="columns1"
|
||||
:data-source="tableData1"
|
||||
:data-source="classTableData"
|
||||
:loading="tableDataTotal === -1 ? true : false"
|
||||
:pagination="{
|
||||
showSizeChanger: true,
|
||||
showQuickJumper: true,
|
||||
hideOnSinglePage: true,
|
||||
pageSizeOptions: [],
|
||||
pageSize: pageSize,
|
||||
current: currentPage,
|
||||
total: tableDataTotal,
|
||||
onChange: (page, pageSize) => {
|
||||
currentPage = page;
|
||||
// console.log('page', page)
|
||||
// 加翻页查找代码
|
||||
// this.setState({
|
||||
// currentPage: page,
|
||||
// }, () => {
|
||||
// this.getMilitaryDeployment()
|
||||
// })
|
||||
},
|
||||
}"
|
||||
:pagination="false"
|
||||
/>
|
||||
<div class="pa">
|
||||
<a-pagination
|
||||
v-if="total > 10"
|
||||
showSizeChanger="true"
|
||||
showQuickJumper="true"
|
||||
hideOnSinglePage="true"
|
||||
:pageSize="pageSize"
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
@change="changePaginationStu"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
@@ -96,10 +93,17 @@
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs, ref } from "vue";
|
||||
// import { planList } from "../../api/indexTaskadd";
|
||||
import { list } from "../../api/indexTaskadd";
|
||||
import { toDate } from "../../api/method";
|
||||
const options1 = ref([
|
||||
{
|
||||
value: "value1",
|
||||
label: "请选择状态",
|
||||
label: "通用",
|
||||
},
|
||||
{
|
||||
value: "value2",
|
||||
label: "领导",
|
||||
},
|
||||
]);
|
||||
const columns1 = [
|
||||
@@ -172,7 +176,7 @@ export default {
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
tableData1: [
|
||||
classTableData: [
|
||||
{
|
||||
key: "1",
|
||||
num: "JDF2022071100001",
|
||||
@@ -185,8 +189,8 @@ export default {
|
||||
{
|
||||
key: "2",
|
||||
num: "JDF2022071100001",
|
||||
name: "管理能力课程",
|
||||
content: "领导力",
|
||||
name: "时间管理课程",
|
||||
content: "通用力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
time: "2022-10-31 23:12:00",
|
||||
@@ -194,7 +198,7 @@ export default {
|
||||
{
|
||||
key: "3",
|
||||
num: "JDF2022071100001",
|
||||
name: "快速换模SMED",
|
||||
name: "时间管理课程",
|
||||
content: "通用力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
@@ -203,80 +207,119 @@ export default {
|
||||
{
|
||||
key: "4",
|
||||
num: "JDF2022071100001",
|
||||
name: "巧妙对话人见人夸",
|
||||
content: "领导力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
time: "2022-10-31 23:12:00",
|
||||
},
|
||||
{
|
||||
key: "5",
|
||||
num: "JDF2022071100001",
|
||||
name: "管理能力课程",
|
||||
content: "领导力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
time: "2022-10-31 23:12:00",
|
||||
},
|
||||
{
|
||||
key: "6",
|
||||
num: "JDF2022071100001",
|
||||
name: "时间管理课程",
|
||||
content: "领导力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
time: "2022-10-31 23:12:00",
|
||||
},
|
||||
{
|
||||
key: "7",
|
||||
num: "JDF2022071100001",
|
||||
name: "时间管理课程",
|
||||
content: "领导力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
time: "2022-10-31 23:12:00",
|
||||
},
|
||||
{
|
||||
key: "8",
|
||||
num: "JDF2022071100001",
|
||||
name: "时间管理课程",
|
||||
content: "领导力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
time: "2022-10-31 23:12:00",
|
||||
},
|
||||
{
|
||||
key: "9",
|
||||
num: "JDF2022071100001",
|
||||
name: "时间管理课程",
|
||||
content: "领导力",
|
||||
content: "通用力",
|
||||
teacher: "BOE教师",
|
||||
creator: "管理员",
|
||||
time: "2022-10-31 23:12:00",
|
||||
},
|
||||
],
|
||||
currentPage: 1,
|
||||
tableDataTotal: 100,
|
||||
tableDataTotal: null,
|
||||
pageSize: 10,
|
||||
value:'',
|
||||
valueClass: null, //课程编号
|
||||
valueContent: null, //内容分类
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
ctx.emit("update:selfacetVisible", false);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
getClassList();
|
||||
};
|
||||
const showDrawerSelFacet = () => {
|
||||
state.selfacetvisible = true;
|
||||
// const showDrawerSelFacet = () => {
|
||||
// state.selfacetvisible = true;
|
||||
// };
|
||||
//获取面授课列表
|
||||
const getClassList = (obj) => {
|
||||
let objn = obj || {
|
||||
auditStatus: 0,
|
||||
beginTime: 0,
|
||||
categoryId: 0,
|
||||
createName: "",
|
||||
endTime: 0,
|
||||
name: "",
|
||||
pageNo: state.currentPage,
|
||||
pageSize: 10,
|
||||
projectName: "",
|
||||
};
|
||||
list(objn)
|
||||
.then((res) => {
|
||||
console.log(res.data.data.rows);
|
||||
let result = res.data.data;
|
||||
state.tableDataTotal = result.total;
|
||||
if (result.total > 0) {
|
||||
getClassData(result.rows);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("获取列表失败", err.data);
|
||||
});
|
||||
};
|
||||
|
||||
const getClassData = (tabledata) => {
|
||||
let data = tabledata;
|
||||
let array = [];
|
||||
data.map((value) => {
|
||||
let obj = {
|
||||
key: value.offcourseId,
|
||||
num: value.offcourseId,
|
||||
name: value.name,
|
||||
teacher: value.teacher,
|
||||
creator: value.teacher,
|
||||
time: toDate(value.publishTime / 1000, "Y-M-D"),
|
||||
categoryId: value.categoryId,
|
||||
//需要判断content
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
state.classTableData = array;
|
||||
};
|
||||
|
||||
const handleChange = (value, option) => {
|
||||
console.log("改变了", value, option);
|
||||
console.log(state.valueContent);
|
||||
};
|
||||
//重置
|
||||
const reset = () => {
|
||||
state.valueClass = null;
|
||||
state.valueContent = null;
|
||||
//重新获取列表
|
||||
getClassList();
|
||||
};
|
||||
//搜索
|
||||
const search = () => {
|
||||
let obj = {
|
||||
auditStatus: 0,
|
||||
beginTime: 0,
|
||||
categoryId: 0, //分类
|
||||
createName: "",
|
||||
endTime: 0,
|
||||
name: "",
|
||||
pageNo: state.currentPage,
|
||||
pageSize: 10,
|
||||
projectName: "",
|
||||
};
|
||||
getClassList(obj);
|
||||
};
|
||||
const changePaginationStu = (page) => {
|
||||
state.currentPage = page;
|
||||
getClassList();
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
showDrawerSelFacet,
|
||||
// showDrawerSelFacet,
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
options1,
|
||||
columns1,
|
||||
rowSelection,
|
||||
getClassData,
|
||||
handleChange,
|
||||
reset,
|
||||
getClassList,
|
||||
search,
|
||||
changePaginationStu,
|
||||
// change,
|
||||
};
|
||||
},
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
>
|
||||
<div class="drawerMain">
|
||||
<div class="header">
|
||||
<div class="headerTitle">添加投票任务</div>
|
||||
<div v-if="edit" class="headerTitle">编辑投票</div>
|
||||
<div v-else class="headerTitle">添加投票</div>
|
||||
<img
|
||||
style="width: 29px; height: 29px; cursor: pointer"
|
||||
src="../../assets/images/basicinfo/close.png"
|
||||
@@ -32,7 +33,7 @@
|
||||
<a-input
|
||||
v-model:value="inputV1"
|
||||
style="width: 424px; height: 32px"
|
||||
placeholder="请输入任务名称"
|
||||
placeholder="请输入投票名称"
|
||||
maxlength="20"
|
||||
/>
|
||||
</div>
|
||||
@@ -51,29 +52,37 @@
|
||||
<button
|
||||
class="xkbtn"
|
||||
:style="{ display: creVote ? 'none' : 'block' }"
|
||||
@click="showDrawerCreateVote"
|
||||
@click="showDrawerCreVote"
|
||||
>
|
||||
创建投票
|
||||
</button>
|
||||
<div>
|
||||
<CreateVote
|
||||
v-model:createVoteVisible="createVoteVisible"
|
||||
v-model:ballotId="ballotId"
|
||||
v-model:editChild="editChild"
|
||||
/>
|
||||
</div>
|
||||
<button
|
||||
class="xkbtn"
|
||||
:style="{ display: creVote ? 'block' : 'none' }"
|
||||
@click="showDrawerCreateVote"
|
||||
@click="showDrawerCreVote"
|
||||
>
|
||||
编辑投票
|
||||
</button>
|
||||
<div :style="{ display: creVote ? 'block' : 'none' }">
|
||||
<div class="fileTigan">
|
||||
<span style="color: #388be1">{{voteStemName}}</span>
|
||||
<div class="delBox" @click="delBox()"></div>
|
||||
<span style="color: #388be1">{{ballotName}}</span>
|
||||
<div class="delBox" @click="dleVoteStem()"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 创建投票侧弹窗 -->
|
||||
<div>
|
||||
<CreateVote
|
||||
v-model:createVoteVisible="createVoteVisible"
|
||||
|
||||
<cre-vote
|
||||
v-model:crevoteVisible="crevotevisible"
|
||||
@getData="getStemId"
|
||||
v-model:ballotId="ballotId"
|
||||
/>
|
||||
</div>
|
||||
<!-- 创建投票侧弹窗 -->
|
||||
@@ -85,7 +94,6 @@
|
||||
<div class="btnbox">
|
||||
<a-range-picker
|
||||
style="width: 424px"
|
||||
v-model:value="time"
|
||||
:placeholder="[' 开始时间', ' 结束时间']"
|
||||
/>
|
||||
</div>
|
||||
@@ -120,38 +128,38 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="main_btns">
|
||||
<button class="btn1">取消</button>
|
||||
<button class="btn2" @click="createVoteText()">确定</button>
|
||||
<button class="btn1" @click="closeDrawer()">取消</button>
|
||||
<button class="btn2" @click="updateVoteInfo()">确定</button>
|
||||
</div>
|
||||
</div>
|
||||
</a-drawer>
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs} from "vue";
|
||||
import CreateVote from "./CreateVote.vue";
|
||||
import CreVote from "./CreateVote.vue";
|
||||
import * as api from "../../api/indexVote";
|
||||
import * as apitaskadd from "../../api/indexTaskadd";
|
||||
import { message } from "ant-design-vue";
|
||||
import { toDate } from "../../api/method";
|
||||
import { RouterEditTask } from "@/api/indexTask";
|
||||
import dayjs from 'dayjs';
|
||||
import dayjs from "dayjs";
|
||||
import * as apiTask from "../../api/indexTaskadd";
|
||||
|
||||
|
||||
export default {
|
||||
name: "AddVote",
|
||||
components: {
|
||||
CreateVote,
|
||||
CreVote,
|
||||
},
|
||||
props: {
|
||||
addvoteVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
EditVoteId:{
|
||||
type: Number,
|
||||
default: 0,
|
||||
},
|
||||
edit: { // 是否为编辑
|
||||
edit: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
voteId: {
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectId: {
|
||||
@@ -167,7 +175,7 @@ export default {
|
||||
default: 0,
|
||||
},
|
||||
isLevel: { // 是否是关卡页面触发
|
||||
type: Boolean,
|
||||
type: Number,
|
||||
default: null,
|
||||
},
|
||||
projectTaskId: { // 要编辑的projectId
|
||||
@@ -182,36 +190,55 @@ export default {
|
||||
type: Number,
|
||||
default: null,
|
||||
}
|
||||
|
||||
|
||||
|
||||
},
|
||||
setup(props, ctx) {
|
||||
const state = reactive({
|
||||
voteName: "",
|
||||
voteExplain: "",
|
||||
inputV1: "",
|
||||
textV1: "",
|
||||
createVoteVisible: false,
|
||||
time: undefined,
|
||||
startTime:"",
|
||||
endTime:"",
|
||||
basevote: "",
|
||||
ascriptionId: "",
|
||||
voteStemId: null,
|
||||
voteId:"",
|
||||
voteStemName:"",
|
||||
ballotName: "",
|
||||
editStem: false, //编辑状态
|
||||
ballotId: 0, //题干id
|
||||
optionId: "", //删除,修改选项id
|
||||
editChild:false,
|
||||
});
|
||||
const closeDrawer = () => {
|
||||
|
||||
state.inputV1 = "",
|
||||
state.textV1 = "",
|
||||
state.time = undefined,
|
||||
state.basevote = "",
|
||||
ctx.emit("update:addvoteVisible", false);
|
||||
ctx.emit("update:edit", false);
|
||||
};
|
||||
const afterVisibleChange = (bool) => {
|
||||
console.log("state", bool);
|
||||
queryVoteInfo();
|
||||
};
|
||||
const showDrawerCreateVote = () => {
|
||||
const showDrawerCreVote = () => {
|
||||
state.createVoteVisible = true;
|
||||
console.log("进来了====");
|
||||
};
|
||||
const changeVData = (data) => {
|
||||
state.ascriptionId = data.ascriptionId;
|
||||
state.editChild = props.edit;
|
||||
console.log("=======前")
|
||||
|
||||
};
|
||||
const getStemId = (data) => {
|
||||
state.ballotName = data.ballotName;
|
||||
state.ballotId =data.ballotId;
|
||||
}
|
||||
|
||||
const delBox = () => {
|
||||
dleVoteStem()
|
||||
state.creVote = false;
|
||||
};
|
||||
|
||||
//删除题干信息接口
|
||||
const dleVoteStem = () => {
|
||||
let objdelstem = {
|
||||
@@ -221,106 +248,135 @@ export default {
|
||||
.then((res) => {
|
||||
console.log('删除题干信息成功', res)
|
||||
message.success('删除题干信息成功')
|
||||
delBox()
|
||||
})
|
||||
}
|
||||
const updteVote = (res) =>{
|
||||
if (props.isLevel)
|
||||
apitaskadd
|
||||
.addTask({
|
||||
courseId: res.data.data.voteId,
|
||||
name: res.data.data.voteName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId:props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 12,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
else {
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.voteId,
|
||||
name: res.data.data.voteName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId,
|
||||
type: 12,
|
||||
}) .then((res) => {
|
||||
console.log("调用项目添加接口后", res.data);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
|
||||
//根据投票id获取投票信息
|
||||
const queryVoteInfo = ()=>{
|
||||
/**
|
||||
let obj = {
|
||||
voteId:props.voteId
|
||||
}
|
||||
.queryVoteText(obj)
|
||||
.then((res)=>{
|
||||
console.log('获取投票信息成功',res);
|
||||
state.inputV1 = res.data.data.voteName
|
||||
state.time = [dayjs(res.data.data.voteEndTime).format("YYYY-MM-DD"), dayjs(res.data.data.voteEndTime).format("YYYY-MM-DD")]
|
||||
state.textV1 = res.data.data.voteExplain
|
||||
state.baseVote = res.data.data.baseVote
|
||||
state.ascriptionId = res.data.data.ascriptionId
|
||||
state.ballotId = res.data.data.ballotId
|
||||
})
|
||||
.catch((err)=>{
|
||||
console.log('获取投票信息失败',err);
|
||||
})
|
||||
**/
|
||||
|
||||
}
|
||||
const updateToTask =(res)=>{
|
||||
if(props.isLevel ==1){
|
||||
RouterEditTask({
|
||||
chapterId: props.isactive,
|
||||
courseId: res.data.data.voteId,
|
||||
name: res.data.data.voteName,
|
||||
routerId: props.routerId,
|
||||
routerTaskId: props.routerTaskId || 0,
|
||||
type: 12,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log(res, 11111);
|
||||
message.success(`${props.edit ? '编辑' : '新增'}关卡任务成功`)
|
||||
ctx.emit("changeData", false);
|
||||
state.addLoading = false;
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 1111);
|
||||
});
|
||||
}else if(props.isLevel ==2){
|
||||
apiTask
|
||||
.addTask({
|
||||
courseId:res.data.data.voteId,
|
||||
name: res.data.data.voteName,
|
||||
projectId: props.projectId,
|
||||
projectTaskId: props.projectTaskId || 0,
|
||||
stageId: props.chooseStageId,
|
||||
type: 12,
|
||||
})
|
||||
.then((res) => {
|
||||
console.log("调用项目添加接口后111", res.data, 11111);
|
||||
ctx.emit("changeData", false);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err, 111111);
|
||||
});
|
||||
}else if(props.isLevel ==3){
|
||||
console.log("");
|
||||
}
|
||||
}
|
||||
//创建投票信息
|
||||
const createVoteText = () => {
|
||||
if (!state.voteName) {
|
||||
//修改投票信息接口
|
||||
const updateVoteInfo = () => {
|
||||
if (!state.inputV1) {
|
||||
message.destroy();
|
||||
return message.info("请输入投票名称");
|
||||
}
|
||||
|
||||
if (state.basevote == "") {
|
||||
state.basevote = 1;
|
||||
}
|
||||
if (state.time != undefined) {
|
||||
state.time[0] = toDate(
|
||||
new Date(state.time[0].$d).getTime() / 1000,
|
||||
"Y-M-D"
|
||||
);
|
||||
state.time[1] = toDate(
|
||||
new Date(state.time[1].$d).getTime() / 1000,
|
||||
"Y-M-D"
|
||||
);
|
||||
if(state.time != undefined){
|
||||
state.startTime = dayjs(state.time[0]).format("YYYY-MM-DD");
|
||||
state.endTime = dayjs(state.time[1]).format("YYYY-MM-DD");
|
||||
}
|
||||
|
||||
let obj = {
|
||||
ascriptionId: state.ascriptionId,
|
||||
voteId: props.edit?state.voteId : 0,
|
||||
voteName: state.inputV1,
|
||||
voteStartTime: state.startTime,
|
||||
voteEndTime: state.endTime,
|
||||
ballotId: state.ballotId,
|
||||
baseVote: state.basevote,
|
||||
voteEndTime: dayjs(state.time[1]).format("YYYY-MM-DD"),
|
||||
voteExplain: state.voteExplain,
|
||||
voteName: state.voteName,
|
||||
voteStartTime: dayjs(state.time[0]).format("YYYY-MM-DD"),
|
||||
};
|
||||
voteExplain: state.textV1,
|
||||
createUser:0,
|
||||
updateUser:0,
|
||||
voteTag:"",
|
||||
}
|
||||
if(props.edit){
|
||||
api
|
||||
.editVote(obj)
|
||||
.then((res) => {
|
||||
console.log("创建成功123", res);
|
||||
message.success("创建成功");
|
||||
updteVote(res);
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
|
||||
console.log('修改投票信息成功', res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建失败", err);
|
||||
});
|
||||
console.log('修改投票信息失败', err);
|
||||
})
|
||||
}else{
|
||||
api
|
||||
.createVote(obj)
|
||||
.then((res) => {
|
||||
updteVote(res);
|
||||
updateToTask(res);
|
||||
closeDrawer();
|
||||
|
||||
console.log('创建投票信息成功', res);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("创建失败", err);
|
||||
});
|
||||
}
|
||||
};
|
||||
console.log('创建投票信息失败', err);
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
return {
|
||||
...toRefs(state),
|
||||
showDrawerCreateVote,
|
||||
showDrawerCreVote,
|
||||
afterVisibleChange,
|
||||
closeDrawer,
|
||||
changeVData,
|
||||
getStemId,
|
||||
queryVoteInfo,
|
||||
dleVoteStem,
|
||||
createVoteText,
|
||||
updateVoteInfo,
|
||||
delBox,
|
||||
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -353,6 +409,7 @@ export default {
|
||||
padding-right: 30px;
|
||||
flex: 1;
|
||||
border-right: 1px solid #e8e8e8;
|
||||
margin-top: 32px;
|
||||
.main_item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,11 +2,11 @@
|
||||
<div class="addwrapper">
|
||||
<div class="addhead">
|
||||
<div class="leftimg">
|
||||
<img class="img" src="../../assets/px.jpg" />
|
||||
<img class="img" :src="picUrl" />
|
||||
</div>
|
||||
<div class="imgfor">
|
||||
<div class="forz">产品经理进阶路径</div>
|
||||
<div class="fort">创建时间:2022-07-21 00:00</div>
|
||||
<div class="forz">{{ styTitle }}</div>
|
||||
<div class="fort">创建时间:{{ cretime }}</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<img class="img1" src="../../assets/images/leveladd/ma.png" />
|
||||
@@ -116,34 +116,46 @@
|
||||
<div class="onerow"><div class="taskmain">关卡概览</div></div>
|
||||
<div class="second" style="margin-top: 0">
|
||||
<div class="nubbox">
|
||||
<span class="nub1">{{routerInfoOverview.totalStudentCnt}}</span>
|
||||
<span class="nub1">{{
|
||||
routerInfoOverview.totalStudentCnt
|
||||
}}</span>
|
||||
<div class="nub2">总人数</div>
|
||||
</div>
|
||||
<div class="nubbox">
|
||||
<span class="nub1" style="color: #ff90ae">{{routerInfoOverview.studyStudentCnt}}</span>
|
||||
<span class="nub1" style="color: #ff90ae">{{
|
||||
routerInfoOverview.studyStudentCnt
|
||||
}}</span>
|
||||
<div class="nub2">学习人数</div>
|
||||
</div>
|
||||
<div class="nubbox">
|
||||
<span class="nub1" style="color: #a497ff">{{routerInfoOverview.completeStudentCnt}}</span>
|
||||
<span class="nub1" style="color: #a497ff">{{
|
||||
routerInfoOverview.completeStudentCnt
|
||||
}}</span>
|
||||
<div class="nub2">完成人数</div>
|
||||
</div>
|
||||
<div class="nubbox">
|
||||
<div>
|
||||
<span class="nub1" style="color: #5dc988">{{routerInfoOverview.onlineCourseCnt}}</span
|
||||
<span class="nub1" style="color: #5dc988">{{
|
||||
routerInfoOverview.onlineCourseCnt
|
||||
}}</span
|
||||
><span style="color: #5dc988; font-size: 14px">%</span>
|
||||
</div>
|
||||
<div class="nub2">在线课程数</div>
|
||||
</div>
|
||||
<div class="nubbox">
|
||||
<div>
|
||||
<span class="nub1" style="color: #ff90ae">{{routerInfoOverview.offLineCourseCnt}}</span
|
||||
<span class="nub1" style="color: #ff90ae">{{
|
||||
routerInfoOverview.offLineCourseCnt
|
||||
}}</span
|
||||
><span style="color: #ff90ae; font-size: 14px">%</span>
|
||||
</div>
|
||||
<div class="nub2">面授课程数</div>
|
||||
</div>
|
||||
<div class="nubbox">
|
||||
<div>
|
||||
<span class="nub1" style="color: #a497ff">{{routerInfoOverview.completeRatio}}</span
|
||||
<span class="nub1" style="color: #a497ff">{{
|
||||
routerInfoOverview.completeRatio
|
||||
}}</span
|
||||
><span style="color: #a497ff; font-size: 14px">%</span>
|
||||
</div>
|
||||
<div class="nub2">总完成率</div>
|
||||
@@ -151,11 +163,17 @@
|
||||
</div>
|
||||
<div class="onerow"><div class="taskmain">关卡信息</div></div>
|
||||
<div class="stagemess">
|
||||
<div v-for="item in stageList"
|
||||
:class= "{ 'stage1': item.stageId == choosedStageId, 'stage2': item.stageId != choosedStageId }"
|
||||
:key="item.stageId" @click="choosedStageId = item.stageId">
|
||||
{{item.stage}}
|
||||
</div>
|
||||
<div
|
||||
v-for="item in stageList"
|
||||
:class="{
|
||||
stage1: item.stageId == choosedStageId,
|
||||
stage2: item.stageId != choosedStageId,
|
||||
}"
|
||||
:key="item.stageId"
|
||||
@click="choosedStageId = item.stageId"
|
||||
>
|
||||
{{ item.stage }}
|
||||
</div>
|
||||
<!-- <div class="stage1">阶段1</div>
|
||||
<div class="stage2">阶段2</div> -->
|
||||
</div>
|
||||
@@ -192,20 +210,35 @@
|
||||
<div class="protext">作业完成率</div>
|
||||
</div>
|
||||
<div class="proright">
|
||||
<div class="pronub" style="margin-left: 280px">{{chapterOverviewList.totalTaskCnt}}</div>
|
||||
<div class="pronub" style="margin-left: 280px">
|
||||
{{ chapterOverviewList.totalTaskCnt }}
|
||||
</div>
|
||||
<div class="proright1">
|
||||
<span class="textpro">关卡任务总数</span>
|
||||
<a-progress :percent="chapterOverviewList.totalTaskCnt" style="width: 369px" />
|
||||
<a-progress
|
||||
:percent="chapterOverviewList.totalTaskCnt"
|
||||
style="width: 369px"
|
||||
/>
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 206px">
|
||||
{{ chapterOverviewList.totalReqCnt }}
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 206px">{{chapterOverviewList.totalReqCnt}}</div>
|
||||
<div class="proright1">
|
||||
<span class="textpro">必修课</span>
|
||||
<a-progress :percent="chapterOverviewList.totalReqCnt" style="width: 369px" />
|
||||
<a-progress
|
||||
:percent="chapterOverviewList.totalReqCnt"
|
||||
style="width: 369px"
|
||||
/>
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 142px">
|
||||
{{ chapterOverviewList.totalOptCnt }}
|
||||
</div>
|
||||
<div class="pronub" style="margin-left: 142px">{{chapterOverviewList.totalOptCnt}}</div>
|
||||
<div class="proright1">
|
||||
<span class="textpro">选修课</span>
|
||||
<a-progress :percent="chapterOverviewList.totalOptCnt" style="width: 369px" />
|
||||
<a-progress
|
||||
:percent="chapterOverviewList.totalOptCnt"
|
||||
style="width: 369px"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -264,27 +297,27 @@
|
||||
</div>
|
||||
<!-- 无数据显示快速创建 -->
|
||||
<div v-show="!taskSyllabus.length">
|
||||
<router-link :to="{ path: '/leveladddetail' }">
|
||||
<div
|
||||
class="taskbox"
|
||||
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
||||
>
|
||||
<div class="leftt">
|
||||
<img src="../../assets/images/taskpage/left1.png" />
|
||||
<router-link :to="{ path: '/leveladddetail' }">
|
||||
<div
|
||||
class="taskbox"
|
||||
style="background: linear-gradient(180deg, #fef3dd, #fffaf0)"
|
||||
>
|
||||
<div class="leftt">
|
||||
<img src="../../assets/images/taskpage/left1.png" />
|
||||
</div>
|
||||
<div class="photo">
|
||||
<img src="../../assets/images/taskpage/picture1.png" />
|
||||
</div>
|
||||
<div class="rightt">
|
||||
<img src="../../assets/images/taskpage/right1.png" />
|
||||
</div>
|
||||
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
|
||||
添加关卡
|
||||
</div>
|
||||
<div class="centermain">快速创建关卡任务</div>
|
||||
</div>
|
||||
<div class="photo">
|
||||
<img src="../../assets/images/taskpage/picture1.png" />
|
||||
</div>
|
||||
<div class="rightt">
|
||||
<img src="../../assets/images/taskpage/right1.png" />
|
||||
</div>
|
||||
<div class="centerbox" style="color: rgba(255, 182, 78, 1)">
|
||||
添加关卡
|
||||
</div>
|
||||
<div class="centermain">快速创建关卡任务</div>
|
||||
</div>
|
||||
</router-link>
|
||||
</div>
|
||||
</router-link>
|
||||
</div>
|
||||
<!-- 无数据显示快速创建 -->
|
||||
|
||||
<!-- 有数据-->
|
||||
@@ -360,16 +393,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div>
|
||||
<div class="iconame">「{{checkType(item.type)}}」</div>
|
||||
<div class="iconame">
|
||||
「{{ checkType(item.type) }}」
|
||||
</div>
|
||||
<div class="icontext">{{ item.name }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="type">
|
||||
<div
|
||||
:class="
|
||||
item.flag ? 'typename1' : 'typename'
|
||||
"
|
||||
>
|
||||
<div :class="item.flag ? 'typename1' : 'typename'">
|
||||
{{ item.flag ? "必修" : "选修" }}
|
||||
</div>
|
||||
</div>
|
||||
@@ -429,7 +460,7 @@
|
||||
: 'none',
|
||||
}"
|
||||
@click="
|
||||
item.type ===2
|
||||
item.type === 2
|
||||
? showCopyModal(item.type)
|
||||
: item.type === 6
|
||||
? showzhibModal(item.type)
|
||||
@@ -546,7 +577,7 @@
|
||||
:current="currentPage"
|
||||
:total="tableDataTotal"
|
||||
class="pagination"
|
||||
style="display:none"
|
||||
style="display: none"
|
||||
/>
|
||||
</div>
|
||||
</div>
|
||||
@@ -559,136 +590,153 @@
|
||||
|
||||
<a-tabs>
|
||||
<a-tab-pane key="1" tab="基本信息">
|
||||
<div class="sametab">
|
||||
<div class="Gcon">
|
||||
<div class="pad"></div>
|
||||
<div class="Gin">
|
||||
<div class="headone">
|
||||
<div class="box"></div>
|
||||
<div class="onetitle">关卡内容可见可学设置</div>
|
||||
<div class="oneedi" @click="showbtn" v-show="twobtn">
|
||||
编辑
|
||||
</div>
|
||||
<div v-show="twobtnn" class="twobtn">
|
||||
<div class="btnone" @click="closebtn">取消</div>
|
||||
<div class="btntwo" @click="closebtn">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="onemain clearfix">
|
||||
<div class="checkcon">
|
||||
<input
|
||||
type="checkbox"
|
||||
name="cb1"
|
||||
value="yulan"
|
||||
class="in"
|
||||
/>
|
||||
<span class="yulan">预览其他关卡</span><br />
|
||||
<div style="width: 10px; height: 4px"></div>
|
||||
<div style="display: flex; align-items: center">
|
||||
<span class="yulan2">学员可预览第</span>
|
||||
<span style="color: #4ea6ff" v-show="number">1</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
/>
|
||||
<span>关-第</span
|
||||
><span style="color: #4ea6ff" v-show="number">4</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue1"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
/>
|
||||
<span>关内容</span>
|
||||
<div class="sametab">
|
||||
<div class="Gcon">
|
||||
<div class="pad"></div>
|
||||
<div class="Gin">
|
||||
<div class="headone">
|
||||
<div class="box"></div>
|
||||
<div class="onetitle">关卡内容可见可学设置</div>
|
||||
<div class="oneedi" @click="showbtn" v-show="twobtn">
|
||||
编辑
|
||||
</div>
|
||||
<div v-show="twobtnn" class="twobtn">
|
||||
<div class="btnone" @click="closebtn">取消</div>
|
||||
<div class="btntwo" @click="closebtn">确定</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="checkcon" style="margin-top: 20px">
|
||||
<input
|
||||
type="checkbox"
|
||||
name="cb1"
|
||||
value="xuexi"
|
||||
class="in"
|
||||
/>
|
||||
<span class="yulan">学习其他关卡</span><br />
|
||||
<div style="width: 10px; height: 4px"></div>
|
||||
<div style="display: flex; align-items: center">
|
||||
<span class="yulan2">学员可预览第</span>
|
||||
<span style="color: #4ea6ff" v-show="number">1</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue2"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
<div class="onemain clearfix">
|
||||
<div class="checkcon">
|
||||
<input
|
||||
type="checkbox"
|
||||
name="cb1"
|
||||
value="yulan"
|
||||
class="in"
|
||||
/>
|
||||
<span>关-第</span
|
||||
><span style="color: #4ea6ff" v-show="number">4</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue3"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
/>
|
||||
<span>关内容</span>
|
||||
<span class="yulan">预览其他关卡</span><br />
|
||||
<div style="width: 10px; height: 4px"></div>
|
||||
<div style="display: flex; align-items: center">
|
||||
<span class="yulan2">学员可预览第</span>
|
||||
<span style="color: #4ea6ff" v-show="number">1</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
/>
|
||||
<span>关-第</span
|
||||
><span style="color: #4ea6ff" v-show="number">4</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue1"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
/>
|
||||
<span>关内容</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="checkcon" style="margin-top: 20px">
|
||||
<input
|
||||
type="checkbox"
|
||||
name="cb1"
|
||||
value="xuexi"
|
||||
class="in"
|
||||
/>
|
||||
<span class="yulan">学习其他关卡</span><br />
|
||||
<div style="width: 10px; height: 4px"></div>
|
||||
<div style="display: flex; align-items: center">
|
||||
<span class="yulan2">学员可预览第</span>
|
||||
<span style="color: #4ea6ff" v-show="number">1</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue2"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
/>
|
||||
<span>关-第</span
|
||||
><span style="color: #4ea6ff" v-show="number">4</span>
|
||||
<a-input-number
|
||||
v-model:value="nubvalue3"
|
||||
v-show="inputbox"
|
||||
:controls="false"
|
||||
:autofocus="true"
|
||||
:min="1"
|
||||
/>
|
||||
<span>关内容</span>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
<br />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
</a-tab-pane>
|
||||
|
||||
<a-tab-pane key="2" tab="共享文档">
|
||||
<div class="sametab">
|
||||
<div class="Gcon">
|
||||
<div class="pad"></div>
|
||||
<div class="Gin">
|
||||
<div class="headone">
|
||||
<div class="box"></div>
|
||||
<div class="onetitle">上传共享文档</div>
|
||||
<div class="oneedi">
|
||||
<a-switch v-model:checked="docChecked" ></a-switch>
|
||||
<a-tab-pane key="2" tab="共享文档">
|
||||
<div class="sametab">
|
||||
<div class="Gcon">
|
||||
<div class="pad"></div>
|
||||
<div class="Gin">
|
||||
<div class="headone">
|
||||
<div class="box"></div>
|
||||
<div class="onetitle">上传共享文档</div>
|
||||
<div class="oneedi">
|
||||
<a-switch v-model:checked="docChecked"></a-switch>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnbox" style="margin: 20px">
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
action="/api/file/upload"
|
||||
@change="handleChange"
|
||||
>
|
||||
<span
|
||||
class="xkbtn"
|
||||
style="cursor: pointer; font-size: 17px"
|
||||
>上传</span
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/basicinfo/cloud.png"
|
||||
style="cursor: pointer; width: 34px; height: 34px"
|
||||
alt=""
|
||||
/>
|
||||
</a-upload>
|
||||
<div class="btnbox" style="margin: 20px">
|
||||
<span style="color: #999999">
|
||||
支持:pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
v-for="item in docList"
|
||||
:key="item.src"
|
||||
class="docListStyle"
|
||||
>
|
||||
<img
|
||||
src="@/assets/images/basicinfo/download.png"
|
||||
style="
|
||||
cursor: pointer;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-right: 40px;
|
||||
"
|
||||
alt=""
|
||||
/>
|
||||
<span style="font: oblique 16px Sans-serif">{{
|
||||
item.name
|
||||
}}</span>
|
||||
<span style="color: #4ea6ff; float: right">删除</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="btnbox" style="margin:20px;">
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
action="/api/file/upload"
|
||||
@change="handleChange"
|
||||
>
|
||||
<span class="xkbtn" style="cursor: pointer; font-size: 17px" >上传</span>
|
||||
<img src="@/assets/images/basicinfo/cloud.png" style="cursor: pointer;
|
||||
width:34px;height:34px;
|
||||
" alt="">
|
||||
</a-upload>
|
||||
<div class="btnbox" style="margin:20px;">
|
||||
<span style="color: #999999">
|
||||
支持:pdf.ppt.pptx.doc.docx.xls.xlsx.jpeg.png.gif.zip
|
||||
</span>
|
||||
</div>
|
||||
<div v-for="item in docList" :key="item.src" class="docListStyle">
|
||||
<img src="@/assets/images/basicinfo/download.png" style="cursor: pointer;
|
||||
width:40px;height:40px;margin-right:40px;
|
||||
" alt="">
|
||||
<span style="font: oblique 16px Sans-serif">{{item.name}}</span>
|
||||
<span style="color: #4ea6ff;float:right;">删除</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
</a-tab-pane>
|
||||
</a-tab-pane>
|
||||
</a-tabs>
|
||||
<a-modal
|
||||
style="padding: 0"
|
||||
@@ -848,10 +896,10 @@
|
||||
<!-- 导入学员抽屉 -->
|
||||
<imp-stu v-model:AddImpStuvisible="AddImpStuvisible" />
|
||||
<!-- 学员管理查看抽屉 -->
|
||||
<check-stu
|
||||
v-model:CheckStuvisible="CheckStuvisible"
|
||||
v-model:studentId="studentId"
|
||||
/>
|
||||
<check-stu
|
||||
v-model:CheckStuvisible="CheckStuvisible"
|
||||
v-model:studentId="studentId"
|
||||
/>
|
||||
<!-- 面授学员抽屉 -->
|
||||
<face-stu v-model:FSvisible="FSvisible" />
|
||||
<!-- 活动考勤抽屉 -->
|
||||
@@ -875,8 +923,8 @@
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { ref, reactive, toRefs,onMounted, createVNode } from "vue";
|
||||
import { ExclamationCircleOutlined } from '@ant-design/icons-vue';
|
||||
import { ref, reactive, toRefs, onMounted, createVNode } from "vue";
|
||||
import { ExclamationCircleOutlined } from "@ant-design/icons-vue";
|
||||
import { message, Modal } from "ant-design-vue";
|
||||
import PathAddStu from "../../components/drawers/pathStuAdd";
|
||||
import ImpStu from "../../components/drawers/AddLevelImportStu";
|
||||
@@ -893,6 +941,7 @@ import { storage } from "../../api/storage";
|
||||
import { getRouterOverview } from "@/api/indexLearningPath";
|
||||
import { GetRouterDetail } from "@/api/indexTask";
|
||||
import * as api from "../../api/index1";
|
||||
import { toDate } from "../../api/method";
|
||||
|
||||
export default {
|
||||
name: "LevelAdd",
|
||||
@@ -912,36 +961,41 @@ export default {
|
||||
// const routers = useRoute();
|
||||
// const store = useStore();
|
||||
const state = reactive({
|
||||
routerId: storage.get("routerId") ?JSON.parse(storage.get("routerId")) : null, //学习路径页面传的学习路径id
|
||||
routerId: storage.get("routerId")
|
||||
? JSON.parse(storage.get("routerId"))
|
||||
: null, //学习路径页面传的学习路径id
|
||||
gatename: null, //关卡名称
|
||||
gatenamee: null, //学员管理关卡名称
|
||||
deleteAll: false, //批量删除学员弹窗
|
||||
Stuvisible: false, //添加学员抽屉
|
||||
AddImpStuvisible: false, //导入学员抽屉
|
||||
CheckStuvisible: false, //学员管理的查看抽屉
|
||||
addLoading:false, // 加载动画
|
||||
choosedStageId:1, // 选择的阶段id
|
||||
addLoading: false, // 加载动画
|
||||
choosedStageId: 1, // 选择的阶段id
|
||||
twobtn: true,
|
||||
number: true,
|
||||
twobtnn: false,
|
||||
inputbox: false,
|
||||
Wvisible: false, //作业管理
|
||||
studentId:null,
|
||||
studentId: null,
|
||||
styTitle: null,
|
||||
cretime: null,
|
||||
picUrl: null,
|
||||
// 共享文档列表
|
||||
docList:[
|
||||
docList: [
|
||||
{
|
||||
name:'测试文档1.doc',
|
||||
src:"",
|
||||
name: "测试文档1.doc",
|
||||
src: "",
|
||||
},
|
||||
{
|
||||
name:'测试文档2.doc',
|
||||
src:"",
|
||||
name: "测试文档2.doc",
|
||||
src: "",
|
||||
},
|
||||
{
|
||||
name:'测试文档3.doc',
|
||||
src:"",
|
||||
}
|
||||
],
|
||||
name: "测试文档3.doc",
|
||||
src: "",
|
||||
},
|
||||
],
|
||||
huodModal: false,
|
||||
zhibModal: false,
|
||||
//任务大纲列表
|
||||
@@ -957,11 +1011,10 @@ export default {
|
||||
total: 50, //总人数
|
||||
complete: 20, //完成人数
|
||||
percent: 40,
|
||||
routerTaskId:0,
|
||||
}
|
||||
routerTaskId: 0,
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
},
|
||||
],
|
||||
activeKey: ref("1"),
|
||||
value: ref(" "),
|
||||
@@ -969,8 +1022,8 @@ export default {
|
||||
nubvalue2: ref("1"),
|
||||
nubvalue3: ref("4"),
|
||||
nubvalue1: ref("4"),
|
||||
fileList:ref([]),
|
||||
docChecked:true,
|
||||
fileList: ref([]),
|
||||
docChecked: true,
|
||||
currentPage: 1,
|
||||
tableDataTotal: 100,
|
||||
pageSize: 10,
|
||||
@@ -1022,33 +1075,36 @@ export default {
|
||||
});
|
||||
|
||||
const levelList = reactive({
|
||||
routerInfoOverview:{ // 路径图整体数据概览
|
||||
totalStudentCnt:0,
|
||||
studyStudentCnt:0,
|
||||
completeStudentCnt:0,
|
||||
onlineCourseCnt:0,
|
||||
offLineCourseCnt:0,
|
||||
completeRatio:0,
|
||||
routerInfoOverview: {
|
||||
// 路径图整体数据概览
|
||||
totalStudentCnt: 0,
|
||||
studyStudentCnt: 0,
|
||||
completeStudentCnt: 0,
|
||||
onlineCourseCnt: 0,
|
||||
offLineCourseCnt: 0,
|
||||
completeRatio: 0,
|
||||
},
|
||||
chapterOverviewList:{ // 路径图阶段数据概览
|
||||
completeCourseRatio:0,
|
||||
completeExamRatio:0,
|
||||
completeRatio:0,
|
||||
totalTaskCnt:0,
|
||||
totalReqCnt:0,
|
||||
totalOptCnt:0,
|
||||
chapterOverviewList: {
|
||||
// 路径图阶段数据概览
|
||||
completeCourseRatio: 0,
|
||||
completeExamRatio: 0,
|
||||
completeRatio: 0,
|
||||
totalTaskCnt: 0,
|
||||
totalReqCnt: 0,
|
||||
totalOptCnt: 0,
|
||||
},
|
||||
stageList: [ // 阶段列表
|
||||
stageList: [
|
||||
// 阶段列表
|
||||
{
|
||||
stageId:1,
|
||||
stage:"关卡一"
|
||||
stageId: 1,
|
||||
stage: "关卡一",
|
||||
},
|
||||
{
|
||||
stageId:2,
|
||||
stage:"关卡二"
|
||||
}
|
||||
]
|
||||
})
|
||||
stageId: 2,
|
||||
stage: "关卡二",
|
||||
},
|
||||
],
|
||||
});
|
||||
|
||||
const tableDataFunc = () => {
|
||||
const columns = [
|
||||
@@ -1148,9 +1204,14 @@ export default {
|
||||
>
|
||||
调整
|
||||
</span>
|
||||
<span style="color:#4EA6FF;cursor:pointer"
|
||||
onClick={() => {delConfirm(text.record.studentId)}}
|
||||
>删除</span>
|
||||
<span
|
||||
style="color:#4EA6FF;cursor:pointer"
|
||||
onClick={() => {
|
||||
delConfirm(text.record.studentId);
|
||||
}}
|
||||
>
|
||||
删除
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
@@ -1250,8 +1311,8 @@ export default {
|
||||
|
||||
const changeTabs = (e) => {
|
||||
console.log("切换tabs", e, state.routerId);
|
||||
if(e == 2) {
|
||||
myGetRouterDetail()
|
||||
if (e == 2) {
|
||||
myGetRouterDetail();
|
||||
}
|
||||
//学员管理
|
||||
if (e == 3) {
|
||||
@@ -1272,21 +1333,21 @@ export default {
|
||||
.then((res) => {
|
||||
console.log("获取学员列表", res);
|
||||
let data = res.data.data.rows || null;
|
||||
state.tableData = []
|
||||
if(data.length){
|
||||
for(let i in data) {
|
||||
let _time = new Date(data[i].beginStudyTime*1000);
|
||||
state.tableData = [];
|
||||
if (data.length) {
|
||||
for (let i in data) {
|
||||
let _time = new Date(data[i].beginStudyTime * 1000);
|
||||
state.tableData.push({
|
||||
key:i+1,
|
||||
com:data[i].userInfoBo.deptName,
|
||||
name:data[i].userInfoBo.userName,
|
||||
gang:data[i].userInfoBo.jobName,
|
||||
cur:data[i].currentChapterName || '0',
|
||||
jin:data[i].completeChapterCnt+'/'+ data[i].totalChapterCnt,
|
||||
time:_time.toLocaleDateString(),
|
||||
studentId:data[i].studentId,
|
||||
})
|
||||
|
||||
key: i + 1,
|
||||
com: data[i].userInfoBo.deptName,
|
||||
name: data[i].userInfoBo.userName,
|
||||
gang: data[i].userInfoBo.jobName,
|
||||
cur: data[i].currentChapterName || "0",
|
||||
jin: data[i].completeChapterCnt + "/" + data[i].totalChapterCnt,
|
||||
time: _time.toLocaleDateString(),
|
||||
studentId: data[i].studentId,
|
||||
});
|
||||
|
||||
// state.tableData[i].key = i+1;
|
||||
// state.tableData[i].com = data[i].userInfoBo.deptName;
|
||||
// state.tableData[i].name = data[i].userInfoBo.userName
|
||||
@@ -1301,8 +1362,8 @@ export default {
|
||||
console.log("获取学员列表失败", err);
|
||||
});
|
||||
};
|
||||
const checkType = (type) => {
|
||||
let typeRules = [
|
||||
const checkType = (type) => {
|
||||
let typeRules = [
|
||||
"",
|
||||
"在线",
|
||||
"面授",
|
||||
@@ -1318,57 +1379,71 @@ export default {
|
||||
"投票",
|
||||
];
|
||||
return typeRules[type];
|
||||
}
|
||||
};
|
||||
|
||||
//学员管理------------------------------------------------
|
||||
|
||||
onMounted(() => {
|
||||
state.addLoading = true;
|
||||
getOverview()
|
||||
})
|
||||
getOverview();
|
||||
GetRouterDetail(state.routerId).then((res) => {
|
||||
state.styTitle = res.data.data.routerInfo.name;
|
||||
state.cretime = toDate(
|
||||
res.data.data.routerInfo.createTime / 1000,
|
||||
"Y-M-D h:m"
|
||||
);
|
||||
state.picUrl = res.data.data.routerInfo.picUrl;
|
||||
});
|
||||
});
|
||||
|
||||
// 获取项目概览
|
||||
const getOverview = () =>{
|
||||
getRouterOverview(state.routerId).then((res) => {
|
||||
Object.keys(res.data.data.routerInfoOverview).forEach(item => {
|
||||
levelList.routerInfoOverview[item] = res.data.data.routerInfoOverview[item] || 0
|
||||
const getOverview = () => {
|
||||
getRouterOverview(state.routerId)
|
||||
.then((res) => {
|
||||
Object.keys(res.data.data.routerInfoOverview).forEach((item) => {
|
||||
levelList.routerInfoOverview[item] =
|
||||
res.data.data.routerInfoOverview[item] || 0;
|
||||
});
|
||||
Object.keys(res.data.data.chapterOverviewList).forEach((item) => {
|
||||
levelList.chapterOverviewList[item] =
|
||||
res.data.data.chapterOverviewList[item] || 0;
|
||||
});
|
||||
// res.data.data.routerInfoOverview.forEach((r) => {
|
||||
// console.log(r)
|
||||
// })
|
||||
state.addLoading = false;
|
||||
console.log("项目概览--" + res);
|
||||
})
|
||||
Object.keys(res.data.data.chapterOverviewList).forEach(item => {
|
||||
levelList.chapterOverviewList[item] = res.data.data.chapterOverviewList[item] || 0
|
||||
})
|
||||
// res.data.data.routerInfoOverview.forEach((r) => {
|
||||
// console.log(r)
|
||||
// })
|
||||
state.addLoading = false;
|
||||
console.log("项目概览--"+res)
|
||||
}).catch(err => {
|
||||
state.addLoading = false;
|
||||
message.error("概览获取失败")
|
||||
console.log("获取失败"+err)
|
||||
})
|
||||
}
|
||||
.catch((err) => {
|
||||
state.addLoading = false;
|
||||
message.error("概览获取失败");
|
||||
console.log("获取失败" + err);
|
||||
});
|
||||
};
|
||||
// 获取路径列表
|
||||
const myGetRouterDetail = () => {
|
||||
GetRouterDetail(state.routerId).then(res => {
|
||||
let data = res.data.data.chapterList
|
||||
state.taskSyllabus = data
|
||||
// for(let i in data) {
|
||||
// state.taskSyllabus[i].name = data[i].name
|
||||
// if(data[i].taskList.length > 0) {
|
||||
// for(let j in data[i].taskList) {
|
||||
// Object.keys(data[i].taskList[j]).forEach(item => {
|
||||
// state.taskSyllabus[i].taskList[j][item] = data[i].taskList[j][item] || 0
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
}).catch(err => {
|
||||
console.log(err)
|
||||
message.error('获取路径列表失败'+err);
|
||||
})
|
||||
GetRouterDetail(state.routerId)
|
||||
.then((res) => {
|
||||
let data = res.data.data.chapterList;
|
||||
|
||||
}
|
||||
state.taskSyllabus = data;
|
||||
// for(let i in data) {
|
||||
// state.taskSyllabus[i].name = data[i].name
|
||||
// if(data[i].taskList.length > 0) {
|
||||
// for(let j in data[i].taskList) {
|
||||
// Object.keys(data[i].taskList[j]).forEach(item => {
|
||||
// state.taskSyllabus[i].taskList[j][item] = data[i].taskList[j][item] || 0
|
||||
// })
|
||||
// }
|
||||
// }
|
||||
|
||||
// }
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
message.error("获取路径列表失败" + err);
|
||||
});
|
||||
};
|
||||
|
||||
const handleChange = (info) => {
|
||||
if (info.file.status !== "uploading") {
|
||||
@@ -1383,23 +1458,26 @@ export default {
|
||||
};
|
||||
|
||||
const delConfirm = (id) => {
|
||||
Modal.confirm({
|
||||
title: '是否确认删除',
|
||||
Modal.confirm({
|
||||
title: "是否确认删除",
|
||||
icon: createVNode(ExclamationCircleOutlined),
|
||||
content: '',
|
||||
okText: '确认',
|
||||
cancelText: '取消',
|
||||
onOk(){
|
||||
api.delStudent({routerId:100,studentIds:[id]}).then(res => {
|
||||
message.success("删除成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
message.error("删除失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
content: "",
|
||||
okText: "确认",
|
||||
cancelText: "取消",
|
||||
onOk() {
|
||||
api
|
||||
.delStudent({ routerId: 100, studentIds: [id] })
|
||||
.then((res) => {
|
||||
message.success("删除成功");
|
||||
console.log(res);
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error("删除失败" + err);
|
||||
console.log(err);
|
||||
});
|
||||
},
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
return {
|
||||
...toRefs(state),
|
||||
|
||||
@@ -179,11 +179,11 @@
|
||||
<div class="filt">
|
||||
<div class="le">
|
||||
<div class="leftimg">
|
||||
<img class="img" src="../../assets/px.jpg" />
|
||||
<img class="img" :src="picUrl" />
|
||||
</div>
|
||||
<div class="imgfor">
|
||||
<div class="forz">产品经理进阶路径</div>
|
||||
<div class="fort">创建时间:2022-07-21 00:00</div>
|
||||
<div class="forz">{{ styTitle }}</div>
|
||||
<div class="fort">创建时间:{{ creTime }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightt">
|
||||
@@ -243,7 +243,7 @@
|
||||
<div>
|
||||
<add-homework
|
||||
v-model:addhomeworkVisible="addhomeworkvisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:edit="edit"
|
||||
@@ -266,7 +266,7 @@
|
||||
<div>
|
||||
<add-test
|
||||
v-model:addtestVisible="addtestvisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:edit="edit"
|
||||
@@ -288,7 +288,7 @@
|
||||
<div>
|
||||
<add-live
|
||||
v-model:addliveVisible="addlivevisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:routerId="routerId"
|
||||
@@ -310,7 +310,7 @@
|
||||
<div>
|
||||
<add-ref
|
||||
v-model:addrefVisible="addrefvisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:routerId="routerId"
|
||||
@@ -333,7 +333,7 @@
|
||||
<add-discuss
|
||||
v-model:adddiscussVisible="adddiscussvisible"
|
||||
@changeData="updateTableData"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
v-model:isactive="isactive"
|
||||
v-model:edit="edit"
|
||||
v-model:routerId="routerId"
|
||||
@@ -354,7 +354,7 @@
|
||||
<div>
|
||||
<add-active
|
||||
v-model:addactiveVisible="addactivevisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:isactive="isactive"
|
||||
@changeData="updateTableData"
|
||||
@@ -376,7 +376,7 @@
|
||||
<div>
|
||||
<add-eval
|
||||
v-model:addevalVisible="addevalvisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:edit="edit"
|
||||
@@ -399,7 +399,7 @@
|
||||
<div>
|
||||
<add-invist
|
||||
v-model:addinvistVisible="addinvistvisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:edit="edit"
|
||||
@@ -423,7 +423,7 @@
|
||||
<div>
|
||||
<add-vote
|
||||
v-model:addvoteVisible="addvotevisible"
|
||||
:isLevel="true"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:isactive="isactive"
|
||||
v-model:edit="edit"
|
||||
@@ -456,7 +456,7 @@
|
||||
<span>任务列表</span>
|
||||
</div>
|
||||
<div class="tit_right">
|
||||
<div class="btn btn1" @click="moveTask">
|
||||
<div class="btn btn1" @click="showChangeModal">
|
||||
<div class="btnText">移动到任务阶段</div>
|
||||
</div>
|
||||
<div class="btn btn2">
|
||||
@@ -895,6 +895,57 @@
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
<!-- 移动任务到阶段 -->
|
||||
<a-modal
|
||||
style="padding: 0"
|
||||
:closable="sh"
|
||||
v-model:visible="visiblene"
|
||||
:footer="null"
|
||||
centered="true"
|
||||
wrapClassName="moveModal"
|
||||
>
|
||||
<div class="con">
|
||||
<div class="header">
|
||||
<div class="inhe">
|
||||
<div class="mod"></div>
|
||||
<div class="tz">选择任务移动到阶段</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mid">
|
||||
<div class="inher">
|
||||
<div class="cur">已选中{{ selectRow.length }}个任务</div>
|
||||
<div class="select">
|
||||
<a-select
|
||||
v-model:value="curLevel"
|
||||
style="width: 100%"
|
||||
placeholder="请选择阶段"
|
||||
:options="level"
|
||||
@change="handleChangeStage"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
<div class="btn">
|
||||
<button
|
||||
style="cursor: pointer"
|
||||
class="sameb btn1"
|
||||
@click="closeChangeModal"
|
||||
>
|
||||
取消
|
||||
</button>
|
||||
<button
|
||||
style="cursor: pointer"
|
||||
class="sameb btn2"
|
||||
@click="moveTask"
|
||||
>
|
||||
确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div></a-modal
|
||||
>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -908,7 +959,7 @@ import AddDiscuss from "../../components/drawers/AddDiscuss.vue";
|
||||
import AddActive from "../../components/drawers/AddActive.vue";
|
||||
import AddEval from "../../components/drawers/AddEval.vue";
|
||||
import AddInvist from "../../components/drawers/AddInvist.vue";
|
||||
import AddVote from "../../components/drawers/AddVote.vue";
|
||||
import AddVote from "../../components/vote/AddVote.vue";
|
||||
import AddLive from "../../components/drawers/AddLive.vue";
|
||||
import AddRef from "../../components/drawers/AddRef.vue";
|
||||
import * as api from "../../api/indexLevel";
|
||||
@@ -918,6 +969,7 @@ import { storage } from "../../api/storage";
|
||||
import { deleteStudyTask } from "../../api/indexStudy";
|
||||
import draggable from "vuedraggable";
|
||||
import { editTask } from "../../api/indexTaskadd";
|
||||
import { toDate } from "../../api/method";
|
||||
export default {
|
||||
name: "LevelAddDetail",
|
||||
components: {
|
||||
@@ -1162,6 +1214,7 @@ export default {
|
||||
value2: "",
|
||||
selectedRowKeys: [],
|
||||
edit: false, //是否点击编辑
|
||||
isLevel: 1, //学习路径1项目2模板库3
|
||||
gqxy_hs: true,
|
||||
isactive: 0,
|
||||
projectChecked: null, //项目单选框
|
||||
@@ -1177,6 +1230,11 @@ export default {
|
||||
ListChoosedId: 0,
|
||||
selectRow: [], //选择行
|
||||
selectAll: 0, //0:未选择,1:全选,2:部分选择
|
||||
visiblene: false, //移动任务弹窗
|
||||
removeStageId: null,
|
||||
styTitle: null,
|
||||
creTime: null,
|
||||
picUrl: null,
|
||||
});
|
||||
|
||||
//新建关卡
|
||||
@@ -1317,6 +1375,18 @@ export default {
|
||||
.then((res) => {
|
||||
console.log("res.data.data.chapterList", res.data.data.chapterList);
|
||||
state.level = res.data.data.chapterList;
|
||||
state.styTitle = res.data.data.routerInfo.name;
|
||||
state.creTime = toDate(
|
||||
res.data.data.routerInfo.createTime / 1000,
|
||||
"Y-M-D h:m"
|
||||
);
|
||||
state.picUrl = res.data.data.routerInfo.picUrl;
|
||||
|
||||
//增加两个字段
|
||||
state.level.forEach((item) => {
|
||||
item["value"] = item.chapterId;
|
||||
item["label"] = item.name;
|
||||
});
|
||||
if (state.level.length > 0) {
|
||||
dataAssignment(state.level[0].chapterId);
|
||||
state.isactive = state.level[0].chapterId;
|
||||
@@ -1675,20 +1745,29 @@ export default {
|
||||
};
|
||||
//移动任务到关卡
|
||||
const moveTask = () => {
|
||||
let obj = {
|
||||
chapterId: state.isactive,
|
||||
routerTaskIdList: state.selectRow,
|
||||
};
|
||||
api
|
||||
.moveTask(obj)
|
||||
.then((res) => {
|
||||
console.log("移动成功", res);
|
||||
message.destroy();
|
||||
message.success("移动成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("移动失败", err);
|
||||
});
|
||||
if (state.isactive == state.removeStageId) {
|
||||
message.destroy();
|
||||
message.warning("选择的任务已在当前阶段");
|
||||
} else if (state.removeStageId == null) {
|
||||
message.destroy();
|
||||
message.warning("请选择关卡");
|
||||
} else {
|
||||
let obj = {
|
||||
chapterId: state.removeStageId,
|
||||
routerTaskIdList: state.selectRow,
|
||||
};
|
||||
api
|
||||
.moveTask(obj)
|
||||
.then((res) => {
|
||||
console.log("移动成功", res);
|
||||
message.destroy();
|
||||
message.success("移动成功");
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("移动失败", err);
|
||||
});
|
||||
state.visiblene = false;
|
||||
}
|
||||
};
|
||||
|
||||
//编辑的按钮
|
||||
@@ -1756,6 +1835,21 @@ export default {
|
||||
message.warning("修改失败");
|
||||
});
|
||||
};
|
||||
const showChangeModal = () => {
|
||||
if (state.selectRow.length == 0) {
|
||||
message.destroy();
|
||||
return message.warning("请选择要移动的任务");
|
||||
} else {
|
||||
state.visiblene = true;
|
||||
}
|
||||
};
|
||||
const closeChangeModal = () => {
|
||||
state.visiblene = false;
|
||||
};
|
||||
const handleChangeStage = (value, option) => {
|
||||
console.log("阶段改变", value, option);
|
||||
state.removeStageId = option.chapterId;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
// tableDataFunc,
|
||||
@@ -1798,6 +1892,9 @@ export default {
|
||||
updateTableData,
|
||||
deleteChapter,
|
||||
changeCourseType,
|
||||
showChangeModal,
|
||||
closeChangeModal,
|
||||
handleChangeStage,
|
||||
};
|
||||
},
|
||||
};
|
||||
@@ -1915,6 +2012,107 @@ export default {
|
||||
}
|
||||
}
|
||||
}
|
||||
.moveModal {
|
||||
.ant-modal {
|
||||
width: 549px !important;
|
||||
height: 245px !important;
|
||||
.ant-modal-content {
|
||||
width: 549px !important;
|
||||
height: 245px !important;
|
||||
.ant-modal-body {
|
||||
padding: 0 !important;
|
||||
width: 549px !important;
|
||||
height: 245px !important;
|
||||
.con {
|
||||
// background-color: #bfa;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
||||
.header {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
height: 68px;
|
||||
position: relative;
|
||||
justify-content: center;
|
||||
|
||||
background: linear-gradient(
|
||||
rgba(78, 166, 255, 0.2) 0%,
|
||||
rgba(78, 166, 255, 0) 100%
|
||||
);
|
||||
.inhe {
|
||||
width: 80%;
|
||||
height: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.mod {
|
||||
left: 30px;
|
||||
top: 27px;
|
||||
position: absolute;
|
||||
width: 18px;
|
||||
height: 17px;
|
||||
background-image: url(../../assets/images/leveladd/mod.png);
|
||||
}
|
||||
.tz {
|
||||
color: #000000;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
}
|
||||
.mg {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
background-image: url(../../assets/images/basicinfo/close22.png);
|
||||
background-size: 100% 100%;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
.mid {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
height: 100%;
|
||||
justify-content: center;
|
||||
.inher {
|
||||
width: 80%;
|
||||
height: 100%;
|
||||
.cur {
|
||||
color: #6f6f6f;
|
||||
font-size: 14px;
|
||||
}
|
||||
.select {
|
||||
margin-top: 10px;
|
||||
}
|
||||
.btn {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 30px;
|
||||
.sameb {
|
||||
width: 100px;
|
||||
height: 40px;
|
||||
font-size: 14px;
|
||||
|
||||
border-radius: 8px;
|
||||
}
|
||||
.btn1 {
|
||||
color: #4ea6ff;
|
||||
background: #ffffff;
|
||||
border: 1px solid #4ea6ff;
|
||||
}
|
||||
.btn2 {
|
||||
margin-left: 16px;
|
||||
border: 0;
|
||||
color: #ffffff;
|
||||
background: #4ea6ff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.clearfix:after,
|
||||
.clearfix:before {
|
||||
content: " ";
|
||||
|
||||
@@ -200,7 +200,7 @@
|
||||
: 'none',
|
||||
}"
|
||||
>
|
||||
<!-- 考勤 -->
|
||||
考勤
|
||||
</div>
|
||||
<div
|
||||
class="operation"
|
||||
@@ -214,7 +214,7 @@
|
||||
: 'none',
|
||||
}"
|
||||
>
|
||||
<!-- 二维码 -->
|
||||
二维码
|
||||
</div>
|
||||
<div
|
||||
class="operation"
|
||||
@@ -238,7 +238,7 @@
|
||||
: null
|
||||
"
|
||||
>
|
||||
<!-- 管理 -->
|
||||
管理
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -308,7 +308,7 @@
|
||||
<div> </div>
|
||||
<div class="area_btn">
|
||||
<div class="pub"></div>
|
||||
<div class="btnText">发布</div>
|
||||
<div class="btnText" @click="addNotice">发布</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -388,51 +388,78 @@
|
||||
<div class="setting">
|
||||
<div class="set_tit">
|
||||
<span>基本信息</span>
|
||||
<span class="editBtn" @click="() => {isEdit=true}">编辑</span>
|
||||
</div>
|
||||
<hr color="#E8E8E8" />
|
||||
<div class="set_body">
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>项目名称:</span></div>
|
||||
<div class="setc_name"><span>模板名称:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999">管理者进阶 - 管理者腾飞班</span>
|
||||
<a-input v-model:value="formData.name"
|
||||
:bordered="isEdit" :disabled="!isEdit"
|
||||
style="width:300px;"
|
||||
></a-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>封面图:</span></div>
|
||||
<div class="setc_main">
|
||||
<img src="@/assets/images/projectadd/picture.png" alt="" />
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
action="/api/file/upload"
|
||||
@change="handleChange"
|
||||
:disabled="!isEdit"
|
||||
>
|
||||
<img src="@/assets/images/projectadd/picture.png" alt="" />
|
||||
</a-upload>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>项目时间:</span></div>
|
||||
<div class="setc_name"><span>模板时间:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999"
|
||||
>2022-7-16 12:30 ~ 2022-7-30 12:30</span
|
||||
>
|
||||
<a-range-picker v-model:value="formData.time"
|
||||
|
||||
:bordered="isEdit" :disabled="!isEdit" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>项目经理:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999">张雪</span>
|
||||
<a-select
|
||||
v-model:value="formData.manager" mode="multiple"
|
||||
placeholder="请选择项目经理"
|
||||
:size="large" :bordered="isEdit" :disabled="!isEdit"
|
||||
style="width: 200px;color: #999999;" :options="managerOptions"
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>资源归属:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999">-</span>
|
||||
<a-select
|
||||
v-model:value="formData.sourceBelongId"
|
||||
placeholder="请选择资源归属"
|
||||
:size="large" :bordered="isEdit" :disabled="!isEdit"
|
||||
style="width: 200px;color: #999999;" :options="sourceBelongOptions"
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>项目说明:</span></div>
|
||||
<div class="setc_name"><span>模板说明:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999">-</span>
|
||||
<a-input v-model:value="formData.remark"
|
||||
style="width:300px;"
|
||||
:bordered="isEdit" :disabled="!isEdit"
|
||||
></a-input>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>同步学习记录:</span></div>
|
||||
<div class="setc_main" @click="changecheck2">
|
||||
<a-radio v-model:checked="checked2"
|
||||
<a-radio v-model:checked="formData.courseSyncFlag"
|
||||
:bordered="isEdit" :disabled="!isEdit"
|
||||
><span style="color: #333333"
|
||||
>同步课程学习记录(如学员在课程库中拥有课程的学习记录,自动免修该课程)</span
|
||||
></a-radio
|
||||
@@ -442,23 +469,38 @@
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>项目级别:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999">-</span>
|
||||
<a-select
|
||||
v-model:value="formData.level"
|
||||
placeholder="请选择项目级别"
|
||||
:size="large" :bordered="isEdit" :disabled="!isEdit"
|
||||
style="width: 200px;color: #999999;" :options="levelOptions"
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>培训体系:</span></div>
|
||||
<div class="setc_main">
|
||||
<span style="color: #999999">-</span>
|
||||
<a-select
|
||||
v-model:value="formData.systemId"
|
||||
placeholder="请选择培训体系"
|
||||
:size="large" :bordered="isEdit" :disabled="!isEdit"
|
||||
style="width: 200px;color: #999999;" :options="systemOptions"
|
||||
></a-select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="set_content">
|
||||
<div class="setc_name"><span>是否BOEU实施:</span></div>
|
||||
<div class="setc_main" @click="changecheck3">
|
||||
<a-radio v-model:checked="checked3"
|
||||
<a-radio v-model:checked="formData.boeFlag"
|
||||
:bordered="isEdit" :disabled="!isEdit"
|
||||
><span style="color: #333333">BOEU实施</span></a-radio
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="isEdit" style="transform: translateX(50%)">
|
||||
<a-button @click="cancelEdit" style="background-color: #f9f9f9">取消</a-button>
|
||||
<a-button @click="confirmEdit" style="background-color: #f5faff">保存</a-button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-tab-pane>
|
||||
@@ -467,7 +509,7 @@
|
||||
<div class="Gcon">
|
||||
<div class="pad"></div>
|
||||
<div class="Gin">
|
||||
<div class="headone">
|
||||
<div class="headone" style="transform: translateX(30px)">
|
||||
<div class="box"></div>
|
||||
<div class="onetitle">上传共享文档</div>
|
||||
<div class="oneedi">
|
||||
@@ -548,7 +590,9 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { ref, reactive, defineComponent, toRefs } from "vue";
|
||||
import { ref, reactive, defineComponent, toRefs, onMounted} from "vue";
|
||||
import { message } from "ant-design-vue";
|
||||
import * as api from "@/api/indexTemplate"
|
||||
export default defineComponent({
|
||||
name: "LibraryAdd",
|
||||
setup() {
|
||||
@@ -674,6 +718,29 @@ export default defineComponent({
|
||||
],
|
||||
},
|
||||
],
|
||||
// 模板编辑列表
|
||||
managerOptions:[
|
||||
{ value: "李俊国"},
|
||||
{ value: "将小米"},
|
||||
{ value: "刘孟君"},
|
||||
],
|
||||
sourceBelongOptions:[
|
||||
{ value: "项目一"},
|
||||
{ value: "项目二"},
|
||||
{ value: "项目三"},
|
||||
],
|
||||
levelOptions:[
|
||||
{ value: "集团级"},
|
||||
{ value: "组织级"},
|
||||
{ value: "现地级"},
|
||||
{ value: "部门级"},
|
||||
],
|
||||
systemOptions:[
|
||||
{ value: "集团级"},
|
||||
{ value: "组织级"},
|
||||
{ value: "现地级"},
|
||||
{ value: "部门级"},
|
||||
],
|
||||
taskSyllabusActive: 0,
|
||||
//在线管理等页面传递参数
|
||||
showTimeText: "",
|
||||
@@ -681,13 +748,13 @@ export default defineComponent({
|
||||
showTestText: "",
|
||||
activeKey: ref("1"),
|
||||
// value: ref(" "),
|
||||
checked: false,
|
||||
checked: true,
|
||||
checked2: false,
|
||||
checked3: false,
|
||||
docChecked:true,
|
||||
value3: false,
|
||||
value4: false,
|
||||
hideshow: false,
|
||||
hideshow: true,
|
||||
score1: 5,
|
||||
score2: 5,
|
||||
edit: true,
|
||||
@@ -705,7 +772,20 @@ export default defineComponent({
|
||||
name:'测试文档3.doc',
|
||||
src:"",
|
||||
}
|
||||
],
|
||||
],
|
||||
// 基本信息
|
||||
formData:{
|
||||
name: "123",
|
||||
time: "",
|
||||
manager: "建国",
|
||||
sourceBelongId: null,
|
||||
remark: "",
|
||||
courseSyncFlag: false,
|
||||
level: null,
|
||||
systemId: null,
|
||||
boeFlag: false,
|
||||
},
|
||||
isEdit:false, // 是否处于编辑状态
|
||||
});
|
||||
const value = ref("");
|
||||
const value2 = ref("");
|
||||
@@ -719,6 +799,151 @@ export default defineComponent({
|
||||
const changecheck3 = () => {
|
||||
state.checked3 = !state.checked3;
|
||||
};
|
||||
const cancelEdit = () => {
|
||||
state.isEdit = false;
|
||||
getDetail();
|
||||
};
|
||||
const confirmEdit = () => {
|
||||
state.isEdit = false;
|
||||
editTemplate()
|
||||
getDetail();
|
||||
};
|
||||
onMounted(() => {getDetail()});
|
||||
// 获取详情
|
||||
const getDetail = () => {
|
||||
api.templateDetail(0).then(res => {
|
||||
console.log(res)
|
||||
state.formData.name = res.data.data.projectInfo.name
|
||||
state.formData.time = res.data.data.projectInfo.startTime+res.data.data.projectInfo.endTime;
|
||||
state.formData.manager = res.data.data.projectInfo.manager
|
||||
state.formData.sourceBelongId = res.data.data.projectInfo.sourceBelongId
|
||||
state.formData.remark = res.data.data.stageList.remark
|
||||
state.formData.courseSyncFlag = res.data.data.projectInfo.courseSyncFlag
|
||||
state.formData.level = res.data.data.projectInfo.level
|
||||
state.formData.systemId = res.data.data.projectInfo.systemId
|
||||
state.formData.boeFlag = res.data.data.projectInfo.boeFlag
|
||||
state.value2 = res.data.data.projectInfo.notice
|
||||
}).catch(err => {
|
||||
message.error("操作失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
// 编辑项目模板
|
||||
const editTemplate = () => {
|
||||
let obj = {
|
||||
"beginTime": state.formData.time,
|
||||
"boeFlag": state.formData.boeFlag,
|
||||
"category": 0,
|
||||
"courseSyncFlag": state.formData.courseSyncFlag,
|
||||
"endTime": state.formData.time,
|
||||
"level": state.formData.level,
|
||||
"manager": state.formData.manager,
|
||||
"managerId": "",
|
||||
"name": state.formData.name,
|
||||
"notice": "",
|
||||
"noticeFlag": 0,
|
||||
"picUrl": "",
|
||||
"projectTemplateId": 0,
|
||||
"remark": state.formData.remark,
|
||||
"sourceBelongId": state.formData.sourceBelongId,
|
||||
"status": 0,
|
||||
"systemId": state.formData.systemId
|
||||
};
|
||||
api.templateEdit(obj).methods(obj).then(res => {
|
||||
message.success("编辑成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
message.error("编辑失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
// 发布公告
|
||||
const addNotice = () => {
|
||||
let obj = {
|
||||
"beginTime": 0,
|
||||
"boeFlag": 0,
|
||||
"category": 0,
|
||||
"courseSyncFlag": 0,
|
||||
"endTime": 0,
|
||||
"level": 0,
|
||||
"manager": "",
|
||||
"managerId": "",
|
||||
"name": "",
|
||||
"notice": state.value2,
|
||||
"noticeFlag": 0,
|
||||
"picUrl": "",
|
||||
"projectTemplateId": 0,
|
||||
"remark": "",
|
||||
"sourceBelongId": 0,
|
||||
"status": 0,
|
||||
"systemId": 0
|
||||
};
|
||||
api.templateEdit(obj).methods(obj).then(res => {
|
||||
message.success("公告发布成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
message.error("公告发布失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
// 删除阶段
|
||||
const stateDel = (id) => {
|
||||
api.deleteStage(id).then(res => {
|
||||
message.success("删除阶段成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
message.error("删除阶段失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
|
||||
// 删除任务
|
||||
const taskDel = (id) => {
|
||||
api.deleteTask(id).then(res => {
|
||||
message.success("删除任务成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
message.error("删除任务失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
|
||||
// 新建或编辑阶段
|
||||
const stateEdit = () => {
|
||||
let obj={
|
||||
"name": "",
|
||||
"projectTemplateId": 0,
|
||||
"remark": "",
|
||||
"stageId": 0
|
||||
}
|
||||
api.editStagek(obj).then(res => {
|
||||
message.success("编辑阶段成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
message.error("编辑阶段失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
//新建或编辑阶段任务
|
||||
const taskEdit = () => {
|
||||
let obj = {
|
||||
"courseId": 0,
|
||||
"duration": 0,
|
||||
"flag": true,
|
||||
"name": "",
|
||||
"projectTaskId": 0,
|
||||
"projectTemplateId": 0,
|
||||
"stageId": 0,
|
||||
"type": 0
|
||||
}
|
||||
api.editTask(obj).then(res => {
|
||||
message.success("编辑任务成功")
|
||||
console.log(res)
|
||||
}).catch(err => {
|
||||
message.error("编辑任务失败"+err)
|
||||
console.log(err)
|
||||
})
|
||||
}
|
||||
return {
|
||||
...toRefs(state),
|
||||
value,
|
||||
@@ -727,6 +952,13 @@ export default defineComponent({
|
||||
changeopclo,
|
||||
changecheck2,
|
||||
changecheck3,
|
||||
cancelEdit,
|
||||
confirmEdit,
|
||||
addNotice,
|
||||
stateDel,
|
||||
taskDel,
|
||||
stateEdit,
|
||||
taskEdit,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
@@ -738,6 +970,12 @@ export default defineComponent({
|
||||
});
|
||||
</script>
|
||||
<style lang="scss">
|
||||
.editBtn {
|
||||
float:right;
|
||||
margin-right: 150px;
|
||||
color:#4ea6ff;
|
||||
cursor: pointer;
|
||||
}
|
||||
.clearfix:before,
|
||||
.clearfix:after {
|
||||
content: " ";
|
||||
@@ -780,6 +1018,7 @@ export default defineComponent({
|
||||
margin-top: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1030px) {
|
||||
.imgfor {
|
||||
margin-left: 20px;
|
||||
|
||||
@@ -53,13 +53,12 @@
|
||||
<div class="filt">
|
||||
<div class="le">
|
||||
<div class="leftimg">
|
||||
<img
|
||||
class="img"
|
||||
src="../../assets/images/projectadd/picture.png"
|
||||
/>
|
||||
<img class="img" :src="picUrl" />
|
||||
</div>
|
||||
<div class="imgfor">
|
||||
<div class="forz" style="font-weight: 700">管理者进阶-腾飞班</div>
|
||||
<div class="forz" style="font-weight: 700">
|
||||
{{ projectTitle }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightt">
|
||||
@@ -97,14 +96,16 @@
|
||||
</div>
|
||||
<!-- 添加在线侧弹窗 -->
|
||||
<div>
|
||||
<add-online
|
||||
v-model:addonlineVisible="addonlinevisible"
|
||||
@changeData="updateTableData"
|
||||
<add-online
|
||||
v-model:addonlineVisible="addonlinevisible"
|
||||
@changeData="updateTableData"
|
||||
:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditOnlineId = "EditOnlineId"/>
|
||||
v-model:EditOnlineId="EditOnlineId"
|
||||
/>
|
||||
</div>
|
||||
<!-- 添加在线侧弹窗 -->
|
||||
<div class="lin"></div>
|
||||
@@ -118,7 +119,10 @@
|
||||
</div>
|
||||
<!-- 添加面授侧弹窗 -->
|
||||
<div>
|
||||
<add-faceteach v-model:addfaceteachVisible="addfaceteachvisible" />
|
||||
<add-faceteach
|
||||
v-model:addfaceteachVisible="addfaceteachvisible"
|
||||
v-model:EditEvalId="EditEvalId"
|
||||
/>
|
||||
</div>
|
||||
<!-- 添加面授侧弹窗 -->
|
||||
<div class="lin"></div>
|
||||
@@ -132,9 +136,16 @@
|
||||
</div>
|
||||
<!-- 添加案例侧弹窗 -->
|
||||
<div>
|
||||
<add-case v-model:addcaseVisible="addcasevisible" @changeData="updateTableData" v-model:edit="edit"
|
||||
v-model:projectId="projectId" v-model:chooseStageId="chooseStageId" v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditCaseId="EditCaseId" />
|
||||
<add-case
|
||||
v-model:addcaseVisible="addcasevisible"
|
||||
@changeData="updateTableData"
|
||||
:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:EditCaseId="EditCaseId"
|
||||
/>
|
||||
</div>
|
||||
<!-- 添加案例侧弹窗 -->
|
||||
<div class="lin"></div>
|
||||
@@ -151,7 +162,7 @@
|
||||
<add-homework
|
||||
v-model:addhomeworkVisible="addhomeworkvisible"
|
||||
@changeData="updateTableData"
|
||||
:isLevel="false"
|
||||
v-model:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
@@ -174,7 +185,7 @@
|
||||
<add-test
|
||||
v-model:addtestVisible="addtestvisible"
|
||||
@changeData="updateTableData"
|
||||
:isLevel="false"
|
||||
:isLevel="isLevel"
|
||||
v-model:edit="edit"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
@@ -196,6 +207,7 @@
|
||||
<div>
|
||||
<add-live
|
||||
v-model:addliveVisible="addlivevisible"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
@@ -218,7 +230,7 @@
|
||||
<div>
|
||||
<add-ref
|
||||
v-model:addrefVisible="addrefvisible"
|
||||
:isLevel="false"
|
||||
:isLevel="isLevel"
|
||||
@changeData="updateTableData"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
@@ -242,6 +254,7 @@
|
||||
<add-discuss
|
||||
v-model:adddiscussVisible="adddiscussvisible"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:EditDiscussId="EditDiscussId"
|
||||
@@ -267,6 +280,7 @@
|
||||
v-model:EditActiveId="EditActiveId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
@changeData="updateTableData"
|
||||
/>
|
||||
@@ -287,6 +301,7 @@
|
||||
v-model:addevalVisible="addevalvisible"
|
||||
@changeData="updateTableData"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
@@ -309,6 +324,7 @@
|
||||
v-model:addinvistVisible="addinvistvisible"
|
||||
@changeData="updateTableData"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
@@ -331,6 +347,7 @@
|
||||
@changeData="updateTableData"
|
||||
@getData="changeVData"
|
||||
v-model:edit="edit"
|
||||
:isLevel="isLevel"
|
||||
v-model:projectId="projectId"
|
||||
v-model:chooseStageId="chooseStageId"
|
||||
v-model:projectTaskId="projectTaskId"
|
||||
@@ -850,16 +867,28 @@
|
||||
<a-select
|
||||
v-model:value="curLevel"
|
||||
style="width: 100%"
|
||||
placeholder="请选择关卡"
|
||||
:options="projectNameList4"
|
||||
@change="selectProjectName4"
|
||||
placeholder="请选择阶段"
|
||||
:options="level"
|
||||
@change="handleChangeStage"
|
||||
allowClear
|
||||
showSearch
|
||||
></a-select>
|
||||
</div>
|
||||
<div class="btn">
|
||||
<button class="sameb btn1" @click="closeChangeModal">取消</button>
|
||||
<button class="sameb btn2" @click="moveTask">确定</button>
|
||||
<button
|
||||
style="cursor: pointer"
|
||||
class="sameb btn1"
|
||||
@click="closeChangeModal"
|
||||
>
|
||||
取消
|
||||
</button>
|
||||
<button
|
||||
style="cursor: pointer"
|
||||
class="sameb btn2"
|
||||
@click="moveTask"
|
||||
>
|
||||
确定
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -882,7 +911,7 @@ import AddDiscuss from "../../components/drawers/AddDiscuss.vue";
|
||||
import AddActive from "../../components/drawers/AddActive.vue";
|
||||
import AddEval from "../../components/drawers/AddEval.vue";
|
||||
import AddInvist from "../../components/drawers/AddInvist.vue";
|
||||
import AddVote from "../../components/drawers/AddVote.vue";
|
||||
import AddVote from "../../components/vote/AddVote.vue";
|
||||
import { message } from "ant-design-vue";
|
||||
import * as api from "../../api/indexTaskadd";
|
||||
import * as apistage from "../../api/indexStage";
|
||||
@@ -952,7 +981,9 @@ export default {
|
||||
? JSON.parse(storage.get("projectId"))
|
||||
: null,
|
||||
chooseStageId: null,
|
||||
removeStageId: null,
|
||||
edit: false,
|
||||
isLevel: 2, //学习路径1项目2模板库3
|
||||
// isRefEdit: 1, //外链编辑
|
||||
// isLiveEdit: 1, //直播编辑
|
||||
isRefEdit: false, //外链编辑
|
||||
@@ -964,8 +995,9 @@ export default {
|
||||
EditActiveId: null, //要编辑的活动id
|
||||
EditWorkId: null, // 要编辑的作业id
|
||||
EditTestId: null, // 要编辑的考试id
|
||||
EditCaseId:null,//要编辑的案例id
|
||||
EditOnlineId:null,//要编辑的在线id
|
||||
EditCaseId: null, //要编辑的案例id
|
||||
EditOnlineId: null, //要编辑的在线id
|
||||
EditFaceTeach: null,
|
||||
EditEvalId: null,
|
||||
EditInvistId: null,
|
||||
EditVoteId: null, //编辑需要投票的id
|
||||
@@ -1008,6 +1040,8 @@ export default {
|
||||
//阶段数据
|
||||
level: [],
|
||||
|
||||
projectTitle: null,
|
||||
picUrl: null,
|
||||
//任务数据
|
||||
tableData: [],
|
||||
drawertableData: [
|
||||
@@ -1222,6 +1256,8 @@ export default {
|
||||
tit: value.name,
|
||||
name: value.remark,
|
||||
taskList: value.taskList,
|
||||
value: value.stageId,
|
||||
label: value.name,
|
||||
};
|
||||
array.push(obj);
|
||||
});
|
||||
@@ -1369,10 +1405,31 @@ export default {
|
||||
if (res.status == 200) {
|
||||
console.log("22222", res.data.data.stageList);
|
||||
// console.log("22222", res.data.data.stageList);
|
||||
state.projectTitle = res.data.data.projectInfo.name;
|
||||
state.picUrl = res.data.data.projectInfo.picUrl;
|
||||
let leng = res.data.data.stageList.length;
|
||||
if (leng > 0) {
|
||||
// let stage = localStorage.getItem("stageId")
|
||||
// ? localStorage.getItem("stageId")
|
||||
// : null;
|
||||
// if (stage !== null) {
|
||||
// // console.log("找到了origin", originStageList);
|
||||
// let originStageList = res.data.data.stageList.find((item) => {
|
||||
// item.stageId == stage;
|
||||
// });
|
||||
// getTableData(originStageList.taskList);
|
||||
// console.log("找到了origin", originStageList);
|
||||
// } else {
|
||||
// let arr = res.data.data.stageList[0].taskList;
|
||||
// console.log("任务列表", arr);
|
||||
// getTableData(arr);
|
||||
// }
|
||||
|
||||
let stage = localStorage.getItem("stageId")
|
||||
? localStorage.getItem("stageId")
|
||||
: null;
|
||||
let arr = res.data.data.stageList[0].taskList;
|
||||
console.log("任务列表", arr);
|
||||
console.log("任务列表", stage, arr);
|
||||
getTableData(arr);
|
||||
}
|
||||
|
||||
@@ -1387,8 +1444,15 @@ export default {
|
||||
});
|
||||
}
|
||||
//给阶段id赋初始值
|
||||
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
|
||||
console.log(state.chooseStageId, 1111);
|
||||
let stage = localStorage.getItem("stageId")
|
||||
? localStorage.getItem("stageId")
|
||||
: null;
|
||||
if (stage !== null) {
|
||||
state.chooseStageId = stage;
|
||||
} else {
|
||||
state.chooseStageId = leng > 0 ? stagearr[0].stageId : null;
|
||||
console.log(state.chooseStageId, 1111);
|
||||
}
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
@@ -1423,28 +1487,47 @@ export default {
|
||||
};
|
||||
|
||||
const showChangeModal = () => {
|
||||
state.visiblene = true;
|
||||
if (state.selectRow.length == 0) {
|
||||
message.destroy();
|
||||
return message.warning("请选择要移动的任务");
|
||||
} else {
|
||||
state.visiblene = true;
|
||||
}
|
||||
};
|
||||
const closeChangeModal = () => {
|
||||
state.visiblene = false;
|
||||
};
|
||||
//移动任务到阶段
|
||||
const moveTask = () => {
|
||||
let obj = {
|
||||
stageId: state.chooseStageId,
|
||||
projectTaskId: state.selectRow,
|
||||
};
|
||||
apimove
|
||||
.moveTask(obj)
|
||||
.then((res) => {
|
||||
console.log("移动成功", res);
|
||||
message.destroy();
|
||||
message.success("移动成功");
|
||||
getTask();
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("移动失败", err);
|
||||
});
|
||||
if (state.chooseStageId == state.removeStageId) {
|
||||
console.log("buneng");
|
||||
message.destroy();
|
||||
message.warning("选择的任务已在当前阶段");
|
||||
} else if (state.removeStageId == null) {
|
||||
message.destroy();
|
||||
message.warning("请选择阶段");
|
||||
} else {
|
||||
{
|
||||
let obj = {
|
||||
stageId: state.removeStageId,
|
||||
projectTaskId: state.selectRow,
|
||||
};
|
||||
apimove
|
||||
.moveTask(obj)
|
||||
.then((res) => {
|
||||
console.log("移动成功", res);
|
||||
message.destroy();
|
||||
message.success("移动成功");
|
||||
console.log(state.removeStageId);
|
||||
getTask();
|
||||
localStorage.setItem("stageId", state.chooseStageId);
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log("移动失败", err);
|
||||
});
|
||||
state.visiblene = false;
|
||||
}
|
||||
}
|
||||
};
|
||||
//批量删除
|
||||
const deleteTaskAll = () => {
|
||||
@@ -1567,12 +1650,12 @@ export default {
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerAddInvist = (id, eleId) => {
|
||||
console.log(id, eleId, '213312');
|
||||
console.log(id, eleId, "213312");
|
||||
state.addinvistvisible = true;
|
||||
state.projectTaskId = eleId;
|
||||
};
|
||||
const showDrawerAddVote = (id, eleId) => {
|
||||
console.log(id, eleId, '95835325932953295325');
|
||||
console.log(id, eleId, "95835325932953295325");
|
||||
state.addvotevisible = true;
|
||||
state.EditVoteId = id;
|
||||
state.projectTaskId = eleId;
|
||||
@@ -1734,6 +1817,10 @@ export default {
|
||||
const closeDeAll = () => {
|
||||
state.deAll = false;
|
||||
};
|
||||
const handleChangeStage = (value, option) => {
|
||||
console.log("阶段改变", value, option);
|
||||
state.removeStageId = option.id;
|
||||
};
|
||||
return {
|
||||
...toRefs(state),
|
||||
selectProjectName,
|
||||
@@ -1783,6 +1870,7 @@ export default {
|
||||
decideType,
|
||||
showdeAll,
|
||||
closeDeAll,
|
||||
handleChangeStage,
|
||||
};
|
||||
},
|
||||
};
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
<div class="taskpage">
|
||||
<div class="addhead" style="flex-shrink: 0">
|
||||
<div class="leftimg">
|
||||
<img class="img" src="../../assets/images/projectadd/picture.png" />
|
||||
<img class="img" :src="picUrl" />
|
||||
</div>
|
||||
<div class="imgfor">
|
||||
<div class="forz">管理者进阶-腾飞班</div>
|
||||
<div class="fort">项目经理:黄华、刘俊</div>
|
||||
<div class="fort">起止时间:2022-07-21 00:00至2022-10-21 00:00</div>
|
||||
<div class="forz">{{ name }}</div>
|
||||
<div class="fort">项目经理:{{ manager }}</div>
|
||||
<div class="fort">起止时间:{{ startTime }}至{{ endTime }}</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<img class="img1" src="../../assets/images/leveladd/ma.png" />
|
||||
@@ -2973,8 +2973,8 @@ export default {
|
||||
}).then((res) => {
|
||||
console.log("get task", res.data.data);
|
||||
let info = res.data.data.projectInfo;
|
||||
let start = toDate(info.beginTime / 1000, "Y-M-D");
|
||||
let end = toDate(info.endTime / 1000, "Y-M-D");
|
||||
let start = toDate(info.beginTime / 1000, "Y-M-D h:m");
|
||||
let end = toDate(info.endTime / 1000, "Y-M-D h:m");
|
||||
state.parentId = info.parentId;
|
||||
state.name = info.name;
|
||||
state.startTime = start;
|
||||
|
||||
@@ -137,7 +137,7 @@ export default defineComponent({
|
||||
{value.status === "已发布" ? (
|
||||
<div class="nselect">
|
||||
<div class="ops2">
|
||||
<router-link to="/taskpage">
|
||||
<router-link to="/libraryadd">
|
||||
<div class="jc">
|
||||
查看{" "}
|
||||
<span style="color:#E9E9E9;margin-left:15px;">|</span>
|
||||
|
||||
@@ -98,7 +98,7 @@
|
||||
</template>
|
||||
<script>
|
||||
import { reactive, toRefs } from "vue";
|
||||
import AddVote from "../../components/drawers/AddVote";
|
||||
import AddVote from "../../components/vote/AddVote";
|
||||
// import { PlusOutlined, LoadingOutlined } from "@ant-design/icons-vue";
|
||||
import { message } from "ant-design-vue";
|
||||
import * as api from "../../api/index1";
|
||||
|
||||
Reference in New Issue
Block a user