Commit 532b8d6592c81ced86adc5f30c744872465e44f1

Authored by 杨泽宇
1 parent a3dbfdbd

报名信息

src/views/event/handwork/index.vue
... ... @@ -187,7 +187,9 @@ onMounted(() => {
187 187 ></el-button
188 188 >
189 189 <el-button type="text">删除</el-button>
190   - <el-button type="text">查看人员</el-button>
  190 + <el-button type="text"><router-link :to="{ path: '/event/handwork/signup', query: scope.row }"
  191 + >查看人员</router-link
  192 + ></el-button>
191 193 <el-button type="text">编辑/查看/发布活动总结</el-button>
192 194 </template>
193 195 </el-table-column>
... ...
src/views/event/handwork/signup.vue
  1 +<script setup lang="ts">
  2 +import { reactive, ref, onMounted } from "vue";
  3 +import { signupList, cancelSignup } from "@/api/event";
  4 +import { parseTime } from "@/utils/tool";
  5 +import Pagination from "@/components/Pagination/index.vue";
  6 +import { ElMessageBox, ElMessage } from "element-plus";
  7 +interface Form {
  8 + page: number;
  9 + pageSize: number;
  10 + name: string;
  11 + mobile: string;
  12 + handworkId: number | null;
  13 +}
  14 +interface Params {
  15 + total: number;
  16 + query: Form;
  17 +}
  18 +interface Data {
  19 + loading: boolean;
  20 + list: any[] | null;
  21 + params: Params;
  22 +}
  23 +let data = reactive({
  24 + list: [],
  25 + loading: false,
  26 + params: {
  27 + total: 0,
  28 + query: {
  29 + page: 1,
  30 + pageSize: 10,
  31 + name: "",
  32 + mobile: "",
  33 + handworkId: 4,
  34 + },
  35 + },
  36 +});
  37 +/**
  38 + * 列表
  39 + */
  40 +const getList = async () => {
  41 + data.loading = true;
  42 + try {
  43 + const res = await signupList(data.params.query);
  44 + data.list = res?.data?.data.list;
  45 + data.params.total = res?.data?.data?.total;
  46 + } catch (e) {
  47 + console.log(e);
  48 + } finally {
  49 + data.loading = false;
  50 + }
  51 +};
  52 +/**
  53 + * 移除报名信息
  54 + */
  55 +const handleRemove = async (obj: any) => {
  56 + ElMessageBox.confirm("确认移除吗?", "警告", {
  57 + confirmButtonText: "确认",
  58 + cancelButtonText: "取消",
  59 + type: "warning",
  60 + })
  61 + .then(async () => {
  62 + try {
  63 + let res = await cancelSignup({
  64 + signupId: obj.id,
  65 + });
  66 + if (res?.data) {
  67 + ElMessage({
  68 + type: "success",
  69 + message: "操作成功",
  70 + });
  71 + getList();
  72 + } else {
  73 + ElMessage({
  74 + type: "error",
  75 + message: "操作失败",
  76 + });
  77 + }
  78 + } catch (e) {
  79 + console.log(e);
  80 + }
  81 + })
  82 + .catch(() => {
  83 + console.log("取消");
  84 + });
  85 +};
  86 +onMounted(() => {
  87 + getList();
  88 +});
  89 +</script>
  90 +
1 91 <template>
2   - 报名信息
3   -</template>
4 92 \ No newline at end of file
  93 + <div class="page-container">
  94 + <!-- <h1>报名信息</h1> -->
  95 + <el-row style="padding-bottom: 20px">
  96 + <el-form :inline="true" label-width="70px">
  97 + <el-form-item label="名称">
  98 + <el-input
  99 + v-model.trim="data.params.query.name"
  100 + placeholder="请填写名称"
  101 + maxlength="15"
  102 + @change="getList"
  103 + />
  104 + </el-form-item>
  105 + <el-form-item label="手机号">
  106 + <el-input
  107 + v-model.trim="data.params.query.mobile"
  108 + placeholder="请填写手机号"
  109 + maxlength="15"
  110 + @change="getList"
  111 + />
  112 + </el-form-item>
  113 + <el-form-item>
  114 + <el-button type="primary" @click="getList">查询</el-button>
  115 + </el-form-item>
  116 + </el-form>
  117 + </el-row>
  118 + <el-table
  119 + :data="data.list"
  120 + style="width: 100%"
  121 + border
  122 + v-loading="data.loading"
  123 + align="center"
  124 + element-loading-text="拼命加载中"
  125 + >
  126 + <el-table-column prop="id" label="ID" align="center"></el-table-column>
  127 + <el-table-column
  128 + prop="name"
  129 + label="姓名"
  130 + align="center"
  131 + ></el-table-column>
  132 + <el-table-column prop="age" label="年龄" align="center"></el-table-column>
  133 + <el-table-column
  134 + prop="mobile"
  135 + label="联系方式"
  136 + align="center"
  137 + ></el-table-column>
  138 + <el-table-column label="操作" align="center">
  139 + <template #default="scope">
  140 + <el-button type="text" @click="handleRemove(scope.row)"
  141 + >移除</el-button
  142 + >
  143 + </template>
  144 + </el-table-column>
  145 + </el-table>
  146 + <Pagination
  147 + :total="data.params.total"
  148 + v-model:currentPage="data.params.query.page"
  149 + v-model:pageSize="data.params.query.pageSize"
  150 + @pageChange="getList"
  151 + ></Pagination>
  152 + </div>
  153 +</template>
... ...