审查视图

src/views/nmms_import/EnterFlightInfo.vue 9.2 KB
1 2 3 4 5 6 7 8 9 10 11
<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>
12
            <el-row type="flex" class="row-bg" justify="center" style="margin-top: 30px">
13 14
                <el-col :span="5">
                        <el-form-item label="航班号" prop="flightno">
15
                            <el-input placeholder="" v-model="flightno" style="width:100%"></el-input>
16 17
                        </el-form-item>
                </el-col>
18
                <el-col :span="6">
19 20 21 22 23 24 25 26 27 28
                    <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
                    </el-form-item>
                </el-col>
            </el-row>
68
            <el-row>
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
                <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
    import jsutil from "@/common/js/util";
91 92 93 94 95 96 97 98
    export default {
        data() {
            return {
                /*初始化值*/
                ruleForm: {
                    flightno:'',
                    flightdate:'',
                    originstation:'',
99
                    destinationstation:''
100
                },
101 102 103
                options: [],
                options2:[],
                airportid:'',
104
                loading: false,
105 106 107 108 109 110 111 112
                /*表单校验规则*/
                rules: {
                    flightno: [
                        {required: true, message: '请输入航班号', trigger: 'blur'},
                        {min: 3, max: 6, message: '输入不符合规范', trigger: 'blur'}
                    ],
                    originstation: [
                        {required: true, message: '请输入航班起始站', trigger: 'blur'},
113
                        {min: 3, max: 3, message: '长度为 3 ', trigger: 'blur'}
114 115 116
                    ],
                    destinationstation: [
                        {required: true, message: '请输入目的站', trigger: 'blur'},
117
                        {min: 3, max: 3, message: '长度为 3 ', trigger: 'blur'}
118 119 120 121 122 123 124 125
                    ],
                    flightdate: [
                        {  required: true, message: '请选择日期', trigger: 'blur' }
                    ]
                }
            };
        },
        methods:{
126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141
            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=[];
                    }
142 143
                });
            },
144 145 146 147
            /*按钮点击请求方法*/
            submitForm(formName) {
                this.$refs[formName].validate((valid) => {
                    if (valid) {
148 149 150 151 152 153
                        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("")}});
154 155 156 157 158 159 160 161 162 163 164 165 166 167
                    } 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(){
168 169 170 171 172 173 174 175 176 177 178
                if(
                    jsutil.checkNull(this.$route.query)
                    && jsutil.checkNull(this.$route.query.flightno)
                    && jsutil.checkNull(this.$route.query.flightdate)
                    && jsutil.checkNull(this.$route.query.originstation)
                    && jsutil.checkNull(this.$route.query.destinationstation)
                ){
                    this.ruleForm.flightno=(this.$route.query.flightno);
                    this.ruleForm.flightdate=(this.$route.query.flightdate);
                    this.ruleForm.originstation=(this.$route.query.originstation);
                    this.ruleForm.destinationstation=(this.$route.query.destinationstation);
179 180 181
                }
            }
        },
182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207
        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();
                }
            }
        },
208
        /*渲染方法*/
209
        activated(){
210
            this.getDefaultData();
211
            //this.getFlightList();
212
        },
213 214
    };
</script>