1404/10/28-base
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
import { get } from 'lodash'
|
||||
import type { Ref } from 'vue'
|
||||
import type { Product, ProductVariant } from '@/model/product'
|
||||
import { unref, computed } from 'vue'
|
||||
// import noImage from '@/assets/img/logo.svg'
|
||||
import type { UploadedFileInfo } from '@/model/uploadedFileInfo'
|
||||
|
||||
export function useProduct(product: Ref<Product> | Product) {
|
||||
const title = computed(() => {
|
||||
return get(unref(product), 'title_fa', '')
|
||||
})
|
||||
|
||||
const price = computed<number>(() => {
|
||||
if (unref(product).price) return unref(product).price as number
|
||||
return 0
|
||||
})
|
||||
|
||||
const brand = computed(() => {
|
||||
if (unref(product).brand) return unref(product).brand
|
||||
return '-'
|
||||
})
|
||||
|
||||
const country = computed(() => {
|
||||
if (unref(product).country) return unref(product).country
|
||||
return '-'
|
||||
})
|
||||
|
||||
const gallery = computed(() => {
|
||||
return get(unref(product), 'gallery', [])
|
||||
})
|
||||
|
||||
const body = computed(() => {
|
||||
return get(unref(product), 'body', '')
|
||||
})
|
||||
|
||||
const typeUse = computed(() => {
|
||||
return get(unref(product), 'type_use', '')
|
||||
})
|
||||
|
||||
const pageDesign = computed(() => {
|
||||
return get(unref(product), 'page_design', '-')
|
||||
})
|
||||
|
||||
const motor = computed(() => {
|
||||
return get(unref(product), 'page_design', '-')
|
||||
})
|
||||
|
||||
const primaryAttributes = computed(() => {
|
||||
return [
|
||||
{ title: 'نوع کاربری', name: typeUse.value },
|
||||
{ title: 'برند', name: brand.value },
|
||||
{ title: 'کشور سازنده', name: country.value },
|
||||
{ title: 'جنس بدنه', name: 'فلزی-آلومینیوم' },
|
||||
]
|
||||
})
|
||||
|
||||
const moreAttributes = computed(() => {
|
||||
return [
|
||||
{ title: 'جنسیت', name: gender.value },
|
||||
{ title: 'موتور', name: motor.value },
|
||||
{ title: 'شیشه', name: glass.value },
|
||||
{ title: 'جنس قاب', name: frame.value },
|
||||
{ title: 'جنس بند', name: wristlet.value },
|
||||
{ title: 'نوع قفل بند', name: buckleType.value },
|
||||
{ title: 'سال ساخت', name: yearCreate.value },
|
||||
{ title: 'گارانتی', name: warranty.value },
|
||||
{ title: 'طرح صفحه', name: pageDesign.value },
|
||||
{ title: 'شکل قاب', name: frameShape.value },
|
||||
]
|
||||
})
|
||||
|
||||
const frame = computed(() => {
|
||||
return get(unref(product), 'frame', '-')
|
||||
})
|
||||
|
||||
const warranty = computed(() => {
|
||||
return unref(product).warranty == 1 ? 'بله' : 'خیر'
|
||||
})
|
||||
|
||||
const buckleType = computed(() => {
|
||||
return get(unref(product), 'buckle_type', '-')
|
||||
})
|
||||
|
||||
const variants = computed<ProductVariant[]>(() => {
|
||||
return get(unref(product), 'variants', [])
|
||||
})
|
||||
|
||||
const originalImage = computed<UploadedFileInfo | null>(() => {
|
||||
//TODO: remove if not find default image
|
||||
return get(unref(product), 'original_image', null)
|
||||
})
|
||||
|
||||
function variantImage(variant: ProductVariant) {
|
||||
const temp = variants.value.find((item) => item.id == variant.id)
|
||||
if (temp && temp.file) {
|
||||
return temp.file.src
|
||||
}
|
||||
return 'GOLD.IR'
|
||||
}
|
||||
|
||||
const collection = computed(() => {
|
||||
return get(unref(product), 'collection.title', '-')
|
||||
})
|
||||
|
||||
const glass = computed(() => {
|
||||
return get(unref(product), 'glass', '-')
|
||||
})
|
||||
|
||||
const frameShape = computed(() => {
|
||||
return get(unref(product), 'frame_shape', '-')
|
||||
})
|
||||
|
||||
const wristlet = computed(() => {
|
||||
return get(unref(product), 'wristlet', '-')
|
||||
})
|
||||
|
||||
const gender = computed(() => {
|
||||
return get(unref(product), 'gender_str', '-')
|
||||
})
|
||||
|
||||
const yearCreate = computed(() => {
|
||||
return get(unref(product), 'year_create', '-')
|
||||
})
|
||||
|
||||
return {
|
||||
title,
|
||||
price,
|
||||
brand,
|
||||
country,
|
||||
gallery,
|
||||
body,
|
||||
primaryAttributes,
|
||||
variants,
|
||||
originalImage,
|
||||
variantImage,
|
||||
moreAttributes,
|
||||
typeUse,
|
||||
pageDesign,
|
||||
motor,
|
||||
collection,
|
||||
glass,
|
||||
frameShape,
|
||||
wristlet,
|
||||
gender,
|
||||
warranty,
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user