let result: TradeMarkResponseData 第一个代码块里面 我明明返回的是promise
<template>
<div>
<el-card class="box-card">
<!-- 卡片顶部添加品牌的按钮 -->
<el-button type="primary" icon="Plus">添加品牌</el-button>
<!-- 表格组件,用于展示已有的数据 -->
<!--
table
--boder:可以设置表格是否有纵向边框
table-column
--label:某一列
--width:设置这列的宽度
--align:设置的对其方式
-->
<el-table style="margin: 10px" border :data="trademarkArr">
<el-table-column
label="序号"
width="80px"
align="center"
type="index"
></el-table-column>
<!-- table-column:默认展示数据用的是div -->
<el-table-column label="品牌名称" prop="tmName">
<template #="{ row, $index }">
<pre style="color: brown">{{ row.tmName }}</pre>
</template>
</el-table-column>
<el-table-column label="品牌LOGO">
<template #="{ row, $index }">
<img :src="row.logoUrl" alt="没有图片" style="width: 100px;height: 100px;"/>
</template>
</el-table-column>
<el-table-column label="品牌操作">
<template #="{row,$index}">
<el-button style="padding: 10px;" type="primary" icon="Edit"></el-button>
<el-button style="padding: 10px;" type="primary" icon="Delete"></el-button>
</template>
</el-table-column>
</el-table>
</el-card>
<!-- 分页器组件
pagination
v-model:current-page:设置分页器当前页码
v-model:page-size:设置每一个展示数据条数
page-sizes:用于设置下拉菜单数据
background:设置分页器按钮的背景颜色
layout:可以设置分页器六个子组件布局调整
-->
<el-pagination
v-model:current-page="pageNo"
v-model:page-size="limit"
:page-sizes="[3, 5, 6, 9]"
:background="true"
layout="prev, pager, next, jumper, ->,sizes,total"
:total="total"
/>
</div>
</template>
<script setup lang="ts">
//引入组合式API函数ref
import { ref, onMounted } from 'vue'
import { reqHasTrademark } from '@/api/product/trademark'
import type {Records,TradeMarkResponseData} from '@/api/product/trademark/type.ts'
//当前页码
let pageNo = ref<number>(1)
//每一页展示多少条数据
let limit = ref<number>(3)
//存储已有品牌数据的总数
let total = ref<number>(0)
//存储已有品牌的数据
let trademarkArr = ref<Records>([])
//获取已有接口封装为一个函数:再任何情况下获取数据 调用即可
const getHasTraedemark = async () => {
let result: TradeMarkResponseData = await reqHasTrademark(pageNo.value, limit.value)
if (result.code === 200) {
//存储已有品牌的总个数
total.value = result.data.total
console.log(result)
trademarkArr.value = result.data.records
}
}
//组件挂载完毕 发一次请求 获取第一页 三个已有品牌的数据
onMounted(() => {
getHasTraedemark()
})
</script>
<style scoped></style>
//书写品牌管理模块的接口
import request from '@/utils/request'
//引入ts类型
import type { TradeMarkResponseData } from './type'
//品牌管理模块接口的地址
enum API {
//获取已有的品牌的接口
TRADEMARK_URL = '/admin/product/baseTrademark/',
}
//获取已有品牌的接口方法
//page:获取第几页的数据,默认第一页
//limit:获取几个已有品牌的数据
export const reqHasTrademark = (page: number, limit: number) => {
return request.get<any,TradeMarkResponseData>(API.TRADEMARK_URL + `${page}/${limit}`)
}
export interface ResponseData {
code: number
message: string
ok: boolean
}
//已有的品牌的ts数据类型
export interface TradeMark {
id?: number //如果新增的可以不带id
tmName: string
logoUrl: string
updateTime: string
createTime: string
}
//包含全部品牌数据的ts类型
export type Records = TradeMark[]
//获取的已有全部品牌的数据ts类型
export interface TradeMarkResponseData extends ResponseData {
data: {
records: Records
}
total: number
size: number
current: number
orders: []
optimizeCountSql: boolean
hitCount: boolean
countId: null
maxLimit: null
searchCount: boolean
pages: number
}
第一个:
export const reqHasTrademark = (page: number, limit: number) => {
return request.get<TradeMarkResponseData>(API.TRADEMARK_URL + `${page}/${limit}`)
}
let result = await reqHasTrademark(pageNo.value, limit.value)
第二个: