From 6227519a1bd9007aedae11b77b0b3b1851837c38 Mon Sep 17 00:00:00 2001 From: 闫增涛 <1829501689@qq.com> Date: 星期四, 03 七月 2025 14:41:04 +0800 Subject: [PATCH] 仿真测试页面,模型三位投影模块布局1修改 --- src/assets/js/toolClass.js | 540 +++++++++++++++++++++++++++++++++++++++++------------------ 1 files changed, 371 insertions(+), 169 deletions(-) diff --git a/src/assets/js/toolClass.js b/src/assets/js/toolClass.js index 2cac55a..fb39473 100644 --- a/src/assets/js/toolClass.js +++ b/src/assets/js/toolClass.js @@ -1,7 +1,13 @@ import SparkMD5 from 'spark-md5' -import { getPublicImage } from '@/assets/js/middleGround/tool.js' +import { + getPublicImage +} from '@/assets/js/middleGround/tool.js' import config from './config' -// import moment from "moment"; +import moment from "moment"; + +import dps5Api from '@/assets/js/middleGround/api/dps5.js' + + var tool = { secondToTime(second) { @@ -72,70 +78,6 @@ } } -// 澶勭悊璁㈠崟璁板綍 -// export function setOrderList(res) { -// // 鑾峰彇褰撳墠骞翠唤鐨勫紑濮嬫椂闂� -// let currentTimestamp = moment().startOf("year"); -// let arr = []; -// for (let i = 0; i < res.length; i++) { -// const item = res[i]; -// // 鍙戠エ鐘舵�佷负瀹℃牳涓垨鑰呭鏍稿け璐ワ紝灏唅tem閫変腑鐘舵�佽缃�変腑銆� -// // UI鎺у埗绂佺敤锛堟樉绀虹殑鏁堟灉涓� 閫変腑骞朵笖绂佺敤锛� -// if (item.invoiceInfo) { -// item.checked = true; -// } else { -// item.checked = false; -// } -// // 鍒ゆ柇鏄惁瓒呭嚭鐢宠鍙戠エ鐨勬棩鏈� -// item.exceedingTheSpecifiedTime = moment(item.createDate).isBefore( -// currentTimestamp -// ); -// if (item.saleMethodLinks.length > 0) { -// let itemName = null; -// let itemIcon = null; -// let cmsItemList = null; -// try { -// cmsItemList = item.saleMethodLinks[0].orderSaleMethod.cmsItemList[0]; -// } catch (error) { -// cmsItemList = null; -// } -// if (cmsItemList && cmsItemList.icon) { -// itemName = cmsItemList.name; -// itemIcon = cmsItemList.icon; -// } else { -// itemName = item.saleMethodLinks[0].orderSaleMethod.product.name; -// itemIcon = item.saleMethodLinks[0].orderSaleMethod.product.icon; -// } -// item.saleMethodLinks[0].title = itemName; -// item.saleMethodLinks[0].icon = getPublicImage(itemIcon); -// } else { -// const itemIcon = require("@/assets/images/bookCity/place_img.png"); -// const saleMethodLink = []; -// const obj = { -// icon: itemIcon, -// orderSaleMethod: { -// price: item.payPrice, -// }, -// }; -// saleMethodLink.push(obj); -// item.saleMethodLinks = saleMethodLink; -// } -// if (item.state == "Success") { -// item.CustomState = "鏀粯鎴愬姛"; -// } -// if (item.state == "Cancel") { -// item.CustomState = "鍙栨秷鏀粯"; -// } -// if (item.state == "WaitPay") { -// item.CustomState = "绛夊緟鏀粯"; -// } -// if (item.state == "WaitDeliver") { -// item.CustomState = "姝e湪鏀粯"; -// } -// arr.push(item); -// } -// return arr; -// } //澶勭悊琛ㄥ崟鎻愪氦鏁版嵁 export function worksData(res) { @@ -233,7 +175,9 @@ obj.setDataAndFileLinkListRequest = linkList } else if (typeof value[k] == 'object' && k == 'region') { obj.strValue = value[k]?.join('/') - obj.setDataAndFileLinkListRequest = [{ area: value[k] }] + obj.setDataAndFileLinkListRequest = [{ + area: value[k] + }] } else { obj.strValue = value[k].toString() } @@ -355,7 +299,10 @@ // 鑾峰彇鏂囦欢 export function getPublicFile(md5, isToken) { - const { tokenKey, requestCtx } = config + const { + tokenKey, + requestCtx + } = config let src = null let token = localStorage.getItem(tokenKey) if (md5) { @@ -370,106 +317,357 @@ return src } -// 澶勭悊鏃堕棿锛岀敤浜庢樉绀洪煶瑙嗛褰撳墠鏃堕棿 -// export function realFormatSecond(time) { -// let duration = parseInt(time); -// let minute = parseInt(duration / 60); -// let sec = (duration % 60) + ""; -// let isM0 = ":"; -// if (minute == 0) { -// minute = "00"; -// } else if (minute < 10) { -// minute = "0" + minute; -// } -// if (sec.length == 1) { -// sec = "0" + sec; -// } -// return minute + isM0 + sec; -// } -// export function parseHtml(content) { -// const tagReg = -// /<\/?div[^>]*>|<\/?span[^>]*>|<\/?table[^>]*>|<\/?th[^>]*>|<\/?thead>|<\/?tbody>|<\/?tr>|<\/?td[^>]*>|<br[^>]*>|<\/?p[^>]*>|<\/?sub>|<\/?sup>|<\/?font[^>]*>|<img[^>]*>|<\/?a[^>]*>|\n|\\n/gi; -// const escapeReg = -// /&(lt|gt|le|ge|nbsp|amp|quot|times|Alpha|Beta|Gamma|Delta|Epsilon|Zeta|Eta|Theta|Iota|Kappa|Lambda|MU|NU|Xi|Omicron|Pi|Rho|Sigma|Tau|Upsilon|Phi|Chi|Psi|Omega|alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigmaf|sigma|tau|upsilon|phi|chi|psi|omega|thetasym|upsih|piv|circ|tilde|ndash|permil|lsquo|rsquo|ldquo|rdquo|prime);/gi; -// const escapeElements = { -// lt: "<", -// gt: ">", -// le: "鈮�", -// ge: "鈮�", -// nbsp: " ", -// amp: "&", -// quot: '""', -// times: "脳", -// Alpha: "螒", -// Beta: "螔", -// Gamma: "螕", -// Delta: "螖", -// Epsilon: "螘", -// Zeta: "螙", -// Eta: "螚", -// Theta: "螛", -// Iota: "螜", -// Kappa: "螝", -// Lambda: "螞", -// Mu: "螠", -// Nu: "螡", -// Xi: "螢", -// Omicron: "螣", -// Pi: "螤", -// Rho: "巍", -// Sigma: "危", -// Tau: "韦", -// Upsilon: "违", -// Phi: "桅", -// Chi: "围", -// Psi: "唯", -// Omega: "惟", -// alpha: "伪", -// beta: "尾", -// gamma: "纬", -// delta: "未", -// epsilon: "蔚", -// zeta: "味", -// eta: "畏", -// theta: "胃", -// iota: "喂", -// kappa: "魏", -// lambda: "位", -// mu: "渭", -// nu: "谓", -// xi: "尉", -// omicron: "慰", -// pi: "蟺", -// rho: "蟻", -// sigmaf: "蟼", -// sigma: "蟽", -// tau: "蟿", -// upsilon: "蠀", -// phi: "蠁", -// chi: "蠂", -// psi: "蠄", -// omega: "蠅", -// thetasym: "蠎", -// upsih: "蠏", -// piv: "蠔", -// circ: "藛", -// tilde: "藴", -// ndash: "鈥�", -// permil: "鈥�", -// lsquo: "鈥�", -// rsquo: "鈥�", -// ldquo: "鈥�", -// rdquo: "鈥�", -// prime: "鈥�", -// }; -// const contentWithoutTag = content.replace(tagReg, ""); -// const contentWithOnlyOneSpace = contentWithoutTag.replace(/ {2,}/g, " "); -// return contentWithOnlyOneSpace.replace( -// escapeReg, -// (all, t) => escapeElements[t] -// ); -// } + +export function getCmsItem({ + path, + storeId, + repositoryId, + type, + paging, + sort, + linkTypes, + fields, + filters, + subQuery, + keyword, + itemId, + resType, + havePublishInfo, + isRightSlider, + direction, + queryParent +}) { + const query = { + AccessControl: { + Path: path, + StoreId: storeId + '', + RepositoryId: repositoryId + '', + Type: type ? type : '\\' + }, + PageQuery: paging, + SortQuery: sort ? [sort] : [], + CreateDate: [], + Description: [], + Name: [], + RefCode: [], + Type: [], + SysType: [], + TypeId: [], + State: [], + Tag: [], + LinkDepartment: [], + LinkOrg: [], + LinkInfo: [], + LinkId: [], + LinkOrder: [], + LinkParentId: [], + LinkFile: [], + LinkType: linkTypes ?? [], + LinkStore: [], + LinkRepository: [], + LinkPath: [], + LinkAppId: [], + Creator: [], + ...fields, + ...filters, + ...subQuery + }; + if (havePublishInfo) { + query['PublishInfo'] = []; + } + if (queryParent) { + query['QueryParent'] = { + ...queryParent + }; + } + if (keyword) { + delete query.Name; + query['Name*'] = [keyword]; + } + if (direction && isRightSlider) { + query['Direction'] = [direction]; + } + if (itemId) query['Id='] = [`${itemId}`]; + if (query['CreatorAndAppRole'] != null) { + delete query.Creator; + } + const body = { + query: JSON.stringify({ + Query: [{ + Q1: query + }] + }) + }; + return dps5Api.QueryCmsItem(body).then((res) => { + if (res && res.length > 0) { + const data = res[0]; + const datas = handleCmsItemListRequestData(data.datas, fields, path, storeId, repositoryId); + return { + datas, + total: data.totalCount + }; + } else { + return { + datas: [], + total: 0 + }; + } + }); +} + + + +export const handleCmsItemListRequestData = (datas, fields, path, storeId, repositoryId) => { + const dataList = []; + for (let i = 0; i < datas.length; i++) { + const item = datas[i]; + const _fields = {}; + const _datas = []; + if (fields != null) { + for (let fieldKey in fields) { + // 鍏煎绛涢�夋潯浠剁殑瀛楁鍊艰幏鍙栵紝鍥犱负鍚庡彴绛涢�夊拰鍙栧�煎彧鑳戒紶涓�涓紝閮戒細杩斿洖鍊� + fieldKey = fieldKey.replace(/[!=<>*]/g, ''); + if (item.datas[fieldKey]) { + let values = []; + if (typeof item.datas[fieldKey] == 'string') { + values = JSON.parse(item.datas[fieldKey]); + } else { + values = item.datas[fieldKey]; + } + if (values ?.length > 0) { + // 鐢ㄥ瓧娈靛悕澶勭悊杩斿洖鐨勫瓧娈靛�� + if (values[0].Value) { + _fields[fieldKey] = values[0].Value; + values[0].sequenceNum = values[0].SequenceNum; + } + // 鍏煎澶勭悊鏁版嵁杩斿洖鐨刱ey鏄疌msItemData + // if (values[0].CmsItemData) { + // _fields[fieldKey] = values[0].CmsItemData.Value; + // values[0].sequenceNum = values[0].CmsItemData.SequenceNum; + // } + + item.datas[fieldKey] = values[0]; + if (values ?.length > 1) { + const isFile = values.find((citem) => citem.FileList ?.length > 0); + const dataItems = deduplicateArray(values, 'FieldId'); + if (!isFile) { + _datas.push(dataItems[0]); + } else { + const customFile = { + customFileList: values, + name: fieldKey, + md5: _fields[fieldKey], + FieldId: values[0].FieldId, + SequenceNum: values[0].SequenceNum + }; + _datas.push(customFile); + } + } else { + _datas.push(values[0]); + } + } + } + } + } + + if (item.datas.LogQuery) { + item.datas.LogQuery = JSON.parse(item.datas.LogQuery); + } + + const subDatas = {}; + if (item.subDatas) { + for (let subData of item.subDatas) { + const tag = subData.queryTag.replace('Query', ''); + subDatas[tag] = subData.datas; + } + } + dataList.push({ + ...item, + id: item.id, + name: item.datas.Name ? item.datas.Name : item.name, + icon: item.datas.Icon, + storeId: storeId, + repositoryId: repositoryId, + 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, + linkType: item.datas.LinkType, + childrenCount: parseInt(item.datas.ChildrenCount ?? '0'), + childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? '0'), + childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? '0'), + childrenCmsItemCount: parseInt(item.datas.ChildrenCmsItemCount ?? '0'), + childrenFileCount: parseInt(item.datas.ChildrenFileCount ?? '0'), + createDate: moment(item.datas.CreateDate).format('YYYY-MM-DD HH:mm:ss'), + description: item.datas.Description, + sysType: item.datas.SysType, + idPath: path + '\\' + item.id, + typeId: parseInt(item.datas.TypeId), + linkAppId: item.datas.linkAppId, + linkFile: JSON.parse(item.datas.LinkFile ?? '[]'), + PublishInfo: JSON.parse(item.datas.PublishInfo ?? '[]'), + linkInfo: item.datas.LinkInfo ? JSON.parse(item.datas.LinkInfo) : [], + linkPath: item.datas.LinkPath ?? null, + linkOrg: item.datas.LinkOrg ? JSON.parse(item.datas.LinkOrg) : [], + linkDepartment: item.datas.LinkDepartment? JSON.parse(item.datas.LinkDepartment) : [], + ..._fields, + datas: item.datas, + fieldList: _datas, + subDatas + }); + } + return dataList; +}; + +// type缁撴瀯澶勭悊 +export const handleTypeList = (list) => { + for (let i = 0; i < list.length; i++) { + const type = list[i]; + try { + type.cfg = JSON.parse(type.config); + } catch (error) { + type.cfg = null; + } + const fieldRefcodeMap = {}; + const tableHeaderFieldList = []; + const isSearchFieldList = []; + const isAdvSearchFieldList = []; + const isFilterFieldList = []; + handleType({ + typeFieldList: type.typeLinkList, + fieldRefcodeMap, + tableHeaderFieldList, + isSearchFieldList, + isAdvSearchFieldList, + isFilterFieldList + }); + type.fieldRefcodeMap = fieldRefcodeMap; + type.tableHeaderFieldList = tableHeaderFieldList; + type.isSearchFieldList = isSearchFieldList; + type.isAdvSearchFieldList = isAdvSearchFieldList; + type.isFilterFieldList = isFilterFieldList; + } + + return list; +}; + +const handleType = ({ + typeFieldList, + fieldRefcodeMap, + tableHeaderFieldList, + isSearchFieldList, + isAdvSearchFieldList, + isFilterFieldList +}) => { + for (let i = 0; i < typeFieldList.length; i++) { + const item = typeFieldList[i]; + try { + item.cfg = JSON.parse(item.config); + } catch (error) { + item.cfg = null; + } + if (item.typeField) { + try { + item.typeField.cfg = JSON.parse(item.typeField.config); + } catch (error) { + item.typeField.cfg = null; + } + fieldRefcodeMap[item.typeField.refCode] = item; + } + if (item.cfg && item.cfg.isColHeader) { + tableHeaderFieldList.push(item); + } + if (item.cfg && item.cfg.isSearch) { + isSearchFieldList.push(item); + } + if (item.cfg && item.cfg.isAdvSearch) { + isAdvSearchFieldList.push(item); + } + if (item.cfg && item.cfg.isFilter) { + isFilterFieldList.push(item); + } + if (item.children && item.children.length) { + handleType({ + typeFieldList: item.children, + fieldRefcodeMap, + tableHeaderFieldList, + isSearchFieldList, + isAdvSearchFieldList, + isFilterFieldList + }); + } + } +}; + + +//澶勭悊鏍戝舰缁撴瀯 +const handleTreeData = (datas, parent, noTriggerSelect = false) => { + let parentData = {}; + if (parent) { + parentData = { ...parent, parent: null }; + } else { + parentData = null; + } + const list = []; + for (let i = 0; i < datas.length; i++) { + const data = datas[i]; + const obj = { + label: data.name, + key: parentData ? parentData.key + "_" + i : i + "", + namePath: parentData ? parentData.namePath + "\\" + data.name : data.name, + icon: data.icon, + data: data, + parent: parentData, + leaf: false, + children: [], + }; + if (data["children"] && data["children"].length) { + obj.leaf = false; + obj.children = handleTreeData( + data["children"], + { + ...data, + key: obj.key, + namePath: obj.namePath, + }, + i == 0 ? false : true // 濡傛灉鏈夊瓙鏁版嵁澶勭悊锛屽彧鏈夌涓�鏉℃暟鎹渶瑕佸睍寮�鍜屽洖璋� + ); + } else { + obj.leaf = + !data["childrenChannelCount"] || data["childrenChannelCount"] == 0; + } + list.push(obj); + } + console.log(list, "list"); + return list; +}; + + +//鑾峰彇璧勬簮 + +const getResourceItem = async (path,storeInfo,filters,fields) => { + const params = { + path:path.data.idPath, + storeId:storeInfo.storeId, + repositoryId:storeInfo.repositoryId, + type: "\\", + sort: { + LinkOrder: "Asc", + }, + paging: { + Start: 0, + Size: 50, + }, + filters:{...filters}, + fields:{...fields} + } + const res = await getCmsItem(params); + + return res; +} + export default { ...tool, @@ -479,6 +677,10 @@ UpdateworksDataBytool, getPublicImage, worksData, - getPublicFile + getCmsItem, + getPublicFile, + handleTypeList, + handleTreeData, + getResourceItem // parseHtml, -} +} \ No newline at end of file -- Gitblit v1.9.1