审查视图

src/views/airtransport/route.vue 16.0 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
                                    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>
xudada authored
112
                        <!--<el-button type="success">保存并发送</el-button>-->
113 114 115 116 117 118 119 120
                    </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
                                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>
149
                            <el-table-c
150 151 152
                                    prop="effEnddate"
                                    label="有效结束日期"
                                    width="180">
153
                            </el-table-c>
154 155 156 157 158 159
                        </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
                        addRoute(this.airline).then(res=>{
                            let response=res.data;
                            if(response.code=='200'){
xudada authored
299 300
                                //this.centerDialogVisible=true;
                                //this.msg=response.msg;
xudada authored
301
                                this.$router.push({path:'/queryRoute',query:{serialNo:this.airline.serialNo}});
xudada authored
302 303
                                //this.centerDialogVisible=false;
                                this.$message.success(response.msg)
xudada authored
304
                            }else{
xudada authored
305 306 307
                                //this.centerDialogVisible=true;
                                //this.msg=response.msg;
                                this.$message.error(response.msg)
xudada authored
308 309
                            }
                        });
310 311 312 313 314 315
                    } else {
                        console.log('error submit!!');
                        return false;
                    }
                });
            },
xudada authored
316
            //分页方法
317
            handleSizeChange(val) {
xudada authored
318
                this.pageSize=val;
319 320
            },
            handleCurrentChange(val) {
xudada authored
321
                this.currentPage=val;
小范 authored
322
                this.submitForm();
xudada authored
323
            },
xudada authored
324
            //长期飞行计划选择功能
xudada authored
325 326 327 328 329 330
            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
331 332 333
            },
            //加载默认值
            defaultData(){
xudada authored
334
                if(this.$route.query.uuid!=null){
xudada authored
335
                    let ob=Object.assign(this.airline, this.$route.query);
xudada authored
336 337 338 339 340 341
                    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
342
                }
小范 authored
343 344 345
            },
            // 过滤中英文
            inputMe(e){
小范 authored
346
                return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
347
            }
xudada authored
348
        },
小范 authored
349
xudada authored
350
        //渲染方法
351
        activated(){
xudada authored
352 353
           this.defaultData();
        }
354
    }
小范 authored
355
</script>