From 9b0fcd1efca6e101ed3d1b32da2abd9d25eedd27 Mon Sep 17 00:00:00 2001 From: zhangjiming Date: Thu, 2 Jan 2025 19:15:32 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E5=BE=AE=E8=B0=83=20=E8=A7=A3=E5=86=B3?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Index/Index.vue | 2 +- src/pages/Index/components/Consumables/BallGrid.vue | 4 +++- src/pages/Index/components/Consumables/ChangeNum.vue | 4 ++-- src/pages/Index/components/Consumables/InfoBar.vue | 4 ++-- src/pages/Index/components/Consumables/MainComponent.vue | 4 ++-- 5 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/pages/Index/Index.vue b/src/pages/Index/Index.vue index 4209577..3850be9 100644 --- a/src/pages/Index/Index.vue +++ b/src/pages/Index/Index.vue @@ -305,7 +305,7 @@ const openTest = () => { showModal.value = true; } }; -// 获取检测数据 +// 获取初始化检测数据 const getCheckData = async () => { try { const res = await getCheckList(); diff --git a/src/pages/Index/components/Consumables/BallGrid.vue b/src/pages/Index/components/Consumables/BallGrid.vue index 6fe021b..46f1305 100644 --- a/src/pages/Index/components/Consumables/BallGrid.vue +++ b/src/pages/Index/components/Consumables/BallGrid.vue @@ -17,6 +17,8 @@ import { defineEmits, } from 'vue' +// 移液盘复用组件 + // Props 定义 const props = defineProps({ total: { @@ -207,4 +209,4 @@ onBeforeUnmount(() => { .inner-circle { transition: background-color 0.3s ease; } -移液盘复用组件 \ No newline at end of file + \ No newline at end of file diff --git a/src/pages/Index/components/Consumables/ChangeNum.vue b/src/pages/Index/components/Consumables/ChangeNum.vue index d2071da..bebf852 100644 --- a/src/pages/Index/components/Consumables/ChangeNum.vue +++ b/src/pages/Index/components/Consumables/ChangeNum.vue @@ -57,7 +57,7 @@ const query = ref({ // 监听 value 的变化,同步更新 query watch(value, (newVal) => { query.value = { - group: `CG`${ plateIndex.value } `, + group: `CG${ plateIndex.value + 1 }`, num: Number(newVal) } }) @@ -76,7 +76,7 @@ const openDialog = (plate, index) => { // 初始化 query query.value = { - group: `CG`${index}`, + group: `CG${index+1}`, num: Number(plate.num) } } diff --git a/src/pages/Index/components/Consumables/InfoBar.vue b/src/pages/Index/components/Consumables/InfoBar.vue index 49ca56d..6a193e0 100644 --- a/src/pages/Index/components/Consumables/InfoBar.vue +++ b/src/pages/Index/components/Consumables/InfoBar.vue @@ -16,11 +16,11 @@ import { toRefs } from 'vue' const props = defineProps({ projectName: { type: String, - required: true, + // required: true, }, currentCount: { type: Number, - required: true, + // required: true, }, maxCount: { type: Number, diff --git a/src/pages/Index/components/Consumables/MainComponent.vue b/src/pages/Index/components/Consumables/MainComponent.vue index 00bfc9d..f6f40e5 100644 --- a/src/pages/Index/components/Consumables/MainComponent.vue +++ b/src/pages/Index/components/Consumables/MainComponent.vue @@ -17,11 +17,11 @@ import InfoBar from './InfoBar.vue' // 引入项目信息组件 const props = defineProps({ projectName: { type: String, - required: true, + // required: true, }, currentCount: { type: Number, - required: true, + // required: true, }, maxCount: { type: Number, From 86a416f040182c345a420ffb7295685aa69c987d Mon Sep 17 00:00:00 2001 From: zhangjiming Date: Fri, 3 Jan 2025 10:34:58 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Index/Regular/Consumables.vue | 2 - .../components/Consumables/MoveLiquidArea.vue | 255 +++++++++++++-------- 2 files changed, 162 insertions(+), 95 deletions(-) diff --git a/src/pages/Index/Regular/Consumables.vue b/src/pages/Index/Regular/Consumables.vue index 2cb93aa..582fa76 100644 --- a/src/pages/Index/Regular/Consumables.vue +++ b/src/pages/Index/Regular/Consumables.vue @@ -468,8 +468,6 @@ const updateTipNum = async ({ index, tipNum }: { index: number; tipNum: number } .main-bottom { width: 100%; flex: 1; - margin-top: -90px; - .buffer-little-title { display: flex; height: 40px; diff --git a/src/pages/Index/components/Consumables/MoveLiquidArea.vue b/src/pages/Index/components/Consumables/MoveLiquidArea.vue index 26f50f8..2be80f0 100644 --- a/src/pages/Index/components/Consumables/MoveLiquidArea.vue +++ b/src/pages/Index/components/Consumables/MoveLiquidArea.vue @@ -1,94 +1,157 @@ @@ -41,7 +41,7 @@ const props = defineProps({ }, }) -const emit = defineEmits(['update:hVal','update:vVal']) +const emit = defineEmits(['update:sliderValue','update:sliderEndValue']) const hValue = ref(props.hVal) const hTotalVal = ref(props.hTotal) @@ -57,10 +57,10 @@ const sliderTrack = useTemplateRef('sliderTrack') watch( [() => props.hVal, () => props.vVal], - (newX, newY) => { + (newVal) => { if (!isDragging.value) { - hValue.value = newX - vValue.value = newY + hValue.value = newVal[0] + vValue.value = newVal[1] } }, ) @@ -72,7 +72,7 @@ function handleStart(event) { const rect = sliderTrack.value.getBoundingClientRect() startXValue.value = (hValue.value / hTotalVal.value) * rect.width startYValue.value = (vValue.value / vTotalVal.value) * rect.height - + isDragging.value = true document.addEventListener('mousemove', handleDrag) document.addEventListener('touchmove', handleDrag, { passive: false }) @@ -92,12 +92,12 @@ function handleDrag(event) { hValue.value = Math.min(1, Math.max(0, percentX)) * hTotalVal.value vValue.value = Math.min(1, Math.max(0, percentY)) * vTotalVal.value - // console.log(percent, sliderValue.value) - emit('update:hVal', hValue.value) - emit('update:vVal', vValue.value) + + emit('update:sliderValue', hValue.value.toFixed(), vValue.value.toFixed()) } function handleEnd() { + emit('update:sliderEndValue', hValue.value.toFixed(), vValue.value.toFixed()) isDragging.value = false document.removeEventListener('mousemove', handleDrag) document.removeEventListener('touchmove', handleDrag) @@ -108,16 +108,14 @@ function handleEnd() { diff --git a/src/pages/Index/components/Consumables/MoveLiquidArea.vue b/src/pages/Index/components/Consumables/MoveLiquidArea.vue index 5c3172a..3cab0e8 100644 --- a/src/pages/Index/components/Consumables/MoveLiquidArea.vue +++ b/src/pages/Index/components/Consumables/MoveLiquidArea.vue @@ -28,48 +28,51 @@ class="controller" v-for="(controller, index) in tempTipNum" :key="index" - :class="{ 'selected-controller': currentPlate === index }" + :class="{ 'selected-controller': activeTab === index }" @click="changePlate(index)" > -
移液区{{ index + 1 }}
+
移液头区{{ index + 1 }}
{{ controller }}/120
- - -
@@ -161,6 +164,7 @@ @@ -359,10 +354,11 @@ const changePlate = (index: number) => { } .controller-number { - font-size: 32px; + font-size: 30px; font-weight: 600; border-radius: 10px; border: 3px solid #54a4e8; + padding: 0 4px; } } diff --git a/src/pages/Index/components/Consumables/Plate.vue b/src/pages/Index/components/Consumables/Plate.vue index 39d2e90..7c638a3 100644 --- a/src/pages/Index/components/Consumables/Plate.vue +++ b/src/pages/Index/components/Consumables/Plate.vue @@ -32,19 +32,18 @@ defineProps({ diff --git a/src/pages/Index/components/Consumables/SliderAreaEx.vue b/src/pages/Index/components/Consumables/SliderAreaEx.vue index fa1bca1..04fe999 100644 --- a/src/pages/Index/components/Consumables/SliderAreaEx.vue +++ b/src/pages/Index/components/Consumables/SliderAreaEx.vue @@ -5,7 +5,7 @@ @touchstart.prevent="handleStart" >
-
{{ sliderValue.toFixed() }} -
+
--> @@ -36,8 +36,8 @@ const props = defineProps({ }, order: { type: Number, - default: 0 - } + default: 0, + }, }) const sliderValue = ref(props.currValue) @@ -47,7 +47,7 @@ const startX = ref(0) const startValue = ref(0) const sliderTrack = useTemplateRef('sliderTrack') -const emit = defineEmits(['update:sliderValue']) +const emit = defineEmits(['update:sliderValue', 'update:sliderEndValue']) watch( () => props.currValue, @@ -62,7 +62,8 @@ function handleStart(event) { const touchEvent = event.touches ? event.touches[0] : event startX.value = touchEvent.clientX const rect = sliderTrack.value.getBoundingClientRect() - startValue.value = (sliderValue.value / totalVal.value) * rect.width + startValue.value = + rect.width - (sliderValue.value / totalVal.value) * rect.width // console.log(sliderValue.value, totalVal.value) // console.log(startValue.value, rect.width) isDragging.value = true @@ -80,14 +81,14 @@ function handleDrag(event) { const rect = sliderTrack.value.getBoundingClientRect() let percent = (deltaX + startValue.value) / rect.width - sliderValue.value = Math.min(1, Math.max(0, percent)) * totalVal.value + sliderValue.value = + totalVal.value - Math.min(1, Math.max(0, percent)) * totalVal.value // console.log(percent, sliderValue.value) - // emit('update:modelValue', sliderValue.value) - + emit('update:sliderValue', sliderValue.value.toFixed(), props.order) } function handleEnd() { - emit('update:sliderValue', sliderValue.value, props.order) + emit('update:sliderEndValue', sliderValue.value.toFixed(), props.order) isDragging.value = false document.removeEventListener('mousemove', handleDrag) document.removeEventListener('touchmove', handleDrag) @@ -110,6 +111,7 @@ function handleEnd() { .slider-fill { position: absolute; + right: 0; height: 100%; background-color: rgba(255, 255, 255, 0.2); } @@ -119,12 +121,10 @@ function handleEnd() { top: 50%; left: 50%; transform: translateX(-50%) translateY(-50%); - font-size: 40px; + font-size: 36px; font-weight: 600; - color: #FFF; + color: #fff; + -webkit-text-stroke: 2px #000; } -.slider-thumb:active { - cursor: grabbing; -} diff --git a/src/pages/Index/components/Consumables/SpttingPlates.vue b/src/pages/Index/components/Consumables/SpttingPlates.vue index 3e13081..a71a426 100644 --- a/src/pages/Index/components/Consumables/SpttingPlates.vue +++ b/src/pages/Index/components/Consumables/SpttingPlates.vue @@ -15,36 +15,41 @@
+
+ + {{ platesValue[i - 1]?.projShortName }} + {{ platesValue[i - 1]?.num }}/25 +
+
+ + + +
+
- +
-
- - {{ plates[i - 1]?.projShortName }} - {{ plates[i - 1]?.num }}/25 -
-
- - - -
@@ -54,7 +59,7 @@