Banner.vue 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <script setup lang="ts">
  2. import type { BasicForm, ICRUD } from '@/types/form'
  3. import { getBannerList, saveBanner, deleteBanner } from '@/api/miniprogram'
  4. const CRUD: ICRUD = {
  5. create(data: any) {
  6. return saveBanner(data)
  7. },
  8. update(data: any) {
  9. return saveBanner(data)
  10. },
  11. getList(data: any) {
  12. return getBannerList(data)
  13. },
  14. delete(data: any) {
  15. return deleteBanner(data)
  16. }
  17. }
  18. const formConfig = reactive<BasicForm>({
  19. span: 24,
  20. formItems: [
  21. {
  22. label: '图片',
  23. value: '',
  24. name: 'image',
  25. type: 'image-upload',
  26. rules: [{ required: true, message: '请上传图片', trigger: 'blur' }]
  27. },
  28. {
  29. label: '标题',
  30. value: '',
  31. name: 'name',
  32. type: 'input'
  33. }
  34. // {
  35. // label: '跳转地址',
  36. // value: '',
  37. // name: 'src',
  38. // type: 'input'
  39. // }
  40. ]
  41. })
  42. </script>
  43. <template>
  44. <pro-table :crud="CRUD" :formConfig="formConfig">
  45. <vxe-column field="name" title="标题" show-overflow-tooltip></vxe-column>
  46. <vxe-column field="image" title="图片">
  47. <template #default="{ row }">
  48. <el-image :src="row.image" style="width: 100px"></el-image>
  49. </template>
  50. </vxe-column>
  51. <!-- <vxe-column field="src" label="跳转地址"></vxe-column> -->
  52. </pro-table>
  53. </template>
  54. <style lang="scss" scoped></style>