mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/fe-manage.git
synced 2025-12-12 20:36:45 +08:00
-- 任务
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user