After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 2.3 KiB |
@ -0,0 +1,279 @@ |
|||
<template> |
|||
<div style="width: 100%; height: 100%; overflow: hidden"> |
|||
<div style="width: 100%; height: 50px; display: flex"> |
|||
<img |
|||
v-if="selctLeft.type == 1" |
|||
style="width: 42px; height: 42px; margin-left: -6px" |
|||
src="../image/liftState/straightLadder.png" |
|||
alt="" /> |
|||
<img |
|||
v-else-if="selctLeft.type == 2" |
|||
style="width: 42px; height: 42px; margin-left: -6px" |
|||
src="../image/liftState/escalator.png" |
|||
alt="" /> |
|||
<div style="margin-left: 6px; font-size: 20px; line-height: 28px"> |
|||
{{ selctLeft.name }} |
|||
</div> |
|||
</div> |
|||
<!-- 左侧抽屉的关闭按钮 --> |
|||
<div class="drawer-box-out" @click="clickDrawer()"> |
|||
<DoubleRightOutlined class="drawer-icon" style="color: white" /> |
|||
</div> |
|||
<div style="width: 100%; height: calc(100% - 50px); display: flex; position: relative"> |
|||
<a-table |
|||
style="width: 100%" |
|||
:columns="column" |
|||
:data-source="dataSource" |
|||
:pagination="pagination"> |
|||
<template #bodyCell="{ record, column }"> |
|||
<template v-if="column.dataIndex === 'switch'"> |
|||
<a-tag |
|||
style="background-color: rgba(0, 0, 0, 0.5); width: 50px" |
|||
:style="{ |
|||
border: { |
|||
'0': '1px solid rgba(0, 255, 210, 1)', //2 |
|||
'1': '1px solid rgba(191, 205, 226, 1)', //关闭 |
|||
}[record.switch], |
|||
color: { |
|||
'0': 'rgba(0, 255, 210, 1)', //正常 |
|||
'1': 'rgba(191, 205, 226, 1)', //关闭 |
|||
}[record.switch], |
|||
}" |
|||
>{{ { '0': '开启', '1': '关闭' }[record.switch] }}</a-tag |
|||
> |
|||
</template> |
|||
<template v-if="column.dataIndex === 'state'"> |
|||
<a-tag |
|||
style="background-color: rgba(0, 0, 0, 0.5); width: 50px" |
|||
:style="{ |
|||
border: { |
|||
'0': '1px solid rgba(0, 255, 210, 1)', //正常 |
|||
'1': '1px solid rgba(255, 188, 70, 1)', //维修 |
|||
'2': '1px solid rgba(255, 118, 54, 1)', //故障 |
|||
'3': '1px solid rgba(243, 97, 99, 1)', //告警 |
|||
}[record.state], |
|||
color: { |
|||
'0': 'rgba(0, 255, 210, 1)', //正常 |
|||
'1': 'rgba(255, 188, 70, 1)', //维修 |
|||
'2': 'rgba(255, 118, 54, 1)', //故障 |
|||
'3': 'rgba(243, 97, 99, 1)', //告警 |
|||
}[record.state], |
|||
}" |
|||
>{{ { '0': '正常', '1': '维修', '2': '故障', '3': '告警' }[record.state] }}</a-tag |
|||
> |
|||
</template> |
|||
<template v-if="column.dataIndex === 'lift'"> |
|||
<a-tag |
|||
style="background-color: rgba(0, 0, 0, 0.5); width: 50px" |
|||
:style="{ |
|||
border: { |
|||
'0': '1px solid rgba(0, 255, 210, 1)', //上行 |
|||
'1': '1px solid rgba(0, 255, 210, 1)', //下行 |
|||
'2': '1px solid rgba(255, 188, 70, 1)', //暂停 |
|||
'3': '1px solid rgba(243, 97, 99, 1)', //急停 |
|||
'4': '1px solid rgba(167, 66, 255, 1)', //未知 |
|||
}[record.lift], |
|||
color: { |
|||
'0': 'rgba(0, 255, 210, 1)', //上行 |
|||
'1': 'rgba(0, 255, 210, 1)', //下行 |
|||
'2': 'rgba(255, 188, 70, 1)', //暂停 |
|||
'3': 'rgba(243, 97, 99, 1)', //急停 |
|||
'4': 'rgba(167, 66, 255, 1)', //未知 |
|||
}[record.lift], |
|||
}" |
|||
>{{ |
|||
{ |
|||
'0': '上行', //上行 |
|||
'1': '下行', //下行 |
|||
'2': '暂停', //暂停 |
|||
'3': '急停', //急停 |
|||
'4': '未知', //未知 |
|||
}[record.lift] |
|||
}}</a-tag |
|||
> |
|||
</template> |
|||
</template> |
|||
</a-table> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script setup lang="ts"> |
|||
import { DoubleRightOutlined } from '@ant-design/icons-vue'; |
|||
|
|||
import { ref } from 'vue'; |
|||
const emit = defineEmits(['clickDrawer']); |
|||
|
|||
const selctLeft = ref({}); |
|||
// 改变页码 |
|||
const handleChangePage = (current: number, pageSize: number) => { |
|||
pagination.value.current = current; |
|||
pagination.value.pageSize = pageSize; |
|||
}; |
|||
|
|||
const dataSource = ref([ |
|||
{ time: '2022-03-01 10:00:00', state: '0', switch: '0', lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '1', switch: 0, lift: 2 }, |
|||
{ time: '2022-03-01 10:00:00', state: '2', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '3', switch: 0, lift: 0 }, |
|||
{ time: '2022-03-01 10:00:00', state: '1', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '3', switch: 0, lift: 3 }, |
|||
{ time: '2022-03-01 10:00:00', state: '2', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '0', switch: 0, lift: 4 }, |
|||
{ time: '2022-03-01 10:00:00', state: '1', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '3', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '2', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '2', switch: 0, lift: 0 }, |
|||
{ time: '2022-03-01 10:00:00', state: '1', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '3', switch: 0, lift: 3 }, |
|||
{ time: '2022-03-01 10:00:00', state: '1', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '0', switch: 0, lift: 4 }, |
|||
{ time: '2022-03-01 10:00:00', state: '2', switch: 0, lift: 1 }, |
|||
{ time: '2022-03-01 10:00:00', state: '1', switch: 0, lift: 2 }, |
|||
{ time: '2022-03-01 10:00:00', state: '2', switch: 0, lift: 1 }, |
|||
]); |
|||
const pagination = ref({ |
|||
total: dataSource.value.length, |
|||
size: 'small', |
|||
current: 1, |
|||
pageSize: 10, |
|||
showQuickJumper: false, |
|||
showLessItems: false, |
|||
showSizeChanger: false, |
|||
responsive: true, |
|||
showTotal: (total: number, range: any) => (total && range ? `` : ''), //显示第${range[0]}到${range[1]}条记录,共 ${total} 条记录 |
|||
onChange: handleChangePage, |
|||
}); |
|||
const column = [ |
|||
{ |
|||
title: '执行时间', |
|||
dataIndex: 'time', |
|||
key: 'time', |
|||
width: 140, |
|||
}, |
|||
{ |
|||
title: '开关', |
|||
dataIndex: 'switch', |
|||
key: 'switch', |
|||
width: 80, |
|||
}, |
|||
{ |
|||
title: '状态', |
|||
dataIndex: 'state', |
|||
key: 'state', |
|||
width: 80, |
|||
}, |
|||
{ |
|||
title: '模式', |
|||
dataIndex: 'lift', |
|||
key: 'lift', |
|||
width: 80, |
|||
}, |
|||
]; |
|||
const toggle = (data: any) => { |
|||
pagination.value.current = 1; |
|||
selctLeft.value = data; |
|||
}; |
|||
const clickDrawer = () => { |
|||
emit('clickDrawer'); |
|||
}; |
|||
defineExpose({ |
|||
toggle, |
|||
}); |
|||
</script> |
|||
<style scoped lang="less"> |
|||
:deep(.ant-table-thead > tr) { |
|||
height: 30px !important; |
|||
} |
|||
:deep(.ant-table-tbody > tr) { |
|||
height: 30px !important; |
|||
} |
|||
:deep(.ant-table-thead > tr > th) { |
|||
background-color: #1a2230; |
|||
border: 1px solid rgba(163, 192, 243, 0.8); |
|||
color: white; |
|||
text-align: center; |
|||
font-weight: normal !important; |
|||
padding: 12px !important; |
|||
} |
|||
:deep(.ant-table-tbody > tr > td) { |
|||
background-color: rgba(0, 0, 0, 0.9) !important; |
|||
color: white; |
|||
border: 1px solid rgba(163, 192, 243, 0.8); |
|||
text-align: center; |
|||
padding: 12px !important; |
|||
} |
|||
:deep(.ant-table-row:hover td) { |
|||
background: rgba(0, 0, 0, 0.9) !important; |
|||
cursor: pointer; |
|||
} |
|||
:deep(.ant-tabs-tab-btn) { |
|||
font-size: 20px; |
|||
font-weight: bold; |
|||
color: #fff !important; |
|||
} |
|||
//分页 |
|||
:deep(.ant-pagination-item) { |
|||
background-color: rgba(0, 0, 0, 1) !important; |
|||
border: 1px solid rgba(147, 200, 243, 1) !important; |
|||
border-radius: 2px !important; |
|||
margin: 0 8px !important; |
|||
} |
|||
:deep(.ant-pagination-item a) { |
|||
color: rgba(12, 140, 246, 1) !important; |
|||
} |
|||
:deep(.ant-pagination-item-active) { |
|||
border-radius: 2px !important; |
|||
background: rgba(12, 140, 246, 1) !important; |
|||
} |
|||
:deep(.ant-pagination-item-active a) { |
|||
color: white !important; |
|||
} |
|||
:deep(.ant-pagination-prev) { |
|||
background-color: rgba(0, 0, 0, 1) !important; |
|||
border: 1px solid rgba(147, 200, 243, 1) !important; |
|||
} |
|||
:deep(.ant-pagination-next) { |
|||
background-color: rgba(0, 0, 0, 1) !important; |
|||
border: 1px solid rgba(147, 200, 243, 1) !important; |
|||
} |
|||
:deep(.anticon) { |
|||
color: rgba(12, 140, 246, 1) !important; |
|||
} |
|||
:deep(.ant-table-pagination) { |
|||
display: flex; |
|||
position: absolute; |
|||
bottom: 0; |
|||
right: 0; |
|||
} |
|||
:deep(.ant-spin-container) { |
|||
height: 100% !important; |
|||
} |
|||
:deep(.ant-spin-nested-loading) { |
|||
height: 100% !important; |
|||
} |
|||
//分页 在右边 取消 |
|||
// :deep(.ant-table-pagination-right) { |
|||
// justify-content: normal !important; |
|||
// } |
|||
// 抽屉关闭按钮 |
|||
.drawer-box-out { |
|||
width: 24px; |
|||
height: 24px; |
|||
border-radius: 2px; |
|||
position: absolute; |
|||
right: 576px; |
|||
z-index: 2; |
|||
top: 50%; |
|||
margin: auto; |
|||
background: #268aff; |
|||
display: flex; |
|||
justify-content: center; |
|||
align-items: center; |
|||
cursor: pointer; |
|||
border-radius: 0 8px 8px 0; |
|||
color: white; |
|||
} |
|||
:deep(.anticon) { |
|||
color: #fff !important; |
|||
} |
|||
</style> |