gaoluyang
16 小时以前 91af6caf5a797bcc912e9a22656c97775bd4a198
设备保养、设备维修真机测试,bug修改
已修改6个文件
116 ■■■■■ 文件已修改
src/pages/equipmentManagement/ledger/detail.vue 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/equipmentManagement/repair/add.vue 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/equipmentManagement/upkeep/add.vue 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/equipmentManagement/upkeep/index.vue 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/equipmentManagement/upkeep/maintain.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/pages/index.vue 8 ●●●● 补丁 | 查看 | 原始文档 | 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: '设备报修',