| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- import { ref } from 'vue'
- import { getCurrentInstance } from 'vue'
- function useList(url, beforeData = null, httpType) {
- const {
- appContext: {
- config: { globalProperties: global }
- }
- } = getCurrentInstance()
- const empty = ref(false)
- const loading = ref(false)
- const finished = ref(false)
- const page = ref(0)
- const totalElements = ref(0)
- const size = ref(20)
- const list = ref([])
- const getData = (isRefresh = false, isFinished = false) => {
- if (isRefresh) {
- page.value = 0
- list.value = []
- }
- loading.value = true
- finished.value = false
- empty.value = false
- let data = { page: page.value, size: size.value, sort: 'createdAt,desc' }
- if (beforeData) {
- data = {
- ...data,
- ...beforeData()
- }
- }
- if (httpType === 'get') {
- return global.$http
- .get(url, data, { body: 'json' })
- .then(res => {
- if (res.first) {
- list.value = []
- }
- list.value = [...list.value, ...res.content]
- empty.value = res.empty
- loading.value = false
- finished.value = isFinished || res.last
- if (!finished.value) {
- page.value = page.value + 1
- }
- totalElements.value = Number(res.totalElements)
- })
- .catch(e => {
- console.log(e)
- })
- } else {
- return global.$http
- .post(url, data, { body: 'json' })
- .then(res => {
- if (res.first) {
- list.value = []
- }
- list.value = [...list.value, ...res.content]
- empty.value = res.empty
- loading.value = false
- finished.value = isFinished || res.last
- if (!finished.value) {
- page.value = page.value + 1
- }
- totalElements.value = Number(res.totalElements)
- })
- .catch(e => {
- console.log(e)
- })
- }
- }
- return {
- empty,
- loading,
- finished,
- page,
- totalElements,
- size,
- list,
- getData
- }
- }
- export default useList
|