1730532197@qq.com

lwj

......@@ -187,6 +187,9 @@
'id': 1,
'name': '有效'
},{
'id': 2,
'name': '执行中'
},{
'id': 3,
'name': '停用'
}],
......@@ -379,7 +382,7 @@
if (row.status === '1') {
return '有效'
} else if (row.status === '2') {
return '配置中'
return '执行中'
} else if (row.status === '3') {
return '停用'
}
......
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" :inline="true" label-width="90px">
<el-row>
<el-col :span="8">
<el-form-item label="航班日期从" prop="flightDate">
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.flightDate" type="date" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="到" prop="flightDate">
<el-date-picker value-format="yyyy-MM-dd" v-model="queryParams.flightDate" type="date" placeholder="选择日期">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="航班号" prop="sourceFlightNo">
<el-input v-model="queryParams.sourceFlightNo" placeholder="请输入航班号" clearable size="small" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="8">
<el-form-item label="航班类型" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择" clearable size="small">
<el-option v-for="dict in statusList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="航班状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择" clearable size="small">
<el-option v-for="dict in statusList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="航班种类" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择" clearable size="small">
<el-option v-for="dict in statusList" :key="dict.id" :label="dict.name" :value="dict.id" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<br />
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd">新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="success" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate">修改
</el-button>
</el-col>
<el-col :span="1.5">
<el-button type="danger" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete">删除
</el-button>
</el-col>
</el-row>
<el-table max-height="500" highlight-current-row border stripe v-loading="loading" :data="sourceFlightRulesList"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="航班日期" align="center" prop="sourceFlightNo" />
<el-table-column label="航班起飞时间" align="center" prop="flightRank" width="280" />
<el-table-column label="航班号" align="center" prop="dayOfWeek" width="180" />
<el-table-column label="航班路线" align="center" prop="status" :formatter="statusFormat" />
<el-table-column label="航班类型" align="center" prop="startDate" width="100" />
<el-table-column label="航班种类" align="center" prop="endDate" width="100" />
<el-table-column label="航班状态" align="center" prop="updateUserName" />
<el-table-column label="总重量(KG)" align="center" prop="updateTime" width="130" />
<el-table-column label="原始重量(KG)" align="center" prop="updateTime" width="130" />
<el-table-column label="总体积(cm³)" align="center" prop="updateTime" width="130" />
<el-table-column label="是否限制一票一件" align="center" prop="updateTime" width="150" />
<el-table-column label="是否需要预审" align="center" prop="updateTime" width="150" />
<el-table-column label="额外增重百分比" align="center" prop="updateTime" width="150" />
<el-table-column label="高价百分比" align="center" prop="updateTime" width="150" />
<el-table-column label="低价百分比" align="center" prop="updateTime" width="150" />
<el-table-column label="是否开启高地价" align="center" prop="updateTime" width="150" />
<el-table-column label="已配重量(KG)" align="center" prop="updateTime" width="150" />
<el-table-column label="已配体积(cm³)" align="center" prop="updateTime" width="150" />
<el-table-column label="航班优先级" align="center" prop="updateTime" width="150" />
<el-table-column label="配舱优先级" align="center" prop="updateTime" width="150" />
<el-table-column label="创建人" align="center" prop="updateTime" width="100" />
<el-table-column label="创建时间" align="center" prop="updateTime" width="100" />
<el-table-column label="最后修改人" align="center" prop="updateTime" width="100" />
<el-table-column label="最后修改时间" align="center" prop="updateTime" width="100" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="130" fixed="right">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)">修改</el-button>
<el-button size="mini" type="text" icon="el-icon-delete" @click="handleDeleteorPlayorpause(scope.row,0,'删除')">
删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination v-show="total>0" :total="total" layout=" prev, pager, next, jumper, sizes,total"
:page.sync="queryParams.pageNum" :limit.sync="queryParams.limit" @pagination="findSourceFlightRules" />
<!-- 查看目的航班对话框 -->
<el-dialog title="实际配载航班" :visible.sync="openFlightDate" width="70%">
<el-table v-loading="loadingFlightDate" :data="sourceFlightAndFlightDate">
<el-table-column label="原航班" align="center" prop="sourceFlightNo" />
<el-table-column label="实际配载航班" align="center" prop="actualFlight" width="280" />
<el-table-column label="航班日期" align="center" prop="flightDate" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="200">
<template slot-scope="scope">
<el-button size="mini" type="text" icon="el-icon-edit"
@click="handleClick(scope.row.sourceFlightNo, 'detail')">查看配置维度</el-button>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button @click="cancelFlightDate">返 回</el-button>
</div>
</el-dialog>
<!-- 添加或修改对话框 -->
<el-dialog :title="title" :visible.sync="open" width="60%">
<el-form ref="form" :model="form" :rules="rules" label-width="100px">
<el-row>
<el-col :span="10">
<el-form-item label="原航班" prop="sourceFlightNo">
<el-input v-model="form.sourceFlightNo" placeholder="请输入原航班号" />
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item label="有效开始时间" prop="startDate">
<el-date-picker clearable size="small" :picker-options="pickerOptionsStart" v-model="form.startDate"
type="date" value-format="yyyy-MM-dd" placeholder="选择开始时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="有效结束时间" prop="endDate">
<el-date-picker clearable size="small" :picker-options="pickerOptionsEnd" v-model="form.endDate"
type="date" value-format="yyyy-MM-dd" placeholder="选择结束时间">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="24" style="margin-bottom: 5%;">
<span style="color: red;margin-left: 10%;">提示:配载航班之同请用分号分隔【符号不区分中英文】,例:CA1053:C7433</span><br />
<span style="color: red;margin-left: 10%;">提示:如果需要设置配载航班延迟或提前可以直接在目的航斑后加减【+-】天数。如:CA1053+1:CZ433-1</span>
</el-col>
<el-col :span="24">
<el-form-item label="配载航班" prop="flightRank">
<el-input type="textarea" v-model="form.flightRank" :rows="4"></el-input>
</el-form-item>
</el-col>
<el-col :span="24">
<el-form-item label="周期段">
<el-checkbox-group v-model="dayOfWeek">
<el-checkbox v-for="item in dayOfWeekList" :key="item" :label="item" :name="item"></el-checkbox>
</el-checkbox-group>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm">确 定</el-button>
<el-button @click="cancel">取 消</el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
findSourceFlightRulesApi,
sourceFlightRulesSaveApi,
delOrEnableORDisableApi,
findSourceFlightAndFlightDateApi
} from "@/api/sourceFlightRules";
export default {
name: "SourceFlightRules",
data() {
return {
// 选中数组
ids: [],
// 非单个禁用
single: true,
// 非多个禁用
multiple: true,
// data 中设定
pickerOptionsStart: {
disabledDate: time => {
let endDateVal = this.form.endDate;
if (endDateVal) {
return time.getTime() > new Date(endDateVal).getTime() || time.getTime() < new Date().getTime() - 24 *
60 * 60 * 1000;
} else {
return time.getTime() < new Date().getTime() - 24 * 60 * 60 * 1000;
}
}
},
pickerOptionsEnd: {
disabledDate: time => {
let beginDateVal = this.form.startDate;
if (beginDateVal) {
return time.getTime() < new Date(beginDateVal).getTime();
} else {
return time.getTime() < new Date().getTime() - 24 * 60 * 60 * 1000;
}
}
},
//周期段
dayOfWeekList: ['D1', 'D2', 'D3', 'D4', 'D5', 'D6', 'D7'],
// 遮罩层
loading: false,
// 遮罩层
loadingFlightDate: false,
// 弹出层标题
title: "",
// 总条数
total: 0,
// 原航班规则数据
sourceFlightRulesList: [],
//目的航班数据
sourceFlightAndFlightDate: [],
statusList: [{
'id': 1,
'name': '有效'
}, {
'id': 3,
'name': '停用'
}],
// 新增修改查看规则弹出层
open: false,
// 是否显示查看目的航班弹出层
openFlightDate: false,
// 查询参数
queryParams: {
start: 0, //当前条数【代表第几条数据 +1开始】
pageNum: 1,
limit: 20, //一页显示多少条数据
sourceFlightNo: undefined, //原航班号
status: undefined, //状态
flightDate: undefined //日期
},
dayOfWeek: [],
// 表单参数
form: {
dayOfWeek: []
},
currentRow: null,
// 表单校验
rules: {
sourceFlightNo: [{
required: true,
message: "原航班号不能为空",
trigger: "blur"
}],
flightRank: [{
required: true,
message: "配载航班不能为空",
trigger: "blur"
}],
}
};
},
created() {
this.findSourceFlightRules();
},
methods: {
// 多选框选中数据
handleSelectionChange(selection) {
this.ids = selection.map(item => item.postId)
this.single = selection.length != 1
this.multiple = !selection.length
},
//跳转到查看,修改页面
handleClick(flightiId, handle) {
this.$router.push({
name: "Info",
params: {
handle: handle,
id: flightiId
},
});
},
/** 查询原航班顺位规则*/
findSourceFlightRules() {
//this.loading = true;
if (this.queryParams.pageNum > 1) {
this.queryParams.start = (this.queryParams.pageNum - 1) * this.queryParams.limit
} else {
this.queryParams.start = 0;
}
findSourceFlightRulesApi(this.queryParams).then(response => {
if (response.code == 200) {
this.sourceFlightRulesList = response.data.list;
this.total = response.data.totalCount;
this.loading = false;
} else {
this.msgError(response.msg);
}
});
},
/** 新增按钮操作 */
handleAdd() {
this.form = {};
this.open = true;
this.title = "添加原航班顺位规则";
this.form.id = -1;
this.dayOfWeek = [];
},
/** 修改按钮操作 */
handleUpdate(row) {
this.form = {};
this.dayOfWeek = [];
this.open = true;
this.title = "修改原航班顺位规则";
this.form = row;
this.dayOfWeek = this.form.dayOfWeek ? this.form.dayOfWeek.split(";") : [];
//this.form.dayOfWeek = this.form.dayOfWeek ? this.form.dayOfWeek.split(";") : [];
},
/** 删除 启用 停用按钮操作 */
handleDeleteorPlayorpause(row, status, statusText) {
debugger
//删除前需要停用
if (status === 0 && row.status != '3') {
this.$message({
message: '请停用后删除',
type: 'warning'
});
return;
}
this.$confirm('是否确认' + statusText + '此数据项?', "警告", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
}).then(function() {
let disable = {
id: row.id,
status: status
};
return delOrEnableORDisableApi(disable);
}).then(response => {
if (response.code == 200) {
this.findSourceFlightRules();
this.msgSuccess(statusText + "成功");
} else {
this.msgError(response.msg);
}
}).catch(function() {});
},
/** 提交按钮 */
submitForm: function() {
this.$refs["form"].validate(valid => {
if (valid) {
this.form.dayOfWeek = this.dayOfWeek.sort();
//处理数据
sourceFlightRulesSaveApi(this.form).then(response => {
if (response.code === 200) {
this.msgSuccess("保存成功");
this.open = false;
this.findSourceFlightRules();
} else {
this.msgError(response.msg);
}
});
}
});
},
// 表单重置
reset() {
this.form = {
dayOfWeek: []
};
this.resetForm("form");
},
/** 查询目的航班*/
findSourceFlightAndFlightDate() {
//校验原航班号非空
if (this.queryParams.sourceFlightNo === null || this.queryParams.sourceFlightNo === undefined || this
.queryParams.sourceFlightNo.trim() === '') {
this.$message.warning("原航班号为空");
return
}
//校验原日期非空
if (this.queryParams.flightDate === null || this.queryParams.flightDate === undefined) {
this.$message.warning("日期为空");
return
}
this.openFlightDate = true;
this.loadingFlightDate = true;
this.sourceFlightAndFlightDate = [];
findSourceFlightAndFlightDateApi(this.queryParams).then(response => {
if (response.code === 200) {
this.sourceFlightAndFlightDate = response.data;
this.loadingFlightDate = false;
} else {
this.msgError(response.msg);
}
});
},
// 目的航班弹出框返回
cancelFlightDate() {
this.openFlightDate = false;
},
// 取消按钮
cancel() {
this.open = false;
// this.reset();
},
// 状态字典翻译
statusFormat(row) {
if (row.status === '1') {
return '有效'
} else if (row.status === '2') {
return '配置中'
} else if (row.status === '3') {
return '停用'
}
return row.status;
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.queryParams.start = 0;
this.findSourceFlightRules();
}
}
};
</script>
<style>
.el-table--striped .el-table__body tr.el-table__row--striped.current-row td,
.el-table__body tr.current-row>td {
background-color: #a0cfff;
}
.el-table--striped .el-table__body tr.hover-row.el-table__row--striped>td,
.el-table__body tr.hover-row>td {
background-color: #d9ecff !important;
}
</style>