Browse Source

Merge pull request 'dev-xjf' (#49) from dev-xjf into master

Reviewed-on: http://120.26.116.243:3000/root/alert-front/pulls/49
YKS
xiaojinfei 3 weeks ago
parent
commit
26a43c058c
  1. 2
      src/views/dashboard/demo/components/DynamicInfo.vue
  2. 6
      src/views/dashboard/demo/components/Operation.vue
  3. 59
      src/views/dashboard/demo/components/ParameterInfo.vue
  4. 2
      src/views/dashboard/demo/components/ProjectCard.vue
  5. 111
      src/views/dashboard/demo/components/demo.json
  6. 138
      src/views/dashboard/demo/components/demo_old.json
  7. 12
      src/views/dashboard/demo/index.vue

2
src/views/dashboard/demo/components/DynamicInfo.vue

@ -45,7 +45,7 @@ const ListItemMeta = List.Item.Meta
<style scoped>
::v-deep(.ant-card-body) {
height:80%;
height:50%;
padding:10px;
overflow-y: auto;
}

6
src/views/dashboard/demo/components/Operation.vue

@ -54,7 +54,7 @@ dayjs.extend(relativeTime)
<style scoped>
::v-deep(.ant-card-body) {
height:80%;
height:70%;
padding:5px;
overflow-y: auto;
}
@ -66,4 +66,8 @@ overflow-y: auto;
::v-deep(.ant-list-header) {
padding:5px
}
::v-deep(.ant-comment-inner) {
padding: 5px 0
}
</style>

59
src/views/dashboard/demo/components/ParameterInfo.vue

@ -1,6 +1,8 @@
<script lang="ts" setup>
import { Card } from 'ant-design-vue'
import { onBeforeUpdate, onMounted, onUpdated } from 'vue'
import { BasicTable, useTable } from '@/components/Table'
import { getExaNow } from '@/api/alert/exa'
const props = defineProps({
data: {
@ -9,16 +11,61 @@ const props = defineProps({
},
})
const [registerTable] = useTable({
dataSource: props.data.Content,
rowKey: 'id',
function getInterval(record: any) {
console.log(record)
if (record.originValue === '-')
return '-'
record.originValue = Number(record.originValue).toFixed(2)
const threshold = record.ResidualThreshold
console.log(threshold)
const originValue = record.originValue || 0
return `[${Number(originValue) - threshold},${Number(originValue) + threshold}]`
}
const [registerTable, { setTableData }] = useTable({
dataSource: [],
rowKey: 'ID',
size: 'small',
immediate: false,
columns: props.data.Columns,
useSearchForm: false,
showTableSetting: false,
showIndexColumn: false,
})
//
onBeforeUpdate(async () => {
const rr = [] as any[]
const rows = props.data.Content || []
for (const item of rows) {
try {
// ObservedPoint PredictedPoint
const param = item.PredictedPoint ? `${item.ObservedPoint},${item.PredictedPoint}` : `${item.ObservedPoint}`
const res = await getExaNow(param)
let origin: any = '-'
let predict: any = '-'
if (res != null) {
if (Array.isArray(res)) {
origin = res[0] ?? '-'
predict = res[1] ?? '-'
}
else if (typeof res === 'object') {
origin = res.originValue ?? res[0] ?? '-'
predict = res.predictValue ?? res[1] ?? '-'
}
else {
origin = String(res)
}
}
rr.push(Object.assign({}, item, { originValue: origin, predictValue: predict }))
}
catch (e) {
}
}
setTableData(rr)
})
</script>
<template>
@ -28,7 +75,11 @@ const [registerTable] = useTable({
更多
</a-button>
</template> -->
<BasicTable @register="registerTable" />
<BasicTable @register="registerTable">
<template #threshold="{ record }">
<span>{{ getInterval(record) }}</span>
</template>
</BasicTable>
</Card>
</template>

2
src/views/dashboard/demo/components/ProjectCard.vue

@ -19,7 +19,7 @@ const props = defineProps({
</a-button>
</template>
<CardGrid v-for="item in props.data.Content" :key="item.Point" class="!h-1/3 !w-full !md:w-1/2">
<CardGrid v-for="item in props.data.Content" :key="item.Point" class="!h-1/3 !w-full !md:w-1/4">
<!-- <Icon :icon="item.icon" :color="item.color" size="30" /> -->
<div class="text-center text-lg">
{{ item.Point }}

111
src/views/dashboard/demo/components/demo.json

@ -1,5 +1,4 @@
{
"title": "示例设备展示",
"LeftUp": {
"Header": "设备静态图",
"path": "svg/illustration.svg",
@ -7,26 +6,8 @@
},
"LeftMidUp": {
"Header": "故障诊断",
"Content": [{
"FaultDesc": "故障1故障1故障1故障1故障1",
"Point": "Diagnosis1"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
},
{
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}]
"Content": [{ "FaultDesc": "失速", "Point": "YFJ_A_GZ001" }, { "FaultDesc": "喘振", "Point": "YFJ_A_GZ002" }, { "FaultDesc": "动调故障", "Point": "YFJ_A_GZ003" }, { "FaultDesc": "风机动调机构漏油", "Point": "YFJ_A_GZ004" }, { "FaultDesc": "风机动调伺服连杆轴脱开", "Point": "YFJ_A_GZ005" }, { "FaultDesc": "电机前轴(驱动端)承润滑异常", "Point": "YFJ_A_GZ006" }, { "FaultDesc": "电机后轴(非驱动端)承润滑异常", "Point": "YFJ_A_GZ007" }, { "FaultDesc": "风机润滑油冷却系统异常", "Point": "YFJ_A_GZ008" }, { "FaultDesc": "电机前轴(驱动端)承瓦面磨损", "Point": "YFJ_A_GZ009" }, { "FaultDesc": "电机后轴(非驱动端)承瓦面磨损", "Point": "YFJ_A_GZ010" }, { "FaultDesc": "轴承箱轴承(润滑)冷却异常", "Point": "YFJ_A_GZ011" }, { "FaultDesc": "轴承箱前轴(驱动端)承损坏", "Point": "YFJ_A_GZ012" }, { "FaultDesc": "轴承箱中轴(推力轴承)承损坏", "Point": "YFJ_A_GZ013" }, { "FaultDesc": "轴承箱后轴(非驱动端)承损坏", "Point": "YFJ_A_GZ014" }, { "FaultDesc": "油站油箱内油温异常", "Point": "YFJ_A_GZ015" }, { "FaultDesc": "油站油泵1泵体损坏", "Point": "YFJ_A_GZ016" }, { "FaultDesc": "油站油泵2泵体损坏", "Point": "YFJ_A_GZ017" }, { "FaultDesc": "油站控制油外漏", "Point": "YFJ_A_GZ018" }, { "FaultDesc": "油站润滑油外漏", "Point": "YFJ_A_GZ019" }, { "FaultDesc": "电动机电源一相断线", "Point": "YFJ_A_GZ020" }, { "FaultDesc": "电动机定子绕组匝间短路", "Point": "YFJ_A_GZ021" }, { "FaultDesc": "油站油泵1电动机电源一相断线", "Point": "YFJ_A_GZ022" }, { "FaultDesc": "油站油泵1电动机定子绕组匝间短路", "Point": "YFJ_A_GZ023" }, { "FaultDesc": "油站油泵2电动机电源一相断线", "Point": "YFJ_A_GZ024" }, { "FaultDesc": "油站油泵2电动机定子绕组匝间短路", "Point": "YFJ_A_GZ025" }, { "FaultDesc": "风机电动机冷却装置故障", "Point": "YFJ_A_GZ026" }, { "FaultDesc": "风机电动机电流异常变大", "Point": "YFJ_A_GZ027" }, { "FaultDesc": "油站油泵1电动机风扇坏", "Point": "YFJ_A_GZ028" }, { "FaultDesc": "油站油泵2电动机风扇坏", "Point": "YFJ_A_GZ029" }, { "FaultDesc": "油站油泵1电动机机械卡死", "Point": "YFJ_A_GZ030" }, { "FaultDesc": "油站油泵2电动机机械卡死", "Point": "YFJ_A_GZ031" }, { "FaultDesc": "油站油泵1电动机过载", "Point": "YFJ_A_GZ032" }, { "FaultDesc": "油站油泵2电动机过载", "Point": "YFJ_A_GZ033" }, { "FaultDesc": "油泵1和其电机靠背轮脱落", "Point": "YFJ_A_GZ034" }, { "FaultDesc": "油泵2和其电机靠背轮脱落", "Point": "YFJ_A_GZ035" }, { "FaultDesc": "冷却/密封风机1叶轮磨损", "Point": "YFJ_A_GZ036" }, { "FaultDesc": "冷却/密封风机2叶轮磨损", "Point": "YFJ_A_GZ037" }, { "FaultDesc": "油站控制油过滤器堵", "Point": "YFJ_A_GZ038" }, { "FaultDesc": "油站润滑油过滤器堵", "Point": "YFJ_A_GZ039" }
]
},
"RightMidUp": {
"Header": "报警记录",
@ -43,8 +24,8 @@
"RightUp": {
"Header": "大模型-操作指导",
"Content": [{
"FaultDesc": "故障1",
"Guide": "如何处理故障1"
"FaultDesc": "引风机抢风",
"Guide": "A、B引风机动调在自动位,将电流小的风机动调切手动,开大动调,引风机电流增加?A,另一台引风机电流自动减少至?A,直至A、B引风机电流稳定。同时检查并确认引出口至烟囱烟道上档板处“全开”位,引风机出口余热换热器无堵塞后,逐步增加负荷,将A、B引风机电流、动调调至正常范围,投入引风机自动。若预警仍存在或工况改变易发生抢风,将A、B引风机动调设置一定偏置运行,维持A、B引风机电流稳定运行,根据实际能力带负荷。利用机组停机机会,对引风机出口烟道进行全面检查,尽可能降低烟道阻力,改善流动特性。"
}, {
"FaultDesc": "故障2",
"Guide": "如何处理故障2"
@ -52,78 +33,56 @@
},
"LeftDown": {
"Header": "生产流程",
"path": "svg/illustration.svg",
"Content": "/api/v1/assets/production_flow.svg"
"path": "svg/illustration.svg"
},
"RightDown": {
"Header": "参数信息",
"Columns": [{
"title": "序号",
"dataIndex": "序号",
"dataIndex": "ID",
"width": 40
}, {
"title": "描述",
"dataIndex": "描述",
"dataIndex": "Desc",
"width": 200
}, {
"title": "点号",
"dataIndex": "点号",
"width": 100
"dataIndex": "ObservedPoint",
"width": 150
},
{
"title": "单位",
"dataIndex": "Unit",
"width": 40
}, {
"title": "测量值",
"dataIndex": "测量值",
"width": 80
"dataIndex": "originValue",
"width": 65
}, {
"title": "预测值",
"dataIndex": "预测值",
"width": 100
"dataIndex": "predictValue",
"width": 65
}, {
"title": "安全区域",
"dataIndex": "安全区域",
"width": 140
"dataIndex": "threshold",
"width": 100,
"slots": { "customRender": "threshold" }
}],
"Content": [{
"序号": 1,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 2,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 3,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 4,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 5,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 6,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
"ID": 1,
"Desc": "A引风机电机前轴承温度1",
"ObservedPoint": "SYG1_10HNC10CT110",
"PredictedPoint": "SYG1_10HNC10CT110_CG",
"ResidualThreshold": 1.0,
"Unit": "℃"
}, {
"ID": 2,
"Desc": "A引风机电机前轴承温度2",
"ObservedPoint": "SYG1_10HNC10CT111",
"PredictedPoint": "SYG1_10HNC10CT111_CG",
"ResidualThreshold": 2.0,
"Unit": "℃"
}]
}
}

138
src/views/dashboard/demo/components/demo_old.json

@ -0,0 +1,138 @@
{
"title": "示例设备展示",
"LeftUp": {
"Header": "设备静态图",
"path": "svg/illustration.svg",
"Content": ""
},
"LeftMidUp": {
"Header": "故障诊断",
"Content": [{
"FaultDesc": "故障1故障1故障1故障1故障1",
"Point": "Diagnosis1"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
},
{
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}, {
"FaultDesc": "故障2",
"Point": "Diagnosis2"
}]
},
"RightMidUp": {
"Header": "报警记录",
"Content": [{
"Text": "故障1",
"StartTime": "Diagnosis1",
"Duration": 12.3
}, {
"Text": "故障1",
"StartTime": "Diagnosis1",
"Duration": 12.3
}]
},
"RightUp": {
"Header": "大模型-操作指导",
"Content": [{
"FaultDesc": "故障1",
"Guide": "如何处理故障1"
}, {
"FaultDesc": "故障2",
"Guide": "如何处理故障2"
}]
},
"LeftDown": {
"Header": "生产流程",
"path": "svg/illustration.svg",
"Content": "/api/v1/assets/production_flow.svg"
},
"RightDown": {
"Header": "参数信息",
"Columns": [{
"title": "序号",
"dataIndex": "序号",
"width": 40
}, {
"title": "描述",
"dataIndex": "描述",
"width": 200
}, {
"title": "点号",
"dataIndex": "点号",
"width": 100
}, {
"title": "测量值",
"dataIndex": "测量值",
"width": 80
}, {
"title": "预测值",
"dataIndex": "预测值",
"width": 100
}, {
"title": "安全区域",
"dataIndex": "安全区域",
"width": 140
}],
"Content": [{
"序号": 1,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 2,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 3,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 4,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 5,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}, {
"序号": 6,
"描述": "",
"点号": "",
"测量值": 0.0,
"预测值": 0.0,
"安全区域": ""
}]
}
}

12
src/views/dashboard/demo/index.vue

@ -22,13 +22,15 @@ setTimeout(() => {
<WorkbenchHeader :data="data" />
</template>
<div class="bg-[#f5f5f5]">
<div class="enter-y h-90 md:flex">
<div class="enter-y h-95 md:flex">
<StaticImg class="m-1 w-full md:w-1/4" :loading="loading" :data="data.LeftUp" />
<ProjectCard class="enter-y m-1 w-full md:w-1/4" :loading="loading" :data="data.LeftMidUp" />
<DynamicInfo :loading="loading" class="enter-y m-1 w-full md:w-1/4" :data="data.RightMidUp" />
<Operation class="m-1 w-full md:w-1/4" :loading="loading" :data="data.RightUp" />
<ProjectCard class="enter-y m-1 w-full md:w-1/2" :loading="loading" :data="data.LeftMidUp" />
<div class="enter-y w-full !mr-4 md:w-1/4">
<DynamicInfo :loading="loading" class="enter-y m-1 h-35 w-full" :data="data.RightMidUp" />
<Operation class="enter-y m-1 h-57 w-full" :loading="loading" :data="data.RightUp" />
</div>
</div>
<div class="enter-y h-95 md:flex">
<div class="enter-y h-98 md:flex">
<StaticImg class="m-1 w-full md:w-1/2" :loading="loading" :data="data.LeftDown" />
<ParameterInfo class="m-1 w-full md:w-1/2" :loading="loading" :data="data.RightDown" />
</div>

Loading…
Cancel
Save