审查视图

src/views/nmms_import/EnterFlightInfo.vue 8.7 KB
1 2 3 4 5 6 7 8 9 10 11 12 13 14
<template>
    <el-container>
        <el-main>
            <!--检索条件-->
            <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
            <el-row>
                <el-col :span="24"><div class="grid-content"><p>请输入航班信息:</p></div></el-col>
            </el-row>
            <el-row>
                <el-col :span="24"><div class="grid-content"><h1>Please Enter The Flight Information:</h1></div></el-col>
            </el-row>
            <el-row type="flex" class="row-bg" justify="center">
                <el-col :span="5">
                        <el-form-item label="航班号" prop="flightno">
15
                            <el-input placeholder="" v-model="flightno" style="width:100%"></el-input>
16 17 18 19 20 21 22 23 24 25 26 27 28
                        </el-form-item>
                </el-col>
                <el-col :span="5">
                    <el-form-item label="航班日期" required>
                        <el-col :span="24">
                            <el-form-item prop="flightdate">
                                <el-date-picker type="date" placeholder="选择日期" :clearable="false" v-model="ruleForm.flightdate" style="width: 100%;"></el-date-picker>
                            </el-form-item>
                        </el-col>
                    </el-form-item>
                </el-col>
                <el-col :span="5">
                    <el-form-item label="始发站" prop="originstation">
29
                        <el-select v-model="originstation"
30
                                   filterable
31
                                   allow-create
32 33 34 35 36
                                   default-first-option
                                   remote
                                   :remote-method="remoteMethod"
                                   :loading="loading"
                                   placeholder="请选择">
37 38 39 40 41 42 43 44 45
                            <el-option
                                    v-for="item in options"
                                    :key="item.airportid"
                                    :label="item.airportid"
                                    :value="item.airportid">
                                <span style="float: left">{{ item.airportid }}</span>
                                <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportdescchn }}</span>
                            </el-option>
                        </el-select>
46 47 48 49
                    </el-form-item>
                </el-col>
                <el-col :span="5">
                    <el-form-item label="目的站" prop="destinationstation">
50
                        <el-select v-model="destinationstation" filterable
51
                                   allow-create
52 53 54 55
                                   default-first-option
                                   remote
                                   :remote-method="remoteMethod"
                                   :loading="loading" placeholder="请选择">
56 57 58 59 60 61 62 63 64
                            <el-option
                                    v-for="item in options2"
                                    :key="item.airportid"
                                    :label="item.airportid"
                                    :value="item.airportid">
                                <span style="float: left">{{ item.airportid }}</span>
                                <span style="float: right; color: #8492a6; font-size: 13px">{{ item.airportdescchn }}</span>
                            </el-option>
                        </el-select>
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
                    </el-form-item>
                </el-col>
            </el-row>
            <el-row>
                <el-col :span="4" :offset="10">
                    <div class="grid-content">
                        <el-button type="primary" @click="submitForm('ruleForm')">下一步</el-button>
                    </div>
                </el-col>
            </el-row>
                </el-form>
        </el-main>
    </el-container>
</template>
<!--自定义CSS-->
<style scoped>
   .el-container{text-align: center}
    .el-main{margin:0 auto;height:400px;}
    p{font-size:25px;font-weight: bold;}
    .row-bg{padding:30px 0;}
   .el-form-item {margin-bottom: 0px;}
</style>

<script>
89
    import { selectAirport } from '../../api/mt1201'
90 91 92 93 94 95 96 97
    export default {
        data() {
            return {
                /*初始化值*/
                ruleForm: {
                    flightno:'',
                    flightdate:'',
                    originstation:'',
98
                    destinationstation:''
99
                },
100 101 102
                options: [],
                options2:[],
                airportid:'',
103
                loading: false,
104 105 106 107 108 109 110 111
                /*表单校验规则*/
                rules: {
                    flightno: [
                        {required: true, message: '请输入航班号', trigger: 'blur'},
                        {min: 3, max: 6, message: '输入不符合规范', trigger: 'blur'}
                    ],
                    originstation: [
                        {required: true, message: '请输入航班起始站', trigger: 'blur'},
112
                        {min: 3, max: 3, message: '长度为 3 ', trigger: 'blur'}
113 114 115
                    ],
                    destinationstation: [
                        {required: true, message: '请输入目的站', trigger: 'blur'},
116
                        {min: 3, max: 3, message: '长度为 3 ', trigger: 'blur'}
117 118 119 120 121 122 123 124
                    ],
                    flightdate: [
                        {  required: true, message: '请选择日期', trigger: 'blur' }
                    ]
                }
            };
        },
        methods:{
125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
            remoteMethod:function(query) {
                this.options = [];
                this.options2=[];
                let param={airportid:query};
                this.loading = true;
                selectAirport(param).then(res=>{
                    if (res !== '') {
                        setTimeout(() => {
                            this.loading = false;
                            this.options=res.data.data;
                            this.options2=res.data.data;
                        }, 200);
                    } else {
                        this.options = [];
                        this.options2=[];
                    }
141 142
                });
            },
143 144 145 146
            /*按钮点击请求方法*/
            submitForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
xudada authored
147
                        this.$router.push({path:'/origmaster',query:{flightno:JSON.stringify(this.ruleForm.flightno),flightdate:JSON.stringify(this.dateConversion(this.ruleForm.flightdate)),originstation:JSON.stringify(this.ruleForm.originstation),destinationstation:JSON.stringify(this.ruleForm.destinationstation),awba:JSON.stringify("")}});
148 149 150 151 152 153 154 155 156 157 158 159 160 161
                    } else {
                        console.log('error submit!!');
                return false;
            }
            });
            },
            /*航班日期格式化方法*/
            dateConversion(value){
                var date = new Date(value);
                date = date.getFullYear() + '-' + (date.getMonth() + 1) + '-' + date.getDate();
                return date;
            },
            /*加载默认参数*/
            getDefaultData(){
xudada authored
162
                if(this.$route.query!=null){
163
                    console.log(this.$route.query)
xudada authored
164 165 166 167
                    this.ruleForm.flightno=JSON.parse(this.$route.query.flightno);
                    this.ruleForm.flightdate=JSON.parse(this.$route.query.flightdate);
                    this.ruleForm.originstation=JSON.parse(this.$route.query.originstation);
                    this.ruleForm.destinationstation=JSON.parse(this.$route.query.destinationstation);
168 169 170
                }
            }
        },
171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196
        computed:{
            originstation:{
                get:function () {
                    return this.ruleForm.originstation;
                },
                set:function (val) {
                    this.ruleForm.originstation=val.toUpperCase();
                }
            },
            destinationstation:{
                get:function () {
                    return this.ruleForm.destinationstation;
                },
                set:function (val) {
                    this.ruleForm.destinationstation=val.toUpperCase();
                }
            },
            flightno:{
                get:function () {
                    return this.ruleForm.flightno;
                },
                set:function (val) {
                    this.ruleForm.flightno=val.toUpperCase();
                }
            }
        },
197 198 199
        /*渲染方法*/
        mounted(){
            this.getDefaultData();
200
            //this.getFlightList();
201
        },
202 203
    };
</script>