作者 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 = { @@ -38,7 +38,12 @@ module.exports = {
38 { 38 {
39 test: /\.js$/, 39 test: /\.js$/,
40 loader: 'babel-loader', 40 loader: 'babel-loader',
41 - include: [resolve('src'), resolve('test')] 41 + include: [
  42 + resolve('src'),
  43 + resolve('test'),
  44 + resolve('node_modules/vue-beautiful-chat/dist'),
  45 + resolve('node_modules/@kangc/v-md-editor')
  46 + ]
42 }, 47 },
43 { 48 {
44 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/, 49 test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
@@ -63,7 +68,8 @@ module.exports = { @@ -63,7 +68,8 @@ module.exports = {
63 resolve('src'), 68 resolve('src'),
64 resolve('test'), 69 resolve('test'),
65 resolve('node_modules/element-ui/src'), 70 resolve('node_modules/element-ui/src'),
66 - resolve('node_modules/element-ui/packages') 71 + resolve('node_modules/element-ui/packages'),
  72 + resolve('node_modules/@kangc/v-md-editor')
67 ], 73 ],
68 } 74 }
69 ] 75 ]
@@ -43,6 +43,15 @@ module.exports = { @@ -43,6 +43,15 @@ module.exports = {
43 '^/api/task/': '/', //这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可 43 '^/api/task/': '/', //这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
44 } 44 }
45 }, 45 },
  46 + '/api/ai-agent':{
  47 + target: 'http://192.168.1.77',//设置你调用的接口域名和端口号 别忘了加http
  48 + // target: 'http://192.168.1.189:12343',//设置你调用的接口域名和端口号 别忘了加http
  49 + // target: 'http://localhost:12343',//设置你调用的接口域名和端口号 别忘了加http
  50 + changeOrigin: true,
  51 + pathRewrite: {
  52 + '^/api/ai-agent': '/', //这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
  53 + }
  54 + },
46 '/api':{ 55 '/api':{
47 target: 'http://192.168.1.63:12343',//设置你调用的接口域名和端口号 别忘了加http 56 target: 'http://192.168.1.63:12343',//设置你调用的接口域名和端口号 别忘了加http
48 // target: 'http://192.168.1.189:12343',//设置你调用的接口域名和端口号 别忘了加http 57 // target: 'http://192.168.1.189:12343',//设置你调用的接口域名和端口号 别忘了加http
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 3
4 <head> 4 <head>
5 <meta charset="utf-8"> 5 <meta charset="utf-8">
6 - <title>易通链快速通关申报平台</title> 6 + <title>物流信息平台</title>
7 <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> 7 <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
8 </head> 8 </head>
9 9
@@ -14,4 +14,4 @@ @@ -14,4 +14,4 @@
14 <!-- built files will be auto injected --> 14 <!-- built files will be auto injected -->
15 </body> 15 </body>
16 16
17 -</html>  
  17 +</html>
@@ -11,6 +11,7 @@ @@ -11,6 +11,7 @@
11 }, 11 },
12 "dependencies": { 12 "dependencies": {
13 "@amap/amap-jsapi-loader": "^1.0.1", 13 "@amap/amap-jsapi-loader": "^1.0.1",
  14 + "@kangc/v-md-editor": "^1.7.12",
14 "@xkeshi/vue-barcode": "^1.0.0", 15 "@xkeshi/vue-barcode": "^1.0.0",
15 "axios": "^0.19.0", 16 "axios": "^0.19.0",
16 "common": "^0.2.5", 17 "common": "^0.2.5",
@@ -21,21 +22,24 @@ @@ -21,21 +22,24 @@
21 "eslint-plugin-html": "^6.0.2", 22 "eslint-plugin-html": "^6.0.2",
22 "eslint-plugin-vue": "^8.7.1", 23 "eslint-plugin-vue": "^8.7.1",
23 "fecha": "^4.2.0", 24 "fecha": "^4.2.0",
24 - "file-saver": "^2.0.2", 25 + "file-saver": "^2.0.5",
25 "font-awesome": "^4.7.0", 26 "font-awesome": "^4.7.0",
26 "form-gen-parser": "^1.0.3", 27 "form-gen-parser": "^1.0.3",
  28 + "fs": "0.0.1-security",
27 "html2canvas": "^1.4.1", 29 "html2canvas": "^1.4.1",
28 "install": "^0.12.2", 30 "install": "^0.12.2",
29 "js-cookie": "^2.2.1", 31 "js-cookie": "^2.2.1",
30 "js-file-download": "^0.4.12", 32 "js-file-download": "^0.4.12",
31 "jspdf": "^1.5.3", 33 "jspdf": "^1.5.3",
32 "jszip": "^3.2.2", 34 "jszip": "^3.2.2",
  35 + "minio": "^8.0.1",
33 "moment": "^2.29.4", 36 "moment": "^2.29.4",
34 "npm": "^6.8.0", 37 "npm": "^6.8.0",
35 "nprogress": "^0.2.0", 38 "nprogress": "^0.2.0",
  39 + "prismjs": "^1.29.0",
36 "script-loader": "^0.7.2", 40 "script-loader": "^0.7.2",
37 "sortablejs": "^1.15.0", 41 "sortablejs": "^1.15.0",
38 - "vue": "^2.5.2", 42 + "vue": "^2.6.11",
39 "vue-beautiful-chat": "^2.5.0", 43 "vue-beautiful-chat": "^2.5.0",
40 "vue-count-to": "^1.0.13", 44 "vue-count-to": "^1.0.13",
41 "vue-i18n": "^8.14.0", 45 "vue-i18n": "^8.14.0",
@@ -46,6 +50,7 @@ @@ -46,6 +50,7 @@
46 "xlsx": "^0.15.6" 50 "xlsx": "^0.15.6"
47 }, 51 },
48 "devDependencies": { 52 "devDependencies": {
  53 + "@babel/plugin-syntax-class-properties": "^7.12.13",
49 "autoprefixer": "^6.7.2", 54 "autoprefixer": "^6.7.2",
50 "axios-mock-adapter": "^1.7.1", 55 "axios-mock-adapter": "^1.7.1",
51 "babel-core": "^6.22.1", 56 "babel-core": "^6.22.1",
@@ -85,7 +90,7 @@ @@ -85,7 +90,7 @@
85 "url-loader": "^0.5.8", 90 "url-loader": "^0.5.8",
86 "vue-loader": "^11.1.4", 91 "vue-loader": "^11.1.4",
87 "vue-style-loader": "^2.0.0", 92 "vue-style-loader": "^2.0.0",
88 - "vue-template-compiler": "^2.2.4", 93 + "vue-template-compiler": "^2.6.11",
89 "webpack": "^2.2.1", 94 "webpack": "^2.2.1",
90 "webpack-bundle-analyzer": "^3.4.1", 95 "webpack-bundle-analyzer": "^3.4.1",
91 "webpack-dev-middleware": "^1.10.0", 96 "webpack-dev-middleware": "^1.10.0",
  1 +import http from "../http";
  2 +import axios from "axios";
  3 +let baseUrl = 'hg-server-customai'
  4 +
  5 +//导入excel
  6 +export const importExcel = params => { return http.postExcelData(`${baseUrl}/business/report/importFile`, params); };
  7 +//查询列表
  8 +export const fetchData = params => { return axios.get(`${baseUrl}/business/report/selectList`, { params: params }); };
  9 +//导入更新excel文件
  10 +export const importUpdateExcel = params => { return http.postExcelData(`${baseUrl}/business/report/updateFile`, params); };
  1 +import http from '../http.js';
  2 +let baseServiceURL = '/wlpt-cbed-system/export-receipt';
  3 +
  4 +// POST请求添加出库单
  5 +export const addExportReceipt = (data) => {
  6 + return http.post(`${baseServiceURL}/addExportReceipt`, data);
  7 +};
  8 +
  9 +// POST请求更新出库单信息
  10 +export const updateExportReceipt = (data) => {
  11 + return http.post(`${baseServiceURL}/updateExportReceipt`, data);
  12 +};
  13 +
  14 +// DELETE请求删除出库单(使用POST以适应某些防火墙限制)
  15 +export const deleteExportReceipt = (receiptGuid) => {
  16 + return http.post(`${baseServiceURL}/deleteExportReceipt`,{},{ receiptGuid: receiptGuid });
  17 +};
  18 +
  19 +// GET请求获取单一出库单信息
  20 +export const getExportReceipt = (receiptGuid) => {
  21 + return http.get(`${baseServiceURL}/getExportReceipt`, { "receiptGuid": receiptGuid } );
  22 +};
  23 +
  24 +// GET请求分页查询所有出库单信息
  25 +export const selectAllByPage = (record, pageNum, pageSize) => {
  26 + return http.get(`${baseServiceURL}/selectAllByPage`, { params: { ...record, pageNum, pageSize } });
  27 +};
  28 +
  29 +//POST请求上传导入的excel
  30 +export const uploadExportReceipt = (params) => {
  31 + return http.post(`${baseServiceURL}/importFromExcel`, params);
  32 +};
  33 +
  34 +// 批量申报
  35 +export const batchDeclare = (data) => {
  36 + return http.post(`${baseServiceURL}/batchDeclare`, data);
  37 +};
  1 +import http from '../http.js';
  2 +let baseServiceURL = '/wlpt-cbed-system/LogInfo';
  3 +
  4 +// 新增日志信息 - POST请求
  5 +export const addLogInfo = (logInfo) => {
  6 + return http.post(`${baseServiceURL}/addLogInfo`, logInfo);
  7 +};
  8 +
  9 +// 更新日志信息 - POST请求
  10 +export const editLogInfo = (logInfo) => {
  11 + return http.post(`${baseServiceURL}/editLogInfo`, logInfo);
  12 +};
  13 +
  14 +// 删除日志信息 - GET请求,uuid作为参数传递
  15 +export const deleteLogInfo = (uuid) => {
  16 + return http.get(`${baseServiceURL}/deleteLogInfo`, { uuid: uuid });
  17 +};
  18 +
  19 +// 查询日志信息列表 - GET请求,支持分页和查询条件
  20 +export const selectAllByPage = (data,params) => {
  21 +
  22 + return http.post(`${baseServiceURL}/selectAllByPage`,data, params);
  23 +};
  1 +import axios from 'axios'
  2 +import http from "../http";
  3 +
  4 +let baseServiceURL = 'cross-border-service'
  5 +let baseServiceURL2 = 'wlpt-cbed-system'
  6 +
  7 +//新增客户配置
  8 +export const insertCustomer = params => { return http.post(`${baseServiceURL2}/customer/insertCustomer`, params); };
  9 +//删除客户配置
  10 +export const delCustomer = params => { return axios.get(`${baseServiceURL2}/customer/delCustomer`, { params: params }); };
  11 +//更新客户配置
  12 +export const ediCustomer = params => { return http.post(`${baseServiceURL2}/customer/ediCustomer`, params); };
  13 +//客户配置列表
  14 +export const selectCustomers = params => { return axios.get(`${baseServiceURL2}/customer/selectCustomers`, { params: params }); };
  15 +// 查询客户配置所有列表
  16 +export const selectAll = params => {return axios.get(`${baseServiceURL2}/customer/selectAll`, {params: params});};
  1 +import axios from 'axios'
  2 +
  3 +let baseServiceURL = 'wms-server-warehouse'
  4 +
  5 +
  6 +
  7 +//危险品入库
  8 +export const dangerousImp = params => { return axios.get(`${baseServiceURL}/wms/newinventroyrecord/dangerousImport`, { params: params }); };
  9 +//危险品出库
  10 +export const dangerousExt = params => { return axios.get(`${baseServiceURL}/wms/newinventroyrecord/dangerousExt`, { params: params }); };
  11 +//预配信息查询
  12 +export const checkPre = params => { return axios.get(`${baseServiceURL}/wms/newinventroyrecord/checkPre`, { params: params }); };
  1 +import axios from 'axios'
  2 +import http from "../http";
  3 +
  4 +//let baseServiceURL = 'cross-border-service'
  5 +let baseServiceURL2 = 'wlpt-cbed-system'
  6 +// let baseServiceURL2 = 'wlpt-cbed-system-dev'
  7 +
  8 +
  9 +
  10 +//订单列表
  11 +export const selectLists = params => { return axios.get(`${baseServiceURL2}/ExportOrder/selectList`, { params: params }); };
  12 +//订单申报
  13 +export const sendOrder = params => { return http.post(`${baseServiceURL2}/ExportOrderDeclaration/sendOrder`, params); };
  14 +//根据提运单统计信息
  15 +export const billNoStatistics = params => { return axios.get(`${baseServiceURL2}/ExportListDeclaration/billNoStatistics`, { params: params }); };
  16 +// 根据guid删除订单信息
  17 +export const deleteOrder = params => {return axios.get(`${baseServiceURL2}/ExportOrder/delByClientCodeAndOrderNo`, {params: params}); };
  18 +//根据主单号批量删除订单信息
  19 +export const batchDelBillNo = params => {return axios.get(`${baseServiceURL2}/ExportOrder/batchDelBillNo`, {params: params});}
  20 +// 根据客户编号和订单号批量删除订单信息
  21 +export const batchDelOrderByBeans = params =>{return http.post(`${baseServiceURL2}/ExportOrder/deleteByBeans`,params); };
  22 +// 导入订单文件到minio
  23 +export const importExcelToMinio = params => { return http.postExcelData(`${baseServiceURL2}/import/importExcelToMinio`, params); };
  24 +// 查询导入文件列表
  25 +export const selectFilePage = params =>{return axios.get(`${baseServiceURL2}/import/selectFilePage`, { params: params }); }
  26 +// 批量导入申报
  27 +export const batchDecImport = params => { return http.postExcelData(`${baseServiceURL2}/ExportOrder/batchDecImport`, params); };
  28 +// 批量申报
  29 +export const batchDecList = params => { return http.post(`${baseServiceURL2}/ExportOrder/batchDecList`, params); };
  30 +// 主单申报
  31 +export const batchDecBillNo = params => {return http.get(`${baseServiceURL2}/ExportOrder/batchDecBillNo`, params); };
  32 +// 申请回执查询
  33 +export const selectDecRec = params => {return http.get(`${baseServiceURL2}/ExportOrder/selectDecRec`, params);}
@@ -20,7 +20,7 @@ export const selectByliscenNo = params => { return axios.get(`${baseServiceURL}/ @@ -20,7 +20,7 @@ export const selectByliscenNo = params => { return axios.get(`${baseServiceURL}/
20 //出任务 20 //出任务
21 export const insertSelective = params => { return http.post(`${baseServiceURL}/map/location/insertSelective`, params); }; 21 export const insertSelective = params => { return http.post(`${baseServiceURL}/map/location/insertSelective`, params); };
22 //获取用户列表 22 //获取用户列表
23 -export const getUserList = params => { return http.post(`${serviceName}/crm/list`, params) }; 23 +export const getUserList = (data,params) => { return http.post(`${serviceName}/crm/list`, data, params) };
24 24
25 //车辆轨迹 25 //车辆轨迹
26 export const historyTrack = params => { return axios.get(`${baseServiceURL}/map/location/historyTrack`, { params: params }); }; 26 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 @@ -39,3 +39,26 @@ export const selectNameList = params => { return axios.get(`${baseServiceURL}/ma
39 39
40 //多车定位 40 //多车定位
41 export const queryMulVel = params => { return axios.get(`${baseServiceURL}/map/location/queryMulVel`, { params: params }); }; 41 export const queryMulVel = params => { return axios.get(`${baseServiceURL}/map/location/queryMulVel`, { params: params }); };
  42 +
  43 +//车载运单查询列表
  44 +export const selectNewInventroyrecords = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/selectNewInventroyrecords`, { params: params }); };
  45 +//车载运单新增
  46 +export const addVehicleWaybill = params => { return http.post(`${baseServiceURL}/wms/vehicleWaybill/addVehicleWaybill`, params); };
  47 +//车载运单删除
  48 +export const delVehicleWaybill = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/delVehicleWaybill`, { params: params }); };
  49 +//车载运单更新
  50 +export const ediVehicleWaybill = params => { return http.post(`${baseServiceURL}/wms/vehicleWaybill/ediVehicleWaybill`, params); };
  51 +//车辆派单
  52 +export const paidan = params => { return http.post(`${baseServiceURL}/wms/vehicleWaybill/paidan`, params); };
  53 +//查询车载派单记录列表
  54 +export const selectByDispatchList = params => { return axios.get(`${baseServiceURL}/wms/tracker/selectByDispatchList`, { params: params }); };
  55 +//手动新增车载派单记录
  56 +export const addTracker = params => { return http.post(`${baseServiceURL}/wms/tracker/addTracker`, params); };
  57 +//根据派单号查询运单列表
  58 +export const selectListByDispatch = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/selectListByDispatch`, { params: params }); };
  59 +//上传EXCEL
  60 +export const UploadExcel = params => { return http.postExcelData(`${baseServiceURL}/wms/vehicleWaybill/upload`, params); };
  61 +//车载货物图片上传
  62 +export const uploadGoodsImage = params => { return http.postExcelData(`${baseServiceURL}/wms/vehicleWaybill/uploadGoodsImage`, params); };
  63 +//查询货物图片列表
  64 +export const selectPicsByDispatch = params => { return axios.get(`${baseServiceURL}/wms/vehicleWaybill/selectPicsByDispatch`, { params: params }); };
  1 +import http from "../http";
  2 +
  3 +let base = 'ai-agent';
  4 +
  5 +
  6 +export const getInfo = (data,token) => {return http.postToDify(`${base}/v1/workflows/run`, data,token);};
  7 +
  8 +
  9 +
  10 +
@@ -6,14 +6,26 @@ export default { @@ -6,14 +6,26 @@ export default {
6 return axios({ 6 return axios({
7 method: 'POST', // 请求协议 7 method: 'POST', // 请求协议
8 url: url, // 请求的地址 8 url: url, // 请求的地址
9 - data: data, // post 请求的数据  
10 - params: params, 9 + data: data, // post 请求的实体类数据
  10 + params: params, //urlencoded 参数
11 timeout: 30000, // 超时时间, 单位毫秒 11 timeout: 30000, // 超时时间, 单位毫秒
12 headers: { 12 headers: {
13 'Content-Type': 'application/json;charset=UTF-8', 13 'Content-Type': 'application/json;charset=UTF-8',
14 } 14 }
15 }) 15 })
16 }, 16 },
  17 + postToDify(url, data, token) {
  18 + return axios({
  19 + method: 'POST', // 请求协议
  20 + url: url, // 请求的地址
  21 + data: data, // post 请求的实体类数据
  22 + timeout: 30000, // 超时时间, 单位毫秒
  23 + headers: {
  24 + 'Content-Type': 'application/json;charset=UTF-8',
  25 + 'Authorization':'Bearer '+token
  26 + }
  27 + })
  28 + },
17 postWithFrom(url, data) { 29 postWithFrom(url, data) {
18 return axios({ 30 return axios({
19 method: 'POST', // 请求协议 31 method: 'POST', // 请求协议
@@ -48,6 +60,16 @@ export default { @@ -48,6 +60,16 @@ export default {
48 } 60 }
49 }) 61 })
50 }, 62 },
  63 + postExcelData(url, data) {
  64 + return axios({
  65 + method: 'POST', // 请求协议
  66 + url: url, // 请求的地址
  67 + data: data, // post 请求的数据
  68 + headers: {
  69 + 'Content-Type': 'multipart/form-data'
  70 + }
  71 + })
  72 + },
51 get(url, params) { 73 get(url, params) {
52 return axios({ 74 return axios({
53 method: 'GET', 75 method: 'GET',
@@ -69,6 +91,17 @@ export default { @@ -69,6 +91,17 @@ export default {
69 } 91 }
70 }); 92 });
71 }, 93 },
  94 + getPDF(url, params) {
  95 + return axios({
  96 + method: 'GET',
  97 + url: url,
  98 + responseType: 'blob',
  99 + params: params,
  100 + headers: {
  101 + 'Content-Type': 'application/x-www-form-urlencoded'
  102 + }
  103 + });
  104 + },
72 put(url, params){ 105 put(url, params){
73 return axios({ 106 return axios({
74 method: 'PUT', 107 method: 'PUT',
  1 +import http from '../http.js';
  2 +let MailInfoBase = 'wlpt-mail-risk-analysis/InternationalMailInfo';
  3 +
  4 +// 新增国际邮件信息
  5 +export const riskManagement = (data,params) => {
  6 + return http.post(`${MailInfoBase}/riskManagementLink`, data,params);
  7 +};
  8 +// 查询搜索
  9 +export const searchListAPI = (data,params) => {
  10 + return http.post(`${MailInfoBase}/list`, data,params);
  11 +};
  1 +import Minio from 'minio';
  2 +
  3 +const minioClient = new Minio.Client({
  4 + endPoint: 'http://47.99.102.169',
  5 + port: 9000,
  6 + useSSL: false,
  7 + accessKey: 'ruitai',
  8 + secretKey: 'vmvnv1v2',
  9 +});
  10 +
  11 +export default minioClient;
@@ -27,6 +27,13 @@ export const selectawabByid = params => {return http.get(`${base1}/awba/selectaw @@ -27,6 +27,13 @@ export const selectawabByid = params => {return http.get(`${base1}/awba/selectaw
27 export const selectList = params => {return http.get(`${base1}/awba/selectList`, params);}; 27 export const selectList = params => {return http.get(`${base1}/awba/selectList`, params);};
28 export const selectByKey = params => {return http.get(`${base1}/awba/selectByKey`, params);}; 28 export const selectByKey = params => {return http.get(`${base1}/awba/selectByKey`, params);};
29 29
  30 +//电报地址
  31 +export const addTeleAddr = params => {return axios.post(`${base1}/teleaddr/addTeleAddr`, params);};
  32 +export const delTeleAddr = params => {return http.get(`${base1}/teleaddr/delTeleAddr`, params);};
  33 +export const ediTeleAddr = params => {return axios.post(`${base1}/teleaddr/ediTeleAddr`, params);};
  34 +export const selectLists = params => {return http.get(`${base1}/teleaddr/selectLists`, params);};
  35 +//结算统计
  36 +export const selectStatistics = params => {return http.get(`${base1}/efre/selectStatistics`, params);};
30 37
31 38
32 39
  1 +import http from "../http";
  2 +
  3 +let baseUrl = 'air-server-transport'
  4 +let baseUrlResultMsg = 'air-server-transport/transport/returnmsg'
  5 +//查询海关代码,机场代码
  6 +export const selectBycustomcode = params => { return http.get(`${baseUrl}/transport/customcode/selectBycustomcode`, params); };
  7 +export const selectByairportcode = params => { return http.get(`${baseUrl}/transport/airportcode/selectByairportcode`, params); };
  8 +//在港动态信息
  9 +export const insertSelective = params => { return http.post(`${baseUrl}/transport/aircraftStaying/insertSelective`, params); };
  10 +export const updateByPrimaryKeySelective = params => { return http.post(`${baseUrl}/transport/aircraftStaying/updateByPrimaryKeySelective`, params); };
  11 +export const selectLists = params => { return http.get(`${baseUrl}/transport/aircraftStaying/selectLists`, params); };
  12 +export const sendAircraftstaying = params => { return http.post(`${baseUrl}/transport/aircraftStaying/sendAircraftstaying`, params); };
  13 +
  14 +
  15 +//查询回执列表
  16 +export const selectReturnMsgList=params=>{return http.get(`${baseUrlResultMsg}/selectReturnMsg`, params);};
  17 +
  18 +//单证申报
  19 +export const selectBillLists = params => { return http.get(`${baseUrl}/transport/bill/selectBillLists`, params); };
  20 +export const insertSelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/insertSelectiveBill`, params); };
  21 +export const updateByPrimaryKeySelectiveBill = params => { return http.post(`${baseUrl}/transport/bill/updateByPrimaryKeySelectiveBill`, params); };
  22 +export const sendBillSdeclare = params => { return http.post(`${baseUrl}/transport/bill/sendBillSdeclare`, params); };
  23 +export const batchJZImport = params => { return http.postExcelData(`${baseUrl}/transport/bill/batchJZImport`, params); };
  24 +
  25 +
  26 +//预确报申报
  27 +export const selectPreList = params => { return http.get(`${baseUrl}/transport/prediction/selectList`, params); };
  28 +export const insertSelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/insertSelective`, params); };
  29 +export const updateByPrimaryKeySelectivePre = params => { return http.post(`${baseUrl}/transport/prediction/updateByPrimaryKeySelective`, params); };
  30 +export const sendPrediction = params => { return http.post(`${baseUrl}/transport/prediction/sendPrediction`, params); };
  31 +export const canclePre = params => { return http.post(`${baseUrl}/transport/prediction/canclePre`, params); };
  32 +
  33 +
  34 +
  35 +
  36 +
  37 +
  38 +
  39 +
  40 +
  41 +
  42 +
  43 +
  1 +import http from "../http";
  2 +
  3 +let baseServiceURL = 'wms-server-warehouse/common';
  4 +
  5 +// 新增联合国危险品编码信息
  6 +export const insertUnCodeInfo = (data) => {
  7 + return http.post(`${baseServiceURL}/unCode/insert`, data);
  8 +};
  9 +
  10 +// 更新联合国危险品编码信息
  11 +export const updateUnCodeInfo = (data) => {
  12 + return http.post(`${baseServiceURL}/unCode/update`, data);
  13 +};
  14 +
  15 +// 删除单个联合国危险品编码信息
  16 +export const deleteUnCodeById = (params) => {
  17 + return http.get(`${baseServiceURL}/unCode/delete`, { params: params });
  18 +};
  19 +
  20 +// 查询单个联合国危险品编码信息
  21 +export const selectUnCodeById = (params) => {
  22 + return http.get(`${baseServiceURL}/unCode/getById`, { params: params });
  23 +};
  24 +
  25 +// 根据危险品编码进行查询
  26 +export const selectByUnCode = (params) => {
  27 + return http.get(`${baseServiceURL}/unCode/getByUnCode`, params);
  28 +};
  29 +
  30 +// 分页查询所有UN代码信息
  31 +export const getAllUnCodesByPage = (data,params) => {
  32 + return http.post(`${baseServiceURL}/unCode/getAllByPage`, data,params);
  33 +};
  1 +import http from "../http";
  2 +import axios from "axios";
  3 +let baseUrl = 'zhidan-service'
  4 +
  5 +//pdf导出
  6 +export const extPdf = params => { return http.getPDF(`${baseUrl}/zhidan/extpdf`, params); };
  7 +//excel导出
  8 +export const extExcel = params => { return http.getPDF(`${baseUrl}/zhidan/extexcel`, params); };
  9 +//导入excel
  10 +export const importExcel = params => { return http.postExcelData(`${baseUrl}/zhidan/importexcel`, params); };
  11 +//查询列表
  12 +export const selectLists = params => { return axios.get(`${baseUrl}/zhidan/selectLists`, { params: params }); };
  13 +
  14 +//费率新增
  15 +export const addRate = params =>{return http.post(`${baseUrl}/rate/addRate`, params);};
  16 +//费率删除
  17 +export const delRate = params => { return axios.get(`${baseUrl}/rate/delRate`, { params: params }); };
  18 +//费率更新
  19 +export const ediRate = params =>{return http.post(`${baseUrl}/rate/ediRate`, params);};
  20 +//费率查询
  21 +export const selectRate = params => { return axios.get(`${baseUrl}/rate/selectRate`, { params: params }); };
@@ -20,7 +20,7 @@ @@ -20,7 +20,7 @@
20 20
21 <div align="center" style="height: 66px;line-height: 66px;"> 21 <div align="center" style="height: 66px;line-height: 66px;">
22 <!-- <img id="logo" src="~@/assets/logo1.png">--> 22 <!-- <img id="logo" src="~@/assets/logo1.png">-->
23 - <h1 id="logo-text" style="color:white;display: inline-block;font-weight: 600;font-size: 15px;line-height: 50px"> &nbsp; &nbsp;物流公共信息服务平台</h1> 23 + <h1 id="logo-text" style="color:white;display: inline-block;font-weight: 600;font-size: 15px;line-height: 50px"> &nbsp; &nbsp;物流信息平台</h1>
24 </div> 24 </div>
25 <template v-for="(item,index) in menu"> 25 <template v-for="(item,index) in menu">
26 <el-submenu :index="index+''" v-if="item.hasChild"> 26 <el-submenu :index="index+''" v-if="item.hasChild">
@@ -18,6 +18,26 @@ import sys_init from '@/common/init/sys_init' @@ -18,6 +18,26 @@ import sys_init from '@/common/init/sys_init'
18 import Print from 'vue-print-nb' 18 import Print from 'vue-print-nb'
19 // 条形组件 19 // 条形组件
20 import VueBarcode from '@xkeshi/vue-barcode'; //导入条形码插件 20 import VueBarcode from '@xkeshi/vue-barcode'; //导入条形码插件
  21 +
  22 +// markdown 编辑器
  23 +import VueMarkdownEditor from '@kangc/v-md-editor';
  24 +import '@kangc/v-md-editor/lib/style/base-editor.css';
  25 +import vuepressTheme from '@kangc/v-md-editor/lib/theme/vuepress.js';
  26 +import '@kangc/v-md-editor/lib/theme/style/vuepress.css';
  27 +import createTodoListPlugin from '@kangc/v-md-editor/lib/plugins/todo-list/index';
  28 +import '@kangc/v-md-editor/lib/plugins/todo-list/todo-list.css';
  29 +import createEmojiPlugin from '@kangc/v-md-editor/lib/plugins/emoji/index';
  30 +import '@kangc/v-md-editor/lib/plugins/emoji/emoji.css'
  31 +import Prism from 'prismjs';
  32 +
  33 +
  34 +VueMarkdownEditor.use(vuepressTheme, {
  35 + Prism,
  36 +});
  37 +VueMarkdownEditor.use(createTodoListPlugin());
  38 +VueMarkdownEditor.use(createEmojiPlugin());
  39 +Vue.use(VueMarkdownEditor);
  40 +
21 Vue.component('barcode', VueBarcode); 41 Vue.component('barcode', VueBarcode);
22 42
23 43
1 -import Login from './views/Login.vue' 1 +import Login from './views/Login1.vue'
2 import NotFound from './views/404.vue' 2 import NotFound from './views/404.vue'
3 import Home from './views/Home.vue' 3 import Home from './views/Home.vue'
4 import HomeNew from './views/HomeNew.vue' 4 import HomeNew from './views/HomeNew.vue'
@@ -82,7 +82,7 @@ import Location from './views/empt/Location.vue' @@ -82,7 +82,7 @@ import Location from './views/empt/Location.vue'
82 82
83 //运输工具 通用业务申报 83 //运输工具 通用业务申报
84 import Route from './views/airtransport/route.vue' 84 import Route from './views/airtransport/route.vue'
85 -import Bill from './views/airtransport/bill.vue' 85 +import Bills from './views/airtransport/bills.vue'
86 import Flight from './views/airtransport/flight.vue' 86 import Flight from './views/airtransport/flight.vue'
87 import Flightplan from './views/airtransport/flightplan.vue' 87 import Flightplan from './views/airtransport/flightplan.vue'
88 import Aircraft from './views/airtransport/aircraft.vue' 88 import Aircraft from './views/airtransport/aircraft.vue'
@@ -112,6 +112,9 @@ import myTask from './views/technological/myTask.vue' @@ -112,6 +112,9 @@ import myTask from './views/technological/myTask.vue'
112 import definition from './views/technological/definition.vue' 112 import definition from './views/technological/definition.vue'
113 113
114 //仓库场站管理 114 //仓库场站管理
  115 +import WaybillRate from './views/deploy/waybillRate.vue'
  116 +import Tracker from './views/deploy/Tracker.vue'
  117 +import VehicleWaybill from './views/deploy/VehicleWaybill.vue'
115 import vehicle from './views/deploy/vehicle.vue' 118 import vehicle from './views/deploy/vehicle.vue'
116 import trajectory from './views/deploy/trajectory.vue' 119 import trajectory from './views/deploy/trajectory.vue'
117 import attendance from './views/deploy/attendance.vue' 120 import attendance from './views/deploy/attendance.vue'
@@ -126,6 +129,12 @@ import area from './views/deploy/area.vue' @@ -126,6 +129,12 @@ import area from './views/deploy/area.vue'
126 import seller from './views/deploy/seller.vue' 129 import seller from './views/deploy/seller.vue'
127 import classification from './views/deploy/classification.vue' 130 import classification from './views/deploy/classification.vue'
128 import subscribe from './views/deploy/subscribe.vue' 131 import subscribe from './views/deploy/subscribe.vue'
  132 +import DangerousImport from './views/deploy/dangerImport.vue'
  133 +import DangerousExt from './views/deploy/dangerExt.vue'
  134 +import UNcode from './views/wms/UNcode.vue'
  135 +
  136 +//跨境电商
  137 +import exportRecipt from "@/views/cbecd/export_recipt.vue";
129 138
130 139
131 140
@@ -176,8 +185,11 @@ import Express from './views/express_system/express.vue' @@ -176,8 +185,11 @@ import Express from './views/express_system/express.vue'
176 //给海龙做的货运单 185 //给海龙做的货运单
177 import Way from './views/nav3/Way.vue' 186 import Way from './views/nav3/Way.vue'
178 import Telegram from './views/nav3/Telegram.vue' 187 import Telegram from './views/nav3/Telegram.vue'
  188 +import TeleAddr from "./views/nav3/TeleAddr.vue";
179 //朱总让做的网页在线客服 189 //朱总让做的网页在线客服
180 import Webdialog from './views/bus/Webdialog.vue' 190 import Webdialog from './views/bus/Webdialog.vue'
  191 +import C6Way from './views/nav3/C6Way.vue'
  192 +import DBstatistics from './views/nav3/statistics.vue'
181 193
182 //转运申请 194 //转运申请
183 import Transport from './views/nav4/Transport.vue' 195 import Transport from './views/nav4/Transport.vue'
@@ -190,7 +202,27 @@ import Dispatch from "./views/dispatch/Dispatch"; @@ -190,7 +202,27 @@ import Dispatch from "./views/dispatch/Dispatch";
190 import multiple from "./views/deploy/multiple"; 202 import multiple from "./views/deploy/multiple";
191 import satellite from "./views/deploy/satellite"; 203 import satellite from "./views/deploy/satellite";
192 204
  205 +/*出口订单*/
  206 +import ExortOrder from './views/exportorder/Exportorder.vue'
  207 +import CustomerConfig from './views/exportorder/CustomerConfig.vue'
  208 +import ManagerWaybill from "./views/exportorder/ManagerWaybill.vue";
  209 +import ImportOrder from './views/exportorder/ImportOrder';
  210 +
  211 +/*制单管理*/
  212 +import ZhiDan from './views/zhidan/zhidan.vue'
  213 +import Rate from './views/zhidan/rate.vue'
  214 +
  215 +//运输工具2.0
  216 +import zaigang from './views/airtransport/zaigang.vue'
  217 +import gongtui from './views/airtransport/gongtui.vue'
  218 +import danzheng from './views/airtransport/danzheng.vue'
  219 +import yqdeclare from './views/airtransport/yqdeclare.vue'
193 220
  221 +// 邮件风控
  222 +import MailRisk from './views/mail_risk/index.vue'
  223 +
  224 +// AI智慧关务
  225 +import AiCoustoms from "./views/AiCoustoms/AiCoustoms.vue";
194 226
195 let routes = [ 227 let routes = [
196 { 228 {
@@ -216,6 +248,28 @@ let routes = [ @@ -216,6 +248,28 @@ let routes = [
216 ] 248 ]
217 }, 249 },
218 { 250 {
  251 + path: '/order',
  252 + component: HomeNew,
  253 + name: '出口订单管理',
  254 + iconCls: 'el-icon-collection',
  255 + children: [
  256 + {path: '/ExortOrder', component: ExortOrder, name: '出口订单'},
  257 + {path: '/CustomerConfig', component: CustomerConfig, name: '客户配置'},
  258 + {path: '/ManagerWaybill', component: ManagerWaybill, name: '主单管理'},
  259 + {path: '/import', component: ImportOrder, name: '订单预录入'}
  260 + ]
  261 + },
  262 + {
  263 + path: '/zhidan',
  264 + component: HomeNew,
  265 + name: '制单管理',
  266 + iconCls: 'el-icon-collection',
  267 + children: [
  268 + {path: '/ZhiDan', component: ZhiDan, name: '制单信息'},
  269 + {path: '/Rate', component: Rate, name: '费率设置'}
  270 + ]
  271 + },
  272 + {
219 path: '/', 273 path: '/',
220 component: HomeNew, 274 component: HomeNew,
221 name: 'Charts', 275 name: 'Charts',
@@ -234,7 +288,10 @@ let routes = [ @@ -234,7 +288,10 @@ let routes = [
234 children: [ 288 children: [
235 {path: '/Way', component: Way, name: '货运单'}, 289 {path: '/Way', component: Way, name: '货运单'},
236 {path: '/Telegram', component: Telegram, name: '电报查询'}, 290 {path: '/Telegram', component: Telegram, name: '电报查询'},
237 - {path: '/Webdialog', component: Webdialog, name: '在线客服'} 291 + {path: '/Webdialog', component: Webdialog, name: '在线客服'},
  292 + {path: '/TeleAddr', component: TeleAddr, name: '电报地址'},
  293 + {path: '/C6Way', component: C6Way, name: 'C6货运单'},
  294 + {path: '/DBstatistics', component: DBstatistics, name: '结算统计'},
238 ] 295 ]
239 }, 296 },
240 { 297 {
@@ -305,7 +362,7 @@ let routes = [ @@ -305,7 +362,7 @@ let routes = [
305 children: [ 362 children: [
306 { path: '/user', component: User, name: '用户管理' }, 363 { path: '/user', component: User, name: '用户管理' },
307 { path: '/role', component: Role, name: '组织机构' }, 364 { path: '/role', component: Role, name: '组织机构' },
308 - { path: '/crm', component: CRM, name: '组织机构' }, 365 + { path: '/crm', component: CRM, name: '客户资源' },
309 { path: '/perm', component: Perm, name: '权限管理' }, 366 { path: '/perm', component: Perm, name: '权限管理' },
310 { path: '/dataperm', component: DataPerm, name: '数据权限' }, 367 { path: '/dataperm', component: DataPerm, name: '数据权限' },
311 { path: '/log', component: LOG, name: '系统日志' }, 368 { path: '/log', component: LOG, name: '系统日志' },
@@ -419,6 +476,7 @@ let routes = [ @@ -419,6 +476,7 @@ let routes = [
419 ] 476 ]
420 }, 477 },
421 478
  479 +
422 { 480 {
423 path: '/nmms2', 481 path: '/nmms2',
424 component: HomeNew, 482 component: HomeNew,
@@ -466,7 +524,7 @@ let routes = [ @@ -466,7 +524,7 @@ let routes = [
466 iconCls:'el-icon-goods', 524 iconCls:'el-icon-goods',
467 children:[ 525 children:[
468 {path:'/route',component:Route,name:'航线申报'}, 526 {path:'/route',component:Route,name:'航线申报'},
469 - {path:'/bill',component:Bill,name:'单据申报'}, 527 + {path:'/bills',component:Bills,name:'单据申报'},
470 {path:'/flights',component:Flight,name:'航班申报'}, 528 {path:'/flights',component:Flight,name:'航班申报'},
471 {path:'/flightplan',component:Flightplan,name:'当日飞行计划'}, 529 {path:'/flightplan',component:Flightplan,name:'当日飞行计划'},
472 {path:'/aircraft',component:Aircraft,name:'通用航空器申报'}, 530 {path:'/aircraft',component:Aircraft,name:'通用航空器申报'},
@@ -572,6 +630,9 @@ let routes = [ @@ -572,6 +630,9 @@ let routes = [
572 name: '仓库场站管理', 630 name: '仓库场站管理',
573 iconCls:'el-icon-goods', 631 iconCls:'el-icon-goods',
574 children:[ 632 children:[
  633 + {path:'/WaybillRate',component:WaybillRate,name:'费率设置'},
  634 + {path:'/Tracker',component:Tracker,name:'派单记录'},
  635 + {path:'/VehicleWaybill',component:VehicleWaybill,name:'车载运单'},
575 {path:'/vehicle',component:vehicle,name:'车辆定位'}, 636 {path:'/vehicle',component:vehicle,name:'车辆定位'},
576 {path:'/trajectory',component:trajectory,name:'车辆轨迹'}, 637 {path:'/trajectory',component:trajectory,name:'车辆轨迹'},
577 {path:'/attendance',component:attendance,name:'出勤历史'}, 638 {path:'/attendance',component:attendance,name:'出勤历史'},
@@ -588,6 +649,9 @@ let routes = [ @@ -588,6 +649,9 @@ let routes = [
588 {path:'/seller',component:seller,name:'商品管理'}, 649 {path:'/seller',component:seller,name:'商品管理'},
589 {path:'/classification',component:classification,name:'分类监管申请'}, 650 {path:'/classification',component:classification,name:'分类监管申请'},
590 {path:'/subscribe',component:subscribe,name:'分类监管查询'}, 651 {path:'/subscribe',component:subscribe,name:'分类监管查询'},
  652 + {path:'/DangerousImport',component:DangerousImport,name:'危险品入库'},
  653 + {path:'/DangerousExt',component:DangerousExt,name:'危险品出库'},
  654 + {path:'/unCode',component:UNcode,name:'国际危险品代码管理'},
591 ] 655 ]
592 }, 656 },
593 { 657 {
@@ -624,11 +688,11 @@ let routes = [ @@ -624,11 +688,11 @@ let routes = [
624 { 688 {
625 path: '/at', 689 path: '/at',
626 component: HomeNew, 690 component: HomeNew,
627 - name: '在港动态', 691 + name: '在港申报',
628 iconCls:'el-icon-goods', 692 iconCls:'el-icon-goods',
629 children:[ 693 children:[
630 - {path:'/dynamics',component:dynamics,name:'在港动态信息'},  
631 - {path:'/matter',component:matter,name:'物料申报管理'} 694 + {path:'/dynamics',component:dynamics,name:'在港动态申报'},
  695 + {path:'/matter',component:matter,name:'供退物料申报'}
632 ] 696 ]
633 }, 697 },
634 { 698 {
@@ -651,6 +715,24 @@ let routes = [ @@ -651,6 +715,24 @@ let routes = [
651 {path:'/express',component:Express,name:'快邮舱单申报'}, 715 {path:'/express',component:Express,name:'快邮舱单申报'},
652 ] 716 ]
653 }, 717 },
  718 + {
  719 + path: '/customs_mail',
  720 + component: HomeNew,
  721 + name: '邮件监管',
  722 + iconCls:'el-icon-wind-power',
  723 + children:[
  724 + {path:'/mail_risk_analysis',component:MailRisk,name:'风控分析'},
  725 + ]
  726 + },
  727 + {
  728 + path: '/cbecd',
  729 + component: HomeNew,
  730 + name: '跨境电商申报',
  731 + iconCls:'el-icon-wind-power',
  732 + children:[
  733 + {path:'/cbecd-export-receipt',component:exportRecipt,name:'收款单申报'},
  734 + ]
  735 + },
654 736
655 { 737 {
656 path: '/', 738 path: '/',
@@ -715,6 +797,27 @@ let routes = [ @@ -715,6 +797,27 @@ let routes = [
715 ] 797 ]
716 }, 798 },
717 { 799 {
  800 + path: '/zg',
  801 + component: HomeNew,
  802 + name: '在港申报2.0',
  803 + iconCls:'el-icon-goods',
  804 + children:[
  805 + {path:'/gongtui',component:gongtui,name:'供退物料申报'},
  806 + {path:'/zaigang',component:zaigang,name:'在港动态申报'},
  807 + {path:'/danzheng',component:danzheng,name:'单证申报'},
  808 + {path:'/yqdeclare',component:yqdeclare,name:'预确报申报'}
  809 + ]
  810 + },
  811 + {
  812 + path: '/ai',
  813 + component: HomeNew,
  814 + name: '智慧关务',
  815 + iconCls: 'el-icon-collection',
  816 + children: [
  817 + {path: '/AiCoustoms', component: AiCoustoms, name: 'Ai智慧关务'}
  818 + ]
  819 + },
  820 + {
718 path: '/tasks', 821 path: '/tasks',
719 component: () => import('./views/HomeNew.vue'), 822 component: () => import('./views/HomeNew.vue'),
720 name: '动态任务管理', 823 name: '动态任务管理',
  1 +<template>
  2 + <div>
  3 + <!-- 上传Excel按钮 -->
  4 + <el-row :gutter="24">
  5 + <el-col :span="4">
  6 + <el-upload
  7 + class="upload-demo"
  8 + action=""
  9 + :before-upload="beforeUpload"
  10 + :http-request="uploadExcel"
  11 + :show-file-list="false">
  12 + <el-button size="medium" type="success">导入数据</el-button>
  13 + </el-upload>
  14 + </el-col>
  15 + <el-col :span="4">
  16 + <el-upload
  17 + class="upload-demo"
  18 + action=""
  19 + :before-upload="beforeUpload"
  20 + :http-request="uploadUpdateExcel"
  21 + :show-file-list="false">
  22 + <el-button size="medium" type="success">更新数据</el-button>
  23 + </el-upload>
  24 + </el-col>
  25 + <el-button size="medium" @click="fetchData" type="primary">查询</el-button>
  26 + </el-row>
  27 + <!-- 数据列表 -->
  28 + <el-row :gutter="24">
  29 + <el-col :span="24">
  30 + <el-table :data="tableData" border style="width: 100%">
  31 + <el-table-column prop="staId" label="标识码"></el-table-column>
  32 + <el-table-column prop="iEPort" label="进出境关区"></el-table-column>
  33 + <el-table-column prop="iEPortCn" label="关区中文名称"></el-table-column>
  34 + <el-table-column prop="tradeCo" label="境内收发货人"></el-table-column>
  35 + <el-table-column prop="ownerCode" label="消费使用单位/生产销售单位"></el-table-column>
  36 + <el-table-column prop="districtCode" label="境内目的地/货源地"></el-table-column>
  37 + <el-table-column prop="districtCodeCn" label="境内目的地/货源地中文名称"></el-table-column>
  38 + <el-table-column prop="trafMode" label="运输方式"></el-table-column>
  39 + <el-table-column prop="trafModeCn" label="运输方式中文名称"></el-table-column>
  40 + <el-table-column prop="tradeMode" label="监管方式"></el-table-column>
  41 + <el-table-column prop="tradeModeCn" label="监管方式中文名称"></el-table-column>
  42 + <el-table-column prop="cutMode" label="征免性质"></el-table-column>
  43 + <el-table-column prop="cutModeCn" label="征免性质中文名称"></el-table-column>
  44 + <el-table-column prop="tradeCountry" label="启抵国"></el-table-column>
  45 + <el-table-column prop="tradeCountryCn" label="启抵国中文名称"></el-table-column>
  46 + <el-table-column prop="originCountry" label="产终国"></el-table-column>
  47 + <el-table-column prop="originCountryCn" label="产终国中文名称"></el-table-column>
  48 + <el-table-column prop="licenseNo" label="许可证编号"></el-table-column>
  49 + <el-table-column prop="manualNo" label="备案号"></el-table-column>
  50 + <el-table-column prop="grossWt" label="毛重"></el-table-column>
  51 + <el-table-column prop="endDate" label="结关日期"></el-table-column>
  52 + <el-table-column prop="codeT" label="商品编号"></el-table-column>
  53 + <el-table-column prop="codeS" label="附加编号"></el-table-column>
  54 + <el-table-column prop="qty1" label="第一数量"></el-table-column>
  55 + <el-table-column prop="unit1" label="第一计量单位"></el-table-column>
  56 + <el-table-column prop="unit1Cn" label="第一计量单位中文名称"></el-table-column>
  57 + <el-table-column prop="qty2" label="第二数量"></el-table-column>
  58 + <el-table-column prop="unit2" label="第二计量单位"></el-table-column>
  59 + <el-table-column prop="unit2Cn" label="第二计量单位中文名称"></el-table-column>
  60 + <el-table-column prop="rmb" label="人民币"></el-table-column>
  61 + <el-table-column prop="usd" label="美元值"></el-table-column>
  62 + <el-table-column prop="dutyMode" label="征免方式"></el-table-column>
  63 + <el-table-column prop="dutyModeCn" label="征免方式中文名称"></el-table-column>
  64 + <el-table-column prop="dutax" label="实征税款"></el-table-column>
  65 + <el-table-column prop="realDuty" label="实征关税"></el-table-column>
  66 + <el-table-column prop="dutaxCut" label="减免税"></el-table-column>
  67 + <el-table-column prop="dutyCut" label="减免关税"></el-table-column>
  68 + <el-table-column prop="empty" label="空白项"></el-table-column>
  69 + <el-table-column prop="gName" label="商品名称"></el-table-column>
  70 + <el-table-column prop="gModel" label="规格型号"></el-table-column>
  71 + <el-table-column prop="selType" label="分类通关"></el-table-column>
  72 + <el-table-column prop="createtime" label="导入时间"></el-table-column>
  73 + <el-table-column prop="opter" label="操作账户"></el-table-column>
  74 + </el-table>
  75 + </el-col>
  76 + <el-col :span="24">
  77 + <el-pagination
  78 + size="medium"
  79 + @size-change="handleSizeChange"
  80 + @current-change="handleCurrentChange"
  81 + :current-page="query.pageNum"
  82 + :page-sizes="[10, 20, 30, 40]"
  83 + :page-size="query.pageSize"
  84 + layout="total, sizes, prev, pager, next, jumper"
  85 + :total="total">
  86 + </el-pagination>
  87 + </el-col>
  88 + </el-row>
  89 + </div>
  90 +</template>
  91 +
  92 +<script>
  93 +
  94 +import {importExcel, fetchData, importUpdateExcel} from "../../api/AiCustoms/AiCustoms";
  95 +
  96 +export default {
  97 + data() {
  98 + return {
  99 + tableData: [],
  100 + total: 0, // 总数据量
  101 + query: {
  102 + pageNum: 1,
  103 + pageSize: 10
  104 + },
  105 + }
  106 + },
  107 + mounted() {
  108 + this.fetchData()
  109 + },
  110 + methods: {
  111 + fetchData() {
  112 + fetchData(this.query).then((response) => {
  113 + const res = response.data
  114 + if (res.code !== '200') {
  115 + return this.$message.error('获取消息收发记录,失败!')
  116 + }
  117 + // 获取列表数据
  118 + this.tableData = res.data.list
  119 + // 获取列表的总记录数
  120 + this.total = res.data.total
  121 + this.$message.success('获取消息收发记录,成功!');
  122 + }).catch(error => {
  123 + // 关闭加载
  124 + this.$message.error(error.toString())
  125 + })
  126 + },
  127 + uploadExcel({ file, onSuccess, onError }){
  128 + // 生成 FormData 对象
  129 + const formData = new FormData();
  130 + formData.append('file', file);
  131 + const loading = this.$loading({
  132 + lock: true,
  133 + text: 'Loading',
  134 + spinner: 'el-icon-loading',
  135 + background: 'rgba(0, 0, 0, 0.7)'
  136 + });
  137 + importExcel(formData).then((response) => {
  138 + const res = response.data
  139 + if (res.code !== '200') {
  140 + return this.$message.error(res.msg);
  141 + }
  142 + this.$message.success(res.msg);
  143 + loading.close();
  144 + this.fetchData();
  145 + onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
  146 + }).catch(error => {
  147 + // 关闭加载
  148 + loading.close();
  149 + this.$message.error(error.toString())
  150 + onError(error); // 调用 onError 回调通知上传失败
  151 + })
  152 + },
  153 + uploadUpdateExcel({ file, onSuccess, onError }){
  154 + // 生成 FormData 对象
  155 + const formData = new FormData();
  156 + formData.append('file', file);
  157 + const loading = this.$loading({
  158 + lock: true,
  159 + text: 'Loading',
  160 + spinner: 'el-icon-loading',
  161 + background: 'rgba(0, 0, 0, 0.7)'
  162 + });
  163 + importUpdateExcel(formData).then((response) => {
  164 + const res = response.data
  165 + if (res.code !== '200') {
  166 + return this.$message.error(res.msg);
  167 + }
  168 + this.$message.success(res.msg);
  169 + loading.close();
  170 + this.fetchData();
  171 + onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
  172 + }).catch(error => {
  173 + // 关闭加载
  174 + loading.close();
  175 + this.$message.error(error.toString())
  176 + onError(error); // 调用 onError 回调通知上传失败
  177 + })
  178 + },
  179 + handleSizeChange(val) {
  180 + this.query.pageSize=val;
  181 + this.fetchData()
  182 + },
  183 + handleCurrentChange(val) {
  184 + this.query.pageNum=val;
  185 + this.fetchData()
  186 + }
  187 + }
  188 +}
  189 +</script>
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
13 </el-form-item> 13 </el-form-item>
14 <el-form-item> 14 <el-form-item>
15 <img 15 <img
16 - style="width: 125px; height: 60px" 16 + style="width: 98%; height: 60px"
17 :src="verifyImg" 17 :src="verifyImg"
18 @click="getVerifyCode" 18 @click="getVerifyCode"
19 > 19 >
@@ -27,15 +27,15 @@ @@ -27,15 +27,15 @@
27 <div class="homepage-hero-module"> 27 <div class="homepage-hero-module">
28 <div class="video-container"> 28 <div class="video-container">
29 <div :style="fixStyle" class="filter"></div> 29 <div :style="fixStyle" class="filter"></div>
30 - <video :style="fixStyle" autoplay loop class="fillWidth" v-on:canplay="canplay">  
31 - <source src="/static/login/New-jumbo.mp4" type="video/mp4"/>  
32 - 浏览器不支持 video 标签,建议升级浏览器。  
33 - <!--<source src="/static/login/New-jumbo.webm" type="video/webm"/>-->  
34 - <!--浏览器不支持 video 标签,建议升级浏览器。-->  
35 - </video>  
36 - <div class="poster hidden" v-if="!vedioCanPlay">  
37 - <img :style="fixStyle" src="https://s2.best-wallpaper.net/wallpaper/2560x1600/1511/Airplane-passenger-airliner-flight-sea-lights-airport-evening_2560x1600.jpg" alt="">  
38 - </div> 30 +<!-- <video :style="fixStyle" autoplay loop class="fillWidth" v-on:canplay="canplay">-->
  31 +<!-- <source src="/static/login/New-jumbo.mp4" type="video/mp4"/>-->
  32 +<!-- 浏览器不支持 video 标签,建议升级浏览器。-->
  33 +<!-- &lt;!&ndash;<source src="/static/login/New-jumbo.webm" type="video/webm"/>&ndash;&gt;-->
  34 +<!-- &lt;!&ndash;浏览器不支持 video 标签,建议升级浏览器。&ndash;&gt;-->
  35 +<!-- </video>-->
  36 +<!-- <div class="poster">-->
  37 +<!-- <img :style="fixStyle" src="https://s2.best-wallpaper.net/wallpaper/2560x1600/2009/Airplane-front-view-wings-road-blue-background_2560x1600.jpg" alt="">-->
  38 +<!-- </div>-->
39 </div> 39 </div>
40 </div> 40 </div>
41 </div> 41 </div>
@@ -51,7 +51,7 @@ @@ -51,7 +51,7 @@
51 data() { 51 data() {
52 return { 52 return {
53 verifyImg: "", 53 verifyImg: "",
54 - vedioCanPlay: true, 54 + vedioCanPlay: false,
55 fixStyle: '', 55 fixStyle: '',
56 logining: false, 56 logining: false,
57 ruleForm2: { 57 ruleForm2: {
@@ -264,7 +264,7 @@ @@ -264,7 +264,7 @@
264 .video-container .filter { 264 .video-container .filter {
265 z-index: 1; 265 z-index: 1;
266 position: absolute; 266 position: absolute;
267 - background: rgba(0, 0, 0, 0.4); 267 + background:url("/static/login/login_backgroud.jpg") rgba(0, 0, 0, 0.4);
268 } 268 }
269 .login-container { 269 .login-container {
270 /*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/ 270 /*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/
  1 +<template>
  2 + <div class="backgroud">
  3 + <el-row>
  4 + <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">
  5 + <el-form :model="ruleForm2" :rules="rules2" ref="ruleForm2" label-position="left" label-width="0px" class="demo-ruleForm login-container" id="loginForm">
  6 + <h3 class="title">系统登录</h3>
  7 + <el-form-item prop="account">
  8 + <el-input type="text" v-model="ruleForm2.account" autofocus placeholder="账号"></el-input>
  9 + </el-form-item>
  10 + <el-form-item prop="checkPass">
  11 + <el-input type="password" v-model="ruleForm2.checkPass" placeholder="密码" @keydown.enter.native="keyDown" show-password></el-input>
  12 + </el-form-item>
  13 + <el-form-item prop="verify">
  14 + <el-input type="text" v-model="ruleForm2.verify" placeholder="请在2分钟内输入下方图片中的答案" @keyup.enter.native="handleSubmit2"></el-input>
  15 + </el-form-item>
  16 + <el-form-item>
  17 + <img
  18 + style="width: 98%; height: 60px"
  19 + :src="verifyImg"
  20 + @click="getVerifyCode"
  21 + >
  22 + </el-form-item>
  23 + <el-checkbox v-model="checked" checked class="remeberme">记住密码</el-checkbox>
  24 + <el-form-item style="width:100%;">
  25 + <el-button type="primary" style="width:100%;" @click.native.prevent="handleSubmit2" :loading="logining" :plain="true">登录</el-button>
  26 + <!--<el-button @click.native.prevent="handleReset2">重置</el-button>-->
  27 + </el-form-item>
  28 + </el-form>
  29 + </el-col>
  30 + </el-row>
  31 + </div>
  32 +</template>
  33 +
  34 +<script>
  35 +import {getRandCode} from "@/api/user";
  36 +import {mapActions} from 'vuex'
  37 +import http from "@/api/http";
  38 +import axios from 'axios'
  39 +
  40 +export default {
  41 + name: 'App',
  42 + data() {
  43 + return {
  44 + verifyImg: "",
  45 + vedioCanPlay: false,
  46 + fixStyle: '',
  47 + logining: false,
  48 + ruleForm2: {
  49 + account: '',
  50 + // checkPass: 'zzairport@kako2020'
  51 + checkPass: '',
  52 + verify: '',
  53 + verifyToken: ''
  54 + },
  55 + rules2: {
  56 + account: [
  57 + { required: true, message: '请输入账号', trigger: 'blur' },
  58 + //{ validator: validaePass }
  59 + ],
  60 + checkPass: [
  61 + { required: true, message: '请输入密码', trigger: 'blur' },
  62 + //{ validator: validaePass2 }
  63 + ],
  64 + checkVerify: [
  65 + { required: false, message: '请输入验证码', trigger: 'blur' }
  66 + ]
  67 + },
  68 + checked: false,
  69 + userMenus: []
  70 + }
  71 + },
  72 + methods: {
  73 + ...mapActions( // 语法糖
  74 + ['setUserInfoStore'] // 相当于this.$store.dispatch('modifyName'),提交这个方法
  75 + ),
  76 + getVerifyCode: function(){
  77 + getRandCode().then((res) =>{
  78 + let status = res.status;
  79 + this.ruleForm2.verifyToken = res.data.jwtToken;
  80 + this.verifyImg = res.data.data.verifyImg;
  81 + }).catch(error => {
  82 + this.$message({
  83 + message: "验证码获取失败:"+error.toString(),
  84 + type: "error"
  85 + });
  86 + });
  87 + },
  88 + fixLoginHeight:function (){
  89 + const windowHeight = document.body.clientHeight
  90 + const colElement = document.getElementById("loginCol")
  91 + if (colElement) {
  92 + const col_height = colElement.offsetHeight; // 获取元素的高度
  93 + this.fixStyle = {
  94 + 'margin-top': (windowHeight - col_height) / 2 + 'px',
  95 + }
  96 + }
  97 + },
  98 + handleMenuList : function (router,menu) {
  99 + var _this = this;
  100 + var routerName = "";
  101 + var routerTemp = router.concat();
  102 +
  103 + routerTemp.forEach(function (v_router,v_index,v_arr) {
  104 + routerName = v_router.name;
  105 +
  106 + //查找返回的目录列表是否包含路由名称,有就返回匹配到的元素,没有就移除
  107 + let result = menu.find(item => {
  108 + return item.name === routerName;
  109 + });
  110 +
  111 + //匹配到继续判断是否子元素,有子元素继续递归
  112 + if (result) {
  113 + if (v_router.children && v_router.children.length>0) {
  114 + _this.handleMenuList(v_router.children, result.children);
  115 + }
  116 + }else {
  117 + //没有则可以移除
  118 + let deletRouter = router.findIndex(itm => itm.name === routerName );
  119 + router.splice(deletRouter,1);
  120 + }
  121 + });
  122 + // console.log("longined router:");
  123 + // console.log(routerName);
  124 + // console.log(_this.$router.options.routes);
  125 +// 本地存储用户目录 ,防刷新目录丢失用
  126 + sessionStorage.setItem('menu', JSON.stringify(_this.$router.options.routes));
  127 + },
  128 + handleSubmit2: function (ev) {
  129 + var _this = this;
  130 + this.$refs.ruleForm2.validate((valid) => {
  131 + if (valid) {
  132 + //_this.$router.replace('/table');
  133 + this.logining = true;
  134 + //NProgress.start();
  135 + var loginParams = {
  136 + username: this.ruleForm2.account,
  137 + password: this.ruleForm2.checkPass,
  138 + verify: this.ruleForm2.verify,
  139 + verifyToken:this.ruleForm2.verifyToken
  140 + };
  141 + http.login(loginParams).then(res => {
  142 + this.logining = false;
  143 + //NProgress.done();
  144 + let status = res.status;
  145 + let authentication = res.data.authentication;
  146 + let token = authentication.token;
  147 + let loginUserMenus = res.data.loginUserMenus;
  148 + if (status !== 200) {
  149 + this.getVerifyCode();
  150 + let msg = "登录错误";
  151 + this.$message({
  152 + message: msg,
  153 + type: "error"
  154 + });
  155 + } else if (token) {
  156 + sessionStorage.setItem('user', JSON.stringify(authentication));
  157 + sessionStorage.setItem('token','Bearer '+ token);
  158 + this.setUserInfoStore(authentication);
  159 + //设置token,设置axios 基本配置,但是刷新后 这个登录保存的就没了
  160 + axios.defaults.headers.common['Authorization'] = 'Bearer '+token;
  161 + //处理用户menu
  162 + _this.userMenus = loginUserMenus.list;
  163 + let sysMenus = _this.$router.options.routes;
  164 + _this.handleMenuList(_this.$router.options.routes,_this.userMenus);
  165 + _this.$router.push({path: '/main'});
  166 + }
  167 + }).catch(error => {
  168 + this.$message({
  169 + message: error.toString()+"-登录验证失败;",
  170 + type: "error"
  171 + });
  172 + this.getVerifyCode();
  173 + }).finally(()=>{
  174 + this.logining = false;
  175 + });
  176 + } else {
  177 + return false;
  178 + }
  179 + });
  180 + }
  181 + },
  182 + mounted:function (){
  183 + this.$store.commit('set_user_menu', []);
  184 + this.$store.commit('set_user_info', {
  185 + userId: 0,
  186 + username: '',
  187 + companyId: 0,
  188 + companyName: '',
  189 + realname: '',
  190 + userface: '',
  191 + companyInfo:{}
  192 + });
  193 + this.$nextTick(() => {
  194 + window.onresize = () => {
  195 + this.fixLoginHeight()
  196 + }
  197 + window.onresize();
  198 + })
  199 +
  200 + document.onkeydown = function (e) {
  201 + let key = window.event.keyCode;
  202 + if (key == 13) {
  203 + _this.handleSubmit2();
  204 + }
  205 + };
  206 +
  207 + },
  208 + created(){
  209 + this.getVerifyCode()
  210 + },
  211 +}
  212 +</script>
  213 +
  214 +<style lang="scss" scoped>
  215 + #loginForm{
  216 + filter:alpha(Opacity=80);
  217 + -moz-opacity:0.8;
  218 + opacity: 0.8;
  219 + }
  220 + .backgroud {
  221 + width: 100%;
  222 + height: 100vh; /* 设置为视口高度 */
  223 + z-index: 1;
  224 + position: absolute;
  225 + background:url("/static/login/login_backgroud.jpg") rgba(0, 0, 0, 0.4);
  226 + }
  227 + .login-container {
  228 + /*box-shadow: 0 0px 8px 0 rgba(0, 0, 0, 0.06), 0 1px 0px 0 rgba(0, 0, 0, 0.02);*/
  229 + -webkit-border-radius: 5px;
  230 + border-radius: 5px;
  231 + -moz-border-radius: 5px;
  232 + background-clip: padding-box;
  233 + padding: 35px 35px 15px 35px;
  234 + background: #fff;
  235 + border: 1px solid #eaeaea;
  236 + box-shadow: 0 0 25px #cac6c6;
  237 + .title {
  238 + margin: 0px auto 40px auto;
  239 + text-align: center;
  240 + color: #505458;
  241 + }
  242 + .remember {
  243 + margin: 0px 0px 35px 0px;
  244 + }
  245 + }
  246 +</style>
@@ -282,7 +282,6 @@ @@ -282,7 +282,6 @@
282 this.loading = true; 282 this.loading = true;
283 selectCountry(params).then(res =>{ 283 selectCountry(params).then(res =>{
284 if (res!=null) { 284 if (res!=null) {
285 - console.log(res.data.data)  
286 setTimeout(() => { 285 setTimeout(() => {
287 this.loading = false; 286 this.loading = false;
288 this.countryOptions=res.data.data; 287 this.countryOptions=res.data.data;
@@ -300,7 +299,6 @@ @@ -300,7 +299,6 @@
300 this.loading = true; 299 this.loading = true;
301 selectCreden(params).then(res =>{ 300 selectCreden(params).then(res =>{
302 if (res!=null) { 301 if (res!=null) {
303 - console.log(res.data.data)  
304 setTimeout(() => { 302 setTimeout(() => {
305 this.loading = false; 303 this.loading = false;
306 this.certOptions=res.data.data; 304 this.certOptions=res.data.data;
@@ -318,8 +316,9 @@ @@ -318,8 +316,9 @@
318 addAircraft(this.aircraft).then(res=>{ 316 addAircraft(this.aircraft).then(res=>{
319 let response=res.data; 317 let response=res.data;
320 if(response.code=='200'){ 318 if(response.code=='200'){
321 - this.centerDialogVisible=true;  
322 - this.msg=response.msg; 319 + //this.centerDialogVisible=true;
  320 + //this.msg=response.msg;
  321 + this.$message.success(response.msg)
323 this.$router.push({path:'/queryAircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo}}); 322 this.$router.push({path:'/queryAircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo}});
324 }else{ 323 }else{
325 this.msg=response.msg; 324 this.msg=response.msg;
@@ -338,17 +337,16 @@ @@ -338,17 +337,16 @@
338 this.aircraft.createBy=loginUserInfo.username 337 this.aircraft.createBy=loginUserInfo.username
339 sendAircraft(this.aircraft).then(res=>{ 338 sendAircraft(this.aircraft).then(res=>{
340 let response=res.data; 339 let response=res.data;
341 - console.log(response);  
342 if(response.code=='200'){ 340 if(response.code=='200'){
343 - this.centerDialogVisible=true;  
344 - this.msg=response.msg; 341 + //this.centerDialogVisible=true;
  342 + //this.msg=response.msg;
345 this.$router.push({path:'/queryAircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo}}); 343 this.$router.push({path:'/queryAircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo}});
  344 + this.$message.success(response.msg)
346 }else{ 345 }else{
347 - this.msg=response.msg; 346 + this.$message.error(response.msg)
348 } 347 }
349 }); 348 });
350 } else { 349 } else {
351 - console.log('error submit!!');  
352 return false; 350 return false;
353 } 351 }
354 }); 352 });
@@ -368,7 +366,7 @@ @@ -368,7 +366,7 @@
368 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase(); 366 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
369 } 367 }
370 }, 368 },
371 - mounted(){ 369 + activated(){
372 this.defaultData(); 370 this.defaultData();
373 } 371 }
374 } 372 }
@@ -241,15 +241,15 @@ @@ -241,15 +241,15 @@
241 submitForm(formName) { 241 submitForm(formName) {
242 this.$refs[formName].validate((valid) => { 242 this.$refs[formName].validate((valid) => {
243 if (valid) { 243 if (valid) {
244 - console.log(this.arrival)  
245 addPrediction(this.arrival).then(res=>{ 244 addPrediction(this.arrival).then(res=>{
246 let response=res.data; 245 let response=res.data;
247 if(response.code=='200'){ 246 if(response.code=='200'){
248 - this.centerDialogVisible=true;  
249 - this.msg=response.msg; 247 + // this.centerDialogVisible=true;
  248 + //this.msg=response.msg;
250 this.$router.push({path:'/queryArrival',query:{flightNo:this.arrival.flightNo,flightDate:this.arrival.flightDate}}); 249 this.$router.push({path:'/queryArrival',query:{flightNo:this.arrival.flightNo,flightDate:this.arrival.flightDate}});
  250 + this.$message.success(response.msg)
251 }else{ 251 }else{
252 - this.msg=response.msg; 252 + this.$message.error(response.msg)
253 } 253 }
254 } 254 }
255 ); 255 );
@@ -292,7 +292,7 @@ @@ -292,7 +292,7 @@
292 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase(); 292 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
293 } 293 }
294 }, 294 },
295 - mounted(){ 295 + activated(){
296 this.defaultData(); 296 this.defaultData();
297 } 297 }
298 } 298 }
@@ -641,8 +641,9 @@ background-color: white; @@ -641,8 +641,9 @@ background-color: white;
641 addBillPerson(this.billperson).then(res=>{ 641 addBillPerson(this.billperson).then(res=>{
642 let response=res.data; 642 let response=res.data;
643 if(response.code=='200'){ 643 if(response.code=='200'){
644 - this.centerDialogVisible=true;  
645 - this.msg=response.msg; 644 + //this.centerDialogVisible=true;
  645 + //this.msg=response.msg;
  646 + this.$message.success(response.msg);
646 this.transList() 647 this.transList()
647 //document.getElementById("send").disabled=true; 648 //document.getElementById("send").disabled=true;
648 let sy=this.type="2"; 649 let sy=this.type="2";
@@ -771,15 +772,16 @@ background-color: white; @@ -771,15 +772,16 @@ background-color: white;
771 addBill(this.bill).then(res=>{ 772 addBill(this.bill).then(res=>{
772 let response=res.data; 773 let response=res.data;
773 if(response.code=='200'){ 774 if(response.code=='200'){
774 - this.centerDialogVisible=true;  
775 - this.msg=response.msg; 775 + this.$message.success(response.msg)
  776 + //this.centerDialogVisible=true;
  777 + //this.msg=response.msg;
776 // this.$router.push({path:'/queryBill',query:{aircraftNo:this.bill.aircraftNo,flightNo:this.bill.flightNo, 778 // this.$router.push({path:'/queryBill',query:{aircraftNo:this.bill.aircraftNo,flightNo:this.bill.flightNo,
777 // flightDate:this.bill.flightDate}}); 779 // flightDate:this.bill.flightDate}});
778 //document.getElementById("add").disabled=true; 780 //document.getElementById("add").disabled=true;
779 let st=this.status="2"; 781 let st=this.status="2";
780 this.btDeleStatusFormater(st); 782 this.btDeleStatusFormater(st);
781 }else{ 783 }else{
782 - this.msg=response.msg; 784 + this.$message.error(response.msg)
783 } 785 }
784 }); 786 });
785 } else { 787 } else {
@@ -797,10 +799,11 @@ background-color: white; @@ -797,10 +799,11 @@ background-color: white;
797 sendBill(this.bill).then(res=>{ 799 sendBill(this.bill).then(res=>{
798 let response=res.data; 800 let response=res.data;
799 if(response.code=='200'){ 801 if(response.code=='200'){
800 - this.centerDialogVisible=true;  
801 - this.msg=response.msg; 802 + //this.centerDialogVisible=true;
  803 + //this.msg=response.msg;
802 this.$router.push({path:'/queryBill',query:{aircraftNo:this.bill.aircraftNo,flightNo:this.bill.flightNo, 804 this.$router.push({path:'/queryBill',query:{aircraftNo:this.bill.aircraftNo,flightNo:this.bill.flightNo,
803 flightDate:this.bill.flightDate}}); 805 flightDate:this.bill.flightDate}});
  806 + this.$message.success(response.msg)
804 //document.getElementById("add").disabled=true; 807 //document.getElementById("add").disabled=true;
805 // let st=this.status="2"; 808 // let st=this.status="2";
806 // this.btDeleStatusFormater(st); 809 // this.btDeleStatusFormater(st);
@@ -865,7 +868,7 @@ background-color: white; @@ -865,7 +868,7 @@ background-color: white;
865 return uuid; 868 return uuid;
866 }, 869 },
867 }, 870 },
868 - mounted(){ 871 + activated(){
869 this.defaultData(); 872 this.defaultData();
870 //this.transList(); 873 //this.transList();
871 // this.getCreden(); 874 // this.getCreden();
@@ -11,19 +11,19 @@ @@ -11,19 +11,19 @@
11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight" 11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight"
12 label-width="130px" class="demo-ruleForm"> 12 label-width="130px" class="demo-ruleForm">
13 <el-row> 13 <el-row>
14 - <el-col :span="5" style="margin-right: 70px"> 14 + <el-col :span="5">
15 <el-form-item label="承运人" prop="carrier" label-width="70px"> 15 <el-form-item label="承运人" prop="carrier" label-width="70px">
16 <el-input v-model="queryConfigure.carrier" style="width:120px"></el-input> 16 <el-input v-model="queryConfigure.carrier" style="width:120px"></el-input>
17 </el-form-item> 17 </el-form-item>
18 </el-col> 18 </el-col>
19 - <el-col :span="5" style="margin-right: 70px"> 19 + <el-col :span="5">
20 <el-form-item label="航班号" prop="flightno" label-width="70px"> 20 <el-form-item label="航班号" prop="flightno" label-width="70px">
21 <el-input v-model="queryConfigure.flightno" style="width:120px"></el-input> 21 <el-input v-model="queryConfigure.flightno" style="width:120px"></el-input>
22 </el-form-item> 22 </el-form-item>
23 </el-col> 23 </el-col>
24 <el-col :span="8" > 24 <el-col :span="8" >
25 - <el-button type="primary" icon="el-icon-search" @click="submitForm()">查询</el-button>  
26 - <el-button type="success" icon="el-icon-edit" @click="addForm()">新增</el-button> 25 + <el-button type="primary" @click="submitForm()">查询</el-button>
  26 + <el-button type="success" @click="addForm()">新增</el-button>
27 27
28 </el-col> 28 </el-col>
29 </el-row> 29 </el-row>
@@ -36,28 +36,19 @@ @@ -36,28 +36,19 @@
36 :data="tableData" 36 :data="tableData"
37 border 37 border
38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px"> 38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px">
39 - <el-table-column 39 + <!--<el-table-column
40 prop="carrier" 40 prop="carrier"
41 label="承运人"> 41 label="承运人">
42 - </el-table-column> 42 + </el-table-column>-->
43 <el-table-column 43 <el-table-column
44 prop="flightno" 44 prop="flightno"
45 label="航班号"> 45 label="航班号">
46 </el-table-column> 46 </el-table-column>
47 <el-table-column 47 <el-table-column
48 - prop="customscode"  
49 - label="申报关区">  
50 - </el-table-column>  
51 - <el-table-column  
52 prop="aircraftcode" 48 prop="aircraftcode"
53 label="航空注册器编号"> 49 label="航空注册器编号">
54 </el-table-column> 50 </el-table-column>
55 <el-table-column 51 <el-table-column
56 - prop="aircrafttype"  
57 - label="航空器备案类型"  
58 - show-overflow-tooltip>  
59 - </el-table-column>  
60 - <el-table-column  
61 prop="originstation" 52 prop="originstation"
62 label="航班起始站"> 53 label="航班起始站">
63 </el-table-column> 54 </el-table-column>
@@ -66,12 +57,37 @@ @@ -66,12 +57,37 @@
66 label="航班目的站"> 57 label="航班目的站">
67 </el-table-column> 58 </el-table-column>
68 <el-table-column 59 <el-table-column
  60 + prop="customscode"
  61 + label="申报关区">
  62 + </el-table-column>
  63 + <el-table-column
  64 + label="配置类型">
  65 + <template slot-scope="scope">
  66 + <span v-if="scope.row.type ==='2'">入境</span>
  67 + <span v-if="scope.row.type ==='1'">出境</span>
  68 + </template>
  69 + </el-table-column>
  70 + <!--<el-table-column
  71 + prop="aircrafttype"
  72 + label="航空器备案类型"
  73 + show-overflow-tooltip>
  74 + </el-table-column>-->
  75 +
  76 + <!--<el-table-column
69 prop="configstarttime" 77 prop="configstarttime"
70 label="配置生效时间"> 78 label="配置生效时间">
71 </el-table-column> 79 </el-table-column>
72 <el-table-column 80 <el-table-column
73 prop="configendtime" 81 prop="configendtime"
74 label="配置生效生效到期日"> 82 label="配置生效生效到期日">
  83 + </el-table-column>-->
  84 + <el-table-column
  85 + prop="entrytime"
  86 + label="入境时间">
  87 + </el-table-column>
  88 + <el-table-column
  89 + prop="departuretime"
  90 + label="出境时间">
75 </el-table-column> 91 </el-table-column>
76 <el-table-column 92 <el-table-column
77 label="配置状态"> 93 label="配置状态">
@@ -80,14 +96,8 @@ @@ -80,14 +96,8 @@
80 <span v-if="scope.row.configstatus ==='1'">生效</span> 96 <span v-if="scope.row.configstatus ==='1'">生效</span>
81 </template> 97 </template>
82 </el-table-column> 98 </el-table-column>
83 - <el-table-column  
84 - label="配置类型">  
85 - <template slot-scope="scope">  
86 - <span v-if="scope.row.type ==='2'">入境</span>  
87 - <span v-if="scope.row.type ==='1'">出境</span>  
88 - </template>  
89 - </el-table-column>  
90 - <el-table-column 99 +
  100 + <!--<el-table-column
91 prop="userid" 101 prop="userid"
92 label="创建人"> 102 label="创建人">
93 </el-table-column> 103 </el-table-column>
@@ -98,16 +108,9 @@ @@ -98,16 +108,9 @@
98 <el-table-column 108 <el-table-column
99 prop="updatedate" 109 prop="updatedate"
100 label="配置更新时间"> 110 label="配置更新时间">
101 - </el-table-column>  
102 - <el-table-column  
103 - prop="entrytime"  
104 - label="入境时间">  
105 - </el-table-column>  
106 - <el-table-column  
107 - prop="departuretime"  
108 - label="出境时间">  
109 - </el-table-column>  
110 - <el-table-column 111 + </el-table-column>-->
  112 +
  113 + <!--<el-table-column
111 prop="stayid" 114 prop="stayid"
112 label="停机位"> 115 label="停机位">
113 </el-table-column> 116 </el-table-column>
@@ -122,12 +125,12 @@ @@ -122,12 +125,12 @@
122 <el-table-column 125 <el-table-column
123 prop="remark" 126 prop="remark"
124 label="配置规则备注"> 127 label="配置规则备注">
125 - </el-table-column> 128 + </el-table-column>-->
126 <el-table-column 129 <el-table-column
127 fixed="right" 130 fixed="right"
128 prop="" 131 prop=""
129 - label="报文操作"  
130 - width="280"> 132 + label="信息操作"
  133 + width="180">
131 <template slot-scope="scope"> 134 <template slot-scope="scope">
132 <el-button 135 <el-button
133 size="mini" 136 size="mini"
@@ -187,8 +190,10 @@ @@ -187,8 +190,10 @@
187 <el-row> 190 <el-row>
188 <el-col :span="6"> 191 <el-col :span="6">
189 <el-form-item label="航空器备案类型" prop="aircrafttype" label-width="140px"> 192 <el-form-item label="航空器备案类型" prop="aircrafttype" label-width="140px">
190 - <el-input v-model="configure_editForm.aircrafttype"  
191 - ></el-input> 193 + <el-select v-model="configure_editForm.aircrafttype" placeholder="请选择">
  194 + <el-option label="通用航空器" value="1"></el-option>
  195 + <el-option label="航线航空器" value="2"></el-option>
  196 + </el-select>
192 </el-form-item> 197 </el-form-item>
193 </el-col> 198 </el-col>
194 <el-col :span="6"> 199 <el-col :span="6">
@@ -203,27 +208,27 @@ @@ -203,27 +208,27 @@
203 maxLength='3'></el-input> 208 maxLength='3'></el-input>
204 </el-form-item> 209 </el-form-item>
205 </el-col> 210 </el-col>
206 - <el-col :span="6"> 211 + <!--<el-col :span="6">
207 <el-form-item label="配置生效时间" prop="configstarttime" label-width="130px"> 212 <el-form-item label="配置生效时间" prop="configstarttime" label-width="130px">
208 <el-date-picker 213 <el-date-picker
209 v-model="configure_editForm.configstarttime" 214 v-model="configure_editForm.configstarttime"
210 type="datetime" 215 type="datetime"
211 placeholder="选择日期时间" 216 placeholder="选择日期时间"
212 - value-format="yyyyMMddhhmmss"  
213 - format="yyyyMMddhhmmss" 217 + value-format="yyyy-MM-dd HH:mm:ss"
  218 + format="yyyy-MM-dd HH:mm:ss"
214 style="width: 100%" 219 style="width: 100%"
215 :picker-options="pickerOptions"> 220 :picker-options="pickerOptions">
216 </el-date-picker> 221 </el-date-picker>
217 </el-form-item> 222 </el-form-item>
218 - </el-col> 223 + </el-col>-->
219 <el-col :span="6"> 224 <el-col :span="6">
220 <el-form-item label="配置生效到期日" prop="configendtime" label-width="140px"> 225 <el-form-item label="配置生效到期日" prop="configendtime" label-width="140px">
221 <el-date-picker 226 <el-date-picker
222 v-model="configure_editForm.configendtime" 227 v-model="configure_editForm.configendtime"
223 type="datetime" 228 type="datetime"
224 placeholder="选择日期时间" 229 placeholder="选择日期时间"
225 - value-format="yyyyMMddhhmmss"  
226 - format="yyyyMMddhhmmss" 230 + value-format="yyyy-MM-dd HH:mm:ss"
  231 + format="yyyy-MM-dd HH:mm:ss"
227 style="width: 100%" 232 style="width: 100%"
228 :picker-options="pickerOptions"> 233 :picker-options="pickerOptions">
229 </el-date-picker> 234 </el-date-picker>
@@ -247,12 +252,12 @@ @@ -247,12 +252,12 @@
247 </el-select> 252 </el-select>
248 </el-form-item> 253 </el-form-item>
249 </el-col> 254 </el-col>
250 - <el-col :span="6"> 255 + <!--<el-col :span="6">
251 <el-form-item label="创建人" prop="userid" label-width="130px"> 256 <el-form-item label="创建人" prop="userid" label-width="130px">
252 <el-input v-model="configure_editForm.userid"></el-input> 257 <el-input v-model="configure_editForm.userid"></el-input>
253 </el-form-item> 258 </el-form-item>
254 - </el-col>  
255 - <el-col :span="6"> 259 + </el-col>-->
  260 + <!--<el-col :span="6">
256 <el-form-item label="创建时间" prop="creatdate" label-width="130px"> 261 <el-form-item label="创建时间" prop="creatdate" label-width="130px">
257 <el-date-picker 262 <el-date-picker
258 v-model="configure_editForm.creatdate" 263 v-model="configure_editForm.creatdate"
@@ -277,15 +282,15 @@ @@ -277,15 +282,15 @@
277 :picker-options="pickerOptions"> 282 :picker-options="pickerOptions">
278 </el-date-picker> 283 </el-date-picker>
279 </el-form-item> 284 </el-form-item>
280 - </el-col> 285 + </el-col>-->
281 <el-col :span="6"> 286 <el-col :span="6">
282 <el-form-item label="入境时间" prop="entrytime" label-width="130px"> 287 <el-form-item label="入境时间" prop="entrytime" label-width="130px">
283 <el-date-picker 288 <el-date-picker
284 v-model="configure_editForm.entrytime" 289 v-model="configure_editForm.entrytime"
285 type="datetime" 290 type="datetime"
286 placeholder="选择日期时间" 291 placeholder="选择日期时间"
287 - value-format="yyyyMMddhhmmss"  
288 - format="yyyyMMddhhmmss" 292 + value-format="yyyy-MM-dd HH:mm:ss"
  293 + format="yyyy-MM-dd HH:mm:ss"
289 style="width:100%"> 294 style="width:100%">
290 </el-date-picker> 295 </el-date-picker>
291 </el-form-item> 296 </el-form-item>
@@ -296,8 +301,8 @@ @@ -296,8 +301,8 @@
296 v-model="configure_editForm.departuretime" 301 v-model="configure_editForm.departuretime"
297 type="datetime" 302 type="datetime"
298 placeholder="选择日期时间" 303 placeholder="选择日期时间"
299 - value-format="yyyyMMddhhmmss"  
300 - format="yyyyMMddhhmmss" 304 + value-format="yyyy-MM-dd HH:mm:ss"
  305 + format="yyyy-MM-dd HH:mm:ss"
301 style="width:100%"> 306 style="width:100%">
302 </el-date-picker> 307 </el-date-picker>
303 </el-form-item> 308 </el-form-item>
@@ -308,7 +313,7 @@ @@ -308,7 +313,7 @@
308 <el-input v-model="configure_editForm.stayid"></el-input> 313 <el-input v-model="configure_editForm.stayid"></el-input>
309 </el-form-item> 314 </el-form-item>
310 </el-col> 315 </el-col>
311 - <el-col :span="6"> 316 + <!--<el-col :span="6">
312 <el-form-item label="定时任务配置时间规则" prop="crontask" label-width="130px"> 317 <el-form-item label="定时任务配置时间规则" prop="crontask" label-width="130px">
313 <el-input v-model="configure_editForm.crontask"></el-input> 318 <el-input v-model="configure_editForm.crontask"></el-input>
314 </el-form-item> 319 </el-form-item>
@@ -322,7 +327,7 @@ @@ -322,7 +327,7 @@
322 <el-form-item label="配置规则备注" prop="remark" label-width="130px"> 327 <el-form-item label="配置规则备注" prop="remark" label-width="130px">
323 <el-input v-model="configure_editForm.remark"></el-input> 328 <el-input v-model="configure_editForm.remark"></el-input>
324 </el-form-item> 329 </el-form-item>
325 - </el-col> 330 + </el-col>-->
326 </el-form> 331 </el-form>
327 <div slot="footer" class="dialog-footer"> 332 <div slot="footer" class="dialog-footer">
328 <el-button @click="configure_dialog.addDialog = false" size="small">取 消</el-button> 333 <el-button @click="configure_dialog.addDialog = false" size="small">取 消</el-button>
@@ -396,13 +401,13 @@ @@ -396,13 +401,13 @@
396 flightno: '', 401 flightno: '',
397 customscode: '', 402 customscode: '',
398 aircraftcode: '', 403 aircraftcode: '',
399 - aircrafttype: '', 404 + aircrafttype: '1',
400 originstation: '', 405 originstation: '',
401 destinationstation: '', 406 destinationstation: '',
402 configstarttime: '', 407 configstarttime: '',
403 configendtime: '', 408 configendtime: '',
404 - configstatus: '',  
405 - type: '', 409 + configstatus: '1',
  410 + type: '2',
406 userid: '', 411 userid: '',
407 creatdate: '', 412 creatdate: '',
408 updatedate: '', 413 updatedate: '',
@@ -421,9 +426,6 @@ @@ -421,9 +426,6 @@
421 flightno: [ 426 flightno: [
422 { required: true, message: '请输入', trigger: 'change' } 427 { required: true, message: '请输入', trigger: 'change' }
423 ], 428 ],
424 - configstarttime: [  
425 - { required: true, message: '请输入', trigger: 'change' }  
426 - ],  
427 configendtime: [ 429 configendtime: [
428 { required: true, message: '请输入', trigger: 'change' } 430 { required: true, message: '请输入', trigger: 'change' }
429 ], 431 ],
@@ -433,12 +435,6 @@ @@ -433,12 +435,6 @@
433 type: [ 435 type: [
434 { required: true, message: '请输入', trigger: 'change' } 436 { required: true, message: '请输入', trigger: 'change' }
435 ], 437 ],
436 - creatdate: [  
437 - { required: true, message: '请输入', trigger: 'change' }  
438 - ],  
439 - updatedate: [  
440 - { required: true, message: '请输入', trigger: 'change' }  
441 - ],  
442 entrytime: [ 438 entrytime: [
443 { required: true, message: '请输入', trigger: 'change' } 439 { required: true, message: '请输入', trigger: 'change' }
444 ], 440 ],
@@ -460,9 +456,6 @@ @@ -460,9 +456,6 @@
460 destinationstation: [ 456 destinationstation: [
461 { required: true, message: '请输入', trigger: 'change' } 457 { required: true, message: '请输入', trigger: 'change' }
462 ], 458 ],
463 - userid: [  
464 - { required: true, message: '请输入', trigger: 'change' }  
465 - ],  
466 stayid: [ 459 stayid: [
467 { required: true, message: '请输入', trigger: 'change' } 460 { required: true, message: '请输入', trigger: 'change' }
468 ], 461 ],
@@ -487,7 +480,6 @@ @@ -487,7 +480,6 @@
487 const _this = this 480 const _this = this
488 selectExact(this.queryConfigure).then((response) => { 481 selectExact(this.queryConfigure).then((response) => {
489 const res = response.data 482 const res = response.data
490 - console.log(response.data)  
491 if (res.code !== '200') { 483 if (res.code !== '200') {
492 return _this.$message.error('获取消息收发记录,失败!') 484 return _this.$message.error('获取消息收发记录,失败!')
493 } 485 }
@@ -93,7 +93,7 @@ @@ -93,7 +93,7 @@
93 configure:{ 93 configure:{
94 username:loginUserInfo.username, 94 username:loginUserInfo.username,
95 flightNo:undefined, 95 flightNo:undefined,
96 - ietype:'0', 96 + ietype:'1',
97 reamrk:undefined, 97 reamrk:undefined,
98 // accessFlag:'1', 98 // accessFlag:'1',
99 country:'', 99 country:'',
@@ -138,16 +138,15 @@ @@ -138,16 +138,15 @@
138 if (valid) { 138 if (valid) {
139 this.configure.createBy=loginUserInfo.username 139 this.configure.createBy=loginUserInfo.username
140 this.configure.username=loginUserInfo.username 140 this.configure.username=loginUserInfo.username
141 - console.log(this.configure.flightNo)  
142 addSchedule(this.configure).then(res=>{ 141 addSchedule(this.configure).then(res=>{
143 let response=res.data; 142 let response=res.data;
144 - console.log(response)  
145 if(response.code=='200'){ 143 if(response.code=='200'){
146 - this.centerDialogVisible=true;  
147 - this.msg=response.msg; 144 + //this.centerDialogVisible=true;
  145 + //this.msg=response.msg;
148 this.$router.push({path:'/queryConfigure',query:{flightNo:this.configure.flightNo}}); 146 this.$router.push({path:'/queryConfigure',query:{flightNo:this.configure.flightNo}});
  147 + this.$message.success(response.msg)
149 }else{ 148 }else{
150 - this.msg=response.msg; 149 + this.$message.error(response.msg)
151 } 150 }
152 }); 151 });
153 } else { 152 } else {
@@ -167,7 +166,7 @@ @@ -167,7 +166,7 @@
167 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase(); 166 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
168 } 167 }
169 }, 168 },
170 - mounted(){ 169 + activated(){
171 this.defaultData(); 170 this.defaultData();
172 } 171 }
173 } 172 }
@@ -218,11 +218,12 @@ @@ -218,11 +218,12 @@
218 addConfirm(this.confirmatory).then(res=>{ 218 addConfirm(this.confirmatory).then(res=>{
219 let response=res.data; 219 let response=res.data;
220 if(response.code=='200'){ 220 if(response.code=='200'){
221 - this.centerDialogVisible=true;  
222 - this.msg=response.msg; 221 + //this.centerDialogVisible=true;
  222 + //this.msg=response.msg;
223 this.$router.push({path:'/queryConfirmatory',query:{flightNo:this.confirmatory.flightNo,flightDate:this.confirmatory.flightDate}}); 223 this.$router.push({path:'/queryConfirmatory',query:{flightNo:this.confirmatory.flightNo,flightDate:this.confirmatory.flightDate}});
  224 + this.$message.success(response.msg)
224 }else{ 225 }else{
225 - this.msg=response.msg; 226 + this.$message.error(response.msg)
226 } 227 }
227 }); 228 });
228 } else { 229 } else {
@@ -235,17 +236,16 @@ @@ -235,17 +236,16 @@
235 sendForm(formName) { 236 sendForm(formName) {
236 this.$refs[formName].validate((valid) => { 237 this.$refs[formName].validate((valid) => {
237 if (valid) { 238 if (valid) {
238 - console.log(this.confirmatory)  
239 this.confirmatory.createBy=loginUserInfo.username 239 this.confirmatory.createBy=loginUserInfo.username
240 -  
241 sendConfirmIn(this.confirmatory).then(res=>{ 240 sendConfirmIn(this.confirmatory).then(res=>{
242 let response=res.data; 241 let response=res.data;
243 if(response.code=='200'){ 242 if(response.code=='200'){
244 - this.centerDialogVisible=true;  
245 - this.msg=response.msg; 243 + //this.centerDialogVisible=true;
  244 + //this.msg=response.msg;
246 this.$router.push({path:'/queryConfirmatory',query:{flightNo:this.confirmatory.flightNo,flightDate:this.confirmatory.flightDate}}); 245 this.$router.push({path:'/queryConfirmatory',query:{flightNo:this.confirmatory.flightNo,flightDate:this.confirmatory.flightDate}});
  246 + this.$message.success(response.msg)
247 }else{ 247 }else{
248 - this.msg=response.msg; 248 + this.$message.error(response.msg)
249 } 249 }
250 }); 250 });
251 } else { 251 } else {
@@ -265,7 +265,7 @@ @@ -265,7 +265,7 @@
265 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase(); 265 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
266 } 266 }
267 }, 267 },
268 - mounted(){ 268 + activated(){
269 this.defaultData(); 269 this.defaultData();
270 } 270 }
271 } 271 }
  1 +<template>
  2 + <div>
  3 + <el-row :gutter="10">
  4 + <el-col :span="4">
  5 + <el-input
  6 + placeholder="航空器注册编号"
  7 + v-model="query.aircraftNo"
  8 + size="medium"
  9 + clearable>
  10 + </el-input>
  11 + </el-col>
  12 + <el-col :span="4">
  13 + <el-input
  14 + placeholder="进出境(港)航班号"
  15 + v-model="query.flightNo"
  16 + size="medium"
  17 + clearable>
  18 + </el-input>
  19 + </el-col>
  20 + <el-col :span="8">
  21 + <div class="block">
  22 + <el-date-picker
  23 + v-model="flightdate"
  24 + type="daterange"
  25 + :picker-options="pickerOptions"
  26 + range-separator="至"
  27 + start-placeholder="开始日期"
  28 + end-placeholder="结束日期"
  29 + value-format="yyyy-MM-dd"
  30 + size="medium"
  31 + align="right">
  32 + </el-date-picker>
  33 + </div>
  34 + </el-col>
  35 + <el-col :span="2">
  36 + <el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
  37 + </el-col>
  38 + <el-col :span="2">
  39 + <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
  40 + </el-col>
  41 + <el-col :span="2">
  42 + <el-upload
  43 + class="upload-demo"
  44 + action=""
  45 + :before-upload="beforeUpload"
  46 + :http-request="uploadFile"
  47 + :show-file-list="false">
  48 + <el-button size="medium" type="success" plain>导入</el-button>
  49 + </el-upload>
  50 + </el-col>
  51 + </el-row>
  52 + <el-row :gutter="10">
  53 + <el-table
  54 + :data="tableData"
  55 + style="width: 100%"
  56 + row-key="uuid"
  57 + :expand-row-keys="expandedRowKeys"
  58 + border
  59 + stripe>
  60 + <el-table-column
  61 + align="center"
  62 + fixed="left"
  63 + label="信息操作"
  64 + width="80">
  65 + <template slot-scope="scope">
  66 + <el-button @click="ediForm(scope.row)" type="text" size="small">编辑</el-button>
  67 + </template>
  68 + </el-table-column>
  69 + <el-table-column type="expand" label="详细信息">
  70 + <template v-slot:default="{ row }">
  71 + <el-table
  72 + :data="row.billpersonList"
  73 + style="width: 70%;margin-left: 75px;margin-top: 10px"
  74 + row-key="autoId"
  75 + stripe
  76 + border
  77 + >
  78 + <el-table-column prop="name" label="姓名" />
  79 + <el-table-column width="80" prop="gender" label="性别">
  80 + <template slot-scope="scope">
  81 + {{ scope.row.gender === 'M' ? '男' : '女' }}
  82 + </template>
  83 + </el-table-column>
  84 + <el-table-column width="80" prop="nationality" label="国籍" />
  85 + <el-table-column label="职务">
  86 + <template slot-scope="scope">
  87 + {{ {
  88 + '1': '航线机长',
  89 + '2': '副驾驶',
  90 + '3': '乘务长',
  91 + '4': '安全员',
  92 + '5': '乘务员',
  93 + '6': '机械师',
  94 + '7': '随行人员',
  95 + '8': '工程师',
  96 + '9': '装载员',
  97 + '10': '押运员',
  98 + '11': '其它随机人员'
  99 + }[scope.row.gareer] || scope.row.gareer }}
  100 + </template>
  101 + </el-table-column>
  102 + <el-table-column prop="certType" :formatter="formatType" label="证件类型" />
  103 + <el-table-column prop="ceterNo" label="证件号" />
  104 + </el-table>
  105 + </template>
  106 + </el-table-column>
  107 + <el-table-column
  108 + prop="messageid"
  109 + label="编号"
  110 + width="320">
  111 + </el-table-column>
  112 +
  113 + <el-table-column
  114 + prop="aircraftNo"
  115 + label="航空器注册编号"
  116 + width="100">
  117 + </el-table-column>
  118 + <el-table-column
  119 + prop="arrivalno"
  120 + label="海关关区"
  121 + width="100">
  122 + </el-table-column>
  123 + <el-table-column
  124 + prop="flightNo"
  125 + label="进境(港)航班号"
  126 + width="120">
  127 + </el-table-column>
  128 + <el-table-column
  129 + prop="flightDate"
  130 + label="航班日期"
  131 + width="100">
  132 + </el-table-column>
  133 + <el-table-column
  134 + label="进出类型"
  135 + width="100">
  136 + <template slot-scope="scope">
  137 + {{ scope.row.accessFlag === 'D' ? '出港' : '进港' }}
  138 + </template>
  139 + </el-table-column>
  140 + <el-table-column
  141 + prop="arrivaldatetime"
  142 + label="出入(境)时间"
  143 + width="140">
  144 + </el-table-column>
  145 + <el-table-column
  146 + prop="statusMsg"
  147 + label="海关状态"
  148 + width="120">
  149 + </el-table-column>
  150 + <el-table-column
  151 + fixed="right"
  152 + label="操作"
  153 + width="200">
  154 + <template slot-scope="scope">
  155 + <el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
  156 + <el-button @click="sendstying(scope.row,2)" type="text" size="small">申报</el-button>
  157 + <el-button @click="sendstying(scope.row,5)" type="text" size="small">修改</el-button>
  158 + <el-button @click="sendstying(scope.row,3)" type="text" size="small">删除</el-button>
  159 + </template>
  160 + </el-table-column>
  161 + </el-table>
  162 + </el-row>
  163 + <el-row :gutter="10">
  164 + <div class="block">
  165 + <el-pagination
  166 + @size-change="handleSizeChange"
  167 + @current-change="handleCurrentChange"
  168 + :current-page="query.pageNum"
  169 + :page-sizes="[100, 200, 300, 400]"
  170 + :page-size="query.pageSize"
  171 + layout="total, sizes, prev, pager, next, jumper"
  172 + :total="total">
  173 + </el-pagination>
  174 + </div>
  175 + </el-row>
  176 + <el-row :gutter="10">
  177 + <el-dialog
  178 + title="回执列表"
  179 + :visible.sync="returnVisible"
  180 + width="55%"
  181 + :before-close="handleClose">
  182 + <el-table :data="gridData">
  183 + <el-table-column property="sendtime" label="操作时间" ></el-table-column>
  184 + <el-table-column property="createBy" label="操作人" ></el-table-column>
  185 + <el-table-column property="flightNo" label="航班号"></el-table-column>
  186 + <el-table-column property="flightDate" label="航班日期" ></el-table-column>
  187 + <el-table-column property="receiptContent" label="回执内容" ></el-table-column>
  188 + </el-table>
  189 + </el-dialog>
  190 + </el-row>
  191 + <el-row :gutter="10">
  192 + <el-dialog
  193 + :title="'单证信息'+textMap[dialogStatus]"
  194 + :visible.sync="dialogVisible"
  195 + width="80%"
  196 + center>
  197 + <el-form :model="form" :rules="rules" ref="form" label-width="130px">
  198 + <el-row :gutter="10">
  199 + <el-col :span="6">
  200 + <el-form-item label="航空注册器编号" prop="aircraftNo">
  201 + <el-input v-model="form.aircraftNo"></el-input>
  202 + </el-form-item>
  203 + </el-col>
  204 + <el-col :span="6">
  205 + <el-form-item label="航班号" prop="flightNo">
  206 + <el-input v-model="form.flightNo"></el-input>
  207 + </el-form-item>
  208 + </el-col>
  209 + <el-col :span="6">
  210 + <el-form-item label="航班日期" prop="flightDate" style="width: 100%;">
  211 + <div class="block">
  212 + <el-date-picker
  213 + v-model="form.flightDate"
  214 + type="datetime"
  215 + value-format="yyyy-MM-dd"
  216 + placeholder="yyyy-MM-dd"
  217 + style="width: 100%;">
  218 + </el-date-picker>
  219 + </div>
  220 + </el-form-item>
  221 + </el-col>
  222 + <el-col :span="6">
  223 + <el-form-item label="进出标识" prop="accessFlag">
  224 + <el-select v-model="form.accessFlag">
  225 + <el-option label="进港" value="A"></el-option>
  226 + <el-option label="出港" value="D"></el-option>
  227 + </el-select>
  228 + </el-form-item>
  229 + </el-col>
  230 + </el-row>
  231 + <el-row :gutter="10">
  232 + <el-col :span="6">
  233 + <el-form-item label="进出港口" prop="arrivalAirport">
  234 + <el-select v-model="form.arrivalAirport"
  235 + filterable
  236 + allow-create
  237 + default-first-option
  238 + remote
  239 + :remote-method="getAirportCode"
  240 + :loading="loading" placeholder="请选择">
  241 + <el-option
  242 + v-for="item in airportcodes"
  243 + :key="item.airportid"
  244 + :label="item.airportid"
  245 + :value="item.airportid">
  246 + <span style="float: left">{{ item.airportid }}</span>
  247 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  248 + </el-option>
  249 + </el-select>
  250 + </el-form-item>
  251 + </el-col>
  252 + <el-col :span="6">
  253 + <el-form-item label="海关关区" prop="arrivalno">
  254 + <el-select v-model="form.arrivalno"
  255 + filterable
  256 + allow-create
  257 + default-first-option
  258 + remote
  259 + :remote-method="getCustomCode"
  260 + :loading="loading" placeholder="请选择">
  261 + <el-option
  262 + v-for="item in customcodes"
  263 + :key="item.customcode"
  264 + :label="item.customcode"
  265 + :value="item.customcode">
  266 + <span style="float: left">{{ item.customcode }}</span>
  267 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  268 + </el-option>
  269 + </el-select>
  270 + </el-form-item>
  271 + </el-col>
  272 + <el-col :span="6">
  273 + <el-form-item label="进出境时间" prop="arrivaldatetime" style="width: 100%;">
  274 + <el-date-picker
  275 + v-model="form.arrivaldatetime"
  276 + type="datetime"
  277 + value-format="yyyy-MM-dd HH:mm:ss"
  278 + placeholder="yyyy-MM-dd HH:mm:ss"
  279 + style="width: 100%;">
  280 + </el-date-picker>
  281 + </el-form-item>
  282 + </el-col>
  283 + <el-col :span="6">
  284 + <el-form-item label="机组人数" prop="aircrewSum">
  285 + <el-input v-model="form.aircrewSum"></el-input>
  286 + </el-form-item>
  287 + </el-col>
  288 + </el-row>
  289 + <el-row :guter="10">
  290 + <el-col :span="6">
  291 + <el-form-item label="国际旅客人数" prop="interPassengerSum">
  292 + <el-input v-model="form.interPassengerSum"></el-input>
  293 + </el-form-item>
  294 + </el-col>
  295 + <el-col :span="6">
  296 + <el-form-item label="国际行李件数" prop="interBaggageNum">
  297 + <el-input v-model="form.interBaggageNum"></el-input>
  298 + </el-form-item>
  299 + </el-col>
  300 + <el-col :span="6">
  301 + <el-form-item label="货邮件数" prop="goodsNum">
  302 + <el-input v-model="form.goodsNum"></el-input>
  303 + </el-form-item>
  304 + </el-col>
  305 + <el-col :span="6">
  306 + <el-form-item label="货邮重量(千克)" prop="goodsQuantity">
  307 + <el-input v-model="form.goodsQuantity"></el-input>
  308 + </el-form-item>
  309 + </el-col>
  310 + </el-row>
  311 + <el-row :guter="10">
  312 + <el-col :span="6">
  313 + <el-form-item label="是否有健康异常" prop="remark">
  314 + <el-select v-model="form.remark">
  315 + <el-option label="是" value="T"></el-option>
  316 + <el-option label="否" value="F"></el-option>
  317 + </el-select>
  318 + </el-form-item>
  319 + </el-col>
  320 + <el-col :span="6">
  321 + <el-form-item label="是否发现病媒生物" prop="remark1">
  322 + <el-select v-model="form.remark2">
  323 + <el-option label="是" value="T"></el-option>
  324 + <el-option label="否" value="F"></el-option>
  325 + </el-select>
  326 + </el-form-item>
  327 + </el-col>
  328 + <el-col :span="6">
  329 + <el-form-item label="是否发现外来有害生物" prop="remark2">
  330 + <el-select v-model="form.remark2">
  331 + <el-option label="是" value="T"></el-option>
  332 + <el-option label="否" value="F"></el-option>
  333 + </el-select>
  334 + </el-form-item>
  335 + </el-col>
  336 + <el-col :span="6">
  337 + <el-form-item label="是否有有效灭蚊证明" prop="remark3">
  338 + <el-select v-model="form.remark3">
  339 + <el-option label="是" value="T"></el-option>
  340 + <el-option label="否" value="F"></el-option>
  341 + </el-select>
  342 + </el-form-item>
  343 + </el-col>
  344 + </el-row>
  345 + <el-row :guter="10">
  346 + <el-col :span="18">
  347 + <el-form-item label="备注">
  348 + <el-input v-model="form.meno"></el-input>
  349 + </el-form-item>
  350 + </el-col>
  351 + <el-col :span="6">
  352 + <el-form-item label="">
  353 + <el-button @click="dialogVisible=false">取消</el-button>
  354 + <el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
  355 + </el-form-item>
  356 + </el-col>
  357 + </el-row>
  358 + </el-form>
  359 + <el-divider content-position="left"><span style="color: #1d8ce0">机组人员信息</span>
  360 + <el-divider direction="vertical"></el-divider>
  361 + <el-button type="primary" @click="addBillperson">新增机组人员</el-button>
  362 + <el-divider direction="vertical"></el-divider></el-divider>
  363 +
  364 + <el-table
  365 + :data="tableChldren"
  366 + style="width: 80%;margin-left: 75px;margin-top: 10px"
  367 + row-key="autoId"
  368 + stripe
  369 + border>
  370 + <el-table-column prop="name" label="姓名" />
  371 + <el-table-column width="80" prop="gender" label="性别">
  372 + <template slot-scope="scope">
  373 + {{ scope.row.gender === 'M' ? '男' : '女' }}
  374 + </template>
  375 + </el-table-column>
  376 + <el-table-column width="80" prop="nationality" label="国籍" />
  377 + <el-table-column label="职务">
  378 + <template slot-scope="scope">
  379 + {{ {
  380 + '1': '航线机长',
  381 + '2': '副驾驶',
  382 + '3': '乘务长',
  383 + '4': '安全员',
  384 + '5': '乘务员',
  385 + '6': '机械师',
  386 + '7': '随行人员',
  387 + '8': '工程师',
  388 + '9': '装载员',
  389 + '10': '押运员',
  390 + '11': '其它随机人员'
  391 + }[scope.row.gareer] || scope.row.gareer }}
  392 + </template>
  393 + </el-table-column>
  394 + <el-table-column prop="certType" :formatter="formatType" label="证件类型" />
  395 + <el-table-column prop="ceterNo" label="证件号" />
  396 + <el-table-column
  397 + fixed="right"
  398 + label="操作"
  399 + width="50">
  400 + <template slot-scope="scope">
  401 + <el-button @click.native.prevent="deleteRow(scope.$index, tableChldren)" type="text" size="small">删除</el-button>
  402 + </template>
  403 + </el-table-column>
  404 + </el-table>
  405 + </el-dialog>
  406 + <el-dialog title="机组人员添加" :visible.sync="dialogFormVisible" width="70%"
  407 + center>
  408 + <el-form :model="billperson" :rules="rules" ref="billperson" label-width="100px">
  409 + <el-row :gutter="10">
  410 + <el-col :span="6">
  411 + <el-form-item label="姓名" prop="name">
  412 + <el-input v-model="billperson.name"></el-input>
  413 + </el-form-item>
  414 + </el-col>
  415 + <el-col :span="6">
  416 + <el-form-item label="性别" prop="gender">
  417 + <el-select v-model="billperson.gender">
  418 + <el-option label="男" value="M"></el-option>
  419 + <el-option label="女" value="F"></el-option>
  420 + </el-select>
  421 + </el-form-item>
  422 + </el-col>
  423 + <el-col :span="6">
  424 + <el-form-item label="国籍" prop="nationality">
  425 + <el-select v-model="billperson.nationality"
  426 + filterable
  427 + @click.native="getCountry"
  428 + @change="selectChange"
  429 + default-first-option
  430 + :loading="loading" placeholder="请选择"
  431 + style="text-transform:uppercase">
  432 + <el-option
  433 + v-for="item in countryOptions"
  434 + :key="item.countryid"
  435 + :label="item.countryid+'-'+item.countrydescchn"
  436 + :value="item.countryid">
  437 + <span style="float: left">{{ item.countryid }}</span>
  438 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.countrydescchn }}</span>
  439 + </el-option>
  440 + </el-select>
  441 + </el-form-item>
  442 + </el-col>
  443 + <el-col :span="6">
  444 + <el-form-item label="职务" prop="gareer">
  445 + <el-select v-model="billperson.gareer" placeholder="请选择">
  446 + <el-option label="1-航线机长" value="1"></el-option>
  447 + <el-option label="2-副驾驶" value="2"></el-option>
  448 + <el-option label="3-乘务长" value="3"></el-option>
  449 + <el-option label="4-安全员" value="4"></el-option>
  450 + <el-option label="5-乘务员" value="5"></el-option>
  451 + <el-option label="6-机械师" value="6"></el-option>
  452 + <el-option label="7-随行人员" value="7"></el-option>
  453 + <el-option label="8-工程师" value="8"></el-option>
  454 + <el-option label="9-装载员" value="9"></el-option>
  455 + <el-option label="10-押运员" value="10"></el-option>
  456 + <el-option label="11-其它随机人员" value="11"></el-option>
  457 + </el-select>
  458 + </el-form-item>
  459 + </el-col>
  460 + <el-col :span="6">
  461 + <el-form-item label="证件类型" prop="certType">
  462 + <el-select v-model="billperson.certType"
  463 + filterable
  464 + @click.native="getCreden"
  465 + :loading="loading" placeholder="请选择">
  466 + <el-option
  467 + v-for="item in certOptions"
  468 + :key="item.serialno"
  469 + :label="item.serialno+'-'+item.credenname"
  470 + :value="item.serialno">
  471 + <span style="float: left">{{ item.serialno }}</span>
  472 + <span style="float: right; color: #8492a6; font-size: 13px">{{ item.credenname }}</span>
  473 + </el-option>
  474 + </el-select>
  475 + </el-form-item>
  476 + </el-col>
  477 + <el-col :span="6">
  478 + <el-form-item label="证件号码" prop="ceterNo">
  479 + <el-input v-model="billperson.ceterNo" placeholder="请输入"></el-input>
  480 + </el-form-item>
  481 + </el-col>
  482 + <el-col :span="6">
  483 + <el-form-item label="备注" prop="meno">
  484 + <el-input v-model="billperson.meno" placeholder="请输入"></el-input>
  485 + </el-form-item>
  486 + </el-col>
  487 + <el-col :span="6">
  488 + <el-form-item>
  489 + <el-button type="primary" @click="addRow('billperson')">添加</el-button>
  490 + </el-form-item>
  491 + </el-col>
  492 + </el-row>
  493 +
  494 + </el-form>
  495 + </el-dialog>
  496 + </el-row>
  497 + </div>
  498 +</template>
  499 +<script>
  500 + import {
  501 + insertSelectiveBill,
  502 + selectBillLists,
  503 + selectByairportcode,
  504 + selectBycustomcode,
  505 + selectReturnMsgList, sendBillSdeclare, updateByPrimaryKeySelectiveBill,batchJZImport
  506 + } from "../../api/transport/transport2.0";
  507 + import {selectCountry, selectCreden} from "../../api/transport";
  508 + import {importExcel} from "../../api/consigner/exportOrder";
  509 +
  510 + export default{
  511 + data(){
  512 + return{
  513 + certOptions:[],
  514 + countryOptions:[],
  515 + countryid:'',
  516 + dialogFormVisible:false,
  517 + tableChldren:[],
  518 + dialogVisible: false,
  519 + dialogStatus:'',
  520 + textMap:{
  521 + update: '编辑',
  522 + create: '新增'
  523 + },
  524 + tableData:[],
  525 + expandedRowKeys: [],
  526 + query:{
  527 + aircraftNo:'',
  528 + flightNo:'',
  529 + starttime:'',
  530 + endtime:'',
  531 + pageNum:0,
  532 + pageSize:10,
  533 + },
  534 + form: {
  535 + uuid: '',
  536 + aircraftNo: '',
  537 + flightNo: '',
  538 + flightDate: '', // Use JavaScript Date object
  539 + accessFlag: 'A',
  540 + departureAirport: '',
  541 + departuredatetime: '', // Use JavaScript Date object
  542 + departureno: '',
  543 + arrivalAirport: '',
  544 + arrivaldatetime: '', // Use JavaScript Date object
  545 + arrivalno: '',
  546 + aircrewSum: 0,
  547 + interPassengerSum: 0,
  548 + localePassengerSum: 0,
  549 + interBaggageNum: 0,
  550 + localeBaggageNum: 0,
  551 + goodsNum: 0,
  552 + goodsQuantity: 0,
  553 + cargoBillNum: 0,
  554 + passengerPage: 0,
  555 + aircrewBillNum: 0,
  556 + aircrewCargoBillNum: 0,
  557 + arrivalPosition: '',
  558 + bussinessType: '',
  559 + messageid: '',
  560 + status: '',
  561 + statusMsg: '',
  562 + meno: '',
  563 + createTime: '', // Use JavaScript Date object
  564 + createBy: '',
  565 + updateTime: '', // Use JavaScript Date object
  566 + updateBy: '',
  567 + isDelete: '',
  568 + remark: 'F',
  569 + remark1: 'F',
  570 + remark2: 'F',
  571 + remark3: 'T',
  572 + billpersonList: [] // Array of objects that represent the AIR_BILLPERSON model
  573 + },
  574 + billperson: {
  575 + autoId: '',
  576 + name: '',
  577 + gender: '',
  578 + gareer: '', // Note: This might be a typo in the original Java class. It should probably be "career".
  579 + nationality: '',
  580 + certType: '',
  581 + ceterNo: '', // Note: This might also be a typo. It should probably be "centerNo" or "certNo".
  582 + createTime: '', // Use JavaScript Date object
  583 + createBy: '',
  584 + updateTime: '', // Use JavaScript Date object
  585 + updateBy: '',
  586 + meno: '',
  587 + isDelete: '0',
  588 + billsId: ''
  589 + },
  590 + flightdate:['2021-11-17', '2024-12-24'],
  591 + pickerOptions: {
  592 + shortcuts: [{
  593 + text: '最近一周',
  594 + onClick(picker) {
  595 + const end = new Date();
  596 + const start = new Date();
  597 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  598 + picker.$emit('pick', [start, end]);
  599 + }
  600 + }, {
  601 + text: '最近一个月',
  602 + onClick(picker) {
  603 + const end = new Date();
  604 + const start = new Date();
  605 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  606 + picker.$emit('pick', [start, end]);
  607 + }
  608 + }, {
  609 + text: '最近三个月',
  610 + onClick(picker) {
  611 + const end = new Date();
  612 + const start = new Date();
  613 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  614 + picker.$emit('pick', [start, end]);
  615 + }
  616 + }]
  617 + },
  618 + total:0,
  619 + returnVisible:false,
  620 + gridData:[],
  621 + customcodes:[],
  622 + airportcodes:[],
  623 + loading:false,
  624 + rules: {
  625 + aircraftNo: [
  626 + { required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
  627 + ],
  628 + flightNo: [
  629 + { required: true, message: '航班号不可为空', trigger: 'blur' }
  630 + ],
  631 + flightDate: [
  632 + { required: true, message: '航班日期不可为空', trigger: 'blur' }
  633 + ],
  634 + arrivalAirport: [
  635 + { required: true, message: '进出港口不可为空', trigger: 'blur' }
  636 + ],
  637 + arrivalno: [
  638 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  639 + ],
  640 + arrivaldatetime: [
  641 + { required: true, message: '进出境时间不可为空', trigger: 'blur' }
  642 + ],
  643 + aircrewSum: [
  644 + { required: true, message: '机组人数不可为空', trigger: 'blur' }
  645 + ],
  646 + interPassengerSum: [
  647 + { required: true, message: '国际旅客不可为空', trigger: 'blur' }
  648 + ],
  649 + interBaggageNum: [
  650 + { required: true, message: '国际行李件数不可为空', trigger: 'blur' }
  651 + ],
  652 + name: [
  653 + { required: true, message: '机组人员姓名不可为空', trigger: 'blur' }
  654 + ],
  655 + nationality: [
  656 + { required: true, message: '机组人员国籍不可为空', trigger: 'blur' }
  657 + ],
  658 + gender: [
  659 + { required: true, message: '机组人员性别不可为空', trigger: 'blur' }
  660 + ],
  661 + gareer: [
  662 + { required: true, message: '机组人员职务不可为空', trigger: 'blur' }
  663 + ],
  664 + certType: [
  665 + { required: true, message: '机组人员类型不可为空', trigger: 'blur' }
  666 + ],
  667 + ceterNo: [
  668 + { required: true, message: '机组人员证件号不可为空', trigger: 'blur' }
  669 + ],
  670 + },
  671 + }
  672 + },
  673 + methods:{
  674 + //导入订单excel
  675 + beforeUpload(file) {
  676 + // 检查文件类型
  677 + const isExcel = file.type === 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' || file.type === 'application/vnd.ms-excel';
  678 + if (!isExcel) {
  679 + this.$message.error('上传文件只能是 Excel 格式!');
  680 + return false; // 取消文件上传
  681 + }
  682 + return true; // 允许上传
  683 +
  684 + },
  685 + uploadFile({ file, onSuccess, onError }){
  686 + // 生成 FormData 对象
  687 + const formData = new FormData();
  688 + formData.append('file', file);
  689 + batchJZImport(formData).then((response) => {
  690 + const res = response.data
  691 + if (res.code !== '200') {
  692 + return this.$message.error(res.msg);
  693 + }
  694 + this.$message.success(res.msg);
  695 + this.selectList();
  696 + onSuccess(response.data); // 调用 onSuccess 回调通知上传成功
  697 + }).catch(error => {
  698 + // 关闭加载
  699 + this.$message.error(error.toString())
  700 + onError(error); // 调用 onError 回调通知上传失败
  701 + })
  702 + },
  703 + addBillperson(){
  704 + this.dialogFormVisible = true;
  705 + },
  706 + addRow(formName) {
  707 + this.$refs[formName].validate((valid) => {
  708 + if (valid) {
  709 + const newMember = {
  710 + autoId: this.tableChldren.length > 0 ? this.tableChldren[this.tableChldren.length - 1].autoId + 1 : 1,
  711 + name: this.billperson.name,
  712 + gender: this.billperson.gender,
  713 + nationality: this.billperson.nationality,
  714 + gareer: this.billperson.gareer,
  715 + certType: this.billperson.certType,
  716 + ceterNo: this.billperson.ceterNo,
  717 + meno:this.billperson.meno,
  718 + createTime: '', // Use JavaScript Date object
  719 + createBy: '',
  720 + updateTime: '', // Use JavaScript Date object
  721 + updateBy: '',
  722 + isDelete: '0',
  723 + billsId: ''
  724 + };
  725 + this.tableChldren.push(newMember);
  726 + this.resetForm();
  727 + this.dialogFormVisible = false;
  728 + } else {
  729 + return false;
  730 + }
  731 + });
  732 + },
  733 + resetForm() {
  734 + this.billperson.name = '';
  735 + this.billperson.gender = '';
  736 + this.billperson.nationality = '';
  737 + this.billperson.gareer = '';
  738 + this.billperson.certType = '';
  739 + this.billperson.ceterNo = '';
  740 + },
  741 + deleteRow(index, rows) {
  742 + rows.splice(index, 1);
  743 + },
  744 + //暂存新增
  745 + createData(formName){
  746 + this.$refs[formName].validate((valid) => {
  747 + if (valid) {
  748 + this.form.departuredatetime=this.form.arrivaldatetime;
  749 + this.form.departureAirport=this.form.arrivalAirport;
  750 + insertSelectiveBill(this.form).then(res =>{
  751 + let response=res.data;
  752 + if(response.code=='200'){
  753 + this.dialogVisible=false;
  754 + this.$message.success(response.msg);
  755 + this.getList();
  756 + }else{
  757 + this.$message.error(response.msg)
  758 + }
  759 + });
  760 + } else {
  761 + return false;
  762 + }
  763 + });
  764 + },
  765 + //暂存更新
  766 + updateData(formName){
  767 + this.$refs[formName].validate((valid) => {
  768 + if (valid) {
  769 + this.form.departuredatetime=this.form.arrivaldatetime;
  770 + this.form.departureAirport=this.form.arrivalAirport;
  771 + updateByPrimaryKeySelectiveBill(this.form).then(res =>{
  772 + let response=res.data;
  773 + if(response.code=='200'){
  774 + this.dialogVisible=false;
  775 + Object.assign(this.$data, this.$options.data());
  776 + this.$message.success(response.msg);
  777 + this.getList();
  778 + }else{
  779 + this.$message.error(response.msg)
  780 + }
  781 + });
  782 + } else {
  783 + return false;
  784 + }
  785 + });
  786 + },
  787 + selectList(){
  788 + if(this.flightdate !== null && this.flightdate !== ""){
  789 + this.query.starttime = this.flightdate[0];
  790 + this.query.endtime = this.flightdate[1];
  791 + }else{
  792 + return this.$message.error('请选取时间区间')
  793 + }
  794 + selectBillLists(this.query).then((response) => {
  795 + const res = response.data
  796 + if (res.code !== '200') {
  797 + this.loading = false;
  798 + return this.$message.error('获取消息收发记录,失败!')
  799 + }
  800 + // 获取列表数据
  801 + this.tableData = res.data.list
  802 + //this.expandedRowKeys = this.tableData.map(item => item.uuid);
  803 + // 获取列表的总记录数
  804 + this.total = res.data.total
  805 + this.loading = false;
  806 + this.$message.success('获取消息收发记录,成功!');
  807 + }).catch(error => {
  808 + // 关闭加载
  809 + this.$message.error(error.toString())
  810 + })
  811 + },
  812 + addForm(){
  813 + this.dialogVisible=true;
  814 + this.dialogStatus='create';
  815 + this.form={
  816 + uuid: '',
  817 + aircraftNo: '',
  818 + flightNo: '',
  819 + flightDate: '', // Use JavaScript Date object
  820 + accessFlag: 'A',
  821 + departureAirport: '',
  822 + departuredatetime: '', // Use JavaScript Date object
  823 + departureno: '',
  824 + arrivalAirport: '',
  825 + arrivaldatetime: '', // Use JavaScript Date object
  826 + arrivalno: '',
  827 + aircrewSum: 0,
  828 + interPassengerSum: 0,
  829 + localePassengerSum: 0,
  830 + interBaggageNum: 0,
  831 + localeBaggageNum: 0,
  832 + goodsNum: 0,
  833 + goodsQuantity: 0,
  834 + cargoBillNum: 0,
  835 + passengerPage: 0,
  836 + aircrewBillNum: 0,
  837 + aircrewCargoBillNum: 0,
  838 + arrivalPosition: '',
  839 + bussinessType: '',
  840 + messageid: '',
  841 + status: '',
  842 + statusMsg: '',
  843 + meno: '',
  844 + createTime: '', // Use JavaScript Date object
  845 + createBy: '',
  846 + updateTime: '', // Use JavaScript Date object
  847 + updateBy: '',
  848 + isDelete: '',
  849 + remark: 'F',
  850 + remark1: 'F',
  851 + remark2: 'F',
  852 + remark3: 'F',
  853 + billpersonList: [] // Array of objects that represent the AIR_BILLPERSON model
  854 + };
  855 + this.tableChldren=this.form.billpersonList;
  856 + },
  857 + ediForm(row){
  858 + this.dialogVisible=true;
  859 + this.dialogStatus='update';
  860 + this.form=row;
  861 + this.tableChldren=row.billpersonList;
  862 + },
  863 + sendstying(row,FunctionCode){
  864 + const params = {
  865 + row: row,
  866 + FunctionCode: FunctionCode
  867 + };
  868 + sendBillSdeclare(params).then(res =>{
  869 + let response=res.data;
  870 + if(response.code=='200'){
  871 + this.selectList();
  872 + this.$message.success(response.msg)
  873 + }else{
  874 + this.$message.error(response.msg)
  875 + }
  876 + });
  877 + },
  878 + formatType: function(row,column){
  879 + return row.certType=='06'?'一次有效台湾居民来往大陆通行证':row.certType=='11'?'外交护照':row.certType=='12'?'公务护照'
  880 + :row.certType=='13'?'因公普通护照':row.certType=='14'?'普通护照':row.certType=='15'?'中华人民共和国旅行证'
  881 + :row.certType=='16'?'五年有效台湾居民往来大陆通行证':row.certType=='17'?'海员证':row.certType=='20'?'中华人民共和国出入境通行证'
  882 + :row.certType=='21'?'前往港澳通行证(16页,多次有效)':row.certType=='22'?'前往港澳通行证(8页,一次有效)'
  883 + :row.certType=='23'?'前往港澳通行证':row.certType=='24'?'港澳同胞回乡证或港澳居民来往内地通行证'
  884 + :row.certType=='25'?'大陆居民来往台湾通行证':row.certType=='30'?'外国人出入境通行证':row.certType=='38'?'中华人民共和国回国证明'
  885 + :row.certType=='70'?'香港特别行政区护照':row.certType=='71'?'澳门特别行政区护照'
  886 + :row.certType=='72'?'因公往来香港澳门特别行政区通行证(官员)'
  887 + :row.certType=='73'?'因公往来香港澳门特别行政区通行证(普通)':row.certType=='74'?'中华人民共和国居民身份证':row.certType=='75'?'其他证件'
  888 + :row.certType=='98'?'其他因私证件(包括联合国通行证等)'
  889 + :row.certType=='99'?'其他因私证件(包括难民证等)':'';
  890 + },
  891 + handleSizeChange(val) {
  892 + this.query.pageSize=val;
  893 + this.selectList();
  894 + },
  895 + handleCurrentChange(val) {
  896 + this.query.pageNum=val;
  897 + this.selectList();
  898 + },
  899 + //查询回执列表
  900 + returnlist(row){
  901 + this.gridData=[];
  902 + let params={messageid:row.messageid};
  903 + selectReturnMsgList(params).then(res=>{
  904 + let response=res.data.data;
  905 + this.gridData=response;
  906 + });
  907 + this.returnVisible=true;
  908 + },
  909 + handleClose() {
  910 + this.returnVisible=false;
  911 + },
  912 + //获取关区代码
  913 + getCustomCode:function(query){
  914 + this.customcodes=[];
  915 + let params={customcode:query};
  916 + this.loading = true;
  917 + selectBycustomcode(params).then(res =>{
  918 + if (res !== '') {
  919 + setTimeout(() => {
  920 + this.loading = false;
  921 + this.customcodes=res.data.data;
  922 + }, 200);
  923 + } else {
  924 + this.customcodes = [];
  925 + }
  926 +
  927 + });
  928 + },
  929 + //获取机场代码
  930 + getAirportCode:function(query){
  931 + this.airportcodes=[];
  932 + let params={airportid:query};
  933 + this.loading = true;
  934 + selectByairportcode(params).then(res =>{
  935 + if (res !== '') {
  936 + setTimeout(() => {
  937 + this.loading = false;
  938 + this.airportcodes=res.data.data;
  939 + }, 200);
  940 + } else {
  941 + this.airportcodes = [];
  942 + }
  943 +
  944 + });
  945 + },
  946 + /*获取国籍*/
  947 + getCountry:function(query){
  948 + this.countryOptions=[];
  949 + let params={countryid:query};
  950 + this.loading = true;
  951 + selectCountry(params).then(res =>{
  952 + if (res!=null) {
  953 + console.log(res.data.data)
  954 + setTimeout(() => {
  955 + this.loading = false;
  956 + this.countryOptions=res.data.data;
  957 + }, 200);
  958 + } else {
  959 + this.countryOptions = [];
  960 + }
  961 +
  962 + });
  963 + },
  964 + selectChange:function(val){
  965 + console.log(val)
  966 + this.$emit('tellFarther',val);
  967 + },
  968 + /*获取证件*/
  969 + getCreden:function(query){
  970 + this.certOptions=[];
  971 + let params={serialno:query};
  972 + this.loading = true;
  973 + selectCreden(params).then(res =>{
  974 + if (res!=null) {
  975 + console.log(res.data.data)
  976 + setTimeout(() => {
  977 + this.loading = false;
  978 + this.certOptions=res.data.data;
  979 + }, 200);
  980 + } else {
  981 + this.certOptions = [];
  982 + }
  983 +
  984 + });
  985 + },
  986 + },
  987 + mounted() {
  988 + this.expandedRowKeys = this.tableData.map(item => item.uuid);
  989 + }
  990 + }
  991 +</script>
@@ -195,11 +195,12 @@ @@ -195,11 +195,12 @@
195 addConfirm(this.declare).then(res=>{ 195 addConfirm(this.declare).then(res=>{
196 let response=res.data; 196 let response=res.data;
197 if(response.code=='200'){ 197 if(response.code=='200'){
198 - this.centerDialogVisible=true;  
199 - this.msg=response.msg; 198 + //this.centerDialogVisible=true;
  199 + //this.msg=response.msg;
  200 + this.$message.success(response.msg)
200 this.$router.push({path:'/queryDeclare',query:{flightNo:this.declare.flightNo,flightDate:this.declare.flightDate}}); 201 this.$router.push({path:'/queryDeclare',query:{flightNo:this.declare.flightNo,flightDate:this.declare.flightDate}});
201 }else{ 202 }else{
202 - this.msg=response.msg; 203 + this.$message.error(response.msg)
203 } 204 }
204 }); 205 });
205 } else { 206 } else {
@@ -216,11 +217,12 @@ @@ -216,11 +217,12 @@
216 sendConfirmOut(this.declare).then(res=>{ 217 sendConfirmOut(this.declare).then(res=>{
217 let response=res.data; 218 let response=res.data;
218 if(response.code=='200'){ 219 if(response.code=='200'){
219 - this.centerDialogVisible=true;  
220 - this.msg=response.msg; 220 + //this.centerDialogVisible=true;
  221 + //this.msg=response.msg;
  222 + this.$message.success(response.msg)
221 this.$router.push({path:'/queryDeclare',query:{flightNo:this.declare.flightNo,flightDate:this.declare.flightDate}}); 223 this.$router.push({path:'/queryDeclare',query:{flightNo:this.declare.flightNo,flightDate:this.declare.flightDate}});
222 }else{ 224 }else{
223 - this.msg=response.msg; 225 + this.$message.error(response.msg)
224 } 226 }
225 }); 227 });
226 } else { 228 } else {
@@ -240,7 +242,7 @@ @@ -240,7 +242,7 @@
240 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase(); 242 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
241 } 243 }
242 }, 244 },
243 - mounted(){ 245 + activated(){
244 this.defaultData(); 246 this.defaultData();
245 } 247 }
246 } 248 }
@@ -216,11 +216,13 @@ @@ -216,11 +216,13 @@
216 addPrediction(this.departure).then(res=>{ 216 addPrediction(this.departure).then(res=>{
217 let response=res.data; 217 let response=res.data;
218 if(response.code=='200'){ 218 if(response.code=='200'){
219 - this.centerDialogVisible=true;  
220 - this.msg=response.msg; 219 + //this.centerDialogVisible=true;
  220 + //this.msg=response.msg;
  221 + this.$message.success(response.msg)
221 this.$router.push({path:'/queryDeparture',query:{flightNo:this.departure.flightNo,flightDate:this.departure.flightDate}}); 222 this.$router.push({path:'/queryDeparture',query:{flightNo:this.departure.flightNo,flightDate:this.departure.flightDate}});
222 }else{ 223 }else{
223 - this.msg=response.msg; 224 + //this.msg=response.msg;
  225 + this.$message.error(response.msg)
224 } 226 }
225 }); 227 });
226 } else { 228 } else {
@@ -238,11 +240,12 @@ @@ -238,11 +240,12 @@
238 sendPredictionOut(this.departure).then(res=>{ 240 sendPredictionOut(this.departure).then(res=>{
239 let response=res.data; 241 let response=res.data;
240 if(response.code=='200'){ 242 if(response.code=='200'){
241 - this.centerDialogVisible=true;  
242 - this.msg=response.msg; 243 + //this.centerDialogVisible=true;
  244 + //this.msg=response.msg;
  245 + this.$message.success(response.msg)
243 this.$router.push({path:'/queryDeparture',query:{flightNo:this.departure.flightNo,flightDate:this.departure.flightDate}}); 246 this.$router.push({path:'/queryDeparture',query:{flightNo:this.departure.flightNo,flightDate:this.departure.flightDate}});
244 }else{ 247 }else{
245 - this.msg=response.msg; 248 + this.$message.error(response.msg)
246 } 249 }
247 }); 250 });
248 } else { 251 } else {
@@ -262,7 +265,7 @@ @@ -262,7 +265,7 @@
262 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase(); 265 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
263 } 266 }
264 }, 267 },
265 - mounted(){ 268 + activated(){
266 this.defaultData(); 269 this.defaultData();
267 } 270 }
268 } 271 }
@@ -240,7 +240,7 @@ @@ -240,7 +240,7 @@
240 <el-col :span="24"> 240 <el-col :span="24">
241 <el-form-item> 241 <el-form-item>
242 <el-button size="small" style="margin-left: 500px;width: 100px" type="info" @click="trans_dialog.addDialog = false">取消</el-button> 242 <el-button size="small" style="margin-left: 500px;width: 100px" type="info" @click="trans_dialog.addDialog = false">取消</el-button>
243 - <el-button type="primary" size="small" style="margin-left: 20px;width: 100px" @click="dialogStatus==='create'?trans_add():trans_edit()">提交</el-button> 243 + <el-button type="primary" size="small" style="margin-left: 20px;width: 100px" @click="dialogStatus==='create'?trans_add('form'):trans_edit('form')">提交</el-button>
244 </el-form-item> 244 </el-form-item>
245 </el-col> 245 </el-col>
246 </el-row> 246 </el-row>
@@ -392,8 +392,8 @@ @@ -392,8 +392,8 @@
392 }, 392 },
393 393
394 // 新增功能 394 // 新增功能
395 - trans_add() { // 进行表单的预验证  
396 - this.$refs.form.validate(valid => { 395 + trans_add(formName) { // 进行表单的预验证
  396 + this.$refs[formName].validate((valid) => {
397 // 未通过,表单预校验 397 // 未通过,表单预校验
398 if (!valid) return 398 if (!valid) return
399 addAircraftStaying(this.form).then((response) => { 399 addAircraftStaying(this.form).then((response) => {
@@ -423,9 +423,9 @@ @@ -423,9 +423,9 @@
423 }) 423 })
424 }, 424 },
425 // 编辑功能 425 // 编辑功能
426 - trans_edit() { 426 + trans_edit(formName) {
427 // 进行表单的预验证 427 // 进行表单的预验证
428 - this.$refs.form.validate(valid => { 428 + this.$refs[formName].validate((valid) => {
429 // 未通过,表单预校验 429 // 未通过,表单预校验
430 if (!valid) return 430 if (!valid) return
431 addAircraftStaying(this.form).then((response) => { 431 addAircraftStaying(this.form).then((response) => {
@@ -435,13 +435,15 @@ @@ -435,13 +435,15 @@
435 addFlight(this.flight).then(res=>{ 435 addFlight(this.flight).then(res=>{
436 let response=res.data; 436 let response=res.data;
437 if(response.code=='200'){ 437 if(response.code=='200'){
438 - this.centerDialogVisible=true;  
439 - this.msg=response.msg; 438 + //this.centerDialogVisible=true;
  439 + //this.msg=response.msg;
440 this.$router.push({path:'/queryFlights',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate}}); 440 this.$router.push({path:'/queryFlights',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate}});
441 - this.centerDialogVisible=false; 441 + //this.centerDialogVisible=false;
  442 + this.$message.success(response.msg)
442 }else{ 443 }else{
443 - this.centerDialogVisible=true;  
444 - this.msg=response.msg; 444 + //this.centerDialogVisible=true;
  445 + //this.msg=response.msg;
  446 + this.$message.error(response.msg)
445 } 447 }
446 }); 448 });
447 } else { 449 } else {
@@ -457,13 +459,15 @@ @@ -457,13 +459,15 @@
457 sendFlight(this.flight).then(res=>{ 459 sendFlight(this.flight).then(res=>{
458 let response=res.data; 460 let response=res.data;
459 if(response.code=='200'){ 461 if(response.code=='200'){
460 - this.centerDialogVisible=true;  
461 - this.msg=response.msg; 462 + //this.centerDialogVisible=true;
  463 + //this.msg=response.msg;
462 this.$router.push({path:'/queryFlights',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate}}); 464 this.$router.push({path:'/queryFlights',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate}});
463 - this.centerDialogVisible=false; 465 + //this.centerDialogVisible=false;
  466 + this.$message.success(response.msg)
464 }else{ 467 }else{
465 - this.centerDialogVisible=true;  
466 - this.msg=response.msg; 468 + //this.centerDialogVisible=true;
  469 + //this.msg=response.msg;
  470 + this.$message.error(response.msg)
467 } 471 }
468 }); 472 });
469 } else { 473 } else {
@@ -505,7 +509,7 @@ @@ -505,7 +509,7 @@
505 } 509 }
506 }, 510 },
507 //渲染方法 511 //渲染方法
508 - mounted(){ 512 + activated(){
509 this.defaultData(); 513 this.defaultData();
510 } 514 }
511 } 515 }
@@ -257,9 +257,10 @@ @@ -257,9 +257,10 @@
257 addFlightPlan(this.flight).then(res=>{ 257 addFlightPlan(this.flight).then(res=>{
258 let response=res.data; 258 let response=res.data;
259 if(response.code=='200'){ 259 if(response.code=='200'){
260 - this.centerDialogVisible=true;  
261 - this.msg=response.msg; 260 + //this.centerDialogVisible=true;
  261 + //this.msg=response.msg;
262 this.$router.push({path:'/queryFlightplan',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate,aircraftNo:this.flight.aircraftNo}}); 262 this.$router.push({path:'/queryFlightplan',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate,aircraftNo:this.flight.aircraftNo}});
  263 + this.$message.success(response.msg)
263 }else{ 264 }else{
264 this.msg=response.msg; 265 this.msg=response.msg;
265 } 266 }
@@ -277,9 +278,10 @@ @@ -277,9 +278,10 @@
277 sendFlightPlan(this.flight).then(res=>{ 278 sendFlightPlan(this.flight).then(res=>{
278 let response=res.data; 279 let response=res.data;
279 if(response.code=='200'){ 280 if(response.code=='200'){
280 - this.centerDialogVisible=true;  
281 - this.msg=response.msg; 281 + //this.centerDialogVisible=true;
  282 + // this.msg=response.msg;
282 this.$router.push({path:'/queryFlightplan',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate,aircraftNo:this.flight.aircraftNo}}); 283 this.$router.push({path:'/queryFlightplan',query:{flightNo:this.flight.flightNo,flightDate:this.flight.flightDate,aircraftNo:this.flight.aircraftNo}});
  284 + this.$message.success(response.msg)
283 }else{ 285 }else{
284 this.msg=response.msg; 286 this.msg=response.msg;
285 } 287 }
@@ -304,7 +306,7 @@ @@ -304,7 +306,7 @@
304 }, 306 },
305 }, 307 },
306 308
307 - mounted(){ 309 + activated(){
308 this.defaultData(); 310 this.defaultData();
309 } 311 }
310 } 312 }
  1 +<template>
  2 + <el-row :gutter="20">
  3 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  4 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  5 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  6 + <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
  7 + </el-row>
  8 +</template>
  9 +<script>
  10 + export default {
  11 + data(){
  12 + return{
  13 +
  14 + }
  15 + },
  16 + methods:{}
  17 + }
  18 +</script>
@@ -14,8 +14,8 @@ @@ -14,8 +14,8 @@
14 </el-form-item> 14 </el-form-item>
15 </el-col> 15 </el-col>
16 <el-col :span="8"> 16 <el-col :span="8">
17 - <el-form-item label="进出标识" prop="ietype" label-width="120px">  
18 - <el-select v-model="outConfigure.ietype" placeholder="" style="display:inline"> 17 + <el-form-item label="进出标识" prop="ieType" label-width="120px">
  18 + <el-select v-model="outConfigure.ieType" placeholder="" style="display:inline">
19 <el-option v-for="item in linesTypes" :key="item.value" :label="item.label" 19 <el-option v-for="item in linesTypes" :key="item.value" :label="item.label"
20 :value="item.value"></el-option> 20 :value="item.value"></el-option>
21 </el-select> 21 </el-select>
@@ -78,7 +78,7 @@ @@ -78,7 +78,7 @@
78 outConfigure:{ 78 outConfigure:{
79 username:loginUserInfo.username, 79 username:loginUserInfo.username,
80 flightNo:undefined, 80 flightNo:undefined,
81 - ietype:'1', 81 + ieType:'2',
82 reamrk:undefined, 82 reamrk:undefined,
83 // accessFlag:'2', 83 // accessFlag:'2',
84 createBy:loginUserInfo.username, 84 createBy:loginUserInfo.username,
@@ -88,7 +88,7 @@ @@ -88,7 +88,7 @@
88 flightNo: [ 88 flightNo: [
89 {required: true, message: '请输入', trigger: 'blur'} 89 {required: true, message: '请输入', trigger: 'blur'}
90 ], 90 ],
91 - ietype: [ 91 + ieType: [
92 {required: true, message: '请选择', trigger: 'change'} 92 {required: true, message: '请选择', trigger: 'change'}
93 ], 93 ],
94 }, 94 },
@@ -113,11 +113,12 @@ @@ -113,11 +113,12 @@
113 addSchedule(this.outConfigure).then(res=>{ 113 addSchedule(this.outConfigure).then(res=>{
114 let response=res.data; 114 let response=res.data;
115 if(response.code=='200'){ 115 if(response.code=='200'){
116 - this.centerDialogVisible=true;  
117 - this.msg=response.msg; 116 + //this.centerDialogVisible=true;
  117 + //this.msg=response.msg;
  118 + this.$message.success(response.msg)
118 this.$router.push({path:'/queryFlightConfigure',query:{flightNo:this.outConfigure.flightNo}}); 119 this.$router.push({path:'/queryFlightConfigure',query:{flightNo:this.outConfigure.flightNo}});
119 }else{ 120 }else{
120 - this.msg=response.msg; 121 + this.$message.error(response.msg)
121 } 122 }
122 }); 123 });
123 } else { 124 } else {
@@ -137,7 +138,7 @@ @@ -137,7 +138,7 @@
137 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase(); 138 return e.replace(/[^a-zA-Z0-9.-]/g,'').toUpperCase();
138 } 139 }
139 }, 140 },
140 - mounted(){ 141 + activated(){
141 this.defaultData(); 142 this.defaultData();
142 } 143 }
143 } 144 }
@@ -442,7 +442,7 @@ @@ -442,7 +442,7 @@
442 //编辑单据查询 442 //编辑单据查询
443 handleEdit(index,row){ 443 handleEdit(index,row){
444 444
445 - this.$router.push({path:'/bill',query:row}); 445 + this.$router.push({path:'/bills',query:row});
446 446
447 }, 447 },
448 //分页 448 //分页
@@ -159,7 +159,6 @@ @@ -159,7 +159,6 @@
159 let params={messageid:row.messageid}; 159 let params={messageid:row.messageid};
160 selectReturnMsg(params).then(res=>{ 160 selectReturnMsg(params).then(res=>{
161 let response=res.data.data; 161 let response=res.data.data;
162 - console.log(response)  
163 this.gridData=response; 162 this.gridData=response;
164 }); 163 });
165 }, 164 },
@@ -174,7 +173,7 @@ @@ -174,7 +173,7 @@
174 //获取进港航班配置查询列表 173 //获取进港航班配置查询列表
175 submitForm() { 174 submitForm() {
176 let params = { 175 let params = {
177 - pageNum: this.pageNum, pageSize: this.pageSize, flightNo: this.queryConfigure.flightNo,ieType:'0' 176 + pageNum: this.pageNum, pageSize: this.pageSize, flightNo: this.queryConfigure.flightNo,ieType:'2'
178 }; 177 };
179 this.tableloading = true; 178 this.tableloading = true;
180 selectSchedule(params).then(res => { 179 selectSchedule(params).then(res => {
@@ -45,7 +45,7 @@ @@ -45,7 +45,7 @@
45 label="用户名"> 45 label="用户名">
46 </el-table-column> 46 </el-table-column>
47 <el-table-column 47 <el-table-column
48 - prop="flightno" 48 + prop="flightNo"
49 label="航班号"> 49 label="航班号">
50 </el-table-column> 50 </el-table-column>
51 <el-table-column 51 <el-table-column
@@ -180,6 +180,7 @@ @@ -180,6 +180,7 @@
180 selectSchedule(params).then(res => { 180 selectSchedule(params).then(res => {
181 let response = res.data.data; 181 let response = res.data.data;
182 this.tableData = response.list; 182 this.tableData = response.list;
  183 + console.log(response)
183 this.tableloading = false; 184 this.tableloading = false;
184 this.total = response.total; 185 this.total = response.total;
185 }); 186 });
@@ -130,7 +130,7 @@ @@ -130,7 +130,7 @@
130 <el-pagination 130 <el-pagination
131 @size-change="handleSizeChange" 131 @size-change="handleSizeChange"
132 @current-change="handleCurrentChange" 132 @current-change="handleCurrentChange"
133 - :current-page="currentPage" 133 + :current-page="pageNum"
134 :page-sizes="[10, 20, 30, 40]" 134 :page-sizes="[10, 20, 30, 40]"
135 :page-size="pageSize" 135 :page-size="pageSize"
136 layout="total, sizes, prev, pager, next, jumper" 136 layout="total, sizes, prev, pager, next, jumper"
@@ -208,7 +208,7 @@ @@ -208,7 +208,7 @@
208 awcd:'' 208 awcd:''
209 }, 209 },
210 labelPosition:'left', 210 labelPosition:'left',
211 - currentPage: 1, 211 + pageNum: 1,
212 pageSize:10, 212 pageSize:10,
213 total:0, 213 total:0,
214 tableData: [], 214 tableData: [],
@@ -234,13 +234,13 @@ @@ -234,13 +234,13 @@
234 this.pageSize=val; 234 this.pageSize=val;
235 }, 235 },
236 handleCurrentChange(val) { 236 handleCurrentChange(val) {
237 - this.currentPage=val; 237 + this.pageNum=val;
238 this.submitForm(); 238 this.submitForm();
239 }, 239 },
240 //获取当日飞行计划列表 240 //获取当日飞行计划列表
241 submitForm() { 241 submitForm() {
242 let params = { 242 let params = {
243 - currentPage: this.currentPage, pageSize: this.pageSize, flightNo: this.queryFlightplan.flightNo, 243 + pageNum: this.pageNum, pageSize: this.pageSize, flightNo: this.queryFlightplan.flightNo,
244 awcd: this.queryFlightplan.awcd, flightDate: this.queryFlightplan.flightDate 244 awcd: this.queryFlightplan.awcd, flightDate: this.queryFlightplan.flightDate
245 }; 245 };
246 console.log(params) 246 console.log(params)
@@ -11,19 +11,19 @@ @@ -11,19 +11,19 @@
11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight" 11 <el-form :label-position="labelPosition" :model="queryConfigure" :rules="rules" ref="queryFlight"
12 label-width="130px" class="demo-ruleForm"> 12 label-width="130px" class="demo-ruleForm">
13 <el-row> 13 <el-row>
14 - <el-col :span="5" style="margin-right: 70px"> 14 + <el-col :span="5">
15 <el-form-item label="承运人" prop="awcd" label-width="70px"> 15 <el-form-item label="承运人" prop="awcd" label-width="70px">
16 <el-input v-model="queryConfigure.awcd" style="width:120px"></el-input> 16 <el-input v-model="queryConfigure.awcd" style="width:120px"></el-input>
17 </el-form-item> 17 </el-form-item>
18 </el-col> 18 </el-col>
19 - <el-col :span="5" style="margin-right: 70px"> 19 + <el-col :span="5">
20 <el-form-item label="航班号" prop="flightNo" label-width="70px"> 20 <el-form-item label="航班号" prop="flightNo" label-width="70px">
21 <el-input v-model="queryConfigure.flightNo" style="width:120px"></el-input> 21 <el-input v-model="queryConfigure.flightNo" style="width:120px"></el-input>
22 </el-form-item> 22 </el-form-item>
23 </el-col> 23 </el-col>
24 <el-col :span="8" > 24 <el-col :span="8" >
25 - <el-button type="primary" icon="el-icon-search" @click="submitForm()">查询</el-button>  
26 - <el-button type="success" icon="el-icon-edit" @click="addForm()">新增</el-button> 25 + <el-button type="primary" @click="submitForm()">查询</el-button>
  26 + <el-button type="success" @click="addForm()">新增</el-button>
27 27
28 </el-col> 28 </el-col>
29 </el-row> 29 </el-row>
@@ -36,32 +36,19 @@ @@ -36,32 +36,19 @@
36 :data="tableData" 36 :data="tableData"
37 border 37 border
38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px"> 38 v-loading="tableloading" style="margin-bottom: 20px;margin-top: 20px">
39 - <el-table-column 39 + <!--<el-table-column
40 prop="awcd" 40 prop="awcd"
41 label="承运人"> 41 label="承运人">
42 - </el-table-column> 42 + </el-table-column>-->
43 <el-table-column 43 <el-table-column
44 prop="flightNo" 44 prop="flightNo"
45 label="航班号"> 45 label="航班号">
46 </el-table-column> 46 </el-table-column>
47 <el-table-column 47 <el-table-column
48 - prop="customscode"  
49 - label="申报关区">  
50 - </el-table-column>  
51 - <el-table-column  
52 prop="aircraftNo" 48 prop="aircraftNo"
53 label="航空注册器编号"> 49 label="航空注册器编号">
54 </el-table-column> 50 </el-table-column>
55 <el-table-column 51 <el-table-column
56 - prop="transportflag"  
57 - label="航空器备案类型"  
58 - show-overflow-tooltip>  
59 - </el-table-column>  
60 - <el-table-column  
61 - prop="aircraftstand"  
62 - label="停机位">  
63 - </el-table-column>  
64 - <el-table-column  
65 prop="departurePort" 52 prop="departurePort"
66 label="航班起始站"> 53 label="航班起始站">
67 </el-table-column> 54 </el-table-column>
@@ -70,16 +57,37 @@ @@ -70,16 +57,37 @@
70 label="航班目的站"> 57 label="航班目的站">
71 </el-table-column> 58 </el-table-column>
72 <el-table-column 59 <el-table-column
  60 + prop="customscode"
  61 + label="申报关区">
  62 + </el-table-column>
  63 + <el-table-column
  64 + label="配置类型">
  65 + <template slot-scope="scope">
  66 + <span v-if="scope.row.type ==='2'">入境</span>
  67 + <span v-if="scope.row.type ==='1'">出境</span>
  68 + </template>
  69 + </el-table-column>
  70 + <!--<el-table-column
  71 + prop="transportflag"
  72 + label="航空器备案类型"
  73 + show-overflow-tooltip>
  74 + </el-table-column>-->
  75 + <!--<el-table-column
  76 + prop="aircraftstand"
  77 + label="停机位">
  78 + </el-table-column>-->
  79 + <el-table-column
73 prop="departuredatetime" 80 prop="departuredatetime"
74 label="预计出境时间"> 81 label="预计出境时间">
75 </el-table-column> 82 </el-table-column>
76 <el-table-column 83 <el-table-column
77 prop="arrivaldatetime" 84 prop="arrivaldatetime"
78 label="预计入境时间"> 85 label="预计入境时间">
79 - </el-table-column><el-table-column 86 + </el-table-column>
  87 + <!--<el-table-column
80 prop="validtime" 88 prop="validtime"
81 label="配置生效到期日"> 89 label="配置生效到期日">
82 - </el-table-column> 90 + </el-table-column>-->
83 <el-table-column 91 <el-table-column
84 label="配置状态"> 92 label="配置状态">
85 <template slot-scope="scope"> 93 <template slot-scope="scope">
@@ -87,14 +95,8 @@ @@ -87,14 +95,8 @@
87 <span v-if="scope.row.status ==='1'">生效</span> 95 <span v-if="scope.row.status ==='1'">生效</span>
88 </template> 96 </template>
89 </el-table-column> 97 </el-table-column>
90 - <el-table-column  
91 - label="配置类型">  
92 - <template slot-scope="scope">  
93 - <span v-if="scope.row.type ==='2'">入境</span>  
94 - <span v-if="scope.row.type ==='1'">出境</span>  
95 - </template>  
96 - </el-table-column>  
97 - <el-table-column 98 +
  99 + <!--<el-table-column
98 prop="userid" 100 prop="userid"
99 label="创建人"> 101 label="创建人">
100 </el-table-column> 102 </el-table-column>
@@ -109,12 +111,12 @@ @@ -109,12 +111,12 @@
109 <el-table-column 111 <el-table-column
110 prop="meno" 112 prop="meno"
111 label="备注"> 113 label="备注">
112 - </el-table-column> 114 + </el-table-column>-->
113 <el-table-column 115 <el-table-column
114 fixed="right" 116 fixed="right"
115 prop="" 117 prop=""
116 - label="报文操作"  
117 - width="280"> 118 + label="信息操作"
  119 + width="180">
118 <template slot-scope="scope"> 120 <template slot-scope="scope">
119 <el-button 121 <el-button
120 size="mini" 122 size="mini"
@@ -174,9 +176,12 @@ @@ -174,9 +176,12 @@
174 <el-row> 176 <el-row>
175 <el-col :span="6"> 177 <el-col :span="6">
176 <el-form-item label="航空器备案类型" prop="transportflag" label-width="140px"> 178 <el-form-item label="航空器备案类型" prop="transportflag" label-width="140px">
177 - <el-input v-model="configure_addForm.transportflag"  
178 - ></el-input> 179 + <el-select v-model="configure_addForm.transportflag" placeholder="请选择">
  180 + <el-option label="通用航空器" value="1"></el-option>
  181 + <el-option label="航线航空器" value="2"></el-option>
  182 + </el-select>
179 </el-form-item> 183 </el-form-item>
  184 +
180 </el-col> 185 </el-col>
181 <el-col :span="6"> 186 <el-col :span="6">
182 <el-form-item label="停机位" prop="aircraftstand" label-width="120px"> 187 <el-form-item label="停机位" prop="aircraftstand" label-width="120px">
@@ -201,8 +206,8 @@ @@ -201,8 +206,8 @@
201 v-model="configure_addForm.departuredatetime" 206 v-model="configure_addForm.departuredatetime"
202 type="datetime" 207 type="datetime"
203 placeholder="选择日期时间" 208 placeholder="选择日期时间"
204 - value-format="yyyyMMddhhmmss"  
205 - format="yyyyMMddhhmmss" 209 + value-format="yyyy-MM-dd HH:mm:ss"
  210 + format="yyyy-MM-dd HH:mm:ss"
206 style="width:100%"> 211 style="width:100%">
207 </el-date-picker> 212 </el-date-picker>
208 </el-form-item> 213 </el-form-item>
@@ -213,8 +218,8 @@ @@ -213,8 +218,8 @@
213 v-model="configure_addForm.arrivaldatetime" 218 v-model="configure_addForm.arrivaldatetime"
214 type="datetime" 219 type="datetime"
215 placeholder="选择日期时间" 220 placeholder="选择日期时间"
216 - value-format="yyyyMMddhhmmss"  
217 - format="yyyyMMddhhmmss" 221 + value-format="yyyy-MM-dd HH:mm:ss"
  222 + format="yyyy-MM-dd HH:mm:ss"
218 style="width:100%"> 223 style="width:100%">
219 </el-date-picker> 224 </el-date-picker>
220 </el-form-item> 225 </el-form-item>
@@ -225,18 +230,18 @@ @@ -225,18 +230,18 @@
225 v-model="configure_addForm.validtime" 230 v-model="configure_addForm.validtime"
226 type="datetime" 231 type="datetime"
227 placeholder="选择日期时间" 232 placeholder="选择日期时间"
228 - value-format="yyyyMMddhhmmss"  
229 - format="yyyyMMddhhmmss" 233 + value-format="yyyy-MM-dd HH:mm:ss"
  234 + format="yyyy-MM-dd HH:mm:ss"
230 style="width: 100%" 235 style="width: 100%"
231 :picker-options="pickerOptions"> 236 :picker-options="pickerOptions">
232 </el-date-picker> 237 </el-date-picker>
233 </el-form-item> 238 </el-form-item>
234 </el-col> 239 </el-col>
235 - <el-col :span="6"> 240 + <!--<el-col :span="6">
236 <el-form-item label="创建人" prop="userid" label-width="120px"> 241 <el-form-item label="创建人" prop="userid" label-width="120px">
237 <el-input v-model="configure_addForm.userid"></el-input> 242 <el-input v-model="configure_addForm.userid"></el-input>
238 </el-form-item> 243 </el-form-item>
239 - </el-col> 244 + </el-col>-->
240 245
241 <el-col :span="6"> 246 <el-col :span="6">
242 <el-form-item label="配置类型" prop="type" label-width="120px"> 247 <el-form-item label="配置类型" prop="type" label-width="120px">
@@ -256,7 +261,7 @@ @@ -256,7 +261,7 @@
256 </el-select> 261 </el-select>
257 </el-form-item> 262 </el-form-item>
258 </el-col> 263 </el-col>
259 - <el-col :span="6"> 264 + <!--<el-col :span="6">
260 <el-form-item label="创建时间" prop="creatdate" label-width="120px"> 265 <el-form-item label="创建时间" prop="creatdate" label-width="120px">
261 <el-date-picker 266 <el-date-picker
262 v-model="configure_addForm.creatdate" 267 v-model="configure_addForm.creatdate"
@@ -281,9 +286,7 @@ @@ -281,9 +286,7 @@
281 :picker-options="pickerOptions"> 286 :picker-options="pickerOptions">
282 </el-date-picker> 287 </el-date-picker>
283 </el-form-item> 288 </el-form-item>
284 - </el-col>  
285 - </el-row>  
286 - <el-row> 289 + </el-col>-->
287 <el-col :span="12"> 290 <el-col :span="12">
288 <el-form-item label="星期日期" prop="schedule.options" label-width="120px"> 291 <el-form-item label="星期日期" prop="schedule.options" label-width="120px">
289 <el-select v-model="configure_addForm.schedule.options" multiple placeholder="请选择(可多选)" style="width: 100%"> 292 <el-select v-model="configure_addForm.schedule.options" multiple placeholder="请选择(可多选)" style="width: 100%">
@@ -296,11 +299,6 @@ @@ -296,11 +299,6 @@
296 </el-select> 299 </el-select>
297 </el-form-item> 300 </el-form-item>
298 </el-col> 301 </el-col>
299 - <el-col :span="12">  
300 - <el-form-item label="备注" prop="meno" label-width="120px">  
301 - <el-input v-model="configure_addForm.meno"></el-input>  
302 - </el-form-item>  
303 - </el-col>  
304 </el-row> 302 </el-row>
305 303
306 </el-form> 304 </el-form>
@@ -377,15 +375,15 @@ @@ -377,15 +375,15 @@
377 flightNo:'', 375 flightNo:'',
378 customscode:'', 376 customscode:'',
379 aircraftNo:'', 377 aircraftNo:'',
380 - transportflag:'', 378 + transportflag:'1',
381 aircraftstand:'', 379 aircraftstand:'',
382 departurePort:'', 380 departurePort:'',
383 arrivalPort:'', 381 arrivalPort:'',
384 departuredatetime:'', 382 departuredatetime:'',
385 arrivaldatetime:'', 383 arrivaldatetime:'',
386 validtime:'', 384 validtime:'',
387 - status:'',  
388 - type:'', 385 + status:'1',
  386 + type:'2',
389 userid:'', 387 userid:'',
390 creatdate:'', 388 creatdate:'',
391 updatedate:'', 389 updatedate:'',
@@ -454,21 +452,12 @@ @@ -454,21 +452,12 @@
454 validtime: [ 452 validtime: [
455 { required: true, message: '请输入', trigger: 'change' } 453 { required: true, message: '请输入', trigger: 'change' }
456 ], 454 ],
457 - userid: [  
458 - { required: true, message: '请输入', trigger: 'change' }  
459 - ],  
460 type: [ 455 type: [
461 { required: true, message: '请输入', trigger: 'change' } 456 { required: true, message: '请输入', trigger: 'change' }
462 ], 457 ],
463 status: [ 458 status: [
464 { required: true, message: '请输入', trigger: 'change' } 459 { required: true, message: '请输入', trigger: 'change' }
465 ], 460 ],
466 - creatdate: [  
467 - { required: true, message: '请输入', trigger: 'change' }  
468 - ],  
469 - updatedate: [  
470 - { required: true, message: '请输入', trigger: 'change' }  
471 - ],  
472 'schedule.options': [ 461 'schedule.options': [
473 { required: true, message: '请输入', trigger: 'change' } 462 { required: true, message: '请输入', trigger: 'change' }
474 ], 463 ],
@@ -490,7 +479,6 @@ @@ -490,7 +479,6 @@
490 const _this = this 479 const _this = this
491 selectPrePlanConfig(this.queryConfigure).then((response) => { 480 selectPrePlanConfig(this.queryConfigure).then((response) => {
492 const res = response.data 481 const res = response.data
493 - console.log(response.data)  
494 if (res.code !== '200') { 482 if (res.code !== '200') {
495 return _this.$message.error('获取消息收发记录,失败!') 483 return _this.$message.error('获取消息收发记录,失败!')
496 } 484 }
@@ -519,7 +507,6 @@ @@ -519,7 +507,6 @@
519 this.$refs.configure_addForm.validate(valid => { 507 this.$refs.configure_addForm.validate(valid => {
520 // 未通过,表单预校验 508 // 未通过,表单预校验
521 if (!valid) return 509 if (!valid) return
522 - console.log(this.configure_addForm);  
523 addPrePlanConfig(this.configure_addForm).then((response) => { 510 addPrePlanConfig(this.configure_addForm).then((response) => {
524 const res = response.data 511 const res = response.data
525 // 添加失败 512 // 添加失败
@@ -541,7 +528,6 @@ @@ -541,7 +528,6 @@
541 // 打开编辑 528 // 打开编辑
542 handleEdit(index, row) { 529 handleEdit(index, row) {
543 this.configure_addForm = Object.assign({}, row); 530 this.configure_addForm = Object.assign({}, row);
544 - console.log(this.configure_addForm)  
545 this.configure_addForm.schedule.options=[]; 531 this.configure_addForm.schedule.options=[];
546 for(var obj in row.schedulelist){ 532 for(var obj in row.schedulelist){
547 console.log(this.configure_addForm.schedule.options.push(row.schedulelist[obj]['weekday'])) 533 console.log(this.configure_addForm.schedule.options.push(row.schedulelist[obj]['weekday']))
@@ -109,7 +109,7 @@ @@ -109,7 +109,7 @@
109 </el-col> 109 </el-col>
110 <el-col :span="8" style="margin-left: 120px"> 110 <el-col :span="8" style="margin-left: 120px">
111 <el-button type="primary" @click="submitForm('airline')">保 存</el-button> 111 <el-button type="primary" @click="submitForm('airline')">保 存</el-button>
112 - <el-button type="success">保存并发送</el-button> 112 + <!--<el-button type="success">保存并发送</el-button>-->
113 </el-col> 113 </el-col>
114 </el-form> 114 </el-form>
115 </el-row> 115 </el-row>
@@ -296,13 +296,15 @@ @@ -296,13 +296,15 @@
296 addRoute(this.airline).then(res=>{ 296 addRoute(this.airline).then(res=>{
297 let response=res.data; 297 let response=res.data;
298 if(response.code=='200'){ 298 if(response.code=='200'){
299 - this.centerDialogVisible=true;  
300 - this.msg=response.msg; 299 + //this.centerDialogVisible=true;
  300 + //this.msg=response.msg;
301 this.$router.push({path:'/queryRoute',query:{serialNo:this.airline.serialNo}}); 301 this.$router.push({path:'/queryRoute',query:{serialNo:this.airline.serialNo}});
302 - this.centerDialogVisible=false; 302 + //this.centerDialogVisible=false;
  303 + this.$message.success(response.msg)
303 }else{ 304 }else{
304 - this.centerDialogVisible=true;  
305 - this.msg=response.msg; 305 + //this.centerDialogVisible=true;
  306 + //this.msg=response.msg;
  307 + this.$message.error(response.msg)
306 } 308 }
307 }); 309 });
308 } else { 310 } else {
@@ -346,7 +348,7 @@ @@ -346,7 +348,7 @@
346 }, 348 },
347 349
348 //渲染方法 350 //渲染方法
349 - mounted(){ 351 + activated(){
350 this.defaultData(); 352 this.defaultData();
351 } 353 }
352 } 354 }
@@ -279,11 +279,12 @@ @@ -279,11 +279,12 @@
279 addAirLineAircraft(this.aircraft).then(res=>{ 279 addAirLineAircraft(this.aircraft).then(res=>{
280 let response=res.data; 280 let response=res.data;
281 if(response.code=='200'){ 281 if(response.code=='200'){
282 - this.centerDialogVisible=true;  
283 - this.msg=response.msg; 282 + //this.centerDialogVisible=true;
  283 + //this.msg=response.msg;
284 this.$router.push({path:'/queryRouteaircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo},}); 284 this.$router.push({path:'/queryRouteaircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo},});
  285 + this.$message.success(response.msg)
285 }else{ 286 }else{
286 - this.msg=response.msg; 287 + this.$message.error(response.msg)
287 } 288 }
288 }); 289 });
289 } else { 290 } else {
@@ -300,11 +301,12 @@ @@ -300,11 +301,12 @@
300 sendAirLineAircraft(this.aircraft).then(res=>{ 301 sendAirLineAircraft(this.aircraft).then(res=>{
301 let response=res.data; 302 let response=res.data;
302 if(response.code=='200'){ 303 if(response.code=='200'){
303 - this.centerDialogVisible=true;  
304 - this.msg=response.msg; 304 + //this.centerDialogVisible=true;
  305 + //this.msg=response.msg;
305 this.$router.push({path:'/queryRouteaircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo},}); 306 this.$router.push({path:'/queryRouteaircraft',query:{airwayCode:this.aircraft.airwayCode,aircraftNo:this.aircraft.aircraftNo},});
  307 + this.$message.success(response.msg)
306 }else{ 308 }else{
307 - this.msg=response.msg; 309 + this.$message.error(response.msg)
308 } 310 }
309 }); 311 });
310 } else { 312 } else {
@@ -325,7 +327,7 @@ @@ -325,7 +327,7 @@
325 } 327 }
326 328
327 }, 329 },
328 - mounted(){ 330 + activated(){
329 this.defaultData(); 331 this.defaultData();
330 } 332 }
331 } 333 }
  1 +<template>
  2 + <div>
  3 + <el-row :gutter="10">
  4 + <el-col :span="4">
  5 + <el-input
  6 + placeholder="航空器注册编号"
  7 + v-model="query.aircraftNo"
  8 + size="medium"
  9 + clearable>
  10 + </el-input>
  11 + </el-col>
  12 + <el-col :span="4">
  13 + <el-input
  14 + placeholder="进出境航班号"
  15 + v-model="query.flightNo"
  16 + size="medium"
  17 + clearable>
  18 + </el-input>
  19 + </el-col>
  20 + <el-col :span="8">
  21 + <div class="block">
  22 + <el-date-picker
  23 + v-model="flightdate"
  24 + type="daterange"
  25 + :picker-options="pickerOptions"
  26 + range-separator="至"
  27 + start-placeholder="开始日期"
  28 + end-placeholder="结束日期"
  29 + value-format="yyyy-MM-dd"
  30 + size="medium"
  31 + align="right">
  32 + </el-date-picker>
  33 + </div>
  34 + </el-col>
  35 + <el-col :span="6">
  36 + <el-select v-model="query.customDistrictNo"
  37 + filterable
  38 + allow-create
  39 + default-first-option
  40 + remote
  41 + :remote-method="getCustomCode"
  42 + size="medium"
  43 + :loading="loading" placeholder="海关关区">
  44 + <el-option
  45 + v-for="item in customcodes"
  46 + :key="item.customcode"
  47 + :label="item.customcode"
  48 + :value="item.customcode">
  49 + <span style="float: left">{{ item.customcode }}</span>
  50 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  51 + </el-option>
  52 + </el-select>
  53 + </el-col>
  54 + </el-row>
  55 + <el-row :gutter="10">
  56 + <el-col :span="4">
  57 + <el-select v-model="query.accessFlag" size="medium" placeholder="请选择">
  58 + <el-option label="进境" value="0"></el-option>
  59 + <el-option label="出境" value="1"></el-option>
  60 + </el-select>
  61 + </el-col>
  62 + <el-col :span="4">
  63 + <el-select v-model="query.yqtype" size="medium" placeholder="请选择">
  64 + <el-option label="预报" value="Y"></el-option>
  65 + <el-option label="确报" value="Q"></el-option>
  66 + </el-select>
  67 + </el-col>
  68 + <el-col :span="2">
  69 + <el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
  70 + </el-col>
  71 + <el-col :span="2">
  72 + <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
  73 + </el-col>
  74 + </el-row>
  75 + <el-row :gutter="10">
  76 + <el-table
  77 + :data="tableData"
  78 + border
  79 + style="width: 100%">
  80 + <el-table-column
  81 + fixed="left"
  82 + label="信息操作"
  83 + width="100">
  84 + <template slot-scope="scope">
  85 + <el-button @click="handleClick(scope.row)" type="text" size="small">编辑</el-button>
  86 + </template>
  87 + </el-table-column>
  88 + <el-table-column
  89 + prop="messageid"
  90 + label="编号"
  91 + width="240">
  92 + </el-table-column>
  93 + <el-table-column
  94 + prop="aircraftNo"
  95 + label="航空器注册编号"
  96 + width="110">
  97 + </el-table-column>
  98 + <el-table-column
  99 + prop="flightNo"
  100 + label="进出境航班号"
  101 + width="120">
  102 + </el-table-column>
  103 + <el-table-column
  104 + prop="flightDate"
  105 + label="航班日期"
  106 + width="120">
  107 + </el-table-column>
  108 + <el-table-column
  109 + label="进出类型"
  110 + width="120">
  111 + <template slot-scope="scope">
  112 + {{ scope.row.accessFlag === '0' ? '进境' : '出境' }}
  113 + </template>
  114 + </el-table-column>
  115 + <el-table-column
  116 + label="申报类型"
  117 + width="120">
  118 + <template slot-scope="scope">
  119 + {{ scope.row.yqtype === 'Y' ? '预报' : '确报' }}
  120 + </template>
  121 + </el-table-column>
  122 + <el-table-column
  123 + label="进出境时间"
  124 + width="120">
  125 + <template slot-scope="scope">
  126 + <span v-if="scope.row.accessFlag === '0'">{{ scope.row.arrivaldatetime }}</span>
  127 + <span v-else>{{ scope.row.departuredatetime }}</span>
  128 + </template>
  129 + </el-table-column>
  130 + <el-table-column
  131 + prop="arrivalPort"
  132 + label="目的港"
  133 + width="120">
  134 + </el-table-column>
  135 + <el-table-column
  136 + prop="statusMsg"
  137 + label="海关状态"
  138 + width="120">
  139 + </el-table-column>
  140 + <el-table-column
  141 + fixed="right"
  142 + label="操作"
  143 + width="220">
  144 + <template slot-scope="scope">
  145 + <el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
  146 + <el-button @click="sendpre(scope.row,2)" type="text" size="small">申报</el-button>
  147 + <el-button @click="sendpre(scope.row,5)" type="text" size="small">修改</el-button>
  148 + <el-button @click="sendpre(scope.row,3)" type="text" size="small">删除</el-button>
  149 + <el-button @click="cancleSB(scope.row)" type="text" size="small">取消</el-button>
  150 + </template>
  151 + </el-table-column>
  152 + </el-table>
  153 + </el-row>
  154 + <el-row :gutter="10">
  155 + <div class="block">
  156 + <el-pagination
  157 + @size-change="handleSizeChange"
  158 + @current-change="handleCurrentChange"
  159 + :current-page="query.pageNum"
  160 + :page-sizes="[10, 20, 30, 40]"
  161 + :page-size="query.pageSize"
  162 + layout="total, sizes, prev, pager, next, jumper"
  163 + :total="total">
  164 + </el-pagination>
  165 + </div>
  166 + </el-row>
  167 + <el-row>
  168 + <el-dialog
  169 + :title="'预确报信息'+textMap[dialogStatus]"
  170 + :visible.sync="dialogVisible"
  171 + width="80%"
  172 + center>
  173 + <el-form :model="form" :rules="rules" ref="form" label-width="130px">
  174 + <el-divider content-position="left"><span style="color: #1d8ce0">报给单位</span></el-divider>
  175 + <el-row :gutter="20">
  176 + <el-col :span="6">
  177 + <el-form-item label="海关关区" prop="customDistrictNo">
  178 + <el-select v-model="form.customDistrictNo"
  179 + filterable
  180 + allow-create
  181 + default-first-option
  182 + remote
  183 + :remote-method="getCustomCode2"
  184 + :loading="loading" placeholder="请选择">
  185 + <el-option
  186 + v-for="item in customcodes2"
  187 + :key="item.customcode"
  188 + :label="item.customcode"
  189 + :value="item.customcode">
  190 + <span style="float: left">{{ item.customcode }}</span>
  191 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  192 + </el-option>
  193 + </el-select>
  194 + </el-form-item>
  195 + </el-col>
  196 + <el-col :span="6">
  197 + <el-form-item label="进出类型" prop="accessFlag">
  198 + <el-select v-model="form.accessFlag" placeholder="请选择">
  199 + <el-option label="进境" value="0"></el-option>
  200 + <el-option label="出境" value="1"></el-option>
  201 + </el-select>
  202 + </el-form-item>
  203 + </el-col>
  204 + <el-col :span="6">
  205 + <el-form-item label="申报类型" prop="yqtype">
  206 + <el-select v-model="form.yqtype" placeholder="请选择">
  207 + <el-option label="预报" value="Y"></el-option>
  208 + <el-option label="确报" value="Q"></el-option>
  209 + </el-select>
  210 + </el-form-item>
  211 + </el-col>
  212 + </el-row>
  213 + <el-divider content-position="left"><span style="color: #1d8ce0">航空器信息</span></el-divider>
  214 + <el-row :gutter="20">
  215 + <el-col :span="6">
  216 + <el-form-item label="航空器注册编号" prop="aircraftno">
  217 + <el-input v-model="form.aircraftNo"></el-input>
  218 + </el-form-item>
  219 + </el-col>
  220 + <el-col :span="6">
  221 + <el-form-item label="注册海关关区" prop="costomcode">
  222 + <el-select v-model="form.costomcode"
  223 + filterable
  224 + allow-create
  225 + default-first-option
  226 + remote
  227 + :remote-method="getCustomCode3"
  228 + :loading="loading" placeholder="请选择">
  229 + <el-option
  230 + v-for="item in customcodes3"
  231 + :key="item.customcode"
  232 + :label="item.customcode"
  233 + :value="item.customcode">
  234 + <span style="float: left">{{ item.customcode }}</span>
  235 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  236 + </el-option>
  237 + </el-select>
  238 + </el-form-item>
  239 + </el-col>
  240 + <el-col :span="6">
  241 + <el-form-item label="航空器备案类型" prop="aircrafttype">
  242 + <el-select v-model="form.aircrafttype" placeholder="请选择">
  243 + <el-option label="通用航空器" value="1"></el-option>
  244 + <el-option label="航线航空器" value="2"></el-option>
  245 + </el-select>
  246 + </el-form-item>
  247 + </el-col>
  248 + </el-row>
  249 + <el-divider content-position="left"><span style="color: #1d8ce0">航班信息</span></el-divider>
  250 + <el-row :gutter="20">
  251 + <el-col :span="6">
  252 + <el-form-item label="进出境航班号" prop="flightNo">
  253 + <el-input v-model="form.flightNo"></el-input>
  254 + </el-form-item>
  255 + </el-col>
  256 + <el-col :span="6">
  257 + <el-form-item label="航班日期" prop="flightDate" style="width: 100%;">
  258 + <div class="block">
  259 + <el-date-picker
  260 + v-model="form.flightDate"
  261 + value-format="yyyy-MM-dd"
  262 + type="date"
  263 + placeholder="选择日期"
  264 + style="width: 100%;"
  265 + ></el-date-picker>
  266 + </div>
  267 + </el-form-item>
  268 + </el-col>
  269 + <el-col :span="6">
  270 + <el-form-item label="停机位" prop="stayid">
  271 + <el-input v-model="form.stayid"></el-input>
  272 + </el-form-item>
  273 + </el-col>
  274 + <el-col :span="6">
  275 + <el-form-item label="出发港" prop="departurePort" style="width: 100%;">
  276 + <el-select v-model="form.departurePort"
  277 + filterable
  278 + allow-create
  279 + default-first-option
  280 + remote
  281 + :remote-method="getAirportCode"
  282 + :loading="loading" placeholder="请选择">
  283 + <el-option
  284 + v-for="item in airportcodes"
  285 + :key="item.airportid"
  286 + :label="item.airportid"
  287 + :value="item.airportid">
  288 + <span style="float: left">{{ item.airportid }}</span>
  289 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  290 + </el-option>
  291 + </el-select>
  292 + </el-form-item>
  293 + </el-col>
  294 + <el-col :span="6">
  295 + <el-form-item label="目的港" prop="arrivalPort" style="width: 100%;">
  296 + <el-select v-model="form.arrivalPort"
  297 + filterable
  298 + allow-create
  299 + default-first-option
  300 + remote
  301 + :remote-method="getAirportCode2"
  302 + :loading="loading" placeholder="请选择">
  303 + <el-option
  304 + v-for="item in airportcodes2"
  305 + :key="item.airportid"
  306 + :label="item.airportid"
  307 + :value="item.airportid">
  308 + <span style="float: left">{{ item.airportid }}</span>
  309 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  310 + </el-option>
  311 + </el-select>
  312 + </el-form-item>
  313 + </el-col>
  314 + <el-col :span="6">
  315 + <el-form-item label="出境时间" prop="departuredatetime" style="width: 100%;">
  316 + <el-date-picker
  317 + v-model="form.departuredatetime"
  318 + type="datetime"
  319 + value-format="yyyy-MM-dd HH:mm:ss"
  320 + placeholder="yyyy-MM-dd HH:mm:ss"
  321 + style="width: 100%;">
  322 + </el-date-picker>
  323 + </el-form-item>
  324 + </el-col>
  325 + <el-col :span="6">
  326 + <el-form-item label="进境时间" prop="arrivaldatetime" style="width: 100%;">
  327 + <el-date-picker
  328 + v-model="form.arrivaldatetime"
  329 + type="datetime"
  330 + value-format="yyyy-MM-dd HH:mm:ss"
  331 + placeholder="yyyy-MM-dd HH:mm:ss"
  332 + style="width: 100%;">
  333 + </el-date-picker>
  334 + </el-form-item>
  335 + </el-col>
  336 + </el-row>
  337 + <el-divider content-position="left"><span style="color: #1d8ce0">海关备注</span></el-divider>
  338 + <el-row :gutter="20">
  339 + <el-col :span="12">
  340 + <el-form-item label="海关备注">
  341 + <el-input v-model="form.meno"></el-input>
  342 + </el-form-item>
  343 + </el-col>
  344 + </el-row>
  345 + <el-divider></el-divider>
  346 + <el-row :gutter="20">
  347 + <el-col :span="12" :offset="6">
  348 + <el-form-item>
  349 + <el-button @click="dialogVisible=false">取消</el-button>
  350 + <el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
  351 + </el-form-item>
  352 + </el-col>
  353 + </el-row>
  354 + </el-form>
  355 + </el-dialog>
  356 + </el-row>
  357 + <el-row :gutter="10">
  358 + <el-dialog
  359 + title="回执列表"
  360 + :visible.sync="returnVisible"
  361 + width="55%"
  362 + :before-close="handleClose">
  363 + <el-table :data="gridData">
  364 + <el-table-column property="sendtime" label="操作时间" ></el-table-column>
  365 + <el-table-column property="createBy" label="操作人" ></el-table-column>
  366 + <el-table-column property="flightNo" label="航班号"></el-table-column>
  367 + <el-table-column property="flightDate" label="航班日期" ></el-table-column>
  368 + <el-table-column property="receiptContent" label="回执内容" ></el-table-column>
  369 + </el-table>
  370 + </el-dialog>
  371 + </el-row>
  372 + <el-row>
  373 + <el-dialog title="航班取消申报" :visible.sync="dialogFormVisible">
  374 + <el-form :model="cancleForm">
  375 + <el-form-item label="取消原因" label-width="130px">
  376 + <el-input v-model="cancleForm.content" autocomplete="off"></el-input>
  377 + </el-form-item>
  378 + </el-form>
  379 + <div slot="footer" class="dialog-footer">
  380 + <el-button @click="dialogFormVisible = false">取 消</el-button>
  381 + <el-button type="primary" @click="canclesendpre">确 定</el-button>
  382 + </div>
  383 + </el-dialog>
  384 + </el-row>
  385 + </div>
  386 +</template>
  387 +<script>
  388 + import {
  389 + selectByairportcode,
  390 + selectBycustomcode,
  391 + selectPreList,
  392 + insertSelectivePre,
  393 + updateByPrimaryKeySelectivePre, selectReturnMsgList, canclePre,sendPrediction
  394 + } from "../../api/transport/transport2.0";
  395 +
  396 + export default {
  397 + data(){
  398 + return{
  399 + cancleForm:{
  400 + content:''
  401 + },
  402 + dialogFormVisible:false,
  403 + textMap:{
  404 + update: '编辑',
  405 + create: '新增'
  406 + },
  407 + dialogStatus:'',
  408 + dialogVisible:false,
  409 + form: {
  410 + uuid: '', // 唯一标识符
  411 + awcd: '', // 不知道具体含义,根据业务需求填充
  412 + aircraftNo: '', // 飞机编号
  413 + flightNo: '', // 航班号
  414 + flightDate: '', // 航班日期
  415 + departurePort: '', // 出发港
  416 + arrivalPort: '', // 到达港
  417 + departuredatetime: '', // 出发日期时间
  418 + departuredate: '', // 出发日期
  419 + stayid: '', // 停留ID
  420 + departureconveyancefacility: '', // 出发运输设施
  421 + arrivalconveyancefacility: '', // 到达运输设施
  422 + arrivaldatetime: '', // 到达日期时间
  423 + arrivaldate: '', // 到达日期
  424 + dischargecompleteddatetime: '', // 卸载完成日期时间
  425 + transportflag: '', // 运输标志
  426 + customDistrictNo: '', // 海关区号
  427 + cancelFlag: '', // 取消标志
  428 + accessFlag: '0', // 访问标志
  429 + meno: '', // 备注
  430 + createTime: '', // 创建时间
  431 + createBy: '', // 创建人
  432 + updateTime: '', // 更新时间
  433 + updateBy: '', // 更新人
  434 + isDelete: '0', // 是否删除
  435 + status: '', // 状态
  436 + statusMsg: '', // 状态信息
  437 + messageid: '', // 消息ID
  438 + yqtype: 'Y', // 不知道具体含义,根据业务需求填充
  439 + costomcode:'',
  440 + aircrafttype:'1',
  441 + content:''
  442 + },
  443 + tableData:[],
  444 + total:0,
  445 + query:{
  446 + aircraftNo:'',
  447 + flightNo:'',
  448 + starttime:'',
  449 + endtime:'',
  450 + customDistrictNo:'',
  451 + accessFlag:'',
  452 + yqtype:'',
  453 + pageNum:0,
  454 + pageSize:10
  455 + },
  456 + customcodes:[],
  457 + customcodes2:[],
  458 + customcodes3:[],
  459 + airportcodes:[],
  460 + airportcodes2:[],
  461 + loading:false,
  462 + flightdate:[],
  463 + pickerOptions: {
  464 + shortcuts: [{
  465 + text: '最近一周',
  466 + onClick(picker) {
  467 + const end = new Date();
  468 + const start = new Date();
  469 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  470 + picker.$emit('pick', [start, end]);
  471 + }
  472 + }, {
  473 + text: '最近一个月',
  474 + onClick(picker) {
  475 + const end = new Date();
  476 + const start = new Date();
  477 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  478 + picker.$emit('pick', [start, end]);
  479 + }
  480 + }, {
  481 + text: '最近三个月',
  482 + onClick(picker) {
  483 + const end = new Date();
  484 + const start = new Date();
  485 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  486 + picker.$emit('pick', [start, end]);
  487 + }
  488 + }]
  489 + },
  490 + rules:{
  491 + aircraftNo: [
  492 + { required: true, message: '航空注册器编号不可为空', trigger: 'blur' }
  493 + ],
  494 + flightNo: [
  495 + { required: true, message: '航班号不可为空', trigger: 'blur' }
  496 + ],
  497 + flightDate: [
  498 + { required: true, message: '航班日期不可为空', trigger: 'blur' }
  499 + ],
  500 + customDistrictNo: [
  501 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  502 + ],
  503 + costomcode: [
  504 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  505 + ],
  506 + aircrafttype: [
  507 + { required: true, message: '航空器备案类型不可为空', trigger: 'blur' }
  508 + ],
  509 + stayid: [
  510 + { required: true, message: '停机位不可为空', trigger: 'blur' }
  511 + ],
  512 + departurePort: [
  513 + { required: true, message: '出发港不可为空', trigger: 'blur' }
  514 + ],
  515 + arrivalPort: [
  516 + { required: true, message: '目的港不可为空', trigger: 'blur' }
  517 + ],
  518 + departuredatetime: [
  519 + { required: true, message: '出境不可为空', trigger: 'blur' }
  520 + ],
  521 + arrivaldatetime: [
  522 + { required: true, message: '进境不可为空', trigger: 'blur' }
  523 + ],
  524 + },
  525 + returnVisible:false,
  526 + gridData:[],
  527 + row2:undefined
  528 + }
  529 + },
  530 + methods:{
  531 + cancleSB(row){
  532 + this.dialogFormVisible=true;
  533 + this.row2=row;
  534 +
  535 + },
  536 + canclesendpre(row,FunctionCode){
  537 + this.row2.content=this.cancleForm.content;
  538 + const params = {
  539 + row: this.row2,
  540 + FunctionCode: 2
  541 + };
  542 + canclePre(params).then(res =>{
  543 + let response=res.data;
  544 + if(response.code=='200'){
  545 + this.dialogFormVisible=false;
  546 + this.selectList();
  547 + this.$message.success(response.msg)
  548 + }else{
  549 + this.$message.error(response.msg)
  550 + }
  551 + });
  552 + },
  553 + sendpre(row,FunctionCode){
  554 + //this.row2.content=this.cancleForm.content;
  555 + const params = {
  556 + row: row,
  557 + FunctionCode: FunctionCode
  558 + };
  559 + sendPrediction(params).then(res =>{
  560 + let response=res.data;
  561 + if(response.code=='200'){
  562 + this.dialogFormVisible=false;
  563 + this.selectList();
  564 + this.$message.success(response.msg)
  565 + }else{
  566 + this.$message.error(response.msg)
  567 + }
  568 + });
  569 + },
  570 +
  571 + handleClose() {
  572 + this.returnVisible=false;
  573 + },
  574 + //查询回执列表
  575 + returnlist(row){
  576 + this.gridData=[];
  577 + let params={messageid:row.messageid};
  578 + selectReturnMsgList(params).then(res=>{
  579 + let response=res.data.data;
  580 + this.gridData=response;
  581 + });
  582 + this.returnVisible=true;
  583 + },
  584 + createData(formName){
  585 + this.$refs[formName].validate((valid) => {
  586 + if (valid) {
  587 + insertSelectivePre(this.form).then(res =>{
  588 + let response=res.data;
  589 + if(response.code=='200'){
  590 + this.dialogVisible=false;
  591 + this.$message.success(response.msg);
  592 + this.selectList();
  593 + }else{
  594 + this.$message.error(response.msg)
  595 + }
  596 + });
  597 + } else {
  598 + return false;
  599 + }
  600 + });
  601 + },
  602 + updateData(formName){
  603 + this.$refs[formName].validate((valid) => {
  604 + if (valid) {
  605 + this.form.departuredatetime=this.form.arrivaldatetime;
  606 + this.form.departureAirport=this.form.arrivalAirport;
  607 + updateByPrimaryKeySelectivePre(this.form).then(res =>{
  608 + let response=res.data;
  609 + if(response.code=='200'){
  610 + this.dialogVisible=false;
  611 + Object.assign(this.$data, this.$options.data());
  612 + this.$message.success(response.msg);
  613 + this.getList();
  614 + }else{
  615 + this.$message.error(response.msg)
  616 + }
  617 + });
  618 + } else {
  619 + return false;
  620 + }
  621 + });
  622 + },
  623 + //获取关区代码
  624 + getCustomCode:function(query){
  625 + this.customcodes=[];
  626 + let params={customcode:query};
  627 + this.loading = true;
  628 + selectBycustomcode(params).then(res =>{
  629 + if (res !== '') {
  630 + setTimeout(() => {
  631 + this.loading = false;
  632 + this.customcodes=res.data.data;
  633 + }, 200);
  634 + } else {
  635 + this.customcodes = [];
  636 + }
  637 +
  638 + });
  639 + },
  640 + //获取关区代码
  641 + getCustomCode2:function(query){
  642 + this.customcodes2=[];
  643 + let params={customcode:query};
  644 + this.loading = true;
  645 + selectBycustomcode(params).then(res =>{
  646 + if (res !== '') {
  647 + setTimeout(() => {
  648 + this.loading = false;
  649 + this.customcodes2=res.data.data;
  650 + }, 200);
  651 + } else {
  652 + this.customcodes2 = [];
  653 + }
  654 +
  655 + });
  656 + },
  657 + //获取关区代码
  658 + getCustomCode3:function(query){
  659 + this.customcodes3=[];
  660 + let params={customcode:query};
  661 + this.loading = true;
  662 + selectBycustomcode(params).then(res =>{
  663 + if (res !== '') {
  664 + setTimeout(() => {
  665 + this.loading = false;
  666 + this.customcodes3=res.data.data;
  667 + }, 200);
  668 + } else {
  669 + this.customcodes3 = [];
  670 + }
  671 +
  672 + });
  673 + },
  674 + //获取机场代码
  675 + getAirportCode:function(query){
  676 + this.airportcodes=[];
  677 + let params={airportid:query};
  678 + this.loading = true;
  679 + selectByairportcode(params).then(res =>{
  680 + if (res !== '') {
  681 + setTimeout(() => {
  682 + this.loading = false;
  683 + this.airportcodes=res.data.data;
  684 + }, 200);
  685 + } else {
  686 + this.airportcodes = [];
  687 + }
  688 +
  689 + });
  690 + },
  691 + //获取机场代码
  692 + getAirportCode2:function(query){
  693 + this.airportcodes2=[];
  694 + let params={airportid:query};
  695 + this.loading = true;
  696 + selectByairportcode(params).then(res =>{
  697 + if (res !== '') {
  698 + setTimeout(() => {
  699 + this.loading = false;
  700 + this.airportcodes2=res.data.data;
  701 + }, 200);
  702 + } else {
  703 + this.airportcodes2 = [];
  704 + }
  705 +
  706 + });
  707 + },
  708 + selectList(){
  709 + if(this.flightdate !== null && this.flightdate !== ""){
  710 + this.query.starttime = this.flightdate[0];
  711 + this.query.endtime = this.flightdate[1];
  712 + }else{
  713 + return this.$message.error('请选取时间区间')
  714 + }
  715 + this.loading = true;
  716 + selectPreList(this.query).then((response) => {
  717 + const res = response.data
  718 + if (res.code !== '200') {
  719 + this.loading = false;
  720 + return this.$message.error('获取消息收发记录,失败!')
  721 + }
  722 + // 获取列表数据
  723 + this.tableData = res.data.list
  724 + // 获取列表的总记录数
  725 + this.total = res.data.total
  726 + this.loading = false;
  727 + this.$message.success('获取消息收发记录,成功!');
  728 + }).catch(error => {
  729 + // 关闭加载
  730 + this.$message.error(error.toString())
  731 + })
  732 + },
  733 + //新增
  734 + addForm(){
  735 + this.dialogVisible=true;
  736 + this.dialogStatus='create';
  737 + },
  738 + handleClick(row){
  739 + this.dialogVisible=true;
  740 + this.dialogStatus='update';
  741 + this.form=row;
  742 + },
  743 + //分页
  744 + handleSizeChange(val) {
  745 + this.query.pageSize=val;
  746 + this.selectList();
  747 + },
  748 + handleCurrentChange(val) {
  749 + this.query.pageNum=val;
  750 + this.selectList();
  751 + }
  752 + },
  753 + }
  754 +</script>
  1 +<template>
  2 + <div>
  3 + <el-row :gutter="10">
  4 + <el-col :span="4">
  5 + <el-input
  6 + placeholder="航空器注册编号"
  7 + v-model="query.aircraftno"
  8 + size="medium"
  9 + clearable>
  10 + </el-input>
  11 + </el-col>
  12 + <el-col :span="4">
  13 + <el-input
  14 + placeholder="进境(港)航班号"
  15 + v-model="query.flightno"
  16 + size="medium"
  17 + clearable>
  18 + </el-input>
  19 + </el-col>
  20 + <el-col :span="8">
  21 + <div class="block">
  22 + <el-date-picker
  23 + v-model="flightdate"
  24 + type="daterange"
  25 + :picker-options="pickerOptions"
  26 + range-separator="至"
  27 + start-placeholder="开始日期"
  28 + end-placeholder="结束日期"
  29 + value-format="yyyy-MM-dd"
  30 + size="medium"
  31 + align="right">
  32 + </el-date-picker>
  33 + </div>
  34 + </el-col>
  35 + <el-col :span="2">
  36 + <el-button size="medium" type="primary" @click="selectList" plain>查询</el-button>
  37 + </el-col>
  38 + <el-col :span="2">
  39 + <el-button size="medium" type="success" @click="addForm()" plain>新增</el-button>
  40 + </el-col>
  41 + </el-row>
  42 + <el-row :gutter="10">
  43 + <el-table
  44 + :data="tableData"
  45 + border
  46 + style="width: 100%">
  47 + <el-table-column
  48 + align="center"
  49 + fixed="left"
  50 + label="信息操作"
  51 + width="80">
  52 + <template slot-scope="scope">
  53 + <el-button @click="ediForm(scope.row)" type="text" size="small">编辑</el-button>
  54 + </template>
  55 + </el-table-column>
  56 + <el-table-column
  57 + prop="messageid"
  58 + label="编号"
  59 + width="320">
  60 + </el-table-column>
  61 + <el-table-column
  62 + prop="aircraftno"
  63 + label="航空器注册编号"
  64 + width="120">
  65 + </el-table-column>
  66 + <el-table-column
  67 + prop="flightno"
  68 + label="进境(港)航班号"
  69 + width="120">
  70 + </el-table-column>
  71 + <el-table-column
  72 + prop="callport"
  73 + label="停靠港"
  74 + width="120">
  75 + </el-table-column>
  76 + <el-table-column
  77 + prop="flightdate"
  78 + label="航班日期"
  79 + width="100">
  80 + </el-table-column>
  81 + <el-table-column
  82 + prop="statusmsg"
  83 + label="海关状态"
  84 + width="120">
  85 + </el-table-column>
  86 + <el-table-column
  87 + fixed="right"
  88 + label="操作"
  89 + width="200">
  90 + <template slot-scope="scope">
  91 + <el-button @click="returnlist(scope.row)" type="text" size="small">查看</el-button>
  92 + <el-button @click="sendstying(scope.row,2)" type="text" size="small">申报</el-button>
  93 + <el-button @click="sendstying(scope.row,5)" type="text" size="small">修改</el-button>
  94 + <el-button @click="sendstying(scope.row,3)" type="text" size="small">删除</el-button>
  95 + </template>
  96 + </el-table-column>
  97 + </el-table>
  98 + </el-row>
  99 + <el-row :gutter="10">
  100 + <div class="block">
  101 + <el-pagination
  102 + @size-change="handleSizeChange"
  103 + @current-change="handleCurrentChange"
  104 + :current-page="query.pageNum"
  105 + :page-sizes="[100, 200, 300, 400]"
  106 + :page-size="query.pageSize"
  107 + layout="total, sizes, prev, pager, next, jumper"
  108 + :total="total">
  109 + </el-pagination>
  110 + </div>
  111 + </el-row>
  112 + <el-dialog
  113 + :title="'在港信息'+textMap[dialogStatus]"
  114 + :visible.sync="dialogVisible"
  115 + width="80%"
  116 + center>
  117 + <el-form :model="form" :rules="rules" ref="form" label-width="130px">
  118 + <el-divider content-position="left"><span style="color: #1d8ce0">报给单位</span></el-divider>
  119 + <el-row :gutter="20">
  120 + <el-col :span="6">
  121 + <el-form-item label="海关关区" prop="customcode">
  122 + <el-select v-model="form.customcode"
  123 + filterable
  124 + allow-create
  125 + default-first-option
  126 + remote
  127 + :remote-method="getCustomCode"
  128 + :loading="loading" placeholder="请选择">
  129 + <el-option
  130 + v-for="item in customcodes"
  131 + :key="item.customcode"
  132 + :label="item.customcode"
  133 + :value="item.customcode">
  134 + <span style="float: left">{{ item.customcode }}</span>
  135 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  136 + </el-option>
  137 + </el-select>
  138 + </el-form-item>
  139 + </el-col>
  140 + </el-row>
  141 + <el-divider content-position="left"><span style="color: #1d8ce0">航空器信息</span></el-divider>
  142 + <el-row :gutter="20">
  143 + <el-col :span="6">
  144 + <el-form-item label="航空器注册编号" prop="aircraftno">
  145 + <el-input v-model="form.aircraftno"></el-input>
  146 + </el-form-item>
  147 + </el-col>
  148 + <el-col :span="6">
  149 + <el-form-item label="注册海关关区">
  150 + <el-select v-model="form.registeredcustom"
  151 + filterable
  152 + allow-create
  153 + default-first-option
  154 + remote
  155 + :remote-method="getCustomCode2"
  156 + :loading="loading" placeholder="请选择">
  157 + <el-option
  158 + v-for="item in customcodes2"
  159 + :key="item.customcode"
  160 + :label="item.customcode"
  161 + :value="item.customcode">
  162 + <span style="float: left">{{ item.customcode }}</span>
  163 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.customname }}</span>
  164 + </el-option>
  165 + </el-select>
  166 + </el-form-item>
  167 + </el-col>
  168 + <el-col :span="6">
  169 + <el-form-item label="航空器备案类型">
  170 + <el-select v-model="form.aircrafttype" placeholder="请选择">
  171 + <el-option label="通用航空器" value="1"></el-option>
  172 + <el-option label="航线航空器" value="2"></el-option>
  173 + </el-select>
  174 + </el-form-item>
  175 +
  176 + </el-col>
  177 + </el-row>
  178 + <el-divider content-position="left"><span style="color: #1d8ce0">在港申报信息</span></el-divider>
  179 + <el-row :gutter="20">
  180 + <el-col :span="6">
  181 + <el-form-item label="进境(港)航班号" prop="flightno">
  182 + <el-input v-model="form.flightno"></el-input>
  183 + </el-form-item>
  184 + </el-col>
  185 + <el-col :span="6">
  186 + <el-form-item label="航班日期" prop="flightdate" style="width: 100%;">
  187 + <div class="block">
  188 + <el-date-picker
  189 + v-model="form.flightdate"
  190 + value-format="yyyy-MM-dd"
  191 + type="date"
  192 + placeholder="选择日期"
  193 + style="width: 100%;"
  194 + ></el-date-picker>
  195 + </div>
  196 + </el-form-item>
  197 + </el-col>
  198 + <el-col :span="6">
  199 + <el-form-item label="停靠港" prop="callport" style="width: 100%;">
  200 + <el-select v-model="form.callport"
  201 + filterable
  202 + allow-create
  203 + default-first-option
  204 + remote
  205 + :remote-method="getAirportCode"
  206 + :loading="loading" placeholder="请选择">
  207 + <el-option
  208 + v-for="item in airportcodes"
  209 + :key="item.airportid"
  210 + :label="item.airportid"
  211 + :value="item.airportid">
  212 + <span style="float: left">{{ item.airportid }}</span>
  213 + <span style="float: right; color: #8492a6; font-size: 13px">-{{ item.airportname}}</span>
  214 + </el-option>
  215 + </el-select>
  216 + </el-form-item>
  217 + </el-col>
  218 + <el-col :span="6">
  219 + <el-form-item label="停机位" prop="callarea">
  220 + <el-input v-model="form.callarea"></el-input>
  221 + </el-form-item>
  222 + </el-col>
  223 + </el-row>
  224 + <el-divider content-position="left"><span style="color: #1d8ce0">备注信息</span></el-divider>
  225 + <el-row :gutter="20">
  226 + <el-col :span="6">
  227 + <el-form-item label="滞留原因">
  228 + <el-select v-model="form.reasons" placeholder="请选择">
  229 + <el-option label="移泊" value="1"></el-option>
  230 + <el-option label="待命" value="2"></el-option>
  231 + <el-option label="维修" value="3"></el-option>
  232 + <el-option label="其它" value="4"></el-option>
  233 + </el-select>
  234 + </el-form-item>
  235 + </el-col>
  236 + <el-col :span="6">
  237 + <el-form-item label="海关备注">
  238 + <el-input v-model="form.remark"></el-input>
  239 + </el-form-item>
  240 + </el-col>
  241 + </el-row>
  242 + <el-divider></el-divider>
  243 + <el-row :gutter="20">
  244 + <el-col :span="12" :offset="6">
  245 + <el-form-item>
  246 + <el-button @click="dialogVisible=false">取消</el-button>
  247 + <el-button type="primary" @click="dialogStatus==='create'?createData('form'):updateData('form')">暂存</el-button>
  248 + </el-form-item>
  249 + </el-col>
  250 + </el-row>
  251 + </el-form>
  252 + </el-dialog>
  253 + <el-dialog
  254 + title="回执列表"
  255 + :visible.sync="returnVisible"
  256 + width="55%"
  257 + :before-close="handleClose">
  258 + <el-table :data="gridData">
  259 + <el-table-column property="sendtime" label="操作时间" ></el-table-column>
  260 + <el-table-column property="createBy" label="操作人" ></el-table-column>
  261 + <el-table-column property="flightNo" label="航班号"></el-table-column>
  262 + <el-table-column property="flightDate" label="航班日期" ></el-table-column>
  263 + <el-table-column property="receiptContent" label="回执内容" ></el-table-column>
  264 + </el-table>
  265 + </el-dialog>
  266 + </div>
  267 +</template>
  268 +<script>
  269 + import {selectBycustomcode,selectByairportcode,selectLists,insertSelective,updateByPrimaryKeySelective,
  270 + selectReturnMsgList,sendAircraftstaying} from "../../api/transport/transport2.0";
  271 +
  272 + export default {
  273 + data(){
  274 + return{
  275 + returnVisible:false,
  276 + query:{
  277 + aircraftno:'',
  278 + flightno:'',
  279 + flightdate:'',
  280 + starttime:'',
  281 + endtime:'',
  282 + pageNum:0,
  283 + pageSize:10
  284 + },
  285 + customcodes:[],
  286 + customcodes2:[],
  287 + airportcodes:[],
  288 + form:{
  289 + uuid:'',
  290 + customcode:'',
  291 + aircraftno:'',
  292 + registeredcustom:'',
  293 + aircrafttype:'',
  294 + flightno:'',
  295 + flightdate:'',
  296 + callport:'',
  297 + callarea:'',
  298 + reasons:'',
  299 + remark:'',
  300 + userid:'',
  301 + status:'',
  302 + statusmsg:'',
  303 + messageid:''
  304 + },
  305 + rules: {
  306 + customcode: [
  307 + { required: true, message: '海关关区不可为空', trigger: 'blur' }
  308 + ],
  309 + aircraftno: [
  310 + { required: true, message: '航空器注册编号不可为空', trigger: 'blur' }
  311 + ],
  312 + flightno: [
  313 + { required: true, message: '进境(港)航班号不可为空', trigger: 'blur' }
  314 + ],
  315 + flightdate: [
  316 + { required: true, message: '航班日期不可为空', trigger: 'blur' }
  317 + ],
  318 + callport: [
  319 + { required: true, message: '停靠港不可为空', trigger: 'blur' }
  320 + ],
  321 + callarea: [
  322 + { required: true, message: '停机位不可为空', trigger: 'blur' }
  323 + ]
  324 + },
  325 + dialogVisible: false,
  326 + currentPage4: 4,
  327 + textMap:{
  328 + update: '编辑',
  329 + create: '新增'
  330 + },
  331 + dialogStatus:'',
  332 + loading:false,
  333 + flightdate:'',
  334 + total:0,
  335 + pickerOptions: {
  336 + shortcuts: [{
  337 + text: '最近一周',
  338 + onClick(picker) {
  339 + const end = new Date();
  340 + const start = new Date();
  341 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
  342 + picker.$emit('pick', [start, end]);
  343 + }
  344 + }, {
  345 + text: '最近一个月',
  346 + onClick(picker) {
  347 + const end = new Date();
  348 + const start = new Date();
  349 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
  350 + picker.$emit('pick', [start, end]);
  351 + }
  352 + }, {
  353 + text: '最近三个月',
  354 + onClick(picker) {
  355 + const end = new Date();
  356 + const start = new Date();
  357 + start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
  358 + picker.$emit('pick', [start, end]);
  359 + }
  360 + }]
  361 + },
  362 + tableData: [],
  363 + gridData:[]
  364 + }
  365 + },
  366 + methods:{
  367 + sendstying(row,FunctionCode){
  368 + const params = {
  369 + row: row,
  370 + FunctionCode: FunctionCode
  371 + };
  372 + sendAircraftstaying(params).then(res =>{
  373 + let response=res.data;
  374 + if(response.code=='200'){
  375 + this.selectList();
  376 + this.$message.success(response.msg)
  377 + }else{
  378 + this.$message.error(response.msg)
  379 + }
  380 + });
  381 + },
  382 + //查询回执列表
  383 + returnlist(row){
  384 + this.gridData=[];
  385 + let params={messageid:row.messageid};
  386 + selectReturnMsgList(params).then(res=>{
  387 + let response=res.data.data;
  388 + this.gridData=response;
  389 + });
  390 + this.returnVisible=true;
  391 + },
  392 + handleClose() {
  393 + this.returnVisible=false;
  394 + },
  395 + //暂存新增
  396 + createData(formName){
  397 + this.$refs[formName].validate((valid) => {
  398 + if (valid) {
  399 + insertSelective(this.form).then(res =>{
  400 + let response=res.data;
  401 + if(response.code=='200'){
  402 + this.dialogVisible=false;
  403 + this.$message.success(response.msg)
  404 + }else{
  405 + this.$message.error(response.msg)
  406 + }
  407 + });
  408 + } else {
  409 + return false;
  410 + }
  411 + });
  412 + },
  413 + //暂存更新
  414 + updateData(formName){
  415 + this.$refs[formName].validate((valid) => {
  416 + if (valid) {
  417 + updateByPrimaryKeySelective(this.form).then(res =>{
  418 + let response=res.data;
  419 + if(response.code=='200'){
  420 + this.dialogVisible=false;
  421 + Object.assign(this.$data, this.$options.data());
  422 + this.$message.success(response.msg)
  423 + }else{
  424 + this.$message.error(response.msg)
  425 + }
  426 + });
  427 + } else {
  428 + return false;
  429 + }
  430 + });
  431 + },
  432 + //查询列表
  433 + selectList(){
  434 + if(this.flightdate !== null && this.flightdate !== ""){
  435 + this.query.starttime = this.flightdate[0];
  436 + this.query.endtime = this.flightdate[1];
  437 + }else{
  438 + return this.$message.error('请选取时间区间')
  439 + }
  440 + this.loading = true;
  441 + selectLists(this.query).then((response) => {
  442 + const res = response.data
  443 + if (res.code !== '200') {
  444 + this.loading = false;
  445 + return this.$message.error('获取消息收发记录,失败!')
  446 + }
  447 + // 获取列表数据
  448 + this.tableData = res.data.list
  449 + // 获取列表的总记录数
  450 + this.total = res.data.total
  451 + this.loading = false;
  452 + this.$message.success('获取消息收发记录,成功!');
  453 + }).catch(error => {
  454 + // 关闭加载
  455 + this.$message.error(error.toString())
  456 + })
  457 +
  458 + },
  459 + //获取机场代码
  460 + getAirportCode:function(query){
  461 + this.airportcodes=[];
  462 + let params={airportid:query};
  463 + this.loading = true;
  464 + selectByairportcode(params).then(res =>{
  465 + if (res !== '') {
  466 + setTimeout(() => {
  467 + this.loading = false;
  468 + this.airportcodes=res.data.data;
  469 + }, 200);
  470 + } else {
  471 + this.airportcodes = [];
  472 + }
  473 +
  474 + });
  475 + },
  476 + //获取关区代码
  477 + getCustomCode:function(query){
  478 + this.customcodes=[];
  479 + let params={customcode:query};
  480 + this.loading = true;
  481 + selectBycustomcode(params).then(res =>{
  482 + if (res !== '') {
  483 + setTimeout(() => {
  484 + this.loading = false;
  485 + this.customcodes=res.data.data;
  486 + }, 200);
  487 + } else {
  488 + this.customcodes = [];
  489 + }
  490 +
  491 + });
  492 + },
  493 + getCustomCode2:function(query){
  494 + this.customcodes2=[];
  495 + let params={customcode:query};
  496 + this.loading = true;
  497 + selectBycustomcode(params).then(res =>{
  498 + if (res !== '') {
  499 + setTimeout(() => {
  500 + this.loading = false;
  501 + this.customcodes2=res.data.data;
  502 + }, 200);
  503 + } else {
  504 + this.customcodes2 = [];
  505 + }
  506 +
  507 + });
  508 + },
  509 + //新增
  510 + addForm(){
  511 + this.dialogVisible=true;
  512 + this.dialogStatus='create';
  513 + },
  514 + //编辑
  515 + ediForm(row){
  516 + this.dialogVisible=true;
  517 + this.dialogStatus='update';
  518 + this.form=row;
  519 + },
  520 + handleClick(row) {
  521 + },
  522 + //分页
  523 + handleSizeChange(val) {
  524 + this.query.pageSize=val;
  525 + this.selectList();
  526 + },
  527 + handleCurrentChange(val) {
  528 + this.query.pageNum=val;
  529 + this.selectList();
  530 + }
  531 + }
  532 + }
  533 +</script>