arrival.vue 13.9 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="arrival" :rules="rules" ref="arrival" label-width="100%" class="demo-ruleForm">
                    <el-col :span="24">
                        <div class="grid-content content">航空器信息</div>
                    </el-col>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="航空器注册编号" prop="aircraftNo" label-width="130px">
                                <el-input v-model.trim="arrival.aircraftNo"  @input="e => arrival.aircraftNo=inputMe(e)"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="海关关区" prop="customDistrictNo" label-width="120px">
                                <el-input v-model="arrival.customDistrictNo" oninput="value=value.replace(/[^\d]/g,'')"
                                          maxLength='4'></el-input>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-col :span="24">
                        <div class="grid-content content">航空器动态信息</div>
                    </el-col>
                    <el-row>
                        <el-col :span="6">
                            <el-form-item label="航班号" prop="flightNo" label-width="130px">
                                <el-input v-model="arrival.flightNo" @input="e => arrival.flightNo=inputMe(e)"></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="航班日期" prop="flightDate" label-width="120px">
                                <el-date-picker
                                        v-model="arrival.flightDate"
                                        type="date"
                                        placeholder="选择日期时间"
                                        value-format="yyyyMMdd"
                                        format="yyyyMMdd"
                                        style="width: 100%"
                                        :picker-options="pickerOptions">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="停机位" prop="stayid" label-width="140px">
                                <el-input v-model="arrival.stayid"  oninput="value=value.replace(/[^\d]/g,'')"
                                ></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="出发港" prop="departurePort" label-width="120px">
                                <el-input v-model="arrival.departurePort" @input="e => arrival.departurePort=inputMe(e)" maxLength='3'></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="目的港" prop="arrivalPort" label-width="130px">
                                <el-input v-model="arrival.arrivalPort" @input="e => arrival.arrivalPort=inputMe(e)" maxLength='3'></el-input>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="预计离港时间" prop="departuredatetime" label-width="120px">
                                <el-date-picker
                                        v-model="arrival.departuredatetime"
                                        type="datetime"
                                        placeholder="选择日期时间"
                                        value-format="yyyyMMddHHmmss"
                                        format="yyyyMMddHHmmss"
                                        style="width:100%">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                        <el-col :span="6">
                            <el-form-item label="预计抵港时间" prop="arrivaldatetime" label-width="140px">
                                <el-date-picker
                                        v-model="arrival.arrivaldatetime"
                                        type="datetime"
                                        placeholder="选择日期时间"
                                        value-format="yyyyMMddHHmmss"
                                        format="yyyyMMddHHmmss"
                                        style="width:100%">
                                </el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-row>
                    <el-col :span="6">
                        <el-form-item label="完成装卸时间" prop="dischargecompleteddatetime" label-width="130px">
                            <el-date-picker
                                    v-model="arrival.dischargecompleteddatetime"
                                    type="datetime"
                                    placeholder="选择日期时间"
                                    value-format="yyyyMMddHHmmss"
                                    format="yyyyMMddHHmmss"
                                    style="width:100%">
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="24">
                        <div class="grid-content content">备注信息</div>
                    </el-col>
                    <el-col :span="24">
                        <el-form-item label="备注" prop="meno" label-width="130px">
                            <el-input v-model="arrival.meno"></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('arrival')">保 存</el-button>
                    <el-button type="success" @click="sendForm('arrival')">保存并发送</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 {addPrediction, sendPredictionIn} from "../../api/transport";
    import loginUserInfo from '../../api/base'
    export default {
        data(){
            return{
                pickerOptions: {
                    disabledDate(time) {
                        return time.getTime() > Date.now();
                    },
                    shortcuts: [{
                        text: '今天',
                        onClick(picker) {
                            picker.$emit('pick', new Date());
                        }
                    }, {
                        text: '昨天',
                        onClick(picker) {
                            const date = new Date();
                            date.setTime(date.getTime() - 3600 * 1000 * 24);
                            picker.$emit('pick', date);
                        }
                    }, {
                        text: '明天',
                        onClick(picker) {
                            const date = new Date();
                            date.setTime(date.getTime() + 3600 * 1000 * 24);
                            picker.$emit('pick', date);
                        }
                    }]
                },
                arrival:{
                    aircraftNo:undefined,
                    flightNo:undefined,
                    flightDate:undefined,
                    departurePort:undefined,
                    arrivalPort:undefined,
                    customDistrictNo:undefined,
                    departuredatetime:undefined,
                    stayid:undefined,
                    dischargecompleteddatetime:undefined,
                    arrivaldatetime:undefined,
                    meno:undefined,
                    accessFlag: '0',
                    createBy:loginUserInfo.username,
                    updateBy:loginUserInfo.username,
                },
                rules: {
                    aircraftNo: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    flightNo: [
                        {required: true, message: '请输入', trigger: 'blur'}
                    ],
                    flightDate: [
                        {required: true, message: '请选择', trigger: 'change'}
                    ],
                    departurePort: [
                        {required: true, message: '请输入(三字码)', trigger: 'blur'},
                        { pattern: /^[A-Z]{3}$/, message: '请输入(三字码)', trigger: 'blur' }

                    ],
                    arrivalPort: [
                        {required: true, message: '请输入(三字码)', trigger: 'blur'},
                        { pattern: /^[A-Z]{3}$/, message: '请输入(三字码)', trigger: 'blur' }
                    ],
                    customDistrictNo: [
                        {required: true, message: '请输入', trigger: 'blur'},
                        { pattern: /^[0-9]{4}$/, message: '请输入正确关区', trigger: 'blur' }
                    ],
                    departuredatetime: [
                        {required: true, message: '请选择', trigger: 'change'}
                    ],
                    stayid: [
                        {required: true, message: '请输入', trigger: 'blur'},
                    ],
                    // dischargecompleteddatetime: [
                    //     {required: true, message: '请选择', trigger: 'blur'}
                    // ],
                    arrivaldatetime: [
                        {required: true, message: '请选择', trigger: 'blur'}
                    ],
                },
                tableData:[],
                centerDialogVisible:false,
                msg:undefined,
            }
        },
        methods:{
            //新增进港预报申报(保存按钮)
            submitForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        addPrediction(this.arrival).then(res=>{
                            let response=res.data;
                            if(response.code=='200'){
                               // this.centerDialogVisible=true;
                                //this.msg=response.msg;
                                this.$router.push({path:'/queryArrival',query:{flightNo:this.arrival.flightNo,flightDate:this.arrival.flightDate}});
                                this.$message.success(response.msg)
                            }else{
                                this.$message.error(response.msg)
                            }
                        }
                        );
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            },
            //新增进港预报申报(保存并发送按钮)
            sendForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
                        this.arrival.createBy=loginUserInfo.username
                        sendPredictionIn(this.arrival).then(res=>{
                            let response=res.data;
                            if(response.code=='200'){
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
                                this.$router.push({path:'/queryArrival',query:{flightNo:this.arrival.flightNo,flightDate:this.arrival.flightDate}});
                                this.$message.success('保存并发送成功');
                            }else{
                                this.msg=response.msg;
                            }
                        });
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            },
            //加载默认值
            defaultData(){
                if(this.$route.query!=null){
                    Object.assign(this.arrival, this.$route.query);
                }
            },
            // 过滤中英文
            inputMe(e){
                return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
            }
        },
        activated(){
            this.defaultData();
        }
    }
</script>