feat:合并

This commit is contained in:
lixg
2022-12-02 10:01:48 +08:00
parent 8ae00ef4ce
commit c1842cd0e1
6 changed files with 262 additions and 248 deletions

View File

@@ -1,19 +1,19 @@
<template>
<a-drawer
:visible="addactiveVisible"
class="drawerStyle addactiveDrawer"
width="80%"
title="添加活动"
placement="right"
@after-visible-change="afterVisibleChange"
:visible="addactiveVisible"
class="drawerStyle addactiveDrawer"
width="80%"
title="添加活动"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}活动</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="contentMain">
@@ -22,18 +22,18 @@
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 32px"
placeholder="请输入活动名称"
maxlength="20"
v-model:value="inputV1"
style="width: 424px; height: 32px"
placeholder="请输入活动名称"
maxlength="20"
/>
</div>
</div>
@@ -41,18 +41,18 @@
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动公告</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="textV1"
placeholder="请输入活动公告"
allow-clear
maxlength="150"
v-model:value="textV1"
placeholder="请输入活动公告"
allow-clear
maxlength="150"
/>
</div>
</div>
@@ -62,10 +62,10 @@
</div>
<div class="textarea">
<a-textarea
v-model:value="textV2"
placeholder="请输入活动说明"
allow-clear
maxlength="150"
v-model:value="textV2"
placeholder="请输入活动说明"
allow-clear
maxlength="150"
/>
</div>
</div>
@@ -73,17 +73,17 @@
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动时间</span>
</div>
<div class="btnbox">
<a-range-picker
style="width: 424px"
v-model:value="time"
:placeholder="[' 开始时间', ' 结束时间']"
style="width: 424px"
v-model:value="time"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
</div>
@@ -91,23 +91,23 @@
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动时长</span>
</div>
<div class="btnbox">
<a-input-number
:min="0"
:precision="0"
style="
:min="0"
:precision="0"
style="
width: 388px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV2"
v-model:value="inputV2"
/>
<span style="margin-left: 5px">分钟</span>
</div>
@@ -116,17 +116,17 @@
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">活动地址</span>
</div>
<div class="btnbox">
<a-input
v-model:value="inputV3"
style="width: 424px; height: 32px"
placeholder="请输入活动地址"
v-model:value="inputV3"
style="width: 424px; height: 32px"
placeholder="请输入活动地址"
/>
</div>
</div>
@@ -144,42 +144,42 @@
<div class="timerbox">
<span>开始前</span>
<a-input-number
:min="0"
:max="30"
:precision="0"
style="
:min="0"
:max="30"
:precision="0"
style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV4"
v-model:value="inputV4"
/>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
<div class="timerbox">
<span>开始后</span>
<a-input-number
:min="0"
:max="30"
:precision="0"
style="
:min="0"
:max="30"
:precision="0"
style="
width: 88px;
height: 32px;
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV5"
v-model:value="inputV5"
/>
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div>
<div class="qdqtbox">
<!-- <div class="qdqtbox">
<div class="qtbtn">
<div class="btntext">签退</div>
</div>
</div>
<div class="setbox">
</div> -->
<!-- <div class="setbox">
<div class="timerbox">
<span>结束前</span>
<a-input-number
@@ -198,7 +198,7 @@
>分钟提前签退则记为早退</span
>
</div>
</div>
</div> -->
</div>
</div>
<div class="main_item">
@@ -208,13 +208,12 @@
<div class="btnbox">
<a-radio-group v-model:value="radioV1">
<a-radio v-model:checked="checked" :value="1" @click="cloradio1"
>仅签到
</a-radio
>
<a-radio v-model:checked="checked" :value="2" @click="cloradio1"
>仅签到
</a-radio>
<!-- <a-radio v-model:checked="checked" :value="2" @click="cloradio1"
>签到签退全部完成
</a-radio
>
> -->
</a-radio-group>
</div>
</div>
@@ -228,11 +227,11 @@
</a-drawer>
</template>
<script>
import {reactive, toRefs} from "vue";
import { reactive, toRefs } from "vue";
import * as api from "../../api/indexActivity";
import * as apiTask from "../../api/indexTaskadd";
import {RouterEditTask} from "@/api/indexTask";
import {message} from "ant-design-vue";
import { RouterEditTask } from "@/api/indexTask";
import { message } from "ant-design-vue";
import dayjs from "dayjs";
export default {
@@ -319,7 +318,7 @@ export default {
state.textV1 = "";
state.textV2 = "";
state.time = "";
message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
// message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
};
@@ -338,29 +337,28 @@ export default {
state.time = "";
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
}
};
const queryActive = () => {
api
.getActivity(props.EditActiveId)
.then((res) => {
//更新讨论信息
state.inputV1 = res.data.data.activityName;
state.textV1 = res.data.data.activityNotice;
state.textV2 = res.data.data.activityExplain;
state.inputV2 = res.data.data.activityDuration;
state.inputV3 = res.data.data.activityAddress;
state.inputV5 = res.data.data.afterSignIn;
state.inputV6 = res.data.data.signOutTime;
state.inputV4 = res.data.data.beforeSignIn;
state.radioV1 = Number(res.data.data.standardSettings);
.getActivity(props.EditActiveId)
.then((res) => {
//更新讨论信息
state.inputV1 = res.data.data.activityName;
state.textV1 = res.data.data.activityNotice;
state.textV2 = res.data.data.activityExplain;
state.inputV2 = res.data.data.activityDuration;
state.inputV3 = res.data.data.activityAddress;
state.inputV5 = res.data.data.afterSignIn;
state.inputV6 = res.data.data.signOutTime;
state.inputV4 = res.data.data.beforeSignIn;
state.radioV1 = Number(res.data.data.standardSettings);
state.time = [
dayjs(res.data.data.activityStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"),
];
})
.catch(() => {
});
state.time = [
dayjs(res.data.data.activityStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"),
];
})
.catch(() => {});
};
const afterVisibleChange = (bool) => {
if (bool && props.edit) {
@@ -383,49 +381,47 @@ export default {
routerTaskId: props.routerTaskId || 0,
type: 9,
})
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 2) {
await apiTask
.addTask({
courseId: res.data.data.activityId,
duration: res.data.data.activityDuration,
name: res.data.data.activityName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 9,
})
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(() => {
//////message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
.addTask({
courseId: res.data.data.activityId,
duration: res.data.data.activityDuration,
name: res.data.data.activityName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 9,
})
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(() => {
//////message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
} else if (props.isLevel == 3) {
await apiTask
.addTempTask({
courseId: res.data.data.activityId,
duration: res.data.data.activityDuration,
name: res.data.data.activityName,
projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 9,
})
.then(() => {
ctx.emit("changeData", false);
//message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
.addTempTask({
courseId: res.data.data.activityId,
duration: res.data.data.activityDuration,
name: res.data.data.activityName,
projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 9,
})
.then(() => {
ctx.emit("changeData", false);
//message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
});
}
};
//创建活动
@@ -469,33 +465,33 @@ export default {
if (props.edit) {
//更新编辑活动信息
api
.updateActivity(obj)
.then(async (res) => {
closeDrawer();
await updateTask(res);
ctx.emit("changeData", false);
message.destroy();
message.success("更新成功");
})
.catch(() => {
message.destroy();
message.error("更新失败");
});
.updateActivity(obj)
.then(async (res) => {
closeDrawer();
await updateTask(res);
ctx.emit("changeData", false);
message.destroy();
message.success("更新成功");
})
.catch(() => {
message.destroy();
message.error("更新失败");
});
} else {
//新建活动信息
api
.createActivity(obj)
.then(async (res) => {
message.destroy();
message.success("创建成功");
closeDrawer();
await updateTask(res);
ctx.emit("changeData", false);
})
.catch(() => {
message.destroy();
message.error("创建失败");
});
.createActivity(obj)
.then(async (res) => {
message.destroy();
message.success("创建成功");
closeDrawer();
await updateTask(res);
ctx.emit("changeData", false);
})
.catch(() => {
message.destroy();
message.error("创建失败");
});
}
};

View File

@@ -1,18 +1,18 @@
<template>
<a-drawer
:visible="adddiscussVisible"
class="drawerStyle addrefDrawer"
width="80%"
placement="right"
@after-visible-change="afterVisibleChange"
:visible="adddiscussVisible"
class="drawerStyle addrefDrawer"
width="80%"
placement="right"
@after-visible-change="afterVisibleChange"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}讨论</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<div class="contentMain">
@@ -21,19 +21,19 @@
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">讨论名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="inputV1"
style="width: 424px; height: 32px"
placeholder="请输入讨论名称"
show-count
:maxlength="20"
v-model:value="inputV1"
style="width: 424px; height: 32px"
placeholder="请输入讨论名称"
show-count
:maxlength="20"
/>
</div>
</div>
@@ -43,11 +43,11 @@
</div>
<div class="textarea">
<a-textarea
v-model:value="textV1"
placeholder="请输入讨论说明"
allow-clear
show-count
:maxlength="200"
v-model:value="textV1"
placeholder="请输入讨论说明"
allow-clear
show-count
:maxlength="200"
/>
</div>
</div>
@@ -57,7 +57,7 @@
</div>
<div class="btnbox">
<a-checkbox v-model:checked="checkedC1" @change="checkRadio"
>允许评论</a-checkbox
>允许评论</a-checkbox
>
</div>
</div>
@@ -170,15 +170,15 @@ export default {
if (props.edit) {
//编辑讨
api
.getDiscussDetail({ discussId: props.EditDiscussId })
.then((res) => {
//更新讨论信息
state.inputV1 = res.data.data.discussName;
state.textV1 = res.data.data.discussExplain;
state.checkedC1 =
res.data.data.discussSettings == "true" ? true : false;
})
.catch(() => {});
.getDiscussDetail({ discussId: props.EditDiscussId })
.then((res) => {
//更新讨论信息
state.inputV1 = res.data.data.discussName;
state.textV1 = res.data.data.discussExplain;
state.checkedC1 =
res.data.data.discussSettings == "true" ? true : false;
})
.catch(() => {});
}
};
const afterVisibleChange = (bool) => {
@@ -196,28 +196,28 @@ export default {
routerTaskId: props.routerTaskId || 0,
type: 8,
})
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 2) {
apiTask
.addTask({
courseId: res.data.data.discussId,
name: res.data.data.discussName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 8,
})
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
.addTask({
courseId: res.data.data.discussId,
name: res.data.data.discussName,
projectId: props.projectId,
projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0,
type: 8,
})
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
} else if (props.isLevel == 3) {
console.log("");
addTempTask({
@@ -228,12 +228,12 @@ export default {
stageId: props.chooseStageId || 0,
type: 8,
})
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
.then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
})
.catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
});
}
};
const updateDiscussInfo = () => {
@@ -250,32 +250,32 @@ export default {
};
if (props.edit) {
api
.updateDiscuss(obj)
.then((res) => {
updateTask(res);
closeDrawer();
ctx.emit("changeData", false);
message.destroy();
message.success("创建讨论成功");
})
.catch(() => {
message.destroy();
message.error("创建讨论失败");
});
.updateDiscuss(obj)
.then((res) => {
updateTask(res);
closeDrawer();
ctx.emit("changeData", false);
message.destroy();
message.success("创建讨论成功");
})
.catch(() => {
message.destroy();
message.error("创建讨论失败");
});
} else {
api
.createDiscuss(obj)
.then((res) => {
updateTask(res);
closeDrawer();
ctx.emit("changeData", false);
message.destroy();
message.success("创建讨论成功");
})
.catch(() => {
message.destroy();
message.error("创建讨论失败");
});
.createDiscuss(obj)
.then((res) => {
updateTask(res);
closeDrawer();
ctx.emit("changeData", false);
message.destroy();
message.success("创建讨论成功");
})
.catch(() => {
message.destroy();
message.error("创建讨论失败");
});
}
};
return {

View File

@@ -262,10 +262,10 @@
<span style="color: #999999; margin-left: 8px">分钟</span>
</div>
</div>
<div class="qdqtbox">
<!-- <div class="qdqtbox">
<div class="qtbtn"><div class="btntext">签退</div></div>
</div>
<div class="setbox">
</div> -->
<!-- <div class="setbox">
<div class="timerbox">
<span>结束前</span>
<a-input-number
@@ -275,14 +275,16 @@
style="
width: 88px;
height: 32px;
border-radius: 8px;overflow: hidden; "
border-radius: 8px;
overflow: hidden;
"
v-model:value="inputV8"
></a-input-number>
<span style="color: #999999; margin-left: 8px"
>分钟提前签退则记为早退</span
>
</div>
</div>
</div> -->
</div>
</div>
<div class="main_item">
@@ -292,9 +294,9 @@
<div class="btnbox">
<a-radio-group v-model:value="radioV1">
<a-radio :value="1" @click="cloradio1">仅签到</a-radio>
<a-radio :value="2" @click="cloradio1"
<!-- <a-radio :value="2" @click="cloradio1"
>签到签退全部完成</a-radio
>
> -->
</a-radio-group>
</div>
</div>
@@ -305,7 +307,7 @@
<div class="btnbox">
<a-checkbox
v-model:checked="switchC2"
@onclick="(switchC2 = !switchC2)"
@onclick="switchC2 = !switchC2"
>学员请假后记为任务完成</a-checkbox
>
</div>
@@ -448,7 +450,7 @@ export default {
state.switchC1 = "";
state.imageUrl = "";
state.needEval = false;
state.switchC2=false;
state.switchC2 = false;
ctx.emit("changeData", false);
localStorage.setItem("stageId", props.chooseStageId);
localStorage.setItem("chapterId", props.isactive);
@@ -498,7 +500,7 @@ export default {
//state.= res.data.data
state.assessmentId = res.data.data.assessmentId;
state.imageUrl = res.data.data.liveCover;
state.switchC2 = res.data.data.otherSettings==1?true:false;
state.switchC2 = res.data.data.otherSettings == 1 ? true : false;
})
.catch(() => {
//message.error(`查询失败`);
@@ -629,10 +631,10 @@ export default {
liveId: props.edit ? props.EditLiveId : 0,
liveLink: state.inputV4,
liveName: state.inputV1,
livePlayback: state.switchC1? "1" : "0",
livePlayback: state.switchC1 ? "1" : "0",
livePlaybackLink: state.switchC1 ? state.inputV5 : "",
liveTeacherId: state.inputV3,
otherSettings: state.switchC2?"1":"0", //1或0
otherSettings: state.switchC2 ? "1" : "0", //1或0
signOutTime: state.inputV8,
standardSettings: state.radioV1, //1或2
isEvaluate: state.needEval ? "1" : "0",
@@ -745,7 +747,7 @@ export default {
queryMember();
state.fetching = false;
}, 300);
const handleChange2 = (value,label) => {
const handleChange2 = (value, label) => {
console.log(`selected ${value}`);
state.inputV3 = value;
state.memberValue = label;

View File

@@ -1526,6 +1526,7 @@ export default {
//获取路径图详细信息
const getLearnPathInfo = (item) => {
console.log("item", item);
state.out1 = true;
state.pathName = item.manager;
state.pathBg = "";

View File

@@ -564,7 +564,7 @@
<a-input
v-model:value="gatenamee"
style="width: 270px; height: 40px; border-radius: 8px"
placeholder="关卡名称"
placeholder="请输入姓名"
/>
<div class="btns" @click="searchLevel">
<div class="btn btn1">
@@ -1649,7 +1649,7 @@ export default {
//获取学员列表
const getStudent = () => {
let obj = {
name: "",
name: state.gatenamee,
pageNo: state.currentPage,
pageSize: 10,
routerId: state.routerId,
@@ -1985,10 +1985,12 @@ export default {
});
};
const searchLevel = () => {
const result = state.tableData.filter(
(item) => item.cur == state.gatenamee
);
state.tableData = result;
// const result = state.tableData.filter(
// (item) => item.cur == state.gatenamee
// );
// state.tableData = result;
state.currentPage = 1;
getStudent();
};
const resetLevel = () => {
state.gatenamee = "";

View File

@@ -640,7 +640,16 @@
</div>
</div>
</div>
<div style="width: 120px; text-align: center">
<div
style="
width: 120px;
text-align: center;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
"
:title="element.creater"
>
{{ element.creater }}
</div>
<div style="width: 120px; text-align: center">
@@ -1415,9 +1424,11 @@ export default {
item["value"] = item.chapterId;
item["label"] = item.name;
});
console.log("路径图详情", res);
if (state.level.length > 0) {
let chapter = localStorage.getItem("chapterId");
if (chapter !== "null") {
// console.log("chapter", chapter, chapter !== "null");
if (chapter) {
dataAssignment(chapter); //用哪个的任务表
state.isactive = chapter; //哪个亮
} else {
@@ -1593,6 +1604,7 @@ export default {
document.getElementsByTagName("main")[0].style.background = "#ffffff";
document.getElementsByTagName("main")[0].style.boxShadow =
"0px 1px 35px 0px rgba(118, 136, 166, 0.07)";
localStorage.removeItem("chapterId");
});
const changebgc = (chapterId) => {
state.isactive = chapterId;
@@ -1729,6 +1741,7 @@ export default {
chapterId: state.removeStageId,
routerTaskIdList: state.selectRow,
};
console.log("移动关卡obj", obj);
api
.moveTask(obj)
.then((res) => {