From b15a997e95d715c41df3a76aecbf58ec1141ab53 Mon Sep 17 00:00:00 2001
From: qiyunfeng-create <1940665526@qq.com>
Date: 星期四, 21 八月 2025 18:37:17 +0800
Subject: [PATCH] 个人中心-接口测试

---
 src/assets/js/toolClass.js |  613 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 482 insertions(+), 131 deletions(-)

diff --git a/src/assets/js/toolClass.js b/src/assets/js/toolClass.js
index a918473..3f993b3 100644
--- a/src/assets/js/toolClass.js
+++ b/src/assets/js/toolClass.js
@@ -1,55 +1,231 @@
-import SparkMD5 from "spark-md5";
+import SparkMD5 from 'spark-md5'
+import {
+  getPublicImage
+} from '@/assets/js/middleGround/tool.js'
+import config from './config'
+import moment from "moment";
+
+
+
 
 var tool = {
+  secondToTime(second) {
+    var minute = Math.floor(second / 60)
+    var sec = second % 60
+    var time
+    if (second < 60) {
+      time = second + '"'
+    } else {
+      time = sec === 0 ? minute + "'" : minute + "'" + sec + '"'
+    }
+    return time
+  },
   setCookie: function (c_name, value, expiredays, path) {
-    var exdate = new Date();
-    exdate.setDate(exdate.getDate() + expiredays);
+    var exdate = new Date()
+    exdate.setDate(exdate.getDate() + expiredays)
     document.cookie =
       c_name +
-      "=" +
+      '=' +
       escape(value) +
-      (expiredays == null ? "" : ";expires=" + exdate.toGMTString()) +
-      (path ? ";path=" + path : "");
+      (expiredays == null ? '' : ';expires=' + exdate.toGMTString()) +
+      (path ? ';path=' + path : '')
   },
   getCookie: function (c_name) {
     if (document.cookie.length > 0) {
-      var c_start = document.cookie.indexOf(c_name + "=");
+      var c_start = document.cookie.indexOf(c_name + '=')
       if (c_start != -1) {
-        c_start = c_start + c_name.length + 1;
-        var c_end = document.cookie.indexOf(";", c_start);
-        if (c_end == -1) c_end = document.cookie.length;
-        return unescape(document.cookie.substring(c_start, c_end));
+        c_start = c_start + c_name.length + 1
+        var c_end = document.cookie.indexOf(';', c_start)
+        if (c_end == -1) c_end = document.cookie.length
+        return unescape(document.cookie.substring(c_start, c_end))
       }
     }
-    return "";
+    return ''
   },
   delCookie: function (name) {
-    var exp = new Date();
-    exp.setTime(exp.getTime() - 1);
-    var cval = tool.getCookie(name);
-    if (cval != null)
-      document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
+    var exp = new Date()
+    exp.setTime(exp.getTime() - 1)
+    var cval = tool.getCookie(name)
+    if (cval != null) document.cookie = name + '=' + cval + ';expires=' + exp.toGMTString()
   },
   // 寮哄埗淇濈暀2浣嶅皬鏁帮紝濡傦細2锛屼細鍦�2鍚庨潰琛ヤ笂00.鍗�2.00
   toDecimal2(x) {
-    var f;
-    f = parseFloat(x);
+    var f
+    f = parseFloat(x)
     if (isNaN(f)) {
-      return false;
+      return false
     }
-    f = Math.round(x * 100) / 100;
-    var s = f.toString();
-    var rs = s.indexOf(".");
+    f = Math.round(x * 100) / 100
+    var s = f.toString()
+    var rs = s.indexOf('.')
     if (rs < 0) {
-      rs = s.length;
-      s += ".";
+      rs = s.length
+      s += '.'
     }
     while (s.length <= rs + 2) {
-      s += "0";
+      s += '0'
     }
-    return s;
+    return s
   },
-};
+  formateTime(date) {
+    var newDate = new Date(+new Date(date) + 8 * 3600 * 1000)
+      .toISOString()
+      .replace(/T/g, ' ')
+      .replace(/\.[\d]{3}Z/, '')
+    var time = new Date(newDate)
+    return time.getTime()
+  }
+}
+
+
+//澶勭悊琛ㄥ崟鎻愪氦鏁版嵁
+export function worksData(res) {
+  let arr = []
+  for (let i = 0; i < res.length; i++) {
+    const item = res[i]
+    if (item.typeField) {
+      if (item.typeField.config) {
+        item.typeField.options = JSON.parse(item.typeField.config).option
+      }
+      arr.push(item.typeField)
+    }
+  }
+  return arr
+}
+
+export function worksDataBytool(res, value, linkList) {
+  let arr = []
+  let nrr = []
+  if (linkList && linkList.length > 0) {
+    linkList.forEach((e) =>
+      nrr.push({
+        linkProtectType: e.linkProtectType,
+        linkType: e.linkType,
+        md5: e.md5
+      })
+    )
+  }
+  res.forEach((item) => {
+    const obj = {
+      baseType: item.typeField.baseType,
+      order: 0,
+      typeFieldId: item.typeField.id,
+      sequenceNum: item.config ? JSON.parse(item.config).uuid : '',
+      newDataAndFileLinkListRequest: []
+    }
+    for (let k in value) {
+      if (item.typeField.refCode === k) {
+        if (item.typeField.type == 'File') {
+          try {
+            obj.strValue = JSON.stringify(value[k].map((citem) => citem.md5))
+          } catch (error) {
+            obj.strValue = ''
+          }
+          obj.newDataAndFileLinkListRequest = nrr
+        } else {
+          if (typeof value[k] == 'object') {
+            obj.strValue = JSON.stringify(value[k])
+          } else {
+            if (obj.baseType === 'String') {
+              obj.strValue = value[k] + ''
+            } else if (obj.baseType === 'Text') {
+              obj.textValue = value[k] + ''
+            } else {
+              obj.strValue = value[k] + ''
+            }
+          }
+        }
+      }
+    }
+    // if (obj.strValue || obj.textValue) {
+    arr.push(obj)
+    // }
+  })
+  return arr
+}
+
+export function UpdateworksDataBytool(initData, res, value, linkList) {
+  let arr = []
+  let newArr = []
+  for (let i = 0; i < initData.length; i++) {
+    const ele = initData[i]
+    for (let j = 0; j < res.length; j++) {
+      const item = res[j]
+      if (item.sequenceNum == ele.sequenceNum) {
+        item.refCode = ele.typeField.refCode
+      }
+    }
+  }
+  initData.forEach((citem) => {
+    const updateOldData = res.find((f) => f.sequenceNum == citem.sequenceNum)
+    if (updateOldData) {
+      const obj = {
+        baseType: citem.typeField.baseType,
+        order: 0,
+        id: updateOldData.id,
+        typeFieldId: citem.typeField.id,
+        sequenceNum: citem.sequenceNum,
+        setDataAndFileLinkListRequest: []
+      }
+      for (let k in value) {
+        if (citem.typeField.refCode === k) {
+          if (typeof value[k] == 'object' && k != 'region') {
+            obj.strValue = JSON.stringify(linkList)
+            obj.setDataAndFileLinkListRequest = linkList
+          } else if (typeof value[k] == 'object' && k == 'region') {
+            obj.strValue = value[k]?.join('/')
+            obj.setDataAndFileLinkListRequest = [{
+              area: value[k]
+            }]
+          } else {
+            obj.strValue = value[k].toString()
+          }
+        }
+      }
+      if (obj.strValue) {
+        arr.push(obj)
+      }
+    } else {
+      const newObj = {
+        baseType: citem.typeField.baseType,
+        order: 0,
+        typeFieldId: citem.typeField.id,
+        sequenceNum: citem.sequenceNum,
+        setDataAndFileLinkListRequest: []
+      }
+      for (let k in value) {
+        if (citem.typeField.refCode === k) {
+          if (typeof value[k] == 'object') {
+            newObj.strValue = JSON.stringify(linkList)
+            newObj.setDataAndFileLinkListRequest = linkList
+          } else {
+            newObj.strValue = value[k].toString()
+          }
+        }
+      }
+      if (newObj.strValue) {
+        newArr.push(newObj)
+      }
+    }
+  })
+  return {
+    updateData: arr,
+    newData: newArr
+  }
+}
+
+export function download(url) {
+  const iframe = document.createElement('iframe')
+  iframe.setAttribute('hidden', 'hidden')
+  document.body.appendChild(iframe)
+  iframe.onload = () => {
+    if (iframe) {
+      iframe.setAttribute('src', 'about:blank')
+    }
+  }
+
+  iframe.setAttribute('src', url)
+}
 
 /**
  * 鑾峰彇涓�涓猆UID
@@ -58,153 +234,323 @@
  * @returns {string}
  */
 export function uuid(len = 32, radix = 16) {
-  const chars =
-    "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("");
+  const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
   let uuid = [],
-    i;
-  radix = radix || chars.length;
+    i
+  radix = radix || chars.length
 
   if (len) {
     // Compact form
-    for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
+    for (i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)]
   } else {
     // rfc4122, version 4 form
-    let r;
+    let r
 
     // rfc4122 requires these characters
-    uuid[8] = uuid[13] = uuid[18] = uuid[23] = "-";
-    uuid[14] = "4";
+    uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
+    uuid[14] = '4'
 
     // Fill in random data.  At i==19 set the high bits of clock sequence as
     // per rfc4122, sec. 4.1.5
     for (i = 0; i < 36; i++) {
       if (!uuid[i]) {
-        r = 0 | (Math.random() * 16);
-        uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r];
+        r = 0 | (Math.random() * 16)
+        uuid[i] = chars[i === 19 ? (r & 0x3) | 0x8 : r]
       }
     }
   }
 
-  return uuid.join("");
+  return uuid.join('')
 }
 
 export function getFileMd5(file, chunkSize) {
   return new Promise((resolve, reject) => {
-    let blobSlice =
-      File.prototype.slice ||
-      File.prototype.mozSlice ||
-      File.prototype.webkitSlice;
-    let chunks = Math.ceil(file.size / chunkSize);
-    let currentChunk = 0;
-    let spark = new SparkMD5.ArrayBuffer();
-    let fileReader = new FileReader();
+    let blobSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice
+    let chunks = Math.ceil(file.size / chunkSize)
+    let currentChunk = 0
+    let spark = new SparkMD5.ArrayBuffer()
+    let fileReader = new FileReader()
     fileReader.onload = function (e) {
-      spark.append(e.target.result);
-      currentChunk++;
+      spark.append(e.target.result)
+      currentChunk++
       if (currentChunk < chunks) {
-        loadNext();
+        loadNext()
       } else {
-        const md5 = spark.end();
-        resolve(md5);
+        const md5 = spark.end()
+        resolve(md5)
       }
-    };
+    }
     fileReader.onerror = function (e) {
-      reject(e);
-    };
+      reject(e)
+    }
 
     function loadNext() {
-      let start = currentChunk * chunkSize;
-      let end = start + chunkSize;
+      let start = currentChunk * chunkSize
+      let end = start + chunkSize
       if (end > file.size) {
-        end = file.size;
+        end = file.size
       }
-      fileReader.readAsArrayBuffer(blobSlice.call(file, start, end));
+      fileReader.readAsArrayBuffer(blobSlice.call(file, start, end))
     }
-    loadNext();
-  });
+    loadNext()
+  })
 }
 
-export function worksDataBytool(res, value, linkList) {
-  let arr = [];
-  res.forEach((item) => {
-    const obj = {
-      baseType: item.typeField.baseType,
-      order: 0,
-      typeFieldId: item.typeField.id,
-      sequenceNum: item.config ? JSON.parse(item.config).uuid : "",
-      newDataAndFileLinkListRequest: [],
-    };
-    for (let k in value) {
-      if (item.typeField.refCode === k) {
-        if (typeof value[k] == "object") {
-          obj.strValue = JSON.stringify(value[k]);
-          obj.newDataAndFileLinkListRequest = linkList;
-        } else {
-          obj.strValue = value[k];
+// 鑾峰彇鏂囦欢
+export function getPublicFile(md5, isToken) {
+  const {
+    tokenKey,
+    requestCtx
+  } = config
+  let src = null
+  let token = localStorage.getItem(tokenKey)
+  if (md5) {
+    if (isToken) {
+      src = requestCtx + `/file/api/ApiDownloadForAuthorize?md5=${md5}&token=${token}`
+    } else {
+      src = requestCtx + `/file/api/ApiDownload?md5=${md5}`
+    }
+  } else {
+    return ''
+  }
+  return src
+}
+
+
+
+
+
+
+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 (obj.strValue) {
-      arr.push(obj);
-    }
-  });
-  return arr;
-}
 
-export function resultsBytool(res, value) {
-  let obj = {};
-  res.forEach((item, i) => {
-    item.sequenceNum = item.config ? JSON.parse(item.config).uuid : "";
-    value.forEach((e) => {
-      if (item.sequenceNum == e.sequenceNum) {
-        try {
-          const val = JSON.parse(e.value);
-          obj[item.typeField.refCode] = val;
-        } catch (error) {
-          obj[item.typeField.refCode] = e.value;
-        }
+    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 obj;
-}
+  }
+  return dataList;
+};
 
-export function UpdateworksDataBytool(initData, res, value, linkList) {
-  let arr = [];
-  for (let i = 0; i < initData.length; i++) {
-    const ele = initData[i];
-    for (let j = 0; j < res.length; j++) {
-      const item = res[j];
-      if (item.sequenceNum == ele.sequenceNum) {
-        item.refCode = ele.typeField.refCode;
+// 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
+      });
     }
   }
-  res.forEach((item) => {
+};
+
+
+//澶勭悊鏍戝舰缁撴瀯
+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 = {
-      baseType: item.baseType,
-      order: 0,
-      id: item.id,
-      typeFieldId: item.fieldId,
-      sequenceNum: item.sequenceNum,
-      setDataAndFileLinkListRequest: [],
+      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: [],
     };
-    for (let k in value) {
-      if (item.refCode === k) {
-        if (typeof value[k] == "object") {
-          obj.strValue = JSON.stringify(value[k]);
-          obj.setDataAndFileLinkListRequest = linkList;
-        } else {
-          obj.strValue = value[k].toString();
-        }
-      }
+    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;
     }
-    if (obj.strValue) {
-      arr.push(obj);
-    }
-  });
-  return arr;
-}
+    list.push(obj);
+  }
+  console.log(list, "list");
+  return list;
+};
+
+
+//鑾峰彇璧勬簮
+
+
 
 export default {
   ...tool,
@@ -212,5 +558,10 @@
   getFileMd5,
   worksDataBytool,
   UpdateworksDataBytool,
-  resultsBytool,
-};
+  getPublicImage,
+  worksData,
+  getPublicFile,
+  handleTypeList,
+  handleTreeData,
+  // parseHtml,
+}
\ No newline at end of file

--
Gitblit v1.9.1