From 7c34ad6ba67ea9036a8a64ebcfd0caa82c4b2859 Mon Sep 17 00:00:00 2001 From: liutao <790864623@qq.com> Date: Fri, 5 Jun 2026 17:59:21 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=AE=BE=E5=A4=87=E7=BB=B4?= =?UTF-8?q?=E4=BF=AE=E7=9A=84=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/equipmentMaintenance/form.vue | 106 ++++++++++++++---- 1 file changed, 85 insertions(+), 21 deletions(-) diff --git a/src/pages_function/pages/equipmentMaintenance/form.vue b/src/pages_function/pages/equipmentMaintenance/form.vue index c585dde..4d4fa4c 100644 --- a/src/pages_function/pages/equipmentMaintenance/form.vue +++ b/src/pages_function/pages/equipmentMaintenance/form.vue @@ -52,8 +52,9 @@ {{ t('equipmentMaintenance.faultLevel') }} - @@ -62,12 +63,14 @@ {{ t('equipmentMaintenance.isShutdown') }} - @@ -85,12 +88,14 @@ {{ t('equipmentMaintenance.machineryTypeId') }} - @@ -149,12 +154,14 @@ {{ t('equipmentMaintenance.repairResult') }} - @@ -519,8 +526,10 @@ function onComponentChange(event) { formData.componentId = current ? current.value : undefined } -function onMachineryTypeChange(event) { - const nextValue = Number(event?.detail?.value || 1) || 1 +function selectMachineryType(value) { + if (readonlyBase.value) return + const nextValue = Number(value || 1) || 1 + if (Number(formData.machineryTypeId || 1) === nextValue) return formData.machineryTypeId = nextValue formData.deviceId = undefined formData.componentId = undefined @@ -531,6 +540,10 @@ function onMachineryTypeChange(event) { formData.machinerySpec = '' } +function onMachineryTypeChange(event) { + selectMachineryType(event?.detail?.value) +} + async function handleDeviceScan() { try { const res = await uni.scanCode({ scanType: ['qrCode', 'barCode'] }) @@ -601,16 +614,31 @@ function matchesComponentDevice(component, deviceId) { function onShutdownChange(event) { const value = String(event?.detail?.value || '') - if (value === 'true') formData.isShutdown = true - if (value === 'false') formData.isShutdown = false + if (value === 'true') selectShutdown(true) + if (value === 'false') selectShutdown(false) +} + +function selectShutdown(value) { + if (readonlyMeta.value) return + formData.isShutdown = value } function onFaultLevelChange(event) { - formData.faultLevel = String(event?.detail?.value || '') + selectFaultLevel(event?.detail?.value) +} + +function selectFaultLevel(value) { + if (readonlyMeta.value) return + formData.faultLevel = String(value || '') } function onRepairStatusChange(event) { - const value = String(event?.detail?.value || '0') + selectRepairStatus(event?.detail?.value) +} + +function selectRepairStatus(value) { + if (readonlyRepair.value) return + value = String(value || '0') formData.repairStatus = value formData.repairResult = value } @@ -1015,6 +1043,42 @@ function goBack() { color: #111827; } +.native-radio { + display: none; +} + +.radio-icon { + position: relative; + width: 34rpx; + height: 34rpx; + flex: 0 0 34rpx; + border: 2rpx solid #d1d5db; + border-radius: 50%; + background: #ffffff; + box-sizing: border-box; +} + +.radio-icon.checked { + border-color: #1f4b79; + background: #1f4b79; +} + +.radio-icon.checked::after { + content: ''; + position: absolute; + left: 10rpx; + top: 5rpx; + width: 10rpx; + height: 18rpx; + border: solid #ffffff; + border-width: 0 4rpx 4rpx 0; + transform: rotate(45deg); +} + +.radio-icon.disabled { + opacity: 0.55; +} + .image-list { display: flex; gap: 16rpx; @@ -1097,4 +1161,4 @@ function goBack() { background: #1f4b79; color: #ffffff; } - \ No newline at end of file +