import BaseModel from '../../../core/base' import tranProjectProgress from '../transform/project-progress' import tranServices from '../transform/services' import { formatMoney } from '@jy/util' class ContentExpandModel extends BaseModel { constructor(config) { super(config) } createModel() { return { projectProgress: { list: [], name: '' }, services: [], recommendProjects: { list: [], more: false, total: 0, title: '超前项目', popup: {} }, recommendBuyers: { list: [], more: false, total: 0, title: '', popup: {} }, recommendWinners: { list: [], more: false, total: 0, title: '', popup: {} }, recommendCustomers: {} } } preSortBiddingList(list) { if (Array.isArray(list)) { return list.map((r) => { return this.preSortBiddingItem(r) }) } else { return [] } } preSortBiddingItem(item) { let bidAmount = '' // 有中标金额取中标金额,没有取预算,预算没有置空 if (item?.bidAmount) { bidAmount = formatMoney(item?.bidAmount - 0) } else if (item?.budget) { bidAmount = formatMoney(item?.budget - 0) } const area = item.area || '全国' const type = item?.type || item?.subtype const buyerclass = item.buyerClass || '' const tagList = [ area, buyerclass, type, bidAmount ].filter((v) => v) return { id: item.id, title: item.title, tags: tagList, area, type, buyerclass, bidAmount, time: item.publishTime ? item.publishTime * 1000 : undefined, _o: item } } formatModel(data, isInit = false) { const result = this.createModel() // 项目进度 if (data?.schedule) { result.projectProgress = tranProjectProgress(data.schedule) } // 服务推荐 if (data?.services) { result.services = tranServices(data.services) } if (data?.recommend?.ahead) { result.recommendProjects = data.recommend.ahead result.recommendProjects.list = this.preSortBiddingList(result.recommendProjects.list) } if (data?.recommend?.buyer) { result.recommendBuyers = data.recommend.buyer result.recommendBuyers.list = this.preSortBiddingList(result.recommendBuyers.list) } if (data?.recommend?.winner) { result.recommendWinners = data.recommend.winner result.recommendWinners.list = this.preSortBiddingList(result.recommendWinners.list) } if (data?.customerRec) { if (Array.isArray(data?.customerRec?.customer)) { data.customerRec.customer = data.customerRec.customer.map((c) => { const arr = [] if (c.area) { arr.push(c.area) } if (c.city) { arr.push(c.city) } return { ...c, totalAmountFormatted: c.totalAmount ? formatMoney(c.totalAmount) : '', areaCity: arr.length >= 1 ? arr.filter(a => !!a).join(' ') : '' } }) } result.recommendCustomers = data.customerRec } return result } } /** * /publicapply/detail/advancedInfo * 扩展信息接口数据模型转换 */ function useContentExpandModel() { return new ContentExpandModel() } export default useContentExpandModel