| | |
| | | import SearchPanel from '@/components/custom/SearchPanel.vue' |
| | | import BannerFormModal from './components/BannerFormModal.vue' |
| | | import Pagination from '@/components/common/Pagination.vue' |
| | | import { deleteBanner, fetchBannerPageList } from '@/service/api/banner' |
| | | import { deleteBanner, fetchBannerPageList, updateBanner } from '@/service/api/banner' |
| | | import type { Banner } from '@/service/api/banner' |
| | | import { useBoolean } from '@/hooks' |
| | | |
| | |
| | | key: 'bannerStatus', |
| | | width: 100, |
| | | render: (row) => { |
| | | return h(NSwitch, { |
| | | value: row.bannerStatus === 1, |
| | | disabled: true, // 列表页暂不支持直接切换,需在编辑中修改,或者后续添加切换接口 |
| | | }) |
| | | return ( |
| | | <n-switch |
| | | value={row.bannerStatus === 1} |
| | | onUpdate:value={async (value: boolean) => { |
| | | try { |
| | | const { error, code } = await updateBanner({ |
| | | id: row.id, |
| | | bannerStatus: value ? 1 : 2, |
| | | }) as any |
| | | if (!error && code === 200) { |
| | | message.success('状态更新成功') |
| | | fetchData() |
| | | } |
| | | } |
| | | catch (e) { |
| | | // console.error('更新状态失败', e) |
| | | // 恢复原状态 |
| | | fetchData() |
| | | } |
| | | }} |
| | | /> |
| | | ) |
| | | }, |
| | | }, |
| | | { |