From 81726cde2dd8e0b8176aa1a25fc7f4d864be23ed Mon Sep 17 00:00:00 2001 From: GGJ <357021191@qq.com> Date: Wed, 30 Apr 2025 16:00:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=A1=B5=E9=9D=A2=E8=A1=A5?= =?UTF-8?q?=E6=8B=9B=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/table/index.vue | 72 +- src/utils/index.ts | 363 +- .../terminal/FrontManagement/index.vue | 2 +- .../pqs/business/terminal/deviceter/index.vue | 4 +- .../area/SteadyState/index.vue | 16 +- .../area/getIntegrityData/index.vue | 36 +- .../area/harmonicDistortionRate/index.vue | 30 +- .../area/onlinerate/index.vue | 28 +- .../area/qualifiedRate/index.vue | 38 +- .../area/terminalonlinerate/index.vue | 16 +- .../detailed/harmonicStatistics/index.vue | 6 +- src/views/pqs/panorama/components/boundary.ts | 7621 ++++++++++++++++- src/views/pqs/panorama/components/map.vue | 107 +- .../alarmCleaning/components/alarm.vue | 8 +- .../cleaning/components/abnormal.vue | 7 + 15 files changed, 7778 insertions(+), 576 deletions(-) diff --git a/src/components/table/index.vue b/src/components/table/index.vue index 179b3ab7..712df5ca 100644 --- a/src/components/table/index.vue +++ b/src/components/table/index.vue @@ -1,23 +1,43 @@ @@ -112,26 +137,24 @@ const handleSortChange = ({ column, order }: { column: TableColumn; order: 'asc' watch( () => tableStore.table.allFlag, newVal => { - - if (tableStore.table.allFlag) { - tableRef.value?.exportData({ - filename:tableStore.table.filename|| document.querySelectorAll('.ba-nav-tab.active')[0].textContent || '', // 文件名字 + filename: + tableStore.table.filename || document.querySelectorAll('.ba-nav-tab.active')[0].textContent || '', // 文件名字 sheetName: 'Sheet1', type: 'xlsx', //导出文件类型 xlsx 和 csv useStyle: true, data: tableStore.table.allData, // 数据源 // 过滤那个字段导出 columnFilterMethod: function (column: any) { - - return !(column.column.title === undefined || column.column.title === '序号' || column.column.title === '操作') + return !( + column.column.title === undefined || + column.column.title === '序号' || + column.column.title === '操作' + ) } }) tableStore.table.allFlag = false - } - - } ) watch( @@ -169,6 +192,5 @@ defineExpose({ border-right: 1px solid #e4e7e9; border-bottom: 1px solid #e4e7e9; } - diff --git a/src/utils/index.ts b/src/utils/index.ts index 274ab7ca..d6c9d637 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,4 +1,4 @@ -import {toNumber} from 'lodash-es' +import { toNumber } from 'lodash-es' /** * @@ -7,14 +7,14 @@ import {toNumber} from 'lodash-es' * @returns any */ export const withInstall = (component: T, alias?: string) => { - const comp = component as any - comp.install = (app: any) => { - app.component(comp.name || comp.displayName, component) - if (alias) { - app.config.globalProperties[alias] = component + const comp = component as any + comp.install = (app: any) => { + app.component(comp.name || comp.displayName, component) + if (alias) { + app.config.globalProperties[alias] = component + } } - } - return component as T & Plugin + return component as T & Plugin } /** @@ -22,7 +22,7 @@ export const withInstall = (component: T, alias?: string) => { * @returns 字符串下划线 */ export const humpToUnderline = (str: string): string => { - return str.replace(/([A-Z])/g, '-$1').toLowerCase() + return str.replace(/([A-Z])/g, '-$1').toLowerCase() } /** @@ -30,21 +30,21 @@ export const humpToUnderline = (str: string): string => { * @returns 字符串驼峰 */ export const underlineToHump = (str: string): string => { - if (!str) return '' - return str.replace(/\-(\w)/g, (_, letter: string) => { - return letter.toUpperCase() - }) + if (!str) return '' + return str.replace(/\-(\w)/g, (_, letter: string) => { + return letter.toUpperCase() + }) } /** * 驼峰转横杠 */ export const humpToDash = (str: string): string => { - return str.replace(/([A-Z])/g, '-$1').toLowerCase() + return str.replace(/([A-Z])/g, '-$1').toLowerCase() } export const setCssVar = (prop: string, val: any, dom = document.documentElement) => { - dom.style.setProperty(prop, val) + dom.style.setProperty(prop, val) } /** @@ -54,22 +54,22 @@ export const setCssVar = (prop: string, val: any, dom = document.documentElement */ // eslint-disable-next-line export const findIndex = (ary: Array, fn: Fn): number => { - if (ary.findIndex) { - return ary.findIndex(fn) - } - let index = -1 - ary.some((item: T, i: number, ary: Array) => { - const ret: T = fn(item, i, ary) - if (ret) { - index = i - return ret + if (ary.findIndex) { + return ary.findIndex(fn) } - }) - return index + let index = -1 + ary.some((item: T, i: number, ary: Array) => { + const ret: T = fn(item, i, ary) + if (ret) { + index = i + return ret + } + }) + return index } export const trim = (str: string) => { - return str.replace(/(^\s*)|(\s*$)/g, '') + return str.replace(/(^\s*)|(\s*$)/g, '') } /** @@ -77,81 +77,75 @@ export const trim = (str: string) => { * @param {String} fmt 需要转换的格式 如 yyyy-MM-dd、yyyy-MM-dd HH:mm:ss */ export function formatTime(time: Date | number | string, fmt: string) { - if (!time) return '' - else { - const date = new Date(time) - const o = { - 'M+': date.getMonth() + 1, - 'd+': date.getDate(), - 'H+': date.getHours(), - 'm+': date.getMinutes(), - 's+': date.getSeconds(), - 'q+': Math.floor((date.getMonth() + 3) / 3), - S: date.getMilliseconds() + if (!time) return '' + else { + const date = new Date(time) + const o = { + 'M+': date.getMonth() + 1, + 'd+': date.getDate(), + 'H+': date.getHours(), + 'm+': date.getMinutes(), + 's+': date.getSeconds(), + 'q+': Math.floor((date.getMonth() + 3) / 3), + S: date.getMilliseconds() + } + if (/(y+)/.test(fmt)) { + fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) + } + for (const k in o) { + if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)) + } + } + return fmt } - if (/(y+)/.test(fmt)) { - fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) - } - for (const k in o) { - if (new RegExp('(' + k + ')').test(fmt)) { - fmt = fmt.replace( - RegExp.$1, - RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length) - ) - } - } - return fmt - } } /** * 生成随机字符串 */ export function toAnyString() { - const str: string = 'xxxxx-xxxxx-4xxxx-yxxxx-xxxxx'.replace(/[xy]/g, (c: string) => { - const r: number = (Math.random() * 16) | 0 - const v: number = c === 'x' ? r : (r & 0x3) | 0x8 - return v.toString() - }) - return str + const str: string = 'xxxxx-xxxxx-4xxxx-yxxxx-xxxxx'.replace(/[xy]/g, (c: string) => { + const r: number = (Math.random() * 16) | 0 + const v: number = c === 'x' ? r : (r & 0x3) | 0x8 + return v.toString() + }) + return str } /** * 首字母大写 */ export function firstUpperCase(str: string) { - return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase()) + return str.toLowerCase().replace(/( |^)[a-z]/g, L => L.toUpperCase()) } export const generateUUID = () => { - if (typeof crypto === 'object') { - if (typeof crypto.randomUUID === 'function') { - return crypto.randomUUID() + if (typeof crypto === 'object') { + if (typeof crypto.randomUUID === 'function') { + return crypto.randomUUID() + } + if (typeof crypto.getRandomValues === 'function' && typeof Uint8Array === 'function') { + const callback = (c: any) => { + const num = Number(c) + return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString(16) + } + return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, callback) + } } - if (typeof crypto.getRandomValues === 'function' && typeof Uint8Array === 'function') { - const callback = (c: any) => { - const num = Number(c) - return (num ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (num / 4)))).toString( - 16 - ) - } - return '10000000-1000-4000-8000-100000000000'.replace(/[018]/g, callback) - } - } - let timestamp = new Date().getTime() - let performanceNow = - (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0 - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => { - let random = Math.random() * 16 - if (timestamp > 0) { - random = (timestamp + random) % 16 | 0 - timestamp = Math.floor(timestamp / 16) - } else { - random = (performanceNow + random) % 16 | 0 - performanceNow = Math.floor(performanceNow / 16) - } - return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16) - }) + let timestamp = new Date().getTime() + let performanceNow = (typeof performance !== 'undefined' && performance.now && performance.now() * 1000) || 0 + return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => { + let random = Math.random() * 16 + if (timestamp > 0) { + random = (timestamp + random) % 16 | 0 + timestamp = Math.floor(timestamp / 16) + } else { + random = (performanceNow + random) % 16 | 0 + performanceNow = Math.floor(performanceNow / 16) + } + return (c === 'x' ? random : (random & 0x3) | 0x8).toString(16) + }) } /** @@ -163,13 +157,13 @@ export const generateUUID = () => { */ // @ts-ignore export const fileSizeFormatter = (row, column, cellValue) => { - const fileSize = cellValue - const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] - const srcSize = parseFloat(fileSize) - const index = Math.floor(Math.log(srcSize) / Math.log(1024)) - const size = srcSize / Math.pow(1024, index) - const sizeStr = size.toFixed(2) //保留的小数位数 - return sizeStr + ' ' + unitArr[index] + const fileSize = cellValue + const unitArr = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'] + const srcSize = parseFloat(fileSize) + const index = Math.floor(Math.log(srcSize) / Math.log(1024)) + const size = srcSize / Math.pow(1024, index) + const sizeStr = size.toFixed(2) //保留的小数位数 + return sizeStr + ' ' + unitArr[index] } /** @@ -178,16 +172,16 @@ export const fileSizeFormatter = (row, column, cellValue) => { * @param source 源对象 */ export const copyValueToTarget = (target: any, source: any) => { - const newObj = Object.assign({}, target, source) - // 删除多余属性 - Object.keys(newObj).forEach((key) => { - // 如果不是target中的属性则删除 - if (Object.keys(target).indexOf(key) === -1) { - delete newObj[key] - } - }) - // 更新目标对象值 - Object.assign(target, newObj) + const newObj = Object.assign({}, target, source) + // 删除多余属性 + Object.keys(newObj).forEach(key => { + // 如果不是target中的属性则删除 + if (Object.keys(target).indexOf(key) === -1) { + delete newObj[key] + } + }) + // 更新目标对象值 + Object.assign(target, newObj) } /** @@ -196,9 +190,9 @@ export const copyValueToTarget = (target: any, source: any) => { * @param urlStr 链接地址,默认为当前浏览器的地址 */ export const getUrlValue = (key: string, urlStr: string = location.href): string => { - if (!urlStr || !key) return '' - const url = new URL(decodeURIComponent(urlStr)) - return url.searchParams.get(key) ?? '' + if (!urlStr || !key) return '' + const url = new URL(decodeURIComponent(urlStr)) + return url.searchParams.get(key) ?? '' } /** @@ -207,7 +201,7 @@ export const getUrlValue = (key: string, urlStr: string = location.href): string * @param urlStr 链接地址,默认为当前浏览器的地址 */ export const getUrlNumberValue = (key: string, urlStr: string = location.href): number => { - return toNumber(getUrlValue(key, urlStr)) + return toNumber(getUrlValue(key, urlStr)) } /** @@ -216,7 +210,7 @@ export const getUrlNumberValue = (key: string, urlStr: string = location.href): * @param order 顺序 */ export const buildSortingField = ({ prop, order }) => { - return { field: prop, order: order === 'ascending' ? 'asc' : 'desc' } + return { field: prop, order: order === 'ascending' ? 'asc' : 'desc' } } // ========== NumberUtils 数字方法 ========== @@ -228,14 +222,14 @@ export const buildSortingField = ({ prop, order }) => { * @return 求和结果,默认为 0 */ export const getSumValue = (values: number[]): number => { - return values.reduce((prev, curr) => { - const value = Number(curr) - if (!Number.isNaN(value)) { - return prev + curr - } else { - return prev - } - }, 0) + return values.reduce((prev, curr) => { + const value = Number(curr) + if (!Number.isNaN(value)) { + return prev + curr + } else { + return prev + } + }, 0) } // ========== 通用金额方法 ========== @@ -245,9 +239,9 @@ export const getSumValue = (values: number[]): number => { * @param num */ export const formatToFraction = (num: number | string | undefined): string => { - if (typeof num === 'undefined') return '0.00' - const parsedNumber = typeof num === 'string' ? parseFloat(num) : num - return (parsedNumber / 100.0).toFixed(2) + if (typeof num === 'undefined') return '0.00' + const parsedNumber = typeof num === 'string' ? parseFloat(num) : num + return (parsedNumber / 100.0).toFixed(2) } /** @@ -258,25 +252,25 @@ export const formatToFraction = (num: number | string | undefined): string => { */ // TODO @芋艿:看看怎么融合掉 export const floatToFixed2 = (num: number | string | undefined): string => { - let str = '0.00' - if (typeof num === 'undefined') { + let str = '0.00' + if (typeof num === 'undefined') { + return str + } + const f = formatToFraction(num) + const decimalPart = f.toString().split('.')[1] + const len = decimalPart ? decimalPart.length : 0 + switch (len) { + case 0: + str = f.toString() + '.00' + break + case 1: + str = f.toString() + '0' + break + case 2: + str = f.toString() + break + } return str - } - const f = formatToFraction(num) - const decimalPart = f.toString().split('.')[1] - const len = decimalPart ? decimalPart.length : 0 - switch (len) { - case 0: - str = f.toString() + '.00' - break - case 1: - str = f.toString() + '0' - break - case 2: - str = f.toString() - break - } - return str } /** @@ -285,24 +279,24 @@ export const floatToFixed2 = (num: number | string | undefined): string => { */ // TODO @芋艿:看看怎么融合掉 export const convertToInteger = (num: number | string | undefined): number => { - if (typeof num === 'undefined') return 0 - const parsedNumber = typeof num === 'string' ? parseFloat(num) : num - // TODO 分转元后还有小数则四舍五入 - return Math.round(parsedNumber * 100) + if (typeof num === 'undefined') return 0 + const parsedNumber = typeof num === 'string' ? parseFloat(num) : num + // TODO 分转元后还有小数则四舍五入 + return Math.round(parsedNumber * 100) } /** * 元转分 */ export const yuanToFen = (amount: string | number): number => { - return convertToInteger(amount) + return convertToInteger(amount) } /** * 分转元 */ export const fenToYuan = (price: string | number): string => { - return formatToFraction(price) + return formatToFraction(price) } /** @@ -312,10 +306,10 @@ export const fenToYuan = (price: string | number): string => { * @param reference 对比数值 */ export const calculateRelativeRate = (value?: number, reference?: number) => { - // 防止除0 - if (!reference) return 0 + // 防止除0 + if (!reference) return 0 - return ((100 * ((value || 0) - reference)) / reference).toFixed(0) + return ((100 * ((value || 0) - reference)) / reference).toFixed(0) } // ========== ERP 专属方法 ========== @@ -333,17 +327,17 @@ const ERP_PRICE_DIGIT = 2 * @return 格式化后的数量 */ export const erpNumberFormatter = (num: number | string | undefined, digit: number) => { - if (num == null) { - return '' - } - if (typeof num === 'string') { - num = parseFloat(num) - } - // 如果非 number,则直接返回空串 - if (isNaN(num)) { - return '' - } - return num.toFixed(digit) + if (num == null) { + return '' + } + if (typeof num === 'string') { + num = parseFloat(num) + } + // 如果非 number,则直接返回空串 + if (isNaN(num)) { + return '' + } + return num.toFixed(digit) } /** @@ -355,7 +349,7 @@ export const erpNumberFormatter = (num: number | string | undefined, digit: numb * @return 格式化后的数量 */ export const erpCountInputFormatter = (num: number | string | undefined) => { - return erpNumberFormatter(num, ERP_COUNT_DIGIT) + return erpNumberFormatter(num, ERP_COUNT_DIGIT) } // noinspection JSCommentMatchesSignature @@ -366,7 +360,7 @@ export const erpCountInputFormatter = (num: number | string | undefined) => { * @return 格式化后的数量 */ export const erpCountTableColumnFormatter = (_, __, cellValue: any, ___) => { - return erpNumberFormatter(cellValue, ERP_COUNT_DIGIT) + return erpNumberFormatter(cellValue, ERP_COUNT_DIGIT) } /** @@ -378,7 +372,7 @@ export const erpCountTableColumnFormatter = (_, __, cellValue: any, ___) => { * @return 格式化后的数量 */ export const erpPriceInputFormatter = (num: number | string | undefined) => { - return erpNumberFormatter(num, ERP_PRICE_DIGIT) + return erpNumberFormatter(num, ERP_PRICE_DIGIT) } // noinspection JSCommentMatchesSignature @@ -389,7 +383,7 @@ export const erpPriceInputFormatter = (num: number | string | undefined) => { * @return 格式化后的数量 */ export const erpPriceTableColumnFormatter = (_, __, cellValue: any, ___) => { - return erpNumberFormatter(cellValue, ERP_PRICE_DIGIT) + return erpNumberFormatter(cellValue, ERP_PRICE_DIGIT) } /** @@ -400,10 +394,10 @@ export const erpPriceTableColumnFormatter = (_, __, cellValue: any, ___) => { * @return 总价格。如果有任一为空,则返回 undefined */ export const erpPriceMultiply = (price: number, count: number) => { - if (price == null || count == null) { - return undefined - } - return parseFloat((price * count).toFixed(ERP_PRICE_DIGIT)) + if (price == null || count == null) { + return undefined + } + return parseFloat((price * count).toFixed(ERP_PRICE_DIGIT)) } /** @@ -415,8 +409,8 @@ export const erpPriceMultiply = (price: number, count: number) => { * @param total 总值 */ export const erpCalculatePercentage = (value: number, total: number) => { - if (total === 0) return 0 - return ((value / total) * 100).toFixed(2) + if (total === 0) return 0 + return ((value / total) * 100).toFixed(2) } /** @@ -425,13 +419,34 @@ export const erpCalculatePercentage = (value: number, total: number) => { * @param areaName 地区名称 */ export const areaReplace = (areaName: string) => { - if (!areaName) { + if (!areaName) { + return areaName + } return areaName - } - return areaName - .replace('维吾尔自治区', '') - .replace('壮族自治区', '') - .replace('回族自治区', '') - .replace('自治区', '') - .replace('省', '') + .replace('维吾尔自治区', '') + .replace('壮族自治区', '') + .replace('回族自治区', '') + .replace('自治区', '') + .replace('省', '') +} +/** + * bes64解密函数 + * + * @param areaName 地区名称 + */ +// +export const decryptFromBase64 = (base64Str: string) => { + try { + const binaryStr = atob(base64Str) + const encodedStr = binaryStr + .split('') + .map(char => { + return '%' + ('00' + char.charCodeAt(0).toString(16)).slice(-2) + }) + .join('') + return decodeURIComponent(encodedStr) + } catch (error) { + console.error('解密出错:', error) + return null + } } diff --git a/src/views/pqs/business/terminal/FrontManagement/index.vue b/src/views/pqs/business/terminal/FrontManagement/index.vue index b0a6b625..b542c4eb 100644 --- a/src/views/pqs/business/terminal/FrontManagement/index.vue +++ b/src/views/pqs/business/terminal/FrontManagement/index.vue @@ -338,7 +338,7 @@ const change = val => { treeRef.value!.filter(filterText.value) } const edit = (data: any) => { - console.log('🚀 ~ edit ~ data:', data) + // console.log('🚀 ~ edit ~ data:', data) processNo.value = data.processNo processId.value = data.id popUps.value = true diff --git a/src/views/pqs/business/terminal/deviceter/index.vue b/src/views/pqs/business/terminal/deviceter/index.vue index e22edd50..cb616621 100644 --- a/src/views/pqs/business/terminal/deviceter/index.vue +++ b/src/views/pqs/business/terminal/deviceter/index.vue @@ -552,7 +552,7 @@ > - - + --> @@ -197,10 +197,9 @@ const tableStore = new TableStore({ ], loadCallback: () => { - let treeData = [] - treeData = tree2List(tableStore.table.data) + tableStore.table.data = tree2List(tableStore.table.data, Math.random() * 1000) tableStore.table.column[0].title = tableStore.table.params.statisticalType.name - tableStore.table.data = JSON.parse(JSON.stringify(treeData)) + chartsRef.value && chartsRef.value.getTableStoreParams(tableStore.table.params) setTimeout(() => { activeName.value == 0 && tableRef.value && tableRef.value.getRef().setAllTreeExpand(true) @@ -214,18 +213,18 @@ tableStore.table.params.manufacturer = [] tableStore.table.params.loadType = [] tableStore.table.params.serverName = 'harmonicBoot' provide('tableStore', tableStore) -const tree2List = (list: any, pid?: string) => { +const tree2List = (list: any, id?: string) => { //存储结果的数组 let arr: any = [] // 遍历 tree 数组 list.forEach((item: any) => { - // item.comFlag = item.comFlag == null ? 3 : item.comFlag + item.uPid = id + item.uId = Math.random() * 1000 item.valueOver == 3.14159 ? 0 : item.valueOver >= 90 ? 1 : item.valueOver && item.valueOver < 90 ? 2 : 3 - item.pid = pid // 判断item是否存在children if (!item.children) return arr.push(item) // 函数递归,对children数组进行tree2List的转换 - const children = tree2List(item.children, item.id) + const children = tree2List(item.children, item.uId) // 删除item的children属性 delete item.children // 把item和children数组添加至结果数组 @@ -235,6 +234,7 @@ const tree2List = (list: any, pid?: string) => { // 返回结果数组 return arr } + onMounted(() => { tableStore.index() }) diff --git a/src/views/pqs/harmonicMonitoring/area/getIntegrityData/index.vue b/src/views/pqs/harmonicMonitoring/area/getIntegrityData/index.vue index d3eb06c8..7957eedf 100644 --- a/src/views/pqs/harmonicMonitoring/area/getIntegrityData/index.vue +++ b/src/views/pqs/harmonicMonitoring/area/getIntegrityData/index.vue @@ -103,6 +103,9 @@ +
@@ -110,7 +113,8 @@
@@ -183,7 +187,6 @@ const handleClick = (tab: any, e: any) => { // } } -// const datePickerRef = ref() const tableHeaderRef = ref() const tableStore = new TableStore({ publicHeight: 60, @@ -195,8 +198,13 @@ const tableStore = new TableStore({ title: formData.value.statisticalType.name, field: 'name', align: 'left', + type: 'checkbox', treeNode: true, width: 350, + formatter: function (row) { + console.log("🚀 ~ row:", row) + return 123//row.cellValue ? row.cellValue : '/' + } }, { title: '网络参数', @@ -291,9 +299,8 @@ const tableStore = new TableStore({ // tableStore.table.params.searchEndTime = tableHeaderRef.value.datePickerRef.timeValue[1] }, loadCallback: () => { - let treeData = [] - treeData = tree2List(tableStore.table.data) - tableStore.table.data = JSON.parse(JSON.stringify(treeData)) + tableStore.table.data = tree2List(tableStore.table.data, Math.random() * 1000) + tableStore.table.column[0].title = formData.value.statisticalType.name chartsRef.value && chartsRef.value.getTableStoreParams(tableStore.table.params) setTimeout(() => { @@ -301,22 +308,20 @@ const tableStore = new TableStore({ }, 0) } }) -const handleSearch = () => { - formData.value.searchBeginTime = datePickerRef.value.timeValue[0] - formData.value.searchEndTime = datePickerRef.value.timeValue[1] -} + tableStore.table.params.deptIndex = '' tableStore.table.params.statisticalType = [] tableStore.table.params.scale = [] tableStore.table.params.manufacturer = [] tableStore.table.params.loadType = [] provide('tableStore', tableStore) -const tree2List = (list: any, pid?: string) => { +const tree2List = (list: any, id?: string) => { //存储结果的数组 let arr: any = [] // 遍历 tree 数组 list.forEach((item: any) => { - // item.comFlag = item.comFlag == null ? 3 : item.comFlag + item.uPid = id + item.uId = Math.random() * 1000 item.valueOver = item.integrityData == 3.14159 ? 0 @@ -325,11 +330,10 @@ const tree2List = (list: any, pid?: string) => { : item.integrityData >= 60 && item.integrityData < 90 ? 2 : 3 - item.pid = pid // 判断item是否存在children if (!item.children) return arr.push(item) // 函数递归,对children数组进行tree2List的转换 - const children = tree2List(item.children, item.id) + const children = tree2List(item.children, item.uId) // 删除item的children属性 delete item.children // 把item和children数组添加至结果数组 @@ -340,7 +344,11 @@ const tree2List = (list: any, pid?: string) => { return arr } onMounted(() => {}) - +// 补招 +const makeUp = () => { + tableRef.value && tableRef.value.getRef().getCheckboxRecords() + console.log("🚀 ~ makeUp ~ tableRef.value.getRef().getCheckboxRecords():", tableRef.value.getRef().getCheckboxRecords()) +} watch( () => treeData.value, (val, oldVal) => { diff --git a/src/views/pqs/harmonicMonitoring/area/harmonicDistortionRate/index.vue b/src/views/pqs/harmonicMonitoring/area/harmonicDistortionRate/index.vue index 298ca7c5..3a19f9b5 100644 --- a/src/views/pqs/harmonicMonitoring/area/harmonicDistortionRate/index.vue +++ b/src/views/pqs/harmonicMonitoring/area/harmonicDistortionRate/index.vue @@ -74,10 +74,15 @@ - - - - + + + + @@ -86,7 +91,7 @@
@@ -164,7 +169,7 @@ const tableStore = new TableStore({ title: '电压等级', field: 'voltageLevel', align: 'center', - formatter: function (row) { + formatter: function (row) { return row.cellValue ? row.cellValue : '/' } }, @@ -195,10 +200,8 @@ const tableStore = new TableStore({ ], loadCallback: () => { - let treeData = [] - treeData = tree2List(tableStore.table.data) + tableStore.table.data = tree2List(tableStore.table.data, Math.random() * 1000) tableStore.table.column[0].title = tableStore.table.params.statisticalType.name - tableStore.table.data = JSON.parse(JSON.stringify(treeData)) chartsRef.value && chartsRef.value.getTableStoreParams(tableStore.table.params) setTimeout(() => { activeName.value == 0 && tableRef.value && tableRef.value.getRef().setAllTreeExpand(true) @@ -213,18 +216,18 @@ tableStore.table.params.loadType = [] tableStore.table.params.powerFlag = sign[0]?.algoDescribe || 0 tableStore.table.params.serverName = 'harmonicBoot' provide('tableStore', tableStore) -const tree2List = (list: any, pid?: string) => { +const tree2List = (list: any, id?: string) => { //存储结果的数组 let arr: any = [] // 遍历 tree 数组 list.forEach((item: any) => { - // item.comFlag = item.comFlag == null ? 3 : item.comFlag + item.uPid = id + item.uId = Math.random() * 1000 item.valueOver == 3.14159 ? 0 : item.valueOver >= 90 ? 1 : item.valueOver && item.valueOver < 90 ? 2 : 3 - item.pid = pid // 判断item是否存在children if (!item.children) return arr.push(item) // 函数递归,对children数组进行tree2List的转换 - const children = tree2List(item.children, item.id) + const children = tree2List(item.children, item.uId) // 删除item的children属性 delete item.children // 把item和children数组添加至结果数组 @@ -234,6 +237,7 @@ const tree2List = (list: any, pid?: string) => { // 返回结果数组 return arr } + onMounted(() => { tableStore.index() }) diff --git a/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue b/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue index 2e0cc06a..6f5ca848 100644 --- a/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue +++ b/src/views/pqs/harmonicMonitoring/area/onlinerate/index.vue @@ -1,7 +1,7 @@