|
@@ -1,7 +1,7 @@
|
|
|
<!--
|
|
|
* @Author: zk
|
|
|
* @Date: 2022-01-17 10:39:22
|
|
|
- * @LastEditTime: 2022-05-07 16:55:50
|
|
|
+ * @LastEditTime: 2022-05-11 17:48:36
|
|
|
* @LastEditors: your name
|
|
|
* @Description: 离港01
|
|
|
-->
|
|
@@ -33,16 +33,15 @@
|
|
|
v-model="formData.currentAirport"
|
|
|
size="small"
|
|
|
filterable
|
|
|
- @change="airPortChange"
|
|
|
placeholder="请选择机场"
|
|
|
+ @change="airPortChange"
|
|
|
>
|
|
|
<el-option
|
|
|
v-for="(item, index) in AirportList"
|
|
|
:key="index"
|
|
|
:label="item.PlanLandingApt"
|
|
|
:value="item.PlanLandingApt"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
+ />
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
<el-form-item prop="startDate">
|
|
@@ -71,14 +70,17 @@
|
|
|
<div class="box-item">
|
|
|
<p>预计装载总数:</p>
|
|
|
<li
|
|
|
- :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"
|
|
|
v-for="(item, index) in orderNum"
|
|
|
:key="index"
|
|
|
+ :class="{ 'number-item': !isNaN(item), 'mark-item': isNaN(item) }"
|
|
|
>
|
|
|
<span v-if="!isNaN(item)">
|
|
|
<i ref="numberItem">0123456789</i>
|
|
|
</span>
|
|
|
- <span class="comma" v-else>{{ item }}</span>
|
|
|
+ <span
|
|
|
+ v-else
|
|
|
+ class="comma"
|
|
|
+ >{{ item }}</span>
|
|
|
</li>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
@@ -96,9 +98,11 @@
|
|
|
/>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
- <el-button size="small" type="primary" @click="onSubmit(1)"
|
|
|
- >搜索</el-button
|
|
|
- >
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ type="primary"
|
|
|
+ @click="onSubmit(1)"
|
|
|
+ >搜索</el-button>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-switch
|
|
@@ -112,8 +116,11 @@
|
|
|
<img
|
|
|
class="checkTime msgImg"
|
|
|
src="../../../../assets/departure/ic_time.png"
|
|
|
- />
|
|
|
- <el-dropdown-menu slot="dropdown" class="time-zone">
|
|
|
+ >
|
|
|
+ <el-dropdown-menu
|
|
|
+ slot="dropdown"
|
|
|
+ class="time-zone"
|
|
|
+ >
|
|
|
<el-dropdown-item>国内Local/国际UTC</el-dropdown-item>
|
|
|
<el-dropdown-item>Local</el-dropdown-item>
|
|
|
<el-dropdown-item>UTC</el-dropdown-item>
|
|
@@ -125,7 +132,7 @@
|
|
|
class="msgImg"
|
|
|
src="../../../../assets/departure/ic_setting.png"
|
|
|
@click="show"
|
|
|
- />
|
|
|
+ >
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button
|
|
@@ -166,15 +173,18 @@
|
|
|
:prop="item.statCode"
|
|
|
:label="item.statName"
|
|
|
:width="item.width"
|
|
|
- :filters="flightBaggageTableFilters[item.statCode]"
|
|
|
+ :filters="tableDataFilters[item.statCode]"
|
|
|
:filter-method="
|
|
|
- flightBaggageTableFilters[item.statCode] && filterHandler
|
|
|
+ tableDataFilters[item.statCode] && filterHandler
|
|
|
"
|
|
|
/>
|
|
|
</el-table>
|
|
|
</div>
|
|
|
<!--列设置-->
|
|
|
- <Dialog :flag="dialogFlag" class="dialog-check-cols">
|
|
|
+ <Dialog
|
|
|
+ :flag="dialogFlag"
|
|
|
+ class="dialog-check-cols"
|
|
|
+ >
|
|
|
<div class="col-dialog">
|
|
|
<div class="title">列设置</div>
|
|
|
<div class="content">
|
|
@@ -193,10 +203,16 @@
|
|
|
/>
|
|
|
</div>
|
|
|
<div class="foot right t30">
|
|
|
- <el-button size="medium" class="r24" type="primary" @click="onCheck"
|
|
|
- >确定</el-button
|
|
|
- >
|
|
|
- <el-button size="medium" @click="hide">取消</el-button>
|
|
|
+ <el-button
|
|
|
+ size="medium"
|
|
|
+ class="r24"
|
|
|
+ type="primary"
|
|
|
+ @click="onCheck"
|
|
|
+ >确定</el-button>
|
|
|
+ <el-button
|
|
|
+ size="medium"
|
|
|
+ @click="hide"
|
|
|
+ >取消</el-button>
|
|
|
</div>
|
|
|
</div>
|
|
|
</Dialog>
|
|
@@ -204,115 +220,115 @@
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-import Dialog from "@/layout/components/Dialog";
|
|
|
-import terminalMixin from "../../mixins/terminal";
|
|
|
-import formMixin from "../../mixins/form";
|
|
|
-import tableColsMixin from "../../mixins/tableCols";
|
|
|
-import { getQuery } from "@/api/flight";
|
|
|
+import Dialog from '@/layout/components/Dialog'
|
|
|
+import terminalMixin from '../../mixins/terminal'
|
|
|
+import formMixin from '../../mixins/form'
|
|
|
+import tableColsMixin from '../../mixins/tableCols'
|
|
|
+import { getQuery } from '@/api/flight'
|
|
|
|
|
|
export default {
|
|
|
- name: "DepartureTerminalView",
|
|
|
+ name: 'DepartureTerminalView',
|
|
|
components: { Dialog },
|
|
|
mixins: [terminalMixin, formMixin, tableColsMixin],
|
|
|
data() {
|
|
|
return {
|
|
|
- orderNum: ["0", "0", "0", "0"], // 默认总数
|
|
|
+ orderNum: ['0', '0', '0', '0'], // 默认总数
|
|
|
// 初始表头
|
|
|
tableCols: [
|
|
|
{
|
|
|
- statCode: "FlightNO",
|
|
|
- statName: "航班号",
|
|
|
- width: 100,
|
|
|
+ statCode: 'FlightNO',
|
|
|
+ statName: '航班号',
|
|
|
+ width: 100
|
|
|
},
|
|
|
{
|
|
|
- statCode: "FlightDate",
|
|
|
- statName: "执飞日期",
|
|
|
- width: 105,
|
|
|
+ statCode: 'FlightDate',
|
|
|
+ statName: '执飞日期',
|
|
|
+ width: 105
|
|
|
},
|
|
|
{
|
|
|
- statCode: "arrivalTime",
|
|
|
- statName: "到港时间",
|
|
|
- width: 150,
|
|
|
+ statCode: 'arrivalTime',
|
|
|
+ statName: '到港时间',
|
|
|
+ width: 150
|
|
|
},
|
|
|
{
|
|
|
- statCode: "departureTerminal",
|
|
|
- statName: "起飞航站",
|
|
|
+ statCode: 'departureTerminal',
|
|
|
+ statName: '起飞航站'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "arrivalTerminal",
|
|
|
- statName: "到达航站",
|
|
|
+ statCode: 'arrivalTerminal',
|
|
|
+ statName: '到达航站'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "luggageCarousel",
|
|
|
- statName: "行李转盘",
|
|
|
+ statCode: 'luggageCarousel',
|
|
|
+ statName: '行李转盘'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "parkingSpace",
|
|
|
- statName: "停机位",
|
|
|
+ statCode: 'parkingSpace',
|
|
|
+ statName: '停机位'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "checkIns",
|
|
|
- statName: "值机数",
|
|
|
+ statCode: 'checkIns',
|
|
|
+ statName: '值机数'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "projectedLoad",
|
|
|
- statName: "预计装载",
|
|
|
+ statCode: 'projectedLoad',
|
|
|
+ statName: '预计装载'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "loadedQuantity",
|
|
|
- statName: "已装载",
|
|
|
+ statCode: 'loadedQuantity',
|
|
|
+ statName: '已装载'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "numberOfDestinationArrivals",
|
|
|
- statName: "到达",
|
|
|
+ statCode: 'numberOfDestinationArrivals',
|
|
|
+ statName: '到达'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "endPointNotReached",
|
|
|
- statName: "未到达",
|
|
|
+ statCode: 'endPointNotReached',
|
|
|
+ statName: '未到达'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "specialQuantity",
|
|
|
- statName: "特殊",
|
|
|
+ statCode: 'specialQuantity',
|
|
|
+ statName: '特殊'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "numberOfClaims",
|
|
|
- statName: "理赔",
|
|
|
+ statCode: 'numberOfClaims',
|
|
|
+ statName: '理赔'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "uninstalled",
|
|
|
- statName: "已卸载",
|
|
|
+ statCode: 'uninstalled',
|
|
|
+ statName: '已卸载'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "numberToBeUninstalled",
|
|
|
- statName: "待卸载",
|
|
|
+ statCode: 'numberToBeUninstalled',
|
|
|
+ statName: '待卸载'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "terminateArrivalQuantity",
|
|
|
- statName: "到达",
|
|
|
+ statCode: 'terminateArrivalQuantity',
|
|
|
+ statName: '到达'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "terminateUnreachedQuantity",
|
|
|
- statName: "未到达",
|
|
|
+ statCode: 'terminateUnreachedQuantity',
|
|
|
+ statName: '未到达'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "quantityShipped",
|
|
|
- statName: "已交运",
|
|
|
+ statCode: 'quantityShipped',
|
|
|
+ statName: '已交运'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "undeliveredQuantity",
|
|
|
- statName: "未交运",
|
|
|
+ statCode: 'undeliveredQuantity',
|
|
|
+ statName: '未交运'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "numberOfContainers",
|
|
|
- statName: "容器",
|
|
|
+ statCode: 'numberOfContainers',
|
|
|
+ statName: '容器'
|
|
|
},
|
|
|
{
|
|
|
- statCode: "numberOfBulk",
|
|
|
- statName: "散装",
|
|
|
- },
|
|
|
+ statCode: 'numberOfBulk',
|
|
|
+ statName: '散装'
|
|
|
+ }
|
|
|
],
|
|
|
AirportList: [],
|
|
|
- flightBaggageTableFilters: {
|
|
|
+ tableDataFilters: {
|
|
|
FlightNO: [],
|
|
|
FlightDate: [],
|
|
|
asarrivalTime: [],
|
|
@@ -320,55 +336,63 @@ export default {
|
|
|
arrivalTerminal: [],
|
|
|
luggageCarousel: [],
|
|
|
parkingSpace: [],
|
|
|
- numberOfContainers: [],
|
|
|
-
|
|
|
+ numberOfContainers: []
|
|
|
},
|
|
|
loopEvent: null,
|
|
|
leaveCount: 0,
|
|
|
- baggageCount: 0,
|
|
|
- };
|
|
|
+ baggageCount: 0
|
|
|
+ }
|
|
|
},
|
|
|
created() {
|
|
|
- this.getAirPortData();
|
|
|
+ this.getAirPortData()
|
|
|
+ },
|
|
|
+ mounted() {
|
|
|
+ const that = this
|
|
|
+ this.loopEvent = setInterval(function () {
|
|
|
+ that.getTableData()
|
|
|
+ }, 3000)
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ clearInterval(this.loopEvent)
|
|
|
},
|
|
|
methods: {
|
|
|
airPortChange() {
|
|
|
- this.getTableData();
|
|
|
+ this.getTableData()
|
|
|
},
|
|
|
- //选择机场
|
|
|
+ // 选择机场
|
|
|
async getAirPortData() {
|
|
|
try {
|
|
|
const res = await getQuery({
|
|
|
id: 67,
|
|
|
- dataContent: [],
|
|
|
- });
|
|
|
- if (res.code == 0) {
|
|
|
- this.AirportList = res.returnData;
|
|
|
- this.formData.currentAirport = "PEK";
|
|
|
- this.getTableData();
|
|
|
+ dataContent: []
|
|
|
+ })
|
|
|
+ if (Number(res.code) === 0) {
|
|
|
+ this.AirportList = res.returnData
|
|
|
+ this.formData.currentAirport = 'PEK'
|
|
|
+ this.getTableData()
|
|
|
} else {
|
|
|
- this.$message.error(res.message);
|
|
|
+ this.$message.error(res.message)
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- console.log("出错了", error);
|
|
|
+ console.log('出错了', error)
|
|
|
}
|
|
|
},
|
|
|
tableRowClassName({ row, rowIndex }) {
|
|
|
- if (row.hasTakenOff == 0) {
|
|
|
- if (rowIndex == this.leaveCount - 1) {
|
|
|
- return "bgl-hui redBorder";
|
|
|
+ if (row.hasTakenOff === 0) {
|
|
|
+ if (rowIndex === this.leaveCount - 1) {
|
|
|
+ return 'bgl-hui redBorder'
|
|
|
} else {
|
|
|
- return "bgl-hui";
|
|
|
+ return 'bgl-hui'
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
tableCellClassName({ row, column }) {
|
|
|
if (
|
|
|
- column.property === "transfer_all" ||
|
|
|
- column.property === "departureAnomaly" ||
|
|
|
- column.property === "riskWarning"
|
|
|
+ column.property === 'transfer_all' ||
|
|
|
+ column.property === 'departureAnomaly' ||
|
|
|
+ column.property === 'riskWarning'
|
|
|
) {
|
|
|
- return "bgl-huang";
|
|
|
+ return 'bgl-huang'
|
|
|
}
|
|
|
},
|
|
|
// 获取表单下拉框数据
|
|
@@ -383,107 +407,90 @@ export default {
|
|
|
// },
|
|
|
// 获取表格数据
|
|
|
async getTableData() {
|
|
|
- let arr = [
|
|
|
- this.formData.currentAirport,
|
|
|
- this.formData.startDate,
|
|
|
- this.formData.endDate,
|
|
|
- ];
|
|
|
+ const arr = [this.formData.currentAirport, this.formData.startDate, this.formData.endDate]
|
|
|
try {
|
|
|
const res = await getQuery({
|
|
|
id: 38,
|
|
|
- dataContent: [...arr, ...arr, ...arr],
|
|
|
- });
|
|
|
- if (res.code == 0) {
|
|
|
- this.initTableData(res.returnData);
|
|
|
+ dataContent: [...arr, ...arr, ...arr]
|
|
|
+ })
|
|
|
+ if (Number(res.code) === 0) {
|
|
|
+ this.initTableData(res.returnData)
|
|
|
} else {
|
|
|
- console.log(res.message);
|
|
|
+ console.log(res.message)
|
|
|
}
|
|
|
} catch (error) {
|
|
|
- clearInterval(this.loopEvent);
|
|
|
- console.log("出错了", error);
|
|
|
+ clearInterval(this.loopEvent)
|
|
|
+ console.log('出错了', error)
|
|
|
}
|
|
|
},
|
|
|
initTableData(tableData) {
|
|
|
- this.leaveCount = 0;
|
|
|
- this.baggageCount = 0;
|
|
|
- tableData.forEach((item) => {
|
|
|
- if (item.hasTakenOff == 0) {
|
|
|
- this.leaveCount++;
|
|
|
+ this.leaveCount = 0
|
|
|
+ this.baggageCount = 0
|
|
|
+ tableData.forEach(item => {
|
|
|
+ if (item.hasTakenOff === 0) {
|
|
|
+ this.leaveCount++
|
|
|
}
|
|
|
// item["waitfanj"] = item["noCheckInNumber"] - item["unLoad"];
|
|
|
- this.baggageCount = this.baggageCount + item.projectedLoad;
|
|
|
- });
|
|
|
- this.tableData = this._.sortBy(tableData, [
|
|
|
- "FlightDate",
|
|
|
- "PlanDepartureTime",
|
|
|
- ]);
|
|
|
- this.setTableFilters();
|
|
|
- this.toOrderNum(this.baggageCount);
|
|
|
+ this.baggageCount = this.baggageCount + item.projectedLoad
|
|
|
+ })
|
|
|
+ this.tableData = this._.sortBy(tableData, ['FlightDate', 'PlanDepartureTime'])
|
|
|
+ this.setTableFilters(this.tableData, this.tableDataFilters)
|
|
|
+ this.toOrderNum(this.baggageCount)
|
|
|
// setInterval(() => {
|
|
|
// this.baggageCount = this.baggageCount+1;
|
|
|
// // 这里输入数字即可调用
|
|
|
// }, 2000);
|
|
|
},
|
|
|
// 表格添加过滤条件
|
|
|
- setTableFilters() {
|
|
|
- this.tableData.forEach((item) => {
|
|
|
- Object.keys(this.flightBaggageTableFilters).forEach((key) => {
|
|
|
- if (
|
|
|
- (item[key] ?? "") !== "" &&
|
|
|
- this.flightBaggageTableFilters[key].every(
|
|
|
- (obj) => obj.value !== item[key]
|
|
|
- )
|
|
|
- ) {
|
|
|
- this.flightBaggageTableFilters[key].push({
|
|
|
- text: item[key],
|
|
|
- value: item[key],
|
|
|
- });
|
|
|
- }
|
|
|
- this.flightBaggageTableFilters[key] = this._.sortBy(
|
|
|
- this.flightBaggageTableFilters[key],
|
|
|
- ["value"]
|
|
|
- );
|
|
|
- });
|
|
|
- });
|
|
|
+ setTableFilters(tableData = this.tableData, filters = this.tableDataFilters) {
|
|
|
+ const tempSets = {}
|
|
|
+ Object.keys(filters).forEach(key => {
|
|
|
+ tempSets[key] = new Set()
|
|
|
+ })
|
|
|
+ tableData.forEach(item => {
|
|
|
+ Object.keys(tempSets).forEach(key => {
|
|
|
+ (item[key] ?? '') !== '' && tempSets[key].add(item[key])
|
|
|
+ })
|
|
|
+ })
|
|
|
+ Object.keys(tempSets).forEach(key => {
|
|
|
+ filters[key] = this._.orderBy(
|
|
|
+ [...tempSets[key]].map(value => ({
|
|
|
+ text: value,
|
|
|
+ value
|
|
|
+ })),
|
|
|
+ o => o.value
|
|
|
+ )
|
|
|
+ })
|
|
|
},
|
|
|
filterHandler(value, row, column) {
|
|
|
- const property = column["property"];
|
|
|
- return row[property] === value;
|
|
|
+ const property = column['property']
|
|
|
+ return row[property] === value
|
|
|
},
|
|
|
setNumberTransform() {
|
|
|
- const numberItems = this.$refs.numberItem; // 拿到数字的ref,计算元素数量
|
|
|
- const numberArr = this.orderNum.filter((item) => !isNaN(item));
|
|
|
+ const numberItems = this.$refs.numberItem // 拿到数字的ref,计算元素数量
|
|
|
+ const numberArr = this.orderNum.filter(item => !isNaN(item))
|
|
|
// 结合CSS 对数字字符进行滚动,显示订单数量
|
|
|
for (let index = 0; index < numberItems.length; index++) {
|
|
|
- const elem = numberItems[index];
|
|
|
- elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`;
|
|
|
+ const elem = numberItems[index]
|
|
|
+ elem.style.transform = `translate(-50%, -${numberArr[index] * 10}%)`
|
|
|
}
|
|
|
},
|
|
|
|
|
|
toOrderNum(num) {
|
|
|
- num = num.toString();
|
|
|
+ num = num.toString()
|
|
|
if (num.length < 4) {
|
|
|
- num = "0" + num; // 如未满八位数,添加"0"补位
|
|
|
- this.toOrderNum(num); // 递归添加"0"补位
|
|
|
+ num = '0' + num // 如未满八位数,添加"0"补位
|
|
|
+ this.toOrderNum(num) // 递归添加"0"补位
|
|
|
} else if (num.length === 4) {
|
|
|
- this.orderNum = num.split(""); // 将其便变成数据,渲染至滚动数组
|
|
|
+ this.orderNum = num.split('') // 将其便变成数据,渲染至滚动数组
|
|
|
} else {
|
|
|
// 订单总量数字超过八位显示异常
|
|
|
- this.$message.warning("总量数字过大");
|
|
|
+ this.$message.warning('总量数字过大')
|
|
|
}
|
|
|
- this.setNumberTransform();
|
|
|
- },
|
|
|
- },
|
|
|
- mounted() {
|
|
|
- let that = this;
|
|
|
- this.loopEvent = setInterval(function () {
|
|
|
- that.getTableData();
|
|
|
- }, 3000);
|
|
|
- },
|
|
|
- beforeDestroy() {
|
|
|
- clearInterval(this.loopEvent);
|
|
|
- },
|
|
|
-};
|
|
|
+ this.setNumberTransform()
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
@@ -499,7 +506,7 @@ export default {
|
|
|
optgroup,
|
|
|
select,
|
|
|
textarea {
|
|
|
- font-family: Helvetica, "Microsoft YaHei";
|
|
|
+ font-family: Helvetica, 'Microsoft YaHei';
|
|
|
font-size: 14px;
|
|
|
}
|
|
|
.el-switch__label {
|
|
@@ -619,7 +626,7 @@ export default {
|
|
|
padding: 0;
|
|
|
text-align: center;
|
|
|
font-size: 14px;
|
|
|
- font-family: Helvetica, "Microsoft YaHei";
|
|
|
+ font-family: Helvetica, 'Microsoft YaHei';
|
|
|
letter-spacing: 0;
|
|
|
}
|
|
|
.el-table__header-wrapper {
|
|
@@ -644,7 +651,7 @@ export default {
|
|
|
&.redBorder {
|
|
|
position: relative;
|
|
|
&::after {
|
|
|
- content: "";
|
|
|
+ content: '';
|
|
|
position: absolute;
|
|
|
left: 0;
|
|
|
bottom: 0;
|