lrj
1 天以前 93eb6b470773bc49ea6e1a9d4cbd914eb95d525b
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import { graphqlRequest } from '../config/api.ts'
 
// GraphQL 查询和变更
const GET_CAROUSELS = `
  query GetCarousels($page: Int!, $size: Int!, $title: String) {
    carousels(page: $page, size: $size, title: $title) {
      content {
        id
        title
        content
        sortOrder
        mediaCount
        createTime
        updateTime
      }
      totalElements
      page
      size
    }
  }
`
 
const GET_CAROUSEL = `
  query GetCarousel($id: ID!) {
    carousel(id: $id) {
      id
      title
      content
      sortOrder
      mediaCount
      createTime
      updateTime
    }
  }
`
 
const GET_CAROUSEL_PLAY_LIST = `
  query GetCarouselPlayList {
    carouselPlayList {
      id
      title
      content
      sortOrder
      mediaCount
      createTime
      updateTime
    }
  }
`
 
const SAVE_CAROUSEL = `
  mutation SaveCarousel($carousel: CarouselInput!) {
    saveCarousel(carousel: $carousel) {
      id
      title
      content
      sortOrder
      createTime
      updateTime
    }
  }
`
 
const DELETE_CAROUSEL = `
  mutation DeleteCarousel($id: ID!) {
    deleteCarousel(id: $id)
  }
`
 
const UPDATE_CAROUSEL_SORT_ORDERS = `
  mutation UpdateCarouselSortOrders($sortOrders: [CarouselSortOrderInput!]!) {
    updateCarouselSortOrders(sortOrders: $sortOrders)
  }
`
 
// API 函数
export const CarouselApi = {
  // 分页查询轮播图
  getCarousels: async (page = 0, size = 10, title) => {
    const data = await graphqlRequest(GET_CAROUSELS, { page, size, title })
    return data.carousels
  },
  
  // 根据ID查询轮播图
  getCarousel: async (id) => {
    const data = await graphqlRequest(GET_CAROUSEL, { id })
    return data.carousel
  },
  
  // 获取播放列表
  getPlayList: async () => {
    const data = await graphqlRequest(GET_CAROUSEL_PLAY_LIST)
    return data.carouselPlayList
  },
  
  // 保存轮播图
  saveCarousel: async (carousel) => {
    const data = await graphqlRequest(SAVE_CAROUSEL, { carousel })
    return data.saveCarousel
  },
  
  // 删除轮播图
  deleteCarousel: async (id) => {
    const data = await graphqlRequest(DELETE_CAROUSEL, { id })
    return data.deleteCarousel
  },
  
  // 批量更新排序
  updateSortOrders: async (sortOrders) => {
    const data = await graphqlRequest(UPDATE_CAROUSEL_SORT_ORDERS, { sortOrders })
    return data.updateCarouselSortOrders
  }
}
 
export default CarouselApi