作者 xudada

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	config/index.js
#	src/routes.js
正在显示 48 个修改的文件 包含 3462 行增加271 行删除

要显示太多修改。

为保证性能只显示 48 of 48+ 个文件。

... ... @@ -38,7 +38,12 @@ module.exports = {
{
test: /\.js$/,
loader: 'babel-loader',
include: [resolve('src'), resolve('test')]
include: [
resolve('src'),
resolve('test'),
resolve('node_modules/vue-beautiful-chat/dist'),
resolve('node_modules/@kangc/v-md-editor')
]
},
{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
... ... @@ -63,7 +68,8 @@ module.exports = {
resolve('src'),
resolve('test'),
resolve('node_modules/element-ui/src'),
resolve('node_modules/element-ui/packages')
resolve('node_modules/element-ui/packages'),
resolve('node_modules/@kangc/v-md-editor')
],
}
]
... ...
... ... @@ -43,6 +43,15 @@ module.exports = {
'^/api/task/': '/', //这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
}
},
'/api/ai-agent':{
target: 'http://192.168.1.77',//设置你调用的接口域名和端口号 别忘了加http
// target: 'http://192.168.1.189:12343',//设置你调用的接口域名和端口号 别忘了加http
// target: 'http://localhost:12343',//设置你调用的接口域名和端口号 别忘了加http
changeOrigin: true,
pathRewrite: {
'^/api/ai-agent': '/', //这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
}
},
'/api':{
target: 'http://192.168.1.63:12343',//设置你调用的接口域名和端口号 别忘了加http
// target: 'http://192.168.1.189:12343',//设置你调用的接口域名和端口号 别忘了加http
... ...
... ... @@ -3,7 +3,7 @@
<head>
<meta charset="utf-8">
<title>易通链快速通关申报平台</title>
<title>物流信息平台</title>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
</head>
... ... @@ -14,4 +14,4 @@
<!-- built files will be auto injected -->
</body>
</html>
\ No newline at end of file
</html>
... ...
... ... @@ -11,6 +11,7 @@
},
"dependencies": {
"@amap/amap-jsapi-loader": "^1.0.1",
"@kangc/v-md-editor": "^1.7.12",
"@xkeshi/vue-barcode": "^1.0.0",
"axios": "^0.19.0",
"common": "^0.2.5",
... ... @@ -21,21 +22,24 @@
"eslint-plugin-html": "^6.0.2",
"eslint-plugin-vue": "^8.7.1",
"fecha": "^4.2.0",
"file-saver": "^2.0.2",
"file-saver": "^2.0.5",
"font-awesome": "^4.7.0",
"form-gen-parser": "^1.0.3",
"fs": "0.0.1-security",
"html2canvas": "^1.4.1",
"install": "^0.12.2",
"js-cookie": "^2.2.1",
"js-file-download": "^0.4.12",
"jspdf": "^1.5.3",
"jszip": "^3.2.2",
"minio": "^8.0.1",
"moment": "^2.29.4",
"npm": "^6.8.0",
"nprogress": "^0.2.0",
"prismjs": "^1.29.0",
"script-loader": "^0.7.2",
"sortablejs": "^1.15.0",
"vue": "^2.5.2",
"vue": "^2.6.11",
"vue-beautiful-chat": "^2.5.0",
"vue-count-to": "^1.0.13",
"vue-i18n": "^8.14.0",
... ... @@ -46,6 +50,7 @@
"xlsx": "^0.15.6"
},
"devDependencies": {
"@babel/plugin-syntax-class-properties": "^7.12.13",
"autoprefixer": "^6.7.2",
"axios-mock-adapter": "^1.7.1",
"babel-core": "^6.22.1",
... ... @@ -85,7 +90,7 @@
"url-loader": "^0.5.8",
"vue-loader": "^11.1.4",
"vue-style-loader": "^2.0.0",
"vue-template-compiler": "^2.2.4",
"vue-template-compiler": "^2.6.11",
"webpack": "^2.2.1",
"webpack-bundle-analyzer": "^3.4.1",
"webpack-dev-middleware": "^1.10.0",
... ...
import http from "../http";
import axios from "axios";
let baseUrl = 'hg-server-customai'
//导入excel
export const importExcel = params => { return http.postExcelData(`${baseUrl}/business/report/importFile`, params); };
//查询列表
export const fetchData = params => { return axios.get(`${baseUrl}/business/report/selectList`, { params: params }); };
//导入更新excel文件
export const importUpdateExcel = params => { return http.postExcelData(`${baseUrl}/business/report/updateFile`, params); };
\ No newline at end of file
... ...
import http from '../http.js';
let baseServiceURL = '/wlpt-cbed-system/export-receipt';
// POST请求添加出库单
export const addExportReceipt = (data) => {
return http.post(`${baseServiceURL}/addExportReceipt`, data);
};
// POST请求更新出库单信息
export const updateExportReceipt = (data) => {
return http.post(`${baseServiceURL}/updateExportReceipt`, data);
};
// DELETE请求删除出库单(使用POST以适应某些防火墙限制)
export const deleteExportReceipt = (receiptGuid) => {
return http.post(`${baseServiceURL}/deleteExportReceipt`,{},{ receiptGuid: receiptGuid });
};
// GET请求获取单一出库单信息
export const getExportReceipt = (receiptGuid) => {
return http.get(`${baseServiceURL}/getExportReceipt`, { "receiptGuid": receiptGuid } );
};
// GET请求分页查询所有出库单信息
export const selectAllByPage = (record, pageNum, pageSize) => {
return http.get(`${baseServiceURL}/selectAllByPage`, { params: { ...record, pageNum, pageSize } });
};
//POST请求上传导入的excel
export const uploadExportReceipt = (params) => {
return http.post(`${baseServiceURL}/importFromExcel`, params);
};
// 批量申报
export const batchDeclare = (data) => {
return http.post(`${baseServiceURL}/batchDeclare`, data);
};
... ...
import http from '../http.js';
let baseServiceURL = '/wlpt-cbed-system/LogInfo';
// 新增日志信息 - POST请求
export const addLogInfo = (logInfo) => {
return http.post(`${baseServiceURL}/addLogInfo`, logInfo);
};
// 更新日志信息 - POST请求
export const editLogInfo = (logInfo) => {
return http.post(`${baseServiceURL}/editLogInfo`, logInfo);
};
// 删除日志信息 - GET请求,uuid作为参数传递
export const deleteLogInfo = (uuid) => {
return http.get(`${baseServiceURL}/deleteLogInfo`, { uuid: uuid });
};
// 查询日志信息列表 - GET请求,支持分页和查询条件
export const selectAllByPage = (data,params) => {
return http.post(`${baseServiceURL}/selectAllByPage`,data, params);
};
... ...
import axios from 'axios'
import http from "../http";
let baseServiceURL = 'cross-border-service'
let baseServiceURL2 = 'wlpt-cbed-system'
//新增客户配置
export const insertCustomer = params => { return http.post(`${baseServiceURL2}/customer/insertCustomer`, params); };
//删除客户配置
export const delCustomer = params => { return axios.get(`${baseServiceURL2}/customer/delCustomer`, { params: params }); };
//更新客户配置
export const ediCustomer = params => { return http.post(`${baseServiceURL2}/customer/ediCustomer`, params); };
//客户配置列表
export const selectCustomers = params => { return axios.get(`${baseServiceURL2}/customer/selectCustomers`, { params: params }); };
// 查询客户配置所有列表
export const selectAll = params => {return axios.get(`${baseServiceURL2}/customer/selectAll`, {params: params});};
\ No newline at end of file
... ...
import axios from 'axios'
let baseServiceURL = 'wms-server-warehouse'
//危险品入库
export const dangerousImp = params => { return axios.get(`${baseServiceURL}/wms/newinventroyrecord/dangerousImport`, { params: params }); };
//危险品出库
export const dangerousExt = params => { return axios.get(`${baseServiceURL}/wms/newinventroyrecord/dangerousExt`, { params: params }); };
//预配信息查询
export const checkPre = params => { return axios.get(`${baseServiceURL}/wms/newinventroyrecord/checkPre`, { params: params }); };
... ...
import axios from 'axios'
import http from "../http";
//let baseServiceURL = 'cross-border-service'
let baseServiceURL2 = 'wlpt-cbed-system'
// let baseServiceURL2 = 'wlpt-cbed-system-dev'
//订单列表
export const selectLists = params => { return axios.get(`${baseServiceURL2}/ExportOrder/selectList`, { params: params }); };
//订单申报
export const sendOrder = params => { return http.post(`${baseServiceURL2}/ExportOrderDeclaration/sendOrder`, params); };
//根据提运单统计信息
export const billNoStatistics = params => { return axios.get(`${baseServiceURL2}/ExportListDeclaration/billNoStatistics`, { params: params }); };
// 根据guid删除订单信息
export const deleteOrder = params => {return axios.get(`${baseServiceURL2}/ExportOrder/delByClientCodeAndOrderNo`, {params: params}); };
//根据主单号批量删除订单信息
export const batchDelBillNo = params => {return axios.get(`${baseServiceURL2}/ExportOrder/batchDelBillNo`, {params: params});}
// 根据客户编号和订单号批量删除订单信息
export const batchDelOrderByBeans = params =>{return http.post(`${baseServiceURL2}/ExportOrder/deleteByBeans`,params); };
// 导入订单文件到minio
export const importExcelToMinio = params => { return http.postExcelData(`${baseServiceURL2}/import/importExcelToMinio`, params); };
// 查询导入文件列表
export const selectFilePage = params =>{return axios.get(`${baseServiceURL2}/import/selectFilePage`, { params: params }); }
// 批量导入申报
export const batchDecImport = params => { return http.postExcelData(`${baseServiceURL2}/ExportOrder/batchDecImport`, params); };
// 批量申报
export const batchDecList = params => { return http.post(`${baseServiceURL2}/ExportOrder/batchDecList`, params); };
// 主单申报
export const batchDecBillNo = params => {return http.get(`${baseServiceURL2}/ExportOrder/batchDecBillNo`, params); };
// 申请回执查询
export const selectDecRec = params => {return http.get(`${baseServiceURL2}/ExportOrder/selectDecRec`, params);}
\ No newline at end of file
... ...
... ... @@ -20,7 +20,7 @@ export const selectByliscenNo = params => { return axios.get(`${baseServiceURL}/
//出任务
export const insertSelective = params => { return http.post(`${baseServiceURL}/map/location/insertSelective`, params); };
//获取用户列表
export const getUserList = params => { return http.post(`${serviceName}/crm/list`, params) };
export const getUserList = (data,params) => { return http.post(`${serviceName}/crm/list`, data, params) };
//车辆轨迹
export const historyTrack = params => { return axios.get(`${baseServiceURL}/map/location/historyTrack`, { params: params }); };
... ... @@ -39,3 +39,26 @@ export const selectNameList = params => { return axios.get(`${baseServiceURL}/ma
//多车定位
export const queryMulVel = params => { return axios.get(`${baseServiceURL}/map/location/queryMulVel`, { params: params }); };
//车载运单查询列表
export const selectNewInventroyrecords = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/selectNewInventroyrecords`, { params: params }); };
//车载运单新增
export const addVehicleWaybill = params => { return http.post(`${baseServiceURL}/wms/vehicleWaybill/addVehicleWaybill`, params); };
//车载运单删除
export const delVehicleWaybill = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/delVehicleWaybill`, { params: params }); };
//车载运单更新
export const ediVehicleWaybill = params => { return http.post(`${baseServiceURL}/wms/vehicleWaybill/ediVehicleWaybill`, params); };
//车辆派单
export const paidan = params => { return http.post(`${baseServiceURL}/wms/vehicleWaybill/paidan`, params); };
//查询车载派单记录列表
export const selectByDispatchList = params => { return axios.get(`${baseServiceURL}/wms/tracker/selectByDispatchList`, { params: params }); };
//手动新增车载派单记录
export const addTracker = params => { return http.post(`${baseServiceURL}/wms/tracker/addTracker`, params); };
//根据派单号查询运单列表
export const selectListByDispatch = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/selectListByDispatch`, { params: params }); };
//上传EXCEL
export const UploadExcel = params => { return http.postExcelData(`${baseServiceURL}/wms/vehicleWaybill/upload`, params); };
//车载货物图片上传
export const uploadGoodsImage = params => { return http.postExcelData(`${baseServiceURL}/wms/vehicleWaybill/uploadGoodsImage`, params); };
//查询货物图片列表
export const selectPicsByDispatch = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/selectPicsByDispatch`, { params: params }); };
... ...
import http from "../http";
let base = 'ai-agent';
export const getInfo = (data,token) => {return http.postToDify(`${base}/v1/workflows/run`, data,token);};
... ...
... ... @@ -6,14 +6,26 @@ export default {
return axios({
method: 'POST', // 请求协议
url: url, // 请求的地址
data: data, // post 请求的数据
params: params,
data: data, // post 请求的实体类数据
params: params, //urlencoded 参数
timeout: 30000, // 超时时间, 单位毫秒
headers: {
'Content-Type': 'application/json;charset=UTF-8',
}
})
},
postToDify(url, data, token) {
return axios({
method: 'POST', // 请求协议
url: url, // 请求的地址
data: data, // post 请求的实体类数据
timeout: 30000, // 超时时间, 单位毫秒
headers: {
'Content-Type': 'application/json;charset=UTF-8',
'Authorization':'Bearer '+token
}
})
},
postWithFrom(url, data) {
return axios({
method: 'POST', // 请求协议
... ... @@ -48,6 +60,16 @@ export default {
}
})
},
postExcelData(url, data) {
return axios({
method: 'POST', // 请求协议
url: url, // 请求的地址
data: data, // post 请求的数据
headers: {
'Content-Type': 'multipart/form-data'
}
})
},
get(url, params) {
return axios({
method: 'GET',
... ... @@ -69,6 +91,17 @@ export default {
}
});
},
getPDF(url, params) {
return axios({
method: 'GET',
url: url,
responseType: 'blob',
params: params,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
},
put(url, params){
return axios({
method: 'PUT',
... ...
import http from '../http.js';
let MailInfoBase = 'wlpt-mail-risk-analysis/InternationalMailInfo';
// 新增国际邮件信息
export const riskManagement = (data,params) => {
return http.post(`${MailInfoBase}/riskManagementLink`, data,params);
};
// 查询搜索
export const searchListAPI = (data,params) => {
return http.post(`${MailInfoBase}/list`, data,params);
};
... ...
import Minio from 'minio';
const minioClient = new Minio.Client({
endPoint: 'http://47.99.102.169',
port: 9000,
useSSL: false,
accessKey: 'ruitai',
secretKey: 'vmvnv1v2',
});
export default minioClient;
... ...
... ... @@ -27,6 +27,13 @@ export const selectawabByid = params => {return http.get(`${base1}/awba/selectaw
export const selectList = params => {return http.get(`${base1}/awba/selectList`, params);};
export const selectByKey = params => {return http.get(`${base1}/awba/selectByKey`, params);};
//电报地址
export const addTeleAddr = params => {return axios.post(`${base1}/teleaddr/addTeleAddr`, params);};
export const delTeleAddr = params => {return http.get(`${base1}/teleaddr/delTeleAddr`, params);};
export const ediTeleAddr = params => {return axios.post(`${base1}/teleaddr/ediTeleAddr`, params);};
export const selectLists = params => {return http.get(`${base1}/teleaddr/selectLists`, params);};
//结算统计
export const selectStatistics = params => {return http.get(`${base1}/efre/selectStatistics`, params);};
... ...
import http from "../http";
let baseUrl = 'air-server-transport'
let baseUrlResultMsg = 'air-server-transport/transport/returnmsg'
//查询海关代码,机场代码
export const selectBycustomcode = params => { return http.get(`${baseUrl}/transport/customcode/selectBycustomcode`, params); };
export const selectByairportcode = params => { return http.get(`${baseUrl}/transport/airportcode/selectByairportcode`, params); };
//在港动态信息
export const insertSelective = params => { return http.post(`${baseUrl}/transport/aircraftStaying/insertSelective`, params); };
export const updateByPrimaryKeySelective = params => { return http.post(`${baseUrl}/transport/aircraftStaying/updateByPrimaryKeySelective`, params); };
export const selectLists = params => { return http.get(`${baseUrl}/transport/aircraftStaying/selectLists`, params); };
export const sendAircraftstaying = params => { return http.post(`${baseUrl}/transport/aircraftStaying/sendAircraftstaying`, params); };
//查询回执列表
export const selectReturnMsgList=params=>{return http.get(`${baseUrlResultMsg}/selectReturnMsg`, params);};
//单证申报
export const selectBillLists = params => { return http.get(`${baseUrl}/transport/bill/selectBillLists`, params); };
export const insertSelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/insertSelectiveBill`, params); };
export const updateByPrimaryKeySelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/updateByPrimaryKeySelectiveBill`, params); };
export const sendBillSdeclare = params => { return http.post(`${baseUrl}/transport/bill/sendBillSdeclare`, params); };
export const batchJZImport = params => { return http.postExcelData(`${baseUrl}/transport/bill/batchJZImport`, params); };
//预确报申报
export const selectPreList = params => { return http.get(`${baseUrl}/transport/prediction/selectList`, params); };
export const insertSelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/insertSelective`, params); };
export const updateByPrimaryKeySelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/updateByPrimaryKeySelective`, params); };
export const sendPrediction = params => { return http.post(`${baseUrl}/transport/prediction/sendPrediction`, params); };
export const canclePre = params => { return http.post(`${baseUrl}/transport/prediction/canclePre`, params); };
... ...
import http from "../http";
let baseServiceURL = 'wms-server-warehouse/common';
// 新增联合国危险品编码信息
export const insertUnCodeInfo = (data) => {
return http.post(`${baseServiceURL}/unCode/insert`, data);
};
// 更新联合国危险品编码信息
export const updateUnCodeInfo = (data) => {
return http.post(`${baseServiceURL}/unCode/update`, data);
};
// 删除单个联合国危险品编码信息
export const deleteUnCodeById = (params) => {
return http.get(`${baseServiceURL}/unCode/delete`, { params: params });
};
// 查询单个联合国危险品编码信息
export const selectUnCodeById = (params) => {
return http.get(`${baseServiceURL}/unCode/getById`, { params: params });
};
// 根据危险品编码进行查询
export const selectByUnCode = (params) => {
return http.get(`${baseServiceURL}/unCode/getByUnCode`, params);
};
// 分页查询所有UN代码信息
export const getAllUnCodesByPage = (data,params) => {
return http.post(`${baseServiceURL}/unCode/getAllByPage`, data,params);
};
... ...
import http from "../http";
import axios from "axios";
let baseUrl = 'zhidan-service'
//pdf导出
export const extPdf = params => { return http.getPDF(`${baseUrl}/zhidan/extpdf`, params); };
//excel导出
export const extExcel = params => { return http.getPDF(`${baseUrl}/zhidan/extexcel`, params); };
//导入excel
export const importExcel = params => { return http.postExcelData(`${baseUrl}/zhidan/importexcel`, params); };
//查询列表
export const selectLists = params => { return axios.get(`${baseUrl}/zhidan/selectLists`, { params: params }); };
//费率新增
export const addRate = params =>{return http.post(`${baseUrl}/rate/addRate`, params);};
//费率删除
export const delRate = params => { return axios.get(`${baseUrl}/rate/delRate`, { params: params }); };
//费率更新
export const ediRate = params =>{return http.post(`${baseUrl}/rate/ediRate`, params);};
//费率查询
export const selectRate = params => { return axios.get(`${baseUrl}/rate/selectRate`, { params: params }); };
... ...
... ... @@ -20,7 +20,7 @@
<div align="center" style="height: 66px;line-height: 66px;">
<!-- <img id="logo" src="~@/assets/logo1.png">-->
<h1 id="logo-text" style="color:white;display: inline-block;font-weight: 600;font-size: 15px;line-height: 50px"> &nbsp; &nbsp;物流公共信息服务平台</h1>
<h1 id="logo-text" style="color:white;display: inline-block;font-weight: 600;font-size: 15px;line-height: 50px"> &nbsp; &nbsp;物流信息平台</h1>
</div>
<template v-for="(item,index) in menu">
<el-submenu :index="index+''" v-if="item.hasChild">
... ...
... ... @@ -18,6 +18,26 @@ import sys_init from '@/common/init/sys_init'
import Print from 'vue-print-nb'
// 条形组件
import VueBarcode from '@xkeshi/vue-barcode'; //导入条形码插件
// markdown 编辑器
import VueMarkdownEditor from '@kangc/v-md-editor';
import '@kangc/v-md-editor/lib/style/base-editor.css';
import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js';
import '@kangc/v-md-editor/lib/theme/style/vuepress.css';
import createTodoListPlugin from '@kangc/v-md-editor/lib/plugins/todo-list/index';
import '@kangc/v-md-editor/lib/plugins/todo-list/todo-list.css';
import createEmojiPlugin from '@kangc/v-md-editor/lib/plugins/emoji/index';
import '@kangc/v-md-editor/lib/plugins/emoji/emoji.css'
import Prism from 'prismjs';
VueMarkdownEditor.use(vuepressTheme, {
Prism,
});
VueMarkdownEditor.use(createTodoListPlugin());
VueMarkdownEditor.use(createEmojiPlugin());
Vue.use(VueMarkdownEditor);
Vue.component('barcode', VueBarcode);
... ...
import Login from './views/Login.vue'
import Login from './views/Login1.vue'
import NotFound from './views/404.vue'
import Home from './views/Home.vue'
import HomeNew from './views/HomeNew.vue'
... ... @@ -82,7 +82,7 @@ import Location from './views/empt/Location.vue'
//运输工具 通用业务申报
import Route from './views/airtransport/route.vue'
import Bill from './views/airtransport/bill.vue'
import Bills from './views/airtransport/bills.vue'
import Flight from './views/airtransport/flight.vue'
import Flightplan from './views/airtransport/flightplan.vue'
import Aircraft from './views/airtransport/aircraft.vue'
... ... @@ -112,6 +112,9 @@ import myTask from './views/technological/myTask.vue'
import definition from './views/technological/definition.vue'
//仓库场站管理
import WaybillRate from './views/deploy/waybillRate.vue'
import Tracker from './views/deploy/Tracker.vue'
import VehicleWaybill from './views/deploy/VehicleWaybill.vue'
import vehicle from './views/deploy/vehicle.vue'
import trajectory from './views/deploy/trajectory.vue'
import attendance from './views/deploy/attendance.vue'
... ... @@ -126,6 +129,12 @@ import area from './views/deploy/area.vue'
import seller from './views/deploy/seller.vue'
import classification from './views/deploy/classification.vue'
import subscribe from './views/deploy/subscribe.vue'
import DangerousImport from './views/deploy/dangerImport.vue'
import DangerousExt from './views/deploy/dangerExt.vue'
import UNcode from './views/wms/UNcode.vue'
//跨境电商
import exportRecipt from "@/views/cbecd/export_recipt.vue";
... ... @@ -176,8 +185,11 @@ import Express from './views/express_system/express.vue'
//给海龙做的货运单
import Way from './views/nav3/Way.vue'
import Telegram from './views/nav3/Telegram.vue'
import TeleAddr from "./views/nav3/TeleAddr.vue";
//朱总让做的网页在线客服
import Webdialog from './views/bus/Webdialog.vue'
import C6Way from './views/nav3/C6Way.vue'
import DBstatistics from './views/nav3/statistics.vue'
//转运申请
import Transport from './views/nav4/Transport.vue'
... ... @@ -190,7 +202,27 @@ import Dispatch from "./views/dispatch/Dispatch";
import multiple from "./views/deploy/multiple";
import satellite from "./views/deploy/satellite";
/*出口订单*/
import ExortOrder from './views/exportorder/Exportorder.vue'
import CustomerConfig from './views/exportorder/CustomerConfig.vue'
import ManagerWaybill from "./views/exportorder/ManagerWaybill.vue";
import ImportOrder from './views/exportorder/ImportOrder';
/*制单管理*/
import ZhiDan from './views/zhidan/zhidan.vue'
import Rate from './views/zhidan/rate.vue'
//运输工具2.0
import zaigang from './views/airtransport/zaigang.vue'
import gongtui from './views/airtransport/gongtui.vue'
import danzheng from './views/airtransport/danzheng.vue'
import yqdeclare from './views/airtransport/yqdeclare.vue'
// 邮件风控
import MailRisk from './views/mail_risk/index.vue'
// AI智慧关务
import AiCoustoms from "./views/AiCoustoms/AiCoustoms.vue";
let routes = [
{
... ... @@ -216,6 +248,28 @@ let routes = [
]
},
{
path: '/order',
component: HomeNew,
name: '出口订单管理',
iconCls: 'el-icon-collection',
children: [
{path: '/ExortOrder', component: ExortOrder, name: '出口订单'},
{path: '/CustomerConfig', component: CustomerConfig, name: '客户配置'},
{path: '/ManagerWaybill', component: ManagerWaybill, name: '主单管理'},
{path: '/import', component: ImportOrder, name: '订单预录入'}
]
},
{
path: '/zhidan',
component: HomeNew,
name: '制单管理',
iconCls: 'el-icon-collection',
children: [
{path: '/ZhiDan', component: ZhiDan, name: '制单信息'},
{path: '/Rate', component: Rate, name: '费率设置'}
]
},
{
path: '/',
component: HomeNew,
name: 'Charts',
... ... @@ -234,7 +288,10 @@ let routes = [
children: [
{path: '/Way', component: Way, name: '货运单'},
{path: '/Telegram', component: Telegram, name: '电报查询'},
{path: '/Webdialog', component: Webdialog, name: '在线客服'}
{path: '/Webdialog', component: Webdialog, name: '在线客服'},
{path: '/TeleAddr', component: TeleAddr, name: '电报地址'},
{path: '/C6Way', component: C6Way, name: 'C6货运单'},
{path: '/DBstatistics', component: DBstatistics, name: '结算统计'},
]
},
{
... ... @@ -305,7 +362,7 @@ let routes = [
children: [
{ path: '/user', component: User, name: '用户管理' },
{ path: '/role', component: Role, name: '组织机构' },
{ path: '/crm', component: CRM, name: '组织机构' },
{ path: '/crm', component: CRM, name: '客户资源' },
{ path: '/perm', component: Perm, name: '权限管理' },
{ path: '/dataperm', component: DataPerm, name: '数据权限' },
{ path: '/log', component: LOG, name: '系统日志' },
... ... @@ -419,6 +476,7 @@ let routes = [
]
},
{
path: '/nmms2',
component: HomeNew,
... ... @@ -466,7 +524,7 @@ let routes = [
iconCls:'el-icon-goods',
children:[
{path:'/route',component:Route,name:'航线申报'},
{path:'/bill',component:Bill,name:'单据申报'},
{path:'/bills',component:Bills,name:'单据申报'},
{path:'/flights',component:Flight,name:'航班申报'},
{path:'/flightplan',component:Flightplan,name:'当日飞行计划'},
{path:'/aircraft',component:Aircraft,name:'通用航空器申报'},
... ... @@ -572,6 +630,9 @@ let routes = [
name: '仓库场站管理',
iconCls:'el-icon-goods',
children:[
{path:'/WaybillRate',component:WaybillRate,name:'费率设置'},
{path:'/Tracker',component:Tracker,name:'派单记录'},
{path:'/VehicleWaybill',component:VehicleWaybill,name:'车载运单'},
{path:'/vehicle',component:vehicle,name:'车辆定位'},
{path:'/trajectory',component:trajectory,name:'车辆轨迹'},
{path:'/attendance',component:attendance,name:'出勤历史'},
... ... @@ -588,6 +649,9 @@ let routes = [
{path:'/seller',component:seller,name:'商品管理'},
{path:'/classification',component:classification,name:'分类监管申请'},
{path:'/subscribe',component:subscribe,name:'分类监管查询'},
{path:'/DangerousImport',component:DangerousImport,name:'危险品入库'},
{path:'/DangerousExt',component:DangerousExt,name:'危险品出库'},
{path:'/unCode',component:UNcode,name:'国际危险品代码管理'},
]
},
{
... ... @@ -624,11 +688,11 @@ let routes = [
{
path: '/at',
component: HomeNew,
name: '在港动态',
name: '在港申报',
iconCls:'el-icon-goods',
children:[
{path:'/dynamics',component:dynamics,name:'在港动态信息'},
{path:'/matter',component:matter,name:'物料申报管理'}
{path:'/dynamics',component:dynamics,name:'在港动态申报'},
{path:'/matter',component:matter,name:'供退物料申报'}
]
},
{
... ... @@ -651,6 +715,24 @@ let routes = [
{path:'/express',component:Express,name:'快邮舱单申报'},
]
},
{
path: '/customs_mail',
component: HomeNew,
name: '邮件监管',
iconCls:'el-icon-wind-power',
children:[
{path:'/mail_risk_analysis',component:MailRisk,name:'风控分析'},
]
},
{
path: '/cbecd',
component: HomeNew,
name: '跨境电商申报',
iconCls:'el-icon-wind-power',
children:[
{path:'/cbecd-export-receipt',component:exportRecipt,name:'收款单申报'},
]
},
{
path: '/',
... ... @@ -715,6 +797,27 @@ let routes = [
]
},
{
path: '/zg',
component: HomeNew,
name: '在港申报2.0',
iconCls:'el-icon-goods',
children:[
{path:'/gongtui',component:gongtui,name:'供退物料申报'},
{path:'/zaigang',component:zaigang,name:'在港动态申报'},
{path:'/danzheng',component:danzheng,name:'单证申报'},
{path:'/yqdeclare',component:yqdeclare,name:'预确报申报'}
]
},
{
path: '/ai',
component: HomeNew,
name: '智慧关务',
iconCls: 'el-icon-collection',
children: [
{path: '/AiCoustoms', component: AiCoustoms, name: 'Ai智慧关务'}
]
},
{
path: '/tasks',
component: () => import('./views/HomeNew.vue'),
name: '动态任务管理',
... ...
<template>
<div>
<!-- 上传Excel按钮 -->
<el-row :gutter="24">
<el-col :span="4">
<el-upload
class="upload-demo"
action=""
:before-upload="beforeUpload"
:http-request="uploadExcel"
:show-file-list="false">
<el-button size="medium" type="success">导入数据</el-button>
</el-upload>
</el-col>
<el-col :span="4">
<el-upload
class="upload-demo"
action=""
:before-upload="beforeUpload"
:http-request="uploadUpdateExcel"
:show-file-list="false">
<el-button size="medium" type="success">更新数据</el-button>
</el-upload>
</el-col>
<el-button size="medium" @click="fetchData" type="primary">查询</el-button>
</el-row>
<!-- 数据列表 -->
<el-row :gutter="24">
<el-col :span="24">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="staId" label="标识码"></el-table-column>
<el-table-column prop="iEPort" label="进出境关区"></el-table-column>
<el-table-column prop="iEPortCn" label="关区中文名称"></el-table-column>
<el-table-column prop="tradeCo" label="境内收发货人"></el-table-column>
<el-table-column prop="ownerCode" label="消费使用单位/生产销售单位"></el-table-column>
<el-table-column prop="districtCode" label="境内目的地/货源地"></el-table-column>
<el-table-column prop="districtCodeCn" label="境内目的地/货源地中文名称"></el-table-column>
<el-table-column prop="trafMode" label="运输方式"></el-table-column>
<el-table-column prop="trafModeCn" label="运输方式中文名称"></el-table-column>
<el-table-column prop="tradeMode" label="监管方式"></el-table-column>
<el-table-column prop="tradeModeCn" label="监管方式中文名称"></el-table-column>
<el-table-column prop="cutMode" label="征免性质"></el-table-column>
<el-table-column prop="cutModeCn" label="征免性质中文名称"></el-table-column>
<el-table-column prop="tradeCountry" label="启抵国"></el-table-column>
<el-table-column prop="tradeCountryCn" label="启抵国中文名称"></el-table-column>
<el-table-column prop="originCountry" label="产终国"></el-table-column>
<el-table-column prop="originCountryCn" label="产终国中文名称"></el-table-column>
<el-table-column prop="licenseNo" label="许可证编号"></el-table-column>
<el-table-column prop="manualNo" label="备案号"></el-table-column>
<el-table-column prop="grossWt" label="毛重"></el-table-column>
<el-table-column prop="endDate" label="结关日期"></el-table-column>
<el-table-column prop="codeT" label="商品编号"></el-table-column>
<el-table-column prop="codeS" label="附加编号"></el-table-column>
<el-table-column prop="qty1" label="第一数量"></el-table-column>
<el-table-column prop="unit1" label="第一计量单位"></el-table-column>
<el-table-column prop="unit1Cn" label="第一计量单位中文名称"></el-table-column>
<el-table-column prop="qty2" label="第二数量"></el-table-column>
<el-table-column prop="unit2" label="第二计量单位"></el-table-column>
<el-table-column prop="unit2Cn" label="第二计量单位中文名称"></el-table-column>
<el-table-column prop="rmb" label="人民币"></el-table-column>
<el-table-column prop="usd" label="美元值"></el-table-column>
<el-table-column prop="dutyMode" label="征免方式"></el-table-column>
<el-table-column prop="dutyModeCn" label="征免方式中文名称"></el-table-column>
<el-table-column prop="dutax" label="实征税款"></el-table-column>
<el-table-column prop="realDuty" label="实征关税"></el-table-column>
<el-table-column prop="dutaxCut" label="减免税"></el-table-column>
<el-table-column prop="dutyCut" label="减免关税"></el-table-column>
<el-table-column prop="empty" label="空白项"></el-table-column>
<el-table-column prop="gName" label="商品名称"></el-table-column>
<el-table-column prop="gModel" label="规格型号"></el-table-column>
<el-table-column prop="selType" label="分类通关"></el-table-column>
<el-table-column prop="createtime" label="导入时间"></el-table-column>
<el-table-column prop="opter" label="操作账户"></el-table-column>
</el-table>
</el-col>
<el-col :span="24">
<el-pagination
size="medium"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="query.pageNum"
:page-sizes="[10, 20, 30, 40]"
:page-size="query.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</el-col>
</el-row>
</div>
</template>
<script>
import {importExcel, fetchData, importUpdateExcel} from "../../api/AiCustoms/AiCustoms";
export default {
data() {
return {
tableData: [],
total: 0, // 总数据量
query: {
pageNum: 1,
pageSize: 10
},
}
},
mounted() {
this.fetchData()
},
methods: {
fetchData() {
fetchData(this.query).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error('获取消息收发记录,失败!')
}
// 获取列表数据
this.tableData = res.data.list
// 获取列表的总记录数
this.total = res.data.total
this.$message.success('获取消息收发记录,成功!');
}).catch(error => {
// 关闭加载
this.$message.error(error.toString())
})
},
uploadExcel({ file, onSuccess, onError }){
// 生成 FormData 对象
const formData = new FormData();
formData.append('file', file);
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
importExcel(formData).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error(res.msg);
}
this.$message.success(res.msg);
loading.close();
this.fetchData();
onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
}).catch(error => {
// 关闭加载
loading.close();
this.$message.error(error.toString())
onError(error); // 调用 onError 回调通知上传失败
})
},
uploadUpdateExcel({ file, onSuccess, onError }){
// 生成 FormData 对象
const formData = new FormData();
formData.append('file', file);
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
});
importUpdateExcel(formData).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error(res.msg);
}
this.$message.success(res.msg);
loading.close();
this.fetchData();
onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
}).catch(error => {
// 关闭加载
loading.close();
this.$message.error(error.toString())
onError(error); // 调用 onError 回调通知上传失败
})
},
handleSizeChange(val) {
this.query.pageSize=val;
this.fetchData()
},
handleCurrentChange(val) {
this.query.pageNum=val;
this.fetchData()
}
}
}
</script>
\ No newline at end of file
... ...
... ... @@ -13,7 +13,7 @@
</el-form-item>
<el-form-item>
<img
style="width: 125px; height: 60px"
style="width: 98%; height: 60px"
:src="verifyImg"
@click="getVerifyCode"
>
... ... @@ -27,15 +27,15 @@
<div class="homepage-hero-module">
<div class="video-container">
<div :style="fixStyle" class="filter"></div>
<video :style="fixStyle" autoplay loop class="fillWidth" v-on:canplay="canplay">
<source src="/static/login/New-jumbo.mp4" type="video/mp4"/>
浏览器不支持 video 标签,建议升级浏览器。
<!--<source src="/static/login/New-jumbo.webm" type="video/webm"/>-->
<!--浏览器不支持 video 标签,建议升级浏览器。-->
</video>
<div class="poster hidden" v-if="!vedioCanPlay">
<img :style="fixStyle" src="https://s2.best-wallpaper.net/wallpaper/2560x1600/1511/Airplane-passenger-airliner-flight-sea-lights-airport-evening_2560x1600.jpg" alt="">
</div>
<!-- <video :style="fixStyle" autoplay loop class="fillWidth" v-on:canplay="canplay">-->
<!-- <source src="/static/login/New-jumbo.mp4" type="video/mp4"/>-->
<!-- 浏览器不支持 video 标签,建议升级浏览器。-->
<!-- &lt;!&ndash;<source src="/static/login/New-jumbo.webm" type="video/webm"/>&ndash;&gt;-->
<!-- &lt;!&ndash;浏览器不支持 video 标签,建议升级浏览器。&ndash;&gt;-->
<!-- </video>-->
<!-- <div class="poster">-->
<!-- <img :style="fixStyle" src="https://s2.best-wallpaper.net/wallpaper/2560x1600/2009/Airplane-front-view-wings-road-blue-background_2560x1600.jpg" alt="">-->
<!-- </div>-->
</div>
</div>
</div>
... ... @@ -51,7 +51,7 @@
data() {
return {
verifyImg: "",
vedioCanPlay: true,
vedioCanPlay: false,
fixStyle: '',
logining: false,
ruleForm2: {
... ... @@ -264,7 +264,7 @@
.video-container .filter {
z-index: 1;
position: absolute;
background: rgba(0, 0, 0, 0.4);
background:url("/static/login/login_backgroud.jpg") rgba(0, 0, 0, 0.4);
}
.login-container {
/*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/
... ...
<template>
<div class="backgroud">
<el-row>
<el-col :xs="{span: 22, offset: 1}" :sm="{span: 12, offset: 6}" :md="{span: 8, offset: 8}" :lg="{span: 6, offset: 9}" :xl="{span: 6, offset: 9}" :style="fixStyle" id="loginCol">
<el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-position="left" label-width="0px" class="demo-ruleForm login-container" id="loginForm">
<h3 class="title">系统登录</h3>
<el-form-item prop="account">
<el-input type="text" v-model="ruleForm2.account" autofocus placeholder="账号"></el-input>
</el-form-item>
<el-form-item prop="checkPass">
<el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keydown.enter.native="keyDown" show-password></el-input>
</el-form-item>
<el-form-item prop="verify">
<el-input type="text" v-model="ruleForm2.verify" placeholder="请在2分钟内输入下方图片中的答案" @keyup.enter.native="handleSubmit2"></el-input>
</el-form-item>
<el-form-item>
<img
style="width: 98%; height: 60px"
:src="verifyImg"
@click="getVerifyCode"
>
</el-form-item>
<el-checkbox v-model="checked" checked class="remeberme">记住密码</el-checkbox>
<el-form-item style="width:100%;">
<el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining" :plain="true">登录</el-button>
<!--<el-button @click.native.prevent="handleReset2">重置</el-button>-->
</el-form-item>
</el-form>
</el-col>
</el-row>
</div>
</template>
<script>
import {getRandCode} from "@/api/user";
import {mapActions} from 'vuex'
import http from "@/api/http";
import axios from 'axios'
export default {
name: 'App',
data() {
return {
verifyImg: "",
vedioCanPlay: false,
fixStyle: '',
logining: false,
ruleForm2: {
account: '',
// checkPass: 'zzairport@kako2020'
checkPass: '',
verify: '',
verifyToken: ''
},
rules2: {
account: [
{ required: true, message: '请输入账号', trigger: 'blur' },
//{ validator: validaePass }
],
checkPass: [
{ required: true, message: '请输入密码', trigger: 'blur' },
//{ validator: validaePass2 }
],
checkVerify: [
{ required: false, message: '请输入验证码', trigger: 'blur' }
]
},
checked: false,
userMenus: []
}
},
methods: {
...mapActions( // 语法糖
['setUserInfoStore'] // 相当于this.$store.dispatch('modifyName'),提交这个方法
),
getVerifyCode: function(){
getRandCode().then((res) =>{
let status = res.status;
this.ruleForm2.verifyToken = res.data.jwtToken;
this.verifyImg = res.data.data.verifyImg;
}).catch(error => {
this.$message({
message: "验证码获取失败:"+error.toString(),
type: "error"
});
});
},
fixLoginHeight:function (){
const windowHeight = document.body.clientHeight
const colElement = document.getElementById("loginCol")
if (colElement) {
const col_height = colElement.offsetHeight; // 获取元素的高度
this.fixStyle = {
'margin-top': (windowHeight - col_height) / 2 + 'px',
}
}
},
handleMenuList : function (router,menu) {
var _this = this;
var routerName = "";
var routerTemp = router.concat();
routerTemp.forEach(function (v_router,v_index,v_arr) {
routerName = v_router.name;
//查找返回的目录列表是否包含路由名称,有就返回匹配到的元素,没有就移除
let result = menu.find(item => {
return item.name === routerName;
});
//匹配到继续判断是否子元素,有子元素继续递归
if (result) {
if (v_router.children && v_router.children.length>0) {
_this.handleMenuList(v_router.children, result.children);
}
}else {
//没有则可以移除
let deletRouter = router.findIndex(itm => itm.name === routerName );
router.splice(deletRouter,1);
}
});
// console.log("longined router:");
// console.log(routerName);
// console.log(_this.$router.options.routes);
// 本地存储用户目录 ,防刷新目录丢失用
sessionStorage.setItem('menu', JSON.stringify(_this.$router.options.routes));
},
handleSubmit2: function (ev) {
var _this = this;
this.$refs.ruleForm2.validate((valid) => {
if (valid) {
//_this.$router.replace('/table');
this.logining = true;
//NProgress.start();
var loginParams = {
username: this.ruleForm2.account,
password: this.ruleForm2.checkPass,
verify: this.ruleForm2.verify,
verifyToken:this.ruleForm2.verifyToken
};
http.login(loginParams).then(res => {
this.logining = false;
//NProgress.done();
let status = res.status;
let authentication = res.data.authentication;
let token = authentication.token;
let loginUserMenus = res.data.loginUserMenus;
if (status !== 200) {
this.getVerifyCode();
let msg = "登录错误";
this.$message({
message: msg,
type: "error"
});
} else if (token) {
sessionStorage.setItem('user', JSON.stringify(authentication));
sessionStorage.setItem('token','Bearer '+ token);
this.setUserInfoStore(authentication);
//设置token,设置axios 基本配置,但是刷新后 这个登录保存的就没了
axios.defaults.headers.common['Authorization'] = 'Bearer '+token;
//处理用户menu
_this.userMenus = loginUserMenus.list;
let sysMenus = _this.$router.options.routes;
_this.handleMenuList(_this.$router.options.routes,_this.userMenus);
_this.$router.push({path: '/main'});
}
}).catch(error => {
this.$message({
message: error.toString()+"-登录验证失败;",
type: "error"
});
this.getVerifyCode();
}).finally(()=>{
this.logining = false;
});
} else {
return false;
}
});
}
},
mounted:function (){
this.$store.commit('set_user_menu', []);
this.$store.commit('set_user_info', {
userId: 0,
username: '',
companyId: 0,
companyName: '',
realname: '',
userface: '',
companyInfo:{}
});
this.$nextTick(() => {
window.onresize = () => {
this.fixLoginHeight()
}
window.onresize();
})
document.onkeydown = function (e) {
let key = window.event.keyCode;
if (key == 13) {
_this.handleSubmit2();
}
};
},
created(){
this.getVerifyCode()
},
}
</script>
<style lang="scss" scoped>
#loginForm{
filter:alpha(Opacity=80);
-moz-opacity:0.8;
opacity: 0.8;
}
.backgroud {
width: 100%;
height: 100vh; /* 设置为视口高度 */
z-index: 1;
position: absolute;
background:url("/static/login/login_backgroud.jpg") rgba(0, 0, 0, 0.4);
}
.login-container {
/*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-border-radius: 5px;
background-clip: padding-box;
padding: 35px 35px 15px 35px;
background: #fff;
border: 1px solid #eaeaea;
box-shadow: 0 0 25px #cac6c6;
.title {
margin: 0px auto 40px auto;
text-align: center;
color: #505458;
}
.remember {
margin: 0px 0px 35px 0px;
}
}
</style>
... ...
... ... @@ -282,7 +282,6 @@
this.loading = true;
selectCountry(params).then(res =>{
if (res!=null) {
console.log(res.data.data)
setTimeout(() => {
this.loading = false;
this.countryOptions=res.data.data;
... ... @@ -300,7 +299,6 @@
this.loading = true;
selectCreden(params).then(res =>{
if (res!=null) {
console.log(res.data.data)
setTimeout(() => {
this.loading = false;
this.certOptions=res.data.data;
... ... @@ -318,8 +316,9 @@
addAircraft(this.aircraft).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.success(response.msg)
this.$router.push({path:'/queryAircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo}});
}else{
this.msg=response.msg;
... ... @@ -338,17 +337,16 @@
this.aircraft.createBy=loginUserInfo.username
sendAircraft(this.aircraft).then(res=>{
let response=res.data;
console.log(response);
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryAircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo}});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
console.log('error submit!!');
return false;
}
});
... ... @@ -368,7 +366,7 @@
return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -241,15 +241,15 @@
submitForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(this.arrival)
addPrediction(this.arrival).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
// this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryArrival',query:{flightNo:this.arrival.flightNo,flightDate:this.arrival.flightDate}});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
}
);
... ... @@ -292,7 +292,7 @@
return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -641,8 +641,9 @@ background-color: white;
addBillPerson(this.billperson).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.success(response.msg);
this.transList()
//document.getElementById("send").disabled=true;
let sy=this.type="2";
... ... @@ -771,15 +772,16 @@ background-color: white;
addBill(this.bill).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
this.$message.success(response.msg)
//this.centerDialogVisible=true;
//this.msg=response.msg;
// this.$router.push({path:'/queryBill',query:{aircraftNo:this.bill.aircraftNo,flightNo:this.bill.flightNo,
// flightDate:this.bill.flightDate}});
//document.getElementById("add").disabled=true;
let st=this.status="2";
this.btDeleStatusFormater(st);
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -797,10 +799,11 @@ background-color: white;
sendBill(this.bill).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryBill',query:{aircraftNo:this.bill.aircraftNo,flightNo:this.bill.flightNo,
flightDate:this.bill.flightDate}});
this.$message.success(response.msg)
//document.getElementById("add").disabled=true;
// let st=this.status="2";
// this.btDeleStatusFormater(st);
... ... @@ -865,7 +868,7 @@ background-color: white;
return uuid;
},
},
mounted(){
activated(){
this.defaultData();
//this.transList();
// this.getCreden();
... ...
... ... @@ -11,19 +11,19 @@
<el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight"
label-width="130px" class="demo-ruleForm">
<el-row>
<el-col :span="5" style="margin-right: 70px">
<el-col :span="5">
<el-form-item label="承运人" prop="carrier" label-width="70px">
<el-input v-model="queryConfigure.carrier" style="width:120px"></el-input>
</el-form-item>
</el-col>
<el-col :span="5" style="margin-right: 70px">
<el-col :span="5">
<el-form-item label="航班号" prop="flightno" label-width="70px">
<el-input v-model="queryConfigure.flightno" style="width:120px"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-button type="primary" icon="el-icon-search" @click="submitForm()">查询</el-button>
<el-button type="success" icon="el-icon-edit" @click="addForm()">新增</el-button>
<el-button type="primary" @click="submitForm()">查询</el-button>
<el-button type="success" @click="addForm()">新增</el-button>
</el-col>
</el-row>
... ... @@ -36,28 +36,19 @@
:data="tableData"
border
v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px">
<el-table-column
<!--<el-table-column
prop="carrier"
label="承运人">
</el-table-column>
</el-table-column>-->
<el-table-column
prop="flightno"
label="航班号">
</el-table-column>
<el-table-column
prop="customscode"
label="申报关区">
</el-table-column>
<el-table-column
prop="aircraftcode"
label="航空注册器编号">
</el-table-column>
<el-table-column
prop="aircrafttype"
label="航空器备案类型"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="originstation"
label="航班起始站">
</el-table-column>
... ... @@ -66,12 +57,37 @@
label="航班目的站">
</el-table-column>
<el-table-column
prop="customscode"
label="申报关区">
</el-table-column>
<el-table-column
label="配置类型">
<template slot-scope="scope">
<span v-if="scope.row.type ==='2'">入境</span>
<span v-if="scope.row.type ==='1'">出境</span>
</template>
</el-table-column>
<!--<el-table-column
prop="aircrafttype"
label="航空器备案类型"
show-overflow-tooltip>
</el-table-column>-->
<!--<el-table-column
prop="configstarttime"
label="配置生效时间">
</el-table-column>
<el-table-column
prop="configendtime"
label="配置生效生效到期日">
</el-table-column>-->
<el-table-column
prop="entrytime"
label="入境时间">
</el-table-column>
<el-table-column
prop="departuretime"
label="出境时间">
</el-table-column>
<el-table-column
label="配置状态">
... ... @@ -80,14 +96,8 @@
<span v-if="scope.row.configstatus ==='1'">生效</span>
</template>
</el-table-column>
<el-table-column
label="配置类型">
<template slot-scope="scope">
<span v-if="scope.row.type ==='2'">入境</span>
<span v-if="scope.row.type ==='1'">出境</span>
</template>
</el-table-column>
<el-table-column
<!--<el-table-column
prop="userid"
label="创建人">
</el-table-column>
... ... @@ -98,16 +108,9 @@
<el-table-column
prop="updatedate"
label="配置更新时间">
</el-table-column>
<el-table-column
prop="entrytime"
label="入境时间">
</el-table-column>
<el-table-column
prop="departuretime"
label="出境时间">
</el-table-column>
<el-table-column
</el-table-column>-->
<!--<el-table-column
prop="stayid"
label="停机位">
</el-table-column>
... ... @@ -122,12 +125,12 @@
<el-table-column
prop="remark"
label="配置规则备注">
</el-table-column>
</el-table-column>-->
<el-table-column
fixed="right"
prop=""
label="报文操作"
width="280">
label="信息操作"
width="180">
<template slot-scope="scope">
<el-button
size="mini"
... ... @@ -187,8 +190,10 @@
<el-row>
<el-col :span="6">
<el-form-item label="航空器备案类型" prop="aircrafttype" label-width="140px">
<el-input v-model="configure_editForm.aircrafttype"
></el-input>
<el-select v-model="configure_editForm.aircrafttype" placeholder="请选择">
<el-option label="通用航空器" value="1"></el-option>
<el-option label="航线航空器" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
... ... @@ -203,27 +208,27 @@
maxLength='3'></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<!--<el-col :span="6">
<el-form-item label="配置生效时间" prop="configstarttime" label-width="130px">
<el-date-picker
v-model="configure_editForm.configstarttime"
type="datetime"
placeholder="选择日期时间"
value-format="yyyyMMddhhmmss"
format="yyyyMMddhhmmss"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
</el-col>
</el-col>-->
<el-col :span="6">
<el-form-item label="配置生效到期日" prop="configendtime" label-width="140px">
<el-date-picker
v-model="configure_editForm.configendtime"
type="datetime"
placeholder="选择日期时间"
value-format="yyyyMMddhhmmss"
format="yyyyMMddhhmmss"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
:picker-options="pickerOptions">
</el-date-picker>
... ... @@ -247,12 +252,12 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<!--<el-col :span="6">
<el-form-item label="创建人" prop="userid" label-width="130px">
<el-input v-model="configure_editForm.userid"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
</el-col>-->
<!--<el-col :span="6">
<el-form-item label="创建时间" prop="creatdate" label-width="130px">
<el-date-picker
v-model="configure_editForm.creatdate"
... ... @@ -277,15 +282,15 @@
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
</el-col>
</el-col>-->
<el-col :span="6">
<el-form-item label="入境时间" prop="entrytime" label-width="130px">
<el-date-picker
v-model="configure_editForm.entrytime"
type="datetime"
placeholder="选择日期时间"
value-format="yyyyMMddhhmmss"
format="yyyyMMddhhmmss"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width:100%">
</el-date-picker>
</el-form-item>
... ... @@ -296,8 +301,8 @@
v-model="configure_editForm.departuretime"
type="datetime"
placeholder="选择日期时间"
value-format="yyyyMMddhhmmss"
format="yyyyMMddhhmmss"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width:100%">
</el-date-picker>
</el-form-item>
... ... @@ -308,7 +313,7 @@
<el-input v-model="configure_editForm.stayid"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<!--<el-col :span="6">
<el-form-item label="定时任务配置时间规则" prop="crontask" label-width="130px">
<el-input v-model="configure_editForm.crontask"></el-input>
</el-form-item>
... ... @@ -322,7 +327,7 @@
<el-form-item label="配置规则备注" prop="remark" label-width="130px">
<el-input v-model="configure_editForm.remark"></el-input>
</el-form-item>
</el-col>
</el-col>-->
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="configure_dialog.addDialog = false" size="small">取 消</el-button>
... ... @@ -396,13 +401,13 @@
flightno: '',
customscode: '',
aircraftcode: '',
aircrafttype: '',
aircrafttype: '1',
originstation: '',
destinationstation: '',
configstarttime: '',
configendtime: '',
configstatus: '',
type: '',
configstatus: '1',
type: '2',
userid: '',
creatdate: '',
updatedate: '',
... ... @@ -421,9 +426,6 @@
flightno: [
{ required: true, message: '请输入', trigger: 'change' }
],
configstarttime: [
{ required: true, message: '请输入', trigger: 'change' }
],
configendtime: [
{ required: true, message: '请输入', trigger: 'change' }
],
... ... @@ -433,12 +435,6 @@
type: [
{ required: true, message: '请输入', trigger: 'change' }
],
creatdate: [
{ required: true, message: '请输入', trigger: 'change' }
],
updatedate: [
{ required: true, message: '请输入', trigger: 'change' }
],
entrytime: [
{ required: true, message: '请输入', trigger: 'change' }
],
... ... @@ -460,9 +456,6 @@
destinationstation: [
{ required: true, message: '请输入', trigger: 'change' }
],
userid: [
{ required: true, message: '请输入', trigger: 'change' }
],
stayid: [
{ required: true, message: '请输入', trigger: 'change' }
],
... ... @@ -487,7 +480,6 @@
const _this = this
selectExact(this.queryConfigure).then((response) => {
const res = response.data
console.log(response.data)
if (res.code !== '200') {
return _this.$message.error('获取消息收发记录,失败!')
}
... ...
... ... @@ -93,7 +93,7 @@
configure:{
username:loginUserInfo.username,
flightNo:undefined,
ietype:'0',
ietype:'1',
reamrk:undefined,
// accessFlag:'1',
country:'',
... ... @@ -138,16 +138,15 @@
if (valid) {
this.configure.createBy=loginUserInfo.username
this.configure.username=loginUserInfo.username
console.log(this.configure.flightNo)
addSchedule(this.configure).then(res=>{
let response=res.data;
console.log(response)
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryConfigure',query:{flightNo:this.configure.flightNo}});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -167,7 +166,7 @@
return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -218,11 +218,12 @@
addConfirm(this.confirmatory).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryConfirmatory',query:{flightNo:this.confirmatory.flightNo,flightDate:this.confirmatory.flightDate}});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -235,17 +236,16 @@
sendForm(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
console.log(this.confirmatory)
this.confirmatory.createBy=loginUserInfo.username
sendConfirmIn(this.confirmatory).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryConfirmatory',query:{flightNo:this.confirmatory.flightNo,flightDate:this.confirmatory.flightDate}});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -265,7 +265,7 @@
return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
<template>
<div>
<el-row :gutter="10">
<el-col :span="4">
<el-input
placeholder="航空器注册编号"
v-model="query.aircraftNo"
size="medium"
clearable>
</el-input>
</el-col>
<el-col :span="4">
<el-input
placeholder="进出境(港)航班号"
v-model="query.flightNo"
size="medium"
clearable>
</el-input>
</el-col>
<el-col :span="8">
<div class="block">
<el-date-picker
v-model="flightdate"
type="daterange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
size="medium"
align="right">
</el-date-picker>
</div>
</el-col>
<el-col :span="2">
<el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
</el-col>
<el-col :span="2">
<el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
</el-col>
<el-col :span="2">
<el-upload
class="upload-demo"
action=""
:before-upload="beforeUpload"
:http-request="uploadFile"
:show-file-list="false">
<el-button size="medium" type="success" plain>导入</el-button>
</el-upload>
</el-col>
</el-row>
<el-row :gutter="10">
<el-table
:data="tableData"
style="width: 100%"
row-key="uuid"
:expand-row-keys="expandedRowKeys"
border
stripe>
<el-table-column
align="center"
fixed="left"
label="信息操作"
width="80">
<template slot-scope="scope">
<el-button @click="ediForm(scope.row)" type="text" size="small">编辑</el-button>
</template>
</el-table-column>
<el-table-column type="expand" label="详细信息">
<template v-slot:default="{ row }">
<el-table
:data="row.billpersonList"
style="width: 70%;margin-left: 75px;margin-top: 10px"
row-key="autoId"
stripe
border
>
<el-table-column prop="name" label="姓名" />
<el-table-column width="80" prop="gender" label="性别">
<template slot-scope="scope">
{{ scope.row.gender === 'M' ? '男' : '女' }}
</template>
</el-table-column>
<el-table-column width="80" prop="nationality" label="国籍" />
<el-table-column label="职务">
<template slot-scope="scope">
{{ {
'1': '航线机长',
'2': '副驾驶',
'3': '乘务长',
'4': '安全员',
'5': '乘务员',
'6': '机械师',
'7': '随行人员',
'8': '工程师',
'9': '装载员',
'10': '押运员',
'11': '其它随机人员'
}[scope.row.gareer] || scope.row.gareer }}
</template>
</el-table-column>
<el-table-column prop="certType" :formatter="formatType" label="证件类型" />
<el-table-column prop="ceterNo" label="证件号" />
</el-table>
</template>
</el-table-column>
<el-table-column
prop="messageid"
label="编号"
width="320">
</el-table-column>
<el-table-column
prop="aircraftNo"
label="航空器注册编号"
width="100">
</el-table-column>
<el-table-column
prop="arrivalno"
label="海关关区"
width="100">
</el-table-column>
<el-table-column
prop="flightNo"
label="进境(港)航班号"
width="120">
</el-table-column>
<el-table-column
prop="flightDate"
label="航班日期"
width="100">
</el-table-column>
<el-table-column
label="进出类型"
width="100">
<template slot-scope="scope">
{{ scope.row.accessFlag === 'D' ? '出港' : '进港' }}
</template>
</el-table-column>
<el-table-column
prop="arrivaldatetime"
label="出入(境)时间"
width="140">
</el-table-column>
<el-table-column
prop="statusMsg"
label="海关状态"
width="120">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="200">
<template slot-scope="scope">
<el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="sendstying(scope.row,2)" type="text" size="small">申报</el-button>
<el-button @click="sendstying(scope.row,5)" type="text" size="small">修改</el-button>
<el-button @click="sendstying(scope.row,3)" type="text" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row :gutter="10">
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="query.pageNum"
:page-sizes="[100, 200, 300, 400]"
:page-size="query.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</el-row>
<el-row :gutter="10">
<el-dialog
title="回执列表"
:visible.sync="returnVisible"
width="55%"
:before-close="handleClose">
<el-table :data="gridData">
<el-table-column property="sendtime" label="操作时间" ></el-table-column>
<el-table-column property="createBy" label="操作人" ></el-table-column>
<el-table-column property="flightNo" label="航班号"></el-table-column>
<el-table-column property="flightDate" label="航班日期" ></el-table-column>
<el-table-column property="receiptContent" label="回执内容" ></el-table-column>
</el-table>
</el-dialog>
</el-row>
<el-row :gutter="10">
<el-dialog
:title="'单证信息'+textMap[dialogStatus]"
:visible.sync="dialogVisible"
width="80%"
center>
<el-form :model="form" :rules="rules" ref="form" label-width="130px">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="航空注册器编号" prop="aircraftNo">
<el-input v-model="form.aircraftNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班号" prop="flightNo">
<el-input v-model="form.flightNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班日期" prop="flightDate" style="width: 100%;">
<div class="block">
<el-date-picker
v-model="form.flightDate"
type="datetime"
value-format="yyyy-MM-dd"
placeholder="yyyy-MM-dd"
style="width: 100%;">
</el-date-picker>
</div>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="进出标识" prop="accessFlag">
<el-select v-model="form.accessFlag">
<el-option label="进港" value="A"></el-option>
<el-option label="出港" value="D"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="进出港口" prop="arrivalAirport">
<el-select v-model="form.arrivalAirport"
filterable
allow-create
default-first-option
remote
:remote-method="getAirportCode"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in airportcodes"
: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.airportname}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="海关关区" prop="arrivalno">
<el-select v-model="form.arrivalno"
filterable
allow-create
default-first-option
remote
:remote-method="getCustomCode"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in customcodes"
:key="item.customcode"
:label="item.customcode"
:value="item.customcode">
<span style="float: left">{{ item.customcode }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="进出境时间" prop="arrivaldatetime" style="width: 100%;">
<el-date-picker
v-model="form.arrivaldatetime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="yyyy-MM-dd HH:mm:ss"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="机组人数" prop="aircrewSum">
<el-input v-model="form.aircrewSum"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :guter="10">
<el-col :span="6">
<el-form-item label="国际旅客人数" prop="interPassengerSum">
<el-input v-model="form.interPassengerSum"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="国际行李件数" prop="interBaggageNum">
<el-input v-model="form.interBaggageNum"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="货邮件数" prop="goodsNum">
<el-input v-model="form.goodsNum"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="货邮重量(千克)" prop="goodsQuantity">
<el-input v-model="form.goodsQuantity"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-row :guter="10">
<el-col :span="6">
<el-form-item label="是否有健康异常" prop="remark">
<el-select v-model="form.remark">
<el-option label="是" value="T"></el-option>
<el-option label="否" value="F"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否发现病媒生物" prop="remark1">
<el-select v-model="form.remark2">
<el-option label="是" value="T"></el-option>
<el-option label="否" value="F"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否发现外来有害生物" prop="remark2">
<el-select v-model="form.remark2">
<el-option label="是" value="T"></el-option>
<el-option label="否" value="F"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="是否有有效灭蚊证明" prop="remark3">
<el-select v-model="form.remark3">
<el-option label="是" value="T"></el-option>
<el-option label="否" value="F"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row :guter="10">
<el-col :span="18">
<el-form-item label="备注">
<el-input v-model="form.meno"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="">
<el-button @click="dialogVisible=false">取消</el-button>
<el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
<el-divider content-position="left"><span style="color: #1d8ce0">机组人员信息</span>
<el-divider direction="vertical"></el-divider>
<el-button type="primary" @click="addBillperson">新增机组人员</el-button>
<el-divider direction="vertical"></el-divider></el-divider>
<el-table
:data="tableChldren"
style="width: 80%;margin-left: 75px;margin-top: 10px"
row-key="autoId"
stripe
border>
<el-table-column prop="name" label="姓名" />
<el-table-column width="80" prop="gender" label="性别">
<template slot-scope="scope">
{{ scope.row.gender === 'M' ? '男' : '女' }}
</template>
</el-table-column>
<el-table-column width="80" prop="nationality" label="国籍" />
<el-table-column label="职务">
<template slot-scope="scope">
{{ {
'1': '航线机长',
'2': '副驾驶',
'3': '乘务长',
'4': '安全员',
'5': '乘务员',
'6': '机械师',
'7': '随行人员',
'8': '工程师',
'9': '装载员',
'10': '押运员',
'11': '其它随机人员'
}[scope.row.gareer] || scope.row.gareer }}
</template>
</el-table-column>
<el-table-column prop="certType" :formatter="formatType" label="证件类型" />
<el-table-column prop="ceterNo" label="证件号" />
<el-table-column
fixed="right"
label="操作"
width="50">
<template slot-scope="scope">
<el-button @click.native.prevent="deleteRow(scope.$index, tableChldren)" type="text" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-dialog>
<el-dialog title="机组人员添加" :visible.sync="dialogFormVisible" width="70%"
center>
<el-form :model="billperson" :rules="rules" ref="billperson" label-width="100px">
<el-row :gutter="10">
<el-col :span="6">
<el-form-item label="姓名" prop="name">
<el-input v-model="billperson.name"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="性别" prop="gender">
<el-select v-model="billperson.gender">
<el-option label="男" value="M"></el-option>
<el-option label="女" value="F"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="国籍" prop="nationality">
<el-select v-model="billperson.nationality"
filterable
@click.native="getCountry"
@change="selectChange"
default-first-option
:loading="loading" placeholder="请选择"
style="text-transform:uppercase">
<el-option
v-for="item in countryOptions"
:key="item.countryid"
:label="item.countryid+'-'+item.countrydescchn"
:value="item.countryid">
<span style="float: left">{{ item.countryid }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.countrydescchn }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="职务" prop="gareer">
<el-select v-model="billperson.gareer" placeholder="请选择">
<el-option label="1-航线机长" value="1"></el-option>
<el-option label="2-副驾驶" value="2"></el-option>
<el-option label="3-乘务长" value="3"></el-option>
<el-option label="4-安全员" value="4"></el-option>
<el-option label="5-乘务员" value="5"></el-option>
<el-option label="6-机械师" value="6"></el-option>
<el-option label="7-随行人员" value="7"></el-option>
<el-option label="8-工程师" value="8"></el-option>
<el-option label="9-装载员" value="9"></el-option>
<el-option label="10-押运员" value="10"></el-option>
<el-option label="11-其它随机人员" value="11"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证件类型" prop="certType">
<el-select v-model="billperson.certType"
filterable
@click.native="getCreden"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in certOptions"
:key="item.serialno"
:label="item.serialno+'-'+item.credenname"
:value="item.serialno">
<span style="float: left">{{ item.serialno }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">{{ item.credenname }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="证件号码" prop="ceterNo">
<el-input v-model="billperson.ceterNo" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="备注" prop="meno">
<el-input v-model="billperson.meno" placeholder="请输入"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item>
<el-button type="primary" @click="addRow('billperson')">添加</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
</el-row>
</div>
</template>
<script>
import {
insertSelectiveBill,
selectBillLists,
selectByairportcode,
selectBycustomcode,
selectReturnMsgList, sendBillSdeclare, updateByPrimaryKeySelectiveBill,batchJZImport
} from "../../api/transport/transport2.0";
import {selectCountry, selectCreden} from "../../api/transport";
import {importExcel} from "../../api/consigner/exportOrder";
export default{
data(){
return{
certOptions:[],
countryOptions:[],
countryid:'',
dialogFormVisible:false,
tableChldren:[],
dialogVisible: false,
dialogStatus:'',
textMap:{
update: '编辑',
create: '新增'
},
tableData:[],
expandedRowKeys: [],
query:{
aircraftNo:'',
flightNo:'',
starttime:'',
endtime:'',
pageNum:0,
pageSize:10,
},
form: {
uuid: '',
aircraftNo: '',
flightNo: '',
flightDate: '', // Use JavaScript Date object
accessFlag: 'A',
departureAirport: '',
departuredatetime: '', // Use JavaScript Date object
departureno: '',
arrivalAirport: '',
arrivaldatetime: '', // Use JavaScript Date object
arrivalno: '',
aircrewSum: 0,
interPassengerSum: 0,
localePassengerSum: 0,
interBaggageNum: 0,
localeBaggageNum: 0,
goodsNum: 0,
goodsQuantity: 0,
cargoBillNum: 0,
passengerPage: 0,
aircrewBillNum: 0,
aircrewCargoBillNum: 0,
arrivalPosition: '',
bussinessType: '',
messageid: '',
status: '',
statusMsg: '',
meno: '',
createTime: '', // Use JavaScript Date object
createBy: '',
updateTime: '', // Use JavaScript Date object
updateBy: '',
isDelete: '',
remark: 'F',
remark1: 'F',
remark2: 'F',
remark3: 'T',
billpersonList: [] // Array of objects that represent the AIR_BILLPERSON model
},
billperson: {
autoId: '',
name: '',
gender: '',
gareer: '', // Note: This might be a typo in the original Java class. It should probably be "career".
nationality: '',
certType: '',
ceterNo: '', // Note: This might also be a typo. It should probably be "centerNo" or "certNo".
createTime: '', // Use JavaScript Date object
createBy: '',
updateTime: '', // Use JavaScript Date object
updateBy: '',
meno: '',
isDelete: '0',
billsId: ''
},
flightdate:['2021-11-17', '2024-12-24'],
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
total:0,
returnVisible:false,
gridData:[],
customcodes:[],
airportcodes:[],
loading:false,
rules: {
aircraftNo: [
{ required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
],
flightNo: [
{ required: true, message: '航班号不可为空', trigger: 'blur' }
],
flightDate: [
{ required: true, message: '航班日期不可为空', trigger: 'blur' }
],
arrivalAirport: [
{ required: true, message: '进出港口不可为空', trigger: 'blur' }
],
arrivalno: [
{ required: true, message: '海关关区不可为空', trigger: 'blur' }
],
arrivaldatetime: [
{ required: true, message: '进出境时间不可为空', trigger: 'blur' }
],
aircrewSum: [
{ required: true, message: '机组人数不可为空', trigger: 'blur' }
],
interPassengerSum: [
{ required: true, message: '国际旅客不可为空', trigger: 'blur' }
],
interBaggageNum: [
{ required: true, message: '国际行李件数不可为空', trigger: 'blur' }
],
name: [
{ required: true, message: '机组人员姓名不可为空', trigger: 'blur' }
],
nationality: [
{ required: true, message: '机组人员国籍不可为空', trigger: 'blur' }
],
gender: [
{ required: true, message: '机组人员性别不可为空', trigger: 'blur' }
],
gareer: [
{ required: true, message: '机组人员职务不可为空', trigger: 'blur' }
],
certType: [
{ required: true, message: '机组人员类型不可为空', trigger: 'blur' }
],
ceterNo: [
{ required: true, message: '机组人员证件号不可为空', trigger: 'blur' }
],
},
}
},
methods:{
//导入订单excel
beforeUpload(file) {
// 检查文件类型
const isExcel = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.type === 'application/vnd.ms-excel';
if (!isExcel) {
this.$message.error('上传文件只能是 Excel 格式!');
return false; // 取消文件上传
}
return true; // 允许上传
},
uploadFile({ file, onSuccess, onError }){
// 生成 FormData 对象
const formData = new FormData();
formData.append('file', file);
batchJZImport(formData).then((response) => {
const res = response.data
if (res.code !== '200') {
return this.$message.error(res.msg);
}
this.$message.success(res.msg);
this.selectList();
onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
}).catch(error => {
// 关闭加载
this.$message.error(error.toString())
onError(error); // 调用 onError 回调通知上传失败
})
},
addBillperson(){
this.dialogFormVisible = true;
},
addRow(formName) {
this.$refs[formName].validate((valid) => {
if (valid) {
const newMember = {
autoId: this.tableChldren.length > 0 ? this.tableChldren[this.tableChldren.length - 1].autoId + 1 : 1,
name: this.billperson.name,
gender: this.billperson.gender,
nationality: this.billperson.nationality,
gareer: this.billperson.gareer,
certType: this.billperson.certType,
ceterNo: this.billperson.ceterNo,
meno:this.billperson.meno,
createTime: '', // Use JavaScript Date object
createBy: '',
updateTime: '', // Use JavaScript Date object
updateBy: '',
isDelete: '0',
billsId: ''
};
this.tableChldren.push(newMember);
this.resetForm();
this.dialogFormVisible = false;
} else {
return false;
}
});
},
resetForm() {
this.billperson.name = '';
this.billperson.gender = '';
this.billperson.nationality = '';
this.billperson.gareer = '';
this.billperson.certType = '';
this.billperson.ceterNo = '';
},
deleteRow(index, rows) {
rows.splice(index, 1);
},
//暂存新增
createData(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.form.departuredatetime=this.form.arrivaldatetime;
this.form.departureAirport=this.form.arrivalAirport;
insertSelectiveBill(this.form).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogVisible=false;
this.$message.success(response.msg);
this.getList();
}else{
this.$message.error(response.msg)
}
});
} else {
return false;
}
});
},
//暂存更新
updateData(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.form.departuredatetime=this.form.arrivaldatetime;
this.form.departureAirport=this.form.arrivalAirport;
updateByPrimaryKeySelectiveBill(this.form).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogVisible=false;
Object.assign(this.$data, this.$options.data());
this.$message.success(response.msg);
this.getList();
}else{
this.$message.error(response.msg)
}
});
} else {
return false;
}
});
},
selectList(){
if(this.flightdate !== null && this.flightdate !== ""){
this.query.starttime = this.flightdate[0];
this.query.endtime = this.flightdate[1];
}else{
return this.$message.error('请选取时间区间')
}
selectBillLists(this.query).then((response) => {
const res = response.data
if (res.code !== '200') {
this.loading = false;
return this.$message.error('获取消息收发记录,失败!')
}
// 获取列表数据
this.tableData = res.data.list
//this.expandedRowKeys = this.tableData.map(item => item.uuid);
// 获取列表的总记录数
this.total = res.data.total
this.loading = false;
this.$message.success('获取消息收发记录,成功!');
}).catch(error => {
// 关闭加载
this.$message.error(error.toString())
})
},
addForm(){
this.dialogVisible=true;
this.dialogStatus='create';
this.form={
uuid: '',
aircraftNo: '',
flightNo: '',
flightDate: '', // Use JavaScript Date object
accessFlag: 'A',
departureAirport: '',
departuredatetime: '', // Use JavaScript Date object
departureno: '',
arrivalAirport: '',
arrivaldatetime: '', // Use JavaScript Date object
arrivalno: '',
aircrewSum: 0,
interPassengerSum: 0,
localePassengerSum: 0,
interBaggageNum: 0,
localeBaggageNum: 0,
goodsNum: 0,
goodsQuantity: 0,
cargoBillNum: 0,
passengerPage: 0,
aircrewBillNum: 0,
aircrewCargoBillNum: 0,
arrivalPosition: '',
bussinessType: '',
messageid: '',
status: '',
statusMsg: '',
meno: '',
createTime: '', // Use JavaScript Date object
createBy: '',
updateTime: '', // Use JavaScript Date object
updateBy: '',
isDelete: '',
remark: 'F',
remark1: 'F',
remark2: 'F',
remark3: 'F',
billpersonList: [] // Array of objects that represent the AIR_BILLPERSON model
};
this.tableChldren=this.form.billpersonList;
},
ediForm(row){
this.dialogVisible=true;
this.dialogStatus='update';
this.form=row;
this.tableChldren=row.billpersonList;
},
sendstying(row,FunctionCode){
const params = {
row: row,
FunctionCode: FunctionCode
};
sendBillSdeclare(params).then(res =>{
let response=res.data;
if(response.code=='200'){
this.selectList();
this.$message.success(response.msg)
}else{
this.$message.error(response.msg)
}
});
},
formatType: function(row,column){
return row.certType=='06'?'一次有效台湾居民来往大陆通行证':row.certType=='11'?'外交护照':row.certType=='12'?'公务护照'
:row.certType=='13'?'因公普通护照':row.certType=='14'?'普通护照':row.certType=='15'?'中华人民共和国旅行证'
:row.certType=='16'?'五年有效台湾居民往来大陆通行证':row.certType=='17'?'海员证':row.certType=='20'?'中华人民共和国出入境通行证'
:row.certType=='21'?'前往港澳通行证(16页,多次有效)':row.certType=='22'?'前往港澳通行证(8页,一次有效)'
:row.certType=='23'?'前往港澳通行证':row.certType=='24'?'港澳同胞回乡证或港澳居民来往内地通行证'
:row.certType=='25'?'大陆居民来往台湾通行证':row.certType=='30'?'外国人出入境通行证':row.certType=='38'?'中华人民共和国回国证明'
:row.certType=='70'?'香港特别行政区护照':row.certType=='71'?'澳门特别行政区护照'
:row.certType=='72'?'因公往来香港澳门特别行政区通行证(官员)'
:row.certType=='73'?'因公往来香港澳门特别行政区通行证(普通)':row.certType=='74'?'中华人民共和国居民身份证':row.certType=='75'?'其他证件'
:row.certType=='98'?'其他因私证件(包括联合国通行证等)'
:row.certType=='99'?'其他因私证件(包括难民证等)':'';
},
handleSizeChange(val) {
this.query.pageSize=val;
this.selectList();
},
handleCurrentChange(val) {
this.query.pageNum=val;
this.selectList();
},
//查询回执列表
returnlist(row){
this.gridData=[];
let params={messageid:row.messageid};
selectReturnMsgList(params).then(res=>{
let response=res.data.data;
this.gridData=response;
});
this.returnVisible=true;
},
handleClose() {
this.returnVisible=false;
},
//获取关区代码
getCustomCode:function(query){
this.customcodes=[];
let params={customcode:query};
this.loading = true;
selectBycustomcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.customcodes=res.data.data;
}, 200);
} else {
this.customcodes = [];
}
});
},
//获取机场代码
getAirportCode:function(query){
this.airportcodes=[];
let params={airportid:query};
this.loading = true;
selectByairportcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.airportcodes=res.data.data;
}, 200);
} else {
this.airportcodes = [];
}
});
},
/*获取国籍*/
getCountry:function(query){
this.countryOptions=[];
let params={countryid:query};
this.loading = true;
selectCountry(params).then(res =>{
if (res!=null) {
console.log(res.data.data)
setTimeout(() => {
this.loading = false;
this.countryOptions=res.data.data;
}, 200);
} else {
this.countryOptions = [];
}
});
},
selectChange:function(val){
console.log(val)
this.$emit('tellFarther',val);
},
/*获取证件*/
getCreden:function(query){
this.certOptions=[];
let params={serialno:query};
this.loading = true;
selectCreden(params).then(res =>{
if (res!=null) {
console.log(res.data.data)
setTimeout(() => {
this.loading = false;
this.certOptions=res.data.data;
}, 200);
} else {
this.certOptions = [];
}
});
},
},
mounted() {
this.expandedRowKeys = this.tableData.map(item => item.uuid);
}
}
</script>
... ...
... ... @@ -195,11 +195,12 @@
addConfirm(this.declare).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.success(response.msg)
this.$router.push({path:'/queryDeclare',query:{flightNo:this.declare.flightNo,flightDate:this.declare.flightDate}});
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -216,11 +217,12 @@
sendConfirmOut(this.declare).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.success(response.msg)
this.$router.push({path:'/queryDeclare',query:{flightNo:this.declare.flightNo,flightDate:this.declare.flightDate}});
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -240,7 +242,7 @@
return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -216,11 +216,13 @@
addPrediction(this.departure).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.success(response.msg)
this.$router.push({path:'/queryDeparture',query:{flightNo:this.departure.flightNo,flightDate:this.departure.flightDate}});
}else{
this.msg=response.msg;
//this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -238,11 +240,12 @@
sendPredictionOut(this.departure).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.success(response.msg)
this.$router.push({path:'/queryDeparture',query:{flightNo:this.departure.flightNo,flightDate:this.departure.flightDate}});
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -262,7 +265,7 @@
return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -240,7 +240,7 @@
<el-col :span="24">
<el-form-item>
<el-button size="small" style="margin-left: 500px;width: 100px" type="info" @click="trans_dialog.addDialog = false">取消</el-button>
<el-button type="primary" size="small" style="margin-left: 20px;width: 100px" @click="dialogStatus==='create'?trans_add():trans_edit()">提交</el-button>
<el-button type="primary" size="small" style="margin-left: 20px;width: 100px" @click="dialogStatus==='create'?trans_add('form'):trans_edit('form')">提交</el-button>
</el-form-item>
</el-col>
</el-row>
... ... @@ -392,8 +392,8 @@
},
// 新增功能
trans_add() { // 进行表单的预验证
this.$refs.form.validate(valid => {
trans_add(formName) { // 进行表单的预验证
this.$refs[formName].validate((valid) => {
// 未通过,表单预校验
if (!valid) return
addAircraftStaying(this.form).then((response) => {
... ... @@ -423,9 +423,9 @@
})
},
// 编辑功能
trans_edit() {
trans_edit(formName) {
// 进行表单的预验证
this.$refs.form.validate(valid => {
this.$refs[formName].validate((valid) => {
// 未通过,表单预校验
if (!valid) return
addAircraftStaying(this.form).then((response) => {
... ...
... ... @@ -435,13 +435,15 @@
addFlight(this.flight).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryFlights',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate}});
this.centerDialogVisible=false;
//this.centerDialogVisible=false;
this.$message.success(response.msg)
}else{
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -457,13 +459,15 @@
sendFlight(this.flight).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryFlights',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate}});
this.centerDialogVisible=false;
//this.centerDialogVisible=false;
this.$message.success(response.msg)
}else{
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -505,7 +509,7 @@
}
},
//渲染方法
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -257,9 +257,10 @@
addFlightPlan(this.flight).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryFlightplan',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate,aircraftNo:this.flight.aircraftNo}});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
}
... ... @@ -277,9 +278,10 @@
sendFlightPlan(this.flight).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
// this.msg=response.msg;
this.$router.push({path:'/queryFlightplan',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate,aircraftNo:this.flight.aircraftNo}});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
}
... ... @@ -304,7 +306,7 @@
},
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
<template>
<el-row :gutter="20">
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
</el-row>
</template>
<script>
export default {
data(){
return{
}
},
methods:{}
}
</script>
... ...
... ... @@ -14,8 +14,8 @@
</el-form-item>
</el-col>
<el-col :span="8">
<el-form-item label="进出标识" prop="ietype" label-width="120px">
<el-select v-model="outConfigure.ietype" placeholder="" style="display:inline">
<el-form-item label="进出标识" prop="ieType" label-width="120px">
<el-select v-model="outConfigure.ieType" placeholder="" style="display:inline">
<el-option v-for="item in linesTypes" :key="item.value" :label="item.label"
:value="item.value"></el-option>
</el-select>
... ... @@ -78,7 +78,7 @@
outConfigure:{
username:loginUserInfo.username,
flightNo:undefined,
ietype:'1',
ieType:'2',
reamrk:undefined,
// accessFlag:'2',
createBy:loginUserInfo.username,
... ... @@ -88,7 +88,7 @@
flightNo: [
{required: true, message: '请输入', trigger: 'blur'}
],
ietype: [
ieType: [
{required: true, message: '请选择', trigger: 'change'}
],
},
... ... @@ -113,11 +113,12 @@
addSchedule(this.outConfigure).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.success(response.msg)
this.$router.push({path:'/queryFlightConfigure',query:{flightNo:this.outConfigure.flightNo}});
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -137,7 +138,7 @@
return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -442,7 +442,7 @@
//编辑单据查询
handleEdit(index,row){
this.$router.push({path:'/bill',query:row});
this.$router.push({path:'/bills',query:row});
},
//分页
... ...
... ... @@ -159,7 +159,6 @@
let params={messageid:row.messageid};
selectReturnMsg(params).then(res=>{
let response=res.data.data;
console.log(response)
this.gridData=response;
});
},
... ... @@ -174,7 +173,7 @@
//获取进港航班配置查询列表
submitForm() {
let params = {
pageNum: this.pageNum, pageSize: this.pageSize, flightNo: this.queryConfigure.flightNo,ieType:'0'
pageNum: this.pageNum, pageSize: this.pageSize, flightNo: this.queryConfigure.flightNo,ieType:'2'
};
this.tableloading = true;
selectSchedule(params).then(res => {
... ...
... ... @@ -45,7 +45,7 @@
label="用户名">
</el-table-column>
<el-table-column
prop="flightno"
prop="flightNo"
label="航班号">
</el-table-column>
<el-table-column
... ... @@ -180,6 +180,7 @@
selectSchedule(params).then(res => {
let response = res.data.data;
this.tableData = response.list;
console.log(response)
this.tableloading = false;
this.total = response.total;
});
... ...
... ... @@ -130,7 +130,7 @@
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:current-page="pageNum"
:page-sizes="[10, 20, 30, 40]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
... ... @@ -208,7 +208,7 @@
awcd:''
},
labelPosition:'left',
currentPage: 1,
pageNum: 1,
pageSize:10,
total:0,
tableData: [],
... ... @@ -234,13 +234,13 @@
this.pageSize=val;
},
handleCurrentChange(val) {
this.currentPage=val;
this.pageNum=val;
this.submitForm();
},
//获取当日飞行计划列表
submitForm() {
let params = {
currentPage: this.currentPage, pageSize: this.pageSize, flightNo: this.queryFlightplan.flightNo,
pageNum: this.pageNum, pageSize: this.pageSize, flightNo: this.queryFlightplan.flightNo,
awcd: this.queryFlightplan.awcd, flightDate: this.queryFlightplan.flightDate
};
console.log(params)
... ...
... ... @@ -11,19 +11,19 @@
<el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight"
label-width="130px" class="demo-ruleForm">
<el-row>
<el-col :span="5" style="margin-right: 70px">
<el-col :span="5">
<el-form-item label="承运人" prop="awcd" label-width="70px">
<el-input v-model="queryConfigure.awcd" style="width:120px"></el-input>
</el-form-item>
</el-col>
<el-col :span="5" style="margin-right: 70px">
<el-col :span="5">
<el-form-item label="航班号" prop="flightNo" label-width="70px">
<el-input v-model="queryConfigure.flightNo" style="width:120px"></el-input>
</el-form-item>
</el-col>
<el-col :span="8" >
<el-button type="primary" icon="el-icon-search" @click="submitForm()">查询</el-button>
<el-button type="success" icon="el-icon-edit" @click="addForm()">新增</el-button>
<el-button type="primary" @click="submitForm()">查询</el-button>
<el-button type="success" @click="addForm()">新增</el-button>
</el-col>
</el-row>
... ... @@ -36,32 +36,19 @@
:data="tableData"
border
v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px">
<el-table-column
<!--<el-table-column
prop="awcd"
label="承运人">
</el-table-column>
</el-table-column>-->
<el-table-column
prop="flightNo"
label="航班号">
</el-table-column>
<el-table-column
prop="customscode"
label="申报关区">
</el-table-column>
<el-table-column
prop="aircraftNo"
label="航空注册器编号">
</el-table-column>
<el-table-column
prop="transportflag"
label="航空器备案类型"
show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="aircraftstand"
label="停机位">
</el-table-column>
<el-table-column
prop="departurePort"
label="航班起始站">
</el-table-column>
... ... @@ -70,16 +57,37 @@
label="航班目的站">
</el-table-column>
<el-table-column
prop="customscode"
label="申报关区">
</el-table-column>
<el-table-column
label="配置类型">
<template slot-scope="scope">
<span v-if="scope.row.type ==='2'">入境</span>
<span v-if="scope.row.type ==='1'">出境</span>
</template>
</el-table-column>
<!--<el-table-column
prop="transportflag"
label="航空器备案类型"
show-overflow-tooltip>
</el-table-column>-->
<!--<el-table-column
prop="aircraftstand"
label="停机位">
</el-table-column>-->
<el-table-column
prop="departuredatetime"
label="预计出境时间">
</el-table-column>
<el-table-column
prop="arrivaldatetime"
label="预计入境时间">
</el-table-column><el-table-column
</el-table-column>
<!--<el-table-column
prop="validtime"
label="配置生效到期日">
</el-table-column>
</el-table-column>-->
<el-table-column
label="配置状态">
<template slot-scope="scope">
... ... @@ -87,14 +95,8 @@
<span v-if="scope.row.status ==='1'">生效</span>
</template>
</el-table-column>
<el-table-column
label="配置类型">
<template slot-scope="scope">
<span v-if="scope.row.type ==='2'">入境</span>
<span v-if="scope.row.type ==='1'">出境</span>
</template>
</el-table-column>
<el-table-column
<!--<el-table-column
prop="userid"
label="创建人">
</el-table-column>
... ... @@ -109,12 +111,12 @@
<el-table-column
prop="meno"
label="备注">
</el-table-column>
</el-table-column>-->
<el-table-column
fixed="right"
prop=""
label="报文操作"
width="280">
label="信息操作"
width="180">
<template slot-scope="scope">
<el-button
size="mini"
... ... @@ -174,9 +176,12 @@
<el-row>
<el-col :span="6">
<el-form-item label="航空器备案类型" prop="transportflag" label-width="140px">
<el-input v-model="configure_addForm.transportflag"
></el-input>
<el-select v-model="configure_addForm.transportflag" placeholder="请选择">
<el-option label="通用航空器" value="1"></el-option>
<el-option label="航线航空器" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="停机位" prop="aircraftstand" label-width="120px">
... ... @@ -201,8 +206,8 @@
v-model="configure_addForm.departuredatetime"
type="datetime"
placeholder="选择日期时间"
value-format="yyyyMMddhhmmss"
format="yyyyMMddhhmmss"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width:100%">
</el-date-picker>
</el-form-item>
... ... @@ -213,8 +218,8 @@
v-model="configure_addForm.arrivaldatetime"
type="datetime"
placeholder="选择日期时间"
value-format="yyyyMMddhhmmss"
format="yyyyMMddhhmmss"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width:100%">
</el-date-picker>
</el-form-item>
... ... @@ -225,18 +230,18 @@
v-model="configure_addForm.validtime"
type="datetime"
placeholder="选择日期时间"
value-format="yyyyMMddhhmmss"
format="yyyyMMddhhmmss"
value-format="yyyy-MM-dd HH:mm:ss"
format="yyyy-MM-dd HH:mm:ss"
style="width: 100%"
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<!--<el-col :span="6">
<el-form-item label="创建人" prop="userid" label-width="120px">
<el-input v-model="configure_addForm.userid"></el-input>
</el-form-item>
</el-col>
</el-col>-->
<el-col :span="6">
<el-form-item label="配置类型" prop="type" label-width="120px">
... ... @@ -256,7 +261,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<!--<el-col :span="6">
<el-form-item label="创建时间" prop="creatdate" label-width="120px">
<el-date-picker
v-model="configure_addForm.creatdate"
... ... @@ -281,9 +286,7 @@
:picker-options="pickerOptions">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-row>
</el-col>-->
<el-col :span="12">
<el-form-item label="星期日期" prop="schedule.options" label-width="120px">
<el-select v-model="configure_addForm.schedule.options" multiple placeholder="请选择(可多选)" style="width: 100%">
... ... @@ -296,11 +299,6 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="备注" prop="meno" label-width="120px">
<el-input v-model="configure_addForm.meno"></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
... ... @@ -377,15 +375,15 @@
flightNo:'',
customscode:'',
aircraftNo:'',
transportflag:'',
transportflag:'1',
aircraftstand:'',
departurePort:'',
arrivalPort:'',
departuredatetime:'',
arrivaldatetime:'',
validtime:'',
status:'',
type:'',
status:'1',
type:'2',
userid:'',
creatdate:'',
updatedate:'',
... ... @@ -454,21 +452,12 @@
validtime: [
{ required: true, message: '请输入', trigger: 'change' }
],
userid: [
{ required: true, message: '请输入', trigger: 'change' }
],
type: [
{ required: true, message: '请输入', trigger: 'change' }
],
status: [
{ required: true, message: '请输入', trigger: 'change' }
],
creatdate: [
{ required: true, message: '请输入', trigger: 'change' }
],
updatedate: [
{ required: true, message: '请输入', trigger: 'change' }
],
'schedule.options': [
{ required: true, message: '请输入', trigger: 'change' }
],
... ... @@ -490,7 +479,6 @@
const _this = this
selectPrePlanConfig(this.queryConfigure).then((response) => {
const res = response.data
console.log(response.data)
if (res.code !== '200') {
return _this.$message.error('获取消息收发记录,失败!')
}
... ... @@ -519,7 +507,6 @@
this.$refs.configure_addForm.validate(valid => {
// 未通过,表单预校验
if (!valid) return
console.log(this.configure_addForm);
addPrePlanConfig(this.configure_addForm).then((response) => {
const res = response.data
// 添加失败
... ... @@ -541,7 +528,6 @@
// 打开编辑
handleEdit(index, row) {
this.configure_addForm = Object.assign({}, row);
console.log(this.configure_addForm)
this.configure_addForm.schedule.options=[];
for(var obj in row.schedulelist){
console.log(this.configure_addForm.schedule.options.push(row.schedulelist[obj]['weekday']))
... ...
... ... @@ -109,7 +109,7 @@
</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-button type="success">保存并发送</el-button>-->
</el-col>
</el-form>
</el-row>
... ... @@ -296,13 +296,15 @@
addRoute(this.airline).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryRoute',query:{serialNo:this.airline.serialNo}});
this.centerDialogVisible=false;
//this.centerDialogVisible=false;
this.$message.success(response.msg)
}else{
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -346,7 +348,7 @@
},
//渲染方法
mounted(){
activated(){
this.defaultData();
}
}
... ...
... ... @@ -279,11 +279,12 @@
addAirLineAircraft(this.aircraft).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryRouteaircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo},});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -300,11 +301,12 @@
sendAirLineAircraft(this.aircraft).then(res=>{
let response=res.data;
if(response.code=='200'){
this.centerDialogVisible=true;
this.msg=response.msg;
//this.centerDialogVisible=true;
//this.msg=response.msg;
this.$router.push({path:'/queryRouteaircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo},});
this.$message.success(response.msg)
}else{
this.msg=response.msg;
this.$message.error(response.msg)
}
});
} else {
... ... @@ -325,7 +327,7 @@
}
},
mounted(){
activated(){
this.defaultData();
}
}
... ...
<template>
<div>
<el-row :gutter="10">
<el-col :span="4">
<el-input
placeholder="航空器注册编号"
v-model="query.aircraftNo"
size="medium"
clearable>
</el-input>
</el-col>
<el-col :span="4">
<el-input
placeholder="进出境航班号"
v-model="query.flightNo"
size="medium"
clearable>
</el-input>
</el-col>
<el-col :span="8">
<div class="block">
<el-date-picker
v-model="flightdate"
type="daterange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
size="medium"
align="right">
</el-date-picker>
</div>
</el-col>
<el-col :span="6">
<el-select v-model="query.customDistrictNo"
filterable
allow-create
default-first-option
remote
:remote-method="getCustomCode"
size="medium"
:loading="loading" placeholder="海关关区">
<el-option
v-for="item in customcodes"
:key="item.customcode"
:label="item.customcode"
:value="item.customcode">
<span style="float: left">{{ item.customcode }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
</el-option>
</el-select>
</el-col>
</el-row>
<el-row :gutter="10">
<el-col :span="4">
<el-select v-model="query.accessFlag" size="medium" placeholder="请选择">
<el-option label="进境" value="0"></el-option>
<el-option label="出境" value="1"></el-option>
</el-select>
</el-col>
<el-col :span="4">
<el-select v-model="query.yqtype" size="medium" placeholder="请选择">
<el-option label="预报" value="Y"></el-option>
<el-option label="确报" value="Q"></el-option>
</el-select>
</el-col>
<el-col :span="2">
<el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
</el-col>
<el-col :span="2">
<el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
</el-col>
</el-row>
<el-row :gutter="10">
<el-table
:data="tableData"
border
style="width: 100%">
<el-table-column
fixed="left"
label="信息操作"
width="100">
<template slot-scope="scope">
<el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
</template>
</el-table-column>
<el-table-column
prop="messageid"
label="编号"
width="240">
</el-table-column>
<el-table-column
prop="aircraftNo"
label="航空器注册编号"
width="110">
</el-table-column>
<el-table-column
prop="flightNo"
label="进出境航班号"
width="120">
</el-table-column>
<el-table-column
prop="flightDate"
label="航班日期"
width="120">
</el-table-column>
<el-table-column
label="进出类型"
width="120">
<template slot-scope="scope">
{{ scope.row.accessFlag === '0' ? '进境' : '出境' }}
</template>
</el-table-column>
<el-table-column
label="申报类型"
width="120">
<template slot-scope="scope">
{{ scope.row.yqtype === 'Y' ? '预报' : '确报' }}
</template>
</el-table-column>
<el-table-column
label="进出境时间"
width="120">
<template slot-scope="scope">
<span v-if="scope.row.accessFlag === '0'">{{ scope.row.arrivaldatetime }}</span>
<span v-else>{{ scope.row.departuredatetime }}</span>
</template>
</el-table-column>
<el-table-column
prop="arrivalPort"
label="目的港"
width="120">
</el-table-column>
<el-table-column
prop="statusMsg"
label="海关状态"
width="120">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="220">
<template slot-scope="scope">
<el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="sendpre(scope.row,2)" type="text" size="small">申报</el-button>
<el-button @click="sendpre(scope.row,5)" type="text" size="small">修改</el-button>
<el-button @click="sendpre(scope.row,3)" type="text" size="small">删除</el-button>
<el-button @click="cancleSB(scope.row)" type="text" size="small">取消</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row :gutter="10">
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="query.pageNum"
:page-sizes="[10, 20, 30, 40]"
:page-size="query.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</el-row>
<el-row>
<el-dialog
:title="'预确报信息'+textMap[dialogStatus]"
:visible.sync="dialogVisible"
width="80%"
center>
<el-form :model="form" :rules="rules" ref="form" label-width="130px">
<el-divider content-position="left"><span style="color: #1d8ce0">报给单位</span></el-divider>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="海关关区" prop="customDistrictNo">
<el-select v-model="form.customDistrictNo"
filterable
allow-create
default-first-option
remote
:remote-method="getCustomCode2"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in customcodes2"
:key="item.customcode"
:label="item.customcode"
:value="item.customcode">
<span style="float: left">{{ item.customcode }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="进出类型" prop="accessFlag">
<el-select v-model="form.accessFlag" placeholder="请选择">
<el-option label="进境" value="0"></el-option>
<el-option label="出境" value="1"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="申报类型" prop="yqtype">
<el-select v-model="form.yqtype" placeholder="请选择">
<el-option label="预报" value="Y"></el-option>
<el-option label="确报" value="Q"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left"><span style="color: #1d8ce0">航空器信息</span></el-divider>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="航空器注册编号" prop="aircraftno">
<el-input v-model="form.aircraftNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="注册海关关区" prop="costomcode">
<el-select v-model="form.costomcode"
filterable
allow-create
default-first-option
remote
:remote-method="getCustomCode3"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in customcodes3"
:key="item.customcode"
:label="item.customcode"
:value="item.customcode">
<span style="float: left">{{ item.customcode }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航空器备案类型" prop="aircrafttype">
<el-select v-model="form.aircrafttype" placeholder="请选择">
<el-option label="通用航空器" value="1"></el-option>
<el-option label="航线航空器" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left"><span style="color: #1d8ce0">航班信息</span></el-divider>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="进出境航班号" prop="flightNo">
<el-input v-model="form.flightNo"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班日期" prop="flightDate" style="width: 100%;">
<div class="block">
<el-date-picker
v-model="form.flightDate"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
style="width: 100%;"
></el-date-picker>
</div>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="停机位" prop="stayid">
<el-input v-model="form.stayid"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出发港" prop="departurePort" style="width: 100%;">
<el-select v-model="form.departurePort"
filterable
allow-create
default-first-option
remote
:remote-method="getAirportCode"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in airportcodes"
: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.airportname}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="目的港" prop="arrivalPort" style="width: 100%;">
<el-select v-model="form.arrivalPort"
filterable
allow-create
default-first-option
remote
:remote-method="getAirportCode2"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in airportcodes2"
: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.airportname}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="出境时间" prop="departuredatetime" style="width: 100%;">
<el-date-picker
v-model="form.departuredatetime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="yyyy-MM-dd HH:mm:ss"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="进境时间" prop="arrivaldatetime" style="width: 100%;">
<el-date-picker
v-model="form.arrivaldatetime"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="yyyy-MM-dd HH:mm:ss"
style="width: 100%;">
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left"><span style="color: #1d8ce0">海关备注</span></el-divider>
<el-row :gutter="20">
<el-col :span="12">
<el-form-item label="海关备注">
<el-input v-model="form.meno"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row :gutter="20">
<el-col :span="12" :offset="6">
<el-form-item>
<el-button @click="dialogVisible=false">取消</el-button>
<el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
</el-row>
<el-row :gutter="10">
<el-dialog
title="回执列表"
:visible.sync="returnVisible"
width="55%"
:before-close="handleClose">
<el-table :data="gridData">
<el-table-column property="sendtime" label="操作时间" ></el-table-column>
<el-table-column property="createBy" label="操作人" ></el-table-column>
<el-table-column property="flightNo" label="航班号"></el-table-column>
<el-table-column property="flightDate" label="航班日期" ></el-table-column>
<el-table-column property="receiptContent" label="回执内容" ></el-table-column>
</el-table>
</el-dialog>
</el-row>
<el-row>
<el-dialog title="航班取消申报" :visible.sync="dialogFormVisible">
<el-form :model="cancleForm">
<el-form-item label="取消原因" label-width="130px">
<el-input v-model="cancleForm.content" autocomplete="off"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="dialogFormVisible = false">取 消</el-button>
<el-button type="primary" @click="canclesendpre">确 定</el-button>
</div>
</el-dialog>
</el-row>
</div>
</template>
<script>
import {
selectByairportcode,
selectBycustomcode,
selectPreList,
insertSelectivePre,
updateByPrimaryKeySelectivePre, selectReturnMsgList, canclePre,sendPrediction
} from "../../api/transport/transport2.0";
export default {
data(){
return{
cancleForm:{
content:''
},
dialogFormVisible:false,
textMap:{
update: '编辑',
create: '新增'
},
dialogStatus:'',
dialogVisible:false,
form: {
uuid: '', // 唯一标识符
awcd: '', // 不知道具体含义,根据业务需求填充
aircraftNo: '', // 飞机编号
flightNo: '', // 航班号
flightDate: '', // 航班日期
departurePort: '', // 出发港
arrivalPort: '', // 到达港
departuredatetime: '', // 出发日期时间
departuredate: '', // 出发日期
stayid: '', // 停留ID
departureconveyancefacility: '', // 出发运输设施
arrivalconveyancefacility: '', // 到达运输设施
arrivaldatetime: '', // 到达日期时间
arrivaldate: '', // 到达日期
dischargecompleteddatetime: '', // 卸载完成日期时间
transportflag: '', // 运输标志
customDistrictNo: '', // 海关区号
cancelFlag: '', // 取消标志
accessFlag: '0', // 访问标志
meno: '', // 备注
createTime: '', // 创建时间
createBy: '', // 创建人
updateTime: '', // 更新时间
updateBy: '', // 更新人
isDelete: '0', // 是否删除
status: '', // 状态
statusMsg: '', // 状态信息
messageid: '', // 消息ID
yqtype: 'Y', // 不知道具体含义,根据业务需求填充
costomcode:'',
aircrafttype:'1',
content:''
},
tableData:[],
total:0,
query:{
aircraftNo:'',
flightNo:'',
starttime:'',
endtime:'',
customDistrictNo:'',
accessFlag:'',
yqtype:'',
pageNum:0,
pageSize:10
},
customcodes:[],
customcodes2:[],
customcodes3:[],
airportcodes:[],
airportcodes2:[],
loading:false,
flightdate:[],
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
rules:{
aircraftNo: [
{ required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
],
flightNo: [
{ required: true, message: '航班号不可为空', trigger: 'blur' }
],
flightDate: [
{ required: true, message: '航班日期不可为空', trigger: 'blur' }
],
customDistrictNo: [
{ required: true, message: '海关关区不可为空', trigger: 'blur' }
],
costomcode: [
{ required: true, message: '海关关区不可为空', trigger: 'blur' }
],
aircrafttype: [
{ required: true, message: '航空器备案类型不可为空', trigger: 'blur' }
],
stayid: [
{ required: true, message: '停机位不可为空', trigger: 'blur' }
],
departurePort: [
{ required: true, message: '出发港不可为空', trigger: 'blur' }
],
arrivalPort: [
{ required: true, message: '目的港不可为空', trigger: 'blur' }
],
departuredatetime: [
{ required: true, message: '出境不可为空', trigger: 'blur' }
],
arrivaldatetime: [
{ required: true, message: '进境不可为空', trigger: 'blur' }
],
},
returnVisible:false,
gridData:[],
row2:undefined
}
},
methods:{
cancleSB(row){
this.dialogFormVisible=true;
this.row2=row;
},
canclesendpre(row,FunctionCode){
this.row2.content=this.cancleForm.content;
const params = {
row: this.row2,
FunctionCode: 2
};
canclePre(params).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogFormVisible=false;
this.selectList();
this.$message.success(response.msg)
}else{
this.$message.error(response.msg)
}
});
},
sendpre(row,FunctionCode){
//this.row2.content=this.cancleForm.content;
const params = {
row: row,
FunctionCode: FunctionCode
};
sendPrediction(params).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogFormVisible=false;
this.selectList();
this.$message.success(response.msg)
}else{
this.$message.error(response.msg)
}
});
},
handleClose() {
this.returnVisible=false;
},
//查询回执列表
returnlist(row){
this.gridData=[];
let params={messageid:row.messageid};
selectReturnMsgList(params).then(res=>{
let response=res.data.data;
this.gridData=response;
});
this.returnVisible=true;
},
createData(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
insertSelectivePre(this.form).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogVisible=false;
this.$message.success(response.msg);
this.selectList();
}else{
this.$message.error(response.msg)
}
});
} else {
return false;
}
});
},
updateData(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
this.form.departuredatetime=this.form.arrivaldatetime;
this.form.departureAirport=this.form.arrivalAirport;
updateByPrimaryKeySelectivePre(this.form).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogVisible=false;
Object.assign(this.$data, this.$options.data());
this.$message.success(response.msg);
this.getList();
}else{
this.$message.error(response.msg)
}
});
} else {
return false;
}
});
},
//获取关区代码
getCustomCode:function(query){
this.customcodes=[];
let params={customcode:query};
this.loading = true;
selectBycustomcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.customcodes=res.data.data;
}, 200);
} else {
this.customcodes = [];
}
});
},
//获取关区代码
getCustomCode2:function(query){
this.customcodes2=[];
let params={customcode:query};
this.loading = true;
selectBycustomcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.customcodes2=res.data.data;
}, 200);
} else {
this.customcodes2 = [];
}
});
},
//获取关区代码
getCustomCode3:function(query){
this.customcodes3=[];
let params={customcode:query};
this.loading = true;
selectBycustomcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.customcodes3=res.data.data;
}, 200);
} else {
this.customcodes3 = [];
}
});
},
//获取机场代码
getAirportCode:function(query){
this.airportcodes=[];
let params={airportid:query};
this.loading = true;
selectByairportcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.airportcodes=res.data.data;
}, 200);
} else {
this.airportcodes = [];
}
});
},
//获取机场代码
getAirportCode2:function(query){
this.airportcodes2=[];
let params={airportid:query};
this.loading = true;
selectByairportcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.airportcodes2=res.data.data;
}, 200);
} else {
this.airportcodes2 = [];
}
});
},
selectList(){
if(this.flightdate !== null && this.flightdate !== ""){
this.query.starttime = this.flightdate[0];
this.query.endtime = this.flightdate[1];
}else{
return this.$message.error('请选取时间区间')
}
this.loading = true;
selectPreList(this.query).then((response) => {
const res = response.data
if (res.code !== '200') {
this.loading = false;
return this.$message.error('获取消息收发记录,失败!')
}
// 获取列表数据
this.tableData = res.data.list
// 获取列表的总记录数
this.total = res.data.total
this.loading = false;
this.$message.success('获取消息收发记录,成功!');
}).catch(error => {
// 关闭加载
this.$message.error(error.toString())
})
},
//新增
addForm(){
this.dialogVisible=true;
this.dialogStatus='create';
},
handleClick(row){
this.dialogVisible=true;
this.dialogStatus='update';
this.form=row;
},
//分页
handleSizeChange(val) {
this.query.pageSize=val;
this.selectList();
},
handleCurrentChange(val) {
this.query.pageNum=val;
this.selectList();
}
},
}
</script>
... ...
<template>
<div>
<el-row :gutter="10">
<el-col :span="4">
<el-input
placeholder="航空器注册编号"
v-model="query.aircraftno"
size="medium"
clearable>
</el-input>
</el-col>
<el-col :span="4">
<el-input
placeholder="进境(港)航班号"
v-model="query.flightno"
size="medium"
clearable>
</el-input>
</el-col>
<el-col :span="8">
<div class="block">
<el-date-picker
v-model="flightdate"
type="daterange"
:picker-options="pickerOptions"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
value-format="yyyy-MM-dd"
size="medium"
align="right">
</el-date-picker>
</div>
</el-col>
<el-col :span="2">
<el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
</el-col>
<el-col :span="2">
<el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
</el-col>
</el-row>
<el-row :gutter="10">
<el-table
:data="tableData"
border
style="width: 100%">
<el-table-column
align="center"
fixed="left"
label="信息操作"
width="80">
<template slot-scope="scope">
<el-button @click="ediForm(scope.row)" type="text" size="small">编辑</el-button>
</template>
</el-table-column>
<el-table-column
prop="messageid"
label="编号"
width="320">
</el-table-column>
<el-table-column
prop="aircraftno"
label="航空器注册编号"
width="120">
</el-table-column>
<el-table-column
prop="flightno"
label="进境(港)航班号"
width="120">
</el-table-column>
<el-table-column
prop="callport"
label="停靠港"
width="120">
</el-table-column>
<el-table-column
prop="flightdate"
label="航班日期"
width="100">
</el-table-column>
<el-table-column
prop="statusmsg"
label="海关状态"
width="120">
</el-table-column>
<el-table-column
fixed="right"
label="操作"
width="200">
<template slot-scope="scope">
<el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
<el-button @click="sendstying(scope.row,2)" type="text" size="small">申报</el-button>
<el-button @click="sendstying(scope.row,5)" type="text" size="small">修改</el-button>
<el-button @click="sendstying(scope.row,3)" type="text" size="small">删除</el-button>
</template>
</el-table-column>
</el-table>
</el-row>
<el-row :gutter="10">
<div class="block">
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="query.pageNum"
:page-sizes="[100, 200, 300, 400]"
:page-size="query.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total">
</el-pagination>
</div>
</el-row>
<el-dialog
:title="'在港信息'+textMap[dialogStatus]"
:visible.sync="dialogVisible"
width="80%"
center>
<el-form :model="form" :rules="rules" ref="form" label-width="130px">
<el-divider content-position="left"><span style="color: #1d8ce0">报给单位</span></el-divider>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="海关关区" prop="customcode">
<el-select v-model="form.customcode"
filterable
allow-create
default-first-option
remote
:remote-method="getCustomCode"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in customcodes"
:key="item.customcode"
:label="item.customcode"
:value="item.customcode">
<span style="float: left">{{ item.customcode }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left"><span style="color: #1d8ce0">航空器信息</span></el-divider>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="航空器注册编号" prop="aircraftno">
<el-input v-model="form.aircraftno"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="注册海关关区">
<el-select v-model="form.registeredcustom"
filterable
allow-create
default-first-option
remote
:remote-method="getCustomCode2"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in customcodes2"
:key="item.customcode"
:label="item.customcode"
:value="item.customcode">
<span style="float: left">{{ item.customcode }}</span>
<span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航空器备案类型">
<el-select v-model="form.aircrafttype" placeholder="请选择">
<el-option label="通用航空器" value="1"></el-option>
<el-option label="航线航空器" value="2"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left"><span style="color: #1d8ce0">在港申报信息</span></el-divider>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="进境(港)航班号" prop="flightno">
<el-input v-model="form.flightno"></el-input>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="航班日期" prop="flightdate" style="width: 100%;">
<div class="block">
<el-date-picker
v-model="form.flightdate"
value-format="yyyy-MM-dd"
type="date"
placeholder="选择日期"
style="width: 100%;"
></el-date-picker>
</div>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="停靠港" prop="callport" style="width: 100%;">
<el-select v-model="form.callport"
filterable
allow-create
default-first-option
remote
:remote-method="getAirportCode"
:loading="loading" placeholder="请选择">
<el-option
v-for="item in airportcodes"
: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.airportname}}</span>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="停机位" prop="callarea">
<el-input v-model="form.callarea"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-divider content-position="left"><span style="color: #1d8ce0">备注信息</span></el-divider>
<el-row :gutter="20">
<el-col :span="6">
<el-form-item label="滞留原因">
<el-select v-model="form.reasons" placeholder="请选择">
<el-option label="移泊" value="1"></el-option>
<el-option label="待命" value="2"></el-option>
<el-option label="维修" value="3"></el-option>
<el-option label="其它" value="4"></el-option>
</el-select>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item label="海关备注">
<el-input v-model="form.remark"></el-input>
</el-form-item>
</el-col>
</el-row>
<el-divider></el-divider>
<el-row :gutter="20">
<el-col :span="12" :offset="6">
<el-form-item>
<el-button @click="dialogVisible=false">取消</el-button>
<el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
</el-form-item>
</el-col>
</el-row>
</el-form>
</el-dialog>
<el-dialog
title="回执列表"
:visible.sync="returnVisible"
width="55%"
:before-close="handleClose">
<el-table :data="gridData">
<el-table-column property="sendtime" label="操作时间" ></el-table-column>
<el-table-column property="createBy" label="操作人" ></el-table-column>
<el-table-column property="flightNo" label="航班号"></el-table-column>
<el-table-column property="flightDate" label="航班日期" ></el-table-column>
<el-table-column property="receiptContent" label="回执内容" ></el-table-column>
</el-table>
</el-dialog>
</div>
</template>
<script>
import {selectBycustomcode,selectByairportcode,selectLists,insertSelective,updateByPrimaryKeySelective,
selectReturnMsgList,sendAircraftstaying} from "../../api/transport/transport2.0";
export default {
data(){
return{
returnVisible:false,
query:{
aircraftno:'',
flightno:'',
flightdate:'',
starttime:'',
endtime:'',
pageNum:0,
pageSize:10
},
customcodes:[],
customcodes2:[],
airportcodes:[],
form:{
uuid:'',
customcode:'',
aircraftno:'',
registeredcustom:'',
aircrafttype:'',
flightno:'',
flightdate:'',
callport:'',
callarea:'',
reasons:'',
remark:'',
userid:'',
status:'',
statusmsg:'',
messageid:''
},
rules: {
customcode: [
{ required: true, message: '海关关区不可为空', trigger: 'blur' }
],
aircraftno: [
{ required: true, message: '航空器注册编号不可为空', trigger: 'blur' }
],
flightno: [
{ required: true, message: '进境(港)航班号不可为空', trigger: 'blur' }
],
flightdate: [
{ required: true, message: '航班日期不可为空', trigger: 'blur' }
],
callport: [
{ required: true, message: '停靠港不可为空', trigger: 'blur' }
],
callarea: [
{ required: true, message: '停机位不可为空', trigger: 'blur' }
]
},
dialogVisible: false,
currentPage4: 4,
textMap:{
update: '编辑',
create: '新增'
},
dialogStatus:'',
loading:false,
flightdate:'',
total:0,
pickerOptions: {
shortcuts: [{
text: '最近一周',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const end = new Date();
const start = new Date();
start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
picker.$emit('pick', [start, end]);
}
}]
},
tableData: [],
gridData:[]
}
},
methods:{
sendstying(row,FunctionCode){
const params = {
row: row,
FunctionCode: FunctionCode
};
sendAircraftstaying(params).then(res =>{
let response=res.data;
if(response.code=='200'){
this.selectList();
this.$message.success(response.msg)
}else{
this.$message.error(response.msg)
}
});
},
//查询回执列表
returnlist(row){
this.gridData=[];
let params={messageid:row.messageid};
selectReturnMsgList(params).then(res=>{
let response=res.data.data;
this.gridData=response;
});
this.returnVisible=true;
},
handleClose() {
this.returnVisible=false;
},
//暂存新增
createData(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
insertSelective(this.form).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogVisible=false;
this.$message.success(response.msg)
}else{
this.$message.error(response.msg)
}
});
} else {
return false;
}
});
},
//暂存更新
updateData(formName){
this.$refs[formName].validate((valid) => {
if (valid) {
updateByPrimaryKeySelective(this.form).then(res =>{
let response=res.data;
if(response.code=='200'){
this.dialogVisible=false;
Object.assign(this.$data, this.$options.data());
this.$message.success(response.msg)
}else{
this.$message.error(response.msg)
}
});
} else {
return false;
}
});
},
//查询列表
selectList(){
if(this.flightdate !== null && this.flightdate !== ""){
this.query.starttime = this.flightdate[0];
this.query.endtime = this.flightdate[1];
}else{
return this.$message.error('请选取时间区间')
}
this.loading = true;
selectLists(this.query).then((response) => {
const res = response.data
if (res.code !== '200') {
this.loading = false;
return this.$message.error('获取消息收发记录,失败!')
}
// 获取列表数据
this.tableData = res.data.list
// 获取列表的总记录数
this.total = res.data.total
this.loading = false;
this.$message.success('获取消息收发记录,成功!');
}).catch(error => {
// 关闭加载
this.$message.error(error.toString())
})
},
//获取机场代码
getAirportCode:function(query){
this.airportcodes=[];
let params={airportid:query};
this.loading = true;
selectByairportcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.airportcodes=res.data.data;
}, 200);
} else {
this.airportcodes = [];
}
});
},
//获取关区代码
getCustomCode:function(query){
this.customcodes=[];
let params={customcode:query};
this.loading = true;
selectBycustomcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.customcodes=res.data.data;
}, 200);
} else {
this.customcodes = [];
}
});
},
getCustomCode2:function(query){
this.customcodes2=[];
let params={customcode:query};
this.loading = true;
selectBycustomcode(params).then(res =>{
if (res !== '') {
setTimeout(() => {
this.loading = false;
this.customcodes2=res.data.data;
}, 200);
} else {
this.customcodes2 = [];
}
});
},
//新增
addForm(){
this.dialogVisible=true;
this.dialogStatus='create';
},
//编辑
ediForm(row){
this.dialogVisible=true;
this.dialogStatus='update';
this.form=row;
},
handleClick(row) {
},
//分页
handleSizeChange(val) {
this.query.pageSize=val;
this.selectList();
},
handleCurrentChange(val) {
this.query.pageNum=val;
this.selectList();
}
}
}
</script>
... ...