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 |  400 +++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 371 insertions(+), 29 deletions(-)

diff --git a/src/assets/js/toolClass.js b/src/assets/js/toolClass.js
index 85260d1..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) {
@@ -169,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()
           }
@@ -289,10 +297,12 @@
   })
 }
 
-<<<<<<< HEAD
 // 鑾峰彇鏂囦欢
 export function getPublicFile(md5, isToken) {
-  const { tokenKey, requestCtx } = config
+  const {
+    tokenKey,
+    requestCtx
+  } = config
   let src = null
   let token = localStorage.getItem(tokenKey)
   if (md5) {
@@ -307,24 +317,356 @@
   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;
-// }
-=======
->>>>>>> e741b70fc22dc65e4a40595c50bb9057bed15667
+
+
+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 {
@@ -334,11 +676,11 @@
   worksDataBytool,
   UpdateworksDataBytool,
   getPublicImage,
-<<<<<<< HEAD
   worksData,
-  getPublicFile
+  getCmsItem,
+  getPublicFile,
+  handleTypeList,
+  handleTreeData,
+  getResourceItem
   // parseHtml,
-=======
-  worksData
->>>>>>> e741b70fc22dc65e4a40595c50bb9057bed15667
-}
+}
\ No newline at end of file

--
Gitblit v1.9.1