This commit is contained in:
Pengxiansen
2025-02-24 20:24:27 +08:00
parent 8627d11239
commit 76a7070020
15 changed files with 254 additions and 140 deletions

View File

@@ -9,7 +9,7 @@
title="添加活动"
placement="right"
>
<div class="drawerMain">
<div class="drawerMain" v-if="visible">
<div class="header">
<div class="headerTitle">{{ formData.id ? "编辑" : "添加" }}活动</div>
<img
@@ -201,7 +201,7 @@
</a-drawer>
</template>
<script setup>
import { computed, defineEmits, defineProps, ref } from "vue";
import { computed, defineEmits, defineProps, ref, reactive } from "vue";
import { Form, message } from "ant-design-vue";
import dayjs from "dayjs";
import { useResetRef } from "@/utils/useCommon";
@@ -214,7 +214,7 @@ const props = defineProps({
growId: String,
});
const visible = ref(false);
const formData = useResetRef({
const formData = ref({
info: {
activityName: "",
activityNotice: "",
@@ -267,8 +267,7 @@ const rulesRef = ref({
},
],
});
const { validate } = Form.useForm(formData.info, rulesRef);
let validate = Form.useForm(formData.value.info, rulesRef).validate;
const durationText = computed(() =>
dateTime.value?.length
? dayjs(dateTime.value[1]).diff(dayjs(dateTime.value[0]), "minute")
@@ -278,8 +277,18 @@ const durationText = computed(() =>
const closeDrawer = () => {
visible.value = false;
dateTime.value = [];
formData.reset();
formData.value.info = {};
// formData.reset();
formData.value.info = {
activityName: "",
activityNotice: "",
activityStartTime: "",
activityEndTime: "",
activityDuration: "",
activityAddress: "",
activityExplain: "",
beforeSignIn: "",
afterSignIn: "",
};
};
function timeChange(time, timeStr) {
@@ -298,6 +307,10 @@ async function confirm() {
message.warning(errorFields[0].errors.join());
throw Error("数据校验不通过");
});
if (dayjs().isAfter(dayjs(formData.value.info.activityEndTime))) {
message.warning("活动结束时间不能小于当前时间");
return;
}
// 专业力ID
formData.value.growthId = props.growId;
// 任务类型
@@ -307,8 +320,12 @@ async function confirm() {
// 任务名称
formData.value.taskName = formData.value.info.activityName;
// 任务时长
formData.value.duration = durationText.value;
formData.value.info.activityDuration = durationText.value;
if (!formData.value.info.activityDuration) {
formData.value.info.activityDuration = durationText.value;
formData.value.duration = durationText.value;
} else {
formData.value.duration = formData.value.info.activityDuration;
}
saveTask(formData.value).then((res) => {
if (res.data.code == 200) {
if (formData.value.id) {
@@ -326,12 +343,13 @@ async function confirm() {
}
function openDrawer(row) {
row && (formData.value = row);
row && (formData.value = reactive(row));
row &&
(dateTime.value = [
dayjs(row.info.activityStartTime, "YYYY-MM-DD HH:mm"),
dayjs(row.info.activityEndTime, "YYYY-MM-DD HH:mm"),
]);
row && (validate = Form.useForm(formData.value.info, rulesRef).validate);
visible.value = true;
}