审查视图

src/views/deploy/dangerImport.vue 5.4 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154
<template>
    <el-container class="form-container">
        <el-header>
            <h1>危险品入库</h1>
        </el-header>
        <el-main>
            <el-card class="form-card">
                <el-form :label-position="labelPosition" :model="form" ref="form" label-width="100px" :rules="rules">
                    <el-form-item label="运单号" prop="waybill">
                        <el-input class="form-input" v-model="form.waybill" placeholder="请输入运单号" clearable @blur="handleBlur"></el-input>
                    </el-form-item>
                    <el-form-item label="件数" prop="pcs">
                        <el-input class="form-input" type="number" v-model="form.pcs" placeholder="请输入件数" clearable></el-input>
                    </el-form-item>
                    <el-form-item label="重量 (kg)" prop="weight">
                        <el-input class="form-input" type="number" v-model="form.weight" placeholder="请输入重量" clearable></el-input>
                    </el-form-item>
                    <el-form-item label="危险品" prop="hazardous">
                        <el-select class="form-input" v-model="form.hazardous" placeholder="请选择">
                            <el-option
                                    v-for="item in options"
                                    :key="item.value"
                                    :label="item.label"
                                    :value="item.value">
                            </el-option>
                        </el-select>
                    </el-form-item>
                    <el-form-item>
                        <el-button type="success" @click="submitForm" class="submit-button">危险品入库</el-button>
                    </el-form-item>
                </el-form>
            </el-card>
        </el-main>
    </el-container>
</template>

<script>
    import {dangerousImp,checkPre} from '../../api/consigner/dangerous'
    import axios from 'axios';
    export default {
        data() {
            return {
                responseData: null,
                options: [
                    {
                        value: "3481",
                            label: '一般危险品'
                    }, {
                        value: "3091",
                            label: '锂电池'
                    }
                        ],
            labelPosition:'left',
                form: {
                    waybill: '',
                    pcs: null,
                    weight: null,
                    hazardous: '3481'
                },
                rules: {
                    waybill: [
                        { required: true, message: '运单号不能为空', trigger: 'blur' }
                    ],
                    pcs: [
                        { required: true, message: '件数不能为空', trigger: 'blur' }
                    ],
                    weight: [
                        { required: true, message: '重量不能为空', trigger: 'blur' }
                    ],
                    hazardous: [
                        { required: true, message: '请选择是否为危险品', trigger: 'change' }
                    ]
                }
            };
        },
        methods: {
            submitForm() {
                this.$refs.form.validate((valid) => {
                    if (valid) {
                        dangerousImp(this.form).then((response) => {
                            const res = response.data
                            if (res.code !== '200') {
                                return this.$message.error(res.msg)
                            }
                            this.$message.success(res.msg);
                            this.$refs.form.resetFields();
                        }).catch(error => {
                            // 关闭加载
                            this.$message.error(error.toString())
                        })
                    } else {
                        return false;
                    }
                });
            },
            handleBlur() {
                if(this.form.waybill!==null && this.form.waybill!==''){
                    checkPre({waybill:this.form.waybill}).then((response) => {
                        const res = response.data
                        if (res.code !== '200') {
                            return this.$message.error(res.msg)
                        }
                        this.$message.success(res.msg);
                        this.form.pcs=res.data.pcs;
                        this.form.weight=res.data.weight;
                    }).catch(error => {
                        // 关闭加载
                        this.$message.error(error.toString())
                    })
                }
            }
        },

    };
</script>

<style scoped>
    .form-container {
        background-color: #f5f5f5;
        padding: 20px;
        min-height: 100vh;
    }

    .el-header {
        text-align: center;
        margin-bottom: 20px;
        color: #333;
    }

    .form-card {
        background-color: #ffffff;
        border-radius: 8px;
        padding: 20px;
        box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    }

    .form-input {
        width: 100%; /* 设置宽度为100% */
    }

    .submit-button {
        width: 100%;
    }

    .el-form-item {
        margin-bottom: 15px;
    }

    @media (max-width: 600px) {
        .form-container {
            padding: 10px;
        }
    }
</style>