bill.vue 17.5 KB
<template>
    <el-container>
        <el-main>
            <el-row class="row-bg">
                <el-col :span="24">
                    <div class="grid-content content">总申报单</div>
                </el-col>
            </el-row>
            <el-row>
                <el-form :model="bill" :rules="rules" ref="bill" label-width="100%" class="demo-ruleForm">
                    <el-col :span="8">
                        <el-form-item label="航空器注册编号" prop="aircraftNo" label-width="120px">
                            <el-input v-model="bill.aircraftNo" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="航班号" prop="flightNo" label-width="120px">
                            <el-input v-model="bill.flightNo" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="航班日期" prop="flightDate" label-width="120px">
                            <el-date-picker
                                    v-model="bill.flightDate"
                                    type="date"
                                    value-format="yyyyMMdd"
                                    format="yyyyMMdd"
                                    style="width:100%"
                                    placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="进出港标识" prop="accessFlag" label-width="120px">
                            <el-input v-model="bill.accessFlag" placeholder="A/D"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="机组人数" prop="aircrewSum" label-width="120px">
                            <el-input v-model="bill.aircrewSum" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="国际旅客人数" prop="interPassengerSum" label-width="120px">
                            <el-input v-model="bill.interPassengerSum" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="国内旅客人数" prop="localePassengerSum" label-width="120px">
                            <el-input v-model="bill.localePassengerSum" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="国际行李件数" prop="interBaggageNum" label-width="120px">
                            <el-input v-model="bill.interBaggageNum" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="国内行李件数" prop="localeBaggageNum" label-width="120px">
                            <el-input v-model="bill.localeBaggageNum" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="货邮件数" prop="goodsNum" label-width="120px">
                            <el-input v-model="bill.goodsNum" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="货邮重量(KG)" prop="goodsQuantity" label-width="120px">
                            <el-input v-model="bill.goodsQuantity" oninput="value=value.replace(/[^\d]/g,'')" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="抵达港口" prop="arrivalAirport" label-width="120px" >
                            <el-input v-model="bill.arrivalAirport" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="关区代码" prop="arrivalno" label-width="120px">
                            <el-input v-model="bill.arrivalno" oninput="value=value.replace(/[^\d]/g,'')" maxLength='4' placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="抵达时间" prop="arrivaldatetime" label-width="120px">
                            <el-date-picker
                                    v-model="bill.arrivaldatetime"
                                    value-format="yyyyMMdd"
                                    format="yyyyMMdd"
                                    style="width:100%"
                                    placeholder="请选择">
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="驶离港口" prop="departureAirport" label-width="120px">
                            <el-input v-model="bill.departureAirport" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="关区代码" prop="departureno" label-width="120px">
                            <el-input v-model="bill.departureno" oninput="value=value.replace(/[^\d]/g,'')"  maxLength='4' placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="驶离时间" prop="departuredatetime" label-width="120px">
                            <el-date-picker
                                    v-model="bill.departuredatetime"
                                    value-format="yyyyMMdd"
                                    format="yyyyMMdd"
                                    style="width:100%"
                                    placeholder="请选择">
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="货物申报单份数" prop="cargoBillNum" label-width="120px">
                            <el-input v-model="bill.cargoBillNum" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="旅客名单份数" prop="passengerPage" label-width="120px">
                            <el-input v-model="bill.passengerPage" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="机组名单份数" prop="aircrewBillNum" label-width="120px">
                            <el-input v-model="bill.aircrewBillNum" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="机组物品申报单份数" prop="aircrewCargoBillNum" label-width="150px">
                            <el-input v-model="bill.aircrewCargoBillNum" oninput="value=value.replace(/[^\d]/g,'')"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="停靠机位" prop="arrivalPosition" label-width="120px">
                            <el-input v-model="bill.arrivalPosition" placeholder="请输入"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="18">
                        <el-form-item label="选项" label-width="120px">
                            <el-checkbox v-model="bill.remark">是否有健康异常</el-checkbox>
                            <el-checkbox v-model="bill.remark1">是否发现病媒生物</el-checkbox>
                            <el-checkbox v-model="bill.remark2">是否发现外来有害生物</el-checkbox>
                            <el-checkbox v-model="bill.remark3">是否有有效灭蚊证明</el-checkbox>
                        </el-form-item>
                    </el-col>
                    <el-col :span="24">
                    <el-form-item label="备注" prop="meno" label-width="120px">
                        <el-input v-model="bill.meno" placeholder="请输入"></el-input>
                    </el-form-item>
                    </el-col>
                </el-form>
            </el-row>
            <el-row style="margin-left: 120px">
                <el-col :span="24">
                    <el-button type="primary" @click="submitForm('bill')">保 存</el-button>
                </el-col>
            </el-row>
            <!--对话提示框-->
            <el-row>
                <el-dialog
                        title="系统提示"
                        :visible.sync="centerDialogVisible"
                        width="30%"
                        center>
                    <span>{{msg}}</span>
                    <span slot="footer" class="dialog-footer">
                          <el-button @click="centerDialogVisible = false">取 消</el-button>
                        <el-button type="primary" @click="centerDialogVisible = false">确 定</el-button>
                      </span>
                </el-dialog>
            </el-row>
        </el-main>
    </el-container>
</template>
<style scoped>
.grid-content {
height: 36px;
line-height: 36px;
}
.el-dialog__body{text-align: center}
.content {
border-left: 4px #409EFF solid;
padding-left: 10px;
background-color: #f9fafc;
margin-bottom: 2px
}

.row-bg{
background-color: white;
}
.el-col{margin-right: 0px;}
</style>
<script>
    import {addBill} from '../../api/transport'
    const fecha = require('fecha');
    import loginUserInfo from '../../api/base'
    export default {
        data(){
            return{
                bill:{
                    uuid:undefined,
                    aircraftNo:undefined,
                    flightNo:undefined,
                    flightDate:undefined,
                    accessFlag:undefined,
                    departureAirport:undefined,
                    departuredatetime:undefined,
                    departureno:undefined,
                    arrivalAirport:undefined,
                    arrivaldatetime:undefined,
                    arrivalno:undefined,
                    aircrewSum:undefined,
                    interPassengerSum:undefined,
                    localePassengerSum:undefined,
                    interBaggageNum:undefined,
                    localeBaggageNum:undefined,
                    goodsNum:undefined,
                    goodsQuantity:undefined,
                    cargoBillNum:3,
                    passengerPage:3,
                    aircrewBillNum:3,
                    aircrewCargoBillNum:3,
                    arrivalPosition:undefined,
                    bussinessType:undefined,
                    messageid:undefined,
                    status:undefined,
                    statusMsg:undefined,
                    meno:undefined,
                    createTime:undefined,
                    createBy:loginUserInfo.username,
                    updateTime:undefined,
                    updateBy:loginUserInfo.username,
                    isDelete:undefined,
                    remark:undefined,
                    remark1:undefined,
                    remark2:undefined,
                    remark3:undefined
                },
                rules: {
                    aircraftNo: [
                        {required: true, message: '请输入编号', trigger: 'blur'}
                    ],
                    flightNo: [
                        {required: true, message: '请输入航班号', trigger: 'blur'}
                    ],
                    flightDate: [
                        {required: true, message: '请选择航班日期', trigger: 'blur'}
                    ],
                    accessFlag: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    aircrewSum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    interPassengerSum: [
                        {required: true, message: '请选择', trigger: 'blur'}
                    ],
                    localePassengerSum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    interBaggageNum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    localeBaggageNum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    goodsNum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    goodsQuantity: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    arrivalAirport: [
                        {required: true, message: '请选择', trigger: 'blur'}
                    ],
                    arrivalno: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    arrivaldatetime: [
                        {required: true, message: '请选择', trigger: 'blur'}
                    ],
                    departureAirport: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    departureno: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    departuredatetime: [
                        {required: true, message: '请选择', trigger: 'blur'}
                    ],
                    cargoBillNum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    passengerPage: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    aircrewBillNum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    aircrewCargoBillNum: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    arrivalPosition: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                },
                tableData:[{
                    arrivaldatetime: '161146',
                    departuredatetime: '161146',
                    flightDate: '20160502',
                }],
                centerDialogVisible:false,
                labelPosition:'left',
                currentPage: 1,
                pageSize:10,
                total:0,
                msg:undefined
            }
        },
        methods:{
            //新增单据方法(保存按钮)
            submitForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        addBill(this.bill).then(res=>{
                            let response=res.data;
                            if(response.code=='200'){
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
                                this.$router.push({path:'/queryBill',query:{aircraftNo:JSON.stringify(this.bill.aircraftNo),flightNo:JSON.stringify(this.bill.flightNo),
                                        flightDate:JSON.stringify(this.bill.flightDate)}});
                            }else{
                                this.msg=response.msg;
                            }
                        });
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            },
            //加载默认值
            defaultData(){
                if(this.$route.query.uuid!=null){
                    let ob=Object.assign(this.bill, this.$route.query);
                    this.bill.arrivaldatetime=fecha.parse(ob.arrivaldatetime,'HHmmss');
                }
            },
            // 分页
            handleSizeChange(val) {
                this.pageSize=val;
            },
            handleCurrentChange(val) {
                this.currentPage=val;
                this.submitForm();
            }
        },
        mounted(){
            this.defaultData();
        }
    }
</script>