src/pages/equipmentManagement/ledger/detail.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/equipmentManagement/repair/add.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/equipmentManagement/upkeep/add.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/equipmentManagement/upkeep/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/equipmentManagement/upkeep/maintain.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/pages/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/pages/equipmentManagement/ledger/detail.vue
@@ -318,22 +318,16 @@ let errorMessage = ''; // 检查文本类型必填字段 if (!form.value.deviceName || form.value.deviceName.trim() === '') { if (!form.value.deviceName) { isValid = false; errorMessage = '请输入设备名称'; } else if (!form.value.deviceModel || form.value.deviceModel.trim() === '') { } else if (!form.value.deviceModel) { isValid = false; errorMessage = '请输入规格型号'; } else if (!form.value.deviceBrand || form.value.deviceBrand.trim() === '') { isValid = false; errorMessage = '请输入设备品牌'; } else if (!form.value.supplierName || form.value.supplierName.trim() === '') { } else if (!form.value.supplierName) { isValid = false; errorMessage = '请输入供应商'; } else if (!form.value.storageLocation || form.value.storageLocation.trim() === '') { isValid = false; errorMessage = '请输入存放位置'; } else if (!form.value.unit || form.value.unit.trim() === '') { } else if (!form.value.unit) { isValid = false; errorMessage = '请输入单位'; } src/pages/equipmentManagement/repair/add.vue
@@ -13,6 +13,7 @@ placeholder="请选择设备名称" @click="showDevicePicker" clearable readonly="" /> <template #right> <u-icon name="scan" @click="startScan" class="scan-icon" /> @@ -215,24 +216,26 @@ } isScanning.value = true; showToast('扫码成功,3秒后自动填充设备信息'); showToast('扫码成功'); // 3秒后处理扫码结果 scanTimer.value = setTimeout(() => { processScanResult(scanResult); isScanning.value = false; }, 3000); }, 100); }; function getDeviceIdByRegExp(url) { // 匹配deviceId=后面的数字 const reg = /deviceId=(\d+)/; const match = url.match(reg); // 如果匹配到结果,返回数字类型,否则返回null return match ? Number(match[1]) : null; } // 处理扫码结果并匹配设备 const processScanResult = (scanResult) => { // 在设备列表中查找匹配的设备 // 假设二维码内容是设备名称或设备编号 const matchedDevice = deviceOptions.value.find(device => device.deviceName === scanResult || device.deviceCode === scanResult || device.id.toString() === scanResult ); const deviceId = getDeviceIdByRegExp(scanResult); const matchedDevice = deviceOptions.value.find(item => item.id == deviceId); if (matchedDevice) { // 找到匹配的设备,自动填充 src/pages/equipmentManagement/upkeep/add.vue
@@ -187,24 +187,25 @@ } isScanning.value = true; showToast('扫码成功,3秒后自动填充设备信息'); showToast('扫码成功'); // 3秒后处理扫码结果 scanTimer.value = setTimeout(() => { processScanResult(scanResult); isScanning.value = false; }, 3000); }, 1000); }; function getDeviceIdByRegExp(url) { // 匹配deviceId=后面的数字 const reg = /deviceId=(\d+)/; const match = url.match(reg); // 如果匹配到结果,返回数字类型,否则返回null return match ? Number(match[1]) : null; } // 处理扫码结果并匹配设备 const processScanResult = (scanResult) => { // 在设备列表中查找匹配的设备 // 假设二维码内容是设备名称或设备编号 const matchedDevice = deviceOptions.value.find(device => device.deviceName === scanResult || device.deviceCode === scanResult || device.id.toString() === scanResult ); const deviceId = getDeviceIdByRegExp(scanResult); const matchedDevice = deviceOptions.value.find(item => item.id == deviceId); if (matchedDevice) { // 找到匹配的设备,自动填充 src/pages/equipmentManagement/upkeep/index.vue
@@ -67,10 +67,10 @@ <view class="detail-row"> <text class="detail-label">保养结果</text> <view class="detail-value"> <u-tag v-if="item.maintenanceResult === 1" type="success"> <u-tag v-if="item.maintenanceResult === 1" type="success" size="mini"> 完好 </u-tag> <u-tag v-if="item.maintenanceResult === 0" type="error"> <u-tag v-if="item.maintenanceResult === 0" type="error" size="mini"> 维修 </u-tag> <text v-if="item.maintenanceResult === undefined || item.maintenanceResult === null">-</text> src/pages/equipmentManagement/upkeep/maintain.vue
@@ -59,15 +59,13 @@ </u-popup> <!-- 保养结果选择器 --> <u-popup v-model="showResult" mode="bottom" :closeable="true"> <view class="popup-title">选择保养结果</view> <u-picker v-model="resultPickerValue" :columns="resultColumns" @confirm="onResultConfirm" @cancel="showResult = false" <up-action-sheet :show="showResult" :actions="resultColumns" title="选择保养结果" @select="onResultConfirm" @close="showResult = false" /> </u-popup> </view> </template> @@ -105,8 +103,8 @@ // 保养结果选项 const resultColumns = [ { text: '完好', value: 1 }, { text: '维修', value: 0 } { name: '完好', value: 1 }, { name: '维修', value: 0 } ]; // 表单验证规则 @@ -146,9 +144,25 @@ // 提交表单 const sendForm = async () => { try { // 使用uview-plus的表单验证方式 const valid = await formRef.value.validate(); if (!valid) return; // 手动验证表单 let isValid = true; let errorMessage = ''; if (!form.value.maintenanceActuallyName) { isValid = false; errorMessage = '请输入实际保养人'; } else if (!form.value.maintenanceActuallyTime) { isValid = false; errorMessage = '请选择实际保养日期'; } else if (form.value.maintenanceResult === undefined) { isValid = false; errorMessage = '请选择保养结果'; } if (!isValid) { showToast(errorMessage); return; } // 验证通过 submitFormData(); } catch (e) { @@ -218,10 +232,9 @@ }; // 确认保养结果选择 const onResultConfirm = ({ selectedIndex, selectedValue, selectedLabel }) => { form.value.maintenanceResult = selectedValue; maintenanceResultText.value = selectedLabel; resultPickerValue.value = selectedValue; const onResultConfirm = (selected) => { form.value.maintenanceResult = selected.value; maintenanceResultText.value = selected.name; showResult.value = false; }; @@ -246,6 +259,7 @@ </script> <style scoped lang="scss"> @import '@/static/scss/form-common.scss'; .upkeep-maintain { min-height: 100vh; background: #f8f9fa; src/pages/index.vue
@@ -255,10 +255,10 @@ // 设备管理功能数据 const equipmentItems = reactive([ { icon: '/static/images/icon/shebeitaizhang@2x.png', label: '设备台账', }, // { // icon: '/static/images/icon/shebeitaizhang@2x.png', // label: '设备台账', // }, { icon: '/static/images/icon/shbeibaoxiu@2x.png', label: '设备报修',