Commit 13a97f8d039ee0bfacf0eec6e318a24eac4c4bde

Authored by 杨泽宇
1 parent a26a53a6

活动删除接口

src/api/event/index.ts
@@ -130,4 +130,17 @@ export const signupList = async (params: any) => { @@ -130,4 +130,17 @@ export const signupList = async (params: any) => {
130 params: params 130 params: params
131 }) 131 })
132 return res 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 \ No newline at end of file 147 \ No newline at end of file
src/views/event/config.ts
1 import type { EnumArrayItem } from "@/@type/module/basic" 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 value: 0 7 value: 0
15 }, 8 },
16 { 9 {
17 - status: '提交未开始',  
18 - publish: '', 10 + label: '进行中',
19 value: 1 11 value: 1
20 }, 12 },
21 { 13 {
22 - status: '进行中',  
23 - publish: '', 14 + label: '已结束',
24 value: 2 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 +6,7 @@ import { back } from "@/utils/tool";
6 import { getPropertyNbhds } from "@/api/community/residence"; 6 import { getPropertyNbhds } from "@/api/community/residence";
7 import { useLoginStore } from "@/pinia/login"; 7 import { useLoginStore } from "@/pinia/login";
8 import Photowall from "@/components/Photowall/index.vue"; 8 import Photowall from "@/components/Photowall/index.vue";
  9 +import { ElMessageBox } from "element-plus";
9 import type { ElForm } from "element-plus"; 10 import type { ElForm } from "element-plus";
10 let form = reactive({ 11 let form = reactive({
11 data: { 12 data: {
@@ -21,10 +22,9 @@ let form = reactive({ @@ -21,10 +22,9 @@ let form = reactive({
21 description: "", 22 description: "",
22 id: null, 23 id: null,
23 oid: useLoginStore()?.getOid ?? 0, 24 oid: useLoginStore()?.getOid ?? 0,
24 - organizer: "",  
25 personLimit: null, 25 personLimit: null,
26 publicityPic: "", 26 publicityPic: "",
27 - status: 0, 27 + status: null,
28 processDesc: "", 28 processDesc: "",
29 neighborhoodId: "", 29 neighborhoodId: "",
30 }, 30 },
@@ -40,44 +40,6 @@ let form = reactive({ @@ -40,44 +40,6 @@ let form = reactive({
40 const ruleFormRef = ref<InstanceType<typeof ElForm>>(); 40 const ruleFormRef = ref<InstanceType<typeof ElForm>>();
41 let instance: ComponentInternalInstance | null = getCurrentInstance(); 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 * @param {array} value [开始时间, 结束时间] 44 * @param {array} value [开始时间, 结束时间]
83 */ 45 */
@@ -107,28 +69,11 @@ const rules = reactive({ @@ -107,28 +69,11 @@ const rules = reactive({
107 trigger: "change", 69 trigger: "change",
108 }, 70 },
109 ], 71 ],
110 - startTime: [  
111 - {  
112 - required: true,  
113 - message: "结束时间要晚于开始时间",  
114 - trigger: "change",  
115 - // validator: checkStartTime,  
116 - },  
117 - ],  
118 endTime: [ 72 endTime: [
119 { 73 {
120 required: true, 74 required: true,
121 message: "结束时间要晚于开始时间", 75 message: "结束时间要晚于开始时间",
122 trigger: "change", 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 signupEndTime: [ 79 signupEndTime: [
@@ -136,14 +81,14 @@ const rules = reactive({ @@ -136,14 +81,14 @@ const rules = reactive({
136 required: true, 81 required: true,
137 message: "报名结束时间要晚于报名开始时间", 82 message: "报名结束时间要晚于报名开始时间",
138 trigger: "change", 83 trigger: "change",
139 - // validator: checkSignUpEndTime,  
140 }, 84 },
141 ], 85 ],
142 duration: [ 86 duration: [
143 { 87 {
144 required: true, 88 required: true,
145 - message: "请填写活动时长", 89 + message: "请填写活动时长数字",
146 trigger: "change", 90 trigger: "change",
  91 + type: "number",
147 }, 92 },
148 ], 93 ],
149 location: [ 94 location: [
@@ -158,6 +103,15 @@ const rules = reactive({ @@ -158,6 +103,15 @@ const rules = reactive({
158 required: true, 103 required: true,
159 message: "请填写活动单价", 104 message: "请填写活动单价",
160 trigger: "change", 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 description: [ 117 description: [
@@ -186,24 +140,27 @@ const submitForm = ( @@ -186,24 +140,27 @@ const submitForm = (
186 if (!formEl) return; 140 if (!formEl) return;
187 formEl.validate(async (valid) => { 141 formEl.validate(async (valid) => {
188 if (valid) { 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 } else { 164 } else {
208 instance?.proxy?.$message.error("请检查表单格式"); 165 instance?.proxy?.$message.error("请检查表单格式");
209 form.loading = false; 166 form.loading = false;
@@ -212,6 +169,26 @@ const submitForm = ( @@ -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 * @param {number | null} pageSize 一次请求多少条数据 193 * @param {number | null} pageSize 一次请求多少条数据
217 */ 194 */
@@ -262,17 +239,29 @@ onMounted(() =&gt; { @@ -262,17 +239,29 @@ onMounted(() =&gt; {
262 if (JSON.stringify(useRoute().query) === "{}") { 239 if (JSON.stringify(useRoute().query) === "{}") {
263 form.dataType = "add"; 240 form.dataType = "add";
264 } else { 241 } else {
265 - console.log(useRoute().query);  
266 form.dataType = "edit"; 242 form.dataType = "edit";
267 form.data = useRoute().query; 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 form.data.craftId = ~~useRoute().query.craftId; 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 </script> 267 </script>
@@ -310,25 +299,7 @@ onMounted(() =&gt; { @@ -310,25 +299,7 @@ onMounted(() =&gt; {
310 ></el-option> 299 ></el-option>
311 </el-select> 300 </el-select>
312 </el-form-item> 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 <el-date-picker 303 <el-date-picker
333 v-model="form.value1" 304 v-model="form.value1"
334 type="datetimerange" 305 type="datetimerange"
@@ -339,11 +310,7 @@ onMounted(() =&gt; { @@ -339,11 +310,7 @@ onMounted(() =&gt; {
339 @change="handleTimeChange" 310 @change="handleTimeChange"
340 ></el-date-picker> 311 ></el-date-picker>
341 </el-form-item> 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 <el-date-picker 314 <el-date-picker
348 v-model="form.value2" 315 v-model="form.value2"
349 type="datetimerange" 316 type="datetimerange"
@@ -354,35 +321,9 @@ onMounted(() =&gt; { @@ -354,35 +321,9 @@ onMounted(() =&gt; {
354 @change="handleSignupTimeChange" 321 @change="handleSignupTimeChange"
355 ></el-date-picker> 322 ></el-date-picker>
356 </el-form-item> 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 <el-form-item label="活动时长" prop="duration" style="width: 50%"> 324 <el-form-item label="活动时长" prop="duration" style="width: 50%">
384 <el-input 325 <el-input
385 - v-model.trim="form.data.duration" 326 + v-model.number="form.data.duration"
386 placeholder="请填写活动时长" 327 placeholder="请填写活动时长"
387 > 328 >
388 <template #append>小时</template> 329 <template #append>小时</template>
@@ -390,7 +331,7 @@ onMounted(() =&gt; { @@ -390,7 +331,7 @@ onMounted(() =&gt; {
390 </el-form-item> 331 </el-form-item>
391 <el-form-item label="活动单价" prop="unitPrice" style="width: 50%"> 332 <el-form-item label="活动单价" prop="unitPrice" style="width: 50%">
392 <el-input 333 <el-input
393 - v-model.trim="form.data.unitPrice" 334 + v-model.number="form.data.unitPrice"
394 placeholder="请填写活动单价" 335 placeholder="请填写活动单价"
395 > 336 >
396 <template #append>元</template> 337 <template #append>元</template>
@@ -423,16 +364,9 @@ onMounted(() =&gt; { @@ -423,16 +364,9 @@ onMounted(() =&gt; {
423 type="textarea" 364 type="textarea"
424 /> 365 />
425 </el-form-item> 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 <el-form-item label="人数限制" prop="personLimit" style="width: 50%"> 367 <el-form-item label="人数限制" prop="personLimit" style="width: 50%">
434 <el-input 368 <el-input
435 - v-model.trim="form.data.personLimit" 369 + v-model.number="form.data.personLimit"
436 placeholder="请填写人数限制" 370 placeholder="请填写人数限制"
437 maxlength="15" 371 maxlength="15"
438 /> 372 />
@@ -458,11 +392,20 @@ onMounted(() =&gt; { @@ -458,11 +392,20 @@ onMounted(() =&gt; {
458 </el-checkbox-group> 392 </el-checkbox-group>
459 <span class="tip" v-else>暂无小区</span> 393 <span class="tip" v-else>暂无小区</span>
460 </el-form-item> 394 </el-form-item>
  395 + <!-- 新增活动的时候,只有保存按钮
  396 + 编辑活动的时候,可以保存、可以发布,提交接口用status区分,1为发布,需要二次确认,0为保存 -->
461 <el-form-item style="width: 100%" v-show="form.dataType !== 'detail'"> 397 <el-form-item style="width: 100%" v-show="form.dataType !== 'detail'">
462 <el-button 398 <el-button
463 type="primary" 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 :loading="form.loading" 407 :loading="form.loading"
  408 + v-show="form.dataType === 'edit'"
466 >发布</el-button 409 >发布</el-button
467 > 410 >
468 <el-button 411 <el-button
src/views/event/handwork/index.vue
1 <script setup lang="ts"> 1 <script setup lang="ts">
2 import { reactive, ref, onMounted } from "vue"; 2 import { reactive, ref, onMounted } from "vue";
3 -import { handworkList, eventCategory } from "@/api/event"; 3 +import { handworkList, eventCategory, handworkDelete } from "@/api/event";
4 import { parseTime } from "@/utils/tool"; 4 import { parseTime } from "@/utils/tool";
5 import { statusData } from "./../config"; 5 import { statusData } from "./../config";
6 import { useLoginStore } from "@/pinia/login"; 6 import { useLoginStore } from "@/pinia/login";
@@ -88,6 +88,41 @@ const getCategory = async (pageSize: number = 20) =&gt; { @@ -88,6 +88,41 @@ const getCategory = async (pageSize: number = 20) =&gt; {
88 console.log(e); 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 onMounted(() => { 126 onMounted(() => {
92 getList(); 127 getList();
93 getCategory(); 128 getCategory();
@@ -99,7 +134,7 @@ onMounted(() =&gt; { @@ -99,7 +134,7 @@ onMounted(() =&gt; {
99 <!-- <h1>手工活动</h1> --> 134 <!-- <h1>手工活动</h1> -->
100 <el-row style="padding-bottom: 20px"> 135 <el-row style="padding-bottom: 20px">
101 <el-form :inline="true" label-width="70px"> 136 <el-form :inline="true" label-width="70px">
102 - <el-form-item label="时间"> 137 + <el-form-item label="活动时间">
103 <el-date-picker 138 <el-date-picker
104 v-model="value1" 139 v-model="value1"
105 type="datetimerange" 140 type="datetimerange"
@@ -121,7 +156,7 @@ onMounted(() =&gt; { @@ -121,7 +156,7 @@ onMounted(() =&gt; {
121 > 156 >
122 <el-option 157 <el-option
123 v-for="(item, index) in statusData" 158 v-for="(item, index) in statusData"
124 - :label="item.status" 159 + :label="item.label"
125 :value="item.value" 160 :value="item.value"
126 ></el-option> 161 ></el-option>
127 </el-select> 162 </el-select>
@@ -165,18 +200,20 @@ onMounted(() =&gt; { @@ -165,18 +200,20 @@ onMounted(() =&gt; {
165 </template> 200 </template>
166 </el-table-column> 201 </el-table-column>
167 <el-table-column 202 <el-table-column
168 - prop="organizer"  
169 - label="发布人"  
170 - align="center"  
171 - ></el-table-column>  
172 - <el-table-column  
173 prop="signupNum" 203 prop="signupNum"
174 label="参与人数" 204 label="参与人数"
175 align="center" 205 align="center"
176 ></el-table-column> 206 ></el-table-column>
177 - <el-table-column prop="startTime" label="开始时间" align="center"> 207 + <el-table-column prop="startTime" label="活动时间" align="center">
178 <template #default="scope"> 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 </template> 217 </template>
181 </el-table-column> 218 </el-table-column>
182 <el-table-column 219 <el-table-column
@@ -195,18 +232,19 @@ onMounted(() =&gt; { @@ -195,18 +232,19 @@ onMounted(() =&gt; {
195 align="center" 232 align="center"
196 ></el-table-column> 233 ></el-table-column>
197 <el-table-column prop="status" label="活动状态" align="center"> 234 <el-table-column prop="status" label="活动状态" align="center">
  235 + <!-- 活动状态值是当前时间和活动开始结束时间对比的结果
  236 + 当前时间晚于活动结束时间,即活动已结束
  237 + 当前时间早于活动开始时间,即活动未开始
  238 + 当前时间介于活动开始、结束时间之间(含),即活动进行中 -->
198 <template #default="scope"> 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 </template> 243 </template>
206 </el-table-column> 244 </el-table-column>
207 <el-table-column label="操作" align="center"> 245 <el-table-column label="操作" align="center">
208 <template #default="scope"> 246 <template #default="scope">
209 - <el-button type="text" :disabled="~~scope.row.status !== 0" 247 + <el-button type="text"
210 ><router-link 248 ><router-link
211 :to="{ path: '/event/handwork/edit', query: scope.row }" 249 :to="{ path: '/event/handwork/edit', query: scope.row }"
212 >编辑</router-link 250 >编辑</router-link
@@ -218,6 +256,9 @@ onMounted(() =&gt; { @@ -218,6 +256,9 @@ onMounted(() =&gt; {
218 >查看人员</router-link 256 >查看人员</router-link
219 ></el-button 257 ></el-button
220 > 258 >
  259 + <el-button type="text" @click="handleDelete(scope.row.id)"
  260 + >删除</el-button
  261 + >
221 </template> 262 </template>
222 </el-table-column> 263 </el-table-column>
223 </el-table> 264 </el-table>