You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
duoji-frontend/src/views/plcStatus.vue

140 lines
3.7 KiB
Vue

<template>
<div>
<a-table
:columns="columns"
:row-key="record => record.id"
:data-source="data"
:pagination="pagination"
@change="handleGetCameraIoList"
>
<span slot="status" slot-scope="text">
{{text == false ? text ='连接异常':text ='没有PLC连接异常'}}
</span>
<span slot="action" slot-scope="text, record">
<a @click="reconnection(record)">重新连接</a>
</span>
</a-table>
</div>
</template>
<script>
const columns = [
{
title: '序号',
// dataIndex: 'id',
customRender: (text, record, index) => {
return (
(1 - 1) * 10 + index + 1
)
}
},
{
title: 'PLCID',
dataIndex: 'plcId',
},
{
title: '状态',
dataIndex: 'status',
scopedSlots: {customRender: 'status'}
},
{
title: '异常时间',
dataIndex: 'time',
},
{
title: '操作',
dataIndex: 'action',
scopedSlots: {customRender: 'action'}
},
];
export default {
data() {
return {
pageNum: 1,
pageSize: 10,
data: [],
pagination: {
total: 0,
current: 1,
defaultPageSize: 10, // 默认每页显示数量
showTotal: total => `共 ${total} 条数据`, // 显示总数
showSizeChanger: true, // 显示可改变每页数量
pageSizeOptions: ['10', '20', '30'],
onShowSizeChange: (current, pageSize) => this.pageSize = pageSize // 改变每页数量时更新显示
},
loading: false,
columns,
visible: false,
modelType: '',
modelData: [],
};
},
computed: {},
mounted() {
this.handleGetCameraIoList()
},
methods: {
handleGetCameraIoList(pagination) {
console.log(pagination)
if (pagination) {
this.pagination.current = pagination.current;
this.pagination.pageSize = pagination.pageSize;
this.pageNum = pagination.current;
this.pageSize = pagination.pageSize;
}
this.request();
},
request() {
this.$api.httpApi.disPlcList({
data: {
page: this.pageNum,
size: this.pageSize,
}
}).then(res => {
const pagination = {...this.pagination};
pagination.total = res.data.total;
this.data = res.data;
this.pagination = pagination;
res.data.list.forEach((value, index) => {
value.pageNumber = this.pagination.current
});
}).catch(err => {
});
},
reconnection(data) {
console.log(data.streetId)
var id = data.streetId
this.$axios.get('/plc/tcp', {
params: {id: id}
}).then(res => {
if (res.code == 200) {
this.$message.success('连接成功');
this.request()
} else {
this.$message.error('连接失败');
}
}).catch(err => {
})
}
},
components: {}
};
</script>
<style lang="scss" scoped>
.button-box {
position: absolute;
top: 0;
right: 20px;
display: flex;
align-items: center;
justify-content: center;
.add {
margin-right: 20px;
}
}
</style>