From d008a10f22d7e3eb959e82326fb9ec146721b40f Mon Sep 17 00:00:00 2001 From: fengrong Date: Fri, 20 Dec 2024 17:36:05 +0800 Subject: [PATCH] =?UTF-8?q?=E6=95=85=E9=9A=9C=E4=B8=AD=E6=96=87=E6=8F=8F?= =?UTF-8?q?=E8=BF=B0=E7=BC=93=E5=AD=98=E5=88=B0localstroge?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ui/dasadmin/src/stores/faults.ts | 18 +++++++ ui/dasadmin/src/stores/interface/index.ts | 6 +++ ui/dasadmin/src/views/backend/home/home.vue | 39 +++++++-------- .../src/views/backend/home/windMatrixpage.vue | 21 +++----- ui/dasadmin/src/views/backend/login.vue | 49 ++++++++++++++++++- 5 files changed, 95 insertions(+), 38 deletions(-) create mode 100644 ui/dasadmin/src/stores/faults.ts diff --git a/ui/dasadmin/src/stores/faults.ts b/ui/dasadmin/src/stores/faults.ts new file mode 100644 index 00000000..35a36073 --- /dev/null +++ b/ui/dasadmin/src/stores/faults.ts @@ -0,0 +1,18 @@ +import { defineStore } from 'pinia' + +import type { Faults } from '/@/stores/interface' +export const useFaultsStore = defineStore('faults', { + state: (): Faults => ({ + data: {}, + keys: [] + }), + actions: { + setData(data: Faults['data']) { + this.data = data + }, + setKeys(keys: string[]) { + this.keys = keys + } + }, + persist: true +}) diff --git a/ui/dasadmin/src/stores/interface/index.ts b/ui/dasadmin/src/stores/interface/index.ts index 41d4e7d9..e3c81b23 100644 --- a/ui/dasadmin/src/stores/interface/index.ts +++ b/ui/dasadmin/src/stores/interface/index.ts @@ -135,3 +135,9 @@ export interface Enums { } keys: string[] } +export interface Faults { + data: { + [key: string]: { [k: string]: string } + } + keys: string[] +} diff --git a/ui/dasadmin/src/views/backend/home/home.vue b/ui/dasadmin/src/views/backend/home/home.vue index 4364a6fe..1c9f11ff 100644 --- a/ui/dasadmin/src/views/backend/home/home.vue +++ b/ui/dasadmin/src/views/backend/home/home.vue @@ -58,16 +58,18 @@ import { useRoute } from 'vue-router' import { getParamList } from '/@/api/backend/SystemParam/request' import { queryfaultCodeDict } from '/@/api/backend/theoreticalpowerCurve/request' import { useEnumStore } from '/@/stores/enums' +import { useFaultsStore } from '/@/stores/faults' import {equipList} from "/@/api/backend/realData/request"; const route = useRoute() const enumStore = useEnumStore() +const faultCodeDict = useFaultsStore() const d = new Date() const { t } = useI18n() let timer: any = null let myTable = ref() -const windList=ref([]) + const overviewSlotData= ref('') @@ -235,13 +237,17 @@ const StatusListData = () => { let color:any='' const state = getRealTimeState(item.attributeMap) let firsttriggeredcode=item.attributeMap.firsttriggeredcode + const key = `${item.madeinFactory}-${item.model}`; if (enumStore.keys.includes('FirstTriggeredCode')) { firsttriggeredcode = enumStore.data['FirstTriggeredCode'][firsttriggeredcode] } - /*if (malFunctionKeys.includes('FirstTriggeredCode')) { - firsttriggeredcode = malFunctionEnums?.[firsttriggeredcode] ?? firsttriggeredcode + if (faultCodeDict.keys.includes(key)) { + if (firsttriggeredcode == 0) { + firsttriggeredcode = ''; + } else { + firsttriggeredcode = faultCodeDict.data[key][firsttriggeredcode] ?? ''; + } } -*/ paramColorData.value.forEach((item, index) => { if (item.state == state) { color = item.color @@ -345,7 +351,6 @@ const StatusListData = () => { locked: item.attributeMap.locked, irotorspeed: item.attributeMap.irotorspeed, firsttriggeredcode:firsttriggeredcode, - //firsttriggeredcode:item.attributeMap.firsttriggeredcode, }, } }) @@ -358,36 +363,34 @@ const StatusListData = () => { } }) } -let malFunctionEnums: any = {} +// 添加响应式属性以存储故障代码字典 +/*const malFunctionEnums = ref<{ [key: string]: { [code: string]: string } }>({}); -/*const requestedParams = new Set(); +const requestedParams = new Set(); +const failedRequests = new Set(); const fetchData = async (item: any) => { - // 创建一个唯一的键来标识参数组合 const key = `${item.madeinFactory}-${item.model}`; - // 检查这个键是否已经在 Set 中 if (requestedParams.has(key)) { - console.log('Duplicate request detected, skipping...'); return; } - // 将键添加到 Set 中 requestedParams.add(key); try { - console.log({ madeinfactory: item.madeinFactory, model: item.model }) const response = await queryfaultCodeDict({ madeinfactory: item.madeinFactory, model: item.model }); if (response.code === 200) { const data: any = {}; response.data.forEach((item: any) => { data[item.code] = item.description; }); - malFunctionEnums = data; + malFunctionEnums.value[key] = data; } else { console.warn('查询故障代码字典失败:', response.message); + failedRequests.add(key); } } catch (error) { - console.error('请求出错:', error); + failedRequests.add(key); } };*/ @@ -428,14 +431,6 @@ onMounted(() => { res.data.map((item: any) => { deviceCode.value.push(item.code) }) - windList.value=res.data.map((item: any) => { - //fetchData(item) - return { - madeinfactory:item.madeinFactory, - model: item.model ?? '-', - } - }) - //getMalfunctionEnums() }) overviewList() diff --git a/ui/dasadmin/src/views/backend/home/windMatrixpage.vue b/ui/dasadmin/src/views/backend/home/windMatrixpage.vue index e2434b8e..700c92b4 100644 --- a/ui/dasadmin/src/views/backend/home/windMatrixpage.vue +++ b/ui/dasadmin/src/views/backend/home/windMatrixpage.vue @@ -11,7 +11,6 @@ '': item.standard==0, 'wind-offline': item.attributeMap.processedoperationmode == 33 }"> -
@@ -69,12 +68,12 @@
- - {{ getFaultDescription(item) }} + {{ item.attributeMap.firsttriggeredcode }} + 已锁定
@@ -412,13 +411,7 @@ const getSafeImagePath = (item, type) => { }; -const getFaultDescription=(item)=>{ - /*fetchData(item) - let firsttriggeredcode=item.attributeMap.firsttriggeredcode - if (malFunctionKeys.includes('FirstTriggeredCode')) { - firsttriggeredcode = malFunctionEnums?.[firsttriggeredcode] ?? firsttriggeredcode - } - return firsttriggeredcode*/ +/*const getFaultDescription=(item)=>{ const key = `${item.madeinFactory}-${item.model}`; if (failedRequests.has(key)) { return ''; @@ -459,17 +452,15 @@ const fetchData = async (item: any) => { response.data.forEach((item: any) => { data[item.code] = item.description; }); - //malFunctionEnums = data; malFunctionEnums[key] = data; } else { console.warn('查询故障代码字典失败:', response.message); failedRequests.add(key); } } catch (error) { - //console.error('查询故障代码字典失败', error); failedRequests.add(key); } -}; +};*/ diff --git a/ui/dasadmin/src/views/backend/login.vue b/ui/dasadmin/src/views/backend/login.vue index 0c5cef4e..fa70e881 100644 --- a/ui/dasadmin/src/views/backend/login.vue +++ b/ui/dasadmin/src/views/backend/login.vue @@ -92,6 +92,7 @@ import { editDefaultLang } from '/@/lang/index' import { useConfig } from '/@/stores/config' import { useAdminInfo } from '/@/stores/adminInfo' import { useEnumStore } from '/@/stores/enums' +import {useFaultsStore} from "/@/stores/faults" import { login } from '/@/api/backend' import { buildValidatorData } from '/@/utils/validate' import router from '/@/router' @@ -100,11 +101,15 @@ import toggleDark from '/@/utils/useDark' import { fullUrl } from '/@/utils/common' import { adminBaseRoutePath } from '/@/router/static/adminBase' import { getAllEnumData } from '/@/api/backend/Enumeration/request' +import {equipList} from "/@/api/backend/realData/request"; +import { queryfaultCodeDict } from '/@/api/backend/theoreticalpowerCurve/request' + let timer: number const config = useConfig() const adminInfo = useAdminInfo() const enumsStore = useEnumStore() +const FaultsStore = useFaultsStore() const isSmall = ref(window.screen.width < 620 ? true : false) @@ -192,7 +197,6 @@ const load = () => { state.captcha = 'data:image\/png;base64,' + res.data.img }) } - const getEnumsData = () => { getAllEnumData().then((res) => { if (res.success) { @@ -213,6 +217,49 @@ const getEnumsData = () => { } }) } +equipList({ objectType: 10002 }).then((res) => { + res.data.map((item: any) => { + fetchData(item) + return { + madeinfactory:item.madeinFactory, + model: item.model ?? '-', + } + }) +}) +const malFunctionEnums = ref<{ [key: string]: { [code: string]: string } }>({}); + +const requestedParams = new Set(); +const failedRequests = new Set(); +const fetchData = async (item: any) => { + const key = `${item.madeinFactory}-${item.model}`; + if (requestedParams.has(key)) { + return; + } + requestedParams.add(key); + const keys = requestedParams; + const response = await queryfaultCodeDict({ madeinfactory: item.madeinFactory, model: item.model }); + if (response.code === 200) { + const data: any = {}; + response.data.forEach((item: any) => { + data[item.code] = item.description; + }); + malFunctionEnums.value[key] = data; + const datas=malFunctionEnums.value + sessionStorage.setItem( + 'faultCodeDict', + JSON.stringify({ + datas, + keys:Array.from(requestedParams), + }) + ) + FaultsStore.setKeys(Array.from(requestedParams)) + FaultsStore.setData(datas) + } else { + console.warn('查询故障代码字典失败:', response.message); + failedRequests.add(key); + } + +}; const onSubmit = () => { state.submitLoading = true