Commit 8d538069 by huangqy

111

parent 1f821432
...@@ -75,7 +75,7 @@ export default defineComponent({ ...@@ -75,7 +75,7 @@ export default defineComponent({
console.log('刷新起点') console.log('刷新起点')
proxy.$refs.InTask[0].loadData() proxy.$refs.InTask[0].loadData()
proxy.$refs.OutTask[0].loadData() proxy.$refs.OutTask[0].loadData()
proxy.$refs.NoOrder[0].loadData() proxy.$refs.NoOrder[0].getTableData()
} }
function handleLogChange(data) { function handleLogChange(data) {
log.value = data log.value = data
......
<template> <template>
<div> <el-card style="height: calc(100vh - 147px)">
<el-tabs type="border-card" v-model="activeTab"> <template #header>
<el-tab-pane v-for="item in channelList" :key="item" :name="item.stationId"> <div style="display: flex;">
<template #label> <el-select v-model="positionCode" placeholder="请选择垛位" filterable size="large" class="titleSelect">
<span class="card-title">通道{{ item.stationId }} </span> <el-option :label="'垛位号: ' + item.positionName" :value="item.positionCode" v-for="item in positionList" :key="item.positionCode"></el-option>
</template> </el-select>
<el-card style="height: calc(100vh - 227.75px)"> <el-select v-model="temporaryName" placeholder="请选择单据" filterable size="large" class="titleSelect" clearable @focus="getTemporaryName">
<el-option :label="'单据号: ' + item" :value="item" v-for="item in temporaryList" :key="item"></el-option>
</el-select>
<el-radio-group v-model="type" size="large" @change="changeType" style="margin-left: auto;margin-right: 15px;">
<el-radio-button label="CANCEL">未激活</el-radio-button>
<el-radio-button label="IN">入库激活</el-radio-button>
<el-radio-button label="OUT">出库激活</el-radio-button>
</el-radio-group>
<el-button round size="large" type="primary" @click="reportData">上报单据</el-button>
<el-button round size="large" type="warning" @click="clearData">清空数据</el-button>
</div>
</template>
<el-row :gutter="20">
<el-col :span="18">
<el-table :header-cell-style="{backgroundColor: '#f5f7fa',color: '#000',fontSize: '18px',fontWeight: '600'}"
:row-class-name="tableRowClassName" :data="logData" size="large" border style="width: 100%;height: 68vh;" max-height="660">
<el-table-column type="index" label="序号" width="70" align="center"/>
<el-table-column prop="type" label="作业类型" align="center">
<template #default="scope">
{{ scope.row.type == 'IN' ? '入库' : '出库' }}
</template>
</el-table-column>
<el-table-column prop="goodsCode" label="品名代码" align="center"/>
<el-table-column prop="goodsName" label="品名" align="center"/>
<el-table-column prop="modelName" label="号型" align="center"/>
<el-table-column prop="amount" label="箱内数量" align="center"/>
<el-table-column prop="xhNo" label="箱号" align="center"/>
</el-table>
<el-pagination
style="left: 40%;margin-top: 6px;"
background
@current-change="handleCurrentChange"
:current-page="pageNo"
:page-size="pageSize"
layout="total, prev, pager, next"
:total="total"
/>
</el-col>
<el-col :span="6">
<el-card class="box-card">
<template #header> <template #header>
<span class="card-title">实时出入库数据</span> <div style="text-align: center;">
<el-button round style="float: right;" type="primary" @click="showChannelSetting">通道配置</el-button> <span class="card-title">总箱数</span>
<el-button round style="float: right;margin-right: 10px;" type="warning" @click="clearData">清空数据</el-button> </div>
<el-button round type="success" @click="changeType(item)" v-show="item.type" style="float: right;">{{ item.type == 'IN' ? '入库模式' : item.type == 'OUT' ? '出库模式': '' }}</el-button>
</template> </template>
<el-row :gutter="20"> <div class="text">{{ total }}箱</div>
<el-col :span="18">
<el-table :header-cell-style="{backgroundColor: '#f5f7fa',color: '#000',fontSize: '18px',fontWeight: '600'}"
:row-class-name="tableRowClassName" :data="item.logData" size="large" border style="width: 100%;" max-height="660">
<el-table-column type="index" label="序号" width="70" align="center"/>
<el-table-column prop="stationType" label="作业类型" align="center">
<template #default="scope">
{{ scope.row.stationType == 'IN' ? '入库' : '出库' }}
</template>
</el-table-column>
<el-table-column prop="goodsCode" label="品名代码" align="center"/>
<el-table-column prop="goodsName" label="品名" align="center"/>
<el-table-column prop="modelName" label="号型" align="center"/>
<el-table-column prop="amount" label="箱内数量" align="center"/>
<el-table-column prop="xhNo" label="箱号" align="center"/>
</el-table>
</el-col>
<el-col :span="6">
<el-card class="box-card">
<template #header>
<div style="text-align: center;">
<span class="card-title">识别总箱数</span>
</div>
</template>
<div class="text">{{ item.logData.length }}箱</div>
</el-card>
<el-divider />
<el-card class="box-card">
<template #header>
<div style="text-align: center;cursor: pointer;">
<span @click="changeErr" class="card-title">异常次数 {{ item.errNum }}</span>
</div>
</template>
<div style="height: 280px;overflow: auto" v-if="showErr">
<div v-for="item in errList" :key="item.time">
<p style="text-align: center;">-----------------{{item.time}}-----------------</p>
<p style="text-align: center;">{{item.content}}</p>
</div>
</div>
<div style="height: 120px;overflow: auto" v-if="!showErr">
</div>
</el-card>
</el-col>
</el-row>
</el-card> </el-card>
</el-tab-pane> </el-col>
</el-tabs> </el-row>
</el-card>
<el-dialog v-model="visible" width="45%" >
<template #header>
<div style="text-align: center;font-size: 18px;font-family: Microsoft YaHei;font-weight: bold;color: #303133;">{{title}}</div>
</template>
<el-form size="large" :model="formData">
<el-collapse v-model="activeNames">
<el-collapse-item name="1">
<template #title>
<p class="title">&nbsp;读写器配置</p>
</template>
<el-card style="margin: 25px 35px 0 35px;">
<el-row :gutter="40">
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.readerIp" placeholder="请输入读写器的IP">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Monitor /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.readerPort" placeholder="请输入读写器的端口">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Help /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-card>
</el-collapse-item>
<el-collapse-item name="2">
<template #title>
<p class="title">&nbsp;天线功率</p>
</template>
<el-card style="margin: 25px 35px 0 35px;">
<el-row :gutter="40">
<el-col :span="12">
<el-form-item>
<el-input v-model="power1" placeholder="请输入1号天线功率" :max="30" :min="0">
<template #prefix>
<img src="../assets/1.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="power2" placeholder="请输入2号天线功率">
<template #prefix>
<img src="../assets/2.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="40" style="margin-top: 15px;">
<el-col :span="12">
<el-form-item>
<el-input v-model="power3" placeholder="请输入3号天线功率">
<template #prefix>
<img src="../assets/3.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="power4" placeholder="请输入4号天线功率">
<template #prefix>
<img src="../assets/4.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="40" v-if="readerType == 8" style="margin-top: 15px;">
<el-col :span="12">
<el-form-item>
<el-input v-model="power5" placeholder="请输入5号天线功率">
<template #prefix>
<img src="../assets/5.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="power6" placeholder="请输入6号天线功率">
<template #prefix>
<img src="../assets/6.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="40" v-if="readerType == 8" style="margin-top: 15px;">
<el-col :span="12">
<el-form-item>
<el-input v-model="power7" placeholder="请输入7号天线功率">
<template #prefix>
<img src="../assets/7.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="power8" placeholder="请输入8号天线功率">
<template #prefix>
<img src="../assets/8.svg" width="16" height="16"/>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-card>
</el-collapse-item>
<el-collapse-item name="3">
<template #title>
<p class="title">&nbsp;GPIO配置</p>
</template>
<el-card style="margin: 25px 35px 0 35px;">
<el-row :gutter="40">
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.gpioIp" placeholder="请输入GPIO的IP">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Monitor /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.gpioPort" placeholder="请输入GPIO的端口">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Help /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-card>
</el-collapse-item>
<el-collapse-item name="4">
<template #title>
<p class="title">&nbsp;LED屏配置</p>
</template>
<el-card style="margin: 25px 35px 0 35px;">
<el-row :gutter="40">
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.ledIp1" placeholder="请输入1号显示屏IP">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Monitor /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.ledPort1" placeholder="请输入1号显示屏端口">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Help /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="40" style="margin-top: 15px;">
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.ledIp2" placeholder="请输入2号显示屏IP">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Monitor /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item>
<el-input v-model="formData.ledPort2" placeholder="请输入2号显示屏端口">
<template #prefix>
<el-icon class="el-input__icon" style="color: #1296db"><Help /></el-icon>
</template>
</el-input>
</el-form-item>
</el-col>
</el-row>
</el-card>
</el-collapse-item>
</el-collapse>
</el-form>
<template #footer>
<div class="dialog-footer">
<el-button @click="visible = false">关闭</el-button>
<el-button type="primary" @click="handleSubmit">提交</el-button>
</div>
</template>
</el-dialog>
</div>
</template> </template>
<script> <script>
...@@ -276,38 +65,27 @@ import { Help, Monitor } from '@element-plus/icons-vue' ...@@ -276,38 +65,27 @@ import { Help, Monitor } from '@element-plus/icons-vue'
export default defineComponent({ export default defineComponent({
components: { Monitor, Help }, components: { Monitor, Help },
setup(props, {emit}) { setup(props, {emit}) {
const channelList = ref([]);
const sysForm = ref({})
const logData = ref([]) const logData = ref([])
const visible = ref(false) const positionCode = ref('')
const formData = ref({}) const positionList = ref([])
const activeTab = ref() const temporaryName = ref('')
const activeNames = ref(['1','2','3', '4']) const temporaryList = ref([])
const readerType = ref(4) const type = ref('')
const title = ref() const pageNo = ref(1)
const power1 = ref() const pageSize = ref(10)
const power2 = ref() const total = ref(0)
const power3 = ref()
const power4 = ref()
const power5 = ref()
const power6 = ref()
const power7 = ref()
const power8 = ref()
const log = ref('')
const errList = ref([])
const showErr = ref(false)
const lockReconnect = ref(false)
const state = reactive({ const state = reactive({
url: { url: {
getConfig: '/config/getConfig', getTemporaryName: '/temporary/getTemporaryName',
getDevice: '/device/getDevice', getSwitch: '/temporary/getSwitch',
openReader: '/rfid/openReader', getPositionList: '/temporary/getPositionList',
updateDevice: '/device/updateDevice', updateSwitch: '/temporary/updateSwitch',
removeDevice: '/device/removeDevice', clearGoods: '/temporary/clearGoods',
saveDevice: '/device/saveDevice', getPage: '/temporary/getPage',
updateConfig: '/config/updateConfig', report: '/temporary/report',
getStoreCode: '/config/getStoreCode'
}, },
storeInfo: {}, storeInfo: {},
storeCode: '', storeCode: '',
...@@ -323,263 +101,155 @@ export default defineComponent({ ...@@ -323,263 +101,155 @@ export default defineComponent({
} }
onBeforeUnmount(() => {
console.log('A 组件,切换到 B 组件,A 组件消失时执行')
})
// websocket开始 const getTableData= () => {
let websock = null console.log('刷新无单据数据')
function initWebSocket () { pageNo.value = 1
// if (websock) { getLogPage()
// return
// }
websock = new WebSocket(window._CONFIG['wsURL'] + JSON.parse(sessionStorage.getItem('storeInfo')).storeCode);
websock.onopen = websocketOnopen;
websock.onerror = websocketOnerror;
websock.onmessage = websocketOnmessage;
websock.onclose = websocketClose;
} }
// Websoket连接成功事件 function handleCurrentChange (val) {
const websocketOnopen = (res) => { pageNo.value = val
ElMessage.success('服务连接成功'); getLogPage()
console.log("WebSocket连接成功");
};
const map = new Map()
const map1 = new Map()
// Websoket接收消息事件
const websocketOnmessage = (res) => {
let message = JSON.parse(res.data)
console.log(message)
if (message.noticeType == 0 || message.noticeType == 4) {
logData.value = ''
if (message.noticeType == 0 && message.noticeInfo == 1) {
map1.set(message.stationId + 'd', 'green')
} else if ((message.noticeType == 0 && message.noticeInfo == 0) ) {
map1.set(message.stationId + 'd', '')
}
if (message.noticeType == 4 && message.noticeInfo == 1) {
map1.set(message.stationId + 'g', 'green')
} else if ((message.noticeType == 4 && message.noticeInfo == 0) ) {
map1.set(message.stationId + 'g', '')
}
let str = '<div>【通道' + message.stationId + ': ' + '</div><div class=' + (map1.get(message.stationId + 'd') || 'red')+ '></div><div>读写器</div><div class='+ (map1.get(message.stationId + 'g') || 'red') + '></div><div>GPIO</div>】'
map.set(message.stationId, str)
const sortedArr = Array.from(map).sort((a, b) => a[0] > b[0] ? 1 : -1);
for(let [key, value] of sortedArr) {
logData.value += value
}
emit('logChange', logData.value)
}
if (message.noticeType == 2) {
if (JSON.parse(sessionStorage.getItem('storeInfo')).isHide) return
let stationType = message.stationType
let noticeInfoList = JSON.parse(message.noticeInfo)
let newArr = noticeInfoList.map(v=> {
return {...v, stationType: stationType}
})
let channel = channelList.value.find(i => i.stationId == message.stationId)
channel.logData = [...channel.logData, ...newArr]
emit('refresh')
}
if (message.noticeType == 3) {
if (!JSON.parse(sessionStorage.getItem('storeInfo')).isHide) return
let stationType = message.stationType
let noticeInfoList = JSON.parse(message.noticeInfo)
let newArr = noticeInfoList.map(v=> {
return {...v, stationType: stationType}
})
let channel = channelList.value.find(i => i.stationId == message.stationId)
channel.logData = [...channel.logData, ...newArr]
let obj = {}
channel.logData = channel.logData.reduce((item, next) => {
obj[next.epc] ? '' : obj[next.epc] = true && item.push(next)
return item
}, [])
emit('refresh')
}
if (![0,2,3,4].includes(message.noticeType)) {
let channel = channelList.value.find(i => i.stationId == message.stationId)
channel.errNum = channel.errNum + 1
errList.value.unshift({time: parseTime(new Date()), content: message.noticeInfo})
}
};
function parseTime(date) {
var hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours()
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()
var seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds()
return hours + ':' + minutes + ':' + seconds
} }
// Websoket连接错误事件
const websocketOnerror = (res) => {
console.log("WebSocket连接错误");
reconnect()
};
// Websoket断开事件
const websocketClose = (res) => {
console.log("WebSocket断开连接");
emit('logChange', logData.value.replaceAll('green', 'red'))
console.log(logData.value)
reconnect()
};
function reconnect() {
if(lockReconnect.value) return;
lockReconnect.value = true;
//没连接上会一直重连,设置延迟避免请求过多
setTimeout(() => {
console.log("尝试重连...,5秒一次");
initWebSocket();
lockReconnect.value = false;
}, 5000);
}
onBeforeUnmount(() => {
console.log('A 组件,切换到 B 组件,A 组件消失时执行')
})
const loadData = () => { const loadData = () => {
if (sessionStorage.getItem('storeInfo')) { if (sessionStorage.getItem('storeInfo')) {
let config = JSON.parse(sessionStorage.getItem('storeInfo')) initPositionList() // 获取垛位
sysForm.value = { getSwitch() // 获取无单据激活状态
id: config.id, getTemporaryName() // 获取单据号
storeCode: config.storeCode, getLogPage()
serverIp: config.serverIp,
serverPort: config.serverPort,
isHide: config.isHide
}
channelList.value = []
postAction(state.url.getDevice, {storeCode: JSON.parse(sessionStorage.getItem('storeInfo')).storeCode}).then(res => {
if (res.code !== 99200) return ElMessage.error(res.message);
res.data.map((item, index) => {
channelList.value.push(Object.assign({}, item, { logData: [], errNum: 0 }))
})
activeTab.value = channelList.value[0].stationId
emit('logChange', "<div>【通道" + activeTab.value + ": </div><div class=red></div><div>读写器</div><div class=red></div><div>GPIO</div>】")
initWebSocket()
getAction(state.url.openReader, {storeCode: JSON.parse(sessionStorage.getItem('storeInfo')).storeCode}).then(res => {
})
})
} else { } else {
getAction(state.url.getStoreCode).then(res => { ElMessage.error('未获取到库房代码')
if (res.code !== 99200) {
emit('changeTab')
return ElMessage.error(res.message);
}
postAction(state.url.getConfig, {storeCode: res.data}).then(res => {
if (res.code !== 99200) return ElMessage.error(res.message);
state.storeInfo = res.data[0]
sessionStorage.setItem('storeInfo', JSON.stringify(state.storeInfo))
loadData()
})
})
} }
} }
function clearData() { const initPositionList = () => {
let channel = channelList.value.find(i => i.stationId == activeTab.value) let storeCode = JSON.parse(sessionStorage.getItem('storeInfo')).storeCode
channel.logData = [] postAction(state.url.getPositionList, { storeCode }).then(res => {
positionList.value = res.data
if (res.data.length > 0) {
positionCode.value = res.data[0].positionCode
}
})
} }
function changeErr() { const getTemporaryName = () => {
showErr.value = !showErr.value let storeCode = JSON.parse(sessionStorage.getItem('storeInfo')).storeCode
console.log(showErr.value) postAction(state.url.getTemporaryName, { storeCode }).then(res => {
temporaryList.value = res.data
})
} }
function showChannelSetting() { const getSwitch = () => {
postAction(state.url.getDevice, {storeCode: JSON.parse(sessionStorage.getItem('storeInfo')).storeCode, stationId: activeTab.value}).then(res => { let storeCode = JSON.parse(sessionStorage.getItem('storeInfo')).storeCode
if (res.code !== 99200) return ElMessage.error(res.message); postAction(state.url.getSwitch, { storeCode }).then(res => {
formData.value = res.data[0] type.value = res.data.temporaryType
readerType.value = res.data[0].readerType
title.value = activeTab.value + '号通道配置'
if (res.data[0].readerType == 4) {
power1.value = res.data[0].readerPower.split(',')[0]
power2.value = res.data[0].readerPower.split(',')[1]
power3.value = res.data[0].readerPower.split(',')[2]
power4.value = res.data[0].readerPower.split(',')[3]
}
if (res.data[0].readerType == 8) {
power1.value = res.data[0].readerPower.split(',')[0]
power2.value = res.data[0].readerPower.split(',')[1]
power3.value = res.data[0].readerPower.split(',')[2]
power4.value = res.data[0].readerPower.split(',')[3]
power5.value = res.data[0].readerPower.split(',')[4]
power6.value = res.data[0].readerPower.split(',')[5]
power7.value = res.data[0].readerPower.split(',')[6]
power8.value = res.data[0].readerPower.split(',')[7]
}
visible.value = true
}) })
} }
function changeType(formData) { const getLogPage = () => {
if (formData.type == 'IN') { let storeCode = JSON.parse(sessionStorage.getItem('storeInfo')).storeCode
formData.type = 'OUT' postAction(state.url.getPage, { storeCode, pageNo: pageNo.value, pageSize: pageSize.value }).then(res => {
} else { logData.value = res.data.records
formData.type = 'IN' total.value = res.data.totalRows - 0
})
}
const changeType = (value) => {
let storeCode = JSON.parse(sessionStorage.getItem('storeInfo')).storeCode
postAction(state.url.updateSwitch, { storeCode, temporaryType: value }).then(res => {
if (res.code !== 99200) { // 失败就报错, 并且状态回到原来的值
ElMessage.error(res.message);
getSwitch()
} else {
ElMessage.success(res.message);
}
})
}
function clearData() {
let storeCode = JSON.parse(sessionStorage.getItem('storeInfo')).storeCode
if (type.value == 'CANCEL') {
return ElMessage.error('未激活状态下无法清空');
} }
postAction(state.url.updateDevice, formData).then(res => { postAction(state.url.clearGoods, {
positionCode: positionCode.value,
storeCode,
temporaryName: temporaryName.value,
type: type.value
}).then(res => {
if (res.code !== 99200) return ElMessage.error(res.message); if (res.code !== 99200) return ElMessage.error(res.message);
ElMessage.success(res.message) getLogPage()
}) })
} }
function handleSubmit() { function reportData() {
if (readerType.value == 4) { let storeCode = JSON.parse(sessionStorage.getItem('storeInfo')).storeCode
formData.value.readerPower = power1.value + ',' + power2.value + ',' + power3.value + ',' + power4.value if (type.value == 'CANCEL') {
} return ElMessage.error('未激活状态下无法上报');
if (readerType.value == 8) {
formData.value.readerPower = power1.value + ',' + power2.value + ',' + power3.value + ',' + power4.value + ',' + power5.value + ',' + power6.value + ',' + power7.value + ',' + power8.value
} }
postAction(state.url.updateDevice, formData.value).then(res => { postAction(state.url.report, {
positionCode: positionCode.value,
storeCode,
temporaryName: temporaryName.value,
type: type.value
}).then(res => {
if (res.code !== 99200) return ElMessage.error(res.message); if (res.code !== 99200) return ElMessage.error(res.message);
ElMessage.success(res.message) getLogPage()
formData.value = {}
visible.value = false
}) })
} }
loadData()
return { return {
...toRefs(state), ...toRefs(state),
sysForm, positionCode,
channelList, positionList,
log,
logData,
formData,
activeTab,
readerType,
activeNames,
title,
visible,
power1,
power2,
power3,
power4,
power5,
power6,
power7,
power8,
errList,
showErr,
tableRowClassName, tableRowClassName,
loadData, loadData,
showChannelSetting, initPositionList,
handleSubmit, getTemporaryName,
getSwitch,
clearData, clearData,
changeErr, type,
changeType changeType,
temporaryName,
temporaryList,
reportData,
logData,
getTableData,
getLogPage,
pageNo,
pageSize,
total,
handleCurrentChange
} }
}, },
}) })
</script> </script>
<style lang="less"> <style lang="less">
.titleSelect .el-input__inner {
color: #fff;
font-size: 20px;
font-weight: 'bold';
font-family: 'Times New Roman', Times, serif;
}
.el-input__wrapper {
background-color: var(--color-primary) !important;
margin-right: 15px;
}
.el-table .warning-row { .el-table .warning-row {
--el-table-tr-bg-color: var(--el-color-warning-light-5);; --el-table-tr-bg-color: var(--el-color-warning-light-5);
} }
......
...@@ -349,7 +349,6 @@ export default defineComponent({ ...@@ -349,7 +349,6 @@ export default defineComponent({
// Websoket接收消息事件 // Websoket接收消息事件
const websocketOnmessage = (res) => { const websocketOnmessage = (res) => {
let message = JSON.parse(res.data) let message = JSON.parse(res.data)
console.log(message)
if (message.noticeType == 0 || message.noticeType == 4) { if (message.noticeType == 0 || message.noticeType == 4) {
logData.value = '' logData.value = ''
if (message.noticeType == 0 && message.noticeInfo == 1) { if (message.noticeType == 0 && message.noticeInfo == 1) {
...@@ -401,6 +400,7 @@ export default defineComponent({ ...@@ -401,6 +400,7 @@ export default defineComponent({
let channel = channelList.value.find(i => i.stationId == message.stationId) let channel = channelList.value.find(i => i.stationId == message.stationId)
channel.errNum = channel.errNum + 1 channel.errNum = channel.errNum + 1
errList.value.unshift({time: parseTime(new Date()), content: message.noticeInfo}) errList.value.unshift({time: parseTime(new Date()), content: message.noticeInfo})
emit('errList', errList.value)
} }
}; };
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论