Merge remote-tracking branch 'origin/main'

This commit is contained in:
fengrong 2024-11-19 16:41:26 +08:00
commit 1a773b1208
7 changed files with 106 additions and 14 deletions

View File

@ -48,7 +48,10 @@ export const delModelReq = (data: DelModelType) => {
url: '/api/equipment/model/delete',
method: 'post',
data: data,
})
},
{
showErrorMessage: false
})
}
export const getModelAttributeListReq = (data: GetModelAttributeType) => {
@ -156,7 +159,7 @@ export const getRealValueListReq = (data: { deviceId: string, attributes?: strin
})
}
export const getRealValueRangeReq = (data: { startTime: number, endTime: number, devices: { deviceId: string, attributes?: string[] }[],interval?:string }) => {
export const getRealValueRangeReq = (data: { startTime: number, endTime: number, devices: { deviceId: string, attributes?: string[] }[], interval?: string }) => {
return createAxios<never, RequestReturnType<any>>({
url: '/api/data/history',
method: 'post',

View File

@ -48,4 +48,15 @@ export const downloadFileReq = (data: {
}, {
reductDataFormat: false
})
}
export const getFileKeyEnumsReq = (data: {
madeinfactory: string
model: string
}) => {
return createAxios<never, Promise<ReqReturnType<any>>>({
url: '/api/plc/queryPlcDesc',
method: 'post',
data
})
}

View File

@ -49,4 +49,15 @@ export const downloadFileReq = (data: {
}, {
reductDataFormat: false
})
}
export const getFileKeyEnumsReq = (data: {
madeinfactory: string
model: string
}) => {
return createAxios<never, Promise<ReqReturnType<any>>>({
url: '/api/fdr/queryFdrDesc',
method: 'post',
data
})
}

View File

@ -239,6 +239,11 @@
</el-select>
</el-form-item>
</template>
<el-form-item v-if="attributeForm.attributeType === 140" :label="ModelAttributeFieldsEnums['level']" prop="level">
<el-select v-model="attributeForm.level" :placeholder="'请选择' + ModelAttributeFieldsEnums['level']">
<el-option v-for="v in attributeFormDataLevelOptions" :key="v.value" :label="v.label" :value="v.value"></el-option>
</el-select>
</el-form-item>
</div>
<div class="formRowStyle">
<el-form-item :label="ModelAttributeFieldsEnums['porder']" prop="porder">
@ -768,6 +773,11 @@ const attributeFormDataTypeOptions: { value: attributeTypeDataType }[] = [
{ value: 'int' },
{ value: 'bigint' },
]
const attributeFormDataLevelOptions = [
{ value: 0, label: '提示' },
{ value: 1, label: '告警' },
{ value: 2, label: '故障' },
]
const originAttributeForm: AddModelAttributeType & UpdateModelAttributeType = {
id: null,
iotModelId: '',
@ -780,6 +790,7 @@ const originAttributeForm: AddModelAttributeType & UpdateModelAttributeType = {
dataType: '',
visible: true,
unit: '',
level: undefined,
revision: 1,
createdBy: undefined,
createdTime: undefined,

View File

@ -67,6 +67,7 @@ export enum ModelAttributeFieldsEnums {
'dataType' = '数据类型',
'visible' = '是否可见',
'unit' = '单位',
'level' = '告警等级',
'revision' = '乐观锁',
'createdBy' = '创建人',
'createdTime' = '创建时间',
@ -111,6 +112,7 @@ export type AddModelAttributeType = {
subSystem: string
dataType: attributeTypeDataType | ''
unit: string
level?: 0 | 1 | 2
visible: 0 | 1 | boolean
revision: number
createdBy?: string

View File

@ -136,7 +136,7 @@
import { ref, reactive, computed, onMounted, nextTick, onUnmounted } from 'vue'
import { dayjs, ElMessage, FormInstance, TreeInstance } from 'element-plus'
import { Search, Setting } from '@element-plus/icons-vue'
import { getLogRecordListReq, setConfigReq, previewFileReq, downloadFileReq } from '/@/api/backend/logRecord/request'
import { getLogRecordListReq, setConfigReq, previewFileReq, downloadFileReq, getFileKeyEnumsReq } from '/@/api/backend/logRecord/request'
import { equipList } from '/@/api/backend/temperature/request'
import * as echarts from 'echarts'
import { tableItemData } from './type'
@ -189,15 +189,19 @@ const curTreeData = ref<{
id: string
code: string
options: any
model: string
madeinFactory: string
children?: any[]
}>({
label: '风机列表',
id: '0',
code: '0',
model: '',
madeinFactory: '',
options: {},
})
const handleNodeClick = (target: { label: string; id: string; code: string; options: any }) => {
const handleNodeClick = (target: { label: string; id: string; code: string; model: string; madeinFactory: string; options: any }) => {
curTreeData.value = target
if (target.id === '0') return
getListForAirBlower()
@ -211,6 +215,8 @@ const getTreeDataList = () => {
label: item.name,
code: item.code,
id: item.id,
model: item.model,
madeinFactory: item.madeinFactory,
options: item.options ? JSON.parse(item.options).plcFormat : {},
}
})
@ -372,7 +378,9 @@ const setAirBlowerConfig = () => {
const previewFileDialogVisible = ref(false)
const readFile = (data: tableItemData) => {
previewFileDialogVisible.value = true
getFileData(data.path)
getFileKeyEnum().finally(() => {
getFileData(data.path)
})
}
const downloadFile = (data: tableItemData) => {
downloadFileReq({ url: data.path }).then((res) => {
@ -415,6 +423,8 @@ const previewSearchTree = (val: string) => {
const filterData = originPreviewTreeData.filter((item: any) => regex.test(item.label))
previewTreeData.value = filterData
nextTick(() => {
// console.log('-----',selectPreviewTree);
previewTreeRef.value?.setCheckedKeys(selectPreviewTree)
})
}
@ -433,6 +443,7 @@ const handleCheckChange = (data: any, state: boolean) => {
previewChartInstance && previewChartInstance.clear()
if (state) {
selectPreviewTree.push(data.key)
// console.log('-----',selectPreviewTree);
} else {
const index = selectPreviewTree.findIndex((item: string) => item === data.key)
selectPreviewTree.splice(index, 1)
@ -491,7 +502,7 @@ const initPreviewChart = () => {
grid: {
top: 50,
right: 23,
bottom: 10,
bottom: 50,
left: 18,
containLabel: true,
},
@ -517,7 +528,7 @@ const initPreviewChart = () => {
color: '#4E5969',
interval: 'auto',
formatter: function (value: any) {
return value.slice(0, 10)
return value.slice(11)
},
//rotate: 45
},
@ -599,7 +610,7 @@ const getFileData = (url: string) => {
})
} else {
data.push({
label: item,
label: fileKeyEnums?.[item] ?? item,
key: item,
isLeaf: true,
})
@ -612,6 +623,22 @@ const getFileData = (url: string) => {
})
}
const fileKeyEnums: any = {}
const getFileKeyEnum = () => {
return new Promise((resolve) => {
getFileKeyEnumsReq({
madeinfactory: curTreeData.value.madeinFactory,
model: curTreeData.value.model,
}).then((res) => {
if (res.success) {
res.data.forEach((item: any) => {
fileKeyEnums[item.variable] = item.description
})
resolve(true)
}
})
})
}
onMounted(() => {
getTreeDataList().then((data: any) => {
treeRef.value && treeRef.value.setCurrentKey(data.id, true)

View File

@ -139,7 +139,7 @@
import { ref, reactive, computed, onMounted, nextTick, onUnmounted } from 'vue'
import { dayjs, ElMessage, FormInstance, TreeInstance } from 'element-plus'
import { Search, Setting } from '@element-plus/icons-vue'
import { getMalFunctionListReq, setConfigReq, previewFileReq, downloadFileReq } from '/@/api/backend/malfunction/request'
import { getMalFunctionListReq, setConfigReq, previewFileReq, downloadFileReq, getFileKeyEnumsReq } from '/@/api/backend/malfunction/request'
import { equipList } from '/@/api/backend/temperature/request'
import * as echarts from 'echarts'
import { tableItemData } from './type'
@ -191,16 +191,20 @@ const curTreeData = ref<{
label: string
id: string
code: string
model: string
madeinFactory: string
options: any
children?: any[]
}>({
label: '风机列表',
id: '0',
code: '0',
model: '',
madeinFactory: '',
options: {},
})
const handleNodeClick = (target: { label: string; id: string; code: string; options: any }) => {
const handleNodeClick = (target: { label: string; id: string; code: string; model: string; madeinFactory: string; options: any }) => {
curTreeData.value = target
if (target.id === '0') return
getListForAirBlower()
@ -214,6 +218,8 @@ const getTreeDataList = () => {
label: item.name,
code: item.code,
id: item.id,
model: item.model,
madeinFactory: item.madeinFactory,
options: item.options ? JSON.parse(item.options).fdrFormat : {},
}
})
@ -374,7 +380,9 @@ const setAirBlowerConfig = () => {
const previewFileDialogVisible = ref(false)
const readFile = (data: tableItemData) => {
previewFileDialogVisible.value = true
getFileData(data.path)
getFileKeyEnum().finally(() => {
getFileData(data.path)
})
}
const downloadFile = (data: tableItemData) => {
downloadFileReq({ url: data.path }).then((res) => {
@ -499,7 +507,7 @@ const initPreviewChart = () => {
grid: {
top: 50,
right: 23,
bottom: 10,
bottom: 50,
left: 18,
containLabel: true,
},
@ -525,7 +533,7 @@ const initPreviewChart = () => {
color: '#4E5969',
interval: 'auto',
formatter: function (value: any) {
return value.slice(0, 10)
return value.slice(11)
},
//rotate: 45
},
@ -600,6 +608,8 @@ const getFileData = (url: string) => {
previewChartData = res.data
const attrName = Object.keys(res.data)
const data: any = []
console.log(fileKeyEnums);
attrName.forEach((item) => {
if (item === 'TimeStamp') {
previewChartData.TimeStamp = previewChartData.TimeStamp.map((item: any) => {
@ -607,7 +617,7 @@ const getFileData = (url: string) => {
})
} else {
data.push({
label: item,
label: fileKeyEnums?.[item] ?? item,
key: item,
isLeaf: true,
})
@ -619,6 +629,23 @@ const getFileData = (url: string) => {
})
}
const fileKeyEnums: any = {}
const getFileKeyEnum = () => {
return new Promise((resolve) => {
getFileKeyEnumsReq({
madeinfactory: curTreeData.value.madeinFactory,
model: curTreeData.value.model,
}).then((res) => {
if (res.success) {
res.data.forEach((item: any) => {
fileKeyEnums[item.variable] = item.description
})
resolve(true)
}
})
})
}
onMounted(() => {
getTreeDataList().then((data: any) => {
treeRef.value && treeRef.value.setCurrentKey(data.id, true)