This commit is contained in:
Pengxiansen
2025-02-25 19:35:24 +08:00
parent a6f5212a8a
commit 353458e050
23 changed files with 1984 additions and 1800 deletions

View File

@@ -9,115 +9,117 @@
title="添加投票"
placement="right"
>
<div class="drawerMain">
<div class="header">
<div class="headerTitle">{{ title }}</div>
<a-spin :spinning="spinning">
<div class="drawerMain">
<div class="header">
<div class="headerTitle">{{ title }}</div>
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<template v-if="step == 1">
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
<img
style="width: 29px; height: 29px; cursor: pointer"
src="../../assets/images/basicinfo/close.png"
@click="closeDrawer"
/>
</div>
<template v-if="step == 1">
<div class="contentMain">
<div class="main_left">
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">任务名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="formData.info.voteName"
style="width: 424px; height: 40px; border-radius: 8px"
placeholder="请输入投票任务名称"
maxlength="20"
/>
</div>
<span style="margin-right: 3px">任务名称</span>
</div>
<div class="btnbox">
<a-input
v-model:value="formData.info.voteName"
style="width: 424px; height: 40px; border-radius: 8px"
placeholder="请输入投票任务名称"
maxlength="20"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span style="margin-right: 3px">起止时间</span>
</div>
<div class="select">
<a-range-picker
:show-time="{ format: 'HH:mm' }"
format="YYYY-MM-DD HH:mm"
style="width: 424px"
v-model:value="dateTime"
@change="timeChange"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
<span style="margin-right: 3px">起止时间</span>
</div>
<div class="select">
<a-range-picker
:show-time="{ format: 'HH:mm' }"
format="YYYY-MM-DD HH:mm"
style="width: 424px"
v-model:value="dateTime"
@change="timeChange"
:placeholder="[' 开始时间', ' 结束时间']"
/>
</div>
</div>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
<div class="main_item">
<div class="signbox">
<div class="sign">
<img
src="@/assets/images/coursewareManage/asterisk.png"
alt=""
/>
</div>
<span>创建投票题干</span>
</div>
<span>创建投票题干</span>
</div>
<div class="btnbox">
<button class="xkbtn" @click="step = 2">
{{
formData.info.voteStemDtoList.length ? "编辑" : "创建"
}}投票题干
</button>
<div class="btnbox">
<button class="xkbtn" @click="step = 2">
{{
formData.info.voteStemDtoList.length ? "编辑" : "创建"
}}投票题干
</button>
<div v-if="formData.info.voteStemDtoList.length">
<a-tag closable color="processing" @close="handleDel">
<span style="font-size: 14px; line-height: 33px"
>删除投票题干</span
>
</a-tag>
<div v-if="formData.info.voteStemDtoList.length">
<a-tag closable color="processing" @close="handleDel">
<span style="font-size: 14px; line-height: 33px"
>删除投票题干</span
>
</a-tag>
</div>
</div>
</div>
</div>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">投票说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="formData.info.voteExplain"
placeholder="请输入投票说明"
allow-clear
:rows="6"
maxlength="150"
/>
<div class="main_item2">
<div class="signbox">
<span style="margin-right: 3px">投票说明</span>
</div>
<div class="textarea">
<a-textarea
v-model:value="formData.info.voteExplain"
placeholder="请输入投票说明"
allow-clear
:rows="6"
maxlength="150"
/>
</div>
</div>
</div>
</div>
</div>
<div class="main_btns">
<button class="btn2" @click="closeDrawer">取消</button>
<button class="btn2" @click="confirm">确定</button>
</div>
</template>
<template v-if="step == 2">
<CreateVote
v-model:options="formData.info.voteStemDtoList"
@close="step = 1"
@confirm="step = 1"
>
</CreateVote>
</template>
</div>
<div class="main_btns">
<button class="btn2" @click="closeDrawer">取消</button>
<button class="btn2" @click="confirm">确定</button>
</div>
</template>
<template v-if="step == 2">
<CreateVote
v-model:options="formData.info.voteStemDtoList"
@close="step = 1"
@confirm="step = 1"
>
</CreateVote>
</template>
</div>
</a-spin>
</a-drawer>
</template>
<script setup>
@@ -210,7 +212,7 @@ function timeChange(time, timeStr) {
const disabledDate = (current) => {
return current && current < dayjs().startOf("day");
};
const spinning = ref(false);
async function confirm() {
await validate().catch(({ errorFields }) => {
message.warning(errorFields[0].errors.join());
@@ -228,22 +230,28 @@ async function confirm() {
formData.value.type = props.activeKey;
// 任务名称
formData.value.taskName = formData.value.info.voteName;
saveTask(formData.value).then((res) => {
if (res.data.code == 200) {
if (formData.value.id) {
message.success("编辑成功");
spinning.value = true;
saveTask(formData.value)
.then((res) => {
if (res.data.code == 200) {
if (formData.value.id) {
message.success("编辑成功");
} else {
message.success("添加成功");
}
emit("refresh");
} else {
message.success("添加成功");
message.error(res.msg);
}
emit("refresh");
} else {
message.error(res.msg);
}
closeDrawer();
});
closeDrawer();
})
.finally(() => {
spinning.value = false;
});
}
function openDrawer(row) {
row && (row = JSON.parse(JSON.stringify(row)));
row && (formData.value = row);
row &&
(dateTime.value = [