现场维修二维码

This commit is contained in:
jiang 2025-07-29 17:04:02 +08:00
parent 94b0972f9d
commit f9e6a4968f
1 changed files with 82 additions and 5 deletions

View File

@ -1,8 +1,15 @@
<template>
<view class="accept page-common">
<div class="card">
<uni-forms :modelValue="formData" label-width="170rpx" :border="true">
<uni-forms-item label="单位名称:" name="unitId" required>
<uni-row :gutter="24">
<uni-col :span="6">
<view class="coding-btn" @tap="codeScan">二维码识别</view>
</uni-col>
</uni-row>
</div>
<div class="card">
<uni-forms :modelValue="formData" label-width="170rpx" :border="true">
<uni-forms-item label="单位名称:" name="unitId" required>
<eselect
style="width: 100%; height: 90rpx"
ref="treeSelect"
@ -33,6 +40,11 @@
<button class="btn-cont" @click="clearForm">清空</button>
<button class="btn-cont" @click="confirmAdd">确认</button>
</div>
<ScanQrCode
ref="scanQrCodeRef"
@scanSuccess="handleScanSuccess"
@scanError="handleScanError"
/>
</view>
</template>
@ -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 {