Commit 13a97f8d039ee0bfacf0eec6e318a24eac4c4bde
1 parent
a26a53a6
活动删除接口
Showing
4 changed files
with
162 additions
and
189 deletions
src/api/event/index.ts
| ... | ... | @@ -130,4 +130,17 @@ export const signupList = async (params: any) => { |
| 130 | 130 | params: params |
| 131 | 131 | }) |
| 132 | 132 | return res |
| 133 | +} | |
| 134 | + | |
| 135 | +/** | |
| 136 | + * @description 删除活动 | |
| 137 | + * @function handworkDelete | |
| 138 | + */ | |
| 139 | + export const handworkDelete = async (params: any) => { | |
| 140 | + let res: any = await request({ | |
| 141 | + method: 'delete', | |
| 142 | + url: '/handwork/delete', | |
| 143 | + params: params | |
| 144 | + }) | |
| 145 | + return res | |
| 133 | 146 | } |
| 134 | 147 | \ No newline at end of file | ... | ... |
src/views/event/config.ts
| 1 | 1 | import type { EnumArrayItem } from "@/@type/module/basic" |
| 2 | 2 | |
| 3 | -interface Item { | |
| 4 | - status: string, | |
| 5 | - publish: string, | |
| 6 | - value: number | |
| 7 | -} | |
| 8 | - | |
| 9 | 3 | // 活动状态和总结状态 |
| 10 | -export const statusData: Item[] = [ | |
| 4 | +export const statusData: EnumArrayItem[] = [ | |
| 11 | 5 | { |
| 12 | - status: '草稿', | |
| 13 | - publish: '', | |
| 6 | + label: '未开始', | |
| 14 | 7 | value: 0 |
| 15 | 8 | }, |
| 16 | 9 | { |
| 17 | - status: '提交未开始', | |
| 18 | - publish: '', | |
| 10 | + label: '进行中', | |
| 19 | 11 | value: 1 |
| 20 | 12 | }, |
| 21 | 13 | { |
| 22 | - status: '进行中', | |
| 23 | - publish: '', | |
| 14 | + label: '已结束', | |
| 24 | 15 | value: 2 |
| 25 | 16 | }, |
| 26 | - { | |
| 27 | - status: '已结束', | |
| 28 | - publish: '', | |
| 29 | - value: 3 | |
| 30 | - }, | |
| 31 | - { | |
| 32 | - status: '活动结束', | |
| 33 | - publish: '草稿', | |
| 34 | - value: 4 | |
| 35 | - }, | |
| 36 | - { | |
| 37 | - status: '活动结束', | |
| 38 | - publish: '发布', | |
| 39 | - value: 5 | |
| 40 | - } | |
| 41 | 17 | ] |
| 42 | 18 | |
| 43 | 19 | // 活动评价展示到前台状态 | ... | ... |
src/views/event/handwork/edit.vue
| ... | ... | @@ -6,6 +6,7 @@ import { back } from "@/utils/tool"; |
| 6 | 6 | import { getPropertyNbhds } from "@/api/community/residence"; |
| 7 | 7 | import { useLoginStore } from "@/pinia/login"; |
| 8 | 8 | import Photowall from "@/components/Photowall/index.vue"; |
| 9 | +import { ElMessageBox } from "element-plus"; | |
| 9 | 10 | import type { ElForm } from "element-plus"; |
| 10 | 11 | let form = reactive({ |
| 11 | 12 | data: { |
| ... | ... | @@ -21,10 +22,9 @@ let form = reactive({ |
| 21 | 22 | description: "", |
| 22 | 23 | id: null, |
| 23 | 24 | oid: useLoginStore()?.getOid ?? 0, |
| 24 | - organizer: "", | |
| 25 | 25 | personLimit: null, |
| 26 | 26 | publicityPic: "", |
| 27 | - status: 0, | |
| 27 | + status: null, | |
| 28 | 28 | processDesc: "", |
| 29 | 29 | neighborhoodId: "", |
| 30 | 30 | }, |
| ... | ... | @@ -40,44 +40,6 @@ let form = reactive({ |
| 40 | 40 | const ruleFormRef = ref<InstanceType<typeof ElForm>>(); |
| 41 | 41 | let instance: ComponentInternalInstance | null = getCurrentInstance(); |
| 42 | 42 | /** |
| 43 | - * 结束时间要晚于开始时间 | |
| 44 | - */ | |
| 45 | -// const checkStartTime = (rules, value, callback) => { | |
| 46 | -// if (checkTime(value, form.data.endTime)) { | |
| 47 | -// callback(); | |
| 48 | -// } else { | |
| 49 | -// callback(new Error("结束时间要晚于开始时间")); | |
| 50 | -// } | |
| 51 | -// }; | |
| 52 | -// const checkEndTime = (rules, value, callback) => { | |
| 53 | -// if (checkTime(form.data.startTime, value)) { | |
| 54 | -// callback(); | |
| 55 | -// } else { | |
| 56 | -// callback(new Error("结束时间要晚于开始时间")); | |
| 57 | -// } | |
| 58 | -// }; | |
| 59 | -// const checkSignUpStartTime = (rules, value, callback) => { | |
| 60 | -// if (checkTime(value, form.data.signupEndTime)) { | |
| 61 | -// callback(); | |
| 62 | -// } else { | |
| 63 | -// callback(new Error("报名结束时间要晚于报名开始时间")); | |
| 64 | -// } | |
| 65 | -// }; | |
| 66 | -// const checkSignUpEndTime = (rules, value, callback) => { | |
| 67 | -// if (checkTime(form.data.signupStartTime, value)) { | |
| 68 | -// callback(); | |
| 69 | -// } else { | |
| 70 | -// callback(new Error("报名结束时间要晚于报名开始时间")); | |
| 71 | -// } | |
| 72 | -// }; | |
| 73 | -// const checkTime = (startTime, endTime, isAfterNow = false) => { | |
| 74 | -// if (new Date(endTime).getTime() > new Date(startTime).getTime()) { | |
| 75 | -// return true; | |
| 76 | -// } else { | |
| 77 | -// return false; | |
| 78 | -// } | |
| 79 | -// }; | |
| 80 | -/** | |
| 81 | 43 | * 时间组件回调 |
| 82 | 44 | * @param {array} value [开始时间, 结束时间] |
| 83 | 45 | */ |
| ... | ... | @@ -107,28 +69,11 @@ const rules = reactive({ |
| 107 | 69 | trigger: "change", |
| 108 | 70 | }, |
| 109 | 71 | ], |
| 110 | - startTime: [ | |
| 111 | - { | |
| 112 | - required: true, | |
| 113 | - message: "结束时间要晚于开始时间", | |
| 114 | - trigger: "change", | |
| 115 | - // validator: checkStartTime, | |
| 116 | - }, | |
| 117 | - ], | |
| 118 | 72 | endTime: [ |
| 119 | 73 | { |
| 120 | 74 | required: true, |
| 121 | 75 | message: "结束时间要晚于开始时间", |
| 122 | 76 | trigger: "change", |
| 123 | - // validator: checkEndTime, | |
| 124 | - }, | |
| 125 | - ], | |
| 126 | - signupStartTime: [ | |
| 127 | - { | |
| 128 | - required: true, | |
| 129 | - message: "报名结束时间要晚于报名开始时间", | |
| 130 | - trigger: "change", | |
| 131 | - // validator: checkSignUpStartTime, | |
| 132 | 77 | }, |
| 133 | 78 | ], |
| 134 | 79 | signupEndTime: [ |
| ... | ... | @@ -136,14 +81,14 @@ const rules = reactive({ |
| 136 | 81 | required: true, |
| 137 | 82 | message: "报名结束时间要晚于报名开始时间", |
| 138 | 83 | trigger: "change", |
| 139 | - // validator: checkSignUpEndTime, | |
| 140 | 84 | }, |
| 141 | 85 | ], |
| 142 | 86 | duration: [ |
| 143 | 87 | { |
| 144 | 88 | required: true, |
| 145 | - message: "请填写活动时长", | |
| 89 | + message: "请填写活动时长数字", | |
| 146 | 90 | trigger: "change", |
| 91 | + type: "number", | |
| 147 | 92 | }, |
| 148 | 93 | ], |
| 149 | 94 | location: [ |
| ... | ... | @@ -158,6 +103,15 @@ const rules = reactive({ |
| 158 | 103 | required: true, |
| 159 | 104 | message: "请填写活动单价", |
| 160 | 105 | trigger: "change", |
| 106 | + type: "number", | |
| 107 | + }, | |
| 108 | + ], | |
| 109 | + personLimit: [ | |
| 110 | + { | |
| 111 | + required: false, | |
| 112 | + message: "请填写人数限制", | |
| 113 | + trigger: "change", | |
| 114 | + type: "number", | |
| 161 | 115 | }, |
| 162 | 116 | ], |
| 163 | 117 | description: [ |
| ... | ... | @@ -186,24 +140,27 @@ const submitForm = ( |
| 186 | 140 | if (!formEl) return; |
| 187 | 141 | formEl.validate(async (valid) => { |
| 188 | 142 | if (valid) { |
| 189 | - form.data.publicityPic = form.publicityPic | |
| 190 | - .map((item) => item.url) | |
| 191 | - .join(","); | |
| 192 | - handworkEdit(form.data) | |
| 193 | - .then((res) => { | |
| 194 | - if (res) { | |
| 195 | - instance?.proxy?.$message.success("操作成功"); | |
| 196 | - back(); | |
| 197 | - } else { | |
| 198 | - instance?.proxy?.$message.error("操作失败"); | |
| 143 | + if (type) { | |
| 144 | + ElMessageBox.confirm( | |
| 145 | + "是否确定发布?(确认发布后将不可进行修改)", | |
| 146 | + "提示", | |
| 147 | + { | |
| 148 | + confirmButtonText: "确认", | |
| 149 | + cancelButtonText: "取消", | |
| 150 | + type: "warning", | |
| 199 | 151 | } |
| 200 | - }) | |
| 201 | - .catch((error) => { | |
| 202 | - console.log(error); | |
| 203 | - }) | |
| 204 | - .finally(() => { | |
| 205 | - form.loading = false; | |
| 206 | - }); | |
| 152 | + ) | |
| 153 | + .then((res) => { | |
| 154 | + form.data.status = 1; | |
| 155 | + postApi(type); | |
| 156 | + }) | |
| 157 | + .catch((error) => { | |
| 158 | + console.log(error); | |
| 159 | + }); | |
| 160 | + } else { | |
| 161 | + form.data.status = 0; | |
| 162 | + postApi(type); | |
| 163 | + } | |
| 207 | 164 | } else { |
| 208 | 165 | instance?.proxy?.$message.error("请检查表单格式"); |
| 209 | 166 | form.loading = false; |
| ... | ... | @@ -212,6 +169,26 @@ const submitForm = ( |
| 212 | 169 | }); |
| 213 | 170 | }; |
| 214 | 171 | /** |
| 172 | + * 表单提交接口 | |
| 173 | + * @param {number} type 1发布 0保存 | |
| 174 | + */ | |
| 175 | +const postApi = async (type: number) => { | |
| 176 | + form.data.publicityPic = form.publicityPic.map((item) => item.url).join(","); | |
| 177 | + handworkEdit(form.data) | |
| 178 | + .then((res) => { | |
| 179 | + if (res) { | |
| 180 | + instance?.proxy?.$message.success(type ? "发布成功" : "已存为草稿"); | |
| 181 | + history.go(-1); | |
| 182 | + } | |
| 183 | + }) | |
| 184 | + .catch((error) => { | |
| 185 | + console.log(error); | |
| 186 | + }) | |
| 187 | + .finally(() => { | |
| 188 | + form.loading = false; | |
| 189 | + }); | |
| 190 | +}; | |
| 191 | +/** | |
| 215 | 192 | * 活动分类 |
| 216 | 193 | * @param {number | null} pageSize 一次请求多少条数据 |
| 217 | 194 | */ |
| ... | ... | @@ -262,17 +239,29 @@ onMounted(() => { |
| 262 | 239 | if (JSON.stringify(useRoute().query) === "{}") { |
| 263 | 240 | form.dataType = "add"; |
| 264 | 241 | } else { |
| 265 | - console.log(useRoute().query); | |
| 266 | 242 | form.dataType = "edit"; |
| 267 | 243 | form.data = useRoute().query; |
| 244 | + form.data.personLimit = ~~useRoute().query.personLimit; | |
| 245 | + form.data.unitPrice = ~~useRoute().query.unitPrice; | |
| 246 | + form.data.duration = ~~useRoute().query.duration; | |
| 268 | 247 | form.data.craftId = ~~useRoute().query.craftId; |
| 269 | - useRoute() | |
| 270 | - .query.publicityPic.split(",") | |
| 271 | - .map((item) => { | |
| 272 | - form.publicityPic.push({ | |
| 273 | - url: item, | |
| 248 | + form.value1 = [useRoute().query.startTime, useRoute().query.endTime]; | |
| 249 | + form.value2 = [ | |
| 250 | + useRoute().query.signupStartTime, | |
| 251 | + useRoute().query.signupEndTime, | |
| 252 | + ]; | |
| 253 | + form.communityList = useRoute() | |
| 254 | + .query.neighborhoodId.split(",") | |
| 255 | + .map((i) => i / 1); | |
| 256 | + if (useRoute().query.publicityPic) { | |
| 257 | + useRoute() | |
| 258 | + .query.publicityPic.split(",") | |
| 259 | + .map((item) => { | |
| 260 | + form.publicityPic.push({ | |
| 261 | + url: item, | |
| 262 | + }); | |
| 274 | 263 | }); |
| 275 | - }); | |
| 264 | + } | |
| 276 | 265 | } |
| 277 | 266 | }); |
| 278 | 267 | </script> |
| ... | ... | @@ -310,25 +299,7 @@ onMounted(() => { |
| 310 | 299 | ></el-option> |
| 311 | 300 | </el-select> |
| 312 | 301 | </el-form-item> |
| 313 | - <!-- <el-form-item label="开始时间" prop="startTime" style="width: 50%"> | |
| 314 | - <el-date-picker | |
| 315 | - v-model="form.data.startTime" | |
| 316 | - type="datetime" | |
| 317 | - format="YYYY-MM-DD HH:mm:ss" | |
| 318 | - placeholder="请选择开始时间" | |
| 319 | - > | |
| 320 | - </el-date-picker> | |
| 321 | - </el-form-item> | |
| 322 | - <el-form-item label="结束时间" prop="endTime" style="width: 50%"> | |
| 323 | - <el-date-picker | |
| 324 | - v-model="form.data.endTime" | |
| 325 | - type="datetime" | |
| 326 | - format="YYYY-MM-DD HH:mm:ss" | |
| 327 | - placeholder="请选择结束时间" | |
| 328 | - > | |
| 329 | - </el-date-picker> | |
| 330 | - </el-form-item> --> | |
| 331 | - <el-form-item label="活动时间" prop="startTime" style="width: 100%"> | |
| 302 | + <el-form-item label="活动时间" prop="endTime" style="width: 100%"> | |
| 332 | 303 | <el-date-picker |
| 333 | 304 | v-model="form.value1" |
| 334 | 305 | type="datetimerange" |
| ... | ... | @@ -339,11 +310,7 @@ onMounted(() => { |
| 339 | 310 | @change="handleTimeChange" |
| 340 | 311 | ></el-date-picker> |
| 341 | 312 | </el-form-item> |
| 342 | - <el-form-item | |
| 343 | - label="报名时间" | |
| 344 | - prop="signupStartTime" | |
| 345 | - style="width: 100%" | |
| 346 | - > | |
| 313 | + <el-form-item label="报名时间" prop="signupEndTime" style="width: 100%"> | |
| 347 | 314 | <el-date-picker |
| 348 | 315 | v-model="form.value2" |
| 349 | 316 | type="datetimerange" |
| ... | ... | @@ -354,35 +321,9 @@ onMounted(() => { |
| 354 | 321 | @change="handleSignupTimeChange" |
| 355 | 322 | ></el-date-picker> |
| 356 | 323 | </el-form-item> |
| 357 | - <!-- <el-form-item | |
| 358 | - label="报名开始时间" | |
| 359 | - prop="signupStartTime" | |
| 360 | - style="width: 50%" | |
| 361 | - > | |
| 362 | - <el-date-picker | |
| 363 | - v-model="form.data.signupStartTime" | |
| 364 | - type="datetime" | |
| 365 | - format="YYYY-MM-DD HH:mm:ss" | |
| 366 | - placeholder="请选择报名开始时间" | |
| 367 | - > | |
| 368 | - </el-date-picker> | |
| 369 | - </el-form-item> | |
| 370 | - <el-form-item | |
| 371 | - label="报名结束时间" | |
| 372 | - prop="signupEndTime" | |
| 373 | - style="width: 50%" | |
| 374 | - > | |
| 375 | - <el-date-picker | |
| 376 | - v-model="form.data.signupEndTime" | |
| 377 | - type="datetime" | |
| 378 | - format="YYYY-MM-DD HH:mm:ss" | |
| 379 | - placeholder="请选择报名结束时间" | |
| 380 | - > | |
| 381 | - </el-date-picker> | |
| 382 | - </el-form-item> --> | |
| 383 | 324 | <el-form-item label="活动时长" prop="duration" style="width: 50%"> |
| 384 | 325 | <el-input |
| 385 | - v-model.trim="form.data.duration" | |
| 326 | + v-model.number="form.data.duration" | |
| 386 | 327 | placeholder="请填写活动时长" |
| 387 | 328 | > |
| 388 | 329 | <template #append>小时</template> |
| ... | ... | @@ -390,7 +331,7 @@ onMounted(() => { |
| 390 | 331 | </el-form-item> |
| 391 | 332 | <el-form-item label="活动单价" prop="unitPrice" style="width: 50%"> |
| 392 | 333 | <el-input |
| 393 | - v-model.trim="form.data.unitPrice" | |
| 334 | + v-model.number="form.data.unitPrice" | |
| 394 | 335 | placeholder="请填写活动单价" |
| 395 | 336 | > |
| 396 | 337 | <template #append>元</template> |
| ... | ... | @@ -423,16 +364,9 @@ onMounted(() => { |
| 423 | 364 | type="textarea" |
| 424 | 365 | /> |
| 425 | 366 | </el-form-item> |
| 426 | - <el-form-item label="组织者" prop="organizer" style="width: 50%"> | |
| 427 | - <el-input | |
| 428 | - v-model.trim="form.data.organizer" | |
| 429 | - placeholder="请填写活动组织者" | |
| 430 | - maxlength="15" | |
| 431 | - /> | |
| 432 | - </el-form-item> | |
| 433 | 367 | <el-form-item label="人数限制" prop="personLimit" style="width: 50%"> |
| 434 | 368 | <el-input |
| 435 | - v-model.trim="form.data.personLimit" | |
| 369 | + v-model.number="form.data.personLimit" | |
| 436 | 370 | placeholder="请填写人数限制" |
| 437 | 371 | maxlength="15" |
| 438 | 372 | /> |
| ... | ... | @@ -458,11 +392,20 @@ onMounted(() => { |
| 458 | 392 | </el-checkbox-group> |
| 459 | 393 | <span class="tip" v-else>暂无小区</span> |
| 460 | 394 | </el-form-item> |
| 395 | + <!-- 新增活动的时候,只有保存按钮 | |
| 396 | + 编辑活动的时候,可以保存、可以发布,提交接口用status区分,1为发布,需要二次确认,0为保存 --> | |
| 461 | 397 | <el-form-item style="width: 100%" v-show="form.dataType !== 'detail'"> |
| 462 | 398 | <el-button |
| 463 | 399 | type="primary" |
| 464 | - @click.prevent="submitForm(ruleFormRef)" | |
| 400 | + @click.prevent="submitForm(ruleFormRef, 0)" | |
| 401 | + :loading="form.loading" | |
| 402 | + >保存</el-button | |
| 403 | + > | |
| 404 | + <el-button | |
| 405 | + type="success" | |
| 406 | + @click.prevent="submitForm(ruleFormRef, 1)" | |
| 465 | 407 | :loading="form.loading" |
| 408 | + v-show="form.dataType === 'edit'" | |
| 466 | 409 | >发布</el-button |
| 467 | 410 | > |
| 468 | 411 | <el-button | ... | ... |
src/views/event/handwork/index.vue
| 1 | 1 | <script setup lang="ts"> |
| 2 | 2 | import { reactive, ref, onMounted } from "vue"; |
| 3 | -import { handworkList, eventCategory } from "@/api/event"; | |
| 3 | +import { handworkList, eventCategory, handworkDelete } from "@/api/event"; | |
| 4 | 4 | import { parseTime } from "@/utils/tool"; |
| 5 | 5 | import { statusData } from "./../config"; |
| 6 | 6 | import { useLoginStore } from "@/pinia/login"; |
| ... | ... | @@ -88,6 +88,41 @@ const getCategory = async (pageSize: number = 20) => { |
| 88 | 88 | console.log(e); |
| 89 | 89 | } |
| 90 | 90 | }; |
| 91 | +/** | |
| 92 | + * 活动删除 | |
| 93 | + * @param {number | string} id 活动id | |
| 94 | + */ | |
| 95 | +const handleDelete = (id: number | string) => { | |
| 96 | + ElMessageBox.confirm("是否确定删除该活动?", "提示", { | |
| 97 | + confirmButtonText: "确认", | |
| 98 | + cancelButtonText: "取消", | |
| 99 | + type: "warning", | |
| 100 | + }) | |
| 101 | + .then(async () => { | |
| 102 | + try { | |
| 103 | + const res = await handworkDelete({ | |
| 104 | + handworkId: id, | |
| 105 | + }); | |
| 106 | + if (res?.data) { | |
| 107 | + ElMessage({ | |
| 108 | + type: "success", | |
| 109 | + message: "操作成功", | |
| 110 | + }); | |
| 111 | + getList() | |
| 112 | + } else { | |
| 113 | + ElMessage({ | |
| 114 | + type: "error", | |
| 115 | + message: "操作失败", | |
| 116 | + }); | |
| 117 | + } | |
| 118 | + } catch (e) { | |
| 119 | + console.log(e); | |
| 120 | + } | |
| 121 | + }) | |
| 122 | + .catch((error) => { | |
| 123 | + console.log(error); | |
| 124 | + }); | |
| 125 | +}; | |
| 91 | 126 | onMounted(() => { |
| 92 | 127 | getList(); |
| 93 | 128 | getCategory(); |
| ... | ... | @@ -99,7 +134,7 @@ onMounted(() => { |
| 99 | 134 | <!-- <h1>手工活动</h1> --> |
| 100 | 135 | <el-row style="padding-bottom: 20px"> |
| 101 | 136 | <el-form :inline="true" label-width="70px"> |
| 102 | - <el-form-item label="时间"> | |
| 137 | + <el-form-item label="活动时间"> | |
| 103 | 138 | <el-date-picker |
| 104 | 139 | v-model="value1" |
| 105 | 140 | type="datetimerange" |
| ... | ... | @@ -121,7 +156,7 @@ onMounted(() => { |
| 121 | 156 | > |
| 122 | 157 | <el-option |
| 123 | 158 | v-for="(item, index) in statusData" |
| 124 | - :label="item.status" | |
| 159 | + :label="item.label" | |
| 125 | 160 | :value="item.value" |
| 126 | 161 | ></el-option> |
| 127 | 162 | </el-select> |
| ... | ... | @@ -165,18 +200,20 @@ onMounted(() => { |
| 165 | 200 | </template> |
| 166 | 201 | </el-table-column> |
| 167 | 202 | <el-table-column |
| 168 | - prop="organizer" | |
| 169 | - label="发布人" | |
| 170 | - align="center" | |
| 171 | - ></el-table-column> | |
| 172 | - <el-table-column | |
| 173 | 203 | prop="signupNum" |
| 174 | 204 | label="参与人数" |
| 175 | 205 | align="center" |
| 176 | 206 | ></el-table-column> |
| 177 | - <el-table-column prop="startTime" label="开始时间" align="center"> | |
| 207 | + <el-table-column prop="startTime" label="活动时间" align="center"> | |
| 178 | 208 | <template #default="scope"> |
| 179 | - {{ parseTime(new Date(scope.row.startTime).getTime()) }} | |
| 209 | + {{ parseTime(new Date(scope.row.startTime).getTime()) }} ~ | |
| 210 | + {{ parseTime(new Date(scope.row.endTime).getTime()) }} | |
| 211 | + </template> | |
| 212 | + </el-table-column> | |
| 213 | + <el-table-column prop="startTime" label="活动报名时间" align="center"> | |
| 214 | + <template #default="scope"> | |
| 215 | + {{ parseTime(new Date(scope.row.signupStartTime).getTime()) }} ~ | |
| 216 | + {{ parseTime(new Date(scope.row.signupEndTime).getTime()) }} | |
| 180 | 217 | </template> |
| 181 | 218 | </el-table-column> |
| 182 | 219 | <el-table-column |
| ... | ... | @@ -195,18 +232,19 @@ onMounted(() => { |
| 195 | 232 | align="center" |
| 196 | 233 | ></el-table-column> |
| 197 | 234 | <el-table-column prop="status" label="活动状态" align="center"> |
| 235 | + <!-- 活动状态值是当前时间和活动开始结束时间对比的结果 | |
| 236 | + 当前时间晚于活动结束时间,即活动已结束 | |
| 237 | + 当前时间早于活动开始时间,即活动未开始 | |
| 238 | + 当前时间介于活动开始、结束时间之间(含),即活动进行中 --> | |
| 198 | 239 | <template #default="scope"> |
| 199 | - {{ statusData.find((u) => u.value === scope.row.status)["status"] }} | |
| 200 | - </template> | |
| 201 | - </el-table-column> | |
| 202 | - <el-table-column prop="status" label="发布总结" align="center"> | |
| 203 | - <template #default="scope"> | |
| 204 | - {{ statusData.find((u) => u.value === scope.row.status)["publish"] }} | |
| 240 | + <span v-show="new Date(scope.row.endTime) < new Date()">已结束</span> | |
| 241 | + <span v-show="new Date(scope.row.startTime) > new Date()">未开始</span> | |
| 242 | + <span v-show="new Date(scope.row.startTime) <= new Date() && new Date(scope.row.endTime) >= new Date()">进行中</span> | |
| 205 | 243 | </template> |
| 206 | 244 | </el-table-column> |
| 207 | 245 | <el-table-column label="操作" align="center"> |
| 208 | 246 | <template #default="scope"> |
| 209 | - <el-button type="text" :disabled="~~scope.row.status !== 0" | |
| 247 | + <el-button type="text" | |
| 210 | 248 | ><router-link |
| 211 | 249 | :to="{ path: '/event/handwork/edit', query: scope.row }" |
| 212 | 250 | >编辑</router-link |
| ... | ... | @@ -218,6 +256,9 @@ onMounted(() => { |
| 218 | 256 | >查看人员</router-link |
| 219 | 257 | ></el-button |
| 220 | 258 | > |
| 259 | + <el-button type="text" @click="handleDelete(scope.row.id)" | |
| 260 | + >删除</el-button | |
| 261 | + > | |
| 221 | 262 | </template> |
| 222 | 263 | </el-table-column> |
| 223 | 264 | </el-table> | ... | ... |