-- 任务

This commit is contained in:
yuping
2022-11-30 23:34:54 +08:00
parent 4690ba17a5
commit 27403d149f

View File

@@ -1,19 +1,19 @@
<template> <template>
<a-drawer <a-drawer
:visible="addactiveVisible" :visible="addactiveVisible"
class="drawerStyle addactiveDrawer" class="drawerStyle addactiveDrawer"
width="80%" width="80%"
title="添加活动" title="添加活动"
placement="right" placement="right"
@after-visible-change="afterVisibleChange" @after-visible-change="afterVisibleChange"
> >
<div class="drawerMain"> <div class="drawerMain">
<div class="header"> <div class="header">
<div class="headerTitle">{{ edit ? "编辑" : "添加" }}活动</div> <div class="headerTitle">{{ edit ? "编辑" : "添加" }}活动</div>
<img <img
style="width: 29px; height: 29px; cursor: pointer" style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png" src="../../assets/images/basicinfo/close.png"
@click="closeDrawer" @click="closeDrawer"
/> />
</div> </div>
<div class="contentMain"> <div class="contentMain">
@@ -22,18 +22,18 @@
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img
src="@/assets/images/coursewareManage/asterisk.png" src="@/assets/images/coursewareManage/asterisk.png"
alt="" alt=""
/> />
</div> </div>
<span style="margin-right: 3px">活动名称</span> <span style="margin-right: 3px">活动名称</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input <a-input
v-model:value="inputV1" v-model:value="inputV1"
style="width: 424px; height: 32px" style="width: 424px; height: 32px"
placeholder="请输入活动名称" placeholder="请输入活动名称"
maxlength="20" maxlength="20"
/> />
</div> </div>
</div> </div>
@@ -41,18 +41,18 @@
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img
src="@/assets/images/coursewareManage/asterisk.png" src="@/assets/images/coursewareManage/asterisk.png"
alt="" alt=""
/> />
</div> </div>
<span style="margin-right: 3px">活动公告</span> <span style="margin-right: 3px">活动公告</span>
</div> </div>
<div class="textarea"> <div class="textarea">
<a-textarea <a-textarea
v-model:value="textV1" v-model:value="textV1"
placeholder="请输入活动公告" placeholder="请输入活动公告"
allow-clear allow-clear
maxlength="150" maxlength="150"
/> />
</div> </div>
</div> </div>
@@ -62,10 +62,10 @@
</div> </div>
<div class="textarea"> <div class="textarea">
<a-textarea <a-textarea
v-model:value="textV2" v-model:value="textV2"
placeholder="请输入活动说明" placeholder="请输入活动说明"
allow-clear allow-clear
maxlength="150" maxlength="150"
/> />
</div> </div>
</div> </div>
@@ -73,17 +73,17 @@
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img
src="@/assets/images/coursewareManage/asterisk.png" src="@/assets/images/coursewareManage/asterisk.png"
alt="" alt=""
/> />
</div> </div>
<span style="margin-right: 3px">活动时间</span> <span style="margin-right: 3px">活动时间</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-range-picker <a-range-picker
style="width: 424px" style="width: 424px"
v-model:value="time" v-model:value="time"
:placeholder="[' 开始时间', ' 结束时间']" :placeholder="[' 开始时间', ' 结束时间']"
/> />
</div> </div>
</div> </div>
@@ -91,23 +91,23 @@
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img
src="@/assets/images/coursewareManage/asterisk.png" src="@/assets/images/coursewareManage/asterisk.png"
alt="" alt=""
/> />
</div> </div>
<span style="margin-right: 3px">活动时长</span> <span style="margin-right: 3px">活动时长</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input-number <a-input-number
:min="0" :min="0"
:precision="0" :precision="0"
style=" style="
width: 388px; width: 388px;
height: 32px; height: 32px;
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
" "
v-model:value="inputV2" v-model:value="inputV2"
/> />
<span style="margin-left: 5px">分钟</span> <span style="margin-left: 5px">分钟</span>
</div> </div>
@@ -116,17 +116,17 @@
<div class="signbox"> <div class="signbox">
<div class="sign"> <div class="sign">
<img <img
src="@/assets/images/coursewareManage/asterisk.png" src="@/assets/images/coursewareManage/asterisk.png"
alt="" alt=""
/> />
</div> </div>
<span style="margin-right: 3px">活动地址</span> <span style="margin-right: 3px">活动地址</span>
</div> </div>
<div class="btnbox"> <div class="btnbox">
<a-input <a-input
v-model:value="inputV3" v-model:value="inputV3"
style="width: 424px; height: 32px" style="width: 424px; height: 32px"
placeholder="请输入活动地址" placeholder="请输入活动地址"
/> />
</div> </div>
</div> </div>
@@ -136,62 +136,66 @@
</div> </div>
<div class="kqszbox"> <div class="kqszbox">
<div class="qdqtbox"> <div class="qdqtbox">
<div class="qdbtn"><div class="btntext">签到</div></div> <div class="qdbtn">
<div class="btntext">签到</div>
</div>
</div> </div>
<div class="setbox"> <div class="setbox">
<div class="timerbox"> <div class="timerbox">
<span>开始前</span> <span>开始前</span>
<a-input-number <a-input-number
:min="0" :min="0"
:max="30" :max="30"
:precision="0" :precision="0"
style=" style="
width: 88px; width: 88px;
height: 32px; height: 32px;
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
" "
v-model:value="inputV4" v-model:value="inputV4"
/> />
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
</div> </div>
<div class="timerbox"> <div class="timerbox">
<span>开始后</span> <span>开始后</span>
<a-input-number <a-input-number
:min="0" :min="0"
:max="30" :max="30"
:precision="0" :precision="0"
style=" style="
width: 88px; width: 88px;
height: 32px; height: 32px;
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
" "
v-model:value="inputV5" v-model:value="inputV5"
/> />
<span style="color: #999999; margin-left: 8px">分钟</span> <span style="color: #999999; margin-left: 8px">分钟</span>
</div> </div>
</div> </div>
<div class="qdqtbox"> <div class="qdqtbox">
<div class="qtbtn"><div class="btntext">签退</div></div> <div class="qtbtn">
<div class="btntext">签退</div>
</div>
</div> </div>
<div class="setbox"> <div class="setbox">
<div class="timerbox"> <div class="timerbox">
<span>结束前</span> <span>结束前</span>
<a-input-number <a-input-number
:min="0" :min="0"
:max="30" :max="30"
:precision="0" :precision="0"
style=" style="
width: 88px; width: 88px;
height: 32px; height: 32px;
border-radius: 8px; border-radius: 8px;
overflow: hidden; overflow: hidden;
" "
v-model:value="inputV6" v-model:value="inputV6"
/> />
<span style="color: #999999; margin-left: 8px" <span style="color: #999999; margin-left: 8px"
>分钟提前签退则记为早退</span >分钟提前签退则记为早退</span
> >
</div> </div>
</div> </div>
@@ -204,10 +208,12 @@
<div class="btnbox"> <div class="btnbox">
<a-radio-group v-model:value="radioV1"> <a-radio-group v-model:value="radioV1">
<a-radio v-model:checked="checked" :value="1" @click="cloradio1" <a-radio v-model:checked="checked" :value="1" @click="cloradio1"
>仅签到</a-radio >仅签到
</a-radio
> >
<a-radio v-model:checked="checked" :value="2" @click="cloradio1" <a-radio v-model:checked="checked" :value="2" @click="cloradio1"
>签到签退全部完成</a-radio >签到签退全部完成
</a-radio
> >
</a-radio-group> </a-radio-group>
</div> </div>
@@ -222,11 +228,11 @@
</a-drawer> </a-drawer>
</template> </template>
<script> <script>
import { reactive, toRefs } from "vue"; import {reactive, toRefs} from "vue";
import * as api from "../../api/indexActivity"; import * as api from "../../api/indexActivity";
import * as apiTask from "../../api/indexTaskadd"; import * as apiTask from "../../api/indexTaskadd";
import { RouterEditTask } from "@/api/indexTask"; import {RouterEditTask} from "@/api/indexTask";
import { message } from "ant-design-vue"; import {message} from "ant-design-vue";
import dayjs from "dayjs"; import dayjs from "dayjs";
export default { export default {
@@ -282,7 +288,7 @@ export default {
type: Number, type: Number,
default: null, default: null,
}, },
projectTemplateId:{ projectTemplateId: {
type: Number, type: Number,
default: null, default: null,
}, },
@@ -335,25 +341,26 @@ export default {
} }
const queryActive = () => { const queryActive = () => {
api api
.getActivity(props.EditActiveId) .getActivity(props.EditActiveId)
.then((res) => { .then((res) => {
//更新讨论信息 //更新讨论信息
state.inputV1 = res.data.data.activityName; state.inputV1 = res.data.data.activityName;
state.textV1 = res.data.data.activityNotice; state.textV1 = res.data.data.activityNotice;
state.textV2 = res.data.data.activityExplain; state.textV2 = res.data.data.activityExplain;
state.inputV2 = res.data.data.activityDuration; state.inputV2 = res.data.data.activityDuration;
state.inputV3 = res.data.data.activityAddress; state.inputV3 = res.data.data.activityAddress;
state.inputV5 = res.data.data.afterSignIn; state.inputV5 = res.data.data.afterSignIn;
state.inputV6 = res.data.data.signOutTime; state.inputV6 = res.data.data.signOutTime;
state.inputV4 = res.data.data.beforeSignIn; state.inputV4 = res.data.data.beforeSignIn;
state.radioV1 = Number(res.data.data.standardSettings); state.radioV1 = Number(res.data.data.standardSettings);
state.time = [ state.time = [
dayjs(res.data.data.activityStartTime, "YYYY-MM-DD"), dayjs(res.data.data.activityStartTime, "YYYY-MM-DD"),
dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"), dayjs(res.data.data.activityEndTime, "YYYY-MM-DD"),
]; ];
}) })
.catch(() => {}); .catch(() => {
});
}; };
const afterVisibleChange = (bool) => { const afterVisibleChange = (bool) => {
if (bool && props.edit) { if (bool && props.edit) {
@@ -365,9 +372,9 @@ export default {
state.radioV1 = ""; state.radioV1 = "";
} }
}; };
const updateTask = (res) => { const updateTask = async (res) => {
if (props.isLevel == 1) { if (props.isLevel == 1) {
RouterEditTask({ await RouterEditTask({
chapterId: props.isactive, chapterId: props.isactive,
courseId: res.data.data.activityId, courseId: res.data.data.activityId,
duration: res.data.data.activityDuration, duration: res.data.data.activityDuration,
@@ -376,47 +383,47 @@ export default {
routerTaskId: props.routerTaskId || 0, routerTaskId: props.routerTaskId || 0,
type: 9, type: 9,
}) })
.then(() => { .then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`); //message.success(`${props.edit ? "编辑" : "新增"}关卡任务成功`);
}) })
.catch(() => { .catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`); //message.error(`${props.edit ? "编辑" : "新增"}关卡任务失败`);
}); });
} else if (props.isLevel == 2) { } else if (props.isLevel == 2) {
apiTask await apiTask
.addTask({ .addTask({
courseId: res.data.data.activityId, courseId: res.data.data.activityId,
duration: res.data.data.activityDuration, duration: res.data.data.activityDuration,
name: res.data.data.activityName, name: res.data.data.activityName,
projectId: props.projectId, projectId: props.projectId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0, stageId: props.chooseStageId || 0,
type: 9, type: 9,
}) })
.then(() => { .then(() => {
//message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); //message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
}) })
.catch(() => { .catch(() => {
//////message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); //////message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} else if (props.isLevel == 3) { } else if (props.isLevel == 3) {
apiTask await apiTask
.addTempTask({ .addTempTask({
courseId: res.data.data.activityId, courseId: res.data.data.activityId,
duration: res.data.data.activityDuration, duration: res.data.data.activityDuration,
name: res.data.data.activityName, name: res.data.data.activityName,
projectTemplateId: props.projectTemplateId, projectTemplateId: props.projectTemplateId,
projectTaskId: props.projectTaskId || 0, projectTaskId: props.projectTaskId || 0,
stageId: props.chooseStageId || 0, stageId: props.chooseStageId || 0,
type: 9, type: 9,
}) })
.then(() => { .then(() => {
ctx.emit("changeData", false); ctx.emit("changeData", false);
//message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`); //message.success(`${props.edit ? "编辑" : "新增"}阶段任务成功`);
}) })
.catch(() => { .catch(() => {
//message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`); //message.error(`${props.edit ? "编辑" : "新增"}阶段任务失败`);
}); });
} }
@@ -462,33 +469,33 @@ export default {
if (props.edit) { if (props.edit) {
//更新编辑活动信息 //更新编辑活动信息
api api
.updateActivity(obj) .updateActivity(obj)
.then((res) => { .then(async (res) => {
closeDrawer(); closeDrawer();
updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
message.destroy(); message.destroy();
message.success("更新成功"); message.success("更新成功");
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error("更新失败"); message.error("更新失败");
}); });
} else { } else {
//新建活动信息 //新建活动信息
api api
.createActivity(obj) .createActivity(obj)
.then((res) => { .then(async (res) => {
message.destroy(); message.destroy();
message.success("创建成功"); message.success("创建成功");
closeDrawer(); closeDrawer();
updateTask(res); await updateTask(res);
ctx.emit("changeData", false); ctx.emit("changeData", false);
}) })
.catch(() => { .catch(() => {
message.destroy(); message.destroy();
message.error("创建失败"); message.error("创建失败");
}); });
} }
}; };
@@ -507,6 +514,7 @@ export default {
.ant-table-striped :deep(.table-striped) td { .ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important; background-color: #fafafa !important;
} }
.addactiveDrawer { .addactiveDrawer {
.drawerMain { .drawerMain {
.header { .header {
@@ -516,6 +524,7 @@ export default {
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
flex-shrink: 0; flex-shrink: 0;
.headerTitle { .headerTitle {
font-size: 18px; font-size: 18px;
font-weight: 600; font-weight: 600;
@@ -524,40 +533,49 @@ export default {
margin-left: 24px; margin-left: 24px;
} }
} }
.contentMain { .contentMain {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.ant-input { .ant-input {
height: 88px; height: 88px;
width: 384px; width: 384px;
border-radius: 8px; border-radius: 8px;
} }
.ant-picker { .ant-picker {
border-radius: 8px; border-radius: 8px;
} }
.main_left { .main_left {
margin-top: 32px; margin-top: 32px;
padding-right: 30px; padding-right: 30px;
flex: 1; flex: 1;
border-right: 1px solid #e8e8e8; border-right: 1px solid #e8e8e8;
.main_item { .main_item {
display: flex; display: flex;
align-items: center; align-items: center;
margin-top: 32px; margin-top: 32px;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;
display: flex; display: flex;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
.sign { .sign {
margin-right: 5px; margin-right: 5px;
} }
} }
.btnbox { .btnbox {
display: flex; display: flex;
flex: 1; flex: 1;
align-items: center; align-items: center;
.xkbtn { .xkbtn {
cursor: pointer; cursor: pointer;
width: 130px; width: 130px;
@@ -570,24 +588,29 @@ export default {
} }
} }
} }
.main_item2 { .main_item2 {
display: flex; display: flex;
align-items: flex-start; align-items: flex-start;
margin-bottom: 32px; margin-bottom: 32px;
.signbox { .signbox {
width: 120px; width: 120px;
display: flex; display: flex;
justify-content: end; justify-content: end;
align-items: center; align-items: center;
.sign { .sign {
margin-right: 5px; margin-right: 5px;
} }
} }
.kqszbox { .kqszbox {
.qdqtbox { .qdqtbox {
margin-left: 5px; margin-left: 5px;
cursor: pointer; cursor: pointer;
} }
.qdbtn, .qdbtn,
.qtbtn { .qtbtn {
width: 75px; width: 75px;
@@ -598,15 +621,18 @@ export default {
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
.btntext { .btntext {
color: #387df7; color: #387df7;
} }
} }
.setbox { .setbox {
display: flex; display: flex;
flex-wrap: wrap; flex-wrap: wrap;
margin-top: 10px; margin-top: 10px;
margin-bottom: 24px; margin-bottom: 24px;
.timerbox { .timerbox {
margin-top: 6px; margin-top: 6px;
margin-right: 32px; margin-right: 32px;
@@ -616,10 +642,12 @@ export default {
} }
} }
} }
.btnbox2 { .btnbox2 {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: flex-start; justify-content: flex-start;
.xkbtn { .xkbtn {
cursor: pointer; cursor: pointer;
width: 130px; width: 130px;
@@ -636,6 +664,7 @@ export default {
} }
} }
} }
.main_btns { .main_btns {
height: 72px; height: 72px;
width: 100%; width: 100%;
@@ -645,6 +674,7 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16); box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 { .btn1 {
width: 100px; width: 100px;
height: 40px; height: 40px;
@@ -654,6 +684,7 @@ export default {
background-color: #fff; background-color: #fff;
cursor: pointer; cursor: pointer;
} }
.btn2 { .btn2 {
cursor: pointer; cursor: pointer;
width: 100px; width: 100px;