diff --git a/components.d.ts b/components.d.ts index 6f7c782..1bb2e60 100644 --- a/components.d.ts +++ b/components.d.ts @@ -10,13 +10,16 @@ declare module 'vue' { Confirm: typeof import('./src/components/Confirm.vue')['default'] ConfirmModal: typeof import('./src/components/ConfirmModal.vue')['default'] DialogModal: typeof import('./src/components/dialogs/DialogModal.vue')['default'] + ElAvatar: typeof import('element-plus/es')['ElAvatar'] ElButton: typeof import('element-plus/es')['ElButton'] + ElCol: typeof import('element-plus/es')['ElCol'] ElDatePicker: typeof import('element-plus/es')['ElDatePicker'] ElDropdown: typeof import('element-plus/es')['ElDropdown'] ElFooter: typeof import('element-plus/es')['ElFooter'] ElHeader: typeof import('element-plus/es')['ElHeader'] ElIcon: typeof import('element-plus/es')['ElIcon'] ElInput: typeof import('element-plus/es')['ElInput'] + ElRow: typeof import('element-plus/es')['ElRow'] ElTable: typeof import('element-plus/es')['ElTable'] ElTableColumn: typeof import('element-plus/es')['ElTableColumn'] ElTooltip: typeof import('element-plus/es')['ElTooltip'] diff --git a/src/pages/Index/Index.vue b/src/pages/Index/Index.vue index f08a664..204adad 100644 --- a/src/pages/Index/Index.vue +++ b/src/pages/Index/Index.vue @@ -1063,7 +1063,7 @@ watch( .continue-test { width: 100px; height: 48px; - font-size: 20px; + font-size: 24px; } } } diff --git a/src/pages/Index/Regular/Running.vue b/src/pages/Index/Regular/Running.vue index 3524a92..24db32c 100644 --- a/src/pages/Index/Regular/Running.vue +++ b/src/pages/Index/Regular/Running.vue @@ -92,17 +92,32 @@
- + +
+ + + + +
@@ -178,7 +193,9 @@ import tubeItem from '../components/TestTube/Tube.vue' import { useRunningStore } from '@/store/modules/running' import SubTankItem from '../components/Running/SubTank.vue' import BigBufferDisplay from '../components/Running/BigBufferDisplay.vue' - +import { + emergencyStateDesc, +} from '@/websocket/socket' const consumablesStore = useConsumablesStore() const runningStore = useRunningStore() const deviceStore = useDeviceStore() @@ -334,7 +351,11 @@ watch( height: auto; column-gap: 5px; // padding: 0 10px; + + } + + } //第二行 @@ -576,4 +597,19 @@ watch( justify-content: center; } } + +.tooltip-content{ + width:13rem; + font-size:1rem; + line-height: 2rem; +} +.tube_info{ + display: flex; + .tube-label{ + text-align: right; + width: 5.3rem; + font-weight: 600; + } +} + diff --git a/src/pages/Index/Settings/Device.vue b/src/pages/Index/Settings/Device.vue index 47d7e89..0da3569 100644 --- a/src/pages/Index/Settings/Device.vue +++ b/src/pages/Index/Settings/Device.vue @@ -376,6 +376,7 @@ const startTimer = () => { currentDate.value = now time.value = format(now, 'yyyy.MM.dd HH:mm:ss'); }, 1000) + console.log('intervalId.value---', intervalId.value) } const temperatures = ref([]) @@ -468,7 +469,9 @@ onUnmounted(() => { // 暂停定时器 const pauseTimer = () => { if (intervalId.value) { - console.log(111) + console.log('111====', intervalId.value) + // pickerKey.value = new Date().getTime(); + clearInterval(intervalId.value); intervalId.value = null; } diff --git a/src/pages/Index/components/Consumables/MoveLiquidArea.vue b/src/pages/Index/components/Consumables/MoveLiquidArea.vue index e20a1b0..10009bc 100644 --- a/src/pages/Index/components/Consumables/MoveLiquidArea.vue +++ b/src/pages/Index/components/Consumables/MoveLiquidArea.vue @@ -287,7 +287,8 @@ const activeTab = ref(0) const router = useRouter() let showEmergencyModal = ref(false) const addEmergency = () => { - if (canSetEmergency) { + console.log('canSetEmergency---', canSetEmergency.value) + if (canSetEmergency.value) { //未返回 反应板夹 数组时,直接提示 if ( consumableStore.consumableData.reactionPlateGroup.every( diff --git a/src/pages/Index/components/Running/SubTank.vue b/src/pages/Index/components/Running/SubTank.vue index 784471e..e9c4e29 100644 --- a/src/pages/Index/components/Running/SubTank.vue +++ b/src/pages/Index/components/Running/SubTank.vue @@ -36,10 +36,10 @@ .rectangular-item { position: absolute; left: 50%; // 将所有矩形的起始位置设置在圆心 - top: 38rem; // 将所有矩形的起始位置设置在圆心 + top: 37rem; // 将所有矩形的起始位置设置在圆心 width: 75px; height: 170px; - transform-origin: center -5.375rem; // 调整旋转中心点 + transform-origin: center -70px; // 调整旋转中心点 border-radius: 12px; background-color: #dbdbdb; box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08); @@ -196,8 +196,3 @@ const getItemStyle = (item: SubTank) => { } } - \ No newline at end of file diff --git a/src/pages/Index/components/TestTube/Tube.vue b/src/pages/Index/components/TestTube/Tube.vue index 654cf62..602e61d 100644 --- a/src/pages/Index/components/TestTube/Tube.vue +++ b/src/pages/Index/components/TestTube/Tube.vue @@ -1,46 +1,48 @@ @@ -48,7 +50,10 @@ import { ref, watch, useTemplateRef, nextTick, computed } from 'vue' import * as R from 'ramda' import { useConsumablesStore, useSettingTestTubeStore } from '@/store' - +import { + emergencyStateDesc, + emergencyStateColor +} from '@/websocket/socket' /* tube: {userid,projId:number[],bloodType} */ @@ -59,6 +64,7 @@ const props = defineProps({ showNum: { type: Boolean, default: true }, showUserId: {type: Boolean, default: true}, tubeNo: { type: Number }, + type: {type: String} }) const emit = defineEmits(['clickTubeItem']) const settingTubeStore = useSettingTestTubeStore() @@ -69,10 +75,11 @@ const projIdsOfTube = (tube) => { } const canvas = useTemplateRef('canvas') - +const tubeData = ref() watch( () => props.tube, (newVal) => { + tubeData.value = props.tube const projIds = projIdsOfTube(props.tube) if (projIds.length > 0) { nextTick(() => { @@ -90,6 +97,10 @@ watch( { immediate: true }, ) +function showProjInfo(tube){ + console.log('-----------------------', tubeData.value, tube) +} + function drawPieChart(ctx, data) { let total = data.reduce((acc, val) => acc + val.value, 0) let currentAngle = data.length === 2 ? 0 : -0.5 * Math.PI // Start from the top (12 o'clock position) @@ -139,6 +150,21 @@ function drawPieChart(ctx, data) { } margin-bottom: 6px; } + .tube-circle-empty{ + width: 72px; + height: 72px; + border-radius: 999px; + border: solid 1px gray; + background-color: #fff; + display: flex; + justify-content: center; + align-items: center; + margin-bottom: 6px; + background:#f1f1f1; + margin-top: 5px; + border: 0px solid; + } + .tube-project { position: relative; .text-layer { @@ -168,4 +194,8 @@ function drawPieChart(ctx, data) { text-overflow: ellipsis; margin-left: 0.7rem; } + +.tube_info{ + display:flex +} diff --git a/src/websocket/socket.ts b/src/websocket/socket.ts index 278c704..f97908b 100644 --- a/src/websocket/socket.ts +++ b/src/websocket/socket.ts @@ -163,10 +163,20 @@ export const emergencyStateDesc = { PENDING: '已挂起', RESOURCE_IS_READY: '已就绪', PROCESSING: '处理中', - PROCESS_COMPLETE: '处理完成', + PROCESS_COMPLETE: '完成', ERROR: '出错', } +export const emergencyStateColor = { + EMPTY: '', + TO_BE_PROCESSED: '#56ccab', + PENDING: '#a793ec', + RESOURCE_IS_READY: '#17b60d', + PROCESSING: '#e35958', + PROCESS_COMPLETE: '#773f16', + ERROR: '#e93527', +} + // 急诊位状态消息 interface EmergencyPosStateMessage extends BaseMessage { type: 'EmergencyPosState'