| | |
| | | import { requestCtx, appId } from "@/assets/js/config.js"; |
| | | import defaultImg from "@/assets/images/default-book-img.png"; |
| | | import defaultBookFair from "@/assets/images/default-bookFair.png" |
| | | import bookCover from "@/assets/images/book-cover.png"; |
| | | import courseIcon from "@/assets/images/courseIcon.png"; |
| | | import textBookIcon from "@/assets/images/textBookIcon.png"; |
| | | import moment from "moment"; |
| | | import { requestCtx, appId } from '@/assets/js/config.js' |
| | | import defaultImg from '@/assets/images/default-book-img.png' |
| | | import defaultBookFair from '@/assets/images/default-bookFair.png' |
| | | import bookCover from '@/assets/images/book-cover.png' |
| | | import defaultPub from '@/assets/images/math/default-pub.png' |
| | | import defaultAudio from '@/assets/images/math/default-audio.png' |
| | | import moment from 'moment' |
| | | // 处理列表查询结果 |
| | | export function handleQueryResourceListData({ |
| | | datas, |
| | |
| | | storeInfo, |
| | | repositoryInfo, |
| | | coverSize, |
| | | handelEBooK, |
| | | handelEBooK |
| | | }) { |
| | | const dataList = []; |
| | | const dataList = [] |
| | | for (let i = 0; i < datas.length; i++) { |
| | | const item = datas[i]; |
| | | const item = datas[i] |
| | | // 处理字段 |
| | | const _fields = {}; |
| | | const _fields = {} |
| | | if (fields != null) { |
| | | for (let fieldKey in fields) { |
| | | if (item.datas[fieldKey]) { |
| | | const values = JSON.parse(item.datas[fieldKey]); |
| | | const values = JSON.parse(item.datas[fieldKey]) |
| | | if (values.length > 0) { |
| | | // 用字段名处理返回的字段值 |
| | | if (values[0].Value) { |
| | | _fields[fieldKey] = values[0].Value; |
| | | _fields[fieldKey] = values[0].Value |
| | | } else if (values[0].Data) { |
| | | _fields[fieldKey] = values[0].Data.Value; |
| | | _fields[fieldKey] = values[0].Data.Value |
| | | } |
| | | item.datas[fieldKey] = values[0]; |
| | | item.datas[fieldKey] = values[0] |
| | | } |
| | | } |
| | | } |
| | | } |
| | | const subDatas = {}; |
| | | const subDatas = {} |
| | | if (item.subDatas) { |
| | | for (let subData of item.subDatas) { |
| | | const tag = subData.queryTag.replace("Query", ""); |
| | | subDatas[tag] = subData.datas; |
| | | const tag = subData.queryTag.replace('Query', '') |
| | | subDatas[tag] = subData.datas |
| | | } |
| | | } |
| | | |
| | |
| | | ...item, |
| | | id: item.id, |
| | | name: item.datas.Name, |
| | | icon: getPublicImage( |
| | | item.datas.Icon, |
| | | coverSize?.width, |
| | | coverSize?.height, |
| | | storeInfo |
| | | ), |
| | | icon: getPublicImage(item.datas.Icon, coverSize?.width, coverSize?.height, storeInfo), |
| | | repositoryInfo: repositoryInfo, |
| | | refCode: item.datas.RefCode === "[]" ? null : item.datas.RefCode, |
| | | refCode: item.datas.RefCode === '[]' ? null : item.datas.RefCode, |
| | | state: item.datas.State, |
| | | type: item.datas.Type, |
| | | tag: item.datas.Tag, |
| | | creator: item.datas.Creator ? JSON.parse(item.datas.Creator) : undefined, |
| | | storeInfo: storeInfo, |
| | | linkType: item.datas.LinkType, |
| | | childrenCount: parseInt(item.datas.ChildrenCount ?? "0"), |
| | | childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? "0"), |
| | | childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? "0"), |
| | | createDate: moment(item.datas.CreateDate).format("YYYY-MM-DD"), |
| | | beginDate: moment(item.datas.BeginDate).format("YYYY-MM-DD"), |
| | | endDate: moment(item.datas.EndDate).format("YYYY-MM-DD"), |
| | | childrenCount: parseInt(item.datas.ChildrenCount ?? '0'), |
| | | childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? '0'), |
| | | childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? '0'), |
| | | createDate: moment(item.datas.CreateDate).format('YYYY-MM-DD'), |
| | | beginDate: moment(item.datas.BeginDate).format('YYYY-MM-DD'), |
| | | endDate: moment(item.datas.EndDate).format('YYYY-MM-DD'), |
| | | description: item.datas.Description, |
| | | sysType: item.datas.SysType, |
| | | idPath: path + "\\" + item.id, |
| | | idPath: path + '\\' + item.id, |
| | | typeId: parseInt(item.datas.TypeId), |
| | | linkFile: JSON.parse(item.datas.LinkFile ?? "[]"), |
| | | linkFile: JSON.parse(item.datas.LinkFile ?? '[]'), |
| | | cmsItemType: item.datas.CmsItemType, |
| | | allowDonate: item.datas.AllowDonate == "True", |
| | | allowDonate: item.datas.AllowDonate == 'True', |
| | | // donatePriceList: JSON.parse(item.datas.DonatePriceList ?? "[]"), |
| | | productLinkInfo: item.datas.ProductLinkInfo ?? "[]", |
| | | storeEvent: JSON.parse(item.datas.StoreEvent ?? "[]"), |
| | | linkInfo: JSON.parse(item.datas.LinkInfo ?? "[]"), |
| | | saleMethod: JSON.parse(item.datas.SaleMethod ?? "[]"), |
| | | productLinkInfo: item.datas.ProductLinkInfo ?? '[]', |
| | | storeEvent: JSON.parse(item.datas.StoreEvent ?? '[]'), |
| | | linkInfo: JSON.parse(item.datas.LinkInfo ?? '[]'), |
| | | saleMethod: JSON.parse(item.datas.SaleMethod ?? '[]'), |
| | | subProductCount: parseInt(item.datas.SubProductCount), |
| | | ..._fields, |
| | | datas: item.datas, |
| | | subDatas, |
| | | }; |
| | | subDatas |
| | | } |
| | | |
| | | // 统一处理价格 |
| | | if (obj.defaultSaleMethod) { |
| | | if (handelEBooK) { |
| | | // 获取随书资源的销售方式 |
| | | let saleMethod = []; |
| | | let saleMethod = [] |
| | | try { |
| | | saleMethod = obj.cmsDatas[0].datas.find( |
| | | (item) => item.datas.RefCode == "tourism_accompanyingResources" |
| | | ).datas.SaleMethod; |
| | | saleMethod = JSON.parse(saleMethod); |
| | | (item) => item.datas.RefCode == 'tourism_accompanyingResources' |
| | | ).datas.SaleMethod |
| | | saleMethod = JSON.parse(saleMethod) |
| | | } catch (error) { |
| | | saleMethod = []; |
| | | saleMethod = [] |
| | | } |
| | | if (saleMethod.length) { |
| | | Object.keys(saleMethod[0]).map((key) => { |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()); |
| | | saleMethod[0][newKey] = saleMethod[0][key]; |
| | | delete saleMethod[0][key]; |
| | | }); |
| | | obj.defaultSaleMethod = saleMethod[0]; |
| | | obj.defaultSaleMethodId = saleMethod[0].id; |
| | | obj.alreadyBuy = |
| | | obj.purchasedSaleMethodIdList.indexOf(obj.defaultSaleMethodId) > -1; |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()) |
| | | saleMethod[0][newKey] = saleMethod[0][key] |
| | | delete saleMethod[0][key] |
| | | }) |
| | | obj.defaultSaleMethod = saleMethod[0] |
| | | obj.defaultSaleMethodId = saleMethod[0].id |
| | | obj.alreadyBuy = obj.purchasedSaleMethodIdList.indexOf(obj.defaultSaleMethodId) > -1 |
| | | } |
| | | } |
| | | if (obj.defaultSaleMethod.allowEvent && obj.storeEvent.length) { |
| | | // 已参加活动,获取有效活动并计算价格 |
| | | let time = new Date().getTime(); |
| | | let time = new Date().getTime() |
| | | // 过滤过期活动 |
| | | let event = obj.storeEvent.filter((item) => { |
| | | let endTime = new Date(item.EndDate).getTime(); |
| | | return endTime > time; |
| | | }); |
| | | let endTime = new Date(item.EndDate).getTime() |
| | | return endTime > time |
| | | }) |
| | | |
| | | // 只处理一条有效活动 |
| | | if (event.length) { |
| | | obj.price = (obj.defaultSaleMethod.price * event[0].Value).toFixed(2); |
| | | obj.oldPrice = obj.defaultSaleMethod.price; |
| | | obj.storeEventId = event[0].Id; |
| | | obj.price = (obj.defaultSaleMethod.price * event[0].Value).toFixed(2) |
| | | obj.oldPrice = obj.defaultSaleMethod.price |
| | | obj.storeEventId = event[0].Id |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(obj.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | moment().format('YYYY-MM-DD') < |
| | | moment(obj.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | obj.defaultSaleMethodState = "Normal"; |
| | | obj.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | obj.defaultSaleMethodState = "Beyond"; |
| | | obj.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | } |
| | | } else { |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(obj.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | moment().format('YYYY-MM-DD') < moment(obj.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | obj.defaultSaleMethodState = "Normal"; |
| | | obj.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | obj.defaultSaleMethodState = "Beyond"; |
| | | obj.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | obj.price = obj.defaultSaleMethod.price; |
| | | obj.oldPrice = obj.defaultSaleMethod.virtualPrice; |
| | | obj.price = obj.defaultSaleMethod.price |
| | | obj.oldPrice = obj.defaultSaleMethod.virtualPrice |
| | | } |
| | | } |
| | | dataList.push(obj); |
| | | dataList.push(obj) |
| | | } |
| | | return dataList; |
| | | return dataList |
| | | } |
| | | |
| | | // 处理详情查询结果 |
| | | export function handleDetailQueryRequestData({ |
| | | productId, |
| | | item, |
| | | fields, |
| | | path, |
| | |
| | | } |
| | | } |
| | | if (subItem.productLinkInfo && subItem.productLinkInfo.length) { |
| | | let itemProductLinkInfo = subItem.productLinkInfo.find(citem => citem.ProductId == productId) |
| | | let itemProductLinkInfo = subItem.productLinkInfo.find(citem => citem.Name == item.datas.Name) |
| | | subItem.productLinkPath = |
| | | itemProductLinkInfo?.LinkPath + |
| | | itemProductLinkInfo.LinkPath + |
| | | "\\" + |
| | | itemProductLinkInfo?.CmsItemId; |
| | | itemProductLinkInfo.CmsItemId; |
| | | } |
| | | if (subItem.linkInfo && subItem.linkInfo.length) |
| | | subItem.linkPath = |
| | |
| | | } |
| | | |
| | | const handleLinkFileInfo = (linkList) => { |
| | | let linkFileMap = {}; |
| | | let linkFileMap = {} |
| | | for (let z = 0; z < linkList.length; z++) { |
| | | const linkItem = linkList[z]; |
| | | const linkItem = linkList[z] |
| | | linkFileMap[linkItem.Md5] = { |
| | | linkType: linkItem.LinkType, |
| | | extension: linkItem.Extension, |
| | |
| | | size: linkItem.Size, |
| | | // metaData: JSON.parse(linkItem.MetaData ?? "{}"), |
| | | order: linkItem.Order, |
| | | protectType: linkItem.ProtectType, |
| | | }; |
| | | protectType: linkItem.ProtectType |
| | | } |
| | | } |
| | | return linkFileMap; |
| | | }; |
| | | return linkFileMap |
| | | } |
| | | |
| | | const convertCmsItemBase = (item, coverSize, handelEBooK) => { |
| | | item.name = item.datas.Name; |
| | | item.description = item.datas.Description; |
| | | item.refCode = item.datas.RefCode; |
| | | item.state = item.datas.State; |
| | | item.type = item.datas.Type; |
| | | item.tag = item.datas.Tag; |
| | | item.typeId = parseInt(item.datas.TypeId); |
| | | item.icon = item.datas.Icon, |
| | | // item.icon = getPublicImage( |
| | | // item.datas.Icon, |
| | | // coverSize?.width, |
| | | // coverSize?.height |
| | | // ); |
| | | item.sysType = item.datas.SysType; |
| | | item.linkFile = JSON.parse(item.datas.LinkFile ?? "[]"); |
| | | item.linkType = item.datas.LinkType; |
| | | item.linkAppId = parseInt(item.datas.LinkAppId); |
| | | item.linkStoreId = parseInt(item.datas.LinkStore); |
| | | item.linkRepoId = item.datas.LinkRepository; |
| | | item.childrenCount = parseInt(item.datas.ChildrenCount ?? "0"); |
| | | (item.childrenFolderCount = parseInt(item.datas.ChildrenFolderCount ?? "0")), |
| | | (item.childrenChannelCount = parseInt( |
| | | item.datas.ChildrenChannelCount ?? "0" |
| | | )), |
| | | (item.linkId = parseInt(item.datas.LinkId)); |
| | | item.linkOrg = JSON.parse(item.datas.LinkOrg ?? "[]")[0]; |
| | | item.linkDepartment = JSON.parse(item.datas.LinkDepartment ?? "[]")[0]; |
| | | item.linkInfo = JSON.parse(item.datas.LinkInfo ?? "[]"); |
| | | item.productLinkInfo = JSON.parse(item.datas.ProductLinkInfo ?? "[]"); |
| | | item.saleMethod = JSON.parse(item.datas.SaleMethod ?? "[]"); |
| | | item.allowDonate = item.datas.AllowDonate == "True"; |
| | | item.name = item.datas.Name |
| | | item.description = item.datas.Description |
| | | item.refCode = item.datas.RefCode |
| | | item.state = item.datas.State |
| | | item.type = item.datas.Type |
| | | item.tag = item.datas.Tag |
| | | item.typeId = parseInt(item.datas.TypeId) |
| | | item.icon = getPublicImage(item.datas.Icon, coverSize?.width, coverSize?.height) |
| | | item.sysType = item.datas.SysType |
| | | item.linkFile = JSON.parse(item.datas.LinkFile ?? '[]') |
| | | item.linkType = item.datas.LinkType |
| | | item.linkAppId = parseInt(item.datas.LinkAppId) |
| | | item.linkStoreId = parseInt(item.datas.LinkStore) |
| | | item.linkRepoId = item.datas.LinkRepository |
| | | item.childrenCount = parseInt(item.datas.ChildrenCount ?? '0') |
| | | ;(item.childrenFolderCount = parseInt(item.datas.ChildrenFolderCount ?? '0')), |
| | | (item.childrenChannelCount = parseInt(item.datas.ChildrenChannelCount ?? '0')), |
| | | (item.linkId = parseInt(item.datas.LinkId)) |
| | | item.linkOrg = JSON.parse(item.datas.LinkOrg ?? '[]')[0] |
| | | item.linkDepartment = JSON.parse(item.datas.LinkDepartment ?? '[]')[0] |
| | | item.linkInfo = JSON.parse(item.datas.LinkInfo ?? '[]') |
| | | item.productLinkInfo = JSON.parse(item.datas.ProductLinkInfo ?? '[]') |
| | | item.saleMethod = JSON.parse(item.datas.SaleMethod ?? '[]') |
| | | item.allowDonate = item.datas.AllowDonate == 'True' |
| | | // item.donatePriceList = JSON.parse(item.datas.DonatePriceList ?? "[]"); |
| | | item.createDate = moment(item.datas.CreateDate).format("YYYY-MM-DD"); |
| | | item.beginDate = moment(item.datas.BeginDate).format("YYYY-MM-DD"); |
| | | item.endDate = moment(item.datas.EndDate).format("YYYY-MM-DD"); |
| | | item.storeEvent = JSON.parse(item.datas.StoreEvent ?? "[]"); |
| | | item.createDate = moment(item.datas.CreateDate).format('YYYY-MM-DD') |
| | | item.beginDate = moment(item.datas.BeginDate).format('YYYY-MM-DD') |
| | | item.endDate = moment(item.datas.EndDate).format('YYYY-MM-DD') |
| | | item.storeEvent = JSON.parse(item.datas.StoreEvent ?? '[]') |
| | | // 统一处理价格 |
| | | if (item.defaultSaleMethod) { |
| | | if (handelEBooK) { |
| | | // 获取随书资源的销售方式 |
| | | let saleMethod = item.cmsDatas[0].datas.find( |
| | | (item) => item.refCode == "tourism_accompanyingResources" |
| | | ).saleMethod; |
| | | (item) => item.refCode == 'tourism_accompanyingResources' |
| | | ).saleMethod |
| | | if (saleMethod && saleMethod.length > 0) { |
| | | Object.keys(saleMethod[0]).map((key) => { |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()); |
| | | saleMethod[0][newKey] = saleMethod[0][key]; |
| | | delete saleMethod[0][key]; |
| | | }); |
| | | item.defaultSaleMethod = saleMethod[0]; |
| | | item.defaultSaleMethodId = saleMethod[0].id; |
| | | item.alreadyBuy = |
| | | item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1; |
| | | let newKey = key.replace(key[0], key[0].toLowerCase()) |
| | | saleMethod[0][newKey] = saleMethod[0][key] |
| | | delete saleMethod[0][key] |
| | | }) |
| | | item.defaultSaleMethod = saleMethod[0] |
| | | item.defaultSaleMethodId = saleMethod[0].id |
| | | item.alreadyBuy = item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1 |
| | | } |
| | | } |
| | | if (item.defaultSaleMethod.allowEvent && item.storeEvent.length) { |
| | | // 已参加活动,获取有效活动并计算价格 |
| | | let time = new Date().getTime(); |
| | | let time = new Date().getTime() |
| | | // 过滤过期活动 |
| | | let event = item.storeEvent.filter((item) => { |
| | | let endTime = new Date(item.EndDate).getTime(); |
| | | return endTime > time; |
| | | }); |
| | | let endTime = new Date(item.EndDate).getTime() |
| | | return endTime > time |
| | | }) |
| | | // 只处理一条有效活动 |
| | | if (event.length) { |
| | | item.price = (item.defaultSaleMethod.price * event[0].Value).toFixed(2); |
| | | item.oldPrice = item.defaultSaleMethod.price; |
| | | item.price = (item.defaultSaleMethod.price * event[0].Value).toFixed(2) |
| | | item.oldPrice = item.defaultSaleMethod.price |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(item.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | moment().format('YYYY-MM-DD') < |
| | | moment(item.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | item.defaultSaleMethodState = "Normal"; |
| | | item.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | item.defaultSaleMethodState = "Beyond"; |
| | | item.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | item.storeEventId = event[0].Id; |
| | | item.storeEventId = event[0].Id |
| | | } |
| | | } else { |
| | | item.price = item.defaultSaleMethod.price; |
| | | item.oldPrice = item.defaultSaleMethod.virtualPrice; |
| | | item.price = item.defaultSaleMethod.price |
| | | item.oldPrice = item.defaultSaleMethod.virtualPrice |
| | | if ( |
| | | moment().format("YYYY-MM-DD") < |
| | | moment(item.defaultSaleMethod.endDate).format("YYYY-MM-DD") |
| | | moment().format('YYYY-MM-DD') < moment(item.defaultSaleMethod.endDate).format('YYYY-MM-DD') |
| | | ) { |
| | | item.defaultSaleMethodState = "Normal"; |
| | | item.defaultSaleMethodState = 'Normal' |
| | | } else { |
| | | item.defaultSaleMethodState = "Beyond"; |
| | | item.defaultSaleMethodState = 'Beyond' |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | } |
| | | |
| | | export function getTopicMsgCmsItemFile(fileType, fileList) { |
| | | let obj = {}; |
| | | let obj = {} |
| | | fileType.forEach((item) => { |
| | | item.sequenceNum = item.config ? JSON.parse(item.config).uuid : ""; |
| | | item.sequenceNum = item.config ? JSON.parse(item.config).uuid : '' |
| | | fileList.forEach((e) => { |
| | | if (item.sequenceNum == e.sequenceNum) { |
| | | try { |
| | | if (e.fileLinkList.length > 0) { |
| | | for (let i = 0; i < e.fileLinkList.length; i++) { |
| | | const ele = e.fileLinkList[i]; |
| | | ele.name = ele.file.fileName; |
| | | ele.md5 = ele.file.md5; |
| | | ele.status = "success"; |
| | | const ele = e.fileLinkList[i] |
| | | ele.name = ele.file.fileName |
| | | ele.md5 = ele.file.md5 |
| | | ele.status = 'success' |
| | | } |
| | | obj[item.typeField.refCode] = e.fileLinkList; |
| | | obj[item.typeField.refCode] = e.fileLinkList |
| | | } else { |
| | | const val = JSON.parse(e.value); |
| | | obj[item.typeField.refCode] = val; |
| | | const val = JSON.parse(e.value) |
| | | obj[item.typeField.refCode] = val |
| | | } |
| | | } catch (error) { |
| | | obj[item.typeField.refCode] = e.value; |
| | | obj[item.typeField.refCode] = e.value |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | return obj; |
| | | }) |
| | | }) |
| | | return obj |
| | | } |
| | | |
| | | // 获取不受保护的图片 |
| | | export function getPublicImage(md5, width, height,storeInfo) { |
| | | let src = null; |
| | | export function getPublicImage(md5, width, height, storeInfo) { |
| | | let src = null |
| | | if (md5) { |
| | | src = requestCtx + `/file/GetPreViewImage?md5=${md5}`; |
| | | src = requestCtx + `/file/GetPreViewImage?md5=${md5}` |
| | | } else { |
| | | if(storeInfo == 'jsek_bookFair') { |
| | | // return defaultBookFair; |
| | | return |
| | | }else if(storeInfo == `defaultGoodsStore${appId}`){ |
| | | if(storeInfo == `defaultGoodsStore${appId}`){ |
| | | return bookCover; |
| | | }else if(storeInfo == 'jsek_digitalCourses'){ |
| | | return courseIcon; |
| | | }else if(storeInfo == 'jsek_digitalTextbooks'){ |
| | | return textBookIcon; |
| | | }else{ |
| | | return "" |
| | | } |
| | | |
| | | } |
| | | if (width) src += `&width=${width}`; |
| | | if (height) src += `&height=${height}`; |
| | | return src; |
| | | if (width && src) src += `&width=${width}` |
| | | if (height && src) src += `&height=${height}` |
| | | return src |
| | | } |