静态表单搭建需要完成以下功能:
el-table展示:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| <!-- trademarkArr为getHasTrademark函数调用reqHasTrademark接口获得的 -->
<el-table style="margin: 10px 0px" border :data="trademarkArr"> <el-table-column label="序号" width="80px" align="center" type="index"<!-- index参数展示1... --> ></el-table-column> <!-- table-column:默认展示数据用div --> <el-table-column label="品牌名称" prop="tmName"></el-table-column> <el-table-column label="品牌LOGO"> <template #="{ row, $index }"> <img :src="row.logoUrl" style="width: 100px; height: 100px" /> </template> </el-table-column> <el-table-column label="品牌操作"> <template #="{ row, $index }"> <el-button type="primary" size="small" icon="Edit" @click="updateTrademark(row)" ></el-button> <el-popconfirm :title="`您确定要删除${row.tmName}?`" width="250px" icon="Delete" @confirm="removeTradeMark(row.id)" > <template #reference> <el-button type="primary" size="small" icon="Delete" ></el-button> </template> </el-popconfirm> </template> </el-table-column> </el-table>
|
其中trademarkArr数据展示如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| [ { "id": 1, "createTime": "2021-12-10 01:31:41", "updateTime": "2023-04-15 15:48:02", "tmName": "小米", "logoUrl": "39.98.123.211/group1/M00/03/D9/rBHu8mHmKC6AQ-j2AAAb72A3EO0942.jpg" }, { "id": 2, "createTime": "2021-12-10 01:31:41", "updateTime": "2023-04-15 15:48:21", "tmName": "苹果", "logoUrl": "http://39.98.123.211/group1/M00/03/D9/rBHu8mHmKHOADErHAAAQBezsFBo612.jpg" }, { "id": 3, "createTime": "2021-12-10 01:31:41", "updateTime": "2023-04-15 15:48:28", "tmName": "华为", "logoUrl": "http://39.98.123.211/group1/M00/03/D9/rBHu8mHmKF2AWpcKAADv98DWYRo516.jpg" } ]
|
trademarkArr数据通过getHasTrademark函数获得:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| const getHasTrademark = async (pager = 1) => { pageNo.value = pager let result: TradeMarkResponseData = await reqHasTrademark( pageNo.value, limit.value, ) if (result.code == 200) { total.value = result.data.total trademarkArr.value = result.data.records console.log(trademarkArr.value) } }
|
reqHasTrademark调用数据API定义如下:
1 2 3 4 5 6 7 8 9
| TRADEMARK_URL = '/admin/product/baseTrademark/',
export const reqHasTrademark = (page: number, limit: number) => request.get<any, TradeMarkResponseData>( API.TRADEMARK_URL + `${page}/${limit}`, )
|
其中编辑按钮的操作如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
const updateTrademark = (row: TradeMark) => { nextTick(() => { formRef.value.clearValidate('tmName') formRef.value.clearValidate('logoUrl') }) dialogFormVisible.value = true Object.assign(trademarkParams, row) }
|
其中删除品牌按钮如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| const removeTradeMark = async (id: number) => { let result = await reqDeleteTrademark(id) if (result.code == 200) { ElMessage({ type: 'success', message: '删除品牌成功', }) getHasTrademark( trademarkArr.value.length > 1 ? pageNo.value : pageNo.value - 1, ) } else { ElMessage({ type: 'error', message: '删除品牌失败', }) } }
|