Merge remote-tracking branch 'origin/main'

This commit is contained in:
谷成伟 2024-12-05 17:17:03 +08:00
commit 6eedf5826f
5 changed files with 70 additions and 36 deletions

View File

@ -327,7 +327,7 @@ import { useRoute, useRouter } from 'vue-router'
import Overview from './overview.vue'
import { TableInstance } from 'element-plus'
import { dayjs, ElMessage, ElMessageBox } from 'element-plus'
import { getRealTimeState, getCutDecimalsValue } from '/@/views/backend/equipment/airBlower/utils'
import { getRealTimeState, getCutDecimalsValue, malFunctionKeys } from '/@/views/backend/equipment/airBlower/utils'
import { sendCommandReq, sendManualCommandReq } from '/@/api/backend/control/request'
import { getAlarmListReq } from '/@/api/backend/alarms/request'
import { queryfaultCodeDict } from '/@/api/backend/theoreticalpowerCurve/request'
@ -1037,7 +1037,7 @@ const createRealTimeData = async () => {
val = enumStore.data[item.attributeCode][val]
}
if (malFunctionKeys.includes(item.attributeCode)) {
val = malFunctionEnums?.[item.attributeCode] ?? val
val = malFunctionEnums?.[val] ?? val
}
if (sigleDataKeys.includes(item.attributeCode.toLowerCase())) {
realTimeDataForSingle.value[item.attributeCode.toLowerCase()] = val === '-' ? val : val
@ -1345,29 +1345,16 @@ const getAlarmList = () => {
})
}
const malFunctionKeys = [
'ActiveStatusCode01',
'ActiveStatusCode02',
'ActiveStatusCode03',
'ActiveStatusCode04',
'ActiveStatusCode05',
'ActiveStatusCode06',
'ActiveStatusCode07',
'ActiveStatusCode08',
'FirstTriggeredCode',
]
const malFunctionEnums: any = {}
let malFunctionEnums: any = {}
const getMalfunctionEnums = () => {
const curWindBlower = airBlowerList.value.find((item) => item.irn === route.query.irn)
console.log(curWindBlower)
queryfaultCodeDict({ madeinfactory: curWindBlower!.madeinfactory, model: curWindBlower!.model }).then((res) => {
if (res.code == 200) {
const data: any = {}
res.data.forEach((item: any) => {
data[item.code] = item.description
})
malFunctionEnums = data
}
})
}

View File

@ -35,4 +35,16 @@ export const getEnumToValue = (key: string, value: any) => {
} else {
return value
}
}
}
export const malFunctionKeys = [
'ActiveStatusCode01',
'ActiveStatusCode02',
'ActiveStatusCode03',
'ActiveStatusCode04',
'ActiveStatusCode05',
'ActiveStatusCode06',
'ActiveStatusCode07',
'ActiveStatusCode08',
'FirstTriggeredCode',
]

View File

@ -119,9 +119,9 @@
<el-col :span="12">
<el-form-item label="生产厂家:">
<el-input
:disabled="hasShowSelect"
:disabled="hasSetOfMachines"
v-model="editDeviceData.madeinFactory"
:placeholder="hasShowSelect ? '请选择规格型号' : '请输入生产厂家'"
:placeholder="hasSetOfMachines ? '请选择规格型号' : '请输入生产厂家'"
clearable
/>
</el-form-item>
@ -129,7 +129,7 @@
<el-col :span="12">
<el-form-item label="规格型号:">
<el-select
v-if="hasShowSelect"
v-if="hasSetOfMachines"
v-model="editDeviceData.model"
placeholder="请选择规格型号"
style="width: 200px"
@ -226,11 +226,12 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="editDeviceData.objectType == '风电场' ? '装机容量(MW):' : '额定容量(MW):'">
<el-form-item :label="hasSetOfMachines ? '额定容量(MW):' : '装机容量(MW):'">
<el-input-number
:disabled="hasSetOfMachines"
style="width: 200px"
:controls="false"
:placeholder="editDeviceData.objectType == '风电场' ? '请输入装机容量' : '请输入额定容量'"
:placeholder="hasSetOfMachines ? '请输入额定容量' : '请输入装机容量'"
v-model="editDeviceData.nominalCapacity"
/>
</el-form-item>
@ -299,9 +300,9 @@
<el-col :span="12">
<el-form-item label="生产厂家:">
<el-input
:disabled="hasShowSelect"
:disabled="hasSetOfMachines"
v-model="editAddDeviceData.madeinFactory"
:placeholder="hasShowSelect ? '请选择规格型号' : '请输入生产厂家'"
:placeholder="hasSetOfMachines ? '请选择规格型号' : '请输入生产厂家'"
clearable
/>
</el-form-item>
@ -309,7 +310,7 @@
<el-col :span="12">
<el-form-item label="规格型号:">
<el-select
v-if="hasShowSelect"
v-if="hasSetOfMachines"
v-model="editAddDeviceData.model"
placeholder="请选择规格型号"
style="width: 200px"
@ -411,11 +412,12 @@
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item :label="editAddDeviceData.objectType == '风电场' ? '装机容量(MW):' : '额定容量(MW):'">
<el-form-item :label="hasSetOfMachines ? '额定容量(MW):' : '装机容量(MW):'">
<el-input-number
:disabled="hasSetOfMachines"
style="width: 200px"
:controls="false"
:placeholder="editAddDeviceData.objectType == '风电场' ? '请输入装机容量' : '请输入额定容量'"
:placeholder="hasSetOfMachines ? '请输入额定容量' : '请输入装机容量'"
v-model="editAddDeviceData.nominalCapacity"
/>
</el-form-item>
@ -487,6 +489,8 @@
:iotModelId="measureData.iotModelId"
:autoUpdate="measureData.autoUpdate"
:attributeType="measureData.measureType"
:madein-factory="measureData.madeinFactory"
:model="measureData.model"
></MeasurementPage>
</div>
</el-dialog>
@ -731,7 +735,7 @@ const addDeviceList = () => {
editAddDeviceData.iotModelId = ''
editAddDeviceData.belongLine = ''
editAddDeviceData.standard = 0
editAddDeviceData.nominalCapacity = null
editAddDeviceData.nominalCapacity = ''
}
//
@ -754,23 +758,22 @@ const editDeviceData = reactive({
id: '',
belongLine: '',
standard: 0,
nominalCapacity: null,
nominalCapacity: '',
})
const hasShowSelect = computed(() => {
const hasSetOfMachines = computed(() => {
return queryParameter.value.equipmentTypeId === 10002
})
const modelList = ref<{ model: string; madeinFactory: string }[]>([])
const modelList = ref<{ model: string; madeinFactory: string; nominalCapacity: string }[]>([])
const getModelList = () => {
theoreticalpowerCurveList().then((res) => {
if (res.rows) {
console.log(res)
modelList.value = (res.rows as any[]).map((item: any) => {
return {
model: item.model,
madeinFactory: item.madeinfactory,
nominalCapacity: item.nominalCapacity,
}
})
}
@ -778,9 +781,11 @@ const getModelList = () => {
}
const selectEditModel = (value: string) => {
editDeviceData.madeinFactory = modelList.value.find((item) => item.model == value)?.madeinFactory || ''
editDeviceData.nominalCapacity = modelList.value.find((item) => item.model == value)?.nominalCapacity || ''
}
const selectAddModel = (value: string) => {
editAddDeviceData.madeinFactory = modelList.value.find((item) => item.model == value)?.madeinFactory || ''
editAddDeviceData.nominalCapacity = modelList.value.find((item) => item.model == value)?.nominalCapacity || ''
}
const size = ref<'default' | 'large' | 'small'>('default')
@ -938,7 +943,7 @@ const editAddDeviceData = reactive({
iotModelId: '',
belongLine: '',
standard: 0,
nominalCapacity: null,
nominalCapacity: '',
})
const addhandleSwitchChange = (value: any) => {
editAddDeviceData.standard = value ? 1 : 0
@ -1060,16 +1065,22 @@ const measureData = reactive<{
iotModelId: string
autoUpdate: boolean
measureType: ModelAttributeType
madeinFactory: string
model: string
}>({
deviceId: '',
iotModelId: '',
autoUpdate: false,
measureType: 138,
madeinFactory: '',
model: '',
})
const showMeasure = ref(false)
const openMeasure = (data: any) => {
measureData.deviceId = data.row.id
measureData.iotModelId = data.row.iotModelId
measureData.madeinFactory = data.row.madeinFactory
measureData.model = data.row.model
if (measureData.iotModelId) {
showMeasure.value = true
} else {

View File

@ -89,16 +89,21 @@ import { getModelAttributeListReq, getRealValueListReq } from '/@/api/backend/de
import * as echarts from 'echarts'
import { getRealValueRangeReq } from '/@/api/backend/deviceModel/request'
import { useEnumStore } from '/@/stores/enums'
import { queryfaultCodeDict } from '/@/api/backend/theoreticalpowerCurve/request'
import { malFunctionKeys} from '/@/views/backend/equipment/airBlower/utils'
const enumStore = useEnumStore()
const props = withDefaults(
defineProps<{ iotModelId: string; deviceId: string; show: boolean; autoUpdate: boolean; attributeType: ModelAttributeType }>(),
defineProps<{ iotModelId: string; deviceId: string; show: boolean; autoUpdate: boolean; attributeType: ModelAttributeType;model:string;madeinFactory:string }>(),
{
iotModelId: '',
deviceId: '',
show: false,
autoUpdate: false,
attributeType: 138,
model:'',
madeinFactory:''
}
)
@ -204,6 +209,20 @@ const getRealValueList = (data: { deviceId: string; attributes: string[] }, list
})
}
let malFunctionEnums: any = {}
const getMalfunctionEnums = () => {
queryfaultCodeDict({ madeinfactory: props.madeinFactory, model: props.model }).then((res) => {
if (res.code == 200) {
const data: any = {}
res.data.forEach((item: any) => {
data[item.code] = item.description
})
malFunctionEnums = data
}
})
}
const getCompleteData = () => {
getAttributeList()
.then(({ data, codeList }: any) => {
@ -217,6 +236,9 @@ const getCompleteData = () => {
if (enumStore.keys.includes(item.attributeCode)) {
realValItem = enumStore.data[item.attributeCode][realValItem]
}
if(malFunctionKeys.includes(item.attributeCode)){
realValItem = malFunctionEnums?.[realValItem] ?? realValItem
}
return {
...item,
realTimeValue: realValItem
@ -505,6 +527,7 @@ watch(
(newVal) => {
if (newVal) {
getCompleteData()
getMalfunctionEnums()
searchOptions.datePickerValue = shortcuts[0].value()
} else {
autoUpdateTimer.value && clearInterval(autoUpdateTimer.value)

View File

@ -613,6 +613,7 @@ const handleCurrentChange = (val: any) => {
getpowerCurve()
getFaultRecording()
getRunLog()
getfaultCodeDict()
}
const getpowerCurve = () => {
currentRow.value = currentRow.value ?? theoreticalTableData.value[0]