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