17 changed files with 340 additions and 89 deletions
@ -0,0 +1,81 @@
@@ -0,0 +1,81 @@
|
||||
<template> |
||||
<EdfsDialog |
||||
class="test-sheet-info-dlg" |
||||
:title="title" |
||||
:isShow="isShow" |
||||
width="70%" |
||||
:isShowFooter="false" |
||||
@on-close="onClone" |
||||
@on-save="onClone" |
||||
> |
||||
<div class="dlg-body"> |
||||
<EdfsTable |
||||
class="table" |
||||
:data="info" |
||||
:usePaging="false" |
||||
:highlight-current-row="true" |
||||
row-class-name="row" |
||||
> |
||||
<template v-for="(col, idx) in tableCol" :key="idx"> |
||||
<!-- <el-table-column |
||||
v-if="col.prop.endsWith('Time')" |
||||
:label="col.label" |
||||
:min-width="col.minWidth" |
||||
> |
||||
<template #default="scope"> |
||||
{{ dayjs(scope.row.createTime).format('YYYY-MM-DD HH:mm:ss') }} |
||||
</template> |
||||
</el-table-column> |
||||
|
||||
<el-table-column |
||||
v-else-if="col.prop === 'status'" |
||||
:label="col.label" |
||||
:min-width="col.minWidth" |
||||
> |
||||
<template #default="scope"> |
||||
{{ testSheetStatus.find(item => item.value === scope.row.status)?.label }} |
||||
</template> |
||||
</el-table-column> --> |
||||
<el-table-column |
||||
:prop="col.prop" |
||||
:label="col.label" |
||||
:min-width="col.minWidth" |
||||
/> |
||||
</template> |
||||
</EdfsTable> |
||||
</div> |
||||
</EdfsDialog> |
||||
</template> |
||||
|
||||
<script setup lang="ts"> |
||||
import EdfsDialog from '@/components/dashboard/Edfs-dialog.vue' |
||||
const props = defineProps<{ |
||||
isShow: boolean |
||||
info: any |
||||
title: string |
||||
}>() |
||||
const emits = defineEmits(['on-close']) |
||||
const title = computed(() => `${props.title}测试详情`) |
||||
|
||||
const tableCol = [ |
||||
{ prop: 'content', label: '测试内容', minWidth: '12%' }, |
||||
{ prop: 'actualResult', label: '实际结果', minWidth: '8%' }, |
||||
{ prop: 'expectResult', label: '预期结果', minWidth: '8%' }, |
||||
{ prop: 'remark', label: '备注', minWidth: '20%' }, |
||||
] |
||||
|
||||
function onClone() { |
||||
emits('on-close') |
||||
} |
||||
</script> |
||||
|
||||
<style scoped lang="scss"> |
||||
.test-sheet-info-dlg { |
||||
.dlg-body { |
||||
height: 700px; |
||||
.table { |
||||
height: 100%; |
||||
} |
||||
} |
||||
} |
||||
</style> |
@ -1,39 +1,38 @@
@@ -1,39 +1,38 @@
|
||||
import Emitter from "./eventBus"; |
||||
import Emitter from './eventBus' |
||||
|
||||
export interface SocketEvent { |
||||
type: string; |
||||
stationId: number; |
||||
data?: any; |
||||
time?: any; |
||||
type: string |
||||
data?: any |
||||
time?: any |
||||
} |
||||
|
||||
export interface SocketMsgListener { |
||||
onCmdPost(type: string, stationId: number, data?: any, time?:any): void; |
||||
onCmdPost(type: string, data?: any, time?: any): void |
||||
} |
||||
|
||||
let listeners: SocketMsgListener[] = []; |
||||
let listeners: SocketMsgListener[] = [] |
||||
|
||||
export function addListener(listener: SocketMsgListener) { |
||||
if (listeners.length === 0) { |
||||
Emitter.on("socketMsg", (event: SocketEvent) => { |
||||
if (!event) { |
||||
return; |
||||
} |
||||
for (const listener of listeners) { |
||||
listener.onCmdPost(event.type, event.stationId, event.data, event.time); |
||||
} |
||||
}); |
||||
} |
||||
listeners.push(listener); |
||||
if (listeners.length === 0) { |
||||
Emitter.on('socketMsg', (event: SocketEvent) => { |
||||
if (!event) { |
||||
return |
||||
} |
||||
for (const listener of listeners) { |
||||
listener.onCmdPost(event.type, event.data, event.time) |
||||
} |
||||
}) |
||||
} |
||||
listeners.push(listener) |
||||
} |
||||
|
||||
export function removeListener(listener: SocketMsgListener) { |
||||
listeners = listeners.filter((item) => item !== listener); |
||||
if (listeners.length === 0) { |
||||
Emitter.off("socketMsg"); |
||||
} |
||||
listeners = listeners.filter(item => item !== listener) |
||||
if (listeners.length === 0) { |
||||
Emitter.off('socketMsg') |
||||
} |
||||
} |
||||
|
||||
export function publish(event: SocketEvent) { |
||||
Emitter.emit("socketMsg", event); |
||||
Emitter.emit('socketMsg', event) |
||||
} |
||||
|
Loading…
Reference in new issue