审查视图

src/views/airtransport/route.vue 15.9 KB
1 2 3 4 5 6 7 8 9 10 11
<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="airline" :rules="rules" ref="airline" label-width="100px" class="demo-ruleForm">
                    <el-col :span="6">
小范 authored
12 13 14
                                <el-form-item label="出发港" prop="departurePort" label-width="120px">
                                <el-input @input="e => airline.departurePort=inputMe(e)" v-model="airline.departurePort"
                                          maxLength='3' ></el-input>
15 16 17 18
                            </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="出发港关区" prop="departureCustomNo" label-width="120px">
小范 authored
19 20
                            <el-input v-model="airline.departureCustomNo" oninput="value=value.replace(/[^\d]/g,'')"
                                      maxLength='4'></el-input>
21 22 23 24
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="目的港" prop="arrivalPort" label-width="120px">
小范 authored
25
                            <el-input v-model="airline.arrivalPort" @input="e => airline.arrivalPort=inputMe(e)"
小范 authored
26
                                      maxLength='3'></el-input>
27 28 29 30
                        </el-form-item>
                    </el-col>
                    <el-col :span="6">
                        <el-form-item label="目的港关区" prop="arrivalCustomNo" label-width="120px">
小范 authored
31 32
                            <el-input v-model="airline.arrivalCustomNo" oninput="value=value.replace(/[^\d]/g,'')"
                                      maxLength='4'></el-input>
33 34 35 36 37 38 39 40 41 42 43 44 45 46
                        </el-form-item>
                    </el-col>
                    <el-col :span="24">
                        <el-form-item label="航线序号" prop="serialNo" label-width="120px">
                            <el-input v-model="airline.serialNo"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="24">
                        <el-form-item label="备注内容" prop="meno" label-width="120px">
                            <el-input type="textarea" :rows="5" v-model="airline.meno"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="24" style="margin-bottom: 20px">
                            <el-col :span="24">
xudada authored
47
                                <div class="grid-content content">长期飞行计划<el-button type="primary" size="mini" @click="selectLongplan()" style="margin-left:25px">长期飞行计划查询</el-button></div>
48 49 50 51 52 53 54 55 56 57 58 59 60 61
                            </el-col>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="每周执行情况" prop="plan" label-width="120px">
                            <el-input v-model="airline.plan"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="长期离港时间" prop="std" label-width="120px">
                            <el-time-picker
                                    v-model="airline.std"
                                    :picker-options="{
                                    selectableRange: '00:00:00 - 23:59:59'
                                    }"
xudada authored
62
                                    format="HHmmss"
63 64 65 66 67 68 69 70 71 72 73 74
                                    style="width:100%"
                                    placeholder="任意时间点">
                            </el-time-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="长期抵港时间" prop="sta" label-width="120px">
                            <el-time-picker
                                    v-model="airline.sta"
                                    :picker-options="{
                                    selectableRange: '00:00:00 - 23:59:59'
                                    }"
xudada authored
75
                                    format="HHmmss"
76 77 78 79 80 81 82 83 84 85
                                    style="width:100%"
                                    placeholder="任意时间点">
                            </el-time-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="有效起始时间" prop="effStartdate" label-width="120px">
                            <el-date-picker
                                    v-model="airline.effStartdate"
                                    type="date"
xudada authored
86 87
                                    value-format="yyyyMMdd"
                                    format="yyyyMMdd"
88 89 90 91 92 93 94 95 96 97
                                    style="width:100%"
                                    placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="有效结束时间" prop="effEnddate" label-width="120px">
                            <el-date-picker
                                    v-model="airline.effEnddate"
                                    type="date"
xudada authored
98 99
                                    value-format="yyyyMMdd"
                                    format="yyyyMMdd"
100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
                                    style="width:100%"
                                    placeholder="选择日期">
                            </el-date-picker>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8">
                        <el-form-item label="备注" prop="remark" label-width="120px">
                            <el-input v-model="airline.remark"></el-input>
                        </el-form-item>
                    </el-col>
                    <el-col :span="8" style="margin-left: 120px">
                        <el-button type="primary" @click="submitForm('airline')">保 存</el-button>
                        <el-button type="success">保存并发送</el-button>
                    </el-col>
                </el-form>
            </el-row>
            <el-row>
                    <el-dialog title="长期飞行计划" :visible.sync="dialogTableVisible">
                        <el-table
                                :data="tableData"
                                border
xudada authored
121
                                v-loading="tableloading"
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159
                                style="width: 100%;margin-bottom: 10px">
                            <el-table-column
                                    fixed="left"
                                    label="选择"
                                    width="150">
                                <template slot-scope="scope">
                                    <el-button
                                            size="mini"
                                            type="primary"
                                            @click="handleEdit(scope.$index, scope.row)">选择</el-button>
                                </template>
                            </el-table-column>
                            <el-table-column
                                    prop="std"
                                    label="长期离港时间"
                                    width="150">
                            </el-table-column>
                            <el-table-column
                                    prop="sta"
                                    label="长期抵港时间"
                                    width="150">
                            </el-table-column>
                            <el-table-column
                                    prop="effStartdate"
                                    label="有效起始日期"
                                    width="180">
                            </el-table-column>
                            <el-table-column
                                    prop="effEnddate"
                                    label="有效结束日期"
                                    width="180">
                            </el-table-column>
                        </el-table>
                        <el-pagination
                                @size-change="handleSizeChange"
                                @current-change="handleCurrentChange"
                                :current-page="currentPage4"
                                :page-sizes="[10, 20, 30, 40]"
xudada authored
160
                                :page-size="pageSize"
161
                                layout="total, sizes, prev, pager, next, jumper"
xudada authored
162
                                :total="total">
163 164 165
                        </el-pagination>
                    </el-dialog>
            </el-row>
xudada authored
166 167 168 169 170 171 172 173 174 175 176 177 178 179
            <!--对话提示框-->
            <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>
180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201
        </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>
xudada authored
202
    const fecha = require('fecha');
xudada authored
203
    import {addRoute,selectLongTimePlan} from '../../api/transport'
xudada authored
204
    import loginUserInfo from '../../api/base'
205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224
    export default {
        data(){
          return{
              airline:{
                  uuid:undefined,
                  serialNo:undefined,
                  departurePort:undefined,
                  arrivalPort:undefined,
                  departureCustomNo:undefined,
                  arrivalCustomNo:undefined,
                  cancelFlag:undefined,
                  meno:undefined,
                  planno:undefined,
                  std:undefined,
                  sta:undefined,
                  effStartdate:undefined,
                  effEnddate:undefined,
                  plan:undefined,
                  remark:undefined,
                  createTime:undefined,
xudada authored
225
                  createBy:loginUserInfo.username,
226
                  updateTime:undefined,
xudada authored
227
                  updateBy:loginUserInfo.username,
xudada authored
228
                  isDelete:undefined,
229
              },
xudada authored
230 231 232
              longtimeplan:{
                  createBy:loginUserInfo.username
              },
233 234
              rules: {
                  departurePort: [
小范 authored
235
                      //{ min: 3, max: 3, message: '长度在3个字符', trigger: 'blur'},
236 237 238
                      {required: true, message: '请输入(三字码)', trigger: 'blur'},
                  ],
                  departureCustomNo: [
小范 authored
239
                      {required: true, message: '请输入四位(数字)关区代码', trigger: 'blur'}
240 241 242 243 244
                  ],
                  arrivalPort: [
                      {required: true, message: '请输入(三字码)', trigger: 'blur'},
                  ],
                  arrivalCustomNo: [
小范 authored
245
                      {required: true, message: '请输入四位(数字)关区代码', trigger: 'blur'}
246
                  ],
xudada authored
247 248
                  serialNo:[
                      {required: true, message: '请输入航线序号', trigger: 'blur'}
小范 authored
249 250 251 252 253 254 255 256 257 258 259 260 261 262 263
                  ],
                  plan: [
                      {required: true, message: '请输入', trigger: 'blur'},
                  ],
                  std: [
                      {required: true, message: '请选择时间', trigger: 'blur'}
                  ],
                  sta: [
                      {required: true, message: '请选择时间', trigger: 'blur'},
                  ],
                  effStartdate: [
                      {required: true, message: '请选择时间', trigger: 'blur'}
                  ],
                  effEnddate:[
                      {required: true, message: '请选择时间', trigger: 'blur'}
xudada authored
264
                  ]
265
              },
xudada authored
266
              tableData: [],
小范 authored
267
              //长期飞行计划弹框
268
              dialogTableVisible:false,
小范 authored
269
              //系统提示框
xudada authored
270
              centerDialogVisible:false,
xudada authored
271 272 273
              currentPage4:1,
              pageSize:10,
              total:0,
xudada authored
274
              msg:undefined,
xudada authored
275
              tableloading:false
276 277 278
          }
        },
        methods:{
xudada authored
279 280 281 282 283 284 285 286 287 288 289
            //查询长期飞行计划列表
            selectLongplan(){
                this.dialogTableVisible=true;
                this.tableloading=true;
                selectLongTimePlan(this.longtimeplan).then(res=>{
                    let response=res.data.data;
                    this.tableData=response.list;
                    this.tableloading=false;
                    this.total=response.total;
                });
            },
小范 authored
290
            //新增航线方法(保存按钮)
291
            submitForm(formName) {
xudada authored
292
                //重新定义范围域
293 294
                this.$refs[formName].validate((valid) => {
                    if (valid) {
xudada authored
295
                        //重新定义airline
xudada authored
296 297 298 299 300
                        addRoute(this.airline).then(res=>{
                            let response=res.data;
                            if(response.code=='200'){
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
xudada authored
301
                                this.$router.push({path:'/queryRoute',query:{serialNo:this.airline.serialNo}});
xudada authored
302
                                this.centerDialogVisible=false;
xudada authored
303 304 305 306 307
                            }else{
                                this.centerDialogVisible=true;
                                this.msg=response.msg;
                            }
                        });
308 309 310 311 312 313
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            },
xudada authored
314
            //分页方法
315
            handleSizeChange(val) {
xudada authored
316
                this.pageSize=val;
317 318
            },
            handleCurrentChange(val) {
xudada authored
319
                this.currentPage=val;
小范 authored
320
                this.submitForm();
xudada authored
321
            },
xudada authored
322
            //长期飞行计划选择功能
xudada authored
323 324 325 326 327 328
            handleEdit(index,row){
                this.airline.std=fecha.parse(row.std,'HHmmss');
                this.airline.sta=fecha.parse(row.sta,'HHmmss');
                this.airline.effStartdate=row.effStartdate;
                this.airline.effEnddate=row.effEnddate;
                this.dialogTableVisible=false;
xudada authored
329 330 331
            },
            //加载默认值
            defaultData(){
xudada authored
332
                if(this.$route.query.uuid!=null){
xudada authored
333
                    let ob=Object.assign(this.airline, this.$route.query);
xudada authored
334 335 336 337 338 339
                    if(ob.sta!=null && ob.sta!=undefined && ob.sta!=""){
                        this.airline.sta=fecha.parse(ob.sta,'HHmmss');
                    }
                    if(ob.std!=null && ob.std!=undefined && ob.std!=""){
                        this.airline.std=fecha.parse(ob.std,'HHmmss');
                    }
xudada authored
340
                }
小范 authored
341 342 343 344
            },
            // 过滤中英文
            inputMe(e){
                return e.replace(/[^a-zA-Z]/g,'').toUpperCase();
345
            }
xudada authored
346
        },
小范 authored
347
xudada authored
348 349 350 351
        //渲染方法
        mounted(){
           this.defaultData();
        }
352 353
    }
</script>