级联接口查询组装表结构数据

表1

接口文件--attend.js

 1 import request from '@/utils/request'
 2 
 3 export function attendList(query){
 4   return request({
 5     url:'/system/activity/list',
 6     method:'get',
 7     params:query
 8   })
 9 }
10 
11 export function getTradeByProjectId(id){
12   return request({
13     url:`/system/project/${id}`,
14     method:'get'
15   })
16 }
17 
18 export function getActivityCountByIds(data){
19   return request({
20     url:`/system/activity/countByIds`,
21     method:'post',
22     data
23   })
24 }

方法:new Set去除数组中重复的值,id对应的值以Map的key-value进行存储

页面表元素结构

 1 <el-table v-loading="loading" :data="tableData">
 2      <el-table-column label="ID" show-overflow-tooltip align="center" prop="id"></el-table-column>
 3      <el-table-column label="名称" show-overflow-tooltip align="center" width="240" prop="name"></el-table-column>
 4      <el-table-column label="时间" show-overflow-tooltip align="center" width="180" prop="startTime"></el-table-column>
 5      <el-table-column label="行业名称" align="center" prop="group"></el-table-column>
 6      <el-table-column label="主办单位" show-overflow-tooltip align="center" prop="master"></el-table-column>
 7      <el-table-column label="当地名称" show-overflow-tooltip align="center" width="180" prop="locName"></el-table-column>
 8      <el-table-column label="地址" show-overflow-tooltip align="center" width="180" prop="locAddr"></el-table-column>
 9      <el-table-column label="观众数量" align="center" prop="aduienceNum"></el-table-column>
10      <el-table-column label="状态" align="center" prop="status">
11        <template slot-scope="scope">
12          <el-tag :type="scope.row.status===1 ? 'success' : 'danger'">
13            {{scope.row.status===1 ? '上架' : '下架'}}
14          </el-tag>
15        </template>
16      </el-table-column>
17      <el-table-column label="操作" align="center" min-width="140" fixed="right">
18        <template slot-scope="scope">
19          <div class="btnGroup">
20            <el-link type="primary" :underline="false" @click="handleEdit(scope.row.id)">编辑</el-link>
21            <el-link type="danger" :underline="false" @click="handleDelete(scope.row.id)">删除</el-link>
22            <el-link :type="scope.row.status===1 ? 'warning' : 'success'" :underline="false" @click="handleStock(scope.row.id)">{{scope.row.status===1 ? '下架' : '上架'}}</el-link>
23          </div>
24        </template>
25      </el-table-column>
26    </el-table>

 

组装级联接口请求参数

在级联接口回调函数里以key-value形式存储相应的值

通过数组的map方法组装页面的表结构数据

表2

接口文件--user.js

 1 export function ticketList(query){
 2   return request({
 3     url:'/system/ticket/list',
 4     method:'get',
 5     params:query
 6   })
 7 }
 8 
 9 export function getActivityListByIds(data){
10   return request({
11     url:`/system/activity/ids/get`,
12     method:'post',
13     data
14   })
15 }
16 
17 export function getUserInfoByIds(data){
18   return request({
19     url:`/system/wxuser/ids/get`,
20     method:'post',
21     data
22   })
23 }

注意:提供的为根据ids批量获取的接口,所以在效率上要比表1高,又可以不用考虑循环中不能使用await的问题

页面元素结构

 1 <el-table v-loading="loading" :data="tableData">
 2       <el-table-column label="序号" width="100" align="center" type="index"></el-table-column>
 3       <el-table-column label="微信昵称" show-overflow-tooltip width="160" align="center" prop="wxNickName"></el-table-column>
 4       <el-table-column label="手机号" show-overflow-tooltip width="180" align="center" prop="phone"></el-table-column>
 5       <el-table-column label="票号" show-overflow-tooltip width="200" align="center" prop="ticketNo"></el-table-column>
 6       <el-table-column label="行业展览名称" show-overflow-tooltip width="200" align="center" prop="tradeShowName"></el-table-column>
 7       <el-table-column label="开展时间" show-overflow-tooltip width="180" align="center" prop="tradeShowStartTime"></el-table-column>
 8       <el-table-column label="地点" show-overflow-tooltip width="180" align="center" prop="locAddr"></el-table-column>
 9       <el-table-column label="当地名称" show-overflow-tooltip width="120" align="center" prop="locName"></el-table-column>
10       <el-table-column label="领取时间" show-overflow-tooltip width="160" align="center" prop="startTime"></el-table-column>
11       <el-table-column label="状态" align="center" prop="status">
12         <template slot-scope="scope">
13           <el-tag :type="scope.row.status===1 ? 'success' : 'danger'">
14             {{scope.row.status===1 ? '生效' : '失效'}}
15           </el-tag>
16         </template>
17       </el-table-column>
18       <el-table-column label="操作" align="center" min-width="100" width="200" fixed="right">
19         <template slot-scope="scope">
20           <div class="btnGroup">
21             <el-link type="primary" :underline="false" @click="handleEdit(scope.row.id)">编辑</el-link>
22             <el-link type="danger" :underline="false" @click="handleDelete(scope.row.id)">删除</el-link>
23           </div>
24         </template>
25       </el-table-column>
26    </el-table>

组装级联接口请求参数

在级联接口回调函数里以key-value形式存储相应的值

通过数组的map方法组装页面的表结构数据

由于大部分数据都是由级联接口中提供的,所以对于根据活动名称、用户手机号进行查询,主接口是不支持的。为解决用户筛选检索的问题,可以考虑使用数组的filter方法。

表数据应用filter方法,实现模糊查询的功能

 

posted on 2023-04-19 10:38  笠侹凯树  阅读(132)  评论(0)    收藏  举报

导航