From f9e6a4968f84f457aa88e564aa6a56a71319d9ea Mon Sep 17 00:00:00 2001 From: jiang Date: Tue, 29 Jul 2025 17:04:02 +0800 Subject: [PATCH] =?UTF-8?q?=E7=8E=B0=E5=9C=BA=E7=BB=B4=E4=BF=AE=E4=BA=8C?= =?UTF-8?q?=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/repair/fieldMaintenance/added.vue | 87 +++++++++++++++++++-- 1 file changed, 82 insertions(+), 5 deletions(-) diff --git a/src/pages/repair/fieldMaintenance/added.vue b/src/pages/repair/fieldMaintenance/added.vue index 6611441..8883e2f 100644 --- a/src/pages/repair/fieldMaintenance/added.vue +++ b/src/pages/repair/fieldMaintenance/added.vue @@ -1,8 +1,15 @@ @@ -45,7 +57,11 @@ import { insert, getAgreementInfoById, } from '@/services/fieldMaintenance/fieldMaintenance.js' +import { getMachineByQrCodeApi } from '../../../services/back.js' import eselect from '@/components/tree-select/eselect.vue' +import ScanQrCode from '@/pages/devicesSearch/ScanQrCode.vue' + +const scanQrCodeRef = ref(null) const treeSelect = ref(null) const treeSelect2 = ref(null) const unitId = ref('') @@ -55,7 +71,49 @@ const unitList = ref([]) const proList = ref([]) const fieldPerson = ref('') const phone = ref('') +const qrCode = ref('') +const maInfo = ref({}) //二维码 +// 处理扫描成功事件 +const handleScanSuccess = (result) => { + qrCode.value = result?.data?.split('?qrcode=')[1] || result?.data + if (qrCode.value === '') { + uni.showToast({ title: '扫码识别失败', icon: 'none' }) + } else { + getMaInfoScan() + } +} +// 处理扫描失败事件 +const handleScanError = (error) => { + console.error('扫描出错:', error.message) + uni.showToast({ title: error.message, icon: 'none' }) +} +//查看是否是该规格型号 +const getMaInfoScan = async () => { + let param = { + qrCode: qrCode.value, + } + //通过二维码获取相绑定的设备编码 + const res = await getMachineByQrCodeApi(param) + console.log(res) + if (res.code == 200) { + if (res.data.length > 0) { + unitId.value = res.data[0].unitId + proId.value = res.data[0].proId + } else { + uni.showToast({ title: '扫码二维码未绑定设备编码!', icon: 'none' }) + } + } else { + uni.showToast({ title: res.data.msg, icon: 'none' }) + } +} +const codeScan = async () => { + qrCode.value = '' + + if (scanQrCodeRef.value) { + scanQrCodeRef.value.scanQrCode() + } +} //单位 const getUnit = () => { // proId.value=e.id; @@ -158,9 +216,9 @@ const confirmAdd = () => { uni.showToast({ title: '请确认联系电话!', icon: 'none' }) } else { let obj = { - agreementId: agreementId.value, - fieldPerson: fieldPerson.value, - phone: phone.value, + agreementId: agreementId.value, + fieldPerson: fieldPerson.value, + phone: phone.value, } insert(obj) .then((res) => { @@ -213,6 +271,25 @@ onLoad((options) => { margin-bottom: 24rpx; height: auto; + .coding-btn { + height: 70rpx; + line-height: 70rpx; + background: linear-gradient(135deg, #4b8eff 0%, #3784fb 100%); + border-radius: 12rpx; + text-align: center; + color: #fff; + font-size: 24rpx; + font-weight: 600; + box-shadow: 0 6rpx 20rpx rgba(55, 132, 251, 0.2); + transition: all 0.3s ease; + + &:active { + transform: scale(0.98); + opacity: 0.9; + box-shadow: 0 2rpx 8rpx rgba(55, 132, 251, 0.2); + } + } + // 表单样式 :deep(.uni-forms) { .uni-forms-item {