Files
2024-02-22 18:37:23 +08:00

86 lines
2.4 KiB
JavaScript

import api from '../../config/api'
import { funMixin } from '../../config/mixin'
import { ref, onMounted } from 'vue';
export default function (componentContent) {
const { sendReq, beforeGetData, afterGetData, jumpProductDetail, jumpProList } = funMixin()
const productData = ref([])
const loading = ref(true)
onMounted(() => {
getData(true)
})
function getData (isFirst) {
loading.value = true
if (componentContent.value.productData.sourceType === '1') {
if (
componentContent.value.productData.productIdList?.length > 0
) {
beforeGetData()
sendReq(
{
url: `${api.getProducts}?page=1&isPage=2&ids=${componentContent.value.productData.productIdList}`,
method: 'GET',
},
(proRes) => {
afterGetData()
productData.value = proRes.data.list
loading.value = false
if (isFirst) {
componentContent.value.productData.imgTextData = productData.value
}
},
() => {
afterGetData()
loading.value = false
}
)
} else {
productData.value = []
}
} else if (componentContent.value.productData.sourceType === '2') {
if (componentContent.value.productData?.categoryId) {
beforeGetData()
sendReq(
{
url: `${api.getProducts}?page=1&isPage=2&cateId=${componentContent.value.productData.categoryId}`,
method: 'GET',
},
(proRes) => {
afterGetData()
loading.value = false
productData.value = proRes.data.list
if (isFirst) {
componentContent.value.productData.imgTextData = productData.value
}
// _.swiper.update()
},
() => {
afterGetData()
loading.value = false
}
)
} else {
productData.value = {
products: [],
}
}
}
}
// 获取进度条数字
function getPercentageNum(item){
const total = item.campaignTotal || item.total
const stock = item.campaignStock || item.stock
return (total-stock)/total
}
return {
productData,
jumpProductDetail,
jumpProList,
getPercentageNum,
loading
}
}