-- 任务

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>
<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>
@@ -136,62 +136,66 @@
</div>
<div class="kqszbox">
<div class="qdqtbox">
<div class="qdbtn"><div class="btntext">签到</div></div>
<div class="qdbtn">
<div class="btntext">签到</div>
</div>
</div>
<div class="setbox">
<div class="timerbox">
<span>开始前</span>
<a-input-number
:min="0"
:max="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="qtbtn"><div class="btntext">签退</div></div>
<div class="qtbtn">
<div class="btntext">签退</div>
</div>
</div>
<div class="setbox">
<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="inputV6"
v-model:value="inputV6"
/>
<span style="color: #999999; margin-left: 8px"
>分钟提前签退则记为早退</span
>分钟提前签退则记为早退</span
>
</div>
</div>
@@ -204,10 +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
>
<a-radio v-model:checked="checked" :value="2" @click="cloradio1"
>签到签退全部完成</a-radio
>签到签退全部完成
</a-radio
>
</a-radio-group>
</div>
@@ -222,11 +228,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 {
@@ -282,7 +288,7 @@ export default {
type: Number,
default: null,
},
projectTemplateId:{
projectTemplateId: {
type: Number,
default: null,
},
@@ -335,25 +341,26 @@ export default {
}
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) {
@@ -365,9 +372,9 @@ export default {
state.radioV1 = "";
}
};
const updateTask = (res) => {
const updateTask = async (res) => {
if (props.isLevel == 1) {
RouterEditTask({
await RouterEditTask({
chapterId: props.isactive,
courseId: res.data.data.activityId,
duration: res.data.data.activityDuration,
@@ -376,49 +383,49 @@ 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) {
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 ? "编辑" : "新增"}阶段任务失败`);
});
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 ? "编辑" : "新增"}阶段任务失败`);
});
} else if (props.isLevel == 3) {
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 ? "编辑" : "新增"}阶段任务失败`);
});
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 ? "编辑" : "新增"}阶段任务失败`);
});
}
};
//创建活动
@@ -462,33 +469,33 @@ export default {
if (props.edit) {
//更新编辑活动信息
api
.updateActivity(obj)
.then((res) => {
closeDrawer();
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((res) => {
message.destroy();
message.success("创建成功");
closeDrawer();
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("创建失败");
});
}
};
@@ -507,6 +514,7 @@ export default {
.ant-table-striped :deep(.table-striped) td {
background-color: #fafafa !important;
}
.addactiveDrawer {
.drawerMain {
.header {
@@ -516,6 +524,7 @@ export default {
justify-content: space-between;
align-items: center;
flex-shrink: 0;
.headerTitle {
font-size: 18px;
font-weight: 600;
@@ -524,40 +533,49 @@ export default {
margin-left: 24px;
}
}
.contentMain {
display: flex;
justify-content: space-between;
.ant-input {
height: 88px;
width: 384px;
border-radius: 8px;
}
.ant-picker {
border-radius: 8px;
}
.main_left {
margin-top: 32px;
padding-right: 30px;
flex: 1;
border-right: 1px solid #e8e8e8;
.main_item {
display: flex;
align-items: center;
margin-top: 32px;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.btnbox {
display: flex;
flex: 1;
align-items: center;
.xkbtn {
cursor: pointer;
width: 130px;
@@ -570,24 +588,29 @@ export default {
}
}
}
.main_item2 {
display: flex;
align-items: flex-start;
margin-bottom: 32px;
.signbox {
width: 120px;
display: flex;
justify-content: end;
align-items: center;
.sign {
margin-right: 5px;
}
}
.kqszbox {
.qdqtbox {
margin-left: 5px;
cursor: pointer;
}
.qdbtn,
.qtbtn {
width: 75px;
@@ -598,15 +621,18 @@ export default {
display: flex;
align-items: center;
justify-content: center;
.btntext {
color: #387df7;
}
}
.setbox {
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-bottom: 24px;
.timerbox {
margin-top: 6px;
margin-right: 32px;
@@ -616,10 +642,12 @@ export default {
}
}
}
.btnbox2 {
display: flex;
flex-direction: column;
justify-content: flex-start;
.xkbtn {
cursor: pointer;
width: 130px;
@@ -636,6 +664,7 @@ export default {
}
}
}
.main_btns {
height: 72px;
width: 100%;
@@ -645,6 +674,7 @@ export default {
align-items: center;
justify-content: center;
box-shadow: 0px 1px 35px 0px rgba(118, 136, 166, 0.16);
.btn1 {
width: 100px;
height: 40px;
@@ -654,6 +684,7 @@ export default {
background-color: #fff;
cursor: pointer;
}
.btn2 {
cursor: pointer;
width: 100px;