dangerExt.vue 6.2 KB
<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="primary" @click="submitForm" class="submit-button">危险品出库</el-button>
                    </el-form-item>
                </el-form>
            </el-card>
        </el-main>
    </el-container>
</template>

<script>
    import {selectNewInventroys} from '../../api/consigner/station'
    import {dangerousExt,} from '../../api/consigner/dangerous'
    export default {
        data() {
            return {
                options: [
                    {
                        value: "3481",
                        label: '一般危险品'
                    }, {
                        value: "3091",
                        label: '锂电池'
                    }
                ],
                labelPosition:'left',
                form: {
                    waybill: '',
                    pcs: null,
                    weight: null,
                    hazardous: '3481'
                },
                queryInfo: {
                    waybill:'',
                    billfhl:'',
                    locationno:'',
                    // 当前页数
                    pageNum: 1,
                    // 每页大小
                    pageSize: 10,
                    starttime:'',
                    endtime:'',
                    remark2:''
                },
                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) {
                        dangerousExt(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!==''){
                    this.queryInfo.waybill=this.form.waybill;
                    selectNewInventroys(this.queryInfo).then((response) => {
                        const res = response.data
                        if (res.code !== '200') {
                            return this.$message.error('剩余库调取失败')
                        }
                        if(res.data.list!==null){
                            this.form.pcs=res.data.list[0].pcs;
                            this.form.weight=res.data.list[0].weight;
                            this.form.hazardous=res.data.list[0].remark3;
                        }
                        this.$message.success('库存调取成功')
                    }).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>