Showing
69 changed files
with
5178 additions
and
678 deletions
| ... | @@ -60,7 +60,7 @@ export function downloadExcel(data) { | ... | @@ -60,7 +60,7 @@ export function downloadExcel(data) { |
| 60 | }) | 60 | }) |
| 61 | } | 61 | } |
| 62 | 62 | ||
| 63 | -//释放仓位 | 63 | +//释放舱位 |
| 64 | export function releaseCargo(data) { | 64 | export function releaseCargo(data) { |
| 65 | return request({ | 65 | return request({ |
| 66 | url: '/cargo/releaseCargo', | 66 | url: '/cargo/releaseCargo', |
| ... | @@ -106,3 +106,29 @@ export function getFlightsRoutes(data) { | ... | @@ -106,3 +106,29 @@ export function getFlightsRoutes(data) { |
| 106 | data: data | 106 | data: data |
| 107 | }) | 107 | }) |
| 108 | } | 108 | } |
| 109 | + | ||
| 110 | +//航班迁转 | ||
| 111 | +/** | ||
| 112 | + * @param ids * 货物id list | ||
| 113 | + * @param flightId * 航班id | ||
| 114 | + * @param route * 航线 | ||
| 115 | + */ | ||
| 116 | +export function batchMoveCargoToOtherFlight(data) { | ||
| 117 | + return request({ | ||
| 118 | + url: '/cargo/batchMoveCargoToOtherFlight', | ||
| 119 | + method: 'post', | ||
| 120 | + data: data | ||
| 121 | + }) | ||
| 122 | +} | ||
| 123 | + | ||
| 124 | +//生成历史数据文件 | ||
| 125 | +/** | ||
| 126 | + * @param 同货物查询 | ||
| 127 | + */ | ||
| 128 | +export function historyCargo(data) { | ||
| 129 | + return request({ | ||
| 130 | + url: '/cargo/historyCargo', | ||
| 131 | + method: 'post', | ||
| 132 | + data: data | ||
| 133 | + }) | ||
| 134 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -72,3 +72,29 @@ export function updateAutoPushBatch(data) { | ... | @@ -72,3 +72,29 @@ export function updateAutoPushBatch(data) { |
| 72 | data: data | 72 | data: data |
| 73 | }) | 73 | }) |
| 74 | } | 74 | } |
| 75 | + | ||
| 76 | +//白名单自动配舱开关 | ||
| 77 | +/** | ||
| 78 | + * @param updateIds idList * | ||
| 79 | + * @param status 状态 * 1开 0关 | ||
| 80 | + */ | ||
| 81 | +export function updateWhiteListSwitchBatch(data) { | ||
| 82 | + return request({ | ||
| 83 | + url: '/FlightPreserveController/updateWhiteListSwitchBatch', | ||
| 84 | + method: 'post', | ||
| 85 | + data: data | ||
| 86 | + }) | ||
| 87 | +} | ||
| 88 | + | ||
| 89 | +//黑名单自动配舱开关 | ||
| 90 | +/** | ||
| 91 | + * @param updateIds idList * | ||
| 92 | + * @param status 状态 * 1开 0关 | ||
| 93 | + */ | ||
| 94 | +export function updateBlackListSwitchBatch(data) { | ||
| 95 | + return request({ | ||
| 96 | + url: '/FlightPreserveController/updateBlackListSwitchBatch', | ||
| 97 | + method: 'post', | ||
| 98 | + data: data | ||
| 99 | + }) | ||
| 100 | +} | ... | ... |
| ... | @@ -41,6 +41,7 @@ export function batchDeleteGoods(data) { | ... | @@ -41,6 +41,7 @@ export function batchDeleteGoods(data) { |
| 41 | /** | 41 | /** |
| 42 | * @param page * 页数 | 42 | * @param page * 页数 |
| 43 | * @param size * 页长 | 43 | * @param size * 页长 |
| 44 | + * @param goodsType 查询状态 1白名单 2黑名单 默认查询白名单 | ||
| 44 | * @param goodsStation 货站名 | 45 | * @param goodsStation 货站名 |
| 45 | */ | 46 | */ |
| 46 | export function searchGoods(data) { | 47 | export function searchGoods(data) { |
| ... | @@ -54,9 +55,60 @@ export function searchGoods(data) { | ... | @@ -54,9 +55,60 @@ export function searchGoods(data) { |
| 54 | //查询货站 | 55 | //查询货站 |
| 55 | /** | 56 | /** |
| 56 | */ | 57 | */ |
| 57 | -export function findStationName() { | 58 | +export function findStationName(data) { |
| 58 | return request({ | 59 | return request({ |
| 59 | url: '/goods/findStationName', | 60 | url: '/goods/findStationName', |
| 60 | method: 'post', | 61 | method: 'post', |
| 62 | + data: data | ||
| 63 | + }) | ||
| 64 | +} | ||
| 65 | + | ||
| 66 | +//白名单批量导入 | ||
| 67 | +export function uploadGoodsExcel(file, goodsStation) { | ||
| 68 | + let formData = new FormData(); | ||
| 69 | + formData.append("file", file); | ||
| 70 | + formData.append("goodsStation", goodsStation); | ||
| 71 | + return request({ | ||
| 72 | + url: '/goods/uploadGoodsExcel', | ||
| 73 | + method: 'post', | ||
| 74 | + data: formData | ||
| 75 | + }) | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | +//查询上传日志 | ||
| 79 | +/** | ||
| 80 | + * @param page 页长 * | ||
| 81 | + * @param size 页数 * | ||
| 82 | + */ | ||
| 83 | +export function userImportLog(data) { | ||
| 84 | + return request({ | ||
| 85 | + url: '/goods/userImportLog', | ||
| 86 | + method: 'post', | ||
| 87 | + data: data | ||
| 88 | + }) | ||
| 89 | +} | ||
| 90 | + | ||
| 91 | +//黑名单上传excel | ||
| 92 | +export function uploadGoodsBlackExce(file, goodsStation) { | ||
| 93 | + let formData = new FormData(); | ||
| 94 | + formData.append("file", file); | ||
| 95 | + formData.append("goodsStation", goodsStation); | ||
| 96 | + return request({ | ||
| 97 | + url: '/goods/uploadGoodsBlackExcel', | ||
| 98 | + method: 'post', | ||
| 99 | + data: formData | ||
| 100 | + }) | ||
| 101 | +} | ||
| 102 | + | ||
| 103 | +//批量添加黑名单 | ||
| 104 | +/** | ||
| 105 | + * @param goodsStation * 货站名 | ||
| 106 | + * @param goodsList * 货品名list | ||
| 107 | + */ | ||
| 108 | +export function batchAddBlackGoods(data) { | ||
| 109 | + return request({ | ||
| 110 | + url: '/goods/batchAddBlackGoods', | ||
| 111 | + method: 'post', | ||
| 112 | + data: data | ||
| 61 | }) | 113 | }) |
| 62 | } | 114 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
src/api/preMdeConfig.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | +import settings from "@/settings" | ||
| 3 | + | ||
| 4 | +//模板下载 | ||
| 5 | +export function downLoadTemplate(template) { | ||
| 6 | + return request({ | ||
| 7 | + url: '/flightInfoImport/downLoadTemplate?template=' + template, | ||
| 8 | + method: 'get', | ||
| 9 | + responseType: 'blob', | ||
| 10 | + }) | ||
| 11 | +} | ||
| 12 | + | ||
| 13 | +//航班目的地批量导入 | ||
| 14 | +/** | ||
| 15 | + * @param file * 文件 | ||
| 16 | + * @param beginDate * 时间 | ||
| 17 | + */ | ||
| 18 | +export function importFlightDestination(file, date) { | ||
| 19 | + let formData = new FormData(); | ||
| 20 | + formData.append("file", file); | ||
| 21 | + formData.append("beginDate", date); | ||
| 22 | + return request({ | ||
| 23 | + method: 'post', | ||
| 24 | + url: settings.baseURL + '/flightDestination/importFlightDestination', | ||
| 25 | + data: formData | ||
| 26 | + }) | ||
| 27 | +} | ||
| 28 | + | ||
| 29 | +//URSA目的地批量导入 | ||
| 30 | +/** | ||
| 31 | + * @param file * 文件 | ||
| 32 | + * @param beginDate * 时间 | ||
| 33 | + */ | ||
| 34 | +export function importUrsaDestination(file, date) { | ||
| 35 | + let formData = new FormData(); | ||
| 36 | + formData.append("file", file); | ||
| 37 | + formData.append("beginDate", date); | ||
| 38 | + return request({ | ||
| 39 | + method: 'post', | ||
| 40 | + url: settings.baseURL + '/ursaDestination/importUrsaDestination', | ||
| 41 | + data: formData | ||
| 42 | + }) | ||
| 43 | +} | ||
| 44 | + | ||
| 45 | +//航班目的地查询 | ||
| 46 | +/** | ||
| 47 | + * @param page * 页数 | ||
| 48 | + * @param size * 长度 | ||
| 49 | + * @param area 地区 | ||
| 50 | + * @param fltNo 航班号 | ||
| 51 | + */ | ||
| 52 | +export function searchFlightDestination(data) { | ||
| 53 | + return request({ | ||
| 54 | + url: '/flightDestination/searchFlightDestination', | ||
| 55 | + method: 'post', | ||
| 56 | + data: data | ||
| 57 | + }) | ||
| 58 | +} | ||
| 59 | + | ||
| 60 | +//URSA目的地查询 | ||
| 61 | +/** | ||
| 62 | + * @param page * 页数 | ||
| 63 | + * @param size * 长度 | ||
| 64 | + * @param area 地区 | ||
| 65 | + * @param ursa ursa list | ||
| 66 | + */ | ||
| 67 | +export function searchUrsaDestination(data) { | ||
| 68 | + return request({ | ||
| 69 | + url: '/ursaDestination/searchUrsaDestination', | ||
| 70 | + method: 'post', | ||
| 71 | + data: data | ||
| 72 | + }) | ||
| 73 | +} | ||
| 74 | + | ||
| 75 | +//preMde查询 | ||
| 76 | +/** | ||
| 77 | + * @param flightNo 航班号 | ||
| 78 | + * @param fltDateStart 航班开始时间 | ||
| 79 | + * @param fltDateEnd 航班结束时间 | ||
| 80 | + * @param flightRoute 航线 | ||
| 81 | + * @param waybillNo 运单号 | ||
| 82 | + * @param ursa ursa | ||
| 83 | + * @param typeName 申报类别 | ||
| 84 | + * @param siteName 站点 | ||
| 85 | + * @param regionArray 区域 list | ||
| 86 | + * @param areaArray 地区 list | ||
| 87 | + * @param serviceTypeArray 服务代码 list | ||
| 88 | + * @param page * 页数 | ||
| 89 | + * @param size * 长度 | ||
| 90 | + */ | ||
| 91 | +export function findDmPreMdeData(data) { | ||
| 92 | + return request({ | ||
| 93 | + url: '/dmPreMde/findDmPreMdeData', | ||
| 94 | + method: 'post', | ||
| 95 | + data: data | ||
| 96 | + }) | ||
| 97 | +} | ||
| 98 | + | ||
| 99 | +//preMde页面查询条件 | ||
| 100 | +/** | ||
| 101 | + */ | ||
| 102 | +export function findDmPreMdeCondition(data) { | ||
| 103 | + return request({ | ||
| 104 | + url: '/dmPreMde/findDmPreMdeCondition', | ||
| 105 | + method: 'post', | ||
| 106 | + data: data | ||
| 107 | + }) | ||
| 108 | +} | ||
| 109 | + | ||
| 110 | +//报表查询 | ||
| 111 | +/** | ||
| 112 | + * @param ursas ursaslist | ||
| 113 | + * @param serviceTypeArray serviceTypelist | ||
| 114 | + * @param regionArray 区域 | ||
| 115 | + * @param areaArray 地区 | ||
| 116 | + * @param pickUpDate 取件日期 | ||
| 117 | + * @param dimensionName 维度名 | ||
| 118 | + */ | ||
| 119 | +export function findPreMdeReport(data) { | ||
| 120 | + return request({ | ||
| 121 | + url: '/preMdeReport/findPreMdeReport', | ||
| 122 | + method: 'post', | ||
| 123 | + data: data | ||
| 124 | + }) | ||
| 125 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -11,7 +11,8 @@ export function findSourceFlightRulesApi(data) { | ... | @@ -11,7 +11,8 @@ export function findSourceFlightRulesApi(data) { |
| 11 | // 目标航班查询 | 11 | // 目标航班查询 |
| 12 | export function findSourceFlightAndFlightDateApi(data) { | 12 | export function findSourceFlightAndFlightDateApi(data) { |
| 13 | return request({ | 13 | return request({ |
| 14 | - url: '/sourceFlight/findSourceFlightAndFlightDate', | 14 | + // url: '/sourceFlight/findSourceFlightAndFlightDate', |
| 15 | + url: '/sourceFlight/findActualAllocateFlightList', | ||
| 15 | method: 'post', | 16 | method: 'post', |
| 16 | data: data | 17 | data: data |
| 17 | }) | 18 | }) |
| ... | @@ -19,7 +20,7 @@ export function findSourceFlightAndFlightDateApi(data) { | ... | @@ -19,7 +20,7 @@ export function findSourceFlightAndFlightDateApi(data) { |
| 19 | 20 | ||
| 20 | // 原航班顺位规则保存 | 21 | // 原航班顺位规则保存 |
| 21 | export function sourceFlightRulesSaveApi(data) { | 22 | export function sourceFlightRulesSaveApi(data) { |
| 22 | - data.dayOfWeek = data.dayOfWeek.join(';'); | 23 | + data.dayOfWeek = data.dayOfWeek.join(';'); |
| 23 | return request({ | 24 | return request({ |
| 24 | url: '/sourceFlight/sourceFlightRulesSave', | 25 | url: '/sourceFlight/sourceFlightRulesSave', |
| 25 | method: 'post', | 26 | method: 'post', | ... | ... |
src/api/supserAllocation.js
0 → 100644
| 1 | +import request from '@/utils/request' | ||
| 2 | + | ||
| 3 | +//特殊规则查询 | ||
| 4 | +/** | ||
| 5 | + * @param page * 页数 | ||
| 6 | + * @param size * 页长 | ||
| 7 | + * @param shipperAccount shipperAccount集合 | ||
| 8 | + */ | ||
| 9 | +export function queryShipperAccountRule(data) { | ||
| 10 | + return request({ | ||
| 11 | + url: 'shipperAccount/queryShipperAccountRule', | ||
| 12 | + method: 'post', | ||
| 13 | + data: data | ||
| 14 | + }) | ||
| 15 | +} | ||
| 16 | + | ||
| 17 | +//特殊规则新增 | ||
| 18 | +/** | ||
| 19 | + * @param id ID (修改必填) | ||
| 20 | + * @param shipperAccount * shipperAccount | ||
| 21 | + * @param flightNo * 航班号 | ||
| 22 | + * @param flightRoute * 航线 | ||
| 23 | + * @param flightDate * 航班日期 | ||
| 24 | + * @param groupAllWeight 预配重量 | ||
| 25 | + * @param includeUrsa * ursa包含 | ||
| 26 | + * @param notIncludeUrsa ursa不包含 | ||
| 27 | + * @param classificationList 申报类型 | ||
| 28 | + * @param serviceCodeList servceCode | ||
| 29 | + */ | ||
| 30 | +export function saveOrUpdate(data) { | ||
| 31 | + return request({ | ||
| 32 | + url: 'shipperAccount/saveOrUpdate', | ||
| 33 | + method: 'post', | ||
| 34 | + data: data | ||
| 35 | + }) | ||
| 36 | +} | ||
| 37 | + | ||
| 38 | +//特殊规则详情 | ||
| 39 | +/** | ||
| 40 | + * @param id * ID | ||
| 41 | + */ | ||
| 42 | +export function queryShipperAccountRuleById(data) { | ||
| 43 | + return request({ | ||
| 44 | + url: 'shipperAccount/queryShipperAccountRuleById', | ||
| 45 | + method: 'post', | ||
| 46 | + data: data | ||
| 47 | + }) | ||
| 48 | +} | ||
| 49 | + | ||
| 50 | +//特殊规则删除 | ||
| 51 | +/** | ||
| 52 | + * @param accsFlightNo * 航班号 | ||
| 53 | + * @param shipperAccount * shipperAccount | ||
| 54 | + * @param status * 状态 0 停用 1启用 2 已删除 | ||
| 55 | + */ | ||
| 56 | +export function changeStatusById(data) { | ||
| 57 | + return request({ | ||
| 58 | + url: '/shipperAccount/changeStatusById', | ||
| 59 | + method: 'post', | ||
| 60 | + data: data | ||
| 61 | + }) | ||
| 62 | +} | ||
| 63 | + | ||
| 64 | +//特殊规则获取释放仓位重量 | ||
| 65 | +/** | ||
| 66 | + * @param id ID * | ||
| 67 | + */ | ||
| 68 | +export function getReleaseWeight(data) { | ||
| 69 | + return request({ | ||
| 70 | + url: '/shipperAccount/getReleaseWeight', | ||
| 71 | + method: 'post', | ||
| 72 | + data: data | ||
| 73 | + }) | ||
| 74 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -38,4 +38,58 @@ export function findCargoDataChangeLog(data) { | ... | @@ -38,4 +38,58 @@ export function findCargoDataChangeLog(data) { |
| 38 | url: '/cargo/findCargoDataChangeLog?accsId=' + data, | 38 | url: '/cargo/findCargoDataChangeLog?accsId=' + data, |
| 39 | method: 'post', | 39 | method: 'post', |
| 40 | }) | 40 | }) |
| 41 | +} | ||
| 42 | + | ||
| 43 | +// 功能模块查询 | ||
| 44 | +/** | ||
| 45 | + * | ||
| 46 | + */ | ||
| 47 | +export function findModuleCondition() { | ||
| 48 | + return request({ | ||
| 49 | + url: '/systemOperationLog/findModuleCondition', | ||
| 50 | + method: 'post', | ||
| 51 | + }) | ||
| 52 | +} | ||
| 53 | + | ||
| 54 | +//操作日志查询 | ||
| 55 | +/** | ||
| 56 | + * @param module 功能模块 | ||
| 57 | + * @param createTimeStart 操作时间开始 | ||
| 58 | + * @param createTimeEnd 操作时间结束 | ||
| 59 | + * @param page 页数 | ||
| 60 | + * @param size 页长 | ||
| 61 | + */ | ||
| 62 | +export function getSystemOperationLogData(data) { | ||
| 63 | + return request({ | ||
| 64 | + url: '/systemOperationLog/getSystemOperationLogData', | ||
| 65 | + method: 'post', | ||
| 66 | + data: data | ||
| 67 | + }) | ||
| 68 | +} | ||
| 69 | + | ||
| 70 | +//归档数据查询 | ||
| 71 | +/** | ||
| 72 | + * @param createTimeStart 操作时间开始 | ||
| 73 | + * @param createTimeEnd 操作时间结束 | ||
| 74 | + * @param page 页数 | ||
| 75 | + * @param size 页长 | ||
| 76 | + */ | ||
| 77 | +export function findArchiveCargoLog(data) { | ||
| 78 | + return request({ | ||
| 79 | + url: '/archiveCargoLog/findArchiveCargoLog', | ||
| 80 | + method: 'post', | ||
| 81 | + data: data | ||
| 82 | + }) | ||
| 83 | +} | ||
| 84 | + | ||
| 85 | +//查询归档文件是否可下载 | ||
| 86 | +/** | ||
| 87 | + * @param object 查询结果集行数据 | ||
| 88 | + */ | ||
| 89 | +export function isExistZip(data) { | ||
| 90 | + return request({ | ||
| 91 | + url: '/archiveCargoLog/isExistZip', | ||
| 92 | + method: 'post', | ||
| 93 | + data: data | ||
| 94 | + }) | ||
| 41 | } | 95 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
src/assets/languages/chart.js
0 → 100644
This diff could not be displayed because it is too large.
| ... | @@ -19,7 +19,8 @@ let ductLabels = { | ... | @@ -19,7 +19,8 @@ let ductLabels = { |
| 19 | "7": "预审导出", | 19 | "7": "预审导出", |
| 20 | "8": "预审导入", | 20 | "8": "预审导入", |
| 21 | "9": "航班不推送修改为待推送", | 21 | "9": "航班不推送修改为待推送", |
| 22 | - "10": "回推ACCS" | 22 | + "10": "回推ACCS", |
| 23 | + "11": "航班迁转" | ||
| 23 | } | 24 | } |
| 24 | }, | 25 | }, |
| 25 | "menu": {//菜单设置 | 26 | "menu": {//菜单设置 |
| ... | @@ -62,6 +63,16 @@ let ductLabels = { | ... | @@ -62,6 +63,16 @@ let ductLabels = { |
| 62 | "1": "是", | 63 | "1": "是", |
| 63 | "2": "否", | 64 | "2": "否", |
| 64 | }, | 65 | }, |
| 66 | + "whiteListSwitch": { | ||
| 67 | + "1": "开启", | ||
| 68 | + "0": "关闭", | ||
| 69 | + null: '关闭' | ||
| 70 | + }, | ||
| 71 | + "blackListSwitch": { | ||
| 72 | + "1": "开启", | ||
| 73 | + "0": "关闭", | ||
| 74 | + null: '开启' | ||
| 75 | + } | ||
| 65 | }, | 76 | }, |
| 66 | "flightRand": {//航班顺位设置 | 77 | "flightRand": {//航班顺位设置 |
| 67 | "status": { | 78 | "status": { |
| ... | @@ -123,7 +134,8 @@ let ductLabels = { | ... | @@ -123,7 +134,8 @@ let ductLabels = { |
| 123 | "1": "pre-MD cutoff", | 134 | "1": "pre-MD cutoff", |
| 124 | "2": "航班迁转手动释放", | 135 | "2": "航班迁转手动释放", |
| 125 | "3": "预审不通过定时任务", | 136 | "3": "预审不通过定时任务", |
| 126 | - "4": "自动配舱" | 137 | + "4": "自动配舱", |
| 138 | + "5": "航班迁转" | ||
| 127 | }, | 139 | }, |
| 128 | "weightMark": { | 140 | "weightMark": { |
| 129 | "1": "增加", | 141 | "1": "增加", |
| ... | @@ -135,6 +147,27 @@ let ductLabels = { | ... | @@ -135,6 +147,27 @@ let ductLabels = { |
| 135 | "0": "关闭", | 147 | "0": "关闭", |
| 136 | "1": "开启" | 148 | "1": "开启" |
| 137 | } | 149 | } |
| 150 | + }, | ||
| 151 | + "preMdeSelect": { | ||
| 152 | + "manualRde": { | ||
| 153 | + | ||
| 154 | + }, | ||
| 155 | + }, | ||
| 156 | + 'goodsLogStation': { | ||
| 157 | + "status": { | ||
| 158 | + "0": "未处理", | ||
| 159 | + "1": "处理中", | ||
| 160 | + "2": "处理成功", | ||
| 161 | + "3": "处理失败" | ||
| 162 | + } | ||
| 163 | + }, | ||
| 164 | + "archiveDataTables": { | ||
| 165 | + "status": { | ||
| 166 | + "0": "未处理", | ||
| 167 | + "1": "处理成功", | ||
| 168 | + "2": "处理失败", | ||
| 169 | + "3": "处理中" | ||
| 170 | + } | ||
| 138 | } | 171 | } |
| 139 | } | 172 | } |
| 140 | 173 | ... | ... |
| ... | @@ -131,7 +131,7 @@ let tableHeaders = { | ... | @@ -131,7 +131,7 @@ let tableHeaders = { |
| 131 | status: 1 | 131 | status: 1 |
| 132 | }, | 132 | }, |
| 133 | { | 133 | { |
| 134 | - columnChineseName: "申报类型", | 134 | + columnChineseName: "申报类别", |
| 135 | columnName: "typeName", | 135 | columnName: "typeName", |
| 136 | columnWidth: "100", | 136 | columnWidth: "100", |
| 137 | ext1: "sorTable", | 137 | ext1: "sorTable", |
| ... | @@ -152,7 +152,7 @@ let tableHeaders = { | ... | @@ -152,7 +152,7 @@ let tableHeaders = { |
| 152 | status: 1 | 152 | status: 1 |
| 153 | }, | 153 | }, |
| 154 | { | 154 | { |
| 155 | - columnChineseName: "subcategory", | 155 | + columnChineseName: "Subcategory", |
| 156 | columnName: "subCategory", | 156 | columnName: "subCategory", |
| 157 | columnWidth: "140", | 157 | columnWidth: "140", |
| 158 | ext1: "sorTable", | 158 | ext1: "sorTable", |
| ... | @@ -427,7 +427,7 @@ let tableHeaders = { | ... | @@ -427,7 +427,7 @@ let tableHeaders = { |
| 427 | status: 1 | 427 | status: 1 |
| 428 | }, | 428 | }, |
| 429 | { | 429 | { |
| 430 | - columnChineseName: "航线", | 430 | + columnChineseName: "当前配载航线", |
| 431 | columnName: "flightRoute", | 431 | columnName: "flightRoute", |
| 432 | columnWidth: "140", | 432 | columnWidth: "140", |
| 433 | status: 1 | 433 | status: 1 |
| ... | @@ -521,6 +521,18 @@ let tableHeaders = { | ... | @@ -521,6 +521,18 @@ let tableHeaders = { |
| 521 | status: 1 | 521 | status: 1 |
| 522 | }, | 522 | }, |
| 523 | { | 523 | { |
| 524 | + columnChineseName: "白名单是否自动配舱", | ||
| 525 | + columnName: "whiteListSwitch", | ||
| 526 | + columnWidth: "160", | ||
| 527 | + status: 1 | ||
| 528 | + }, | ||
| 529 | + { | ||
| 530 | + columnChineseName: "黑名单是否自动配舱", | ||
| 531 | + columnName: "blackListSwitch", | ||
| 532 | + columnWidth: "160", | ||
| 533 | + status: 1 | ||
| 534 | + }, | ||
| 535 | + { | ||
| 524 | columnChineseName: "总重量", | 536 | columnChineseName: "总重量", |
| 525 | columnName: "totalWeight", | 537 | columnName: "totalWeight", |
| 526 | columnWidth: "90", | 538 | columnWidth: "90", |
| ... | @@ -539,6 +551,18 @@ let tableHeaders = { | ... | @@ -539,6 +551,18 @@ let tableHeaders = { |
| 539 | status: 1 | 551 | status: 1 |
| 540 | }, | 552 | }, |
| 541 | { | 553 | { |
| 554 | + columnChineseName: "预留特殊舱位重量", | ||
| 555 | + columnName: "accountTotalWeight", | ||
| 556 | + columnWidth: "130", | ||
| 557 | + status: 1 | ||
| 558 | + }, | ||
| 559 | + { | ||
| 560 | + columnChineseName: "特殊舱位已配重量", | ||
| 561 | + columnName: "accountAllocatedWeight", | ||
| 562 | + columnWidth: "130", | ||
| 563 | + status: 1 | ||
| 564 | + }, | ||
| 565 | + { | ||
| 542 | columnChineseName: "已配体积(m³)", | 566 | columnChineseName: "已配体积(m³)", |
| 543 | columnName: "alloctedVolume", | 567 | columnName: "alloctedVolume", |
| 544 | columnWidth: "120", | 568 | columnWidth: "120", |
| ... | @@ -704,13 +728,20 @@ let tableHeaders = { | ... | @@ -704,13 +728,20 @@ let tableHeaders = { |
| 704 | status: 1 | 728 | status: 1 |
| 705 | }, | 729 | }, |
| 706 | { | 730 | { |
| 707 | - columnChineseName: "申报类型", | 731 | + columnChineseName: "申报类别", |
| 708 | columnName: "typeName", | 732 | columnName: "typeName", |
| 709 | columnWidth: "100", | 733 | columnWidth: "100", |
| 710 | ext1: "sorTable", | 734 | ext1: "sorTable", |
| 711 | status: 1 | 735 | status: 1 |
| 712 | }, | 736 | }, |
| 713 | { | 737 | { |
| 738 | + columnChineseName: "ACCSpool", | ||
| 739 | + columnName: "accsPool", | ||
| 740 | + columnWidth: "120", | ||
| 741 | + ext1: "sorTable", | ||
| 742 | + status: 1 | ||
| 743 | + }, | ||
| 744 | + { | ||
| 714 | columnChineseName: "HandlingCode", | 745 | columnChineseName: "HandlingCode", |
| 715 | columnName: "handingCode", | 746 | columnName: "handingCode", |
| 716 | columnWidth: "150", | 747 | columnWidth: "150", |
| ... | @@ -718,7 +749,7 @@ let tableHeaders = { | ... | @@ -718,7 +749,7 @@ let tableHeaders = { |
| 718 | status: 1 | 749 | status: 1 |
| 719 | }, | 750 | }, |
| 720 | { | 751 | { |
| 721 | - columnChineseName: "subcategory", | 752 | + columnChineseName: "Subcategory", |
| 722 | columnName: "subCategory", | 753 | columnName: "subCategory", |
| 723 | columnWidth: "140", | 754 | columnWidth: "140", |
| 724 | ext1: "sorTable", | 755 | ext1: "sorTable", |
| ... | @@ -739,6 +770,13 @@ let tableHeaders = { | ... | @@ -739,6 +770,13 @@ let tableHeaders = { |
| 739 | status: 1 | 770 | status: 1 |
| 740 | }, | 771 | }, |
| 741 | { | 772 | { |
| 773 | + columnChineseName: "体积", | ||
| 774 | + columnName: "volume", | ||
| 775 | + columnWidth: "100", | ||
| 776 | + ext1: "sorTable", | ||
| 777 | + status: 1 | ||
| 778 | + }, | ||
| 779 | + { | ||
| 742 | columnChineseName: "收件人国家代码", | 780 | columnChineseName: "收件人国家代码", |
| 743 | columnName: "consigneeCountry", | 781 | columnName: "consigneeCountry", |
| 744 | columnWidth: "150", | 782 | columnWidth: "150", |
| ... | @@ -793,6 +831,13 @@ let tableHeaders = { | ... | @@ -793,6 +831,13 @@ let tableHeaders = { |
| 793 | status: 1 | 831 | status: 1 |
| 794 | }, | 832 | }, |
| 795 | { | 833 | { |
| 834 | + columnChineseName: "终配航线", | ||
| 835 | + columnName: "finalFlightRoute", | ||
| 836 | + columnWidth: "140", | ||
| 837 | + ext1: "sorTable", | ||
| 838 | + status: 1 | ||
| 839 | + }, | ||
| 840 | + { | ||
| 796 | columnChineseName: "二配航班号", | 841 | columnChineseName: "二配航班号", |
| 797 | columnName: "twoMatchFlightNo", | 842 | columnName: "twoMatchFlightNo", |
| 798 | columnWidth: "120", | 843 | columnWidth: "120", |
| ... | @@ -807,6 +852,13 @@ let tableHeaders = { | ... | @@ -807,6 +852,13 @@ let tableHeaders = { |
| 807 | status: 1 | 852 | status: 1 |
| 808 | }, | 853 | }, |
| 809 | { | 854 | { |
| 855 | + columnChineseName: "二配航线", | ||
| 856 | + columnName: "twoFlightRoute", | ||
| 857 | + columnWidth: "140", | ||
| 858 | + ext1: "sorTable", | ||
| 859 | + status: 1 | ||
| 860 | + }, | ||
| 861 | + { | ||
| 810 | columnChineseName: "预配航班号", | 862 | columnChineseName: "预配航班号", |
| 811 | columnName: "preplanFlightNo", | 863 | columnName: "preplanFlightNo", |
| 812 | columnWidth: "120", | 864 | columnWidth: "120", |
| ... | @@ -1220,7 +1272,8 @@ let tableHeaders = { | ... | @@ -1220,7 +1272,8 @@ let tableHeaders = { |
| 1220 | columnName: "remarksDetail", | 1272 | columnName: "remarksDetail", |
| 1221 | columnWidth: "450", | 1273 | columnWidth: "450", |
| 1222 | align: 'left', | 1274 | align: 'left', |
| 1223 | - status: 1 | 1275 | + status: 1, |
| 1276 | + ext1: 'slot', | ||
| 1224 | }, | 1277 | }, |
| 1225 | { | 1278 | { |
| 1226 | columnChineseName: "处理状态级别", | 1279 | columnChineseName: "处理状态级别", |
| ... | @@ -1287,7 +1340,7 @@ let tableHeaders = { | ... | @@ -1287,7 +1340,7 @@ let tableHeaders = { |
| 1287 | status: 1 | 1340 | status: 1 |
| 1288 | }, | 1341 | }, |
| 1289 | { | 1342 | { |
| 1290 | - columnChineseName: "是否开启高地价", | 1343 | + columnChineseName: "是否开启高低价", |
| 1291 | columnName: "highLowPriceFlg", | 1344 | columnName: "highLowPriceFlg", |
| 1292 | columnWidth: "", | 1345 | columnWidth: "", |
| 1293 | status: 1 | 1346 | status: 1 |
| ... | @@ -1493,91 +1546,733 @@ let tableHeaders = { | ... | @@ -1493,91 +1546,733 @@ let tableHeaders = { |
| 1493 | //特殊配舱规则 | 1546 | //特殊配舱规则 |
| 1494 | "superAllocation": [ | 1547 | "superAllocation": [ |
| 1495 | { | 1548 | { |
| 1496 | - columnChineseName: "ShipperAccount", | 1549 | + columnChineseName: "发件人账号", |
| 1497 | columnName: "shipperAccount", | 1550 | columnName: "shipperAccount", |
| 1498 | columnWidth: "", | 1551 | columnWidth: "", |
| 1499 | ext1: "", | 1552 | ext1: "", |
| 1500 | status: 1 | 1553 | status: 1 |
| 1501 | }, | 1554 | }, |
| 1502 | { | 1555 | { |
| 1503 | - columnChineseName: "原航班", | 1556 | + columnChineseName: "航班日期", |
| 1504 | - columnName: "accsFlightNo", | 1557 | + columnName: "flightDate", |
| 1558 | + columnWidth: "", | ||
| 1559 | + ext1: "", | ||
| 1560 | + status: 1 | ||
| 1561 | + }, | ||
| 1562 | + { | ||
| 1563 | + columnChineseName: "航班号", | ||
| 1564 | + columnName: "flightNo", | ||
| 1565 | + columnWidth: "", | ||
| 1566 | + ext1: "", | ||
| 1567 | + status: 1 | ||
| 1568 | + }, | ||
| 1569 | + { | ||
| 1570 | + columnChineseName: "航线", | ||
| 1571 | + columnName: "flightRoute", | ||
| 1572 | + columnWidth: "", | ||
| 1573 | + ext1: "", | ||
| 1574 | + status: 1 | ||
| 1575 | + }, | ||
| 1576 | + { | ||
| 1577 | + columnChineseName: "URSA", | ||
| 1578 | + columnName: "includeUrsa", | ||
| 1579 | + columnWidth: "", | ||
| 1580 | + ext1: "", | ||
| 1581 | + status: 1 | ||
| 1582 | + }, | ||
| 1583 | + { | ||
| 1584 | + columnChineseName: "申报类型", | ||
| 1585 | + columnName: "classification", | ||
| 1586 | + columnWidth: "", | ||
| 1587 | + ext1: "", | ||
| 1588 | + status: 1 | ||
| 1589 | + }, | ||
| 1590 | + { | ||
| 1591 | + columnChineseName: "服务类型", | ||
| 1592 | + columnName: "serviceCode", | ||
| 1593 | + columnWidth: "", | ||
| 1594 | + ext1: "", | ||
| 1595 | + status: 1 | ||
| 1596 | + }, | ||
| 1597 | + { | ||
| 1598 | + columnChineseName: "预留舱位", | ||
| 1599 | + columnName: "groupAllWeight", | ||
| 1600 | + columnWidth: "", | ||
| 1601 | + ext1: "", | ||
| 1602 | + status: 1 | ||
| 1603 | + }, | ||
| 1604 | + { | ||
| 1605 | + columnChineseName: "已配舱位", | ||
| 1606 | + columnName: "accountAllocatedWeight", | ||
| 1607 | + columnWidth: "", | ||
| 1608 | + ext1: "", | ||
| 1609 | + status: 1 | ||
| 1610 | + }, | ||
| 1611 | + ], | ||
| 1612 | + //航班目的地 | ||
| 1613 | + "flightToArea": [ | ||
| 1614 | + { | ||
| 1615 | + columnChineseName: "生效开始时间", | ||
| 1616 | + columnName: "beginDate", | ||
| 1617 | + columnWidth: "", | ||
| 1618 | + ext1: "", | ||
| 1619 | + status: 1 | ||
| 1620 | + }, | ||
| 1621 | + { | ||
| 1622 | + columnChineseName: "生效结束时间", | ||
| 1623 | + columnName: "endDate", | ||
| 1624 | + columnWidth: "", | ||
| 1625 | + ext1: "", | ||
| 1626 | + status: 1 | ||
| 1627 | + }, | ||
| 1628 | + { | ||
| 1629 | + columnChineseName: "区域", | ||
| 1630 | + columnName: "region", | ||
| 1631 | + columnWidth: "", | ||
| 1632 | + ext1: "", | ||
| 1633 | + status: 1 | ||
| 1634 | + }, | ||
| 1635 | + { | ||
| 1636 | + columnChineseName: "地区", | ||
| 1637 | + columnName: "area", | ||
| 1638 | + columnWidth: "", | ||
| 1639 | + ext1: "", | ||
| 1640 | + status: 1 | ||
| 1641 | + }, | ||
| 1642 | + { | ||
| 1643 | + columnChineseName: "航班", | ||
| 1644 | + columnName: "fltNo", | ||
| 1645 | + columnWidth: "", | ||
| 1646 | + ext1: "", | ||
| 1647 | + status: 1 | ||
| 1648 | + }, | ||
| 1649 | + { | ||
| 1650 | + columnChineseName: "航线", | ||
| 1651 | + columnName: "route", | ||
| 1652 | + columnWidth: "", | ||
| 1653 | + ext1: "", | ||
| 1654 | + status: 1 | ||
| 1655 | + }, | ||
| 1656 | + { | ||
| 1657 | + columnChineseName: "操作人", | ||
| 1658 | + columnName: "createUserName", | ||
| 1659 | + columnWidth: "", | ||
| 1660 | + ext1: "", | ||
| 1661 | + status: 1 | ||
| 1662 | + }, | ||
| 1663 | + { | ||
| 1664 | + columnChineseName: "操作时间", | ||
| 1665 | + columnName: "createTime", | ||
| 1666 | + columnWidth: "", | ||
| 1667 | + ext1: "", | ||
| 1668 | + status: 1 | ||
| 1669 | + }, | ||
| 1670 | + ], | ||
| 1671 | + //ursa目的地 | ||
| 1672 | + "ursaToArea": [ | ||
| 1673 | + { | ||
| 1674 | + columnChineseName: "生效开始时间", | ||
| 1675 | + columnName: "beginDate", | ||
| 1676 | + columnWidth: "150", | ||
| 1677 | + ext1: "", | ||
| 1678 | + status: 1 | ||
| 1679 | + }, | ||
| 1680 | + { | ||
| 1681 | + columnChineseName: "生效结束时间", | ||
| 1682 | + columnName: "endDate", | ||
| 1505 | columnWidth: "150", | 1683 | columnWidth: "150", |
| 1506 | ext1: "", | 1684 | ext1: "", |
| 1507 | status: 1 | 1685 | status: 1 |
| 1508 | }, | 1686 | }, |
| 1509 | { | 1687 | { |
| 1688 | + columnChineseName: "区域", | ||
| 1689 | + columnName: "region", | ||
| 1690 | + columnWidth: "120", | ||
| 1691 | + ext1: "", | ||
| 1692 | + status: 1 | ||
| 1693 | + }, | ||
| 1694 | + { | ||
| 1695 | + columnChineseName: "地区", | ||
| 1696 | + columnName: "area", | ||
| 1697 | + columnWidth: "120", | ||
| 1698 | + ext1: "", | ||
| 1699 | + status: 1 | ||
| 1700 | + }, | ||
| 1701 | + { | ||
| 1702 | + columnChineseName: "URSA", | ||
| 1703 | + columnName: "ursa", | ||
| 1704 | + columnWidth: "", | ||
| 1705 | + ext1: "", | ||
| 1706 | + status: 1 | ||
| 1707 | + }, | ||
| 1708 | + { | ||
| 1510 | columnChineseName: "操作人", | 1709 | columnChineseName: "操作人", |
| 1511 | - columnName: "updateUserName", | 1710 | + columnName: "createUserName", |
| 1512 | columnWidth: "100", | 1711 | columnWidth: "100", |
| 1513 | ext1: "", | 1712 | ext1: "", |
| 1514 | status: 1 | 1713 | status: 1 |
| 1515 | }, | 1714 | }, |
| 1516 | { | 1715 | { |
| 1517 | columnChineseName: "操作时间", | 1716 | columnChineseName: "操作时间", |
| 1518 | - columnName: "updateTime", | 1717 | + columnName: "createTime", |
| 1519 | columnWidth: "200", | 1718 | columnWidth: "200", |
| 1520 | ext1: "", | 1719 | ext1: "", |
| 1521 | status: 1 | 1720 | status: 1 |
| 1522 | }, | 1721 | }, |
| 1523 | ], | 1722 | ], |
| 1524 | - "newSuperAllocation": [ | 1723 | + //preMde查询 |
| 1724 | + "preMdeSelect": [ | ||
| 1525 | { | 1725 | { |
| 1526 | - columnChineseName: "航班日期", | 1726 | + columnChineseName: "地区", |
| 1527 | - columnName: "", | 1727 | + columnName: "area", |
| 1528 | columnWidth: "", | 1728 | columnWidth: "", |
| 1529 | ext1: "", | 1729 | ext1: "", |
| 1530 | status: 1 | 1730 | status: 1 |
| 1531 | }, | 1731 | }, |
| 1532 | { | 1732 | { |
| 1533 | - columnChineseName: "航班号", | 1733 | + columnChineseName: "区域", |
| 1534 | - columnName: "", | 1734 | + columnName: "region", |
| 1535 | columnWidth: "", | 1735 | columnWidth: "", |
| 1536 | ext1: "", | 1736 | ext1: "", |
| 1537 | status: 1 | 1737 | status: 1 |
| 1538 | }, | 1738 | }, |
| 1539 | { | 1739 | { |
| 1540 | - columnChineseName: "航线", | 1740 | + columnChineseName: "口岸代码", |
| 1541 | - columnName: "", | 1741 | + columnName: "portName", |
| 1742 | + columnWidth: "", | ||
| 1743 | + ext1: "", | ||
| 1744 | + status: 1 | ||
| 1745 | + }, | ||
| 1746 | + { | ||
| 1747 | + columnChineseName: "取件日期", | ||
| 1748 | + columnName: "pickUpDate", | ||
| 1749 | + columnWidth: "100", | ||
| 1750 | + ext1: "", | ||
| 1751 | + status: 1 | ||
| 1752 | + }, | ||
| 1753 | + { | ||
| 1754 | + columnChineseName: "取件扫描号", | ||
| 1755 | + columnName: "pickUpScanNo", | ||
| 1756 | + columnWidth: "100", | ||
| 1757 | + ext1: "", | ||
| 1758 | + status: 1 | ||
| 1759 | + }, | ||
| 1760 | + { | ||
| 1761 | + columnChineseName: "站点", | ||
| 1762 | + columnName: "siteName", | ||
| 1763 | + columnWidth: "", | ||
| 1764 | + ext1: "", | ||
| 1765 | + status: 1 | ||
| 1766 | + }, | ||
| 1767 | + { | ||
| 1768 | + columnChineseName: "运单号", | ||
| 1769 | + columnName: "waybillNo", | ||
| 1770 | + columnWidth: "120", | ||
| 1771 | + ext1: "", | ||
| 1772 | + status: 1 | ||
| 1773 | + }, | ||
| 1774 | + { | ||
| 1775 | + columnChineseName: "总单号", | ||
| 1776 | + columnName: "totalWaybillNo", | ||
| 1777 | + columnWidth: "120", | ||
| 1778 | + ext1: "", | ||
| 1779 | + status: 1 | ||
| 1780 | + }, | ||
| 1781 | + { | ||
| 1782 | + columnChineseName: "服务类型", | ||
| 1783 | + columnName: "serviceType", | ||
| 1784 | + columnWidth: "", | ||
| 1785 | + ext1: "", | ||
| 1786 | + status: 1 | ||
| 1787 | + }, | ||
| 1788 | + { | ||
| 1789 | + columnChineseName: "服务代码", | ||
| 1790 | + columnName: "serviceCode", | ||
| 1542 | columnWidth: "", | 1791 | columnWidth: "", |
| 1543 | ext1: "", | 1792 | ext1: "", |
| 1544 | status: 1 | 1793 | status: 1 |
| 1545 | }, | 1794 | }, |
| 1546 | { | 1795 | { |
| 1547 | columnChineseName: "URSA", | 1796 | columnChineseName: "URSA", |
| 1548 | - columnName: "", | 1797 | + columnName: "ursa", |
| 1549 | columnWidth: "", | 1798 | columnWidth: "", |
| 1550 | ext1: "", | 1799 | ext1: "", |
| 1551 | status: 1 | 1800 | status: 1 |
| 1552 | }, | 1801 | }, |
| 1553 | { | 1802 | { |
| 1554 | columnChineseName: "申报类型", | 1803 | columnChineseName: "申报类型", |
| 1555 | - columnName: "", | 1804 | + columnName: "typeName", |
| 1556 | columnWidth: "", | 1805 | columnWidth: "", |
| 1557 | ext1: "", | 1806 | ext1: "", |
| 1558 | status: 1 | 1807 | status: 1 |
| 1559 | }, | 1808 | }, |
| 1560 | { | 1809 | { |
| 1561 | - columnChineseName: "服务类型", | 1810 | + columnChineseName: "HangdingCode", |
| 1562 | - columnName: "", | 1811 | + columnName: "handingCode", |
| 1812 | + columnWidth: "120", | ||
| 1813 | + ext1: "", | ||
| 1814 | + status: 1 | ||
| 1815 | + }, | ||
| 1816 | + { | ||
| 1817 | + columnChineseName: "Subcategory", | ||
| 1818 | + columnName: "subCategory", | ||
| 1819 | + columnWidth: "120", | ||
| 1820 | + ext1: "", | ||
| 1821 | + status: 1 | ||
| 1822 | + }, | ||
| 1823 | + { | ||
| 1824 | + columnChineseName: "件数", | ||
| 1825 | + columnName: "qty", | ||
| 1563 | columnWidth: "", | 1826 | columnWidth: "", |
| 1564 | ext1: "", | 1827 | ext1: "", |
| 1565 | status: 1 | 1828 | status: 1 |
| 1566 | }, | 1829 | }, |
| 1567 | { | 1830 | { |
| 1568 | - columnChineseName: "预留仓位", | 1831 | + columnChineseName: "实际重量", |
| 1569 | - columnName: "", | 1832 | + columnName: "actualWeight", |
| 1570 | columnWidth: "", | 1833 | columnWidth: "", |
| 1571 | ext1: "", | 1834 | ext1: "", |
| 1572 | status: 1 | 1835 | status: 1 |
| 1573 | }, | 1836 | }, |
| 1574 | { | 1837 | { |
| 1575 | - columnChineseName: "已配仓位", | 1838 | + columnChineseName: "体积", |
| 1576 | - columnName: "", | 1839 | + columnName: "volume", |
| 1577 | columnWidth: "", | 1840 | columnWidth: "", |
| 1578 | ext1: "", | 1841 | ext1: "", |
| 1579 | status: 1 | 1842 | status: 1 |
| 1580 | }, | 1843 | }, |
| 1844 | + { | ||
| 1845 | + columnChineseName: "收件人国家代码", | ||
| 1846 | + columnName: "consigneeCountry", | ||
| 1847 | + columnWidth: "130", | ||
| 1848 | + ext1: "", | ||
| 1849 | + status: 1 | ||
| 1850 | + }, | ||
| 1851 | + { | ||
| 1852 | + columnChineseName: "品名描述", | ||
| 1853 | + columnName: "nameDescription", | ||
| 1854 | + columnWidth: "", | ||
| 1855 | + ext1: "", | ||
| 1856 | + status: 1 | ||
| 1857 | + }, | ||
| 1858 | + { | ||
| 1859 | + columnChineseName: "ACCS原航班号", | ||
| 1860 | + columnName: "flightNo", | ||
| 1861 | + columnWidth: "120", | ||
| 1862 | + ext1: "", | ||
| 1863 | + status: 1 | ||
| 1864 | + }, | ||
| 1865 | + { | ||
| 1866 | + columnChineseName: "ACCS原航班日期", | ||
| 1867 | + columnName: "flightDate", | ||
| 1868 | + columnWidth: "130", | ||
| 1869 | + ext1: "", | ||
| 1870 | + status: 1 | ||
| 1871 | + }, | ||
| 1872 | + { | ||
| 1873 | + columnChineseName: "ACCS原航线", | ||
| 1874 | + columnName: "flightRoute", | ||
| 1875 | + columnWidth: "120", | ||
| 1876 | + ext1: "", | ||
| 1877 | + status: 1 | ||
| 1878 | + }, | ||
| 1879 | + { | ||
| 1880 | + columnChineseName: "是否RDE手工录入", | ||
| 1881 | + columnName: "manualRde", | ||
| 1882 | + columnWidth: "130", | ||
| 1883 | + ext1: "", | ||
| 1884 | + status: 1 | ||
| 1885 | + }, | ||
| 1886 | + { | ||
| 1887 | + columnChineseName: "发件人帐号", | ||
| 1888 | + columnName: "shipperAccount", | ||
| 1889 | + columnWidth: "120", | ||
| 1890 | + ext1: "", | ||
| 1891 | + status: 1 | ||
| 1892 | + }, | ||
| 1893 | + { | ||
| 1894 | + columnChineseName: "发件公司中文名称", | ||
| 1895 | + columnName: "shipperCompany", | ||
| 1896 | + columnWidth: "130", | ||
| 1897 | + ext1: "", | ||
| 1898 | + status: 1 | ||
| 1899 | + }, | ||
| 1900 | + { | ||
| 1901 | + columnChineseName: "始发地城市名称", | ||
| 1902 | + columnName: "originCity", | ||
| 1903 | + columnWidth: "130", | ||
| 1904 | + ext1: "", | ||
| 1905 | + status: 1 | ||
| 1906 | + }, | ||
| 1907 | + { | ||
| 1908 | + columnChineseName: "创建时间", | ||
| 1909 | + columnName: "createTime", | ||
| 1910 | + columnWidth: "", | ||
| 1911 | + ext1: "", | ||
| 1912 | + status: 1 | ||
| 1913 | + }, | ||
| 1914 | + ], | ||
| 1915 | + "report": [ | ||
| 1916 | + { | ||
| 1917 | + columnChineseName: "地区", | ||
| 1918 | + columnName: "area", | ||
| 1919 | + columnWidth: "", | ||
| 1920 | + ext1: "", | ||
| 1921 | + status: 1 | ||
| 1922 | + }, | ||
| 1923 | + { | ||
| 1924 | + columnChineseName: "区域", | ||
| 1925 | + columnName: "region", | ||
| 1926 | + columnWidth: "", | ||
| 1927 | + ext1: "", | ||
| 1928 | + status: 1 | ||
| 1929 | + }, | ||
| 1930 | + { | ||
| 1931 | + columnChineseName: "口岸代码", | ||
| 1932 | + columnName: "portName", | ||
| 1933 | + columnWidth: "", | ||
| 1934 | + ext1: "", | ||
| 1935 | + status: 1 | ||
| 1936 | + }, | ||
| 1937 | + { | ||
| 1938 | + columnChineseName: "取件日期", | ||
| 1939 | + columnName: "pickUpDate", | ||
| 1940 | + columnWidth: "100", | ||
| 1941 | + ext1: "", | ||
| 1942 | + status: 1 | ||
| 1943 | + }, | ||
| 1944 | + { | ||
| 1945 | + columnChineseName: "取件扫描号", | ||
| 1946 | + columnName: "pickUpScanNo", | ||
| 1947 | + columnWidth: "100", | ||
| 1948 | + ext1: "", | ||
| 1949 | + status: 1 | ||
| 1950 | + }, | ||
| 1951 | + { | ||
| 1952 | + columnChineseName: "站点", | ||
| 1953 | + columnName: "siteName", | ||
| 1954 | + columnWidth: "", | ||
| 1955 | + ext1: "", | ||
| 1956 | + status: 1 | ||
| 1957 | + }, | ||
| 1958 | + { | ||
| 1959 | + columnChineseName: "运单号", | ||
| 1960 | + columnName: "waybillNo", | ||
| 1961 | + columnWidth: "120", | ||
| 1962 | + ext1: "", | ||
| 1963 | + status: 1 | ||
| 1964 | + }, | ||
| 1965 | + { | ||
| 1966 | + columnChineseName: "总单号", | ||
| 1967 | + columnName: "totalWaybillNo", | ||
| 1968 | + columnWidth: "120", | ||
| 1969 | + ext1: "", | ||
| 1970 | + status: 1 | ||
| 1971 | + }, | ||
| 1972 | + { | ||
| 1973 | + columnChineseName: "服务类型", | ||
| 1974 | + columnName: "serviceType", | ||
| 1975 | + columnWidth: "", | ||
| 1976 | + ext1: "", | ||
| 1977 | + status: 1 | ||
| 1978 | + }, | ||
| 1979 | + { | ||
| 1980 | + columnChineseName: "服务代码", | ||
| 1981 | + columnName: "serviceCode", | ||
| 1982 | + columnWidth: "", | ||
| 1983 | + ext1: "", | ||
| 1984 | + status: 1 | ||
| 1985 | + }, | ||
| 1986 | + { | ||
| 1987 | + columnChineseName: "URSA", | ||
| 1988 | + columnName: "ursa", | ||
| 1989 | + columnWidth: "", | ||
| 1990 | + ext1: "", | ||
| 1991 | + status: 1 | ||
| 1992 | + }, | ||
| 1993 | + { | ||
| 1994 | + columnChineseName: "申报类型", | ||
| 1995 | + columnName: "typeName", | ||
| 1996 | + columnWidth: "", | ||
| 1997 | + ext1: "", | ||
| 1998 | + status: 1 | ||
| 1999 | + }, | ||
| 2000 | + { | ||
| 2001 | + columnChineseName: "HangdingCode", | ||
| 2002 | + columnName: "handingCode", | ||
| 2003 | + columnWidth: "120", | ||
| 2004 | + ext1: "", | ||
| 2005 | + status: 1 | ||
| 2006 | + }, | ||
| 2007 | + { | ||
| 2008 | + columnChineseName: "Subcategory", | ||
| 2009 | + columnName: "subCategory", | ||
| 2010 | + columnWidth: "120", | ||
| 2011 | + ext1: "", | ||
| 2012 | + status: 1 | ||
| 2013 | + }, | ||
| 2014 | + { | ||
| 2015 | + columnChineseName: "件数", | ||
| 2016 | + columnName: "qty", | ||
| 2017 | + columnWidth: "", | ||
| 2018 | + ext1: "", | ||
| 2019 | + status: 1 | ||
| 2020 | + }, | ||
| 2021 | + { | ||
| 2022 | + columnChineseName: "实际重量", | ||
| 2023 | + columnName: "actualWeight", | ||
| 2024 | + columnWidth: "", | ||
| 2025 | + ext1: "", | ||
| 2026 | + status: 1 | ||
| 2027 | + }, | ||
| 2028 | + { | ||
| 2029 | + columnChineseName: "体积", | ||
| 2030 | + columnName: "volume", | ||
| 2031 | + columnWidth: "", | ||
| 2032 | + ext1: "", | ||
| 2033 | + status: 1 | ||
| 2034 | + }, | ||
| 2035 | + { | ||
| 2036 | + columnChineseName: "收件人国家代码", | ||
| 2037 | + columnName: "consigneeCountry", | ||
| 2038 | + columnWidth: "130", | ||
| 2039 | + ext1: "", | ||
| 2040 | + status: 1 | ||
| 2041 | + }, | ||
| 2042 | + { | ||
| 2043 | + columnChineseName: "品名描述", | ||
| 2044 | + columnName: "nameDescription", | ||
| 2045 | + columnWidth: "", | ||
| 2046 | + ext1: "", | ||
| 2047 | + status: 1 | ||
| 2048 | + }, | ||
| 2049 | + { | ||
| 2050 | + columnChineseName: "ACCS原航班号", | ||
| 2051 | + columnName: "flightNo", | ||
| 2052 | + columnWidth: "120", | ||
| 2053 | + ext1: "", | ||
| 2054 | + status: 1 | ||
| 2055 | + }, | ||
| 2056 | + { | ||
| 2057 | + columnChineseName: "ACCS原航班日期", | ||
| 2058 | + columnName: "flightDate", | ||
| 2059 | + columnWidth: "130", | ||
| 2060 | + ext1: "", | ||
| 2061 | + status: 1 | ||
| 2062 | + }, | ||
| 2063 | + { | ||
| 2064 | + columnChineseName: "ACCS原航线", | ||
| 2065 | + columnName: "flightRoute", | ||
| 2066 | + columnWidth: "120", | ||
| 2067 | + ext1: "", | ||
| 2068 | + status: 1 | ||
| 2069 | + }, | ||
| 2070 | + { | ||
| 2071 | + columnChineseName: "手否RDE手工录入", | ||
| 2072 | + columnName: "manualRde", | ||
| 2073 | + columnWidth: "130", | ||
| 2074 | + ext1: "", | ||
| 2075 | + status: 1 | ||
| 2076 | + }, | ||
| 2077 | + { | ||
| 2078 | + columnChineseName: "发件人帐号", | ||
| 2079 | + columnName: "shipperAccount", | ||
| 2080 | + columnWidth: "120", | ||
| 2081 | + ext1: "", | ||
| 2082 | + status: 1 | ||
| 2083 | + }, | ||
| 2084 | + { | ||
| 2085 | + columnChineseName: "发件公司中文名称", | ||
| 2086 | + columnName: "shipperCompany", | ||
| 2087 | + columnWidth: "130", | ||
| 2088 | + ext1: "", | ||
| 2089 | + status: 1 | ||
| 2090 | + }, | ||
| 2091 | + { | ||
| 2092 | + columnChineseName: "始发地城市名称", | ||
| 2093 | + columnName: "originCity", | ||
| 2094 | + columnWidth: "130", | ||
| 2095 | + ext1: "", | ||
| 2096 | + status: 1 | ||
| 2097 | + }, | ||
| 2098 | + { | ||
| 2099 | + columnChineseName: "创建时间", | ||
| 2100 | + columnName: "createTime", | ||
| 2101 | + columnWidth: "", | ||
| 2102 | + ext1: "", | ||
| 2103 | + status: 1 | ||
| 2104 | + }, | ||
| 2105 | + ], | ||
| 2106 | + 'goodsLogStation': [ | ||
| 2107 | + { | ||
| 2108 | + columnChineseName: "上传文件名", | ||
| 2109 | + columnName: "uploadFileName", | ||
| 2110 | + columnWidth: "", | ||
| 2111 | + ext1: "", | ||
| 2112 | + status: 1 | ||
| 2113 | + }, | ||
| 2114 | + { | ||
| 2115 | + columnChineseName: "导入来源", | ||
| 2116 | + columnName: "module", | ||
| 2117 | + columnWidth: "", | ||
| 2118 | + ext1: "", | ||
| 2119 | + status: 1 | ||
| 2120 | + }, | ||
| 2121 | + { | ||
| 2122 | + columnChineseName: "货站名称", | ||
| 2123 | + columnName: "ext", | ||
| 2124 | + columnWidth: "", | ||
| 2125 | + ext1: "", | ||
| 2126 | + status: 1 | ||
| 2127 | + }, | ||
| 2128 | + { | ||
| 2129 | + columnChineseName: "上传时间", | ||
| 2130 | + columnName: "uploadTime", | ||
| 2131 | + columnWidth: "", | ||
| 2132 | + ext1: "", | ||
| 2133 | + status: 1 | ||
| 2134 | + }, | ||
| 2135 | + { | ||
| 2136 | + columnChineseName: "执行时间", | ||
| 2137 | + columnName: "executionTime", | ||
| 2138 | + columnWidth: "", | ||
| 2139 | + ext1: "", | ||
| 2140 | + status: 1 | ||
| 2141 | + }, | ||
| 2142 | + { | ||
| 2143 | + columnChineseName: "完成时间", | ||
| 2144 | + columnName: "completeTime", | ||
| 2145 | + columnWidth: "", | ||
| 2146 | + ext1: "", | ||
| 2147 | + status: 1 | ||
| 2148 | + }, | ||
| 2149 | + { | ||
| 2150 | + columnChineseName: "执行数量", | ||
| 2151 | + columnName: "executionCount", | ||
| 2152 | + columnWidth: "", | ||
| 2153 | + ext1: "", | ||
| 2154 | + status: 1 | ||
| 2155 | + }, | ||
| 2156 | + { | ||
| 2157 | + columnChineseName: "执行结果", | ||
| 2158 | + columnName: "executionResult", | ||
| 2159 | + columnWidth: "", | ||
| 2160 | + ext1: "", | ||
| 2161 | + status: 1 | ||
| 2162 | + }, | ||
| 2163 | + { | ||
| 2164 | + columnChineseName: "执行步骤", | ||
| 2165 | + columnName: "status", | ||
| 2166 | + columnWidth: "", | ||
| 2167 | + ext1: "", | ||
| 2168 | + status: 1 | ||
| 2169 | + }, | ||
| 2170 | + ], | ||
| 2171 | + //操作日志 | ||
| 2172 | + "operationLog": [ | ||
| 2173 | + { | ||
| 2174 | + columnChineseName: "功能模块", | ||
| 2175 | + columnName: "module", | ||
| 2176 | + columnWidth: "120", | ||
| 2177 | + ext1: "", | ||
| 2178 | + status: 1 | ||
| 2179 | + }, | ||
| 2180 | + { | ||
| 2181 | + columnChineseName: "操作时间", | ||
| 2182 | + columnName: "createTime", | ||
| 2183 | + columnWidth: "150", | ||
| 2184 | + ext1: "", | ||
| 2185 | + status: 1 | ||
| 2186 | + }, | ||
| 2187 | + { | ||
| 2188 | + columnChineseName: "操作人", | ||
| 2189 | + columnName: "userName", | ||
| 2190 | + columnWidth: "120", | ||
| 2191 | + ext1: "", | ||
| 2192 | + status: 1 | ||
| 2193 | + }, | ||
| 2194 | + { | ||
| 2195 | + columnChineseName: "操作描述", | ||
| 2196 | + columnName: "describe", | ||
| 2197 | + columnWidth: "", | ||
| 2198 | + ext1: "", | ||
| 2199 | + status: 1 | ||
| 2200 | + }, | ||
| 2201 | + { | ||
| 2202 | + columnChineseName: "操作结果", | ||
| 2203 | + columnName: "result", | ||
| 2204 | + columnWidth: "", | ||
| 2205 | + ext1: "slot", | ||
| 2206 | + status: 1 | ||
| 2207 | + }, | ||
| 2208 | + | ||
| 2209 | + { | ||
| 2210 | + columnChineseName: "备注", | ||
| 2211 | + columnName: "remark", | ||
| 2212 | + columnWidth: "500", | ||
| 2213 | + ext1: "slot", | ||
| 2214 | + status: 1 | ||
| 2215 | + }, | ||
| 2216 | + { | ||
| 2217 | + columnChineseName: "操作参数", | ||
| 2218 | + columnName: "requestParameters", | ||
| 2219 | + columnWidth: "100", | ||
| 2220 | + ext1: "slot", | ||
| 2221 | + status: 1 | ||
| 2222 | + }, | ||
| 2223 | + | ||
| 2224 | + ], | ||
| 2225 | + //历史数据文件查询 | ||
| 2226 | + "archiveData": [ | ||
| 2227 | + { | ||
| 2228 | + columnChineseName: "文件名", | ||
| 2229 | + columnName: "packageName", | ||
| 2230 | + columnWidth: "", | ||
| 2231 | + ext1: "", | ||
| 2232 | + status: 1 | ||
| 2233 | + }, | ||
| 2234 | + { | ||
| 2235 | + columnChineseName: "创建时间", | ||
| 2236 | + columnName: "createTime", | ||
| 2237 | + columnWidth: "", | ||
| 2238 | + ext1: "", | ||
| 2239 | + status: 1 | ||
| 2240 | + }, | ||
| 2241 | + { | ||
| 2242 | + columnChineseName: "创建人", | ||
| 2243 | + columnName: "userName", | ||
| 2244 | + columnWidth: "", | ||
| 2245 | + ext1: "", | ||
| 2246 | + status: 1 | ||
| 2247 | + }, | ||
| 2248 | + { | ||
| 2249 | + columnChineseName: "处理状态", | ||
| 2250 | + columnName: "status", | ||
| 2251 | + columnWidth: "", | ||
| 2252 | + ext1: "", | ||
| 2253 | + status: 1 | ||
| 2254 | + }, | ||
| 2255 | + { | ||
| 2256 | + columnChineseName: "处理时间", | ||
| 2257 | + columnName: "updateTime", | ||
| 2258 | + columnWidth: "", | ||
| 2259 | + ext1: "", | ||
| 2260 | + status: 1 | ||
| 2261 | + }, | ||
| 2262 | + { | ||
| 2263 | + columnChineseName: "查询条件", | ||
| 2264 | + columnName: "queryParameter", | ||
| 2265 | + columnWidth: "", | ||
| 2266 | + ext1: "slot", | ||
| 2267 | + status: 1 | ||
| 2268 | + }, | ||
| 2269 | + { | ||
| 2270 | + columnChineseName: "下载地址", | ||
| 2271 | + columnName: "downloadPath", | ||
| 2272 | + columnWidth: "", | ||
| 2273 | + ext1: "slot", | ||
| 2274 | + status: 1 | ||
| 2275 | + }, | ||
| 1581 | ] | 2276 | ] |
| 1582 | } | 2277 | } |
| 1583 | 2278 | ... | ... |
| ... | @@ -292,4 +292,19 @@ body { | ... | @@ -292,4 +292,19 @@ body { |
| 292 | 292 | ||
| 293 | .el-select-dropdown { | 293 | .el-select-dropdown { |
| 294 | max-width: 300px; | 294 | max-width: 300px; |
| 295 | +} | ||
| 296 | + | ||
| 297 | +.backgroundCollapse { | ||
| 298 | + .el-collapse-item__header { | ||
| 299 | + background-color: #d9ecff !important; | ||
| 300 | + border-bottom: 1px solid #ccc; | ||
| 301 | + } | ||
| 302 | +} | ||
| 303 | + | ||
| 304 | +.numberInput { | ||
| 305 | + width: 100% !important; | ||
| 306 | +} | ||
| 307 | + | ||
| 308 | +.el-select-dropdown__wrap { | ||
| 309 | + max-height: 350px !important; | ||
| 295 | } | 310 | } |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -81,8 +81,7 @@ export default { | ... | @@ -81,8 +81,7 @@ export default { |
| 81 | <style lang="scss" scoped> | 81 | <style lang="scss" scoped> |
| 82 | .container { | 82 | .container { |
| 83 | max-width: 350px; | 83 | max-width: 350px; |
| 84 | - min-height: 32px; | 84 | + height: 150px; |
| 85 | - max-height: 150px; | ||
| 86 | overflow-y: scroll; | 85 | overflow-y: scroll; |
| 87 | padding: 0; | 86 | padding: 0; |
| 88 | border: 1px solid #ccc; | 87 | border: 1px solid #ccc; | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | - <el-button v-if="buttonShow" class="mt5" size="mini" icon="el-icon-edit-outline" circle @click="visibleOpen"> | 3 | + <el-button v-if="buttonShow" class="mt5" size="mini" style="color:#1890ff" icon="el-icon-edit-outline" circle |
| 4 | + @click="visibleOpen"> | ||
| 4 | </el-button> | 5 | </el-button> |
| 5 | <el-dialog title="表格显示设置" :visible.sync="open" width="40%" :close-on-click-modal="false" :show-close="false" | 6 | <el-dialog title="表格显示设置" :visible.sync="open" width="40%" :close-on-click-modal="false" :show-close="false" |
| 6 | - append-to-body center> | 7 | + append-to-body center @close="close"> |
| 7 | <div style="text-align: center"> | 8 | <div style="text-align: center"> |
| 8 | <el-transfer style="text-align: left; display: inline-block" :data="transferData" | 9 | <el-transfer style="text-align: left; display: inline-block" :data="transferData" |
| 9 | :right-default-checked="rightDefaultChecked" v-model="transferValue" :titles="transferTitle" | 10 | :right-default-checked="rightDefaultChecked" v-model="transferValue" :titles="transferTitle" | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="component-upload-image"> | 2 | <div class="component-upload-image"> |
| 3 | - <el-upload | 3 | + <el-upload :action="uploadImgUrl" list-type="picture-card" :on-success="handleUploadSuccess" |
| 4 | - :action="uploadImgUrl" | 4 | + :before-upload="handleBeforeUpload" :on-error="handleUploadError" name="file" :show-file-list="false" |
| 5 | - list-type="picture-card" | 5 | + :headers="headers" style="display: inline-block; vertical-align: top"> |
| 6 | - :on-success="handleUploadSuccess" | ||
| 7 | - :before-upload="handleBeforeUpload" | ||
| 8 | - :on-error="handleUploadError" | ||
| 9 | - name="file" | ||
| 10 | - :show-file-list="false" | ||
| 11 | - :headers="headers" | ||
| 12 | - style="display: inline-block; vertical-align: top" | ||
| 13 | - > | ||
| 14 | <el-image v-if="!value" :src="value"> | 6 | <el-image v-if="!value" :src="value"> |
| 15 | <div slot="error" class="image-slot"> | 7 | <div slot="error" class="image-slot"> |
| 16 | <i class="el-icon-plus" /> | 8 | <i class="el-icon-plus" /> |
| 17 | </div> | 9 | </div> |
| 18 | </el-image> | 10 | </el-image> |
| 19 | <div v-else class="image"> | 11 | <div v-else class="image"> |
| 20 | - <el-image :src="value" :style="`width:150px;height:150px;`" fit="fill"/> | 12 | + <el-image :src="value" :style="`width:150px;height:150px;`" fit="fill" /> |
| 21 | <div class="mask"> | 13 | <div class="mask"> |
| 22 | <div class="actions"> | 14 | <div class="actions"> |
| 23 | <span title="预览" @click.stop="dialogVisible = true"> | 15 | <span title="预览" @click.stop="dialogVisible = true"> |
| ... | @@ -30,7 +22,7 @@ | ... | @@ -30,7 +22,7 @@ |
| 30 | </div> | 22 | </div> |
| 31 | </div> | 23 | </div> |
| 32 | </el-upload> | 24 | </el-upload> |
| 33 | - <el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body> | 25 | + <el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body :close-on-press-escape="false"> |
| 34 | <img :src="value" style="display: block; max-width: 100%; margin: 0 auto;"> | 26 | <img :src="value" style="display: block; max-width: 100%; margin: 0 auto;"> |
| 35 | </el-dialog> | 27 | </el-dialog> |
| 36 | </div> | 28 | </div> |
| ... | @@ -45,7 +37,7 @@ export default { | ... | @@ -45,7 +37,7 @@ export default { |
| 45 | dialogVisible: false, | 37 | dialogVisible: false, |
| 46 | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 | 38 | uploadImgUrl: process.env.VUE_APP_BASE_API + "/common/upload", // 上传的图片服务器地址 |
| 47 | headers: { | 39 | headers: { |
| 48 | - Authorization: getToken(), | 40 | + Authorization: getToken(), |
| 49 | }, | 41 | }, |
| 50 | }; | 42 | }; |
| 51 | }, | 43 | }, |
| ... | @@ -85,6 +77,7 @@ export default { | ... | @@ -85,6 +77,7 @@ export default { |
| 85 | <style scoped lang="scss"> | 77 | <style scoped lang="scss"> |
| 86 | .image { | 78 | .image { |
| 87 | position: relative; | 79 | position: relative; |
| 80 | + | ||
| 88 | .mask { | 81 | .mask { |
| 89 | opacity: 0; | 82 | opacity: 0; |
| 90 | position: absolute; | 83 | position: absolute; |
| ... | @@ -93,6 +86,7 @@ export default { | ... | @@ -93,6 +86,7 @@ export default { |
| 93 | background-color: rgba(0, 0, 0, 0.5); | 86 | background-color: rgba(0, 0, 0, 0.5); |
| 94 | transition: all 0.3s; | 87 | transition: all 0.3s; |
| 95 | } | 88 | } |
| 89 | + | ||
| 96 | &:hover .mask { | 90 | &:hover .mask { |
| 97 | opacity: 1; | 91 | opacity: 1; |
| 98 | } | 92 | } | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="top-right-btn"> | 2 | <div class="top-right-btn"> |
| 3 | <el-row> | 3 | <el-row> |
| 4 | - <el-tooltip | 4 | + <el-tooltip class="item" effect="dark" :content="showSearch ? '隐藏搜索' : '显示搜索'" placement="top"> |
| 5 | - class="item" | 5 | + <el-button :size="size" circle icon="el-icon-search" @click="toggleSearch()" /> |
| 6 | - effect="dark" | ||
| 7 | - :content="showSearch ? '隐藏搜索' : '显示搜索'" | ||
| 8 | - placement="top" | ||
| 9 | - > | ||
| 10 | - <el-button | ||
| 11 | - :size="size" | ||
| 12 | - circle | ||
| 13 | - icon="el-icon-search" | ||
| 14 | - @click="toggleSearch()" | ||
| 15 | - /> | ||
| 16 | </el-tooltip> | 6 | </el-tooltip> |
| 17 | <el-tooltip class="item" effect="dark" content="刷新" placement="top"> | 7 | <el-tooltip class="item" effect="dark" content="刷新" placement="top"> |
| 18 | - <el-button | 8 | + <el-button :size="size" circle icon="el-icon-refresh" @click="refresh()" /> |
| 19 | - :size="size" | ||
| 20 | - circle | ||
| 21 | - icon="el-icon-refresh" | ||
| 22 | - @click="refresh()" | ||
| 23 | - /> | ||
| 24 | </el-tooltip> | 9 | </el-tooltip> |
| 25 | - <el-tooltip | 10 | + <el-tooltip class="item" effect="dark" content="显隐列" placement="top" v-if="columns"> |
| 26 | - class="item" | 11 | + <el-button :size="size" circle icon="el-icon-menu" @click="showColumn()" /> |
| 27 | - effect="dark" | ||
| 28 | - content="显隐列" | ||
| 29 | - placement="top" | ||
| 30 | - v-if="columns" | ||
| 31 | - > | ||
| 32 | - <el-button | ||
| 33 | - :size="size" | ||
| 34 | - circle | ||
| 35 | - icon="el-icon-menu" | ||
| 36 | - @click="showColumn()" | ||
| 37 | - /> | ||
| 38 | </el-tooltip> | 12 | </el-tooltip> |
| 39 | </el-row> | 13 | </el-row> |
| 40 | - <el-dialog :title="title" :visible.sync="open" append-to-body> | 14 | + <el-dialog :title="title" :visible.sync="open" append-to-body :close-on-press-escape="false"> |
| 41 | - <el-transfer | 15 | + <el-transfer :titles="['显示', '隐藏']" v-model="value" :data="columns" @change="dataChange"></el-transfer> |
| 42 | - :titles="['显示', '隐藏']" | ||
| 43 | - v-model="value" | ||
| 44 | - :data="columns" | ||
| 45 | - @change="dataChange" | ||
| 46 | - ></el-transfer> | ||
| 47 | </el-dialog> | 16 | </el-dialog> |
| 48 | </div> | 17 | </div> |
| 49 | </template> | 18 | </template> |
| ... | @@ -111,6 +80,7 @@ export default { | ... | @@ -111,6 +80,7 @@ export default { |
| 111 | display: block; | 80 | display: block; |
| 112 | margin-left: 0px; | 81 | margin-left: 0px; |
| 113 | } | 82 | } |
| 83 | + | ||
| 114 | ::v-deep .el-transfer__button:first-child { | 84 | ::v-deep .el-transfer__button:first-child { |
| 115 | margin-bottom: 10px; | 85 | margin-bottom: 10px; |
| 116 | } | 86 | } | ... | ... |
src/components/echarts/echarts-series.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div style="padding:10px;" v-loading="loading"> | ||
| 3 | + <canvas :class="className" :style="{ | ||
| 4 | + height: height, width: width | ||
| 5 | + }"></canvas> | ||
| 6 | + </div> | ||
| 7 | +</template> | ||
| 8 | + | ||
| 9 | +<script> | ||
| 10 | +import Chart from '../../assets/languages/chart.js' | ||
| 11 | + | ||
| 12 | +export default { | ||
| 13 | + name: '', | ||
| 14 | + props: { | ||
| 15 | + className: { | ||
| 16 | + type: String, | ||
| 17 | + default: 'chart' | ||
| 18 | + }, | ||
| 19 | + width: { | ||
| 20 | + type: String, | ||
| 21 | + default: '100%' | ||
| 22 | + }, | ||
| 23 | + height: { | ||
| 24 | + type: String, | ||
| 25 | + default: "350px" | ||
| 26 | + }, | ||
| 27 | + chartData: { | ||
| 28 | + type: Object, | ||
| 29 | + required: true | ||
| 30 | + }, | ||
| 31 | + loading: { | ||
| 32 | + type: Boolean, | ||
| 33 | + default: false | ||
| 34 | + } | ||
| 35 | + }, | ||
| 36 | + data() { | ||
| 37 | + return { | ||
| 38 | + chart: null, | ||
| 39 | + padding: "10px" | ||
| 40 | + } | ||
| 41 | + }, | ||
| 42 | + mounted() { | ||
| 43 | + this.$nextTick(() => { | ||
| 44 | + this.initChart() | ||
| 45 | + }) | ||
| 46 | + }, | ||
| 47 | + watch: { | ||
| 48 | + chartData: { | ||
| 49 | + deep: true, | ||
| 50 | + handler(val) { | ||
| 51 | + this.chartUpdata() | ||
| 52 | + } | ||
| 53 | + } | ||
| 54 | + }, | ||
| 55 | + methods: { | ||
| 56 | + initChart() { | ||
| 57 | + let ctx = document.getElementsByClassName(this.className) | ||
| 58 | + this.chart = new Chart(ctx, this.setOptions(this.chartData)) | ||
| 59 | + }, | ||
| 60 | + setOptions({ names, data1, data2, data3 }) { | ||
| 61 | + // let setOption = ({ | ||
| 62 | + // tooltip: { | ||
| 63 | + // trigger: 'axis', | ||
| 64 | + // axisPointer: { // 坐标轴指示器,坐标轴触发有效 | ||
| 65 | + // type: 'shadow' // 默认为直线,可选为:'line' | 'shadow' | ||
| 66 | + // } | ||
| 67 | + // }, | ||
| 68 | + // legend: { | ||
| 69 | + // show: true | ||
| 70 | + // }, | ||
| 71 | + // dataZoom: [ | ||
| 72 | + // { | ||
| 73 | + // type: 'inside', | ||
| 74 | + // xAxisIndex: [0], | ||
| 75 | + // }, | ||
| 76 | + // { | ||
| 77 | + // type: 'slider', | ||
| 78 | + // show: true, | ||
| 79 | + // start: 0, | ||
| 80 | + // end: 85, | ||
| 81 | + // handleSize: 8 | ||
| 82 | + // }, | ||
| 83 | + // ], | ||
| 84 | + // grid: { | ||
| 85 | + // top: '15%', | ||
| 86 | + // left: '2%', | ||
| 87 | + // right: '2%', | ||
| 88 | + // containLabel: true | ||
| 89 | + // }, | ||
| 90 | + // xAxis: [{ | ||
| 91 | + // type: 'category', | ||
| 92 | + // data: names, | ||
| 93 | + // axisTick: { | ||
| 94 | + // alignWithLabel: true | ||
| 95 | + // } | ||
| 96 | + // }], | ||
| 97 | + // yAxis: [{ | ||
| 98 | + // type: 'value', | ||
| 99 | + // axisTick: { | ||
| 100 | + // show: false | ||
| 101 | + // } | ||
| 102 | + // }], | ||
| 103 | + // series: [{ | ||
| 104 | + // name: '件数', | ||
| 105 | + // type: 'bar', | ||
| 106 | + // data: data1, | ||
| 107 | + // barWidth: '10%', | ||
| 108 | + // barGap: '0%', | ||
| 109 | + // label: { | ||
| 110 | + // show: true, | ||
| 111 | + // position: 'top', | ||
| 112 | + // fontSize: 14 | ||
| 113 | + // }, | ||
| 114 | + // animationDuration: 1000 | ||
| 115 | + // }, | ||
| 116 | + // { | ||
| 117 | + // name: '票数', | ||
| 118 | + // type: 'bar', | ||
| 119 | + // data: data2, | ||
| 120 | + // barWidth: '10%', | ||
| 121 | + // barGap: '0%', | ||
| 122 | + // label: { | ||
| 123 | + // show: true, | ||
| 124 | + // position: 'top', | ||
| 125 | + // fontSize: 14 | ||
| 126 | + // }, | ||
| 127 | + // animationDuration: 1000 | ||
| 128 | + // }, | ||
| 129 | + // { | ||
| 130 | + // name: '重量', | ||
| 131 | + // type: 'bar', | ||
| 132 | + // data: data3, | ||
| 133 | + // barWidth: '10%', | ||
| 134 | + // barGap: '0%', | ||
| 135 | + // label: { | ||
| 136 | + // show: true, | ||
| 137 | + // position: 'top', | ||
| 138 | + // fontSize: 14 | ||
| 139 | + // }, | ||
| 140 | + // animationDuration: 1000 | ||
| 141 | + // }] | ||
| 142 | + // }) | ||
| 143 | + let setOption = { | ||
| 144 | + type: 'bar', | ||
| 145 | + data: { | ||
| 146 | + labels: names, | ||
| 147 | + datasets: [{ | ||
| 148 | + label: '件数', | ||
| 149 | + data: data1, | ||
| 150 | + backgroundColor: 'rgba(255, 99, 132, 1)', | ||
| 151 | + stack: 'group1' | ||
| 152 | + }, | ||
| 153 | + { | ||
| 154 | + label: '票数', | ||
| 155 | + data: data2, | ||
| 156 | + backgroundColor: 'rgba(153, 102, 255, 1)', | ||
| 157 | + stack: 'group2' | ||
| 158 | + }, | ||
| 159 | + { | ||
| 160 | + label: '重量', | ||
| 161 | + data: data3, | ||
| 162 | + backgroundColor: 'rgba(255, 205, 86, 1)', | ||
| 163 | + stack: 'group3' | ||
| 164 | + }] | ||
| 165 | + }, | ||
| 166 | + options: { | ||
| 167 | + events: [''], | ||
| 168 | + hover: { | ||
| 169 | + intersect: false, | ||
| 170 | + animationDuration: 0 | ||
| 171 | + }, | ||
| 172 | + animation: { | ||
| 173 | + duration: 500, | ||
| 174 | + onComplete: (val) => { | ||
| 175 | + let ctx = val.chart.ctx | ||
| 176 | + ctx.textAlign = 'center'; | ||
| 177 | + ctx.textBaseline = 'bottom'; | ||
| 178 | + ctx.font = '14px \"Helvetica Neue\", Helvetica, Arial, sans-serif' | ||
| 179 | + val.chart.data.datasets.forEach((dataset, i) => { | ||
| 180 | + if (val.chart.isDatasetVisible(i)) { | ||
| 181 | + var meta = val.chart.getDatasetMeta(i); | ||
| 182 | + meta.data.forEach(function (bar, index) { | ||
| 183 | + var data = dataset.data[index]; | ||
| 184 | + ctx.fillText(data, bar.x, bar.y - 5); | ||
| 185 | + }); | ||
| 186 | + } | ||
| 187 | + }); | ||
| 188 | + } | ||
| 189 | + }, | ||
| 190 | + legend: { | ||
| 191 | + display: true | ||
| 192 | + }, | ||
| 193 | + tooltips: { | ||
| 194 | + enabled: false, | ||
| 195 | + }, | ||
| 196 | + scales: { | ||
| 197 | + yAxes: [{ | ||
| 198 | + ticks: { | ||
| 199 | + beginAtZero: true | ||
| 200 | + } | ||
| 201 | + }] | ||
| 202 | + } | ||
| 203 | + } | ||
| 204 | + } | ||
| 205 | + return setOption | ||
| 206 | + }, | ||
| 207 | + chartUpdata() { | ||
| 208 | + this.chart.data = { | ||
| 209 | + labels: this.chartData.names, | ||
| 210 | + datasets: [{ | ||
| 211 | + label: '件数', | ||
| 212 | + data: this.chartData.data1, | ||
| 213 | + backgroundColor: 'rgba(255, 99, 132, 1)', | ||
| 214 | + stack: 'group1' | ||
| 215 | + }, | ||
| 216 | + { | ||
| 217 | + label: '票数', | ||
| 218 | + data: this.chartData.data2, | ||
| 219 | + backgroundColor: 'rgba(153, 102, 255, 1)', | ||
| 220 | + stack: 'group2' | ||
| 221 | + }, | ||
| 222 | + { | ||
| 223 | + label: '重量', | ||
| 224 | + data: this.chartData.data3, | ||
| 225 | + backgroundColor: 'rgba(255, 205, 86, 1)', | ||
| 226 | + stack: 'group3' | ||
| 227 | + }] | ||
| 228 | + } | ||
| 229 | + this.chart.update() | ||
| 230 | + } | ||
| 231 | + }, | ||
| 232 | + beforeDestroy() { | ||
| 233 | + if (!this.chart) { | ||
| 234 | + return | ||
| 235 | + } | ||
| 236 | + this.chart.destroy() | ||
| 237 | + this.chart = null | ||
| 238 | + } | ||
| 239 | +} | ||
| 240 | +</script> | ||
| 241 | + | ||
| 242 | +<style> | ||
| 243 | + | ||
| 244 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -3,44 +3,43 @@ | ... | @@ -3,44 +3,43 @@ |
| 3 | * Copyright (c) 2019 FedEx | 3 | * Copyright (c) 2019 FedEx |
| 4 | */ | 4 | */ |
| 5 | 5 | ||
| 6 | - import store from '@/store' | 6 | +import store from '@/store' |
| 7 | 7 | ||
| 8 | - export default { | 8 | +export default { |
| 9 | - inserted(el, binding, vnode) { | 9 | + inserted(el, binding, vnode) { |
| 10 | - const { value } = binding | 10 | + const { value } = binding |
| 11 | - const all_permission = "*:*:*"; | 11 | + const all_permission = "*:*:*"; |
| 12 | - const permissions = store.getters && store.getters.permissions | 12 | + const permissions = store.getters && store.getters.permissions |
| 13 | - | 13 | + |
| 14 | - if (value && value instanceof Array && value.length > 0) { | 14 | + if (value && value instanceof Array && value.length > 0) { |
| 15 | - const permissionFlag = value | 15 | + const permissionFlag = value |
| 16 | - | 16 | + |
| 17 | - const hasPermissions = permissions.some(permission => { | 17 | + const hasPermissions = permissions.some(permission => { |
| 18 | - return all_permission === permission || permissionFlag.includes(permission) | 18 | + return all_permission === permission || permissionFlag.includes(permission) |
| 19 | - }) | 19 | + }) |
| 20 | - | 20 | + |
| 21 | - if (!hasPermissions) { | 21 | + if (!hasPermissions) { |
| 22 | - el.parentNode && el.parentNode.removeChild(el) | 22 | + el.parentNode && el.parentNode.removeChild(el) |
| 23 | - } | ||
| 24 | - } else { | ||
| 25 | - throw new Error(`请设置操作权限标签值`) | ||
| 26 | } | 23 | } |
| 27 | - }, | 24 | + } else { |
| 28 | - | 25 | + throw new Error(`请设置操作权限标签值`) |
| 29 | - //路由权限处理 | ||
| 30 | - routerPer(router){ | ||
| 31 | - const permissions = store.getters && store.getters.permissions | ||
| 32 | - let newRouter = []; | ||
| 33 | - router.forEach(item => { | ||
| 34 | - permissions.forEach(per=>{ | ||
| 35 | - if(item.meta.permissions == per){ | ||
| 36 | - newRouter.push(item) | ||
| 37 | - } | ||
| 38 | - }) | ||
| 39 | - if(item.children && item.children.length){ | ||
| 40 | - item.children = this.routerPer(item.children) | ||
| 41 | - } | ||
| 42 | - }); | ||
| 43 | - return newRouter | ||
| 44 | } | 26 | } |
| 27 | + }, | ||
| 28 | + | ||
| 29 | + //路由权限处理 | ||
| 30 | + routerPer(router){ | ||
| 31 | + const permissions = store.getters && store.getters.permissions | ||
| 32 | + let newRouter = []; | ||
| 33 | + router.forEach(item => { | ||
| 34 | + permissions.forEach(per=>{ | ||
| 35 | + if(item.meta.permissions == per){ | ||
| 36 | + newRouter.push(item) | ||
| 37 | + } | ||
| 38 | + }) | ||
| 39 | + if(item.children && item.children.length){ | ||
| 40 | + item.children = this.routerPer(item.children) | ||
| 41 | + } | ||
| 42 | + }); | ||
| 43 | + return newRouter | ||
| 45 | } | 44 | } |
| 46 | - | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 45 | +} | ... | ... |
| ... | @@ -40,7 +40,6 @@ import { mapGetters } from "vuex" | ... | @@ -40,7 +40,6 @@ import { mapGetters } from "vuex" |
| 40 | import Breadcrumb from "@/components/Breadcrumb" | 40 | import Breadcrumb from "@/components/Breadcrumb" |
| 41 | import TopNav from "@/components/TopNav" | 41 | import TopNav from "@/components/TopNav" |
| 42 | import Hamburger from "@/components/Hamburger" | 42 | import Hamburger from "@/components/Hamburger" |
| 43 | -import { removeToken } from '@/utils/auth' | ||
| 44 | import settings from "@/settings" | 43 | import settings from "@/settings" |
| 45 | 44 | ||
| 46 | export default { | 45 | export default { |
| ... | @@ -89,7 +88,6 @@ export default { | ... | @@ -89,7 +88,6 @@ export default { |
| 89 | .then((res) => { | 88 | .then((res) => { |
| 90 | if (res.code === 200) { | 89 | if (res.code === 200) { |
| 91 | this.$store.dispatch('tagsView/delAllCachedViews') | 90 | this.$store.dispatch('tagsView/delAllCachedViews') |
| 92 | - this.$store.dispatch('tagsView/delAllVisitedViews') | ||
| 93 | // location.reload(); | 91 | // location.reload(); |
| 94 | if (this.$route.path != '/index') { | 92 | if (this.$route.path != '/index') { |
| 95 | this.$router.push('/index') | 93 | this.$router.push('/index') |
| ... | @@ -127,7 +125,6 @@ export default { | ... | @@ -127,7 +125,6 @@ export default { |
| 127 | type: "warning", | 125 | type: "warning", |
| 128 | }).then(() => { | 126 | }).then(() => { |
| 129 | this.$store.dispatch("LogOut").then(() => { | 127 | this.$store.dispatch("LogOut").then(() => { |
| 130 | - removeToken() | ||
| 131 | window.location.href = settings.logoutURL;//wsso系统跳转 | 128 | window.location.href = settings.logoutURL;//wsso系统跳转 |
| 132 | }); | 129 | }); |
| 133 | }); | 130 | }); | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <div class="sidebar-logo-container" :class="{'collapse':collapse}" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBg : variables.menuLightBg }"> | 2 | + <div class="sidebar-logo-container" :class="{ 'collapse': collapse }" |
| 3 | + :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBg : variables.menuLightBg }"> | ||
| 3 | <transition name="sidebarLogoFade"> | 4 | <transition name="sidebarLogoFade"> |
| 4 | <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/"> | 5 | <router-link v-if="collapse" key="collapse" class="sidebar-logo-link" to="/"> |
| 5 | <img v-if="logo" :src="logo" class="sidebar-logo"> | 6 | <img v-if="logo" :src="logo" class="sidebar-logo"> |
| 6 | - <h1 v-else class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.sidebarTitle : variables.sidebarLightTitle }">{{ title }} </h1> | 7 | + <h1 v-else class="sidebar-title" |
| 8 | + :style="{ color: sideTheme === 'theme-dark' ? variables.sidebarTitle : variables.sidebarLightTitle }">{{ title | ||
| 9 | + }} </h1> | ||
| 7 | </router-link> | 10 | </router-link> |
| 8 | <router-link v-else key="expand" class="sidebar-logo-link" to="/"> | 11 | <router-link v-else key="expand" class="sidebar-logo-link" to="/"> |
| 9 | <img v-if="logo" :src="logo" class="sidebar-logo"> | 12 | <img v-if="logo" :src="logo" class="sidebar-logo"> |
| 10 | - <h1 class="sidebar-title" :style="{ color: sideTheme === 'theme-dark' ? variables.sidebarTitle : variables.sidebarLightTitle }">{{ title }} </h1> | 13 | + <h1 class="sidebar-title" |
| 14 | + :style="{ color: sideTheme === 'theme-dark' ? variables.sidebarTitle : variables.sidebarLightTitle }">{{ title | ||
| 15 | + }} </h1> | ||
| 11 | </router-link> | 16 | </router-link> |
| 12 | </transition> | 17 | </transition> |
| 13 | </div> | 18 | </div> |
| ... | @@ -16,6 +21,8 @@ | ... | @@ -16,6 +21,8 @@ |
| 16 | <script> | 21 | <script> |
| 17 | import logoImg from '@/assets/logo/logo.png' | 22 | import logoImg from '@/assets/logo/logo.png' |
| 18 | import variables from '@/assets/styles/variables.scss' | 23 | import variables from '@/assets/styles/variables.scss' |
| 24 | +import { createDecipheriv } from 'crypto'; | ||
| 25 | +import { mapState } from 'vuex' | ||
| 19 | 26 | ||
| 20 | export default { | 27 | export default { |
| 21 | name: 'SidebarLogo', | 28 | name: 'SidebarLogo', |
| ... | @@ -26,19 +33,29 @@ export default { | ... | @@ -26,19 +33,29 @@ export default { |
| 26 | } | 33 | } |
| 27 | }, | 34 | }, |
| 28 | computed: { | 35 | computed: { |
| 36 | + ...mapState({ | ||
| 37 | + sidebar: state => state.app.sidebar, | ||
| 38 | + }), | ||
| 29 | variables() { | 39 | variables() { |
| 30 | return variables; | 40 | return variables; |
| 31 | }, | 41 | }, |
| 32 | - sideTheme() { | 42 | + sideTheme() { |
| 33 | return this.$store.state.settings.sideTheme | 43 | return this.$store.state.settings.sideTheme |
| 34 | } | 44 | } |
| 35 | }, | 45 | }, |
| 36 | data() { | 46 | data() { |
| 37 | return { | 47 | return { |
| 38 | title: 'IMAC管理系统', | 48 | title: 'IMAC管理系统', |
| 39 | - logo: logoImg | 49 | + logo: logoImg, |
| 50 | + logoClassName: 'sidebar-logo' | ||
| 40 | } | 51 | } |
| 41 | - } | 52 | + }, |
| 53 | + created() { | ||
| 54 | + this.logoClassName = localStorage.getItem('logoName') | ||
| 55 | + }, | ||
| 56 | + updated() { | ||
| 57 | + this.logoClassName = localStorage.getItem('logoName') | ||
| 58 | + }, | ||
| 42 | } | 59 | } |
| 43 | </script> | 60 | </script> |
| 44 | 61 | ||
| ... | @@ -66,7 +83,7 @@ export default { | ... | @@ -66,7 +83,7 @@ export default { |
| 66 | width: 100%; | 83 | width: 100%; |
| 67 | 84 | ||
| 68 | & .sidebar-logo { | 85 | & .sidebar-logo { |
| 69 | - //width: 32px; | 86 | + width: auto; |
| 70 | height: 32px; | 87 | height: 32px; |
| 71 | vertical-align: middle; | 88 | vertical-align: middle; |
| 72 | margin-right: 12px; | 89 | margin-right: 12px; |
| ... | @@ -82,6 +99,13 @@ export default { | ... | @@ -82,6 +99,13 @@ export default { |
| 82 | font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; | 99 | font-family: Avenir, Helvetica Neue, Arial, Helvetica, sans-serif; |
| 83 | vertical-align: middle; | 100 | vertical-align: middle; |
| 84 | } | 101 | } |
| 102 | + | ||
| 103 | + & .sidebar-logo-mini { | ||
| 104 | + width: auto; | ||
| 105 | + height: 24px; | ||
| 106 | + vertical-align: middle; | ||
| 107 | + margin-right: 12px; | ||
| 108 | + } | ||
| 85 | } | 109 | } |
| 86 | 110 | ||
| 87 | &.collapse { | 111 | &.collapse { | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <div | 2 | + <div :class="{ 'has-logo': showLogo }" :style="{ |
| 3 | - :class="{ 'has-logo': showLogo }" | 3 | + backgroundColor: |
| 4 | - :style="{ | 4 | + settings.sideTheme === 'theme-dark' |
| 5 | - backgroundColor: | 5 | + ? variables.menuBg |
| 6 | - settings.sideTheme === 'theme-dark' | 6 | + : variables.menuLightBg, |
| 7 | - ? variables.menuBg | 7 | + }"> |
| 8 | - : variables.menuLightBg, | ||
| 9 | - }" | ||
| 10 | - > | ||
| 11 | <logo v-if="showLogo" :collapse="isCollapse" /> | 8 | <logo v-if="showLogo" :collapse="isCollapse" /> |
| 12 | <el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper"> | 9 | <el-scrollbar :class="settings.sideTheme" wrap-class="scrollbar-wrapper"> |
| 13 | - <el-menu | 10 | + <el-menu :default-active="activeMenu" :collapse="isCollapse" :background-color=" |
| 14 | - :default-active="activeMenu" | ||
| 15 | - :collapse="isCollapse" | ||
| 16 | - :background-color=" | ||
| 17 | settings.sideTheme === 'theme-dark' | 11 | settings.sideTheme === 'theme-dark' |
| 18 | ? variables.menuBg | 12 | ? variables.menuBg |
| 19 | : variables.menuLightBg | 13 | : variables.menuLightBg |
| 20 | - " | 14 | + " :text-color=" |
| 21 | - :text-color=" | 15 | + settings.sideTheme === 'theme-dark' |
| 22 | - settings.sideTheme === 'theme-dark' | 16 | + ? variables.menuText |
| 23 | - ? variables.menuText | 17 | + : 'rgba(0,0,0,.65)' |
| 24 | - : 'rgba(0,0,0,.65)' | 18 | +" :unique-opened="true" :active-text-color="settings.theme" :collapse-transition="false" mode="vertical"> |
| 25 | - " | 19 | + <sidebar-item v-for="(route, index) in sidebarRouters" :key="route.path + index" :item="route" |
| 26 | - :unique-opened="true" | 20 | + :base-path="route.path" /> |
| 27 | - :active-text-color="settings.theme" | 21 | + </el-menu> |
| 28 | - :collapse-transition="false" | 22 | + <div class="version">{{ version }}</div> |
| 29 | - mode="vertical" | ||
| 30 | - > | ||
| 31 | - <sidebar-item | ||
| 32 | - v-for="(route, index) in sidebarRouters" | ||
| 33 | - :key="route.path + index" | ||
| 34 | - :item="route" | ||
| 35 | - :base-path="route.path" | ||
| 36 | - /> | ||
| 37 | - </el-menu> | ||
| 38 | - <div class="version">{{ version }}</div> | ||
| 39 | </el-scrollbar> | 23 | </el-scrollbar> |
| 40 | </div> | 24 | </div> |
| 41 | </template> | 25 | </template> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <div :class="classObj" class="app-wrapper" :style="{'--current-color': theme}"> | 2 | + <div :class="classObj" class="app-wrapper" :style="{ '--current-color': theme }"> |
| 3 | - <div v-if="device==='mobile'&&sidebar.opened" class="drawer-bg" @click="handleClickOutside"/> | 3 | + <div v-if="device === 'mobile' && sidebar.opened" class="drawer-bg" @click="handleClickOutside" /> |
| 4 | - <sidebar class="sidebar-container" :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBg : variables.menuLightBg }" /> | 4 | + <sidebar class="sidebar-container" |
| 5 | - <div :class="{hasTagsView:needTagsView}" class="main-container"> | 5 | + :style="{ backgroundColor: sideTheme === 'theme-dark' ? variables.menuBg : variables.menuLightBg }" /> |
| 6 | - <div :class="{'fixed-header':fixedHeader}"> | 6 | + <div :class="{ hasTagsView: needTagsView }" class="main-container"> |
| 7 | + <div :class="{ 'fixed-header': fixedHeader }"> | ||
| 7 | <navbar /> | 8 | <navbar /> |
| 8 | <tags-view v-if="needTagsView" /> | 9 | <tags-view v-if="needTagsView" /> |
| 9 | </div> | 10 | </div> |
| 10 | <app-main /> | 11 | <app-main /> |
| 11 | - <right-panel v-if="showSettings"> | 12 | + <right-panel v-if="false"> |
| 12 | <settings /> | 13 | <settings /> |
| 13 | </right-panel> | 14 | </right-panel> |
| 14 | </div> | 15 | </div> |
| ... | @@ -64,45 +65,45 @@ export default { | ... | @@ -64,45 +65,45 @@ export default { |
| 64 | </script> | 65 | </script> |
| 65 | 66 | ||
| 66 | <style lang="scss" scoped> | 67 | <style lang="scss" scoped> |
| 67 | - @import "~@/assets/styles/mixin.scss"; | 68 | +@import "~@/assets/styles/mixin.scss"; |
| 68 | - @import "~@/assets/styles/variables.scss"; | 69 | +@import "~@/assets/styles/variables.scss"; |
| 69 | 70 | ||
| 70 | - .app-wrapper { | 71 | +.app-wrapper { |
| 71 | - @include clearfix; | 72 | + @include clearfix; |
| 72 | - position: relative; | 73 | + position: relative; |
| 73 | - height: 100%; | 74 | + height: 100%; |
| 74 | - width: 100%; | 75 | + width: 100%; |
| 75 | 76 | ||
| 76 | - &.mobile.openSidebar { | 77 | + &.mobile.openSidebar { |
| 77 | - position: fixed; | ||
| 78 | - top: 0; | ||
| 79 | - } | ||
| 80 | - } | ||
| 81 | - | ||
| 82 | - .drawer-bg { | ||
| 83 | - background: #000; | ||
| 84 | - opacity: 0.3; | ||
| 85 | - width: 100%; | ||
| 86 | - top: 0; | ||
| 87 | - height: 100%; | ||
| 88 | - position: absolute; | ||
| 89 | - z-index: 999; | ||
| 90 | - } | ||
| 91 | - | ||
| 92 | - .fixed-header { | ||
| 93 | position: fixed; | 78 | position: fixed; |
| 94 | top: 0; | 79 | top: 0; |
| 95 | - right: 0; | ||
| 96 | - z-index: 9; | ||
| 97 | - width: calc(100% - #{$sideBarWidth}); | ||
| 98 | - transition: width 0.28s; | ||
| 99 | } | 80 | } |
| 81 | +} | ||
| 100 | 82 | ||
| 101 | - .hideSidebar .fixed-header { | 83 | +.drawer-bg { |
| 102 | - width: calc(100% - 54px) | 84 | + background: #000; |
| 103 | - } | 85 | + opacity: 0.3; |
| 86 | + width: 100%; | ||
| 87 | + top: 0; | ||
| 88 | + height: 100%; | ||
| 89 | + position: absolute; | ||
| 90 | + z-index: 999; | ||
| 91 | +} | ||
| 104 | 92 | ||
| 105 | - .mobile .fixed-header { | 93 | +.fixed-header { |
| 106 | - width: 100%; | 94 | + position: fixed; |
| 107 | - } | 95 | + top: 0; |
| 96 | + right: 0; | ||
| 97 | + z-index: 9; | ||
| 98 | + width: calc(100% - #{$sideBarWidth}); | ||
| 99 | + transition: width 0.28s; | ||
| 100 | +} | ||
| 101 | + | ||
| 102 | +.hideSidebar .fixed-header { | ||
| 103 | + width: calc(100% - 54px) | ||
| 104 | +} | ||
| 105 | + | ||
| 106 | +.mobile .fixed-header { | ||
| 107 | + width: 100%; | ||
| 108 | +} | ||
| 108 | </style> | 109 | </style> | ... | ... |
| ... | @@ -68,6 +68,15 @@ Vue.component('HeaderSetting', HeaderSetting) | ... | @@ -68,6 +68,15 @@ Vue.component('HeaderSetting', HeaderSetting) |
| 68 | Vue.component('Drag', Drag) | 68 | Vue.component('Drag', Drag) |
| 69 | 69 | ||
| 70 | Vue.use(permission) | 70 | Vue.use(permission) |
| 71 | + | ||
| 72 | +Vue.directive('focus', { | ||
| 73 | + inserted: function (el) { | ||
| 74 | + // el表示指令所绑定的元素 | ||
| 75 | + el.querySelector('input').focus() | ||
| 76 | + } | ||
| 77 | +}); | ||
| 78 | + | ||
| 79 | + | ||
| 71 | /** | 80 | /** |
| 72 | * If you don't want to use mock-server | 81 | * If you don't want to use mock-server |
| 73 | * you want to use MockJs for mock api | 82 | * you want to use MockJs for mock api | ... | ... |
| ... | @@ -25,10 +25,10 @@ router.beforeEach((to, from, next) => { | ... | @@ -25,10 +25,10 @@ router.beforeEach((to, from, next) => { |
| 25 | }) | 25 | }) |
| 26 | }).catch(err => { | 26 | }).catch(err => { |
| 27 | Message.error(err) | 27 | Message.error(err) |
| 28 | - store.dispatch('LogOut').then(() => { | 28 | + // store.dispatch('LogOut').then(() => { |
| 29 | - // next({ path: '/' }) | 29 | + // // next({ path: '/' }) |
| 30 | - window.location.href = settings.logoutURL;//wsso系统跳转 | 30 | + // window.location.href = settings.loginURL;//wsso系统跳转 |
| 31 | - }) | 31 | + // }) |
| 32 | }) | 32 | }) |
| 33 | } else { | 33 | } else { |
| 34 | next() | 34 | next() |
| ... | @@ -47,7 +47,7 @@ router.beforeEach((to, from, next) => { | ... | @@ -47,7 +47,7 @@ router.beforeEach((to, from, next) => { |
| 47 | // 在免登录白名单,直接进入 | 47 | // 在免登录白名单,直接进入 |
| 48 | next() | 48 | next() |
| 49 | } else { | 49 | } else { |
| 50 | - window.location.href = settings.logoutURL;//wsso系统跳转 | 50 | + window.location.href = settings.loginURL;//wsso系统跳转 |
| 51 | } | 51 | } |
| 52 | } | 52 | } |
| 53 | } | 53 | } | ... | ... |
| ... | @@ -62,19 +62,18 @@ export const constantRoutes = [ | ... | @@ -62,19 +62,18 @@ export const constantRoutes = [ |
| 62 | { | 62 | { |
| 63 | path: 'index', | 63 | path: 'index', |
| 64 | component: (resolve) => require(['@/views/index'], resolve), | 64 | component: (resolve) => require(['@/views/index'], resolve), |
| 65 | - name: '首页', | 65 | + name: 'Index', |
| 66 | meta: { title: '首页', icon: 'home', noCache: true, affix: true } | 66 | meta: { title: '首页', icon: 'home', noCache: true, affix: true } |
| 67 | - } | 67 | + }, |
| 68 | ] | 68 | ] |
| 69 | }, | 69 | }, |
| 70 | { | 70 | { |
| 71 | - path: '/', | 71 | + path: '', |
| 72 | component: Layout, | 72 | component: Layout, |
| 73 | hidden: true, | 73 | hidden: true, |
| 74 | - redirect: 'noredirect', | ||
| 75 | children: [ | 74 | children: [ |
| 76 | { | 75 | { |
| 77 | - path: '/info/:handle/:id|:routeStatus|:fltNo|:route|:fltDate|:status', | 76 | + path: '/info/:handle/id=:id;routeStatus=:routeStatus;fltNo=:fltNo;route=:route;fltDate=:fltDate;status=:status', |
| 78 | component: (resolve) => require(['@/views/allocationConfig/flightAllocConfig/info'], resolve), | 77 | component: (resolve) => require(['@/views/allocationConfig/flightAllocConfig/info'], resolve), |
| 79 | name: 'FlightAllocConfigInfo', | 78 | name: 'FlightAllocConfigInfo', |
| 80 | meta: { title: '航班配舱', icon: 'user' } | 79 | meta: { title: '航班配舱', icon: 'user' } |
| ... | @@ -86,18 +85,24 @@ export const constantRoutes = [ | ... | @@ -86,18 +85,24 @@ export const constantRoutes = [ |
| 86 | meta: { title: '流水表', icon: 'user' } | 85 | meta: { title: '流水表', icon: 'user' } |
| 87 | }, | 86 | }, |
| 88 | { | 87 | { |
| 89 | - path: '/upDateResult->:from', | 88 | + path: '/upDateResult', |
| 90 | component: (resolve) => require(['@/views/preMdeConfig/upDateResult'], resolve), | 89 | component: (resolve) => require(['@/views/preMdeConfig/upDateResult'], resolve), |
| 91 | name: 'UpDateResult', | 90 | name: 'UpDateResult', |
| 92 | - meta: { title: '导入信息', icon: 'user' } | 91 | + meta: { title: '错误信息提示', icon: 'user' } |
| 92 | + }, | ||
| 93 | + { | ||
| 94 | + path: '/goodsLog/type=:type', | ||
| 95 | + component: (resolve) => require(['@/views/basicInformation/goodsStation/goodsUploadLog'], resolve), | ||
| 96 | + name: 'GoodsUploadLog', | ||
| 97 | + meta: { title: '导入日志', icon: 'user' } | ||
| 93 | }, | 98 | }, |
| 94 | ] | 99 | ] |
| 95 | - } | 100 | + }, |
| 96 | ] | 101 | ] |
| 97 | 102 | ||
| 98 | export default new Router({ | 103 | export default new Router({ |
| 99 | mode: 'history', // 去掉url中的# | 104 | mode: 'history', // 去掉url中的# |
| 100 | scrollBehavior: () => ({ y: 0 }), | 105 | scrollBehavior: () => ({ y: 0 }), |
| 101 | routes: constantRoutes, | 106 | routes: constantRoutes, |
| 102 | - base: settings.routerBase | ||
| 103 | -}) | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 107 | + base: settings.routerBase, | ||
| 108 | +}) | ... | ... |
| ... | @@ -42,7 +42,8 @@ module.exports = { | ... | @@ -42,7 +42,8 @@ module.exports = { |
| 42 | /** | 42 | /** |
| 43 | * logout | 43 | * logout |
| 44 | */ | 44 | */ |
| 45 | - logoutURL: 'https://test-myapps.secure.fedex.com/purpleid/signout/', | 45 | + loginURL: 'https://test-myapps.secure.fedex.com/L2/iMAC/', |
| 46 | + logoutURL: 'https://test-myapps.secure.fedex.com/logout/', | ||
| 46 | 47 | ||
| 47 | /** | 48 | /** |
| 48 | * 后端接口 | 49 | * 后端接口 |
| ... | @@ -58,5 +59,5 @@ module.exports = { | ... | @@ -58,5 +59,5 @@ module.exports = { |
| 58 | /** | 59 | /** |
| 59 | * 版本号 | 60 | * 版本号 |
| 60 | */ | 61 | */ |
| 61 | - version: 'version:1.7.0' | 62 | + version: 'version:2.0.0' |
| 62 | } | 63 | } | ... | ... |
| ... | @@ -7,6 +7,7 @@ const getters = { | ... | @@ -7,6 +7,7 @@ const getters = { |
| 7 | token: state => state.user.token, | 7 | token: state => state.user.token, |
| 8 | avatar: state => state.user.avatar, | 8 | avatar: state => state.user.avatar, |
| 9 | name: state => state.user.name, | 9 | name: state => state.user.name, |
| 10 | + id: state => state.user.id, | ||
| 10 | activePortName: state => state.user.activePortName, | 11 | activePortName: state => state.user.activePortName, |
| 11 | portName: state => state.user.portName, | 12 | portName: state => state.user.portName, |
| 12 | introduction: state => state.user.introduction, | 13 | introduction: state => state.user.introduction, | ... | ... |
| ... | @@ -18,7 +18,7 @@ const mutations = { | ... | @@ -18,7 +18,7 @@ const mutations = { |
| 18 | //Cookies.set('sidebarStatus', 1) | 18 | //Cookies.set('sidebarStatus', 1) |
| 19 | localStorage.setItem('sidebarStatus', 1) | 19 | localStorage.setItem('sidebarStatus', 1) |
| 20 | } else { | 20 | } else { |
| 21 | - Cookies.set('sidebarStatus', 0) | 21 | + // Cookies.set('sidebarStatus', 0) |
| 22 | localStorage.setItem('sidebarStatus', 0) | 22 | localStorage.setItem('sidebarStatus', 0) |
| 23 | } | 23 | } |
| 24 | }, | 24 | }, | ... | ... |
| ... | @@ -3,6 +3,7 @@ import { getTableHeader } from '@/api/menu' | ... | @@ -3,6 +3,7 @@ import { getTableHeader } from '@/api/menu' |
| 3 | import { changeCurrentPort } from "@/api/system/user.js"; | 3 | import { changeCurrentPort } from "@/api/system/user.js"; |
| 4 | import { getToken, setToken, removeToken } from '@/utils/auth' | 4 | import { getToken, setToken, removeToken } from '@/utils/auth' |
| 5 | import { Message } from 'element-ui' | 5 | import { Message } from 'element-ui' |
| 6 | +import settings from "@/settings" | ||
| 6 | 7 | ||
| 7 | const user = { | 8 | const user = { |
| 8 | state: { | 9 | state: { |
| ... | @@ -101,7 +102,7 @@ const user = { | ... | @@ -101,7 +102,7 @@ const user = { |
| 101 | type: 'error' | 102 | type: 'error' |
| 102 | }) | 103 | }) |
| 103 | this.LogOut().then(() => { | 104 | this.LogOut().then(() => { |
| 104 | - window.location.href = "https://test-myapps.secure.fedex.com/purpleid/signout/";//wsso系统跳转 | 105 | + window.location.href = settings.loginURL;//wsso系统跳转 |
| 105 | }) | 106 | }) |
| 106 | } | 107 | } |
| 107 | if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 | 108 | if (res.data.roles && res.data.roles.length > 0) { // 验证返回的roles是否是一个非空数组 | ... | ... |
| ... | @@ -10,10 +10,10 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' | ... | @@ -10,10 +10,10 @@ axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' |
| 10 | const service = axios.create({ | 10 | const service = axios.create({ |
| 11 | // axios中请求配置有baseURL选项,表示请求URL公共部分 | 11 | // axios中请求配置有baseURL选项,表示请求URL公共部分 |
| 12 | baseURL: settings.baseURL, | 12 | baseURL: settings.baseURL, |
| 13 | - | ||
| 14 | // 超时 | 13 | // 超时 |
| 15 | - timeout: 30000, | 14 | + timeout: 90000, |
| 16 | }) | 15 | }) |
| 16 | + | ||
| 17 | // request拦截器 | 17 | // request拦截器 |
| 18 | service.interceptors.request.use(config => { | 18 | service.interceptors.request.use(config => { |
| 19 | // 是否需要设置 token | 19 | // 是否需要设置 token |
| ... | @@ -52,21 +52,23 @@ service.interceptors.request.use(config => { | ... | @@ -52,21 +52,23 @@ service.interceptors.request.use(config => { |
| 52 | // 响应拦截器 | 52 | // 响应拦截器 |
| 53 | service.interceptors.response.use(res => { | 53 | service.interceptors.response.use(res => { |
| 54 | if (res.headers['token']) { | 54 | if (res.headers['token']) { |
| 55 | - setToken(decodeURIComponent(res.headers['token'])) | 55 | + setToken(res.headers['token']) |
| 56 | } | 56 | } |
| 57 | // 未设置状态码则默认成功状态 | 57 | // 未设置状态码则默认成功状态 |
| 58 | const code = res.data.code || 200; | 58 | const code = res.data.code || 200; |
| 59 | // 获取错误信息 | 59 | // 获取错误信息 |
| 60 | const msg = errorCode[code] || res.data.msg || errorCode['default'] | 60 | const msg = errorCode[code] || res.data.msg || errorCode['default'] |
| 61 | if (code === 301) { | 61 | if (code === 301) { |
| 62 | - MessageBox.confirm('登录状态已过期,需重新登录', '系统提示', { | 62 | + MessageBox.confirm('登录状态已过期,需重新登录!msg:' + msg, '系统提示', { |
| 63 | - confirmButtonText: '确定', | 63 | + closeOnClickModal: false, |
| 64 | + showCancelButton: false, | ||
| 65 | + confirmButtonText: '重新登录', | ||
| 64 | type: 'warning' | 66 | type: 'warning' |
| 65 | } | 67 | } |
| 66 | ).then(() => { | 68 | ).then(() => { |
| 67 | store.dispatch('LogOut').then(() => { | 69 | store.dispatch('LogOut').then(() => { |
| 68 | // location.href = '/'; | 70 | // location.href = '/'; |
| 69 | - window.location.href = settings.logoutURL;//wsso系统跳转 | 71 | + window.location.href = settings.loginURL;//wsso系统跳转 |
| 70 | }) | 72 | }) |
| 71 | }); | 73 | }); |
| 72 | } else if (code === 403) { | 74 | } else if (code === 403) { | ... | ... |
| ... | @@ -81,3 +81,9 @@ export function isArray(arg) { | ... | @@ -81,3 +81,9 @@ export function isArray(arg) { |
| 81 | } | 81 | } |
| 82 | return Array.isArray(arg) | 82 | return Array.isArray(arg) |
| 83 | } | 83 | } |
| 84 | + | ||
| 85 | +// 验证手机号码 | ||
| 86 | +export function validPhoneNumber(value) { | ||
| 87 | + const reg = /^(13[0-9]|14[579]|15[0-3,5-9]|16[6]|17[0135678]|18[0-9]|19[89])\d{8}$/; | ||
| 88 | + return reg.test(value) | ||
| 89 | +} | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -6,17 +6,18 @@ const mimeMap = { | ... | @@ -6,17 +6,18 @@ const mimeMap = { |
| 6 | xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', | 6 | xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', |
| 7 | zip: 'application/zip' | 7 | zip: 'application/zip' |
| 8 | } | 8 | } |
| 9 | -const baseUrl = settings.downLoadURL //uat服务器 | 9 | +const baseUrl = settings.downLoadURL //接口地址 |
| 10 | 10 | ||
| 11 | -export function downLoadZip(str, filename) { | 11 | +export function downLoadZip(str, data, filename) { |
| 12 | var url = baseUrl + str | 12 | var url = baseUrl + str |
| 13 | axios({ | 13 | axios({ |
| 14 | - method: 'get', | 14 | + method: 'post', |
| 15 | url: url, | 15 | url: url, |
| 16 | + data: data, | ||
| 16 | responseType: 'blob', | 17 | responseType: 'blob', |
| 17 | headers: { 'Authorization': decodeURIComponent(getToken()) } | 18 | headers: { 'Authorization': decodeURIComponent(getToken()) } |
| 18 | }).then(res => { | 19 | }).then(res => { |
| 19 | - resolveBlob(res, mimeMap.zip) | 20 | + resolveBlob(res, mimeMap.zip, filename) |
| 20 | }) | 21 | }) |
| 21 | } | 22 | } |
| 22 | 23 | ||
| ... | @@ -25,15 +26,14 @@ export function downLoadZip(str, filename) { | ... | @@ -25,15 +26,14 @@ export function downLoadZip(str, filename) { |
| 25 | * @param {*} res blob响应内容 | 26 | * @param {*} res blob响应内容 |
| 26 | * @param {String} mimeType MIME类型 | 27 | * @param {String} mimeType MIME类型 |
| 27 | */ | 28 | */ |
| 28 | -export function resolveBlob(res, mimeType) { | 29 | +export function resolveBlob(res, mimeType, fileName) { |
| 29 | const aLink = document.createElement('a') | 30 | const aLink = document.createElement('a') |
| 30 | - var blob = new Blob([res], { type: mimeType }) | 31 | + var blob = new Blob([res.data], { type: mimeType }) |
| 31 | // //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名; | 32 | // //从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名; |
| 32 | var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*') | 33 | var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*') |
| 33 | - var contentDisposition = decodeURI(res.headers['content-disposition']) | 34 | + // var contentDisposition = decodeURI(res.headers['content-disposition']) |
| 34 | - var result = patt.exec(contentDisposition) | 35 | + // var result = patt.exec(contentDisposition) |
| 35 | - var fileName = result[1] | 36 | + // var fileName = result[1] |
| 36 | - fileName = fileName.replace(/\"/g, '') | ||
| 37 | aLink.href = URL.createObjectURL(blob) | 37 | aLink.href = URL.createObjectURL(blob) |
| 38 | aLink.setAttribute('download', fileName) // 设置下载文件名称 | 38 | aLink.setAttribute('download', fileName) // 设置下载文件名称 |
| 39 | document.body.appendChild(aLink) | 39 | document.body.appendChild(aLink) |
| ... | @@ -52,7 +52,6 @@ export function downLoadXlsx(str, data, fileName) { | ... | @@ -52,7 +52,6 @@ export function downLoadXlsx(str, data, fileName) { |
| 52 | timeout: 500000, | 52 | timeout: 500000, |
| 53 | responseType: 'blob', | 53 | responseType: 'blob', |
| 54 | headers: { 'Authorization': decodeURIComponent(getToken()) } | 54 | headers: { 'Authorization': decodeURIComponent(getToken()) } |
| 55 | - // headers: { 'Authorization': decodeURIComponent(getToken()) } | ||
| 56 | //uat环境token需要做url解码处理 | 55 | //uat环境token需要做url解码处理 |
| 57 | }).then(res => { | 56 | }).then(res => { |
| 58 | if (res.status === 200) { | 57 | if (res.status === 200) { |
| ... | @@ -107,3 +106,4 @@ export function cargoTableXlsxPre(val) { | ... | @@ -107,3 +106,4 @@ export function cargoTableXlsxPre(val) { |
| 107 | aLink.click() | 106 | aLink.click() |
| 108 | document.body.removeChild(aLink); | 107 | document.body.removeChild(aLink); |
| 109 | } | 108 | } |
| 109 | + | ... | ... |
| ... | @@ -142,12 +142,12 @@ | ... | @@ -142,12 +142,12 @@ |
| 142 | </el-col> | 142 | </el-col> |
| 143 | <el-col :span="24"> | 143 | <el-col :span="24"> |
| 144 | <el-form-item label="Handling Code"> | 144 | <el-form-item label="Handling Code"> |
| 145 | - <el-empty description="暂无数据" v-if=" | 145 | + <!-- <el-empty description="暂无数据" v-if=" |
| 146 | !selectData.HandlingCode || selectData.HandlingCode.length == 0 | 146 | !selectData.HandlingCode || selectData.HandlingCode.length == 0 |
| 147 | - "></el-empty> | 147 | + "></el-empty> --> |
| 148 | - <el-checkbox-group v-model="handingCodes" v-else> | 148 | + <el-checkbox-group v-model="handingCodes"> |
| 149 | <el-row> | 149 | <el-row> |
| 150 | - <el-col :span="2" v-for="item in selectData.HandlingCode" :key="item.id"> | 150 | + <el-col :span="2" v-for="item in selectData.HandlingCode" :key="item.id" v-if="item.status == 1"> |
| 151 | <el-checkbox :label="item.chineseName" v-model="item.chineseName"> | 151 | <el-checkbox :label="item.chineseName" v-model="item.chineseName"> |
| 152 | <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips> | 152 | <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips> |
| 153 | </el-checkbox> | 153 | </el-checkbox> |
| ... | @@ -158,12 +158,12 @@ | ... | @@ -158,12 +158,12 @@ |
| 158 | </el-col> | 158 | </el-col> |
| 159 | <el-col :span="24"> | 159 | <el-col :span="24"> |
| 160 | <el-form-item label="Sub Category"> | 160 | <el-form-item label="Sub Category"> |
| 161 | - <el-empty description="暂无数据" v-if=" | 161 | + <!-- <el-empty description="暂无数据" v-if=" |
| 162 | !selectData.SubCategory || selectData.SubCategory.length == 0 | 162 | !selectData.SubCategory || selectData.SubCategory.length == 0 |
| 163 | - "></el-empty> | 163 | + "></el-empty> --> |
| 164 | - <el-checkbox-group v-model="subCategorys" v-else> | 164 | + <el-checkbox-group v-model="subCategorys"> |
| 165 | <el-row> | 165 | <el-row> |
| 166 | - <el-col :span="2" v-for="item in selectData.SubCategory" :key="item.id"> | 166 | + <el-col :span="2" v-for="item in selectData.SubCategory" :key="item.id" v-if="item.status == 1"> |
| 167 | <el-checkbox :label="item.chineseName" v-model="item.chineseName"> | 167 | <el-checkbox :label="item.chineseName" v-model="item.chineseName"> |
| 168 | <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips> | 168 | <Tooltips :content="item.chineseName" :refName="item.code"></Tooltips> |
| 169 | </el-checkbox> | 169 | </el-checkbox> |
| ... | @@ -176,17 +176,17 @@ | ... | @@ -176,17 +176,17 @@ |
| 176 | <div style="margin: 0 0 0 10px"> | 176 | <div style="margin: 0 0 0 10px"> |
| 177 | <el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="select(0)">查询</el-button> | 177 | <el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="select(0)">查询</el-button> |
| 178 | <el-button :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="mini" | 178 | <el-button :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="mini" |
| 179 | - v-hasPermi="['allocation:cargo:export']" @click="xlsx(0)" :loading="downLoadingTip.downloading" | 179 | + v-hasPermi="['allocation:cargo:export']" icon="el-icon-download" @click="xlsx(0)" |
| 180 | - :disabled="tableData.length <= 0">{{ | 180 | + :loading="downLoadingTip.downloading" :disabled="tableData.length <= 0">{{ |
| 181 | - downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果" | 181 | + downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果" |
| 182 | }}</el-button> | 182 | }}</el-button> |
| 183 | <el-button :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="mini" | 183 | <el-button :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="mini" |
| 184 | - v-hasPermi="['allocation:cargo:export']" @click="xlsx(1)" :loading="downLoadingTip.downloading" | 184 | + v-hasPermi="['allocation:cargo:export']" icon="el-icon-download" @click="xlsx(1)" |
| 185 | - :disabled="tableData.length <= 0">{{ | 185 | + :loading="downLoadingTip.downloading" :disabled="tableData.length <= 0">{{ |
| 186 | - downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果" | 186 | + downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果" |
| 187 | }}</el-button> | 187 | }}</el-button> |
| 188 | - <el-button type="primary" size="mini" v-hasPermi="['allocation:cargo:allocation']" @click="addFit" | 188 | + <el-button type="primary" size="mini" icon="el-icon-plus" v-hasPermi="['allocation:cargo:allocation']" |
| 189 | - :disabled="tableSelection.length <= 0">添加到航班</el-button> | 189 | + @click="addFit" :disabled="tableSelection.length <= 0">添加到航班</el-button> |
| 190 | <div class="tips"> | 190 | <div class="tips"> |
| 191 | <span style="paddingRight: 50px">总重量:{{ allWeight }}</span> | 191 | <span style="paddingRight: 50px">总重量:{{ allWeight }}</span> |
| 192 | <span>总件数:{{ allQty }}</span> | 192 | <span>总件数:{{ allQty }}</span> |
| ... | @@ -331,6 +331,7 @@ export default { | ... | @@ -331,6 +331,7 @@ export default { |
| 331 | }, | 331 | }, |
| 332 | //查询 | 332 | //查询 |
| 333 | async select(val) { | 333 | async select(val) { |
| 334 | + this.tableSelection = [] | ||
| 334 | this.loading = true; | 335 | this.loading = true; |
| 335 | this.dataInfo(); | 336 | this.dataInfo(); |
| 336 | if (val === 0) { | 337 | if (val === 0) { | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <el-dialog title="货物配舱" width="80%" top="5vh" :visible.sync="dialogVisible" :close-on-click-modal="false" | 3 | <el-dialog title="货物配舱" width="80%" top="5vh" :visible.sync="dialogVisible" :close-on-click-modal="false" |
| 4 | - :show-close="false" :append-to-body="true"> | 4 | + :show-close="false" :append-to-body="true" @close="dialogBeforeClose"> |
| 5 | <el-divider content-position="left">已选货物信息</el-divider> | 5 | <el-divider content-position="left">已选货物信息</el-divider> |
| 6 | <el-table :data="tableData" size="mini" height="200" max-height="200" border stripe highlight-current-row | 6 | <el-table :data="tableData" size="mini" height="200" max-height="200" border stripe highlight-current-row |
| 7 | style="width: 100%"> | 7 | style="width: 100%"> |
| 8 | <el-table-column type="index" label="序号" align="center"> | 8 | <el-table-column type="index" label="序号" align="center"> |
| 9 | </el-table-column> | 9 | </el-table-column> |
| 10 | <el-table-column v-for="(item, index) in cargoHeader" header-align="center" align="center" :prop="item.value" | 10 | <el-table-column v-for="(item, index) in cargoHeader" header-align="center" align="center" :prop="item.value" |
| 11 | - :label="item.name" :key="index" :show-overflow-tooltip="true" :formatter="formatter"> | 11 | + :label="item.name" :key="index" :width="item.width" :show-overflow-tooltip="true" :formatter="formatter"> |
| 12 | </el-table-column> | 12 | </el-table-column> |
| 13 | </el-table> | 13 | </el-table> |
| 14 | <el-form ref="form" class="form-header" label-position="right" label-width="auto" | 14 | <el-form ref="form" class="form-header" label-position="right" label-width="auto" |
| ... | @@ -30,7 +30,7 @@ | ... | @@ -30,7 +30,7 @@ |
| 30 | </el-tooltip> | 30 | </el-tooltip> |
| 31 | </div> | 31 | </div> |
| 32 | </template> | 32 | </template> |
| 33 | - <el-select class="formItem" v-model="formData.route" placeholder="不限" :disabled="routeList.length == 0"> | 33 | + <el-select class="formItem" v-model="formData.route" placeholder="请选择航线" :disabled="routeList.length == 0"> |
| 34 | <el-option v-for="(item, index) in routeList" :label="item.route" :value="item.route" :key="index"> | 34 | <el-option v-for="(item, index) in routeList" :label="item.route" :value="item.route" :key="index"> |
| 35 | <Tooltips :content="item.route" :refName="item.route"></Tooltips> | 35 | <Tooltips :content="item.route" :refName="item.route"></Tooltips> |
| 36 | </el-option> | 36 | </el-option> |
| ... | @@ -65,24 +65,25 @@ export default { | ... | @@ -65,24 +65,25 @@ export default { |
| 65 | ids: [], | 65 | ids: [], |
| 66 | fltNo: undefined, | 66 | fltNo: undefined, |
| 67 | fltDate: undefined, | 67 | fltDate: undefined, |
| 68 | - route: undefined, | 68 | + route: null, |
| 69 | overweight: false, | 69 | overweight: false, |
| 70 | + notInWhite: false, | ||
| 70 | }, | 71 | }, |
| 71 | cargoHeader: [ | 72 | cargoHeader: [ |
| 72 | - { name: "口岸代码", value: "portName" }, | 73 | + { name: "口岸代码", value: "portName", width: "" }, |
| 73 | - { name: "运单号", value: "waybillNo" }, | 74 | + { name: "运单号", value: "waybillNo", width: "" }, |
| 74 | - { name: "货物状态", value: "statusName" }, | 75 | + { name: "货物状态", value: "statusName", width: "" }, |
| 75 | - { name: "站点", value: "siteName" }, | 76 | + { name: "站点", value: "siteName", width: "" }, |
| 76 | - { name: "申报类型", value: "typeName" }, | 77 | + { name: "申报类型", value: "typeName", width: "" }, |
| 77 | - { name: "URSA", value: "ursa" }, | 78 | + { name: "URSA", value: "ursa", width: "" }, |
| 78 | - { name: "实际重量", value: "actualWeight" }, | 79 | + { name: "实际重量", value: "actualWeight", width: "" }, |
| 79 | - { name: "件数", value: "qty" }, | 80 | + { name: "件数", value: "qty", width: "" }, |
| 80 | - { name: "ACCS原航班号", value: "fltNoAccs" }, | 81 | + { name: "ACCS原航班号", value: "fltNoAccs", width: "120" }, |
| 81 | - { name: "ACCS原航班日期", value: "fltDateAccs" }, | 82 | + { name: "ACCS原航班日期", value: "fltDateAccs", width: "130" }, |
| 82 | - { name: "品名描述", value: "nameDescription" }, | 83 | + { name: "品名描述", value: "nameDescription", width: "" }, |
| 83 | - { name: "是否自动", value: "cargoRulesStatus" }, | 84 | + { name: "是否自动", value: "cargoRulesStatus", width: "" }, |
| 84 | - { name: "创建人", value: "createUserName" }, | 85 | + { name: "创建人", value: "createUserName", width: "" }, |
| 85 | - { name: "创建时间", value: "createTime" }, | 86 | + { name: "创建时间", value: "createTime", width: "" }, |
| 86 | ], | 87 | ], |
| 87 | routeList: [], | 88 | routeList: [], |
| 88 | rules: { | 89 | rules: { |
| ... | @@ -120,68 +121,89 @@ export default { | ... | @@ -120,68 +121,89 @@ export default { |
| 120 | route: undefined, | 121 | route: undefined, |
| 121 | flightId: undefined, | 122 | flightId: undefined, |
| 122 | overweight: false, | 123 | overweight: false, |
| 124 | + notInWhite: false, | ||
| 123 | }; | 125 | }; |
| 124 | this.routeList = [] | 126 | this.routeList = [] |
| 125 | }, | 127 | }, |
| 126 | //确定配舱 | 128 | //确定配舱 |
| 127 | submit() { | 129 | submit() { |
| 128 | - this.loading = true; | 130 | + this.formData.overweight = false |
| 129 | - let arr = []; | 131 | + this.formData.notInWhite = false |
| 130 | - this.tableData.forEach((item) => { | 132 | + this.$refs.form.validate(val => { |
| 131 | - arr.push(item.id); | 133 | + if (val) { |
| 132 | - }); | 134 | + this.loading = true; |
| 133 | - this.formData.ids = arr; | 135 | + let arr = []; |
| 134 | - this.routeList.forEach(item => { | 136 | + this.tableData.forEach((item) => { |
| 135 | - if (item.route === this.formData.route) { | 137 | + arr.push(item.id); |
| 136 | - this.formData.flightId = item.id | 138 | + }); |
| 139 | + this.formData.ids = arr; | ||
| 140 | + this.routeList.forEach(item => { | ||
| 141 | + if (item.route === this.formData.route) { | ||
| 142 | + this.formData.flightId = item.id | ||
| 143 | + } | ||
| 144 | + }) | ||
| 145 | + if (this.formData.fltNo && this.formData.fltDate) { | ||
| 146 | + allocationFlight(this.formData).then((res) => { | ||
| 147 | + //code 200 配舱成功 202重量已满需要确认 203货物不在白名单需要确认 其余code直接输出msg 接口先判断重量后判断白名单 overweight/notInWhite初始默认false | ||
| 148 | + if (res.code === 200) { | ||
| 149 | + this.loading = false; | ||
| 150 | + this.msgSuccess('货物配舱成功') | ||
| 151 | + this.cleaerForm(); | ||
| 152 | + this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 153 | + } else if (res.code === 202) { | ||
| 154 | + //超重航班确实是否继续配舱 | ||
| 155 | + this.reallocationFlight(res.msg, 'overweight') | ||
| 156 | + } else if (res.code === 203) { | ||
| 157 | + //不存在白名单中确实是否继续配舱 | ||
| 158 | + this.reallocationFlight(res.msg, 'notInWhite') | ||
| 159 | + } else { | ||
| 160 | + this.loading = false; | ||
| 161 | + this.msgWarning(res.msg) | ||
| 162 | + } | ||
| 163 | + }).catch(() => { | ||
| 164 | + this.loading = false; | ||
| 165 | + }); | ||
| 166 | + } else { | ||
| 167 | + this.loading = false; | ||
| 168 | + this.msgWarning('航班号或航班日期不能为空') | ||
| 169 | + } | ||
| 137 | } | 170 | } |
| 138 | }) | 171 | }) |
| 139 | - if (this.formData.fltNo && this.formData.fltDate) { | 172 | + }, |
| 173 | + //手动配舱超重或白名单不存在提示 | ||
| 174 | + reallocationFlight(msg, status) { | ||
| 175 | + this.$confirm(msg, "提示", { | ||
| 176 | + confirmButtonText: "确定", | ||
| 177 | + cancelButtonText: "取消", | ||
| 178 | + type: "warning", | ||
| 179 | + }).then(() => { | ||
| 180 | + if (status == 'overweight') { | ||
| 181 | + this.formData.overweight = true; //确定继续overweight变为true再次请求接口 | ||
| 182 | + } else { | ||
| 183 | + this.formData.notInWhite = true; //确定继续notInWhite变为true再次请求接口 | ||
| 184 | + } | ||
| 140 | allocationFlight(this.formData).then((res) => { | 185 | allocationFlight(this.formData).then((res) => { |
| 141 | - this.loading = false; | ||
| 142 | - //code 200 配舱成功 202 重量已满需要确认 其余code直接输出msg | ||
| 143 | if (res.code === 200) { | 186 | if (res.code === 200) { |
| 187 | + this.loading = false | ||
| 144 | this.msgSuccess('货物配舱成功') | 188 | this.msgSuccess('货物配舱成功') |
| 145 | this.cleaerForm(); | 189 | this.cleaerForm(); |
| 146 | this.$emit("dialogBeforeClose", { close: false, reload: true }); | 190 | this.$emit("dialogBeforeClose", { close: false, reload: true }); |
| 147 | - } else if (res.code === 202) { | 191 | + } else if (res.code === 203) { |
| 148 | - this.$confirm(res.msg, "提示", { | 192 | + this.reallocationFlight(res.msg, 'notInWhite') |
| 149 | - confirmButtonText: "确定", | ||
| 150 | - cancelButtonText: "取消", | ||
| 151 | - type: "warning", | ||
| 152 | - }) | ||
| 153 | - .then(() => { | ||
| 154 | - this.formData.overweight = true; //确定继续overweight变为true再次请求接口 | ||
| 155 | - allocationFlight(this.formData).then((res) => { | ||
| 156 | - if (res.code === 200) { | ||
| 157 | - this.msgSuccess('货物配舱成功') | ||
| 158 | - } else { | ||
| 159 | - this.msgWarning(res.msg) | ||
| 160 | - } | ||
| 161 | - }); | ||
| 162 | - this.cleaerForm(); | ||
| 163 | - this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 164 | - }) | ||
| 165 | - .catch(() => { | ||
| 166 | - //取消 取消当前配舱 | ||
| 167 | - this.msgSuccess('配舱已取消') | ||
| 168 | - this.cleaerForm(); | ||
| 169 | - this.$emit("dialogBeforeClose", { | ||
| 170 | - close: false, | ||
| 171 | - reload: true, | ||
| 172 | - }); | ||
| 173 | - }); | ||
| 174 | } else { | 193 | } else { |
| 175 | - this.loading = false; | ||
| 176 | this.msgWarning(res.msg) | 194 | this.msgWarning(res.msg) |
| 195 | + this.loading = false | ||
| 177 | } | 196 | } |
| 178 | - }).catch(() => { | ||
| 179 | - this.loading = false; | ||
| 180 | }); | 197 | }); |
| 181 | - } else { | 198 | + }).catch(() => { |
| 182 | - this.loading = false; | 199 | + this.msgSuccess('配舱已取消') |
| 183 | - this.msgWarning('航班号或航班日期不能为空') | 200 | + this.loading = false |
| 184 | - } | 201 | + this.cleaerForm(); |
| 202 | + this.$emit("dialogBeforeClose", { | ||
| 203 | + close: false, | ||
| 204 | + reload: true, | ||
| 205 | + }); | ||
| 206 | + }) | ||
| 185 | }, | 207 | }, |
| 186 | dialogBeforeClose() { | 208 | dialogBeforeClose() { |
| 187 | this.cleaerForm(); | 209 | this.cleaerForm(); |
| ... | @@ -201,6 +223,7 @@ export default { | ... | @@ -201,6 +223,7 @@ export default { |
| 201 | //日期选择变化 | 223 | //日期选择变化 |
| 202 | dateChange(val) { | 224 | dateChange(val) { |
| 203 | this.routeList = [] | 225 | this.routeList = [] |
| 226 | + this.formData.route = null | ||
| 204 | if (this.formData.fltNo && this.formData.fltNo != null && this.formData.fltNo != '') { | 227 | if (this.formData.fltNo && this.formData.fltNo != null && this.formData.fltNo != '') { |
| 205 | if (this.formData.fltDate && this.formData.fltDate != null && this.formData.fltDate != '') { | 228 | if (this.formData.fltDate && this.formData.fltDate != null && this.formData.fltDate != '') { |
| 206 | let obj = { | 229 | let obj = { | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <el-dialog title="航线优先级排序" :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" | 3 | <el-dialog title="航线优先级排序" :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" |
| 4 | - append-to-body center> | 4 | + @close="close" append-to-body center> |
| 5 | <el-form ref="routeOrder" label-width="auto" label-position="left" size="small" @submit.native.prevent> | 5 | <el-form ref="routeOrder" label-width="auto" label-position="left" size="small" @submit.native.prevent> |
| 6 | <el-form-item label="航班号:" prop="fltNo"> | 6 | <el-form-item label="航班号:" prop="fltNo"> |
| 7 | <span>{{ fltNo }}</span> | 7 | <span>{{ fltNo }}</span> |
| ... | @@ -47,6 +47,8 @@ export default { | ... | @@ -47,6 +47,8 @@ export default { |
| 47 | }, | 47 | }, |
| 48 | watch: { | 48 | watch: { |
| 49 | open(val) { | 49 | open(val) { |
| 50 | + this.routeList = [] | ||
| 51 | + this.submitData = [] | ||
| 50 | if (val) { | 52 | if (val) { |
| 51 | this.fltNo = this.fltData.fltNo | 53 | this.fltNo = this.fltData.fltNo |
| 52 | this.fltDate = this.fltData.fltDate | 54 | this.fltDate = this.fltData.fltDate | ... | ... |
| ... | @@ -11,7 +11,7 @@ | ... | @@ -11,7 +11,7 @@ |
| 11 | <el-row class="mb20"> | 11 | <el-row class="mb20"> |
| 12 | <el-col :span="6"> | 12 | <el-col :span="6"> |
| 13 | <el-form-item label="航班号" prop="fltNo"> | 13 | <el-form-item label="航班号" prop="fltNo"> |
| 14 | - <el-input v-model.tirm="infoForm.fltNo" @change="getRoutes" :disabled="fltNoDisabled"> | 14 | + <el-input v-model.trim="infoForm.fltNo" @change="getRoutes" :disabled="fltNoDisabled"> |
| 15 | </el-input> | 15 | </el-input> |
| 16 | </el-form-item> | 16 | </el-form-item> |
| 17 | </el-col> | 17 | </el-col> |
| ... | @@ -24,7 +24,7 @@ | ... | @@ -24,7 +24,7 @@ |
| 24 | </el-col> | 24 | </el-col> |
| 25 | <el-col :span="6" v-if="infoForm.route != null && infoForm.route != ' ' && infoForm.route != ''"> | 25 | <el-col :span="6" v-if="infoForm.route != null && infoForm.route != ' ' && infoForm.route != ''"> |
| 26 | <el-form-item label="航线"> | 26 | <el-form-item label="航线"> |
| 27 | - <el-input v-model.tirm="infoForm.route" @change="getRoutes" disabled> | 27 | + <el-input v-model.trim="infoForm.route" @change="getRoutes" disabled> |
| 28 | </el-input> | 28 | </el-input> |
| 29 | </el-form-item> | 29 | </el-form-item> |
| 30 | </el-col> | 30 | </el-col> |
| ... | @@ -543,12 +543,30 @@ export default { | ... | @@ -543,12 +543,30 @@ export default { |
| 543 | this.fltNoDisabled = true | 543 | this.fltNoDisabled = true |
| 544 | this.infoForm.fltNo = this.$route.params.fltNo | 544 | this.infoForm.fltNo = this.$route.params.fltNo |
| 545 | this.infoForm.fltDate = this.$route.params.fltDate | 545 | this.infoForm.fltDate = this.$route.params.fltDate |
| 546 | - this.infoForm.route = this.$route.params.route | ||
| 547 | if (this.$route.params.status) { | 546 | if (this.$route.params.status) { |
| 548 | if (this.routeSatus == 'dmLog') { | 547 | if (this.routeSatus == 'dmLog') { |
| 548 | + this.infoForm.route = this.$route.params.route | ||
| 549 | this.getIdDimension(this.$route.params.id) | 549 | this.getIdDimension(this.$route.params.id) |
| 550 | } else { | 550 | } else { |
| 551 | - this.getRouteDimension({ fltNo: this.$route.params.fltNo, fltDate: this.$route.params.fltDate, route: this.$route.params.route ? this.$route.params.route : '', status: this.$route.params.status ? this.$route.params.status : '' }) | 551 | + let obj = { |
| 552 | + fltNo: this.$route.params.fltNo, | ||
| 553 | + fltDate: this.$route.params.fltDate, | ||
| 554 | + status: this.$route.params.status ? this.$route.params.status : '' | ||
| 555 | + } | ||
| 556 | + | ||
| 557 | + if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { | ||
| 558 | + this.infoForm.route = this.$route.params.route | ||
| 559 | + obj.route = this.$route.params.route | ||
| 560 | + obj.flightRouteListStr = this.$route.params.route | ||
| 561 | + } else if (this.routeSatus == 'flightInformationMaintenancePurple Tail') { | ||
| 562 | + this.infoForm.route = '' | ||
| 563 | + obj.route = '' | ||
| 564 | + obj.flightRouteListStr = this.$route.params.route | ||
| 565 | + } else { | ||
| 566 | + obj.route = this.$route.params.route ? this.$route.params.route : '' | ||
| 567 | + } | ||
| 568 | + | ||
| 569 | + this.getRouteDimension(obj) | ||
| 552 | } | 570 | } |
| 553 | } | 571 | } |
| 554 | } else { | 572 | } else { |
| ... | @@ -572,7 +590,23 @@ export default { | ... | @@ -572,7 +590,23 @@ export default { |
| 572 | if (this.routeSatus == 'dmLog') { | 590 | if (this.routeSatus == 'dmLog') { |
| 573 | this.getIdDimension(this.$route.params.id) | 591 | this.getIdDimension(this.$route.params.id) |
| 574 | } else { | 592 | } else { |
| 575 | - this.getRouteDimension({ fltNo: this.$route.params.fltNo, fltDate: this.$route.params.fltDate, route: this.$route.params.route ? this.$route.params.route : '', status: '' }) | 593 | + let obj = { |
| 594 | + fltNo: this.$route.params.fltNo, | ||
| 595 | + fltDate: this.$route.params.fltDate, | ||
| 596 | + status: this.$route.params.status ? this.$route.params.status : '' | ||
| 597 | + } | ||
| 598 | + | ||
| 599 | + if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { | ||
| 600 | + obj.route = this.$route.params.route | ||
| 601 | + obj.flightRouteListStr = this.$route.params.route | ||
| 602 | + } else if (this.routeSatus == 'flightInformationMaintenancePurple Tail') { | ||
| 603 | + obj.route = '' | ||
| 604 | + obj.flightRouteListStr = this.$route.params.route | ||
| 605 | + } else { | ||
| 606 | + obj.route = this.$route.params.route ? this.$route.params.route : '' | ||
| 607 | + } | ||
| 608 | + | ||
| 609 | + this.getRouteDimension(obj) | ||
| 576 | } | 610 | } |
| 577 | } | 611 | } |
| 578 | }, | 612 | }, |
| ... | @@ -614,11 +648,12 @@ export default { | ... | @@ -614,11 +648,12 @@ export default { |
| 614 | this.infoForm.fltDate = res.data.list.ruleDate | 648 | this.infoForm.fltDate = res.data.list.ruleDate |
| 615 | this.infoForm.route = res.data.list.flightRoute | 649 | this.infoForm.route = res.data.list.flightRoute |
| 616 | this.infoForm.list.push(this.dataHandle(res.data.list)) | 650 | this.infoForm.list.push(this.dataHandle(res.data.list)) |
| 651 | + console.log(this.infoForm) | ||
| 617 | } else { | 652 | } else { |
| 618 | this.isEmpty = true | 653 | this.isEmpty = true |
| 619 | } | 654 | } |
| 620 | } else { | 655 | } else { |
| 621 | - this.msgWarning("为查询到数据!") | 656 | + this.msgWarning("未查询到数据!") |
| 622 | this.isEmpty = true | 657 | this.isEmpty = true |
| 623 | } | 658 | } |
| 624 | }).catch(err => { | 659 | }).catch(err => { |
| ... | @@ -634,23 +669,49 @@ export default { | ... | @@ -634,23 +669,49 @@ export default { |
| 634 | purposeOfFlightNo: val.fltNo, | 669 | purposeOfFlightNo: val.fltNo, |
| 635 | flightDate: val.fltDate, | 670 | flightDate: val.fltDate, |
| 636 | flightRoute: val.route, | 671 | flightRoute: val.route, |
| 672 | + flightRouteListStr: val.flightRouteListStr, | ||
| 637 | status: val.status ? val.status : '' | 673 | status: val.status ? val.status : '' |
| 638 | } | 674 | } |
| 639 | if (this.$route.params.handle != 'add') { | 675 | if (this.$route.params.handle != 'add') { |
| 640 | findDestinationFltRuleByFlightNo(obj).then(res => { | 676 | findDestinationFltRuleByFlightNo(obj).then(res => { |
| 641 | if (res.code === 200) { | 677 | if (res.code === 200) { |
| 642 | - this.routeList = res.data.routeList | 678 | + if (res.data.routeList.length <= 0) { |
| 643 | - if (res.data.list.length > 0) { | 679 | + this.msgWarning('未查询到航线信息!') |
| 644 | - //请求到数据 | 680 | + } else { |
| 645 | - if (this.infoForm.route != null && this.infoForm.route != '' && this.infoForm.route != ' ') { | 681 | + this.routeList = res.data.routeList |
| 646 | - //航线不为空,对应到这条航线下的这条维度(直接处理插入数据) | 682 | + if (res.data.list.length > 0) { |
| 647 | - if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { | 683 | + //请求到数据 |
| 648 | - //如果是从航班维护界面跳转且航班类型为White Tail则直接显示当前航线维度 | 684 | + if (this.infoForm.route != null && this.infoForm.route != '' && this.infoForm.route != ' ') { |
| 649 | - res.data.list.forEach(item => { | 685 | + //航线不为空,对应到这条航线下的这条维度(直接处理插入数据) |
| 650 | - this.infoForm.list.push(this.dataHandle(item)) | 686 | + if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { |
| 651 | - }) | 687 | + //如果是从航班维护界面跳转且航班类型为White Tail则直接显示当前航线维度 |
| 688 | + res.data.list.forEach(item => { | ||
| 689 | + this.infoForm.list.push(this.dataHandle(item)) | ||
| 690 | + }) | ||
| 691 | + } else { | ||
| 692 | + //航班类型为Purple Tail则显示所有航线维度 | ||
| 693 | + this.routeList.forEach(route => { | ||
| 694 | + let routeStatus = 1 | ||
| 695 | + res.data.list.forEach(item => { | ||
| 696 | + if (route.route === item.flightRoute) { | ||
| 697 | + //航线对应插入数据 | ||
| 698 | + routeStatus = 2 | ||
| 699 | + this.infoForm.list.push(this.dataHandle(item)) | ||
| 700 | + } | ||
| 701 | + }) | ||
| 702 | + if (routeStatus == 1) { | ||
| 703 | + //否则插入占位基础数据 | ||
| 704 | + this.infoForm.list.push({ | ||
| 705 | + purposeOfFlightNo: this.infoForm.fltNo, | ||
| 706 | + ruleDate: this.infoForm.fltDate, | ||
| 707 | + flightRoute: route.route, | ||
| 708 | + routePriority: route.routePriority, | ||
| 709 | + }) | ||
| 710 | + } | ||
| 711 | + }) | ||
| 712 | + } | ||
| 652 | } else { | 713 | } else { |
| 653 | - //航班类型为Purple Tail则显示所有航线维度 | 714 | + //航线为空,对应航班或航班+日期下的全部维度(需补全未创建维度) |
| 654 | this.routeList.forEach(route => { | 715 | this.routeList.forEach(route => { |
| 655 | let routeStatus = 1 | 716 | let routeStatus = 1 |
| 656 | res.data.list.forEach(item => { | 717 | res.data.list.forEach(item => { |
| ... | @@ -672,151 +733,146 @@ export default { | ... | @@ -672,151 +733,146 @@ export default { |
| 672 | }) | 733 | }) |
| 673 | } | 734 | } |
| 674 | } else { | 735 | } else { |
| 675 | - //航线为空,对应航班或航班+日期下的全部维度(需补全未创建维度) | 736 | + //未请求到数据 |
| 676 | - this.routeList.forEach(route => { | 737 | + if (this.infoForm.route != null && this.infoForm.route != '' && this.infoForm.route != ' ') { |
| 677 | - let routeStatus = 1 | 738 | + //航线不为空,获取该航线下无日期通用维度设置 |
| 678 | - res.data.list.forEach(item => { | 739 | + findDestinationFltRuleByFlightNo({ |
| 679 | - if (route.route === item.flightRoute) { | 740 | + purposeOfFlightNo: this.infoForm.fltNo, |
| 680 | - //航线对应插入数据 | 741 | + flightRoute: this.infoForm.route, |
| 681 | - routeStatus = 2 | 742 | + flightRouteListStr: this.$route.params.route, |
| 682 | - this.infoForm.list.push(this.dataHandle(item)) | 743 | + status: this.$route.params.status |
| 683 | - } | 744 | + }).then(response => { |
| 684 | - }) | 745 | + this.routeList = response.data.routeList |
| 685 | - if (routeStatus == 1) { | 746 | + if (response.data.list.length > 0) { |
| 686 | - //否则插入占位基础数据 | 747 | + //查询到通用维度,去除id status,航线赋值,航线优先级赋值 |
| 687 | - this.infoForm.list.push({ | 748 | + if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { |
| 688 | - purposeOfFlightNo: this.infoForm.fltNo, | 749 | + //航班类型White Tail只展示当前航线维度 |
| 689 | - ruleDate: this.infoForm.fltDate, | 750 | + response.data.list.forEach(item => { |
| 690 | - flightRoute: route.route, | 751 | + item.id = undefined |
| 691 | - routePriority: route.routePriority, | 752 | + item.status = undefined |
| 692 | - }) | 753 | + item.flightRoute = this.infoForm.route |
| 693 | - } | 754 | + this.routeList.forEach(route => { |
| 694 | - }) | 755 | + if (route.route === this.infoForm.route) { |
| 695 | - } | 756 | + item.routePriority = route.routePriority |
| 696 | - } else { | 757 | + } |
| 697 | - //未请求到数据 | 758 | + }) |
| 698 | - if (this.infoForm.route != null && this.infoForm.route != '' && this.infoForm.route != ' ') { | 759 | + this.infoForm.list.push(this.dataHandle(item)) |
| 699 | - //航线不为空,获取该航线下无日期通用维度设置 | 760 | + }) |
| 700 | - findDestinationFltRuleByFlightNo({ | 761 | + } else { |
| 701 | - purposeOfFlightNo: this.infoForm.fltNo, | 762 | + //航班类型Purple Tail展示全部航线维度 |
| 702 | - flightRoute: this.infoForm.route, | 763 | + let routesStatus = 1 |
| 703 | - status: this.$route.params.status | ||
| 704 | - }).then(response => { | ||
| 705 | - if (response.data.list.length > 0) { | ||
| 706 | - //查询到通用维度,去除id status,航线赋值,航线优先级赋值 | ||
| 707 | - if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { | ||
| 708 | - //航班类型White Tail只展示当前航线维度 | ||
| 709 | - response.data.list.forEach(item => { | ||
| 710 | - item.id = undefined | ||
| 711 | - item.status = undefined | ||
| 712 | - item.flightRoute = this.infoForm.route | ||
| 713 | this.routeList.forEach(route => { | 764 | this.routeList.forEach(route => { |
| 714 | - if (route.route === this.infoForm.route) { | 765 | + response.data.list.forEach(item => { |
| 715 | - item.routePriority = route.routePriority | 766 | + if (route.route === item.flightRoute) { |
| 767 | + routesStatus = 2 | ||
| 768 | + item.id = undefined | ||
| 769 | + item.status = undefined | ||
| 770 | + item.flightRoute = this.infoForm.route | ||
| 771 | + item.routePriority = route.routePriority | ||
| 772 | + this.infoForm.list.push(this.dataHandle(item)) | ||
| 773 | + } | ||
| 774 | + }) | ||
| 775 | + if (routesStatus == 1) { | ||
| 776 | + this.infoForm.list.push({ | ||
| 777 | + purposeOfFlightNo: this.infoForm.fltNo, | ||
| 778 | + ruleDate: this.infoForm.fltDate, | ||
| 779 | + flightRoute: route.route, | ||
| 780 | + routePriority: route.routePriority, | ||
| 781 | + }) | ||
| 716 | } | 782 | } |
| 717 | }) | 783 | }) |
| 718 | - this.infoForm.list.push(this.dataHandle(item)) | 784 | + } |
| 719 | - }) | ||
| 720 | } else { | 785 | } else { |
| 721 | - //航班类型Purple Tail展示全部航线维度 | 786 | + //未查询到,插入占位基础数据使用户新建 |
| 722 | - let routesStatus = 1 | 787 | + if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { |
| 723 | - this.routeList.forEach(route => { | 788 | + //航班类型White Tail只展示当前航线维度 |
| 724 | - response.data.list.forEach(item => { | 789 | + this.routeList.forEach((item) => { |
| 725 | - if (route.route === item.flightRoute) { | 790 | + if (item.route === this.infoForm.route) { |
| 726 | - routesStatus = 2 | 791 | + this.infoForm.list.push({ |
| 727 | - item.id = undefined | 792 | + purposeOfFlightNo: this.infoForm.fltNo, |
| 728 | - item.status = undefined | 793 | + ruleDate: this.infoForm.fltDate, |
| 729 | - item.flightRoute = this.infoForm.route | 794 | + flightRoute: this.infoForm.route, |
| 730 | - item.routePriority = route.routePriority | 795 | + routePriority: item.routePriority, |
| 731 | - this.infoForm.list.push(this.dataHandle(item)) | 796 | + }) |
| 732 | } | 797 | } |
| 733 | }) | 798 | }) |
| 734 | - if (routesStatus == 1) { | 799 | + } else { |
| 800 | + //航班类型Purple Tail展示全部航线维度 | ||
| 801 | + // this.isEmpty = true | ||
| 802 | + this.routeList.forEach((route) => { | ||
| 735 | this.infoForm.list.push({ | 803 | this.infoForm.list.push({ |
| 736 | purposeOfFlightNo: this.infoForm.fltNo, | 804 | purposeOfFlightNo: this.infoForm.fltNo, |
| 737 | ruleDate: this.infoForm.fltDate, | 805 | ruleDate: this.infoForm.fltDate, |
| 738 | flightRoute: route.route, | 806 | flightRoute: route.route, |
| 739 | routePriority: route.routePriority, | 807 | routePriority: route.routePriority, |
| 740 | }) | 808 | }) |
| 741 | - } | ||
| 742 | - }) | ||
| 743 | - } | ||
| 744 | - } else { | ||
| 745 | - //未查询到,插入占位基础数据使用户新建 | ||
| 746 | - if (this.routeSatus == 'flightInformationMaintenanceWhite Tail') { | ||
| 747 | - //航班类型White Tail只展示当前航线维度 | ||
| 748 | - this.routeList.forEach((item) => { | ||
| 749 | - if (item.route === this.infoForm.route) { | ||
| 750 | - this.infoForm.list.push({ | ||
| 751 | - purposeOfFlightNo: this.infoForm.fltNo, | ||
| 752 | - ruleDate: this.infoForm.fltDate, | ||
| 753 | - flightRoute: this.infoForm.route, | ||
| 754 | - routePriority: item.routePriority, | ||
| 755 | - }) | ||
| 756 | - } | ||
| 757 | - }) | ||
| 758 | - } else { | ||
| 759 | - //航班类型Purple Tail展示全部航线维度 | ||
| 760 | - // this.isEmpty = true | ||
| 761 | - this.routeList.forEach((route) => { | ||
| 762 | - this.infoForm.list.push({ | ||
| 763 | - purposeOfFlightNo: this.infoForm.fltNo, | ||
| 764 | - ruleDate: this.infoForm.fltDate, | ||
| 765 | - flightRoute: route.route, | ||
| 766 | - routePriority: route.routePriority, | ||
| 767 | }) | 809 | }) |
| 768 | - }) | 810 | + } |
| 769 | } | 811 | } |
| 770 | - } | 812 | + }).catch(err => { |
| 771 | - }).catch(err => { | 813 | + this.isEmpty = true |
| 772 | - this.isEmpty = true | 814 | + console.log(err) |
| 773 | - console.log(err) | 815 | + }) |
| 774 | - }) | 816 | + } else { |
| 775 | - } else { | 817 | + //航线为空 |
| 776 | - //航线为空,提示未找到维度数据 | 818 | + if (this.routeSatus == 'FlightRandConfig') { |
| 777 | - if (this.routeSatus == 'flightInformationMaintenancePurple Tail') { | 819 | + if (this.routeSatus == 'FlightRandConfig') { |
| 778 | - findDestinationFltRuleByFlightNo({ | 820 | + this.infoForm.fltDate = '' |
| 779 | - purposeOfFlightNo: this.infoForm.fltNo, | 821 | + } |
| 780 | - flightRoute: this.infoForm.route, | 822 | + findDestinationFltRuleByFlightNo({ |
| 781 | - status: this.$route.params.status | 823 | + purposeOfFlightNo: this.infoForm.fltNo, |
| 782 | - }).then(response => { | 824 | + flightRoute: this.infoForm.route, |
| 783 | - if (response.data.list.length > 0) { | 825 | + flightRouteListStr: this.$route.params.route, |
| 784 | - this.routeList.forEach(route => { | 826 | + status: this.$route.params.status |
| 785 | - let routeStatus = 1 | 827 | + }).then(response => { |
| 786 | - response.data.list.forEach(item => { | 828 | + this.routeList = response.data.routeList |
| 787 | - if (item.flightRoute == route.route) { | 829 | + if (response.data.list.length > 0) { |
| 788 | - routeStatus = 2 | 830 | + this.routeList.forEach(route => { |
| 789 | - item.id = undefined | 831 | + let routeStatus = 1 |
| 790 | - item.status = undefined | 832 | + response.data.list.forEach(item => { |
| 791 | - item.routePriority = route.routePriority | 833 | + if (item.flightRoute == route.route) { |
| 792 | - this.infoForm.list.push( | 834 | + routeStatus = 2 |
| 793 | - this.dataHandle(item) | 835 | + item.id = undefined |
| 794 | - ) | 836 | + item.status = undefined |
| 837 | + item.routePriority = route.routePriority | ||
| 838 | + this.infoForm.list.push( | ||
| 839 | + this.dataHandle(item) | ||
| 840 | + ) | ||
| 841 | + } | ||
| 842 | + }) | ||
| 843 | + if (routeStatus == 1) { | ||
| 844 | + this.infoForm.list.push({ | ||
| 845 | + purposeOfFlightNo: this.infoForm.fltNo, | ||
| 846 | + ruleDate: this.infoForm.fltDate, | ||
| 847 | + flightRoute: route.route, | ||
| 848 | + routePriority: route.routePriority, | ||
| 849 | + }) | ||
| 795 | } | 850 | } |
| 796 | }) | 851 | }) |
| 797 | - if (routeStatus == 1) { | 852 | + } else { |
| 853 | + this.routeList.forEach((route) => { | ||
| 798 | this.infoForm.list.push({ | 854 | this.infoForm.list.push({ |
| 799 | purposeOfFlightNo: this.infoForm.fltNo, | 855 | purposeOfFlightNo: this.infoForm.fltNo, |
| 800 | ruleDate: this.infoForm.fltDate, | 856 | ruleDate: this.infoForm.fltDate, |
| 801 | flightRoute: route.route, | 857 | flightRoute: route.route, |
| 802 | routePriority: route.routePriority, | 858 | routePriority: route.routePriority, |
| 803 | }) | 859 | }) |
| 804 | - } | ||
| 805 | - }) | ||
| 806 | - } else { | ||
| 807 | - this.routeList.forEach((route) => { | ||
| 808 | - this.infoForm.list.push({ | ||
| 809 | - purposeOfFlightNo: this.infoForm.fltNo, | ||
| 810 | - ruleDate: this.infoForm.fltDate, | ||
| 811 | - flightRoute: route.route, | ||
| 812 | - routePriority: route.routePriority, | ||
| 813 | }) | 860 | }) |
| 861 | + } | ||
| 862 | + }).catch(err => { | ||
| 863 | + this.isEmpty = true | ||
| 864 | + console.log(err) | ||
| 865 | + }) | ||
| 866 | + } else if (this.routeSatus == 'flightInformationMaintenancePurple Tail') { | ||
| 867 | + this.routeList.forEach((route) => { | ||
| 868 | + this.infoForm.list.push({ | ||
| 869 | + purposeOfFlightNo: this.infoForm.fltNo, | ||
| 870 | + ruleDate: this.infoForm.fltDate, | ||
| 871 | + flightRoute: route.route, | ||
| 872 | + routePriority: route.routePriority, | ||
| 814 | }) | 873 | }) |
| 815 | - } | 874 | + }) |
| 816 | - }).catch(err => { | 875 | + } |
| 817 | - this.isEmpty = true | ||
| 818 | - console.log(err) | ||
| 819 | - }) | ||
| 820 | } | 876 | } |
| 821 | } | 877 | } |
| 822 | } | 878 | } |
| ... | @@ -848,6 +904,7 @@ export default { | ... | @@ -848,6 +904,7 @@ export default { |
| 848 | }) | 904 | }) |
| 849 | }) | 905 | }) |
| 850 | } else { | 906 | } else { |
| 907 | + this.msgWarning('未查询到航线信息!') | ||
| 851 | this.routeList = [] | 908 | this.routeList = [] |
| 852 | this.infoForm.list = [] | 909 | this.infoForm.list = [] |
| 853 | } | 910 | } |
| ... | @@ -1188,4 +1245,27 @@ export default { | ... | @@ -1188,4 +1245,27 @@ export default { |
| 1188 | text-align: center; | 1245 | text-align: center; |
| 1189 | } | 1246 | } |
| 1190 | } | 1247 | } |
| 1191 | -</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1248 | +</style> | ||
| 1249 | +.fontWeight { | ||
| 1250 | + font-size: 16px; | ||
| 1251 | + font-weight: 700; | ||
| 1252 | + text-indent: 2em; | ||
| 1253 | +} | ||
| 1254 | + | ||
| 1255 | +.rowPadding { | ||
| 1256 | + padding: 10px 50px; | ||
| 1257 | + font-size: 12px; | ||
| 1258 | +} | ||
| 1259 | + | ||
| 1260 | +.routeTip { | ||
| 1261 | + margin-left: 35px; | ||
| 1262 | + margin-bottom: 20px; | ||
| 1263 | + font-size: 16px; | ||
| 1264 | + color: #ff4949; | ||
| 1265 | +} | ||
| 1266 | + | ||
| 1267 | +.numberInput { | ||
| 1268 | + input { | ||
| 1269 | + text-align: center; | ||
| 1270 | + } | ||
| 1271 | +} | ... | ... |
| ... | @@ -55,7 +55,7 @@ | ... | @@ -55,7 +55,7 @@ |
| 55 | </Tables> | 55 | </Tables> |
| 56 | <!-- 查看目的航班对话框 --> | 56 | <!-- 查看目的航班对话框 --> |
| 57 | <el-dialog title="实际配载航班" :visible.sync="openFlightDate" width="70%" :close-on-click-modal="false" | 57 | <el-dialog title="实际配载航班" :visible.sync="openFlightDate" width="70%" :close-on-click-modal="false" |
| 58 | - :show-close="false" :append-to-body="true"> | 58 | + :show-close="false" :append-to-body="true" @close="cancelFlightDate"> |
| 59 | <el-table v-loading="loadingFlightDate" :data="sourceFlightAndFlightDate"> | 59 | <el-table v-loading="loadingFlightDate" :data="sourceFlightAndFlightDate"> |
| 60 | <el-table-column type="index" label="序号" align="center"> | 60 | <el-table-column type="index" label="序号" align="center"> |
| 61 | <template slot-scope="scope">{{ scope.$index + 1 }}</template> | 61 | <template slot-scope="scope">{{ scope.$index + 1 }}</template> |
| ... | @@ -67,7 +67,7 @@ | ... | @@ -67,7 +67,7 @@ |
| 67 | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150"> | 67 | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="150"> |
| 68 | <template slot-scope="scope"> | 68 | <template slot-scope="scope"> |
| 69 | <el-button size="mini" type="text" icon="el-icon-edit" | 69 | <el-button size="mini" type="text" icon="el-icon-edit" |
| 70 | - @click="handleClick(scope.row.actualFlight, 'detail', scope.row.flightDate, scope.row.route)">查看配置维度 | 70 | + @click="handleClick(scope.row.actualFlight, 'detail', scope.row.flightDate, ' ', ' ')">查看配置维度 |
| 71 | </el-button> | 71 | </el-button> |
| 72 | </template> | 72 | </template> |
| 73 | </el-table-column> | 73 | </el-table-column> |
| ... | @@ -78,7 +78,7 @@ | ... | @@ -78,7 +78,7 @@ |
| 78 | </el-dialog> | 78 | </el-dialog> |
| 79 | <!-- 添加或修改对话框 --> | 79 | <!-- 添加或修改对话框 --> |
| 80 | <el-dialog :title="title" :visible.sync="open" width="55%" :append-to-body="true" :close-on-click-modal="false" | 80 | <el-dialog :title="title" :visible.sync="open" width="55%" :append-to-body="true" :close-on-click-modal="false" |
| 81 | - :show-close="false"> | 81 | + :show-close="false" @close="cancel"> |
| 82 | <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto" size="small"> | 82 | <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto" size="small"> |
| 83 | <el-row> | 83 | <el-row> |
| 84 | <el-col :span="8"> | 84 | <el-col :span="8"> |
| ... | @@ -113,7 +113,7 @@ | ... | @@ -113,7 +113,7 @@ |
| 113 | <el-col :span="24" style="margin-bottom: 5%"> | 113 | <el-col :span="24" style="margin-bottom: 5%"> |
| 114 | <span style="color: #ff4949; margin-left: 10%">提示:配载航班之间请用分号分隔【符号不区分中英文】,例:CA1053;C7433</span><br /> | 114 | <span style="color: #ff4949; margin-left: 10%">提示:配载航班之间请用分号分隔【符号不区分中英文】,例:CA1053;C7433</span><br /> |
| 115 | <span | 115 | <span |
| 116 | - style="color: #ff4949; margin-left: 10%">提示:如果需要设置配载航班延迟或提前可以直接在目的航斑后加减【+-】天数。如:CA1053+1;CZ433-1</span> | 116 | + style="color: #ff4949; margin-left: 10%">提示:如果需要设置配载航班延迟或提前可以直接在目的航班后加减【+-】天数。如:CA1053+1;CZ433-1</span> |
| 117 | </el-col> | 117 | </el-col> |
| 118 | <el-col :span="24"> | 118 | <el-col :span="24"> |
| 119 | <el-form-item label="配载航班" prop="flightRank"> | 119 | <el-form-item label="配载航班" prop="flightRank"> |
| ... | @@ -268,7 +268,7 @@ export default { | ... | @@ -268,7 +268,7 @@ export default { |
| 268 | }, | 268 | }, |
| 269 | methods: { | 269 | methods: { |
| 270 | //跳转到查看,修改页面 | 270 | //跳转到查看,修改页面 |
| 271 | - handleClick(fltNo, handle, fltDate, route) { | 271 | + handleClick(fltNo, handle, fltDate, route, status) { |
| 272 | this.openFlightDate = false; | 272 | this.openFlightDate = false; |
| 273 | let obj = { | 273 | let obj = { |
| 274 | id: ' ', | 274 | id: ' ', |
| ... | @@ -277,8 +277,8 @@ export default { | ... | @@ -277,8 +277,8 @@ export default { |
| 277 | fltDate: fltDate != null ? fltDate : ' ', | 277 | fltDate: fltDate != null ? fltDate : ' ', |
| 278 | route: route, | 278 | route: route, |
| 279 | routeStatus: 'FlightRandConfig', | 279 | routeStatus: 'FlightRandConfig', |
| 280 | - status: ' ', | 280 | + status: status, |
| 281 | - createStatus: 1 | 281 | + createStatus: 1, |
| 282 | } | 282 | } |
| 283 | this.$router.push({ | 283 | this.$router.push({ |
| 284 | name: "FlightAllocConfigInfo", | 284 | name: "FlightAllocConfigInfo", | ... | ... |
| ... | @@ -41,7 +41,7 @@ | ... | @@ -41,7 +41,7 @@ |
| 41 | layout="total,prev, pager, next, jumper, ->" @tableSelect="tableSelection" @tableSelectAll="tableSelectAll"> | 41 | layout="total,prev, pager, next, jumper, ->" @tableSelect="tableSelection" @tableSelectAll="tableSelectAll"> |
| 42 | </Tables> | 42 | </Tables> |
| 43 | <el-dialog title="新增预审航班" width="20%" :visible.sync="dialogVisible" :close-on-click-modal="false" | 43 | <el-dialog title="新增预审航班" width="20%" :visible.sync="dialogVisible" :close-on-click-modal="false" |
| 44 | - :show-close="false" :append-to-body="true"> | 44 | + :show-close="false" :append-to-body="true" @close="close"> |
| 45 | <el-form ref="addForm" :model="newPre" label-width="auto" label-position="left" size="small" :rules="rules" | 45 | <el-form ref="addForm" :model="newPre" label-width="auto" label-position="left" size="small" :rules="rules" |
| 46 | @submit.native.prevent> | 46 | @submit.native.prevent> |
| 47 | <el-form-item label="航班号" prop="addFlitNo"> | 47 | <el-form-item label="航班号" prop="addFlitNo"> |
| ... | @@ -230,4 +230,5 @@ export default { | ... | @@ -230,4 +230,5 @@ export default { |
| 230 | }; | 230 | }; |
| 231 | </script> | 231 | </script> |
| 232 | <style rel="stylesheet/scss" lang="scss"> | 232 | <style rel="stylesheet/scss" lang="scss"> |
| 233 | + | ||
| 233 | </style> | 234 | </style> | ... | ... |
| ... | @@ -5,11 +5,12 @@ | ... | @@ -5,11 +5,12 @@ |
| 5 | <el-upload action="/caPreReviewImport/importFlight" name="file" :http-request="uploadExcel" | 5 | <el-upload action="/caPreReviewImport/importFlight" name="file" :http-request="uploadExcel" |
| 6 | :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx" | 6 | :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx" |
| 7 | class="upload-demo" v-hasPermi="['base:caImport:import']"> | 7 | class="upload-demo" v-hasPermi="['base:caImport:import']"> |
| 8 | - <el-button type="primary">点击上传</el-button> | 8 | + <el-button icon="el-icon-upload2" type="primary">点击上传</el-button> |
| 9 | </el-upload> | 9 | </el-upload> |
| 10 | </el-form-item> | 10 | </el-form-item> |
| 11 | <el-form-item> | 11 | <el-form-item> |
| 12 | - <el-button type="primary" @click="downloadTempleate" v-hasPermi="['base:caImport:download']">下载模板</el-button> | 12 | + <el-button type="primary" icon="el-icon-download" @click="downloadTempleate" |
| 13 | + v-hasPermi="['base:caImport:download']">下载模板</el-button> | ||
| 13 | </el-form-item> | 14 | </el-form-item> |
| 14 | </el-form> | 15 | </el-form> |
| 15 | <div style="font-size: 12px; font-weight: 700"> | 16 | <div style="font-size: 12px; font-weight: 700"> |
| ... | @@ -71,7 +72,6 @@ export default { | ... | @@ -71,7 +72,6 @@ export default { |
| 71 | this.$message.error("下载失败"); | 72 | this.$message.error("下载失败"); |
| 72 | } | 73 | } |
| 73 | }); | 74 | }); |
| 74 | - | ||
| 75 | }, | 75 | }, |
| 76 | uploadExcel(option) { | 76 | uploadExcel(option) { |
| 77 | //上传excel | 77 | //上传excel | ... | ... |
| ... | @@ -12,11 +12,12 @@ | ... | @@ -12,11 +12,12 @@ |
| 12 | <el-upload action="/flightInfoImport/importFlight" name="file" :http-request="uploadExcel" | 12 | <el-upload action="/flightInfoImport/importFlight" name="file" :http-request="uploadExcel" |
| 13 | :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx" | 13 | :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx" |
| 14 | class="upload-demo" v-hasPermi="['base:flightImport:importFlight']"> | 14 | class="upload-demo" v-hasPermi="['base:flightImport:importFlight']"> |
| 15 | - <el-button type="primary">点击上传</el-button> | 15 | + <el-button icon="el-icon-upload2" type="primary">点击上传</el-button> |
| 16 | </el-upload> | 16 | </el-upload> |
| 17 | </el-form-item> | 17 | </el-form-item> |
| 18 | <el-form-item> | 18 | <el-form-item> |
| 19 | - <el-button type="primary" @click="downloadTempleate" v-hasPermi="['base:flightImport:exportExcel']">下载模板 | 19 | + <el-button type="primary" icon="el-icon-download" @click="downloadTempleate" |
| 20 | + v-hasPermi="['base:flightImport:exportExcel']">下载模板 | ||
| 20 | </el-button> | 21 | </el-button> |
| 21 | </el-form-item> | 22 | </el-form-item> |
| 22 | </el-form> | 23 | </el-form> | ... | ... |
| ... | @@ -47,21 +47,35 @@ | ... | @@ -47,21 +47,35 @@ |
| 47 | </el-form-item> | 47 | </el-form-item> |
| 48 | </el-col> | 48 | </el-col> |
| 49 | </el-row> | 49 | </el-row> |
| 50 | - <el-button type="primary" icon="el-icon-search" size="mini" :loading="loading" @click="handleQuery">搜索 | 50 | + <el-button class="mt10" type="primary" icon="el-icon-search" size="mini" :loading="loading" |
| 51 | + @click="handleQuery">搜索 | ||
| 51 | </el-button> | 52 | </el-button> |
| 52 | - <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> | 53 | + <el-button class="mt10" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| 53 | - <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" v-hasPermi="['base:flightInfo:add']"> | 54 | + <el-button class="mt10" type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" |
| 55 | + v-hasPermi="['base:flightInfo:add']"> | ||
| 54 | 新增</el-button> | 56 | 新增</el-button> |
| 55 | - <el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0" | 57 | + <el-button class="mt10" type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0" |
| 56 | @click="handleFlightStatus('flightStatus10')" v-hasPermi="['base:flightInfo:open']">自动配舱开启</el-button> | 58 | @click="handleFlightStatus('flightStatus10')" v-hasPermi="['base:flightInfo:open']">自动配舱开启</el-button> |
| 57 | - <el-button type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0" | 59 | + <el-button class="mt10" type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0" |
| 58 | @click="handleFlightStatus('flightStatus80')" v-hasPermi="['base:flightInfo:close']">自动配舱关闭</el-button> | 60 | @click="handleFlightStatus('flightStatus80')" v-hasPermi="['base:flightInfo:close']">自动配舱关闭</el-button> |
| 59 | - <el-button type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0" | 61 | + <el-button class="mt10" type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0" |
| 60 | @click="autoPushBatch('open')" v-hasPermi="['base:flightInfo:autoPushOpen']">自动推送开启</el-button> | 62 | @click="autoPushBatch('open')" v-hasPermi="['base:flightInfo:autoPushOpen']">自动推送开启</el-button> |
| 61 | - <el-button type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0" | 63 | + <el-button class="mt10" type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0" |
| 62 | @click="autoPushBatch('close')" v-hasPermi="['base:flightInfo:autoPushClose']">自动推送关闭</el-button> | 64 | @click="autoPushBatch('close')" v-hasPermi="['base:flightInfo:autoPushClose']">自动推送关闭</el-button> |
| 63 | - <el-button type="danger" icon="el-icon-delete" size="mini" :disabled="ids.length == 0" @click="handleDelete" | 65 | + <el-button class="mt10" type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0" |
| 64 | - v-hasPermi="['base:flightInfo:delete']">删除 | 66 | + @click="whiteListSwitchStatus(1)" v-hasPermi="['base:flightInfo:whiteOpen']">白名单自动配舱开启 |
| 67 | + </el-button> | ||
| 68 | + <el-button class="mt10" type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0" | ||
| 69 | + @click="whiteListSwitchStatus(0)" v-hasPermi="['base:flightInfo:whiteClose']">白名单自动配舱关闭 | ||
| 70 | + </el-button> | ||
| 71 | + <el-button class="mt10" type="primary" icon="el-icon-circle-check" size="mini" :disabled="ids.length == 0" | ||
| 72 | + @click="BlackListSwitchStatus(1)">黑名单自动配舱开启 | ||
| 73 | + </el-button> | ||
| 74 | + <el-button class="mt10" type="primary" icon="el-icon-circle-close" size="mini" :disabled="ids.length == 0" | ||
| 75 | + @click="BlackListSwitchStatus(0)">黑名单自动配舱关闭 | ||
| 76 | + </el-button> | ||
| 77 | + <el-button class="mt10" type="danger" icon="el-icon-delete" size="mini" :disabled="ids.length == 0" | ||
| 78 | + @click="handleDelete" v-hasPermi="['base:flightInfo:delete']">删除 | ||
| 65 | </el-button> | 79 | </el-button> |
| 66 | </el-form> | 80 | </el-form> |
| 67 | <Tables ref="flightInfoTable" ductName="FlightInformation" :data="findAllFltDatList" :headerData="tableHeader" | 81 | <Tables ref="flightInfoTable" ductName="FlightInformation" :data="findAllFltDatList" :headerData="tableHeader" |
| ... | @@ -83,7 +97,7 @@ | ... | @@ -83,7 +97,7 @@ |
| 83 | </Tables> | 97 | </Tables> |
| 84 | <!-- 添加或修改对话框 --> | 98 | <!-- 添加或修改对话框 --> |
| 85 | <el-dialog :title="title" :visible.sync="open" width="60%" :close-on-click-modal="false" :append-to-body="true" | 99 | <el-dialog :title="title" :visible.sync="open" width="60%" :close-on-click-modal="false" :append-to-body="true" |
| 86 | - :show-close="false"> | 100 | + :show-close="false" @close="cancel"> |
| 87 | <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto" size="small"> | 101 | <el-form ref="form" :model="form" :rules="rules" label-position="right" label-width="auto" size="small"> |
| 88 | <el-row> | 102 | <el-row> |
| 89 | <el-col :span="12"> | 103 | <el-col :span="12"> |
| ... | @@ -111,14 +125,14 @@ | ... | @@ -111,14 +125,14 @@ |
| 111 | <el-form-item label="航班种类" prop="kindId"> | 125 | <el-form-item label="航班种类" prop="kindId"> |
| 112 | <el-select class="wid80" v-model="form.kindId" :disabled="formdisabled.kindId" placeholder="请选择航班种类" | 126 | <el-select class="wid80" v-model="form.kindId" :disabled="formdisabled.kindId" placeholder="请选择航班种类" |
| 113 | @change="kindChange"> | 127 | @change="kindChange"> |
| 114 | - <el-option v-for="item in selectOption.flightKindlist" :key="item.id" :label="item.chineseName" | 128 | + <el-option v-for="item in selectOption.flightKindlist" :key="item.id" :label="item.chineseName" |
| 115 | :value="item.id"> | 129 | :value="item.id"> |
| 116 | </el-option> | 130 | </el-option> |
| 117 | </el-select> | 131 | </el-select> |
| 118 | </el-form-item> | 132 | </el-form-item> |
| 119 | </el-col> | 133 | </el-col> |
| 120 | </el-row> | 134 | </el-row> |
| 121 | - <el-row> | 135 | + <el-row style="margin-bottom:5px"> |
| 122 | <el-col :span="12"> | 136 | <el-col :span="12"> |
| 123 | <el-form-item prop="route"> | 137 | <el-form-item prop="route"> |
| 124 | <template slot="label"> | 138 | <template slot="label"> |
| ... | @@ -130,17 +144,18 @@ | ... | @@ -130,17 +144,18 @@ |
| 130 | </div> | 144 | </div> |
| 131 | </template> | 145 | </template> |
| 132 | <el-select ref="routeSelect" class="wid80" v-model="form.route" :disabled="formdisabled.route" | 146 | <el-select ref="routeSelect" class="wid80" v-model="form.route" :disabled="formdisabled.route" |
| 133 | - placeholder="请选择航线" no-data-text="未查询到航线" @change="routeChange" :multiple='routeMultiple' | 147 | + placeholder="请选择航线" no-data-text="未查询到航线" @change="routeChange" :loading="routeLoading" |
| 134 | - :key="routeMultiple"> | 148 | + :multiple='routeMultiple' :key="routeMultiple"> |
| 135 | - <el-option v-for="item in routeList" :key="item.id" :label="item.route" :value="item.route"> | 149 | + <el-option v-for="item in routeList" :key="item.id" :label="item.route" :value="item.route"> |
| 136 | </el-option> | 150 | </el-option> |
| 137 | </el-select> | 151 | </el-select> |
| 138 | </el-form-item> | 152 | </el-form-item> |
| 153 | + <div class="formTips" v-if="title == '修改航班信息'">注意!:移除航线,相对应日期级别航线维度会同时删除</div> | ||
| 139 | </el-col> | 154 | </el-col> |
| 140 | <el-col :span="12"> | 155 | <el-col :span="12"> |
| 141 | <el-form-item label="航班类型" prop="typeId"> | 156 | <el-form-item label="航班类型" prop="typeId"> |
| 142 | <el-select class="wid80" v-model="form.typeId" placeholder="请选择航班类型"> | 157 | <el-select class="wid80" v-model="form.typeId" placeholder="请选择航班类型"> |
| 143 | - <el-option v-for="item in selectOption.flightTypelist" :key="item.id" :label="item.chineseName" | 158 | + <el-option v-for="item in selectOption.flightTypelist" :key="item.id" :label="item.chineseName" |
| 144 | :value="item.id"> | 159 | :value="item.id"> |
| 145 | </el-option> | 160 | </el-option> |
| 146 | </el-select> | 161 | </el-select> |
| ... | @@ -151,7 +166,7 @@ | ... | @@ -151,7 +166,7 @@ |
| 151 | <el-col :span="12"> | 166 | <el-col :span="12"> |
| 152 | <el-form-item label="航班状态" prop="statusId"> | 167 | <el-form-item label="航班状态" prop="statusId"> |
| 153 | <el-select class="wid80" :disabled="true" v-model="form.statusId" placeholder="请选择航班状态"> | 168 | <el-select class="wid80" :disabled="true" v-model="form.statusId" placeholder="请选择航班状态"> |
| 154 | - <el-option v-for="item in selectOption.flightStatuslist" :key="item.id" :label="item.chineseName" | 169 | + <el-option v-for="item in selectOption.flightStatuslist" :key="item.id" :label="item.chineseName" |
| 155 | :value="item.id"> | 170 | :value="item.id"> |
| 156 | </el-option> | 171 | </el-option> |
| 157 | </el-select> | 172 | </el-select> |
| ... | @@ -195,20 +210,20 @@ | ... | @@ -195,20 +210,20 @@ |
| 195 | <el-col :span="12"> | 210 | <el-col :span="12"> |
| 196 | <el-form-item label="高价百分比" prop="highPriceWeightPercent"> | 211 | <el-form-item label="高价百分比" prop="highPriceWeightPercent"> |
| 197 | <el-input-number class="wid80" :disabled="ishighPriceWeightPercent" @change="LowHighAvailable" | 212 | <el-input-number class="wid80" :disabled="ishighPriceWeightPercent" @change="LowHighAvailable" |
| 198 | - placeholder="请输入高价百分比" v-model="form.highPriceWeightPercent"></el-input-number> | 213 | + placeholder="开启高低价后可修改" v-model="form.highPriceWeightPercent"></el-input-number> |
| 199 | </el-form-item> | 214 | </el-form-item> |
| 200 | </el-col> | 215 | </el-col> |
| 201 | </el-row> | 216 | </el-row> |
| 202 | <el-row> | 217 | <el-row> |
| 203 | <el-col :span="12"> | 218 | <el-col :span="12"> |
| 204 | <el-form-item label="低价百分比" prop="lowPriceWeightPercent"> | 219 | <el-form-item label="低价百分比" prop="lowPriceWeightPercent"> |
| 205 | - <el-input-number class="wid80" :disabled="true" placeholder="请输入低价百分比" | 220 | + <el-input-number class="wid80" :disabled="true" placeholder="开启高低价后计算" |
| 206 | v-model="form.lowPriceWeightPercent"></el-input-number> | 221 | v-model="form.lowPriceWeightPercent"></el-input-number> |
| 207 | </el-form-item> | 222 | </el-form-item> |
| 208 | </el-col> | 223 | </el-col> |
| 209 | <el-col :span="12"> | 224 | <el-col :span="12"> |
| 210 | <el-form-item label="高价可配重量" prop="highAvailableWeight"> | 225 | <el-form-item label="高价可配重量" prop="highAvailableWeight"> |
| 211 | - <el-input-number class="wid80" :disabled="true" placeholder="请输入高价可配重量" v-model="form.highAvailableWeight" | 226 | + <el-input-number class="wid80" :disabled="true" placeholder="开启高低价后计算" v-model="form.highAvailableWeight" |
| 212 | :precision="2"></el-input-number> | 227 | :precision="2"></el-input-number> |
| 213 | </el-form-item> | 228 | </el-form-item> |
| 214 | </el-col> | 229 | </el-col> |
| ... | @@ -216,7 +231,7 @@ | ... | @@ -216,7 +231,7 @@ |
| 216 | <el-row> | 231 | <el-row> |
| 217 | <el-col :span="12"> | 232 | <el-col :span="12"> |
| 218 | <el-form-item label="低价可配重量" prop="lowAvailableWeight"> | 233 | <el-form-item label="低价可配重量" prop="lowAvailableWeight"> |
| 219 | - <el-input-number class="wid80" :disabled="true" placeholder="请输入低价可配重量" v-model="form.lowAvailableWeight" | 234 | + <el-input-number class="wid80" :disabled="true" placeholder="开启高低价后计算" v-model="form.lowAvailableWeight" |
| 220 | :precision="2"></el-input-number> | 235 | :precision="2"></el-input-number> |
| 221 | </el-form-item> | 236 | </el-form-item> |
| 222 | </el-col> | 237 | </el-col> |
| ... | @@ -242,12 +257,12 @@ | ... | @@ -242,12 +257,12 @@ |
| 242 | </el-col> | 257 | </el-col> |
| 243 | <el-col :span="12"> | 258 | <el-col :span="12"> |
| 244 | <el-form-item label="特殊规则预留总重量" prop="accountTotalWeight"> | 259 | <el-form-item label="特殊规则预留总重量" prop="accountTotalWeight"> |
| 245 | - <el-input class="wid80" v-model="form.accountTotalWeight" disabled /> | 260 | + <el-input-number class="wid80" v-model="form.accountTotalWeight" disabled placeholder="配置特殊规则后计算" /> |
| 246 | </el-form-item> | 261 | </el-form-item> |
| 247 | </el-col> | 262 | </el-col> |
| 248 | <el-col :span="12"> | 263 | <el-col :span="12"> |
| 249 | <el-form-item label="特殊规则已配重量" prop="accountAllocatedWeight"> | 264 | <el-form-item label="特殊规则已配重量" prop="accountAllocatedWeight"> |
| 250 | - <el-input class="wid80" v-model="form.accountAllocatedWeight" disabled /> | 265 | + <el-input-number class="wid80" v-model="form.accountAllocatedWeight" disabled placeholder="配置特殊规则后计算" /> |
| 251 | </el-form-item> | 266 | </el-form-item> |
| 252 | </el-col> | 267 | </el-col> |
| 253 | </el-row> | 268 | </el-row> |
| ... | @@ -258,7 +273,7 @@ | ... | @@ -258,7 +273,7 @@ |
| 258 | </div> | 273 | </div> |
| 259 | </el-dialog> | 274 | </el-dialog> |
| 260 | <el-dialog title="未删除成功航班" width="40%" center :visible.sync="dialogTableVisible" :close-on-click-modal="false" | 275 | <el-dialog title="未删除成功航班" width="40%" center :visible.sync="dialogTableVisible" :close-on-click-modal="false" |
| 261 | - :append-to-body="true"> | 276 | + :append-to-body="true" :close-on-press-escape="false"> |
| 262 | <el-table :data="gridData"> | 277 | <el-table :data="gridData"> |
| 263 | <el-table-column property="fltNo" label="航班号"></el-table-column> | 278 | <el-table-column property="fltNo" label="航班号"></el-table-column> |
| 264 | <el-table-column property="fltDate" label="航班日期"></el-table-column> | 279 | <el-table-column property="fltDate" label="航班日期"></el-table-column> |
| ... | @@ -278,6 +293,8 @@ import { | ... | @@ -278,6 +293,8 @@ import { |
| 278 | findFltCommonConf, | 293 | findFltCommonConf, |
| 279 | updateStatusBatch, | 294 | updateStatusBatch, |
| 280 | updateAutoPushBatch, | 295 | updateAutoPushBatch, |
| 296 | + updateWhiteListSwitchBatch, | ||
| 297 | + updateBlackListSwitchBatch | ||
| 281 | } from "@/api/findAllFltData"; | 298 | } from "@/api/findAllFltData"; |
| 282 | import { getpreAudit } from '@/api/system/preReview.js' | 299 | import { getpreAudit } from '@/api/system/preReview.js' |
| 283 | import { queryRouteByFltNo } from '@/api/destinationFlight.js' | 300 | import { queryRouteByFltNo } from '@/api/destinationFlight.js' |
| ... | @@ -307,7 +324,7 @@ export default { | ... | @@ -307,7 +324,7 @@ export default { |
| 307 | fltNo: [ | 324 | fltNo: [ |
| 308 | { | 325 | { |
| 309 | required: true, | 326 | required: true, |
| 310 | - message: "ACCS原航班号不能为空", | 327 | + message: "航班号不能为空", |
| 311 | trigger: "blur", | 328 | trigger: "blur", |
| 312 | }, | 329 | }, |
| 313 | ], | 330 | ], |
| ... | @@ -335,7 +352,7 @@ export default { | ... | @@ -335,7 +352,7 @@ export default { |
| 335 | route: [ | 352 | route: [ |
| 336 | { | 353 | { |
| 337 | required: true, | 354 | required: true, |
| 338 | - message: "航班线路不能为空", | 355 | + message: "航班路线不能为空", |
| 339 | trigger: "blur", | 356 | trigger: "blur", |
| 340 | }, | 357 | }, |
| 341 | // { | 358 | // { |
| ... | @@ -439,6 +456,7 @@ export default { | ... | @@ -439,6 +456,7 @@ export default { |
| 439 | ishighPriceWeightPercent: true, | 456 | ishighPriceWeightPercent: true, |
| 440 | //遮罩层 | 457 | //遮罩层 |
| 441 | loading: false, | 458 | loading: false, |
| 459 | + routeLoading: false, | ||
| 442 | //遮罩层 | 460 | //遮罩层 |
| 443 | loadingFlightDate: false, | 461 | loadingFlightDate: false, |
| 444 | //删除失败弹框 | 462 | //删除失败弹框 |
| ... | @@ -491,6 +509,8 @@ export default { | ... | @@ -491,6 +509,8 @@ export default { |
| 491 | //输入航班号后 | 509 | //输入航班号后 |
| 492 | blurfltNo() { | 510 | blurfltNo() { |
| 493 | this.routeList = [] | 511 | this.routeList = [] |
| 512 | + this.form.accountTotalWeight = 0 | ||
| 513 | + this.form.accountAllocatedWeight = 0 | ||
| 494 | if ( | 514 | if ( |
| 495 | this.form.fltNo != null && | 515 | this.form.fltNo != null && |
| 496 | this.form.fltNo != undefined && | 516 | this.form.fltNo != undefined && |
| ... | @@ -553,14 +573,17 @@ export default { | ... | @@ -553,14 +573,17 @@ export default { |
| 553 | this.msgError(response.msg); | 573 | this.msgError(response.msg); |
| 554 | } | 574 | } |
| 555 | }); | 575 | }); |
| 576 | + this.routeLoading = true | ||
| 556 | //获取航线 | 577 | //获取航线 |
| 557 | queryRouteByFltNo({ fltNo: this.form.fltNo }).then(res => { | 578 | queryRouteByFltNo({ fltNo: this.form.fltNo }).then(res => { |
| 579 | + this.routeLoading = false | ||
| 558 | if (res.code === 200) { | 580 | if (res.code === 200) { |
| 559 | this.routeList = res.data.list | 581 | this.routeList = res.data.list |
| 560 | } else { | 582 | } else { |
| 561 | this.msgWarning(res.msg) | 583 | this.msgWarning(res.msg) |
| 562 | } | 584 | } |
| 563 | }).catch(err => { | 585 | }).catch(err => { |
| 586 | + this.routeLoading = false | ||
| 564 | console.log(err) | 587 | console.log(err) |
| 565 | }) | 588 | }) |
| 566 | } | 589 | } |
| ... | @@ -677,7 +700,7 @@ export default { | ... | @@ -677,7 +700,7 @@ export default { |
| 677 | this.$set( | 700 | this.$set( |
| 678 | this.form, | 701 | this.form, |
| 679 | "highAvailableWeight", | 702 | "highAvailableWeight", |
| 680 | - (Weight - this.form.alloctedWeight) * | 703 | + (Weight - this.form.accountTotalWeight - (this.form.alloctedWeight - this.form.accountAllocatedWeight)) * |
| 681 | (this.form.highPriceWeightPercent / 100) | 704 | (this.form.highPriceWeightPercent / 100) |
| 682 | ); | 705 | ); |
| 683 | this.$set( | 706 | this.$set( |
| ... | @@ -713,7 +736,7 @@ export default { | ... | @@ -713,7 +736,7 @@ export default { |
| 713 | this.$set( | 736 | this.$set( |
| 714 | this.form, | 737 | this.form, |
| 715 | "lowAvailableWeight", | 738 | "lowAvailableWeight", |
| 716 | - Weight - this.form.alloctedWeight - this.form.highAvailableWeight | 739 | + (Weight - this.form.accountTotalWeight - (this.form.alloctedWeight - this.form.accountAllocatedWeight)) - this.form.highAvailableWeight |
| 717 | ); | 740 | ); |
| 718 | //this.form.lowAvailableWeight = Weightall - this.form.HighAvailableWeight; | 741 | //this.form.lowAvailableWeight = Weightall - this.form.HighAvailableWeight; |
| 719 | } else if ( | 742 | } else if ( |
| ... | @@ -764,8 +787,7 @@ export default { | ... | @@ -764,8 +787,7 @@ export default { |
| 764 | this.formdisabled.fltDate = true; | 787 | this.formdisabled.fltDate = true; |
| 765 | //航班种类 | 788 | //航班种类 |
| 766 | this.formdisabled.kindId = true; | 789 | this.formdisabled.kindId = true; |
| 767 | - //航线 | 790 | + |
| 768 | - this.formdisabled.route = true | ||
| 769 | //根据ID查item | 791 | //根据ID查item |
| 770 | findFltById(row).then((response) => { | 792 | findFltById(row).then((response) => { |
| 771 | if (response.code == 200) { | 793 | if (response.code == 200) { |
| ... | @@ -777,6 +799,31 @@ export default { | ... | @@ -777,6 +799,31 @@ export default { |
| 777 | // this.form.isNeedRequired = this.form.isNeedRequired === 1 ? true : false; | 799 | // this.form.isNeedRequired = this.form.isNeedRequired === 1 ? true : false; |
| 778 | // 计算高低价可配 | 800 | // 计算高低价可配 |
| 779 | // this.LowHighAvailable(); | 801 | // this.LowHighAvailable(); |
| 802 | + | ||
| 803 | + //航线 | ||
| 804 | + this.selectOption.flightKindlist.forEach(item => { | ||
| 805 | + if (item.id == this.form.kindId) { | ||
| 806 | + if (item.chineseName.indexOf('White') >= 0) { | ||
| 807 | + this.formdisabled.route = true | ||
| 808 | + } else if (item.chineseName.indexOf('Purple') >= 0) { | ||
| 809 | + this.formdisabled.route = false | ||
| 810 | + this.routeMultiple = true | ||
| 811 | + //获取航线 | ||
| 812 | + queryRouteByFltNo({ fltNo: this.form.fltNo }).then(res => { | ||
| 813 | + this.routeLoading = false | ||
| 814 | + if (res.code === 200) { | ||
| 815 | + this.routeList = res.data.list | ||
| 816 | + } else { | ||
| 817 | + this.msgWarning(res.msg) | ||
| 818 | + } | ||
| 819 | + }).catch(err => { | ||
| 820 | + this.routeLoading = false | ||
| 821 | + console.log(err) | ||
| 822 | + }) | ||
| 823 | + } | ||
| 824 | + } | ||
| 825 | + }) | ||
| 826 | + this.ishighPriceWeightPercent = this.form.highLowPriceFlg === 1 ? false : true | ||
| 780 | } else { | 827 | } else { |
| 781 | this.msgError(response.msg); | 828 | this.msgError(response.msg); |
| 782 | } | 829 | } |
| ... | @@ -789,10 +836,10 @@ export default { | ... | @@ -789,10 +836,10 @@ export default { |
| 789 | handle: 'update', | 836 | handle: 'update', |
| 790 | fltNo: val.fltNo, | 837 | fltNo: val.fltNo, |
| 791 | fltDate: val.fltDate ? val.fltDate : null, | 838 | fltDate: val.fltDate ? val.fltDate : null, |
| 792 | - route: val.flightKindName != 'Purple Tail' ? val.route : ' ', | 839 | + route: val.route, |
| 793 | routeStatus: 'flightInformationMaintenance' + val.flightKindName, | 840 | routeStatus: 'flightInformationMaintenance' + val.flightKindName, |
| 794 | status: ' ', | 841 | status: ' ', |
| 795 | - createStatus: 1 | 842 | + createStatus: 1, |
| 796 | } | 843 | } |
| 797 | this.$router.push({ | 844 | this.$router.push({ |
| 798 | name: 'FlightAllocConfigInfo', | 845 | name: 'FlightAllocConfigInfo', |
| ... | @@ -890,7 +937,9 @@ export default { | ... | @@ -890,7 +937,9 @@ export default { |
| 890 | //取消按钮 | 937 | //取消按钮 |
| 891 | cancel() { | 938 | cancel() { |
| 892 | this.routeList = [] | 939 | this.routeList = [] |
| 940 | + this.ishighPriceWeightPercent = true | ||
| 893 | this.routeMultiple = false | 941 | this.routeMultiple = false |
| 942 | + this.routeLoading = false | ||
| 894 | this.open = false; | 943 | this.open = false; |
| 895 | this.findAllFltData(); | 944 | this.findAllFltData(); |
| 896 | this.findFltConditionData(); | 945 | this.findFltConditionData(); |
| ... | @@ -973,6 +1022,46 @@ export default { | ... | @@ -973,6 +1022,46 @@ export default { |
| 973 | this.findAllFltData(); | 1022 | this.findAllFltData(); |
| 974 | } | 1023 | } |
| 975 | }, | 1024 | }, |
| 1025 | + //白名单配舱开关 | ||
| 1026 | + whiteListSwitchStatus(val) { | ||
| 1027 | + let obj = { | ||
| 1028 | + updateIds: [] | ||
| 1029 | + } | ||
| 1030 | + obj.status = val | ||
| 1031 | + this.ids.forEach(item => { | ||
| 1032 | + obj.updateIds.push(item.id) | ||
| 1033 | + }) | ||
| 1034 | + updateWhiteListSwitchBatch(obj).then(res => { | ||
| 1035 | + if (res.code === 200) { | ||
| 1036 | + this.msgSuccess(res.msg) | ||
| 1037 | + this.findAllFltData() | ||
| 1038 | + } else { | ||
| 1039 | + this.msgWarning(res.msg) | ||
| 1040 | + } | ||
| 1041 | + }).catch(err => { | ||
| 1042 | + console.log(err) | ||
| 1043 | + }) | ||
| 1044 | + }, | ||
| 1045 | + //黑名单配舱开关 | ||
| 1046 | + BlackListSwitchStatus(val) { | ||
| 1047 | + let obj = { | ||
| 1048 | + updateIds: [] | ||
| 1049 | + } | ||
| 1050 | + obj.status = val | ||
| 1051 | + this.ids.forEach(item => { | ||
| 1052 | + obj.updateIds.push(item.id) | ||
| 1053 | + }) | ||
| 1054 | + updateBlackListSwitchBatch(obj).then(res => { | ||
| 1055 | + if (res.code === 200) { | ||
| 1056 | + this.msgSuccess(res.msg) | ||
| 1057 | + this.findAllFltData() | ||
| 1058 | + } else { | ||
| 1059 | + this.msgWarning(res.msg) | ||
| 1060 | + } | ||
| 1061 | + }).catch(err => { | ||
| 1062 | + console.log(err) | ||
| 1063 | + }) | ||
| 1064 | + }, | ||
| 976 | //航线修改 | 1065 | //航线修改 |
| 977 | routeChange(val) { | 1066 | routeChange(val) { |
| 978 | this.$forceUpdate() | 1067 | this.$forceUpdate() |
| ... | @@ -1027,4 +1116,10 @@ export default { | ... | @@ -1027,4 +1116,10 @@ export default { |
| 1027 | .el-table__body tr.hover-row>td { | 1116 | .el-table__body tr.hover-row>td { |
| 1028 | background-color: #d9ecff !important; | 1117 | background-color: #d9ecff !important; |
| 1029 | } | 1118 | } |
| 1119 | + | ||
| 1120 | +.formTips { | ||
| 1121 | + width: 85%; | ||
| 1122 | + color: #ff4949; | ||
| 1123 | + text-align: right; | ||
| 1124 | +} | ||
| 1030 | </style> | 1125 | </style> | ... | ... |
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-dialog :title="openStatus == 'add' ? '新 增' : openStatus == 'downloadExcel' ? '导出Excel' : '导入Excel'" | ||
| 4 | + :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" append-to-body center | ||
| 5 | + @close="close"> | ||
| 6 | + <el-form class="form-header" :model="formData" size="small" ref="addForm" label-width="auto" | ||
| 7 | + label-position="left" style="margin-bottom:10px" :rules="rules" @submit.native.prevent> | ||
| 8 | + <div v-if="openStatus == 'add'"> | ||
| 9 | + <el-form-item label="货站名称" prop="goodsStation"> | ||
| 10 | + <el-input type="text" v-model="formData.goodsStation" maxlength="25" placeholder="请输入货站名称"> | ||
| 11 | + </el-input> | ||
| 12 | + </el-form-item> | ||
| 13 | + <el-form-item label="品名" prop="goodsList"> | ||
| 14 | + <el-input type="textarea" v-model="formData.goodsList" rows="4" maxlength="125" | ||
| 15 | + placeholder="请输入品名,多个用“;”隔开"> | ||
| 16 | + </el-input> | ||
| 17 | + </el-form-item> | ||
| 18 | + </div> | ||
| 19 | + <div v-else-if="openStatus == 'downloadExcel'"> | ||
| 20 | + <el-form-item label="货站名称" prop="goodsStation"> | ||
| 21 | + <el-select class="selectWidth100" v-model.lazy="formData.goodsStation" filterable | ||
| 22 | + :loading="goodsStationLoading" placeholder="不限"> | ||
| 23 | + <el-option v-for="(item, index) in goodsStationList" :label="item" :value="item" :key="item"> | ||
| 24 | + </el-option> | ||
| 25 | + </el-select> | ||
| 26 | + </el-form-item> | ||
| 27 | + </div> | ||
| 28 | + <div v-else> | ||
| 29 | + <el-form-item label="货站名称" prop="uploadGoodsStation"> | ||
| 30 | + <el-input type="text" v-model="formData.uploadGoodsStation" maxlength="25" placeholder="请输入货站名称"> | ||
| 31 | + </el-input> | ||
| 32 | + </el-form-item> | ||
| 33 | + <el-form-item prop="file" label-width="0px"> | ||
| 34 | + <el-upload ref="upload" action="/goods/uploadGoodsExcel" name="file" :http-request="uploadExcel" | ||
| 35 | + :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" accept=".xlsx" | ||
| 36 | + class="upload-demo"> | ||
| 37 | + <el-button type="primary" icon="el-icon-upload2" size="small">选择文件</el-button> | ||
| 38 | + </el-upload> | ||
| 39 | + </el-form-item> | ||
| 40 | + </div> | ||
| 41 | + </el-form> | ||
| 42 | + <div slot="footer" class="dialog-footer"> | ||
| 43 | + <el-button v-if='openStatus == "add"' type="primary" size="small" :loading="loading" @click="submit">确 定 | ||
| 44 | + </el-button> | ||
| 45 | + <el-button v-else-if="openStatus == 'downloadExcel'" type="primary" size="small" :loading="downloading" | ||
| 46 | + @click="download">导出Excel</el-button> | ||
| 47 | + <el-button v-else type="primary" :loading="loading" size="small" @click="upload">导入Excel | ||
| 48 | + </el-button> | ||
| 49 | + <el-button style="margin-top:10px" size="small" @click="close">取 消</el-button> | ||
| 50 | + </div> | ||
| 51 | + </el-dialog> | ||
| 52 | + </div> | ||
| 53 | +</template> | ||
| 54 | + | ||
| 55 | +<script> | ||
| 56 | +import { batchAddBlackGoods, findStationName, uploadGoodsBlackExce } from "@/api/goodsStation" | ||
| 57 | +import { downLoadXlsx } from "@/utils/zipdownload"; | ||
| 58 | + | ||
| 59 | +export default { | ||
| 60 | + name: '', | ||
| 61 | + props: { | ||
| 62 | + open: { | ||
| 63 | + type: Boolean, | ||
| 64 | + default: false | ||
| 65 | + }, | ||
| 66 | + openStatus: { | ||
| 67 | + type: String, | ||
| 68 | + default: 'add' | ||
| 69 | + } | ||
| 70 | + }, | ||
| 71 | + data() { | ||
| 72 | + return { | ||
| 73 | + formData: { | ||
| 74 | + goodsStation: null, | ||
| 75 | + uploadGoodsStation: null, | ||
| 76 | + goodsList: '', | ||
| 77 | + file: null | ||
| 78 | + }, | ||
| 79 | + goodsStationList: [], | ||
| 80 | + rules: { | ||
| 81 | + goodsStation: [ | ||
| 82 | + { | ||
| 83 | + required: true, | ||
| 84 | + message: "货站名称不能为空", | ||
| 85 | + trigger: "change", | ||
| 86 | + }, | ||
| 87 | + ], | ||
| 88 | + goodsList: [ | ||
| 89 | + { | ||
| 90 | + required: true, | ||
| 91 | + message: "品名不能为空", | ||
| 92 | + trigger: "blur", | ||
| 93 | + }, | ||
| 94 | + ], | ||
| 95 | + uploadGoodsStation: [ | ||
| 96 | + { | ||
| 97 | + required: true, | ||
| 98 | + message: "货站名称不能为空", | ||
| 99 | + trigger: "change", | ||
| 100 | + }, | ||
| 101 | + ], | ||
| 102 | + file: [ | ||
| 103 | + { | ||
| 104 | + required: true, | ||
| 105 | + message: "文件不能为空", | ||
| 106 | + trigger: "change", | ||
| 107 | + }, | ||
| 108 | + ] | ||
| 109 | + }, | ||
| 110 | + fileList: [], | ||
| 111 | + errorData: [], | ||
| 112 | + goodsStationLoading: false, | ||
| 113 | + downloading: false, | ||
| 114 | + loading: false, | ||
| 115 | + } | ||
| 116 | + }, | ||
| 117 | + watch: { | ||
| 118 | + open(val) { | ||
| 119 | + if (val && this.openStatus == 'downloadExcel') { | ||
| 120 | + this.getgoods() | ||
| 121 | + } | ||
| 122 | + } | ||
| 123 | + }, | ||
| 124 | + methods: { | ||
| 125 | + //查询货站 | ||
| 126 | + getgoods() { | ||
| 127 | + this.goodsStationLoading = true | ||
| 128 | + findStationName({ goodsType: 2 }).then(res => { | ||
| 129 | + this.goodsStationLoading = false | ||
| 130 | + if (res.code === 200) { | ||
| 131 | + this.goodsStationList = res.data.list | ||
| 132 | + } else { | ||
| 133 | + this.msgWarning(res.msg) | ||
| 134 | + } | ||
| 135 | + }).catch(err => { | ||
| 136 | + this.goodsStationLoading = false | ||
| 137 | + console.log(err) | ||
| 138 | + }) | ||
| 139 | + }, | ||
| 140 | + //提交 | ||
| 141 | + submit() { | ||
| 142 | + let obj = { | ||
| 143 | + goodsList: [] | ||
| 144 | + } | ||
| 145 | + obj.goodsStation = this.formData.goodsStation | ||
| 146 | + this.formData.goodsList = this.formData.goodsList.replace(/;/g, ";") | ||
| 147 | + if (this.formData.goodsList != null && this.formData.goodsList != '') { | ||
| 148 | + this.formData.goodsList.split(';').forEach(item => { | ||
| 149 | + if (item != null && item != '') { | ||
| 150 | + obj.goodsList.push(item) | ||
| 151 | + } | ||
| 152 | + }) | ||
| 153 | + } | ||
| 154 | + this.$refs['addForm'].validate(val => { | ||
| 155 | + if (val) { | ||
| 156 | + this.loading = true | ||
| 157 | + batchAddBlackGoods(obj).then(res => { | ||
| 158 | + this.loading = false | ||
| 159 | + if (res.code === 200) { | ||
| 160 | + this.msgSuccess('添加成功') | ||
| 161 | + this.close() | ||
| 162 | + } else { | ||
| 163 | + this.msgWarning(res.msg) | ||
| 164 | + } | ||
| 165 | + }).catch(err => { | ||
| 166 | + this.loading = false | ||
| 167 | + console.log(err) | ||
| 168 | + }) | ||
| 169 | + } | ||
| 170 | + }) | ||
| 171 | + }, | ||
| 172 | + //选择文件 | ||
| 173 | + uploadExcel(option) { | ||
| 174 | + this.formData.file = option.file | ||
| 175 | + }, | ||
| 176 | + //导入Excel | ||
| 177 | + upload() { | ||
| 178 | + this.loading = true | ||
| 179 | + if (this.formData.file != null && this.formData.file != '') { | ||
| 180 | + this.$refs['addForm'].validate(val => { | ||
| 181 | + if (val) { | ||
| 182 | + const file = this.formData.file; | ||
| 183 | + let goodsStation = this.formData.uploadGoodsStation | ||
| 184 | + uploadGoodsBlackExce(file, goodsStation).then((res) => { | ||
| 185 | + this.loading = false; | ||
| 186 | + if (res.code != 200) { | ||
| 187 | + if (res.code == 603) { | ||
| 188 | + this.$alert(res.msg, "提示", { | ||
| 189 | + confirmButtonText: "确定", | ||
| 190 | + type: "warning", | ||
| 191 | + }); | ||
| 192 | + } else if (res.code === 201) { | ||
| 193 | + this.$message.warning(res.msg); | ||
| 194 | + if (res.data) { | ||
| 195 | + this.errorData = res.data; | ||
| 196 | + this.$router.push({ name: 'UpDateResult', query: { data: this.errorData, from: 'FlightInformationImport' } }) | ||
| 197 | + } | ||
| 198 | + } else { | ||
| 199 | + this.$message.warning(res.msg); | ||
| 200 | + } | ||
| 201 | + } else { | ||
| 202 | + this.$message.success(res.msg); | ||
| 203 | + } | ||
| 204 | + setTimeout(() => { | ||
| 205 | + this.close() | ||
| 206 | + }, 1000); | ||
| 207 | + }); | ||
| 208 | + } else { | ||
| 209 | + this.loading = false; | ||
| 210 | + } | ||
| 211 | + }) | ||
| 212 | + } else { | ||
| 213 | + this.loading = false | ||
| 214 | + this.msgWarning('请选择文件后再导入!') | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + }, | ||
| 218 | + //导出Excel | ||
| 219 | + download() { | ||
| 220 | + this.$refs['addForm'].validate(val => { | ||
| 221 | + if (val) { | ||
| 222 | + this.downloading = true | ||
| 223 | + let data = { goodsStation: this.formData.goodsStation, goodsType: 2 } | ||
| 224 | + downLoadXlsx("/goods/exportGoods", data, "黑名单货站表") | ||
| 225 | + .then(() => { | ||
| 226 | + this.downloading = false | ||
| 227 | + this.close() | ||
| 228 | + }) | ||
| 229 | + .catch(() => { | ||
| 230 | + this.downloading = false | ||
| 231 | + }); | ||
| 232 | + } | ||
| 233 | + }) | ||
| 234 | + | ||
| 235 | + }, | ||
| 236 | + handleRemove(file, fileList) { | ||
| 237 | + //清掉上传的文件 | ||
| 238 | + this.errorData = []; | ||
| 239 | + this.fileList = []; | ||
| 240 | + this.formData.file = null | ||
| 241 | + }, | ||
| 242 | + handleExceed(files) { | ||
| 243 | + //重复上传文件 | ||
| 244 | + let file = {}; | ||
| 245 | + file.file = files[0]; | ||
| 246 | + file.name = files[0].name; | ||
| 247 | + this.fileList = []; | ||
| 248 | + this.fileList.push(file); | ||
| 249 | + this.formData.file = file | ||
| 250 | + this.uploadExcel(file); | ||
| 251 | + }, | ||
| 252 | + //取消 | ||
| 253 | + close() { | ||
| 254 | + this.formData = { | ||
| 255 | + goodsStation: null, | ||
| 256 | + goodsList: null | ||
| 257 | + } | ||
| 258 | + if (this.openStatus == 'uploadExcel') { | ||
| 259 | + this.$refs['upload'].clearFiles() | ||
| 260 | + } | ||
| 261 | + this.$refs["addForm"].clearValidate(); | ||
| 262 | + this.$emit('close') | ||
| 263 | + } | ||
| 264 | + | ||
| 265 | + } | ||
| 266 | +} | ||
| 267 | + | ||
| 268 | +</script> | ||
| 269 | + | ||
| 270 | +<style lang="scss" scoped> | ||
| 271 | +.upload-demo { | ||
| 272 | + | ||
| 273 | + .el-upload-list__item:first-child { | ||
| 274 | + margin-top: 5px !important; | ||
| 275 | + } | ||
| 276 | + | ||
| 277 | + .el-upload-list { | ||
| 278 | + display: inline-block; | ||
| 279 | + margin-left: 10px; | ||
| 280 | + } | ||
| 281 | +} | ||
| 282 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-form class="form-header" ref="goodsStationForm" :model="selectionData" label-position="right" | ||
| 4 | + label-width="auto" size="small" @submit.native.prevent> | ||
| 5 | + <el-row> | ||
| 6 | + <el-col :span="6"> | ||
| 7 | + <el-form-item label="货站名称"> | ||
| 8 | + <el-input class="formItem" v-model="selectionData.goodsStation" placeholder="请输入货站名称" | ||
| 9 | + maxlength="50" clearable /> | ||
| 10 | + </el-form-item> | ||
| 11 | + </el-col> | ||
| 12 | + <el-col :span="6"> | ||
| 13 | + <el-form-item label="品名"> | ||
| 14 | + <el-input class="formItem" v-model="selectionData.goodsName" placeholder="请输入品名" maxlength="50" | ||
| 15 | + clearable /> | ||
| 16 | + </el-form-item> | ||
| 17 | + </el-col> | ||
| 18 | + </el-row> | ||
| 19 | + </el-form> | ||
| 20 | + <div style="display:flex;padding:10px 20px"> | ||
| 21 | + <el-button icon="el-icon-search" type="primary" :loading="loading" size="small" @click="selection(1)">查 询 | ||
| 22 | + </el-button> | ||
| 23 | + <el-button icon="el-icon-plus" type="primary" size="small" v-hasPermi="['base:goodsBlackStation:add']" | ||
| 24 | + @click="add">新 增 | ||
| 25 | + </el-button> | ||
| 26 | + <el-button icon="el-icon-delete" type="danger" size="small" v-hasPermi="['base:goodsBlackStation:delete']" | ||
| 27 | + style="margin-left:10px" :disabled="checkData.length == 0" @click="batchDel"> | ||
| 28 | + 删 除 | ||
| 29 | + </el-button> | ||
| 30 | + <el-button type="primary" icon="el-icon-download" size="small" style="margin-left:10px" | ||
| 31 | + @click="downloadTempleate">下载模板 | ||
| 32 | + </el-button> | ||
| 33 | + <el-button icon="el-icon-download" type="primary" size="small" style="margin-left:10px" | ||
| 34 | + @click="downloadExcel"> | ||
| 35 | + 黑名单导出 | ||
| 36 | + </el-button> | ||
| 37 | + <el-button type="primary" icon="el-icon-upload2" size="small" @click="uploadExcel" | ||
| 38 | + v-hasPermi="['base:goodsBlackStation:add']">黑名单导入</el-button> | ||
| 39 | + <el-button icon="el-icon-document" type="primary" size="small" @click="selectLog()">查询导入日志 | ||
| 40 | + </el-button> | ||
| 41 | + </div> | ||
| 42 | + <Tables ref="goodsStation" ductName="goodsStation" :data="tableData" :headerData="tableHeader" :selection="true" | ||
| 43 | + :order="true" :selectFixed="false" :totalCount="totalCount" :loading="loading" | ||
| 44 | + :limitSize="selectionData.size" :page="selectionData.page" layout="total,prev, pager, next, jumper, ->" | ||
| 45 | + :pageSizes="[100]" :height="tableHeight" @tableSelect="tableSelect" @tableSelectAll="tableSelectAll" | ||
| 46 | + @currentChange="currentChange"> | ||
| 47 | + <template slot="optionColumn"> | ||
| 48 | + <el-table-column label="操作" align="center"> | ||
| 49 | + <template slot-scope="scope"> | ||
| 50 | + <el-button size="mini" type="text" icon="el-icon-delete" style="color:#ff4949" | ||
| 51 | + v-hasPermi="['base:goodsBlackStation:delete']" @click="del(scope.row)">删除</el-button> | ||
| 52 | + </template> | ||
| 53 | + </el-table-column> | ||
| 54 | + </template> | ||
| 55 | + </Tables> | ||
| 56 | + <Dialog :open="open" :openStatus="openStatus" @close="close" /> | ||
| 57 | + </div> | ||
| 58 | +</template> | ||
| 59 | + | ||
| 60 | +<script> | ||
| 61 | +import { downLoadTemplate } from "@/api/flightInfoImport"; | ||
| 62 | +import { batchDeleteGoods, searchGoods } from "@/api/goodsStation" | ||
| 63 | +import Dialog from './dialog.vue' | ||
| 64 | + | ||
| 65 | +export default { | ||
| 66 | + name: 'GoodsBlackStation', | ||
| 67 | + components: { | ||
| 68 | + Dialog, | ||
| 69 | + }, | ||
| 70 | + data() { | ||
| 71 | + return { | ||
| 72 | + selectionData: { | ||
| 73 | + goodsStation: '', | ||
| 74 | + goodsName: '', | ||
| 75 | + goodsType: 2, | ||
| 76 | + size: 20, | ||
| 77 | + page: 1 | ||
| 78 | + }, | ||
| 79 | + tableData: [], | ||
| 80 | + tableHeader: this.tableHeaders['goodsStation'], | ||
| 81 | + checkData: [], | ||
| 82 | + fileList: [], | ||
| 83 | + errorData: [], | ||
| 84 | + tableHeight: null, | ||
| 85 | + totalCount: 0, | ||
| 86 | + openStatus: '', | ||
| 87 | + loading: false, | ||
| 88 | + open: false, | ||
| 89 | + } | ||
| 90 | + }, | ||
| 91 | + created() { | ||
| 92 | + | ||
| 93 | + }, | ||
| 94 | + mounted() { | ||
| 95 | + this.tableHeight = window.innerHeight - this.$refs.goodsStation.$el.offsetHeight - 200 | ||
| 96 | + this.selection(1) | ||
| 97 | + }, | ||
| 98 | + watch: { | ||
| 99 | + $route(to, from) { | ||
| 100 | + if (to.name == 'GoodsStation') { | ||
| 101 | + this.selection() | ||
| 102 | + } | ||
| 103 | + } | ||
| 104 | + }, | ||
| 105 | + methods: { | ||
| 106 | + //查询 | ||
| 107 | + selection(val) { | ||
| 108 | + this.tableData = [] | ||
| 109 | + this.checkData = [] | ||
| 110 | + this.loading = true | ||
| 111 | + if (val === 1) { | ||
| 112 | + this.selectionData.page = 1 | ||
| 113 | + } | ||
| 114 | + searchGoods(this.selectionData).then(res => { | ||
| 115 | + this.loading = false | ||
| 116 | + if (res.code === 200) { | ||
| 117 | + this.tableData = res.data.list | ||
| 118 | + this.totalCount = res.data.total | ||
| 119 | + } else { | ||
| 120 | + this.msgWarning(res.msg) | ||
| 121 | + } | ||
| 122 | + }).catch(err => { | ||
| 123 | + this.loading = false | ||
| 124 | + console.log(err) | ||
| 125 | + }) | ||
| 126 | + }, | ||
| 127 | + //新增 | ||
| 128 | + add() { | ||
| 129 | + this.open = true | ||
| 130 | + this.openStatus = 'add' | ||
| 131 | + }, | ||
| 132 | + //删除 | ||
| 133 | + del(val) { | ||
| 134 | + this.$confirm("是否要删除这条记录!", "注意!", { | ||
| 135 | + confirmButtonText: "确定", | ||
| 136 | + cancelButtonText: '取消', | ||
| 137 | + type: "warning", | ||
| 138 | + }).then(() => { | ||
| 139 | + this.deleteGoods([val.id]) | ||
| 140 | + }).catch(() => { | ||
| 141 | + | ||
| 142 | + }) | ||
| 143 | + }, | ||
| 144 | + //批量删除 | ||
| 145 | + batchDel() { | ||
| 146 | + let arr = [] | ||
| 147 | + this.checkData.forEach(item => { | ||
| 148 | + arr.push(item.id) | ||
| 149 | + }) | ||
| 150 | + this.$confirm("是否要删除这些记录!", "注意!", { | ||
| 151 | + confirmButtonText: "确定", | ||
| 152 | + cancelButtonText: '取消', | ||
| 153 | + type: "warning", | ||
| 154 | + }).then(() => { | ||
| 155 | + this.deleteGoods(arr) | ||
| 156 | + }).catch(() => { | ||
| 157 | + | ||
| 158 | + }) | ||
| 159 | + }, | ||
| 160 | + //删除请求 | ||
| 161 | + deleteGoods(val) { | ||
| 162 | + batchDeleteGoods(val).then(res => { | ||
| 163 | + if (res.code === 200) { | ||
| 164 | + this.msgSuccess('删除成功!') | ||
| 165 | + this.selection(1) | ||
| 166 | + } else { | ||
| 167 | + this.msgWarning(res.msg) | ||
| 168 | + } | ||
| 169 | + }).catch(err => { | ||
| 170 | + console.log(err) | ||
| 171 | + }) | ||
| 172 | + }, | ||
| 173 | + //导出 | ||
| 174 | + downloadExcel() { | ||
| 175 | + this.open = true | ||
| 176 | + this.openStatus = 'downloadExcel' | ||
| 177 | + }, | ||
| 178 | + //复选 | ||
| 179 | + tableSelect(val) { | ||
| 180 | + this.checkData = val.selection | ||
| 181 | + }, | ||
| 182 | + //全选 | ||
| 183 | + tableSelectAll(val) { | ||
| 184 | + this.checkData = val | ||
| 185 | + }, | ||
| 186 | + //分页 | ||
| 187 | + currentChange(val) { | ||
| 188 | + this.selectionData.page = val.page | ||
| 189 | + this.selection() | ||
| 190 | + }, | ||
| 191 | + //上传excel | ||
| 192 | + uploadExcel() { | ||
| 193 | + this.openStatus = 'uploadExcel' | ||
| 194 | + this.open = true | ||
| 195 | + }, | ||
| 196 | + //下载模板 | ||
| 197 | + downloadTempleate() { | ||
| 198 | + downLoadTemplate('goodsStation').then((res) => { | ||
| 199 | + if (res) { | ||
| 200 | + const blob = new Blob([res]); | ||
| 201 | + const link = document.createElement("a"); //创建a标签 | ||
| 202 | + link.download = '黑名单货物品名模板.xlsx'; //a标签添加属性 | ||
| 203 | + link.style.display = "none"; | ||
| 204 | + link.href = URL.createObjectURL(blob); | ||
| 205 | + document.body.appendChild(link); | ||
| 206 | + link.click(); //执行下载 | ||
| 207 | + URL.revokeObjectURL(link.href); //释放url | ||
| 208 | + document.body.removeChild(link); //释放标签 | ||
| 209 | + } else { | ||
| 210 | + this.$message.error("下载失败"); | ||
| 211 | + } | ||
| 212 | + }) | ||
| 213 | + }, | ||
| 214 | + handleRemove(file, fileList) { | ||
| 215 | + //清掉上传的文件 | ||
| 216 | + this.errorData = []; | ||
| 217 | + this.fileList = []; | ||
| 218 | + }, | ||
| 219 | + handleExceed(files) { | ||
| 220 | + //重复上传文件 | ||
| 221 | + let file = {}; | ||
| 222 | + file.file = files[0]; | ||
| 223 | + file.name = files[0].name; | ||
| 224 | + this.fileList = []; | ||
| 225 | + this.fileList.push(file); | ||
| 226 | + this.uploadExcel(file); | ||
| 227 | + }, | ||
| 228 | + selectLog() { | ||
| 229 | + this.$router.push({ name: 'GoodsUploadLog', params: { type: 2 } }) | ||
| 230 | + }, | ||
| 231 | + close() { | ||
| 232 | + this.open = false | ||
| 233 | + this.openStatus = '' | ||
| 234 | + this.selection(1) | ||
| 235 | + }, | ||
| 236 | + resultClose() { | ||
| 237 | + this.resultOpen = false | ||
| 238 | + this.selection(1) | ||
| 239 | + } | ||
| 240 | + } | ||
| 241 | +} | ||
| 242 | + | ||
| 243 | +</script> | ||
| 244 | + | ||
| 245 | +<style lang="scss" scoped> | ||
| 246 | + | ||
| 247 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | - <el-dialog :title="openStatus == 'add'?'新 增':'导出Excel'" :visible.sync="open" width="25%" | 3 | + <el-dialog :title="openStatus == 'add' ? '新 增' : openStatus == 'downloadExcel' ? '导出Excel' : '导入Excel'" |
| 4 | - :close-on-click-modal="false" :show-close="false" append-to-body center> | 4 | + :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" append-to-body center |
| 5 | + @close="close"> | ||
| 5 | <el-form class="form-header" :model="formData" size="small" ref="addForm" label-width="auto" | 6 | <el-form class="form-header" :model="formData" size="small" ref="addForm" label-width="auto" |
| 6 | label-position="left" style="margin-bottom:10px" :rules="rules" @submit.native.prevent> | 7 | label-position="left" style="margin-bottom:10px" :rules="rules" @submit.native.prevent> |
| 7 | <div v-if="openStatus == 'add'"> | 8 | <div v-if="openStatus == 'add'"> |
| ... | @@ -15,28 +16,44 @@ | ... | @@ -15,28 +16,44 @@ |
| 15 | </el-input> | 16 | </el-input> |
| 16 | </el-form-item> | 17 | </el-form-item> |
| 17 | </div> | 18 | </div> |
| 18 | - <div v-else> | 19 | + <div v-else-if="openStatus == 'downloadExcel'"> |
| 19 | <el-form-item label="货站名称" prop="goodsStation"> | 20 | <el-form-item label="货站名称" prop="goodsStation"> |
| 20 | <el-select class="selectWidth100" v-model.lazy="formData.goodsStation" filterable | 21 | <el-select class="selectWidth100" v-model.lazy="formData.goodsStation" filterable |
| 21 | :loading="goodsStationLoading" placeholder="不限"> | 22 | :loading="goodsStationLoading" placeholder="不限"> |
| 22 | - <el-option v-for="(item, index) in goodsStationList" :label="item" :value="item" | 23 | + <el-option v-for="(item, index) in goodsStationList" :label="item" :value="item" :key="item"> |
| 23 | - :key="item"> | ||
| 24 | </el-option> | 24 | </el-option> |
| 25 | </el-select> | 25 | </el-select> |
| 26 | </el-form-item> | 26 | </el-form-item> |
| 27 | </div> | 27 | </div> |
| 28 | + <div v-else> | ||
| 29 | + <el-form-item label="货站名称" prop="uploadGoodsStation"> | ||
| 30 | + <el-input type="text" v-model="formData.uploadGoodsStation" maxlength="25" placeholder="请输入货站名称"> | ||
| 31 | + </el-input> | ||
| 32 | + </el-form-item> | ||
| 33 | + <el-form-item prop="file" label-width="0px"> | ||
| 34 | + <el-upload ref="upload" action="/goods/uploadGoodsExcel" name="file" :http-request="uploadExcel" | ||
| 35 | + :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" accept=".xlsx" | ||
| 36 | + class="upload-demo"> | ||
| 37 | + <el-button type="primary" icon="el-icon-upload2" size="small">选择文件</el-button> | ||
| 38 | + </el-upload> | ||
| 39 | + </el-form-item> | ||
| 40 | + </div> | ||
| 28 | </el-form> | 41 | </el-form> |
| 29 | <div slot="footer" class="dialog-footer"> | 42 | <div slot="footer" class="dialog-footer"> |
| 30 | - <el-button v-if='openStatus == "add"' type="primary" :loading="loading" @click="submit">确 定</el-button> | 43 | + <el-button v-if='openStatus == "add"' type="primary" size="small" :loading="loading" @click="submit">确 定 |
| 31 | - <el-button v-else type="primary" :loading="downloading" @click="download">导出Excel</el-button> | 44 | + </el-button> |
| 32 | - <el-button @click="close">取 消</el-button> | 45 | + <el-button v-else-if="openStatus == 'downloadExcel'" type="primary" size="small" :loading="downloading" |
| 46 | + @click="download">导出Excel</el-button> | ||
| 47 | + <el-button v-else type="primary" :loading="loading" size="small" @click="upload">导入Excel | ||
| 48 | + </el-button> | ||
| 49 | + <el-button style="margin-top:10px" size="small" @click="close">取 消</el-button> | ||
| 33 | </div> | 50 | </div> |
| 34 | </el-dialog> | 51 | </el-dialog> |
| 35 | </div> | 52 | </div> |
| 36 | </template> | 53 | </template> |
| 37 | 54 | ||
| 38 | <script> | 55 | <script> |
| 39 | -import { batchAddGoods, findStationName } from "@/api/goodsStation" | 56 | +import { batchAddGoods, findStationName, uploadGoodsExcel } from "@/api/goodsStation" |
| 40 | import { downLoadXlsx } from "@/utils/zipdownload"; | 57 | import { downLoadXlsx } from "@/utils/zipdownload"; |
| 41 | 58 | ||
| 42 | export default { | 59 | export default { |
| ... | @@ -55,7 +72,9 @@ export default { | ... | @@ -55,7 +72,9 @@ export default { |
| 55 | return { | 72 | return { |
| 56 | formData: { | 73 | formData: { |
| 57 | goodsStation: null, | 74 | goodsStation: null, |
| 58 | - goodsList: '' | 75 | + uploadGoodsStation: null, |
| 76 | + goodsList: '', | ||
| 77 | + file: null | ||
| 59 | }, | 78 | }, |
| 60 | goodsStationList: [], | 79 | goodsStationList: [], |
| 61 | rules: { | 80 | rules: { |
| ... | @@ -73,7 +92,23 @@ export default { | ... | @@ -73,7 +92,23 @@ export default { |
| 73 | trigger: "blur", | 92 | trigger: "blur", |
| 74 | }, | 93 | }, |
| 75 | ], | 94 | ], |
| 95 | + uploadGoodsStation: [ | ||
| 96 | + { | ||
| 97 | + required: true, | ||
| 98 | + message: "货站名称不能为空", | ||
| 99 | + trigger: "change", | ||
| 100 | + }, | ||
| 101 | + ], | ||
| 102 | + file: [ | ||
| 103 | + { | ||
| 104 | + required: true, | ||
| 105 | + message: "文件不能为空", | ||
| 106 | + trigger: "change", | ||
| 107 | + }, | ||
| 108 | + ] | ||
| 76 | }, | 109 | }, |
| 110 | + fileList: [], | ||
| 111 | + errorData: [], | ||
| 77 | goodsStationLoading: false, | 112 | goodsStationLoading: false, |
| 78 | downloading: false, | 113 | downloading: false, |
| 79 | loading: false, | 114 | loading: false, |
| ... | @@ -90,7 +125,7 @@ export default { | ... | @@ -90,7 +125,7 @@ export default { |
| 90 | //查询货站 | 125 | //查询货站 |
| 91 | getgoods() { | 126 | getgoods() { |
| 92 | this.goodsStationLoading = true | 127 | this.goodsStationLoading = true |
| 93 | - findStationName().then(res => { | 128 | + findStationName({ goodsType: 1 }).then(res => { |
| 94 | this.goodsStationLoading = false | 129 | this.goodsStationLoading = false |
| 95 | if (res.code === 200) { | 130 | if (res.code === 200) { |
| 96 | this.goodsStationList = res.data.list | 131 | this.goodsStationList = res.data.list |
| ... | @@ -104,11 +139,17 @@ export default { | ... | @@ -104,11 +139,17 @@ export default { |
| 104 | }, | 139 | }, |
| 105 | //提交 | 140 | //提交 |
| 106 | submit() { | 141 | submit() { |
| 107 | - let obj = {} | 142 | + let obj = { |
| 143 | + goodsList: [] | ||
| 144 | + } | ||
| 108 | obj.goodsStation = this.formData.goodsStation | 145 | obj.goodsStation = this.formData.goodsStation |
| 109 | this.formData.goodsList = this.formData.goodsList.replace(/;/g, ";") | 146 | this.formData.goodsList = this.formData.goodsList.replace(/;/g, ";") |
| 110 | if (this.formData.goodsList != null && this.formData.goodsList != '') { | 147 | if (this.formData.goodsList != null && this.formData.goodsList != '') { |
| 111 | - obj.goodsList = this.formData.goodsList.split(';') | 148 | + this.formData.goodsList.split(';').forEach(item => { |
| 149 | + if (item != null && item != '') { | ||
| 150 | + obj.goodsList.push(item) | ||
| 151 | + } | ||
| 152 | + }) | ||
| 112 | } | 153 | } |
| 113 | this.$refs['addForm'].validate(val => { | 154 | this.$refs['addForm'].validate(val => { |
| 114 | if (val) { | 155 | if (val) { |
| ... | @@ -128,13 +169,59 @@ export default { | ... | @@ -128,13 +169,59 @@ export default { |
| 128 | } | 169 | } |
| 129 | }) | 170 | }) |
| 130 | }, | 171 | }, |
| 172 | + //选择文件 | ||
| 173 | + uploadExcel(option) { | ||
| 174 | + this.formData.file = option.file | ||
| 175 | + }, | ||
| 176 | + //导入Excel | ||
| 177 | + upload() { | ||
| 178 | + this.loading = true | ||
| 179 | + if (this.formData.file != null && this.formData.file != '') { | ||
| 180 | + this.$refs['addForm'].validate(val => { | ||
| 181 | + if (val) { | ||
| 182 | + const file = this.formData.file; | ||
| 183 | + let goodsStation = this.formData.uploadGoodsStation | ||
| 184 | + uploadGoodsExcel(file, goodsStation).then((res) => { | ||
| 185 | + this.loading = false; | ||
| 186 | + if (res.code != 200) { | ||
| 187 | + if (res.code == 603) { | ||
| 188 | + this.$alert(res.msg, "提示", { | ||
| 189 | + confirmButtonText: "确定", | ||
| 190 | + type: "warning", | ||
| 191 | + }); | ||
| 192 | + } else if (res.code === 201) { | ||
| 193 | + this.$message.warning(res.msg); | ||
| 194 | + if (res.data) { | ||
| 195 | + this.errorData = res.data; | ||
| 196 | + this.$router.push({ name: 'UpDateResult', query: { data: this.errorData, from: 'FlightInformationImport' } }) | ||
| 197 | + } | ||
| 198 | + } else { | ||
| 199 | + this.$message.warning(res.msg); | ||
| 200 | + } | ||
| 201 | + } else { | ||
| 202 | + this.$message.success(res.msg); | ||
| 203 | + } | ||
| 204 | + setTimeout(() => { | ||
| 205 | + this.close() | ||
| 206 | + }, 1000); | ||
| 207 | + }); | ||
| 208 | + } else { | ||
| 209 | + this.loading = false; | ||
| 210 | + } | ||
| 211 | + }) | ||
| 212 | + } else { | ||
| 213 | + this.loading = false | ||
| 214 | + this.msgWarning('请选择文件后再导入!') | ||
| 215 | + } | ||
| 216 | + | ||
| 217 | + }, | ||
| 131 | //导出Excel | 218 | //导出Excel |
| 132 | download() { | 219 | download() { |
| 133 | this.$refs['addForm'].validate(val => { | 220 | this.$refs['addForm'].validate(val => { |
| 134 | if (val) { | 221 | if (val) { |
| 135 | this.downloading = true | 222 | this.downloading = true |
| 136 | - let data = { goodsStation: this.formData.goodsStation } | 223 | + let data = { goodsStation: this.formData.goodsStation, goodsType: 1 } |
| 137 | - downLoadXlsx("/goods/exportGoods", data, "货站表") | 224 | + downLoadXlsx("/goods/exportGoods", data, "白名单货站表") |
| 138 | .then(() => { | 225 | .then(() => { |
| 139 | this.downloading = false | 226 | this.downloading = false |
| 140 | this.close() | 227 | this.close() |
| ... | @@ -146,12 +233,31 @@ export default { | ... | @@ -146,12 +233,31 @@ export default { |
| 146 | }) | 233 | }) |
| 147 | 234 | ||
| 148 | }, | 235 | }, |
| 236 | + handleRemove(file, fileList) { | ||
| 237 | + //清掉上传的文件 | ||
| 238 | + this.errorData = []; | ||
| 239 | + this.fileList = []; | ||
| 240 | + this.formData.file = null | ||
| 241 | + }, | ||
| 242 | + handleExceed(files) { | ||
| 243 | + //重复上传文件 | ||
| 244 | + let file = {}; | ||
| 245 | + file.file = files[0]; | ||
| 246 | + file.name = files[0].name; | ||
| 247 | + this.fileList = []; | ||
| 248 | + this.fileList.push(file); | ||
| 249 | + this.formData.file = file | ||
| 250 | + this.uploadExcel(file); | ||
| 251 | + }, | ||
| 149 | //取消 | 252 | //取消 |
| 150 | close() { | 253 | close() { |
| 151 | this.formData = { | 254 | this.formData = { |
| 152 | goodsStation: null, | 255 | goodsStation: null, |
| 153 | goodsList: null | 256 | goodsList: null |
| 154 | } | 257 | } |
| 258 | + if (this.openStatus == 'uploadExcel') { | ||
| 259 | + this.$refs['upload'].clearFiles() | ||
| 260 | + } | ||
| 155 | this.$refs["addForm"].clearValidate(); | 261 | this.$refs["addForm"].clearValidate(); |
| 156 | this.$emit('close') | 262 | this.$emit('close') |
| 157 | } | 263 | } |
| ... | @@ -162,5 +268,15 @@ export default { | ... | @@ -162,5 +268,15 @@ export default { |
| 162 | </script> | 268 | </script> |
| 163 | 269 | ||
| 164 | <style lang="scss" scoped> | 270 | <style lang="scss" scoped> |
| 271 | +.upload-demo { | ||
| 165 | 272 | ||
| 273 | + .el-upload-list__item:first-child { | ||
| 274 | + margin-top: 5px !important; | ||
| 275 | + } | ||
| 276 | + | ||
| 277 | + .el-upload-list { | ||
| 278 | + display: inline-block; | ||
| 279 | + margin-left: 10px; | ||
| 280 | + } | ||
| 281 | +} | ||
| 166 | </style> | 282 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | +<template> | ||
| 2 | + <div style="padding:10px"> | ||
| 3 | + <div style="margin-bottom:10px"> | ||
| 4 | + <el-button type="primary" icon="el-icon-refresh" size="small" :loading="loading" @click="selectLog(1)">查 询 | ||
| 5 | + </el-button> | ||
| 6 | + </div> | ||
| 7 | + <Tables ref="goodsLogStation" ductName="goodsLogStation" :data="logTabelData" :headerData="logTabelHeader" | ||
| 8 | + :selection="false" :order="true" :selectFixed="false" :loading="loading" :totalCount="logCount" | ||
| 9 | + :limitSize="logData.size" :page="logData.page" layout="total,prev, pager, next, jumper, ->" | ||
| 10 | + :pageSizes="[100]" :height="tableHeight" @currentChange="logCurrentChange"> | ||
| 11 | + </Tables> | ||
| 12 | + </div> | ||
| 13 | +</template> | ||
| 14 | + | ||
| 15 | +<script> | ||
| 16 | +import { userImportLog } from "@/api/goodsStation" | ||
| 17 | + | ||
| 18 | +export default { | ||
| 19 | + name: 'GoodsUploadLog', | ||
| 20 | + data() { | ||
| 21 | + return { | ||
| 22 | + logData: { | ||
| 23 | + page: 1, | ||
| 24 | + size: 50 | ||
| 25 | + }, | ||
| 26 | + logTabelData: [], | ||
| 27 | + logTabelHeader: this.tableHeaders['goodsLogStation'], | ||
| 28 | + logCount: 0, | ||
| 29 | + tableHeight: null, | ||
| 30 | + loading: false, | ||
| 31 | + } | ||
| 32 | + }, | ||
| 33 | + created() { | ||
| 34 | + this.selectLog() | ||
| 35 | + }, | ||
| 36 | + watch: { | ||
| 37 | + $route(to, from) { | ||
| 38 | + if (to.name == 'GoodsUploadLog') { | ||
| 39 | + this.selectLog() | ||
| 40 | + } | ||
| 41 | + } | ||
| 42 | + }, | ||
| 43 | + methods: { | ||
| 44 | + //日志查询 | ||
| 45 | + selectLog(val) { | ||
| 46 | + this.logTabelData = [] | ||
| 47 | + if (val === 1) { | ||
| 48 | + this.logData.page = 1 | ||
| 49 | + } | ||
| 50 | + this.loading = true | ||
| 51 | + userImportLog(this.logData).then(res => { | ||
| 52 | + this.loading = false | ||
| 53 | + if (res.code === 200) { | ||
| 54 | + res.data.list.forEach(item => { | ||
| 55 | + if (this.$route.params.type == 1 && item.module == '白名单导入') { | ||
| 56 | + this.logTabelData.push(item) | ||
| 57 | + } else if (this.$route.params.type == 2 && item.module == '黑名单导入') { | ||
| 58 | + this.logTabelData.push(item) | ||
| 59 | + } | ||
| 60 | + }) | ||
| 61 | + this.logCount = this.logTabelData.length | ||
| 62 | + } else { | ||
| 63 | + this.msgWarning(res.msg) | ||
| 64 | + } | ||
| 65 | + }).catch(err => { | ||
| 66 | + this.loading = false | ||
| 67 | + console.log(err) | ||
| 68 | + }) | ||
| 69 | + }, | ||
| 70 | + //日志分页 | ||
| 71 | + logCurrentChange(val) { | ||
| 72 | + this.logData.page = val.page | ||
| 73 | + this.selectLog() | ||
| 74 | + }, | ||
| 75 | + } | ||
| 76 | +} | ||
| 77 | + | ||
| 78 | +</script> | ||
| 79 | + | ||
| 80 | +<style lang="scss" scoped> | ||
| 81 | + | ||
| 82 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -27,18 +27,17 @@ | ... | @@ -27,18 +27,17 @@ |
| 27 | style="margin-left:10px" :disabled="checkData.length == 0" @click="batchDel"> | 27 | style="margin-left:10px" :disabled="checkData.length == 0" @click="batchDel"> |
| 28 | 删 除 | 28 | 删 除 |
| 29 | </el-button> | 29 | </el-button> |
| 30 | - <el-button type="primary" icon="el-icon-download" size="small" style="margin-right:10px" | 30 | + <el-button type="primary" icon="el-icon-download" size="small" style="margin-left:10px" |
| 31 | @click="downloadTempleate">下载模板 | 31 | @click="downloadTempleate">下载模板 |
| 32 | </el-button> | 32 | </el-button> |
| 33 | - <el-button icon="el-icon-download" type="primary" size="small" style="margin-right:10px" | 33 | + <el-button icon="el-icon-download" type="primary" size="small" style="margin-left:10px" |
| 34 | @click="downloadExcel"> | 34 | @click="downloadExcel"> |
| 35 | - 导出Excel | 35 | + 白名单导出 |
| 36 | + </el-button> | ||
| 37 | + <el-button type="primary" icon="el-icon-upload2" size="small" @click="uploadExcel" | ||
| 38 | + v-hasPermi="['base:goodsStation:add']">白名单导入</el-button> | ||
| 39 | + <el-button icon="el-icon-document" type="primary" size="small" @click="selectLog()">查询导入日志 | ||
| 36 | </el-button> | 40 | </el-button> |
| 37 | - <el-upload action="/goods/importGoods" name="file" :http-request="uploadExcel" :on-remove="handleRemove" | ||
| 38 | - :limit="1" :on-exceed="handleExceed" :file-list="fileList" accept=".xlsx" class="upload-demo" | ||
| 39 | - v-hasPermi="['base:goodsStation:add']"> | ||
| 40 | - <el-button type="primary" icon="el-icon-upload2" size="small">导入Excel</el-button> | ||
| 41 | - </el-upload> | ||
| 42 | </div> | 41 | </div> |
| 43 | <Tables ref="goodsStation" ductName="goodsStation" :data="tableData" :headerData="tableHeader" :selection="true" | 42 | <Tables ref="goodsStation" ductName="goodsStation" :data="tableData" :headerData="tableHeader" :selection="true" |
| 44 | :order="true" :selectFixed="false" :totalCount="totalCount" :loading="loading" | 43 | :order="true" :selectFixed="false" :totalCount="totalCount" :loading="loading" |
| ... | @@ -60,7 +59,7 @@ | ... | @@ -60,7 +59,7 @@ |
| 60 | 59 | ||
| 61 | <script> | 60 | <script> |
| 62 | import { downLoadTemplate } from "@/api/flightInfoImport"; | 61 | import { downLoadTemplate } from "@/api/flightInfoImport"; |
| 63 | -import { importGoods, batchDeleteGoods, searchGoods } from "@/api/goodsStation" | 62 | +import { batchDeleteGoods, searchGoods } from "@/api/goodsStation" |
| 64 | import Dialog from './dialog.vue' | 63 | import Dialog from './dialog.vue' |
| 65 | 64 | ||
| 66 | export default { | 65 | export default { |
| ... | @@ -73,6 +72,7 @@ export default { | ... | @@ -73,6 +72,7 @@ export default { |
| 73 | selectionData: { | 72 | selectionData: { |
| 74 | goodsStation: '', | 73 | goodsStation: '', |
| 75 | goodsName: '', | 74 | goodsName: '', |
| 75 | + goodsType: 1, | ||
| 76 | size: 20, | 76 | size: 20, |
| 77 | page: 1 | 77 | page: 1 |
| 78 | }, | 78 | }, |
| ... | @@ -189,29 +189,9 @@ export default { | ... | @@ -189,29 +189,9 @@ export default { |
| 189 | this.selection() | 189 | this.selection() |
| 190 | }, | 190 | }, |
| 191 | //上传excel | 191 | //上传excel |
| 192 | - uploadExcel(option) { | 192 | + uploadExcel() { |
| 193 | - const file = option.file; | 193 | + this.openStatus = 'uploadExcel' |
| 194 | - this.loading = true; | 194 | + this.open = true |
| 195 | - importGoods(file, '').then((res) => { | ||
| 196 | - this.loading = false; | ||
| 197 | - if (res.code != 200) { | ||
| 198 | - if (res.code == 603) { | ||
| 199 | - this.$alert(res.msg, "提示", { | ||
| 200 | - confirmButtonText: "确定", | ||
| 201 | - type: "warning", | ||
| 202 | - }); | ||
| 203 | - } else if (res.code === 201) { | ||
| 204 | - this.$message.warning(res.msg); | ||
| 205 | - this.errorData = res.data; | ||
| 206 | - this.$router.push({ name: 'UpDateResult', params: { data: this.errorData, from: 'FlightInformationImport' } }) | ||
| 207 | - } else { | ||
| 208 | - this.$message.warning(res.msg); | ||
| 209 | - } | ||
| 210 | - } else { | ||
| 211 | - this.$message.success(res.msg); | ||
| 212 | - this.selection(1) | ||
| 213 | - } | ||
| 214 | - }); | ||
| 215 | }, | 195 | }, |
| 216 | //下载模板 | 196 | //下载模板 |
| 217 | downloadTempleate() { | 197 | downloadTempleate() { |
| ... | @@ -219,7 +199,7 @@ export default { | ... | @@ -219,7 +199,7 @@ export default { |
| 219 | if (res) { | 199 | if (res) { |
| 220 | const blob = new Blob([res]); | 200 | const blob = new Blob([res]); |
| 221 | const link = document.createElement("a"); //创建a标签 | 201 | const link = document.createElement("a"); //创建a标签 |
| 222 | - link.download = '货物品名模板.xlsx'; //a标签添加属性 | 202 | + link.download = '白名单货物品名模板.xlsx'; //a标签添加属性 |
| 223 | link.style.display = "none"; | 203 | link.style.display = "none"; |
| 224 | link.href = URL.createObjectURL(blob); | 204 | link.href = URL.createObjectURL(blob); |
| 225 | document.body.appendChild(link); | 205 | document.body.appendChild(link); |
| ... | @@ -245,6 +225,9 @@ export default { | ... | @@ -245,6 +225,9 @@ export default { |
| 245 | this.fileList.push(file); | 225 | this.fileList.push(file); |
| 246 | this.uploadExcel(file); | 226 | this.uploadExcel(file); |
| 247 | }, | 227 | }, |
| 228 | + selectLog() { | ||
| 229 | + this.$router.push({ name: 'GoodsUploadLog', params: { type: 1 } }) | ||
| 230 | + }, | ||
| 248 | close() { | 231 | close() { |
| 249 | this.open = false | 232 | this.open = false |
| 250 | this.openStatus = '' | 233 | this.openStatus = '' |
| ... | @@ -260,16 +243,5 @@ export default { | ... | @@ -260,16 +243,5 @@ export default { |
| 260 | </script> | 243 | </script> |
| 261 | 244 | ||
| 262 | <style lang="scss" scoped> | 245 | <style lang="scss" scoped> |
| 263 | -.upload-demo { | ||
| 264 | - display: flex; | ||
| 265 | - | ||
| 266 | - .el-upload-list__item:first-child { | ||
| 267 | - margin-top: 5px !important; | ||
| 268 | - } | ||
| 269 | 246 | ||
| 270 | - .el-upload-list { | ||
| 271 | - display: inline-block; | ||
| 272 | - margin-left: 10px; | ||
| 273 | - } | ||
| 274 | -} | ||
| 275 | </style> | 247 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <el-dialog title="新 增" :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" | 3 | <el-dialog title="新 增" :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" |
| 4 | - append-to-body center> | 4 | + append-to-body center @close="close"> |
| 5 | <el-form class="form-header" :model="formData" size="small" ref="addForm" label-width="auto" | 5 | <el-form class="form-header" :model="formData" size="small" ref="addForm" label-width="auto" |
| 6 | label-position="left" style="margin-bottom:10px" :rules="rules" @submit.native.prevent> | 6 | label-position="left" style="margin-bottom:10px" :rules="rules" @submit.native.prevent> |
| 7 | <el-form-item label="货站名称" prop="goodsStation"> | 7 | <el-form-item label="货站名称" prop="goodsStation"> |
| 8 | <el-input type="text" v-model="formData.goodsStation" maxlength="25" placeholder="请输入货站名称"> | 8 | <el-input type="text" v-model="formData.goodsStation" maxlength="25" placeholder="请输入货站名称"> |
| 9 | </el-input> | 9 | </el-input> |
| 10 | </el-form-item> | 10 | </el-form-item> |
| 11 | - <el-form-item label="航班" prop="flightList"> | 11 | + <el-form-item label="航班号" prop="flightList"> |
| 12 | - <el-input type="textarea" v-model="flightList" rows="4" maxlength="125" placeholder="请输入航班,多个用“;”隔开"> | 12 | + <el-input type="textarea" v-model="flightList" rows="4" maxlength="125" |
| 13 | + placeholder="请输入航班号,多个用“;”隔开"> | ||
| 13 | </el-input> | 14 | </el-input> |
| 14 | </el-form-item> | 15 | </el-form-item> |
| 15 | </el-form> | 16 | </el-form> |
| ... | @@ -62,11 +63,17 @@ export default { | ... | @@ -62,11 +63,17 @@ export default { |
| 62 | methods: { | 63 | methods: { |
| 63 | //提交 | 64 | //提交 |
| 64 | submit() { | 65 | submit() { |
| 65 | - let obj = {} | 66 | + let obj = { |
| 67 | + flightList: [] | ||
| 68 | + } | ||
| 66 | obj.goodsStation = this.formData.goodsStation | 69 | obj.goodsStation = this.formData.goodsStation |
| 67 | if (this.formData.flightList != null && this.formData.flightList != '') { | 70 | if (this.formData.flightList != null && this.formData.flightList != '') { |
| 68 | this.formData.flightList = this.formData.flightList.toUpperCase() | 71 | this.formData.flightList = this.formData.flightList.toUpperCase() |
| 69 | - obj.flightList = this.formData.flightList.split(';') | 72 | + this.formData.flightList.split(';').forEach(item => { |
| 73 | + if (item != null && item != '') { | ||
| 74 | + obj.flightList.push(item) | ||
| 75 | + } | ||
| 76 | + }) | ||
| 70 | } | 77 | } |
| 71 | this.$refs['addForm'].validate(val => { | 78 | this.$refs['addForm'].validate(val => { |
| 72 | if (val) { | 79 | if (val) { | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <el-dialog title="查看日志" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" | 3 | <el-dialog title="查看日志" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" |
| 4 | - :show-close="false" :append-to-body="true" top="2vh"> | 4 | + :show-close="false" :append-to-body="true" top="2vh" @close="close"> |
| 5 | <el-form class="form-header" label-position="right" label-width="auto" size="small"> | 5 | <el-form class="form-header" label-position="right" label-width="auto" size="small"> |
| 6 | <el-row> | 6 | <el-row> |
| 7 | <el-col :span="4"> | 7 | <el-col :span="4"> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="cargoPage"> | 2 | <div class="cargoPage"> |
| 3 | - <el-form ref="cargoForm" class="form-header" label-position="right" label-width="auto" size="small" | 3 | + <el-form ref="cargoForm" class="form-header" label-position="right" label-width="auto" size="small" :model="formData"> |
| 4 | - :model="formData"> | ||
| 5 | <el-row type="flex" style="flexWrap: wrap !important"> | 4 | <el-row type="flex" style="flexWrap: wrap !important"> |
| 6 | <el-col :span="6"> | 5 | <el-col :span="6"> |
| 7 | <el-form-item label="配舱航班日期"> | 6 | <el-form-item label="配舱航班日期"> |
| ... | @@ -139,30 +138,53 @@ | ... | @@ -139,30 +138,53 @@ |
| 139 | </div> | 138 | </div> |
| 140 | </template> | 139 | </template> |
| 141 | <el-select class="formItem" v-model="formData.cargoPlaneRoute" placeholder="不限" | 140 | <el-select class="formItem" v-model="formData.cargoPlaneRoute" placeholder="不限" |
| 142 | - :disabled="routeList.length == 0" clearable @change="routeSelectChange" | 141 | + :disabled="routeList.length == 0" clearable @change="routeSelectChange" :key="formData.cargoPlaneRoute"> |
| 143 | - :key="formData.cargoPlaneRoute"> | ||
| 144 | <el-option v-for="(item, index) in routeList" :label="item" :value="item" :key="item"> | 142 | <el-option v-for="(item, index) in routeList" :label="item" :value="item" :key="item"> |
| 145 | <Tooltips :content="item" :refName="item"></Tooltips> | 143 | <Tooltips :content="item" :refName="item"></Tooltips> |
| 146 | </el-option> | 144 | </el-option> |
| 147 | </el-select> | 145 | </el-select> |
| 148 | </el-form-item> | 146 | </el-form-item> |
| 149 | </el-col> | 147 | </el-col> |
| 148 | + <el-col :span="6"> | ||
| 149 | + <el-form-item label="预审状态"> | ||
| 150 | + <el-select v-model="formData.preStatus" placeholder="不限" class="formItem" clearable multiple> | ||
| 151 | + <el-option v-for="item in findConditionData.preQualificationStatus" :label="item == '' ? '非预审' : item" | ||
| 152 | + :value="item"> </el-option> | ||
| 153 | + </el-select> | ||
| 154 | + </el-form-item> | ||
| 155 | + </el-col> | ||
| 156 | + <el-col :span="6"> | ||
| 157 | + <el-form-item label="发件人账号"> | ||
| 158 | + <el-input ref='userInfo' type="textarea" v-model="formData.shipperAccount" class="formItem" | ||
| 159 | + placeholder="请输入发件人账号(;间隔)" :rows="4" :maxlength="12000" clearable></el-input> | ||
| 160 | + </el-form-item> | ||
| 161 | + </el-col> | ||
| 150 | </el-row> | 162 | </el-row> |
| 151 | </el-col> | 163 | </el-col> |
| 152 | </el-row> | 164 | </el-row> |
| 153 | <div class="pl10 mt20"> | 165 | <div class="pl10 mt20"> |
| 154 | <el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="select(0)">查询 | 166 | <el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="select(0)">查询 |
| 155 | </el-button> | 167 | </el-button> |
| 156 | - <el-button v-hasPermi="['base:cargo:export']" :type="downLoadingTip.downloading ? 'warning' : 'primary'" | 168 | + <el-button v-hasPermi="['base:cargo:export']" icon="el-icon-download" |
| 157 | - size="small" @click="xlse(0)" :disabled="tableData.length == 0" :loading="downLoadingTip.downloading">{{ | 169 | + :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="small" @click="xlse(0)" |
| 158 | - downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果" | 170 | + :disabled="tableData.length == 0" :loading="downLoadingTip.downloading">{{ |
| 171 | + downLoadingTip.downloading ? downLoadingTip.tip : "导出本页查询结果" | ||
| 159 | }}</el-button> | 172 | }}</el-button> |
| 160 | - <el-button v-hasPermi="['base:cargo:export']" :type="downLoadingTip.downloading ? 'warning' : 'primary'" | 173 | + <el-button v-hasPermi="['base:cargo:export']" icon="el-icon-download" |
| 161 | - size="small" @click="xlse(1)" :disabled="tableData.length == 0" :loading="downLoadingTip.downloading">{{ | 174 | + :type="downLoadingTip.downloading ? 'warning' : 'primary'" size="small" @click="xlse(1)" |
| 162 | - downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果" | 175 | + :disabled="tableData.length == 0" :loading="downLoadingTip.downloading">{{ |
| 176 | + downLoadingTip.downloading ? downLoadingTip.tip : "导出全部查询结果" | ||
| 163 | }}</el-button> | 177 | }}</el-button> |
| 164 | - <el-button type="primary" size="small" :disabled="selectTable.length == 0" v-hasPermi="['base:cargo:release']" | 178 | + <el-button type="primary" size="small" icon="el-icon-s-flag" :disabled="selectTable.length == 0" |
| 165 | - @click="release">释放舱位</el-button> | 179 | + v-hasPermi="['base:cargo:release']" @click="release">释放舱位</el-button> |
| 180 | + <el-button type="primary" size="small" icon="el-icon-sort" :disabled="selectTable.length == 0" @click="transfer" | ||
| 181 | + v-hasPermi="['log:cargo:flightTransfer']">航班迁转</el-button> | ||
| 182 | + <el-button type="primary" size="small" :disabled="cargoPlaneTime == null || cargoPlaneTime.length <= 0" | ||
| 183 | + @click="historyFlie" v-hasPermi="['log:cargo:archiveData']"> | ||
| 184 | + <el-tooltip class="item" effect="dark" content="请先选择配置航班日期" placement="top"> | ||
| 185 | + <span class="el-icon-warning-outline">生成归档数据</span> | ||
| 186 | + </el-tooltip> | ||
| 187 | + </el-button> | ||
| 166 | <span class="ml20" style="color: #ffba00">全部导出上限80000条数据</span> | 188 | <span class="ml20" style="color: #ffba00">全部导出上限80000条数据</span> |
| 167 | <el-progress v-if="progress != 0" class="progress" :stroke-width="12" :show-text="true" :percentage="progress" | 189 | <el-progress v-if="progress != 0" class="progress" :stroke-width="12" :show-text="true" :percentage="progress" |
| 168 | :status="progress == 100 ? 'success' : 'warning'"></el-progress> | 190 | :status="progress == 100 ? 'success' : 'warning'"></el-progress> |
| ... | @@ -175,8 +197,8 @@ | ... | @@ -175,8 +197,8 @@ |
| 175 | <el-button class="mr20" icon="el-icon-search" size="mini" @click="formShow = !formShow" circle></el-button> | 197 | <el-button class="mr20" icon="el-icon-search" size="mini" @click="formShow = !formShow" circle></el-button> |
| 176 | </el-tooltip> | 198 | </el-tooltip> |
| 177 | <el-tooltip content="表格设置" placement="top"> | 199 | <el-tooltip content="表格设置" placement="top"> |
| 178 | - <HeaderSetting tableName="cargo" class="mr20" style="float:right;line-height: 48px;" | 200 | + <HeaderSetting tableName="cargo" class="mr20" style="float:right;line-height: 48px;" @close="headerSetClose"> |
| 179 | - @close="headerSetClose"></HeaderSetting> | 201 | + </HeaderSetting> |
| 180 | </el-tooltip> | 202 | </el-tooltip> |
| 181 | </div> | 203 | </div> |
| 182 | </div> | 204 | </div> |
| ... | @@ -188,12 +210,12 @@ | ... | @@ -188,12 +210,12 @@ |
| 188 | <template v-slot:waybillNo="scope"> | 210 | <template v-slot:waybillNo="scope"> |
| 189 | <el-link type="primary" @click="logView(scope.row)"> | 211 | <el-link type="primary" @click="logView(scope.row)"> |
| 190 | {{ | 212 | {{ |
| 191 | - scope.row.waybillNo | 213 | + scope.row.waybillNo |
| 192 | }}<i class="el-icon-link"></i> </el-link> | 214 | }}<i class="el-icon-link"></i> </el-link> |
| 193 | </template> | 215 | </template> |
| 194 | </Tables> | 216 | </Tables> |
| 195 | - <el-dialog title="舱位释放结果" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" | 217 | + <el-dialog title="舱位释放结果" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" :show-close="false" |
| 196 | - :show-close="false" :append-to-body="true"> | 218 | + :append-to-body="true" @close="close"> |
| 197 | <el-table :data="selectTable" size="mini" border stripe highlight-current-row style="width: 100%"> | 219 | <el-table :data="selectTable" size="mini" border stripe highlight-current-row style="width: 100%"> |
| 198 | <el-table-column type="index" label="序号" align="center"> | 220 | <el-table-column type="index" label="序号" align="center"> |
| 199 | </el-table-column> | 221 | </el-table-column> |
| ... | @@ -206,18 +228,21 @@ | ... | @@ -206,18 +228,21 @@ |
| 206 | </div> | 228 | </div> |
| 207 | </el-dialog> | 229 | </el-dialog> |
| 208 | <Dialog :dialogVisible="openView" :cargoData="cargoLog" @close="viewClose" /> | 230 | <Dialog :dialogVisible="openView" :cargoData="cargoLog" @close="viewClose" /> |
| 231 | + <Info :tableData="selectTable" :dialogVisible="openTransfer" @dialogBeforeClose="dialogBeforeClose" /> | ||
| 209 | </div> | 232 | </div> |
| 210 | </template> | 233 | </template> |
| 211 | 234 | ||
| 212 | <script> | 235 | <script> |
| 213 | -import { findConditionData, findCargoData, releaseCargo, getFlightsRoutes } from "@/api/cargoSelect"; | 236 | +import { findConditionData, findCargoData, releaseCargo, getFlightsRoutes, historyCargo } from "@/api/cargoSelect"; |
| 214 | import { downLoadXlsx } from "@/utils/zipdownload"; | 237 | import { downLoadXlsx } from "@/utils/zipdownload"; |
| 215 | import Dialog from "./dialog.vue"; | 238 | import Dialog from "./dialog.vue"; |
| 239 | +import Info from './info.vue' | ||
| 216 | 240 | ||
| 217 | export default { | 241 | export default { |
| 218 | name: "QueryCargo", | 242 | name: "QueryCargo", |
| 219 | components: { | 243 | components: { |
| 220 | - Dialog | 244 | + Dialog, |
| 245 | + Info | ||
| 221 | }, | 246 | }, |
| 222 | data() { | 247 | data() { |
| 223 | return { | 248 | return { |
| ... | @@ -238,6 +263,7 @@ export default { | ... | @@ -238,6 +263,7 @@ export default { |
| 238 | typeId: null, | 263 | typeId: null, |
| 239 | statusId: null, | 264 | statusId: null, |
| 240 | serviceTypeId: null, | 265 | serviceTypeId: null, |
| 266 | + shipperAccount: null, | ||
| 241 | allocationTypeId: null, | 267 | allocationTypeId: null, |
| 242 | kindToAllocFlightId: null, | 268 | kindToAllocFlightId: null, |
| 243 | historyAllocaCargoTypeId: null, | 269 | historyAllocaCargoTypeId: null, |
| ... | @@ -248,6 +274,7 @@ export default { | ... | @@ -248,6 +274,7 @@ export default { |
| 248 | cargoPlaneStart: null, | 274 | cargoPlaneStart: null, |
| 249 | cargoPlaneEnd: null, | 275 | cargoPlaneEnd: null, |
| 250 | cargoPlaneRoute: null, | 276 | cargoPlaneRoute: null, |
| 277 | + preStatus: undefined, | ||
| 251 | limitStart: 1, | 278 | limitStart: 1, |
| 252 | limitSize: 100, | 279 | limitSize: 100, |
| 253 | }, //表单数据 | 280 | }, //表单数据 |
| ... | @@ -306,6 +333,7 @@ export default { | ... | @@ -306,6 +333,7 @@ export default { |
| 306 | tableData: [], //表格数据 | 333 | tableData: [], //表格数据 |
| 307 | cargoLog: {}, | 334 | cargoLog: {}, |
| 308 | routeList: [], | 335 | routeList: [], |
| 336 | + preQualificationStatusList: [], | ||
| 309 | allWeight: 0,//总重量 | 337 | allWeight: 0,//总重量 |
| 310 | allQty: 0,//总件数 | 338 | allQty: 0,//总件数 |
| 311 | shiftKey: false, | 339 | shiftKey: false, |
| ... | @@ -328,6 +356,7 @@ export default { | ... | @@ -328,6 +356,7 @@ export default { |
| 328 | tableHeight: null, | 356 | tableHeight: null, |
| 329 | dialogVisible: false, | 357 | dialogVisible: false, |
| 330 | openView: false, | 358 | openView: false, |
| 359 | + openTransfer: false, | ||
| 331 | formShow: true, //菜单隐藏 | 360 | formShow: true, //菜单隐藏 |
| 332 | }; | 361 | }; |
| 333 | }, | 362 | }, |
| ... | @@ -338,6 +367,7 @@ export default { | ... | @@ -338,6 +367,7 @@ export default { |
| 338 | } else { | 367 | } else { |
| 339 | this.tableHeader = this.tableHeaders['cargo'] | 368 | this.tableHeader = this.tableHeaders['cargo'] |
| 340 | } | 369 | } |
| 370 | + // this.select(0,'create') | ||
| 341 | }, | 371 | }, |
| 342 | 372 | ||
| 343 | activated() { | 373 | activated() { |
| ... | @@ -362,6 +392,8 @@ export default { | ... | @@ -362,6 +392,8 @@ export default { |
| 362 | typeId: null, | 392 | typeId: null, |
| 363 | statusId: null, | 393 | statusId: null, |
| 364 | serviceTypeId: null, | 394 | serviceTypeId: null, |
| 395 | + shipperAccount: null, | ||
| 396 | + shipperAccountList: null, | ||
| 365 | allocationTypeId: null, | 397 | allocationTypeId: null, |
| 366 | kindToAllocFlightId: null, | 398 | kindToAllocFlightId: null, |
| 367 | historyAllocaCargoTypeId: null, | 399 | historyAllocaCargoTypeId: null, |
| ... | @@ -379,15 +411,15 @@ export default { | ... | @@ -379,15 +411,15 @@ export default { |
| 379 | this.formData.cargoPlaneEnd = this.$route.params.fltDate | 411 | this.formData.cargoPlaneEnd = this.$route.params.fltDate |
| 380 | this.formData.cargoPlaneNo = this.$route.params.fltNo | 412 | this.formData.cargoPlaneNo = this.$route.params.fltNo |
| 381 | this.formData.cargoPlaneRoute = this.$route.params.route | 413 | this.formData.cargoPlaneRoute = this.$route.params.route |
| 382 | - this.planeNoChange(this.formData.cargoPlaneNo) | 414 | + this.planeNoChange(this.formData.cargoPlaneNo.split(';')) |
| 383 | - this.select(0) | 415 | + this.select(0, 'activated') |
| 384 | } else { | 416 | } else { |
| 385 | //否则请求原页面缓存状态 | 417 | //否则请求原页面缓存状态 |
| 386 | if (this.$store.state.tagsView.cachedViews.length > 0) { | 418 | if (this.$store.state.tagsView.cachedViews.length > 0) { |
| 387 | this.$store.state.tagsView.cachedViews.forEach(item => { | 419 | this.$store.state.tagsView.cachedViews.forEach(item => { |
| 388 | if (item === 'QueryCargo') { | 420 | if (item === 'QueryCargo') { |
| 389 | this.findCondition() | 421 | this.findCondition() |
| 390 | - this.totalCount > 0 ? this.select() : '' | 422 | + this.select() |
| 391 | } | 423 | } |
| 392 | }) | 424 | }) |
| 393 | } | 425 | } |
| ... | @@ -414,44 +446,46 @@ export default { | ... | @@ -414,44 +446,46 @@ export default { |
| 414 | watch: { | 446 | watch: { |
| 415 | $route: { | 447 | $route: { |
| 416 | handler(to, from) { | 448 | handler(to, from) { |
| 417 | - if (to.name === 'Index') { | 449 | + // if (to.name === 'Index') { |
| 418 | - this.formData = { | 450 | + // this.formData = { |
| 419 | - fltDateStart: "", | 451 | + // fltDateStart: "", |
| 420 | - fltDateEnd: "", | 452 | + // fltDateEnd: "", |
| 421 | - prematchFltDateStart: "", | 453 | + // prematchFltDateStart: "", |
| 422 | - prematchFltDateEnd: "", | 454 | + // prematchFltDateEnd: "", |
| 423 | - createTimeStart: null, | 455 | + // createTimeStart: null, |
| 424 | - createTimeEnd: null, | 456 | + // createTimeEnd: null, |
| 425 | - pickUpDate: null, | 457 | + // pickUpDate: null, |
| 426 | - hasFlight: null, | 458 | + // hasFlight: null, |
| 427 | - waybillNo: "", | 459 | + // waybillNo: "", |
| 428 | - siteName: "", | 460 | + // siteName: "", |
| 429 | - fltNo: "", | 461 | + // fltNo: "", |
| 430 | - mawbCode: "", | 462 | + // mawbCode: "", |
| 431 | - ursa: "", | 463 | + // ursa: "", |
| 432 | - typeId: null, | 464 | + // typeId: null, |
| 433 | - statusId: null, | 465 | + // statusId: null, |
| 434 | - serviceTypeId: null, | 466 | + // serviceTypeId: null, |
| 435 | - allocationTypeId: null, | 467 | + // shipperAccount: null, |
| 436 | - kindToAllocFlightId: null, | 468 | + // shipperAccountList: null, |
| 437 | - historyAllocaCargoTypeId: null, | 469 | + // allocationTypeId: null, |
| 438 | - dataSources: "", | 470 | + // kindToAllocFlightId: null, |
| 439 | - customsReceiptStatusId: null, | 471 | + // historyAllocaCargoTypeId: null, |
| 440 | - big: null, | 472 | + // dataSources: "", |
| 441 | - cargoPlaneNo: null, | 473 | + // customsReceiptStatusId: null, |
| 442 | - cargoPlaneStart: null, | 474 | + // big: null, |
| 443 | - cargoPlaneEnd: null, | 475 | + // cargoPlaneNo: null, |
| 444 | - limitStart: 1, | 476 | + // cargoPlaneStart: null, |
| 445 | - limitSize: 100, | 477 | + // cargoPlaneEnd: null, |
| 446 | - } | 478 | + // limitStart: 1, |
| 447 | - this.cargoPlaneTime = [from.params.fltDate, from.params.fltDate] | 479 | + // limitSize: 100, |
| 448 | - this.formData.cargoPlaneStart = from.params.fltDate | 480 | + // } |
| 449 | - this.formData.cargoPlaneEnd = from.params.fltDate | 481 | + // this.cargoPlaneTime = [from.params.fltDate, from.params.fltDate] |
| 450 | - this.formData.cargoPlaneNo = from.params.fltNo | 482 | + // this.formData.cargoPlaneStart = from.params.fltDate |
| 451 | - this.formData.cargoPlaneRoute = from.params.route | 483 | + // this.formData.cargoPlaneEnd = from.params.fltDate |
| 452 | - this.planeNoChange(this.formData.cargoPlaneNo) | 484 | + // this.formData.cargoPlaneNo = from.params.fltNo |
| 453 | - this.select(0) | 485 | + // this.formData.cargoPlaneRoute = from.params.route |
| 454 | - } | 486 | + // this.planeNoChange(this.formData.cargoPlaneNo) |
| 487 | + // this.select(0, 'watch') | ||
| 488 | + // } | ||
| 455 | } | 489 | } |
| 456 | }, | 490 | }, |
| 457 | formShow(val, oldVal) { | 491 | formShow(val, oldVal) { |
| ... | @@ -473,7 +507,8 @@ export default { | ... | @@ -473,7 +507,8 @@ export default { |
| 473 | }); | 507 | }); |
| 474 | }, | 508 | }, |
| 475 | //查询 | 509 | //查询 |
| 476 | - async select(val) { | 510 | + async select(val, type) { |
| 511 | + this.selectTable = [] | ||
| 477 | this.tableData = []; | 512 | this.tableData = []; |
| 478 | this.allWeight = 0; | 513 | this.allWeight = 0; |
| 479 | this.allQty = 0; | 514 | this.allQty = 0; |
| ... | @@ -506,10 +541,9 @@ export default { | ... | @@ -506,10 +541,9 @@ export default { |
| 506 | .catch(() => { | 541 | .catch(() => { |
| 507 | this.tableLoading = false; | 542 | this.tableLoading = false; |
| 508 | }); | 543 | }); |
| 509 | - this.$refs.newTables.clearTable(); | ||
| 510 | this.cargoTotal(); | 544 | this.cargoTotal(); |
| 511 | }, | 545 | }, |
| 512 | - //释放仓位 | 546 | + //释放舱位 |
| 513 | release() { | 547 | release() { |
| 514 | let idList = [] | 548 | let idList = [] |
| 515 | this.selectTable.map(item => { | 549 | this.selectTable.map(item => { |
| ... | @@ -532,7 +566,7 @@ export default { | ... | @@ -532,7 +566,7 @@ export default { |
| 532 | val === item.id ? item.msg = item.msg + '正在释放中,请勿重复释放。' : '' | 566 | val === item.id ? item.msg = item.msg + '正在释放中,请勿重复释放。' : '' |
| 533 | }) | 567 | }) |
| 534 | res.data['noFlight'].map(val => { | 568 | res.data['noFlight'].map(val => { |
| 535 | - val === item.id ? item.msg = item.msg + '已释放仓位。' : '' | 569 | + val === item.id ? item.msg = item.msg + '已释放舱位。' : '' |
| 536 | }) | 570 | }) |
| 537 | res.data['pushFalse'].map(val => { | 571 | res.data['pushFalse'].map(val => { |
| 538 | val === item.id ? item.msg = item.msg + '该货物配舱结果已回推ACCS,不能释放。' : '' | 572 | val === item.id ? item.msg = item.msg + '该货物配舱结果已回推ACCS,不能释放。' : '' |
| ... | @@ -546,6 +580,26 @@ export default { | ... | @@ -546,6 +580,26 @@ export default { |
| 546 | console.log(err) | 580 | console.log(err) |
| 547 | }) | 581 | }) |
| 548 | }, | 582 | }, |
| 583 | + transfer() { | ||
| 584 | + this.openTransfer = true | ||
| 585 | + }, | ||
| 586 | + //生成历史数据文件 | ||
| 587 | + historyFlie() { | ||
| 588 | + if (new Date(this.cargoPlaneTime[1]).getTime() - new Date(this.cargoPlaneTime[0]).getTime() > 2592000000) { | ||
| 589 | + this.msgWarning('配载日期区间不能大于31天!') | ||
| 590 | + } else { | ||
| 591 | + this.dataInfo(); | ||
| 592 | + historyCargo(this.formData).then(res => { | ||
| 593 | + if (res.code === 200) { | ||
| 594 | + this.msgSuccess('操作成功,正在生成中,稍后可在下载页面查看!') | ||
| 595 | + } else { | ||
| 596 | + this.msgWarning(res.msg) | ||
| 597 | + } | ||
| 598 | + }).catch(err => { | ||
| 599 | + console.log(err) | ||
| 600 | + }) | ||
| 601 | + } | ||
| 602 | + }, | ||
| 549 | //关闭弹窗 | 603 | //关闭弹窗 |
| 550 | close() { | 604 | close() { |
| 551 | this.dialogVisible = false | 605 | this.dialogVisible = false |
| ... | @@ -597,6 +651,12 @@ export default { | ... | @@ -597,6 +651,12 @@ export default { |
| 597 | if (this.formData.hasFlight == "") { | 651 | if (this.formData.hasFlight == "") { |
| 598 | this.formData.hasFlight = null | 652 | this.formData.hasFlight = null |
| 599 | } | 653 | } |
| 654 | + if (this.formData.shipperAccount != null && this.formData.shipperAccount != '') { | ||
| 655 | + this.formData.shipperAccountList = this.formData.shipperAccount.split(';') | ||
| 656 | + } else { | ||
| 657 | + this.formData.shipperAccountList = null | ||
| 658 | + } | ||
| 659 | + | ||
| 600 | this.formData.limitStart = this.limitStart; | 660 | this.formData.limitStart = this.limitStart; |
| 601 | this.formData.limitSize = 100; | 661 | this.formData.limitSize = 100; |
| 602 | }, | 662 | }, |
| ... | @@ -632,7 +692,13 @@ export default { | ... | @@ -632,7 +692,13 @@ export default { |
| 632 | }, | 692 | }, |
| 633 | //配载航班号获取航线 | 693 | //配载航班号获取航线 |
| 634 | planeNoChange(val) { | 694 | planeNoChange(val) { |
| 635 | - getFlightsRoutes(val.split(';')).then(res => { | 695 | + let arr = [] |
| 696 | + if (typeof val != 'object') { | ||
| 697 | + arr = val.split(';') | ||
| 698 | + } else { | ||
| 699 | + arr = val | ||
| 700 | + } | ||
| 701 | + getFlightsRoutes(arr).then(res => { | ||
| 636 | if (res.code === 200) { | 702 | if (res.code === 200) { |
| 637 | this.routeList = res.data | 703 | this.routeList = res.data |
| 638 | } else { | 704 | } else { |
| ... | @@ -723,6 +789,11 @@ export default { | ... | @@ -723,6 +789,11 @@ export default { |
| 723 | viewClose() { | 789 | viewClose() { |
| 724 | this.openView = false | 790 | this.openView = false |
| 725 | }, | 791 | }, |
| 792 | + //关闭迁转 | ||
| 793 | + dialogBeforeClose() { | ||
| 794 | + this.openTransfer = false | ||
| 795 | + this.select(0) | ||
| 796 | + }, | ||
| 726 | //设置关闭 | 797 | //设置关闭 |
| 727 | headerSetClose(val) { | 798 | headerSetClose(val) { |
| 728 | if (val == 1) { | 799 | if (val == 1) { | ... | ... |
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-dialog title="货物配舱" width="80%" :visible.sync="dialogVisible" :close-on-click-modal="false" :show-close="false" | ||
| 4 | + :append-to-body="true" @close="dialogBeforeClose"> | ||
| 5 | + <el-divider content-position="left">已选货物信息</el-divider> | ||
| 6 | + <el-table :data="tableData" size="mini" height="200" max-height="200" border stripe highlight-current-row | ||
| 7 | + style="width: 100%"> | ||
| 8 | + <el-table-column type="index" label="序号" align="center"> | ||
| 9 | + </el-table-column> | ||
| 10 | + <el-table-column v-for="(item, index) in cargoHeader" header-align="center" align="center" :prop="item.value" | ||
| 11 | + :label="item.name" :key="index" :width="item.width" :show-overflow-tooltip="true" :formatter="formatter"> | ||
| 12 | + </el-table-column> | ||
| 13 | + </el-table> | ||
| 14 | + <el-form ref="form" class="form-header" label-position="right" label-width="auto" | ||
| 15 | + style="width: 400px; margin: 30px auto" :model="formData" :rules="rules"> | ||
| 16 | + <el-form-item label="航班号" prop="fltNo"> | ||
| 17 | + <el-input class="formItem" v-model="fltNo" size="medium" placeholder="请输入航班号" maxlength="20" | ||
| 18 | + style="width: 350px" @change="dateChange"></el-input> | ||
| 19 | + </el-form-item> | ||
| 20 | + <el-form-item label="航班日期:" prop="fltDate"> | ||
| 21 | + <el-date-picker class="formItem" v-model="formData.fltDate" type="date" placeholder="选择日期" | ||
| 22 | + value-format="yyyy-MM-dd" size="medium" style="width: 350px" @change="dateChange"> | ||
| 23 | + </el-date-picker> | ||
| 24 | + </el-form-item> | ||
| 25 | + <el-form-item prop="route"> | ||
| 26 | + <template slot="label"> | ||
| 27 | + <div style="display:inline-block">航线: | ||
| 28 | + <el-tooltip class="item" effect="dark" content="选择航线需要先输入航班号和航班日期,才能选择对应得航线" placement="top-start"> | ||
| 29 | + <span class="el-icon-warning" style="color:#1890ff;font-size:16px"></span> | ||
| 30 | + </el-tooltip> | ||
| 31 | + </div> | ||
| 32 | + </template> | ||
| 33 | + <el-select class="formItem" v-model="formData.route" placeholder="请选择航线" :disabled="routeList.length == 0"> | ||
| 34 | + <el-option v-for="(item, index) in routeList" :label="item.route" :value="item.route" :key="index"> | ||
| 35 | + <Tooltips :content="item.route" :refName="item.route"></Tooltips> | ||
| 36 | + </el-option> | ||
| 37 | + </el-select> | ||
| 38 | + </el-form-item> | ||
| 39 | + </el-form> | ||
| 40 | + <div slot="footer"> | ||
| 41 | + <el-button @click="dialogBeforeClose">取 消</el-button> | ||
| 42 | + <el-button type="primary" @click="submit" :loading="loading">确 定</el-button> | ||
| 43 | + </div> | ||
| 44 | + </el-dialog> | ||
| 45 | + </div> | ||
| 46 | +</template> | ||
| 47 | + | ||
| 48 | +<script> | ||
| 49 | +import { batchMoveCargoToOtherFlight, findFlightRoute } from "@/api/cargoSelect"; | ||
| 50 | + | ||
| 51 | +export default { | ||
| 52 | + props: { | ||
| 53 | + dialogVisible: { | ||
| 54 | + type: Boolean, | ||
| 55 | + default: false, | ||
| 56 | + }, | ||
| 57 | + tableData: { | ||
| 58 | + type: Array, | ||
| 59 | + default: null, | ||
| 60 | + }, | ||
| 61 | + }, | ||
| 62 | + data() { | ||
| 63 | + return { | ||
| 64 | + formData: { | ||
| 65 | + ids: [], | ||
| 66 | + fltNo: undefined, | ||
| 67 | + fltDate: undefined, | ||
| 68 | + route: null, | ||
| 69 | + overweight: false, | ||
| 70 | + }, | ||
| 71 | + cargoHeader: [ | ||
| 72 | + { name: "口岸代码", value: "portName", width: "" }, | ||
| 73 | + { name: "运单号", value: "waybillNo", width: "" }, | ||
| 74 | + { name: "货物状态", value: "statusName", width: "" }, | ||
| 75 | + { name: "站点", value: "siteName", width: "" }, | ||
| 76 | + { name: "申报类型", value: "typeName", width: "" }, | ||
| 77 | + { name: "URSA", value: "ursa", width: "" }, | ||
| 78 | + { name: "实际重量", value: "actualWeight", width: "" }, | ||
| 79 | + { name: "件数", value: "qty", width: "" }, | ||
| 80 | + { name: "ACCS原航班号", value: "fltNoAccs", width: "120" }, | ||
| 81 | + { name: "ACCS原航班日期", value: "fltDateAccs", width: "130" }, | ||
| 82 | + { name: "品名描述", value: "nameDescription", width: "" }, | ||
| 83 | + { name: "是否自动", value: "cargoRulesStatus", width: "" }, | ||
| 84 | + { name: "创建人", value: "createUserName", width: "" }, | ||
| 85 | + { name: "创建时间", value: "createTime", width: "" }, | ||
| 86 | + ], | ||
| 87 | + routeList: [], | ||
| 88 | + rules: { | ||
| 89 | + fltNo: [ | ||
| 90 | + { | ||
| 91 | + required: true, | ||
| 92 | + message: "航班号不能为空", | ||
| 93 | + trigger: "blur", | ||
| 94 | + }, | ||
| 95 | + ], | ||
| 96 | + fltDate: [ | ||
| 97 | + { | ||
| 98 | + required: true, | ||
| 99 | + message: "航班日期不能为空", | ||
| 100 | + trigger: "blur", | ||
| 101 | + }, | ||
| 102 | + ], | ||
| 103 | + route: [ | ||
| 104 | + { | ||
| 105 | + required: true, | ||
| 106 | + message: "航线不能为空", | ||
| 107 | + trigger: "blur", | ||
| 108 | + }, | ||
| 109 | + ], | ||
| 110 | + }, | ||
| 111 | + loading: false, | ||
| 112 | + }; | ||
| 113 | + }, | ||
| 114 | + methods: { | ||
| 115 | + cleaerForm() { | ||
| 116 | + this.formData = { | ||
| 117 | + ids: [], | ||
| 118 | + fltNo: undefined, | ||
| 119 | + fltDate: undefined, | ||
| 120 | + route: undefined, | ||
| 121 | + flightId: undefined, | ||
| 122 | + overweight: false, | ||
| 123 | + notInWhite: false, | ||
| 124 | + }; | ||
| 125 | + this.routeList = [] | ||
| 126 | + }, | ||
| 127 | + //确定配舱 | ||
| 128 | + submit() { | ||
| 129 | + this.formData.overweight = false | ||
| 130 | + this.formData.notInWhite = false | ||
| 131 | + this.$refs.form.validate(val => { | ||
| 132 | + if (val) { | ||
| 133 | + this.loading = true; | ||
| 134 | + let arr = []; | ||
| 135 | + this.tableData.forEach((item) => { | ||
| 136 | + arr.push(item.id); | ||
| 137 | + }); | ||
| 138 | + this.formData.ids = arr; | ||
| 139 | + this.routeList.forEach(item => { | ||
| 140 | + if (item.route === this.formData.route) { | ||
| 141 | + this.formData.flightId = item.id | ||
| 142 | + } | ||
| 143 | + }) | ||
| 144 | + if (this.formData.fltNo && this.formData.fltDate) { | ||
| 145 | + batchMoveCargoToOtherFlight(this.formData).then((res) => { | ||
| 146 | + //code 200 配舱成功 202重量已满需要确认 203货物不在白名单需要确认 其余code直接输出msg 接口先判断重量后判断白名单 overweight/notInWhite初始默认false | ||
| 147 | + if (res.code === 200) { | ||
| 148 | + this.loading = false; | ||
| 149 | + this.msgSuccess(res.msg) | ||
| 150 | + this.cleaerForm(); | ||
| 151 | + this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 152 | + } else if (res.code === 201) { | ||
| 153 | + this.loading = false; | ||
| 154 | + let arr = [] | ||
| 155 | + res.data.forEach(item => { | ||
| 156 | + let obj = { | ||
| 157 | + waybillNo: item.split(':')[0], | ||
| 158 | + errorMessage: item.split(':')[1] | ||
| 159 | + } | ||
| 160 | + arr.push(obj) | ||
| 161 | + }) | ||
| 162 | + this.$router.push({ name: 'UpDateResult', query: { data: arr, from: 'queryCargo' } }) | ||
| 163 | + this.dialogBeforeClose() | ||
| 164 | + } else if (res.code === 202) { | ||
| 165 | + this.reBatchMoveCargoToOtherFlight(res.msg, 'overweight') | ||
| 166 | + } else if (res.code === 203) { | ||
| 167 | + this.reBatchMoveCargoToOtherFlight(res.msg, 'notInWhite') | ||
| 168 | + } else { | ||
| 169 | + this.loading = false; | ||
| 170 | + this.dialogBeforeClose() | ||
| 171 | + this.msgWarning(res.msg) | ||
| 172 | + } | ||
| 173 | + }).catch(() => { | ||
| 174 | + this.loading = false; | ||
| 175 | + }); | ||
| 176 | + } else { | ||
| 177 | + this.loading = false; | ||
| 178 | + this.msgWarning('航班号或航班日期不能为空') | ||
| 179 | + } | ||
| 180 | + } | ||
| 181 | + }) | ||
| 182 | + }, | ||
| 183 | + //迁转白名单/超重确认 | ||
| 184 | + reBatchMoveCargoToOtherFlight(msg, status) { | ||
| 185 | + this.$confirm(msg, "提示", { | ||
| 186 | + confirmButtonText: "确定", | ||
| 187 | + cancelButtonText: "取消", | ||
| 188 | + type: "warning", | ||
| 189 | + }).then(() => { | ||
| 190 | + if (status == 'overweight') { | ||
| 191 | + this.formData.overweight = true; //确定继续overweight变为true再次请求接口 | ||
| 192 | + } else { | ||
| 193 | + this.formData.notInWhite = true; //确定继续notInWhite变为true再次请求接口 | ||
| 194 | + } | ||
| 195 | + batchMoveCargoToOtherFlight(this.formData).then((res) => { | ||
| 196 | + if (res.code === 200) { | ||
| 197 | + this.loading = false | ||
| 198 | + this.msgSuccess('航班迁转成功') | ||
| 199 | + this.cleaerForm(); | ||
| 200 | + this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 201 | + } else if (res.code === 201) { | ||
| 202 | + let arr = [] | ||
| 203 | + res.data.forEach(item => { | ||
| 204 | + let obj = { | ||
| 205 | + waybillNo: item.split(':')[0], | ||
| 206 | + errorMessage: item.split(':')[1] | ||
| 207 | + } | ||
| 208 | + arr.push(obj) | ||
| 209 | + }) | ||
| 210 | + this.$router.push({ name: 'UpDateResult', query: { data: arr, from: 'queryCargo' } }) | ||
| 211 | + this.dialogBeforeClose() | ||
| 212 | + } else if (res.code === 203) { | ||
| 213 | + this.reBatchMoveCargoToOtherFlight(res.msg, 'notInWhite') | ||
| 214 | + } else { | ||
| 215 | + this.msgWarning(res.msg) | ||
| 216 | + this.loading = false | ||
| 217 | + } | ||
| 218 | + }) | ||
| 219 | + }).ctach(() => { | ||
| 220 | + //取消 取消当前配舱 | ||
| 221 | + this.loading = false | ||
| 222 | + this.msgSuccess('迁转已取消') | ||
| 223 | + this.cleaerForm(); | ||
| 224 | + this.$emit("dialogBeforeClose", { | ||
| 225 | + close: false, | ||
| 226 | + reload: true, | ||
| 227 | + }); | ||
| 228 | + }) | ||
| 229 | + }, | ||
| 230 | + dialogBeforeClose() { | ||
| 231 | + this.cleaerForm(); | ||
| 232 | + this.$refs['form'].clearValidate(); | ||
| 233 | + this.$emit("dialogBeforeClose", { close: false, reload: true }); | ||
| 234 | + }, | ||
| 235 | + formatter(row, column, cellValue, index) { | ||
| 236 | + if (column.property == "cargoRulesStatus") { | ||
| 237 | + if (cellValue == 1) { | ||
| 238 | + return "手动" | ||
| 239 | + } else { | ||
| 240 | + return "自动" | ||
| 241 | + } | ||
| 242 | + } | ||
| 243 | + return cellValue | ||
| 244 | + }, | ||
| 245 | + //日期选择变化 | ||
| 246 | + dateChange(val) { | ||
| 247 | + this.routeList = [] | ||
| 248 | + this.formData.route = null | ||
| 249 | + if (this.formData.fltNo && this.formData.fltNo != null && this.formData.fltNo != '') { | ||
| 250 | + if (this.formData.fltDate && this.formData.fltDate != null && this.formData.fltDate != '') { | ||
| 251 | + let obj = { | ||
| 252 | + fltNo: this.formData.fltNo, | ||
| 253 | + fltDate: this.formData.fltDate, | ||
| 254 | + } | ||
| 255 | + findFlightRoute(obj).then(res => { | ||
| 256 | + if (res.code === 200) { | ||
| 257 | + res.data[0].route.indexOf(';') <= 0 ? | ||
| 258 | + this.routeList = res.data : | ||
| 259 | + res.data[0].route.split(';').forEach(item => { | ||
| 260 | + this.routeList.push({ id: res.data[0].id, route: item }) | ||
| 261 | + }) | ||
| 262 | + } else { | ||
| 263 | + this.msgWarning(res.msg) | ||
| 264 | + } | ||
| 265 | + }).catch(err => { | ||
| 266 | + console.log(err) | ||
| 267 | + }) | ||
| 268 | + } else { | ||
| 269 | + this.msgWarning('航班日期不能为空') | ||
| 270 | + } | ||
| 271 | + } else { | ||
| 272 | + this.msgWarning('航班号不能为空') | ||
| 273 | + } | ||
| 274 | + } | ||
| 275 | + }, | ||
| 276 | + computed: { | ||
| 277 | + fltNo: { | ||
| 278 | + get: function () { | ||
| 279 | + return this.formData.fltNo; | ||
| 280 | + }, | ||
| 281 | + set: function (val) { | ||
| 282 | + this.formData.fltNo = this.upCase(val); | ||
| 283 | + }, | ||
| 284 | + }, | ||
| 285 | + }, | ||
| 286 | +}; | ||
| 287 | +</script> | ||
| 288 | + | ||
| 289 | +<style></style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -44,7 +44,7 @@ | ... | @@ -44,7 +44,7 @@ |
| 44 | <el-row class="card2"> | 44 | <el-row class="card2"> |
| 45 | <el-col :span="1" v-for="item in fltBox"> | 45 | <el-col :span="1" v-for="item in fltBox"> |
| 46 | <div class="fltBox" @click="rowClick({ fltNo: item.fltNo, fltDate: item.fltDate, route: '' })" | 46 | <div class="fltBox" @click="rowClick({ fltNo: item.fltNo, fltDate: item.fltDate, route: '' })" |
| 47 | - :style="{ backgroundColor: (item.percentage * 100).toFixed(2) >= 100 ? '#13ce66' : (item.percentage * 100).toFixed(2) >= 75 ? '#ffba00' : '#ff4949' }"> | 47 | + :style="{ backgroundColor: (item.percentage * 100).toFixed(2) >= 90 ? '#13ce66' : (item.percentage * 100).toFixed(2) >= 75 ? '#ffba00' : '#ff4949' }"> |
| 48 | <div class="fltName">{{ item.fltNo }}</div> | 48 | <div class="fltName">{{ item.fltNo }}</div> |
| 49 | <div class="fltWeight">{{ (item.percentage == 0 ? 0 : ((item.percentage) * 100).toFixed(2)) + '%' }} | 49 | <div class="fltWeight">{{ (item.percentage == 0 ? 0 : ((item.percentage) * 100).toFixed(2)) + '%' }} |
| 50 | </div> | 50 | </div> |
| ... | @@ -59,7 +59,7 @@ | ... | @@ -59,7 +59,7 @@ |
| 59 | @currentChange="currentChange" @rowClick="rowClick"> | 59 | @currentChange="currentChange" @rowClick="rowClick"> |
| 60 | <template v-slot:percentage="scope"> | 60 | <template v-slot:percentage="scope"> |
| 61 | <el-progress stroke-width="100" | 61 | <el-progress stroke-width="100" |
| 62 | - :color="(scope.row.percentage * 100).toFixed(2) >= 100 ? '#13ce66' : (scope.row.percentage * 100).toFixed(2) >= 75 ? '#ffba00' : '#ff4949'" | 62 | + :color="(scope.row.percentage * 100).toFixed(2) >= 90 ? '#13ce66' : (scope.row.percentage * 100).toFixed(2) >= 75 ? '#ffba00' : '#ff4949'" |
| 63 | :stroke-width="18" | 63 | :stroke-width="18" |
| 64 | :percentage="scope.row.percentage == 0 ? 0 : Number((scope.row.percentage * 100).toFixed(2))"> | 64 | :percentage="scope.row.percentage == 0 ? 0 : Number((scope.row.percentage * 100).toFixed(2))"> |
| 65 | </el-progress> | 65 | </el-progress> | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | - <div class="login" :style="display"> | 2 | + <div class="login"> |
| 3 | <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> | 3 | <el-form ref="loginForm" :model="loginForm" :rules="loginRules" class="login-form"> |
| 4 | <h3 class="title">IMAC后台管理系统</h3> | 4 | <h3 class="title">IMAC后台管理系统</h3> |
| 5 | <el-form-item prop="username"> | 5 | <el-form-item prop="username"> |
| ... | @@ -13,8 +13,9 @@ | ... | @@ -13,8 +13,9 @@ |
| 13 | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> | 13 | <svg-icon slot="prefix" icon-class="password" class="el-input__icon input-icon" /> |
| 14 | </el-input> | 14 | </el-input> |
| 15 | </el-form-item> | 15 | </el-form-item> |
| 16 | + | ||
| 16 | <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> --> | 17 | <!-- <el-checkbox v-model="loginForm.rememberMe" style="margin:0px 0px 25px 0px;">记住密码</el-checkbox> --> |
| 17 | - <el-form-item style="width: 100%; marginTop: 44px"> | 18 | + <el-form-item style="width: 100%; marginTop: 65px"> |
| 18 | <el-button :loading="loading" size="medium" type="primary" style="width: 100%" | 19 | <el-button :loading="loading" size="medium" type="primary" style="width: 100%" |
| 19 | @click.native.prevent="handleLogin"> | 20 | @click.native.prevent="handleLogin"> |
| 20 | <span v-if="!loading">登 录</span> | 21 | <span v-if="!loading">登 录</span> |
| ... | @@ -30,9 +31,6 @@ | ... | @@ -30,9 +31,6 @@ |
| 30 | </template> | 31 | </template> |
| 31 | 32 | ||
| 32 | <script> | 33 | <script> |
| 33 | -import { getCodeImg } from "@/api/login"; | ||
| 34 | -//import Cookies from "js-cookie"; | ||
| 35 | -import { encrypt } from "@/utils/jsencrypt"; | ||
| 36 | 34 | ||
| 37 | export default { | 35 | export default { |
| 38 | name: "Login", | 36 | name: "Login", |
| ... | @@ -55,7 +53,6 @@ export default { | ... | @@ -55,7 +53,6 @@ export default { |
| 55 | }, | 53 | }, |
| 56 | loading: false, | 54 | loading: false, |
| 57 | redirect: undefined, | 55 | redirect: undefined, |
| 58 | - display: "display:flex", | ||
| 59 | }; | 56 | }; |
| 60 | }, | 57 | }, |
| 61 | watch: { | 58 | watch: { |
| ... | @@ -63,8 +60,8 @@ export default { | ... | @@ -63,8 +60,8 @@ export default { |
| 63 | handler: function (route) { | 60 | handler: function (route) { |
| 64 | this.redirect = route.query && route.query.redirect; | 61 | this.redirect = route.query && route.query.redirect; |
| 65 | }, | 62 | }, |
| 66 | - immediate: true | 63 | + immediate: true, |
| 67 | - } | 64 | + }, |
| 68 | }, | 65 | }, |
| 69 | created() { | 66 | created() { |
| 70 | this.getCookie(); | 67 | this.getCookie(); |
| ... | @@ -101,12 +98,16 @@ export default { | ... | @@ -101,12 +98,16 @@ export default { |
| 101 | } | 98 | } |
| 102 | this.$store | 99 | this.$store |
| 103 | .dispatch("Login", this.loginForm) | 100 | .dispatch("Login", this.loginForm) |
| 104 | - .then(() => { | 101 | + .then(res => { |
| 102 | + this.loading = false; | ||
| 103 | + if (res.code != 200) { | ||
| 104 | + this.msgWarning(res.msg) | ||
| 105 | + } | ||
| 105 | this.$router.push({ path: this.redirect || "/" }).catch(() => { }); | 106 | this.$router.push({ path: this.redirect || "/" }).catch(() => { }); |
| 106 | }) | 107 | }) |
| 107 | - .catch(() => { | 108 | + .catch(err => { |
| 108 | this.loading = false; | 109 | this.loading = false; |
| 109 | - //this.getCode(); | 110 | + this.msgWarning(err) |
| 110 | }); | 111 | }); |
| 111 | } | 112 | } |
| 112 | }); | 113 | }); | ... | ... |
| 1 | +<template> | ||
| 2 | + <div style="margin: 20px"> | ||
| 3 | + <el-form ref="selectForm" :model="formData" class="form-header" label-position="right" label-width="auto" | ||
| 4 | + size="small"> | ||
| 5 | + <el-row :gutter="10"> | ||
| 6 | + <el-col :span="6"> | ||
| 7 | + <el-form-item label="航班号"> | ||
| 8 | + <el-input type="text" v-model="formData.fltNo" placeholder="请输入航班号"></el-input> | ||
| 9 | + </el-form-item> | ||
| 10 | + </el-col> | ||
| 11 | + <el-col :span="6"> | ||
| 12 | + <el-form-item label="地区"> | ||
| 13 | + <el-input type="text" v-model="formData.area" placeholder="请输入地区"></el-input> | ||
| 14 | + </el-form-item> | ||
| 15 | + </el-col> | ||
| 16 | + <el-col :span="4"> | ||
| 17 | + <el-button type="primary" size="small" icon="el-icon-search" :loading="tableLoading" | ||
| 18 | + @click="selection(1)"> | ||
| 19 | + 查询</el-button> | ||
| 20 | + </el-col> | ||
| 21 | + </el-row> | ||
| 22 | + <el-row> | ||
| 23 | + <el-col :span="20"> | ||
| 24 | + <el-row> | ||
| 25 | + <el-col :span="6"> | ||
| 26 | + <el-form-item label="生效日期" prop="beginDate" :rules="rules"> | ||
| 27 | + <el-date-picker class="formItem" v-model="formData.beginDate" type="date" placeholder="选择日期" | ||
| 28 | + value-format="yyyy-MM-dd" clearable> | ||
| 29 | + </el-date-picker> | ||
| 30 | + </el-form-item> | ||
| 31 | + </el-col> | ||
| 32 | + <el-col :span="12"> | ||
| 33 | + <el-upload action="/flightInfoImport/importFlight" name="file" :http-request="uploadExcel" | ||
| 34 | + :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" | ||
| 35 | + accept=".xlsx" class="upload-demo" v-hasPermi="['base:flightImport:importFlight']" | ||
| 36 | + :disabled="formData.beginDate == null"> | ||
| 37 | + <el-button type="primary" icon="el-icon-upload2" size="small" @click="upload">导入Excel | ||
| 38 | + </el-button> | ||
| 39 | + </el-upload> | ||
| 40 | + </el-col> | ||
| 41 | + </el-row> | ||
| 42 | + </el-col> | ||
| 43 | + </el-row> | ||
| 44 | + </el-form> | ||
| 45 | + <div style="width:100%;display: flex;margin-bottom:10px"> | ||
| 46 | + <!-- <el-button type="primary" size="small" icon="el-icon-search" :loading="tableLoading" @click="selection(1)"> | ||
| 47 | + 查询</el-button> --> | ||
| 48 | + <el-button type="primary" icon="el-icon-download" size="small" @click="downloadTempleate" | ||
| 49 | + v-hasPermi="['base:flightImport:exportExcel']"> | ||
| 50 | + 下载模板 | ||
| 51 | + </el-button> | ||
| 52 | + </div> | ||
| 53 | + <Tables ref="flightToArea" ductName="flightToArea" :selection="false" :selectFixed="false" :order='true' | ||
| 54 | + :height="tableHeight" :data="tableData" :headerData="tableHeaders" :page="formData.page" :pageSizes="[20]" | ||
| 55 | + :totalCount="total" :loading="tableLoading" @currentChange="currentChange">"> | ||
| 56 | + </Tables> | ||
| 57 | + </div> | ||
| 58 | +</template> | ||
| 59 | + | ||
| 60 | +<script> | ||
| 61 | +import { | ||
| 62 | + downLoadTemplate, | ||
| 63 | + importFlightDestination, | ||
| 64 | + searchFlightDestination | ||
| 65 | +} from "@/api/preMdeConfig"; | ||
| 66 | +import settings from "@/settings" | ||
| 67 | + | ||
| 68 | +export default { | ||
| 69 | + name: "FlightToArea", | ||
| 70 | + data() { | ||
| 71 | + return { | ||
| 72 | + formData: { | ||
| 73 | + fltNo: null, | ||
| 74 | + area: null, | ||
| 75 | + beginDate: null, | ||
| 76 | + page: 1, | ||
| 77 | + }, | ||
| 78 | + tableData: [], | ||
| 79 | + errorData: [], | ||
| 80 | + tableHeaders: this.tableHeaders['flightToArea'], | ||
| 81 | + tableHeight: null, | ||
| 82 | + total: 0, | ||
| 83 | + flightType: [], | ||
| 84 | + form: { | ||
| 85 | + type: "", | ||
| 86 | + region: "", | ||
| 87 | + }, | ||
| 88 | + rules: { | ||
| 89 | + validator: (rule, value, callback) => { | ||
| 90 | + if (this.formData.beginDate == null) { | ||
| 91 | + callback(new Error('上传前请选择生效时间')) | ||
| 92 | + } | ||
| 93 | + }, | ||
| 94 | + trigger: 'change' | ||
| 95 | + }, | ||
| 96 | + fileList: [], | ||
| 97 | + tableLoading: false, | ||
| 98 | + }; | ||
| 99 | + }, | ||
| 100 | + created() { | ||
| 101 | + }, | ||
| 102 | + mounted() { | ||
| 103 | + this.tableHeight = window.innerHeight - this.$refs.selectForm.$el.offsetHeight - 170 | ||
| 104 | + this.selection(1) | ||
| 105 | + }, | ||
| 106 | + activated() { | ||
| 107 | + }, | ||
| 108 | + methods: { | ||
| 109 | + selection(val) { | ||
| 110 | + this.tableData = [] | ||
| 111 | + this.tableLoading = true | ||
| 112 | + if (val === 1) { | ||
| 113 | + this.formData.page = 1 | ||
| 114 | + } | ||
| 115 | + let obj = { | ||
| 116 | + fltNo: this.formData.fltNo, | ||
| 117 | + area: this.formData.area, | ||
| 118 | + page: this.formData.page, | ||
| 119 | + size: 20 | ||
| 120 | + } | ||
| 121 | + if (obj.area == '') { | ||
| 122 | + obj.area = null | ||
| 123 | + } | ||
| 124 | + searchFlightDestination(obj).then(res => { | ||
| 125 | + this.tableLoading = false | ||
| 126 | + if (res.code === 200) { | ||
| 127 | + this.tableData = res.data.list | ||
| 128 | + this.total = res.data.total | ||
| 129 | + } | ||
| 130 | + }).catch(err => { | ||
| 131 | + this.tableLoading = false | ||
| 132 | + console.log(err) | ||
| 133 | + }) | ||
| 134 | + }, | ||
| 135 | + downloadTempleate() { | ||
| 136 | + let downloadType = "flightDestination"; | ||
| 137 | + let fileName = "航班目的地模板.xlsx"; | ||
| 138 | + downLoadTemplate(downloadType).then((res) => { | ||
| 139 | + if (res) { | ||
| 140 | + const blob = new Blob([res]); | ||
| 141 | + const link = document.createElement("a"); //创建a标签 | ||
| 142 | + link.download = fileName; //a标签添加属性 | ||
| 143 | + link.style.display = "none"; | ||
| 144 | + link.href = URL.createObjectURL(blob); | ||
| 145 | + document.body.appendChild(link); | ||
| 146 | + link.click(); //执行下载 | ||
| 147 | + URL.revokeObjectURL(link.href); //释放url | ||
| 148 | + document.body.removeChild(link); //释放标签 | ||
| 149 | + } else { | ||
| 150 | + this.$message.error("下载失败"); | ||
| 151 | + } | ||
| 152 | + }); | ||
| 153 | + }, | ||
| 154 | + uploadExcel(option) { | ||
| 155 | + //上传excel | ||
| 156 | + const file = option.file; | ||
| 157 | + importFlightDestination(file, this.formData.beginDate).then((res) => { | ||
| 158 | + if (res.code != 200) { | ||
| 159 | + if (res.code == 603) { | ||
| 160 | + this.$alert(res.msg, "提示", { | ||
| 161 | + confirmButtonText: "确定", | ||
| 162 | + type: "warning", | ||
| 163 | + }); | ||
| 164 | + } else if (res.code === 201) { | ||
| 165 | + this.msgWarning(res.msg); | ||
| 166 | + this.errorData = res.data; | ||
| 167 | + this.$router.push({ name: 'UpDateResult', query: { data: this.errorData, from: 'FlightToArea' } }) | ||
| 168 | + } else { | ||
| 169 | + this.msgWarning(res.msg); | ||
| 170 | + } | ||
| 171 | + } else { | ||
| 172 | + this.msgSuccess("导入成功"); | ||
| 173 | + this.selection(1) | ||
| 174 | + } | ||
| 175 | + }); | ||
| 176 | + }, | ||
| 177 | + handleRemove(file, fileList) { | ||
| 178 | + //清掉上传的文件 | ||
| 179 | + this.fileList = []; | ||
| 180 | + this.selection() | ||
| 181 | + }, | ||
| 182 | + handleExceed(files) { | ||
| 183 | + //重复上传文件 | ||
| 184 | + let file = {}; | ||
| 185 | + file.file = files[0]; | ||
| 186 | + file.name = files[0].name; | ||
| 187 | + this.fileList = []; | ||
| 188 | + this.fileList.push(file); | ||
| 189 | + this.uploadExcel(file); | ||
| 190 | + }, | ||
| 191 | + currentChange(val) { | ||
| 192 | + this.formData.page = val.page | ||
| 193 | + this.selection() | ||
| 194 | + }, | ||
| 195 | + upload() { | ||
| 196 | + this.$refs.selectForm.validateField('beginDate') | ||
| 197 | + } | ||
| 198 | + }, | ||
| 199 | +}; | ||
| 200 | +</script> | ||
| 201 | +<style rel="stylesheet/scss" lang="scss"> | ||
| 202 | +.upload-demo { | ||
| 203 | + display: flex; | ||
| 204 | + margin-left: 10px; | ||
| 205 | + float: none !important; | ||
| 206 | +} | ||
| 207 | + | ||
| 208 | +.el-upload-list { | ||
| 209 | + display: inline-block; | ||
| 210 | + margin-left: 10px; | ||
| 211 | + vertical-align: top; | ||
| 212 | +} | ||
| 213 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-form ref="preMdeSelectForm" class="form-header" label-position="right" label-width="auto" size="small" | ||
| 4 | + :model="formData"> | ||
| 5 | + <el-row> | ||
| 6 | + <el-col :span="6"> | ||
| 7 | + <el-form-item label="区域"> | ||
| 8 | + <el-select class="formItem" v-model="formData.regionArray" filterable multiple clearable | ||
| 9 | + placeholder="不限"> | ||
| 10 | + <el-option v-for="item in selectData.region" :label="item" :value="item" :key="item"> | ||
| 11 | + </el-option> | ||
| 12 | + </el-select> | ||
| 13 | + </el-form-item> | ||
| 14 | + </el-col> | ||
| 15 | + <el-col :span="6"> | ||
| 16 | + <el-form-item label="地区"> | ||
| 17 | + <el-select class="formItem" v-model="formData.areaArray" filterable multiple clearable | ||
| 18 | + placeholder="不限"> | ||
| 19 | + <el-option v-for="item in selectData.area" :label="item" :value="item" :key="item"> | ||
| 20 | + </el-option> | ||
| 21 | + </el-select> | ||
| 22 | + </el-form-item> | ||
| 23 | + </el-col> | ||
| 24 | + <el-col :span="6"> | ||
| 25 | + <el-form-item label="申报类别"> | ||
| 26 | + <el-select class="formItem" v-model="formData.typeName" filterable clearable placeholder="不限"> | ||
| 27 | + <el-option v-for="item in selectData.declarationCategory" :label="item.chineseName" | ||
| 28 | + :value="item.chineseName" :key="item.id"> | ||
| 29 | + </el-option> | ||
| 30 | + </el-select> | ||
| 31 | + </el-form-item> | ||
| 32 | + </el-col> | ||
| 33 | + <el-col :span="6"> | ||
| 34 | + <el-form-item label="服务类型"> | ||
| 35 | + <el-select class="formItem" v-model="formData.serviceTypeArray" filterable clearable | ||
| 36 | + placeholder="不限"> | ||
| 37 | + <el-option v-for="item in selectData.serviceType" :label="item.chineseName" | ||
| 38 | + :value="item.chineseName" :key="item.id"> | ||
| 39 | + </el-option> | ||
| 40 | + </el-select> | ||
| 41 | + </el-form-item> | ||
| 42 | + </el-col> | ||
| 43 | + </el-row> | ||
| 44 | + <el-row> | ||
| 45 | + <el-col :span="6"> | ||
| 46 | + <el-form-item label="运单号"> | ||
| 47 | + <el-input type="textarea" v-model="formData.waybillNo" class="formItem" | ||
| 48 | + placeholder="请输入运单号(回车间隔)" :rows="4" :maxlength="12000" clearable></el-input> | ||
| 49 | + </el-form-item> | ||
| 50 | + </el-col> | ||
| 51 | + <el-col :span="6"> | ||
| 52 | + <el-form-item label="URSA"> | ||
| 53 | + <el-input type="textarea" v-model="formData.ursa" class="formItem" placeholder="S_;P_;E2" | ||
| 54 | + :rows="4" clearable> | ||
| 55 | + </el-input> | ||
| 56 | + </el-form-item> | ||
| 57 | + </el-col> | ||
| 58 | + <el-col :span="6"> | ||
| 59 | + <el-form-item label="站点"> | ||
| 60 | + <el-input type="textarea" v-model="formData.siteName" class="formItem" placeholder="PVG;PEK" | ||
| 61 | + :rows="4" clearable> | ||
| 62 | + </el-input> | ||
| 63 | + </el-form-item> | ||
| 64 | + </el-col> | ||
| 65 | + <el-col :span="6"> | ||
| 66 | + <el-form-item label="ACCS原航班日期"> | ||
| 67 | + <el-date-picker class="formItem" type="daterange" v-model="accsDate" range-separator="至" | ||
| 68 | + start-placeholder="开始日期" end-placeholder="结束日期" :value-format="valueFormat" clearable> | ||
| 69 | + </el-date-picker> | ||
| 70 | + </el-form-item> | ||
| 71 | + </el-col> | ||
| 72 | + </el-row> | ||
| 73 | + <el-row> | ||
| 74 | + <el-col :span="6"> | ||
| 75 | + <el-form-item label="ACCS原航班号"> | ||
| 76 | + <el-input type="text" class="formItem" v-model="formData.flightNo" placeholder="请输入航班号" | ||
| 77 | + clearable> | ||
| 78 | + </el-input> | ||
| 79 | + </el-form-item> | ||
| 80 | + </el-col> | ||
| 81 | + <el-col :span="6"> | ||
| 82 | + <el-form-item label="ACCS航线"> | ||
| 83 | + <el-input type="text" class="formItem" v-model="formData.flightRoute" placeholder="请输入航线" | ||
| 84 | + clearable> | ||
| 85 | + </el-input> | ||
| 86 | + </el-form-item> | ||
| 87 | + </el-col> | ||
| 88 | + </el-row> | ||
| 89 | + </el-form> | ||
| 90 | + <div class="ml20 mb20"> | ||
| 91 | + <el-button type="primary" icon="el-icon-search" size="small" :loading="tableLoading" @click="select(0)">查询 | ||
| 92 | + </el-button> | ||
| 93 | + <el-button icon="el-icon-download" type="primary" size="small" style="margin-left:10px" | ||
| 94 | + :loading="downloading" @click="downloadExcel" v-hasPermi="['base:preMde:export']"> | ||
| 95 | + 导出全部查询结果 | ||
| 96 | + </el-button> | ||
| 97 | + <span class="ml20" style="color: #ffba00">全部导出上限80000条数据</span> | ||
| 98 | + </div> | ||
| 99 | + <Tables ref="preMdeSelectTables" ductName="preMdeSelect" :data="tableData" :headerData="tableHeader" | ||
| 100 | + :selection="false" :order="true" :totalCount="totalCount" :pageSizes="[100]" :loading="tableLoading" | ||
| 101 | + :limitSize="formData.size" :height="tableHeight" @currentChange="currentChange"> | ||
| 102 | + </Tables> | ||
| 103 | + </div> | ||
| 104 | +</template> | ||
| 105 | + | ||
| 106 | +<script> | ||
| 107 | +import { | ||
| 108 | + findDmPreMdeData, | ||
| 109 | + findDmPreMdeCondition | ||
| 110 | +} from "@/api/preMdeConfig"; | ||
| 111 | +import { downLoadXlsx } from "@/utils/zipdownload"; | ||
| 112 | + | ||
| 113 | +export default { | ||
| 114 | + name: 'PreMdeSelect', | ||
| 115 | + data() { | ||
| 116 | + return { | ||
| 117 | + formData: { | ||
| 118 | + regionArray: [], | ||
| 119 | + areaArray: [], | ||
| 120 | + serviceTypeArray: null, | ||
| 121 | + page: 1, | ||
| 122 | + size: 100, | ||
| 123 | + }, | ||
| 124 | + selectData: { | ||
| 125 | + serviceType: [], | ||
| 126 | + declarationCategory: [], | ||
| 127 | + region: [], | ||
| 128 | + area: [] | ||
| 129 | + }, | ||
| 130 | + tableData: [], | ||
| 131 | + tableHeader: this.tableHeaders['preMdeSelect'], | ||
| 132 | + accsDate: [], | ||
| 133 | + valueFormat: "yyyy-MM-dd", | ||
| 134 | + tableHeight: null, | ||
| 135 | + tableLoading: false, | ||
| 136 | + downloading: false, | ||
| 137 | + totalCount: 0, | ||
| 138 | + } | ||
| 139 | + }, | ||
| 140 | + created() { | ||
| 141 | + this.selectOptionData() | ||
| 142 | + }, | ||
| 143 | + mounted() { | ||
| 144 | + this.tableHeight = window.innerHeight - this.$refs.preMdeSelectForm.$el.offsetHeight - 150 | ||
| 145 | + this.select(0) | ||
| 146 | + }, | ||
| 147 | + watch: { | ||
| 148 | + $route(to, from) { | ||
| 149 | + if (to.name == 'PreMdeSelect') { | ||
| 150 | + this.selection() | ||
| 151 | + } | ||
| 152 | + } | ||
| 153 | + }, | ||
| 154 | + methods: { | ||
| 155 | + //查询条件 | ||
| 156 | + selectOptionData() { | ||
| 157 | + findDmPreMdeCondition().then(res => { | ||
| 158 | + if (res.code == 200) { | ||
| 159 | + this.selectData = res.data | ||
| 160 | + } else { | ||
| 161 | + this.msgWarning(res.msg) | ||
| 162 | + } | ||
| 163 | + }).catch(err => { | ||
| 164 | + console.log(err) | ||
| 165 | + }) | ||
| 166 | + }, | ||
| 167 | + //查询 | ||
| 168 | + select(val) { | ||
| 169 | + this.tableLoading = true | ||
| 170 | + let obj = JSON.parse(JSON.stringify(this.datainfo(this.formData))) | ||
| 171 | + if (this.accsDate != null && this.accsDate.length > 0) { | ||
| 172 | + obj.fltDateStart = this.accsDate[0] | ||
| 173 | + obj.fltDateEnd = this.accsDate[1] | ||
| 174 | + } else { | ||
| 175 | + obj.fltDateStart = null | ||
| 176 | + obj.fltDateEnd = null | ||
| 177 | + } | ||
| 178 | + findDmPreMdeData(obj).then(res => { | ||
| 179 | + this.tableLoading = false | ||
| 180 | + if (res.code == 200) { | ||
| 181 | + this.tableData = res.data.list | ||
| 182 | + this.totalCount = res.data.total | ||
| 183 | + } else { | ||
| 184 | + this.msgWarning(res.msg) | ||
| 185 | + } | ||
| 186 | + }).catch(err => { | ||
| 187 | + this.tableLoading = false | ||
| 188 | + console.log(err) | ||
| 189 | + }) | ||
| 190 | + }, | ||
| 191 | + //导出 | ||
| 192 | + downloadExcel() { | ||
| 193 | + this.downloading = true | ||
| 194 | + let data = this.datainfo(this.formData) | ||
| 195 | + if (this.accsDate != null && this.accsDate.length > 0) { | ||
| 196 | + data.fltDateStart = this.accsDate[0] | ||
| 197 | + data.fltDateEnd = this.accsDate[1] | ||
| 198 | + } else { | ||
| 199 | + data.fltDateStart = null | ||
| 200 | + data.fltDateEnd = null | ||
| 201 | + } | ||
| 202 | + downLoadXlsx("/dmPreMde/excel", data, "Pre-MDE查询表") | ||
| 203 | + .then(() => { | ||
| 204 | + this.downloading = false | ||
| 205 | + }) | ||
| 206 | + .catch(() => { | ||
| 207 | + this.downloading = false | ||
| 208 | + }); | ||
| 209 | + }, | ||
| 210 | + //数据处理 | ||
| 211 | + datainfo(val) { | ||
| 212 | + if (val.ursa && val.ursa != null && val.ursa != '') { | ||
| 213 | + val.ursa = val.ursa.toUpperCase().replace(/;/g, ';') | ||
| 214 | + } | ||
| 215 | + if (val.siteName && val.siteName != null && val.siteName != '') { | ||
| 216 | + val.siteName = val.siteName.toUpperCase().replace(/;/g, ';') | ||
| 217 | + } | ||
| 218 | + if (val.flightNo && val.flightNo != null && val.flightNo != '') { | ||
| 219 | + val.flightNo = val.flightNo.toUpperCase() | ||
| 220 | + } | ||
| 221 | + if (val.flightRoute && val.flightRoute != null && val.flightRoute != '') { | ||
| 222 | + val.flightRoute = val.flightRoute.toUpperCase() | ||
| 223 | + } | ||
| 224 | + if (val.regionArray != null && val.regionArray.length == 0) { | ||
| 225 | + val.regionArray = null | ||
| 226 | + } | ||
| 227 | + if (val.areaArray != null && val.areaArray.length == 0) { | ||
| 228 | + val.areaArray = null | ||
| 229 | + } | ||
| 230 | + if (val.serviceTypeArray != null && val.serviceTypeArray.length == 0) { | ||
| 231 | + val.serviceTypeArray = null | ||
| 232 | + } | ||
| 233 | + return val | ||
| 234 | + }, | ||
| 235 | + //翻页 | ||
| 236 | + currentChange(val) { | ||
| 237 | + this.formData.page = val.page | ||
| 238 | + this.select() | ||
| 239 | + } | ||
| 240 | + } | ||
| 241 | +} | ||
| 242 | +</script> | ||
| 243 | + | ||
| 244 | +<style> | ||
| 245 | + | ||
| 246 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
src/views/preMdeConfig/reportForm/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-form ref="reportForm" class="form-header" :model="formData" label-position="right" label-width="auto" | ||
| 4 | + size="small"> | ||
| 5 | + <el-row> | ||
| 6 | + <el-col :span="4"> | ||
| 7 | + <el-form-item label="取件日期"> | ||
| 8 | + <el-date-picker class="formItem" v-model="formData.pickUpDate" type="date" placeholder="选择日期" | ||
| 9 | + value-format="yyyy-MM-dd" clearable> | ||
| 10 | + </el-date-picker> | ||
| 11 | + </el-form-item> | ||
| 12 | + </el-col> | ||
| 13 | + <el-col :span="5"> | ||
| 14 | + <el-form-item label="区域"> | ||
| 15 | + <el-select v-model="formData.regionArray" class="formItem" filterable multiple clearable | ||
| 16 | + placeholder="不限"> | ||
| 17 | + <el-option v-for="item in selectOptionList.region" :label="item" :value="item" :key="item"> | ||
| 18 | + </el-option> | ||
| 19 | + </el-select> | ||
| 20 | + </el-form-item> | ||
| 21 | + </el-col> | ||
| 22 | + <el-col :span="5"> | ||
| 23 | + <el-form-item label="地区"> | ||
| 24 | + <el-select v-model="formData.areaArray" class="formItem" filterable multiple clearable | ||
| 25 | + placeholder="不限"> | ||
| 26 | + <el-option v-for="item in selectOptionList.area" :label="item" :value="item" :key="item"> | ||
| 27 | + </el-option> | ||
| 28 | + </el-select> | ||
| 29 | + </el-form-item> | ||
| 30 | + </el-col> | ||
| 31 | + <el-col :span="5"> | ||
| 32 | + <el-form-item label="URSA"> | ||
| 33 | + <el-select v-model="formData.ursas" class="formItem" filterable multiple clearable placeholder="不限"> | ||
| 34 | + <el-option v-for="item in selectOptionList.ursaList" :label="item" :value="item" :key="item"> | ||
| 35 | + </el-option> | ||
| 36 | + </el-select> | ||
| 37 | + </el-form-item> | ||
| 38 | + </el-col> | ||
| 39 | + <el-col :span="5"> | ||
| 40 | + <el-form-item label="Service Type"> | ||
| 41 | + <el-select v-model="formData.serviceTypeArray" class="formItem" filterable multiple clearable | ||
| 42 | + placeholder="不限"> | ||
| 43 | + <el-option v-for="item in selectOptionList.serviceType" :label="item.chineseName" | ||
| 44 | + :value="item.chineseName" :key="item.id"> | ||
| 45 | + </el-option> | ||
| 46 | + </el-select> | ||
| 47 | + </el-form-item> | ||
| 48 | + </el-col> | ||
| 49 | + </el-row> | ||
| 50 | + </el-form> | ||
| 51 | + <div class="ml20 mt20 mb20"> | ||
| 52 | + <el-button type="primary" icon="el-icon-search" size="small" :loading="loading" @click="select(0)">查 询 | ||
| 53 | + </el-button> | ||
| 54 | + </div> | ||
| 55 | + <div style="padding:10px"> | ||
| 56 | + <el-form label-position="right" label-width="auto" size="small"> | ||
| 57 | + <el-form-item label="类型"> | ||
| 58 | + <el-radio-group v-model="formData.dimensionName" @change="typeChange"> | ||
| 59 | + <el-radio label="region">区域</el-radio> | ||
| 60 | + <el-radio label="area">地区</el-radio> | ||
| 61 | + <el-radio label="ursa">URSA</el-radio> | ||
| 62 | + <el-radio label="serviceType">Service Type</el-radio> | ||
| 63 | + </el-radio-group> | ||
| 64 | + </el-form-item> | ||
| 65 | + </el-form> | ||
| 66 | + <div v-for="(item, index) in barChartData" :key="index"> | ||
| 67 | + <Chart :className="'chart' + index.toString()" :chartData="item" height="350px" style="margin-bottom:10px" | ||
| 68 | + :loading="loading" /> | ||
| 69 | + </div> | ||
| 70 | + </div> | ||
| 71 | + </div> | ||
| 72 | +</template> | ||
| 73 | + | ||
| 74 | +<script> | ||
| 75 | +import Chart from '@/components/echarts/echarts-series.vue' | ||
| 76 | +import { findDmPreMdeCondition, findPreMdeReport } from "@/api/preMdeConfig"; | ||
| 77 | + | ||
| 78 | +export default { | ||
| 79 | + components: { | ||
| 80 | + Chart | ||
| 81 | + }, | ||
| 82 | + data() { | ||
| 83 | + return { | ||
| 84 | + formData: { | ||
| 85 | + ursas: [], | ||
| 86 | + serviceTypeArray: [], | ||
| 87 | + regionArray: [], | ||
| 88 | + areaArray: [], | ||
| 89 | + pickUpDate: null, | ||
| 90 | + dimensionName: 'region', | ||
| 91 | + }, | ||
| 92 | + tableHeader: this.tableHeaders['report'], | ||
| 93 | + barChartData: [], | ||
| 94 | + selectOptionList: { | ||
| 95 | + ursaList: ["A_", "B_", "C_", "D_", "E_", "F_", "G_", "H_", "I_", "J_", "K_", "L_", "M_", "N_", "O_", "P_", "Q_", "R_", "S_", "T_", "U_", 'V_', "W_", "X_", "Y_", "Z_", '1_', '2_', '3_', '4_', '5_', '6_', '7_', '8_', '9_'], | ||
| 96 | + serviceType: [], | ||
| 97 | + region: [], | ||
| 98 | + area: [], | ||
| 99 | + }, | ||
| 100 | + tableHeight: null, | ||
| 101 | + totalCount: 10, | ||
| 102 | + loading: false | ||
| 103 | + } | ||
| 104 | + }, | ||
| 105 | + created() { | ||
| 106 | + this.formData.pickUpDate = this.nowDate() | ||
| 107 | + this.getOption() | ||
| 108 | + this.select() | ||
| 109 | + }, | ||
| 110 | + activated() { | ||
| 111 | + this.select() | ||
| 112 | + }, | ||
| 113 | + mounted() { | ||
| 114 | + this.tableHeight = window.innerHeight - this.$refs.reportForm.$el.offsetHeight - 240 | ||
| 115 | + }, | ||
| 116 | + methods: { | ||
| 117 | + getOption() { | ||
| 118 | + findDmPreMdeCondition().then(res => { | ||
| 119 | + if (res.code === 200) { | ||
| 120 | + this.selectOptionList.serviceType = res.data.serviceType | ||
| 121 | + this.selectOptionList.region = res.data.region | ||
| 122 | + this.selectOptionList.area = res.data.area | ||
| 123 | + } else { | ||
| 124 | + this.msgWarning(res.msg) | ||
| 125 | + } | ||
| 126 | + }).catch(err => { | ||
| 127 | + console.log(err) | ||
| 128 | + }) | ||
| 129 | + }, | ||
| 130 | + select(val) { | ||
| 131 | + this.loading = true | ||
| 132 | + let obj = {} | ||
| 133 | + if (this.formData.ursas.length > 0) { | ||
| 134 | + obj.ursas = this.formData.ursas | ||
| 135 | + } else { | ||
| 136 | + obj.ursas = null | ||
| 137 | + } | ||
| 138 | + if (this.formData.serviceTypeArray.length > 0) { | ||
| 139 | + obj.serviceTypeArray = this.formData.serviceTypeArray | ||
| 140 | + } else { | ||
| 141 | + obj.serviceTypeArray = null | ||
| 142 | + } | ||
| 143 | + if (this.formData.regionArray.length > 0) { | ||
| 144 | + obj.regionArray = this.formData.regionArray | ||
| 145 | + } else { | ||
| 146 | + obj.regionArray = null | ||
| 147 | + } | ||
| 148 | + if (this.formData.areaArray.length > 0) { | ||
| 149 | + obj.areaArray = this.formData.areaArray | ||
| 150 | + } else { | ||
| 151 | + obj.areaArray = null | ||
| 152 | + } | ||
| 153 | + obj.pickUpDate = this.formData.pickUpDate | ||
| 154 | + obj.dimensionName = this.formData.dimensionName | ||
| 155 | + findPreMdeReport(obj).then(res => { | ||
| 156 | + this.loading = false | ||
| 157 | + if (res.code === 200) { | ||
| 158 | + if (res.data.dimensionList && res.data.dimensionList.length > 0) { | ||
| 159 | + this.dataHandle(res.data.dimensionList, 8) | ||
| 160 | + } else { | ||
| 161 | + this.msgWarning('未查询到数据') | ||
| 162 | + } | ||
| 163 | + } else { | ||
| 164 | + this.msgWarning(res.msg) | ||
| 165 | + } | ||
| 166 | + }).catch(err => { | ||
| 167 | + this.loading = false | ||
| 168 | + console.log(err) | ||
| 169 | + }) | ||
| 170 | + }, | ||
| 171 | + typeChange(val) { | ||
| 172 | + this.select() | ||
| 173 | + }, | ||
| 174 | + dataHandle(val, num) { | ||
| 175 | + this.barChartData = [] | ||
| 176 | + let obj = { | ||
| 177 | + names: [], | ||
| 178 | + data1: [], | ||
| 179 | + data2: [], | ||
| 180 | + data3: [] | ||
| 181 | + } | ||
| 182 | + val.forEach(item => { | ||
| 183 | + obj.names.push(item.name) | ||
| 184 | + obj.data1.push(item.totalPcs) | ||
| 185 | + obj.data2.push(item.total) | ||
| 186 | + obj.data3.push(item.totalWeight) | ||
| 187 | + }) | ||
| 188 | + this.arrList(obj.names, num).forEach((item, index) => { | ||
| 189 | + let objItem = { | ||
| 190 | + names: [], | ||
| 191 | + data1: [], | ||
| 192 | + data2: [], | ||
| 193 | + data3: [], | ||
| 194 | + } | ||
| 195 | + objItem.names = item | ||
| 196 | + objItem.data1 = this.arrList(obj.data1, num)[index] | ||
| 197 | + objItem.data2 = this.arrList(obj.data2, num)[index] | ||
| 198 | + objItem.data3 = this.arrList(obj.data3, num)[index] | ||
| 199 | + this.barChartData.push(objItem) | ||
| 200 | + }) | ||
| 201 | + }, | ||
| 202 | + arrList(list, last) { | ||
| 203 | + let index = 0 | ||
| 204 | + let arr = [] | ||
| 205 | + if (list.length < last) { | ||
| 206 | + arr.push(list) | ||
| 207 | + } else { | ||
| 208 | + while (index < list.length) { | ||
| 209 | + arr.push(list.slice(index, index += last)) | ||
| 210 | + index++ | ||
| 211 | + } | ||
| 212 | + } | ||
| 213 | + return arr | ||
| 214 | + }, | ||
| 215 | + currentChange(val) { | ||
| 216 | + this.formData.page = val.page | ||
| 217 | + this.select() | ||
| 218 | + } | ||
| 219 | + } | ||
| 220 | + | ||
| 221 | +} | ||
| 222 | +</script> | ||
| 223 | + | ||
| 224 | +<style></style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -4,9 +4,11 @@ | ... | @@ -4,9 +4,11 @@ |
| 4 | <!-- <el-table-column label="行号" prop="line" width="50" align="center"> | 4 | <!-- <el-table-column label="行号" prop="line" width="50" align="center"> |
| 5 | </el-table-column> --> | 5 | </el-table-column> --> |
| 6 | <el-table-column label="序号" type="index" width="70" align="center" /> | 6 | <el-table-column label="序号" type="index" width="70" align="center" /> |
| 7 | + <el-table-column label="运单号" prop="waybillNo" width="150" v-if="fromRoute == 'queryCargo'" /> | ||
| 7 | <el-table-column label="错误信息" prop="errorMessage"> | 8 | <el-table-column label="错误信息" prop="errorMessage"> |
| 8 | <template slot-scope="scope"> | 9 | <template slot-scope="scope"> |
| 9 | - {{scope.row}} | 10 | + <span v-if="fromRoute == 'queryCargo'">{{ scope.row.errorMessage }}</span> |
| 11 | + <span v-else> {{ scope.row }}</span> | ||
| 10 | <!-- <div v-for="(m, key) in scope.row.errorMessage" :key="key"> | 12 | <!-- <div v-for="(m, key) in scope.row.errorMessage" :key="key"> |
| 11 | {{ m }} | 13 | {{ m }} |
| 12 | </div> --> | 14 | </div> --> |
| ... | @@ -31,17 +33,16 @@ export default { | ... | @@ -31,17 +33,16 @@ export default { |
| 31 | } | 33 | } |
| 32 | }, | 34 | }, |
| 33 | created() { | 35 | created() { |
| 34 | - this.tableData = this.$route.params.data | 36 | + this.tableData = this.$route.query.data |
| 35 | - this.fromRoute = this.$route.params.from | 37 | + this.fromRoute = this.$route.query.from |
| 36 | }, | 38 | }, |
| 37 | - wactch: { | 39 | + activated() { |
| 38 | - dialogVisible(val) { | 40 | + this.tableData = this.$route.query.data |
| 39 | - if (val) { | 41 | + this.fromRoute = this.$route.query.from |
| 40 | - } | ||
| 41 | - } | ||
| 42 | }, | 42 | }, |
| 43 | methods: { | 43 | methods: { |
| 44 | close() { | 44 | close() { |
| 45 | + this.$store.dispatch('tagsView/delView', this.$route) | ||
| 45 | this.$store.state.tagsView.visitedViews.splice( | 46 | this.$store.state.tagsView.visitedViews.splice( |
| 46 | this.$store.state.tagsView.visitedViews.findIndex( | 47 | this.$store.state.tagsView.visitedViews.findIndex( |
| 47 | (item) => item.path === this.$route.path | 48 | (item) => item.path === this.$route.path |
| ... | @@ -53,6 +54,4 @@ export default { | ... | @@ -53,6 +54,4 @@ export default { |
| 53 | } | 54 | } |
| 54 | </script> | 55 | </script> |
| 55 | 56 | ||
| 56 | -<style lang="scss" scoped> | ||
| 57 | - | ||
| 58 | -</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 57 | +<style lang="scss" scoped></style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
src/views/preMdeConfig/ursaToArea/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div style="margin: 20px"> | ||
| 3 | + <el-form ref="selectForm" :model="formData" class="form-header" label-position="right" label-width="auto" | ||
| 4 | + size="small"> | ||
| 5 | + <el-row :gutter="10"> | ||
| 6 | + <el-col :span="6"> | ||
| 7 | + <el-form-item label="URSA"> | ||
| 8 | + <el-input type="textarea" v-model="formData.ursa" placeholder="URSA之间用分号分隔,例:F2;F3;P_" rows="2"> | ||
| 9 | + </el-input> | ||
| 10 | + </el-form-item> | ||
| 11 | + </el-col> | ||
| 12 | + <el-col :span="6"> | ||
| 13 | + <el-form-item label="地区"> | ||
| 14 | + <el-input type="text" v-model="formData.area" placeholder="请输入地区"></el-input> | ||
| 15 | + </el-form-item> | ||
| 16 | + </el-col> | ||
| 17 | + <el-col :span="4"> | ||
| 18 | + <el-button type="primary" size="small" icon="el-icon-search" :loading="tableLoading" | ||
| 19 | + @click="selection(1)"> | ||
| 20 | + 查询</el-button> | ||
| 21 | + </el-col> | ||
| 22 | + </el-row> | ||
| 23 | + <el-row> | ||
| 24 | + <el-col :span="20"> | ||
| 25 | + <el-row> | ||
| 26 | + <el-col :span="6"> | ||
| 27 | + <el-form-item label="生效日期" prop="beginDate" :rules="rules"> | ||
| 28 | + <el-date-picker class="formItem" v-model="formData.beginDate" type="date" placeholder="选择日期" | ||
| 29 | + value-format="yyyy-MM-dd" clearable> | ||
| 30 | + </el-date-picker> | ||
| 31 | + </el-form-item> | ||
| 32 | + </el-col> | ||
| 33 | + <el-col :span="12"> | ||
| 34 | + <el-upload action="/flightInfoImport/importFlight" name="file" :http-request="uploadExcel" | ||
| 35 | + :on-remove="handleRemove" :limit="1" :on-exceed="handleExceed" :file-list="fileList" | ||
| 36 | + accept=".xlsx" class="upload-demo" v-hasPermi="['base:flightImport:importFlight']" | ||
| 37 | + :disabled="formData.beginDate == null"> | ||
| 38 | + <el-button type="primary" icon="el-icon-upload2" size="small" @click="upload">导入Excel | ||
| 39 | + </el-button> | ||
| 40 | + </el-upload> | ||
| 41 | + </el-col> | ||
| 42 | + </el-row> | ||
| 43 | + </el-col> | ||
| 44 | + </el-row> | ||
| 45 | + </el-form> | ||
| 46 | + <div style="width:100%;display: flex;margin-bottom:10px"> | ||
| 47 | + <!-- <el-button type="primary" size="small" icon="el-icon-search" :loading="tableLoading" @click="selection(1)"> | ||
| 48 | + 查询</el-button> --> | ||
| 49 | + <el-button type="primary" icon="el-icon-download" size="small" @click="downloadTempleate" | ||
| 50 | + v-hasPermi="['base:flightImport:exportExcel']"> | ||
| 51 | + 下载模板 | ||
| 52 | + </el-button> | ||
| 53 | + </div> | ||
| 54 | + <Tables ref="flightToArea" ductName="flightToArea" :selection="false" :selectFixed="false" :order='true' | ||
| 55 | + :height="tableHeight" :data="tableData" :headerData="tableHeaders" :page="formData.page" :pageSizes="[20]" | ||
| 56 | + :totalCount="total" :loading="tableLoading" @currentChange="currentChange" | ||
| 57 | + layout="total,prev, pager, next, jumper, ->"> | ||
| 58 | + </Tables> | ||
| 59 | + </div> | ||
| 60 | +</template> | ||
| 61 | + | ||
| 62 | +<script> | ||
| 63 | +import { | ||
| 64 | + downLoadTemplate, | ||
| 65 | + importUrsaDestination, | ||
| 66 | + searchUrsaDestination | ||
| 67 | +} from "@/api/preMdeConfig"; | ||
| 68 | +import settings from "@/settings" | ||
| 69 | + | ||
| 70 | +export default { | ||
| 71 | + name: "UrsaToArea", | ||
| 72 | + data() { | ||
| 73 | + return { | ||
| 74 | + formData: { | ||
| 75 | + ursa: null, | ||
| 76 | + area: null, | ||
| 77 | + page: 1, | ||
| 78 | + }, | ||
| 79 | + tableData: [], | ||
| 80 | + errorData: [], | ||
| 81 | + tableHeaders: this.tableHeaders['ursaToArea'], | ||
| 82 | + tableHeight: null, | ||
| 83 | + total: 0, | ||
| 84 | + flightType: [], | ||
| 85 | + form: { | ||
| 86 | + type: "", | ||
| 87 | + region: "", | ||
| 88 | + }, | ||
| 89 | + rules: { | ||
| 90 | + validator: (rule, value, callback) => { | ||
| 91 | + if (this.formData.beginDate == null) { | ||
| 92 | + callback(new Error('上传前请选择生效时间')) | ||
| 93 | + } | ||
| 94 | + }, | ||
| 95 | + trigger: 'change' | ||
| 96 | + }, | ||
| 97 | + fileList: [], | ||
| 98 | + tableLoading: false, | ||
| 99 | + }; | ||
| 100 | + }, | ||
| 101 | + created() { | ||
| 102 | + }, | ||
| 103 | + mounted() { | ||
| 104 | + this.tableHeight = window.innerHeight - this.$refs.selectForm.$el.offsetHeight - 170 | ||
| 105 | + this.selection(1) | ||
| 106 | + }, | ||
| 107 | + activated() { | ||
| 108 | + }, | ||
| 109 | + methods: { | ||
| 110 | + selection(val) { | ||
| 111 | + this.tableData = [] | ||
| 112 | + this.tableLoading = true | ||
| 113 | + if (val === 1) { | ||
| 114 | + this.formData.page = 1 | ||
| 115 | + } | ||
| 116 | + let obj = { | ||
| 117 | + area: this.formData.area, | ||
| 118 | + page: this.formData.page, | ||
| 119 | + size: 20 | ||
| 120 | + } | ||
| 121 | + if (this.formData.ursa && this.formData.ursa != null && this.formData.ursa != '') { | ||
| 122 | + obj.ursa = this.formData.ursa.split(';') | ||
| 123 | + } else { | ||
| 124 | + obj.ursa = null | ||
| 125 | + } | ||
| 126 | + if (obj.area == '') { | ||
| 127 | + obj.area = null | ||
| 128 | + } | ||
| 129 | + searchUrsaDestination(obj).then(res => { | ||
| 130 | + this.tableLoading = false | ||
| 131 | + if (res.code === 200) { | ||
| 132 | + this.tableData = res.data.list | ||
| 133 | + this.total = res.data.total | ||
| 134 | + } else { | ||
| 135 | + this.msgWarning(res.msg) | ||
| 136 | + } | ||
| 137 | + }).catch(err => { | ||
| 138 | + this.tableLoading = false | ||
| 139 | + console.log(err) | ||
| 140 | + }) | ||
| 141 | + }, | ||
| 142 | + downloadTempleate() { | ||
| 143 | + let downloadType = "ursaDestination"; | ||
| 144 | + let fileName = "URSA目的地模板.xlsx"; | ||
| 145 | + downLoadTemplate(downloadType).then((res) => { | ||
| 146 | + if (res) { | ||
| 147 | + const blob = new Blob([res]); | ||
| 148 | + const link = document.createElement("a"); //创建a标签 | ||
| 149 | + link.download = fileName; //a标签添加属性 | ||
| 150 | + link.style.display = "none"; | ||
| 151 | + link.href = URL.createObjectURL(blob); | ||
| 152 | + document.body.appendChild(link); | ||
| 153 | + link.click(); //执行下载 | ||
| 154 | + URL.revokeObjectURL(link.href); //释放url | ||
| 155 | + document.body.removeChild(link); //释放标签 | ||
| 156 | + } else { | ||
| 157 | + this.$message.error("下载失败"); | ||
| 158 | + } | ||
| 159 | + }); | ||
| 160 | + }, | ||
| 161 | + uploadExcel(option) { | ||
| 162 | + //上传excel | ||
| 163 | + const file = option.file; | ||
| 164 | + importUrsaDestination(file, this.formData.beginDate).then((res) => { | ||
| 165 | + if (res.code != 200) { | ||
| 166 | + if (res.code == 603) { | ||
| 167 | + this.$alert(res.msg, "提示", { | ||
| 168 | + confirmButtonText: "确定", | ||
| 169 | + type: "warning", | ||
| 170 | + }); | ||
| 171 | + } else if (res.code === 201) { | ||
| 172 | + this.msgWarning(res.msg); | ||
| 173 | + this.errorData = res.data; | ||
| 174 | + this.$router.push({ name: 'UpDateResult', query: { data: this.errorData, from: 'FlightInformationImport' } }) | ||
| 175 | + } else { | ||
| 176 | + this.msgWarning(res.msg); | ||
| 177 | + } | ||
| 178 | + } else { | ||
| 179 | + this.msgSuccess("导入成功"); | ||
| 180 | + this.selection(1) | ||
| 181 | + } | ||
| 182 | + }); | ||
| 183 | + }, | ||
| 184 | + handleRemove(file, fileList) { | ||
| 185 | + //清掉上传的文件 | ||
| 186 | + this.fileList = []; | ||
| 187 | + this.selection() | ||
| 188 | + }, | ||
| 189 | + handleExceed(files) { | ||
| 190 | + //重复上传文件 | ||
| 191 | + let file = {}; | ||
| 192 | + file.file = files[0]; | ||
| 193 | + file.name = files[0].name; | ||
| 194 | + this.fileList = []; | ||
| 195 | + this.fileList.push(file); | ||
| 196 | + this.uploadExcel(file); | ||
| 197 | + }, | ||
| 198 | + currentChange(val) { | ||
| 199 | + this.formData.page = val.page | ||
| 200 | + this.selection() | ||
| 201 | + }, | ||
| 202 | + upload() { | ||
| 203 | + this.$refs.selectForm.validateField('beginDate') | ||
| 204 | + } | ||
| 205 | + }, | ||
| 206 | +}; | ||
| 207 | +</script> | ||
| 208 | +<style rel="stylesheet/scss" lang="scss"> | ||
| 209 | +.upload-demo { | ||
| 210 | + display: flex; | ||
| 211 | + margin-left: 10px; | ||
| 212 | + float: none !important; | ||
| 213 | +} | ||
| 214 | + | ||
| 215 | +.el-upload-list { | ||
| 216 | + display: inline-block; | ||
| 217 | + margin-left: 10px; | ||
| 218 | + vertical-align: top; | ||
| 219 | +} | ||
| 220 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | 1 | <template> |
| 2 | <div> | 2 | <div> |
| 3 | <el-dialog :title="title" :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" | 3 | <el-dialog :title="title" :visible.sync="open" width="25%" :close-on-click-modal="false" :show-close="false" |
| 4 | - append-to-body center> | 4 | + @close="close" append-to-body center> |
| 5 | <el-form ref="add" :model="newDictionary" label-width="auto" label-position="left" size="small" | 5 | <el-form ref="add" :model="newDictionary" label-width="auto" label-position="left" size="small" |
| 6 | :rules="rules" @submit.native.prevent> | 6 | :rules="rules" @submit.native.prevent> |
| 7 | <!-- 新增虚拟航班 --> | 7 | <!-- 新增虚拟航班 --> |
| ... | @@ -26,13 +26,16 @@ | ... | @@ -26,13 +26,16 @@ |
| 26 | <div v-else-if="dictName == '航线'"> | 26 | <div v-else-if="dictName == '航线'"> |
| 27 | <div v-if="status == 'add'"> | 27 | <div v-if="status == 'add'"> |
| 28 | <el-form-item label="航班号" prop="fltNo"> | 28 | <el-form-item label="航班号" prop="fltNo"> |
| 29 | - <el-input type="text" v-model="newDictionary.fltNo" placeholder="请输入航班号" maxlength="50"> | 29 | + <el-input type="text" v-model="newDictionary.fltNo" placeholder="请输入航班号" maxlength="20"> |
| 30 | </el-input> | 30 | </el-input> |
| 31 | </el-form-item> | 31 | </el-form-item> |
| 32 | <el-form-item label="航线" prop="route"> | 32 | <el-form-item label="航线" prop="route"> |
| 33 | <el-input type="text" v-model="newDictionary.route" placeholder="请输入航线" maxlength="40"> | 33 | <el-input type="text" v-model="newDictionary.route" placeholder="请输入航线" maxlength="40"> |
| 34 | </el-input> | 34 | </el-input> |
| 35 | </el-form-item> | 35 | </el-form-item> |
| 36 | + <el-form-item> | ||
| 37 | + <div style="color:#ff4949;line-height: 30px;">注意:此处不能添加虚拟航班!</div> | ||
| 38 | + </el-form-item> | ||
| 36 | </div> | 39 | </div> |
| 37 | <div v-else-if="status == 'sort'"> | 40 | <div v-else-if="status == 'sort'"> |
| 38 | <el-form-item label="航班号" prop="fltNo"> | 41 | <el-form-item label="航班号" prop="fltNo"> |
| ... | @@ -81,7 +84,8 @@ | ... | @@ -81,7 +84,8 @@ |
| 81 | </template> | 84 | </template> |
| 82 | 85 | ||
| 83 | <script> | 86 | <script> |
| 84 | -import { addDict, addDictBatch, addServiceCodeBatch, addFlight, addRoute, queryRoute, orderRoute } from '@/api/system/dictionary.js' | 87 | +import { addDict, addDictBatch, addServiceCodeBatch, addFlight, addRoute, orderRoute } from '@/api/system/dictionary.js' |
| 88 | +import { queryRouteByFltNo } from "@/api/destinationFlight" | ||
| 85 | 89 | ||
| 86 | export default { | 90 | export default { |
| 87 | props: { | 91 | props: { |
| ... | @@ -154,7 +158,7 @@ export default { | ... | @@ -154,7 +158,7 @@ export default { |
| 154 | } else if (this.status == 'sort') { | 158 | } else if (this.status == 'sort') { |
| 155 | this.newDictionary = this.addDictionary.serviceCodeKey | 159 | this.newDictionary = this.addDictionary.serviceCodeKey |
| 156 | this.title = '航线排序' | 160 | this.title = '航线排序' |
| 157 | - queryRoute({ fltNo: this.newDictionary.fltNo }).then(res => { | 161 | + queryRouteByFltNo({ fltNo: this.newDictionary.fltNo }).then(res => { |
| 158 | if (res.code === 200) { | 162 | if (res.code === 200) { |
| 159 | this.routeList = res.data.list | 163 | this.routeList = res.data.list |
| 160 | } else { | 164 | } else { |
| ... | @@ -377,4 +381,5 @@ export default { | ... | @@ -377,4 +381,5 @@ export default { |
| 377 | </script> | 381 | </script> |
| 378 | 382 | ||
| 379 | <style> | 383 | <style> |
| 384 | + | ||
| 380 | </style> | 385 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -4,8 +4,8 @@ | ... | @@ -4,8 +4,8 @@ |
| 4 | <!-- cardHeader --> | 4 | <!-- cardHeader --> |
| 5 | <div slot="header" class="clearfix"> | 5 | <div slot="header" class="clearfix"> |
| 6 | <span style="font-size:16px;font-weight:700">{{ (tableName == '航线' ? '航线' : tableName == 'Site' ? '站点' : | 6 | <span style="font-size:16px;font-weight:700">{{ (tableName == '航线' ? '航线' : tableName == 'Site' ? '站点' : |
| 7 | - tableName == | 7 | + tableName == |
| 8 | - '虚拟航班' ? '虚拟航班' : tableName.replace(/( |^)[a-z]/g, L => L.toUpperCase())) + "表" | 8 | + '虚拟航班' ? '虚拟航班' : tableName.replace(/( |^)[a-z]/g, L => L.toUpperCase())) + "表" |
| 9 | }}</span> | 9 | }}</span> |
| 10 | <div style="float: right; padding: 3px 0"> | 10 | <div style="float: right; padding: 3px 0"> |
| 11 | <span class="selectLabel mr10">切换字典表</span> | 11 | <span class="selectLabel mr10">切换字典表</span> |
| ... | @@ -96,7 +96,7 @@ | ... | @@ -96,7 +96,7 @@ |
| 96 | <template v-slot:fltNo="scope"> | 96 | <template v-slot:fltNo="scope"> |
| 97 | <el-link type="primary" @click="addDic({ data: scope.row, status: 'sort' })"> | 97 | <el-link type="primary" @click="addDic({ data: scope.row, status: 'sort' })"> |
| 98 | {{ | 98 | {{ |
| 99 | - scope.row.fltNo | 99 | + scope.row.fltNo |
| 100 | }}<i class="el-icon-link"></i> </el-link> | 100 | }}<i class="el-icon-link"></i> </el-link> |
| 101 | </template> | 101 | </template> |
| 102 | <template slot="optionColumn"> | 102 | <template slot="optionColumn"> |
| ... | @@ -314,7 +314,6 @@ export default { | ... | @@ -314,7 +314,6 @@ export default { |
| 314 | }, | 314 | }, |
| 315 | //修改 | 315 | //修改 |
| 316 | // upDate(val) { | 316 | // upDate(val) { |
| 317 | - // console.log(val) | ||
| 318 | // this.status = val.status | 317 | // this.status = val.status |
| 319 | // this.addDictionary = val.data | 318 | // this.addDictionary = val.data |
| 320 | // this.open = true | 319 | // this.open = true | ... | ... |
src/views/systemConfig/menuConfig/drawer.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div class="menuDrawer"> | ||
| 3 | + <el-dialog :title="drawerTitle" width="50%" :visible.sync="dialogVisible" :close-on-click-modal="false" | ||
| 4 | + :show-close="false" :append-to-body="true" @close="handleClose"> | ||
| 5 | + <el-form ref="userForm" :model="menuForm" :disabled="menuFormDisabled" :rules="rules" label-width="auto" | ||
| 6 | + style="margin: 10px"> | ||
| 7 | + <el-row> | ||
| 8 | + <el-col :span="12"> | ||
| 9 | + <el-form-item label="菜单名称" prop=""> | ||
| 10 | + <!-- <el-input | ||
| 11 | + placeholder="请输入权限名" | ||
| 12 | + :disabled="menuFormDisabled" | ||
| 13 | + v-model="menuData.userName" | ||
| 14 | + size="mini" | ||
| 15 | + ></el-input> --> | ||
| 16 | + </el-form-item> | ||
| 17 | + </el-col> | ||
| 18 | + <el-col :span="12"> | ||
| 19 | + <el-form-item label="菜单路由" prop=""> | ||
| 20 | + <!-- <el-input | ||
| 21 | + placeholder="请输入权限名" | ||
| 22 | + :disabled="menuFormDisabled" | ||
| 23 | + v-model="menuData.userName" | ||
| 24 | + size="mini" | ||
| 25 | + ></el-input> --> | ||
| 26 | + </el-form-item> | ||
| 27 | + </el-col> | ||
| 28 | + <el-col :span="12"> | ||
| 29 | + <el-form-item label="组件名称" prop=""> | ||
| 30 | + <!-- <el-input | ||
| 31 | + placeholder="请输入权限名" | ||
| 32 | + :disabled="menuFormDisabled" | ||
| 33 | + v-model="menuData.userName" | ||
| 34 | + size="mini" | ||
| 35 | + ></el-input> --> | ||
| 36 | + </el-form-item> | ||
| 37 | + </el-col> | ||
| 38 | + <el-col :span="24"> | ||
| 39 | + <el-form-item label="菜单状态" prop=""> | ||
| 40 | + <el-switch v-model="menuData.menuStatus" active-color="#13ce66" inactive-color="#ff4949" | ||
| 41 | + :disabled="menuFormDisabled"></el-switch> | ||
| 42 | + </el-form-item> | ||
| 43 | + </el-col> | ||
| 44 | + <el-col :span="24"> | ||
| 45 | + <el-form-item label="图标选择" prop=""> | ||
| 46 | + <iconSelect @selected="selected"></iconSelect> | ||
| 47 | + </el-form-item> | ||
| 48 | + </el-col> | ||
| 49 | + <el-col :span="24"> | ||
| 50 | + <el-form-item label="权限设置" prop=""> | ||
| 51 | + <el-col :span="6"> | ||
| 52 | + <el-radio label="页面" size="medium"></el-radio> | ||
| 53 | + </el-col> | ||
| 54 | + <el-col :span="6"> | ||
| 55 | + <el-radio label="按钮" size="medium"></el-radio> | ||
| 56 | + </el-col> | ||
| 57 | + <el-col :span="24"> | ||
| 58 | + <el-card shadow="never"> | ||
| 59 | + <el-input placeholder=""></el-input> | ||
| 60 | + </el-card> | ||
| 61 | + </el-col> | ||
| 62 | + </el-form-item> | ||
| 63 | + </el-col> | ||
| 64 | + </el-row> | ||
| 65 | + </el-form> | ||
| 66 | + | ||
| 67 | + <div slot="footer"> | ||
| 68 | + <el-button @click="handleClose">取 消</el-button> | ||
| 69 | + <el-button type="primary" @click="submit">确 定</el-button> | ||
| 70 | + </div> | ||
| 71 | + </el-dialog> | ||
| 72 | + </div> | ||
| 73 | +</template> | ||
| 74 | + | ||
| 75 | +<script> | ||
| 76 | +import iconSelect from "@/components/IconSelect"; | ||
| 77 | +export default { | ||
| 78 | + components: { | ||
| 79 | + iconSelect, | ||
| 80 | + }, | ||
| 81 | + props: { | ||
| 82 | + drawerTitle: { | ||
| 83 | + type: String, | ||
| 84 | + default: "", | ||
| 85 | + }, | ||
| 86 | + menuFormDisabled: { | ||
| 87 | + type: Boolean, | ||
| 88 | + default: false, | ||
| 89 | + }, | ||
| 90 | + dialogVisible: { | ||
| 91 | + type: Boolean, | ||
| 92 | + default: false, | ||
| 93 | + }, | ||
| 94 | + menuData: { | ||
| 95 | + type: Object, | ||
| 96 | + default: null, | ||
| 97 | + }, | ||
| 98 | + }, | ||
| 99 | + data() { | ||
| 100 | + return { | ||
| 101 | + menuForm: {}, | ||
| 102 | + rules: {} | ||
| 103 | + }; | ||
| 104 | + }, | ||
| 105 | + updated() { | ||
| 106 | + this.menuForm = this.menuData; | ||
| 107 | + }, | ||
| 108 | + watch: { | ||
| 109 | + dialogVisible(val, oldVal) { | ||
| 110 | + if (val) { | ||
| 111 | + this.menuForm = this.menuData; | ||
| 112 | + } | ||
| 113 | + } | ||
| 114 | + }, | ||
| 115 | + methods: { | ||
| 116 | + handleClose() { | ||
| 117 | + this.$emit("handleClose", false); | ||
| 118 | + }, | ||
| 119 | + selected(val) { | ||
| 120 | + console.log(val); | ||
| 121 | + }, | ||
| 122 | + submit() { }, | ||
| 123 | + }, | ||
| 124 | +}; | ||
| 125 | +</script> | ||
| 126 | + | ||
| 127 | +<style> | ||
| 128 | + | ||
| 129 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -44,9 +44,13 @@ | ... | @@ -44,9 +44,13 @@ |
| 44 | <script> | 44 | <script> |
| 45 | import { getAllAuth, updateStatus } from "@/api/system/user.js"; | 45 | import { getAllAuth, updateStatus } from "@/api/system/user.js"; |
| 46 | import dictLabels from "@/assets/languages/dictLabels.js"; | 46 | import dictLabels from "@/assets/languages/dictLabels.js"; |
| 47 | +import Drawer from "./drawer.vue"; | ||
| 47 | 48 | ||
| 48 | export default { | 49 | export default { |
| 49 | name: "MenuConfig", | 50 | name: "MenuConfig", |
| 51 | + components: { | ||
| 52 | + Drawer, | ||
| 53 | + }, | ||
| 50 | data() { | 54 | data() { |
| 51 | return { | 55 | return { |
| 52 | drawer: false, | 56 | drawer: false, | ... | ... |
| 1 | <template> | 1 | <template> |
| 2 | <div class="roleDrawer"> | 2 | <div class="roleDrawer"> |
| 3 | <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" destroy-on-close | 3 | <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" destroy-on-close |
| 4 | - :close-on-click-modal="false" :wrapperClosable="false" :show-close="false"> | 4 | + :close-on-click-modal="false" :wrapperClosable="false" :show-close="false" @close="handleClose"> |
| 5 | <el-form ref="roleForm" :model="roleForm" label-width="auto" :rules="rules" size="mini" style="margin: 10px" | 5 | <el-form ref="roleForm" :model="roleForm" label-width="auto" :rules="rules" size="mini" style="margin: 10px" |
| 6 | @submit.native.prevent> | 6 | @submit.native.prevent> |
| 7 | <el-row :gutter="10"> | 7 | <el-row :gutter="10"> |
| ... | @@ -176,4 +176,5 @@ export default { | ... | @@ -176,4 +176,5 @@ export default { |
| 176 | </script> | 176 | </script> |
| 177 | 177 | ||
| 178 | <style> | 178 | <style> |
| 179 | + | ||
| 179 | </style> | 180 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-dialog :title="title" :visible.sync="dialogVisible" width="60%" top="8vh" :before-close="close" | ||
| 4 | + append-to-body :close-on-click-modal="false" @submit.native.prevent @close="close"> | ||
| 5 | + <el-form class="form-header" ref="superAllocationForm" :model="formData" label-width="auto" | ||
| 6 | + label-position="left" style="margin-bottom:10px" @submit.native.prevent size="small" :rules="rules"> | ||
| 7 | + <el-row> | ||
| 8 | + <el-col :span="22"> | ||
| 9 | + <el-form-item label="发件人账号" prop="shipperAccount"> | ||
| 10 | + <el-input type="textarea" v-model="formData.shipperAccount" placeholder="请输入发件人账号,多个以“;”分割" | ||
| 11 | + maxlength="50" rows="4" :disabled="disabled" /> | ||
| 12 | + </el-form-item> | ||
| 13 | + </el-col> | ||
| 14 | + <el-col :span="12"> | ||
| 15 | + <el-form-item label="航班号" prop="flightNo"> | ||
| 16 | + <el-input class="formItem" ref="flightNoFormItem" v-focus v-model="formData.flightNo" | ||
| 17 | + maxlength="20" placeholder="请输入航班号" @change="getRoute" :disabled="disabled"> | ||
| 18 | + </el-input> | ||
| 19 | + </el-form-item> | ||
| 20 | + </el-col> | ||
| 21 | + <el-col :span="12"> | ||
| 22 | + <el-form-item label="航班日期" prop="flightDate"> | ||
| 23 | + <el-date-picker class="formItem" v-model="formData.flightDate" type="date" | ||
| 24 | + placeholder="选择日期" value-format="yyyy-MM-dd" @change="getRoute" :disabled="disabled"> | ||
| 25 | + </el-date-picker> | ||
| 26 | + </el-form-item> | ||
| 27 | + </el-col> | ||
| 28 | + </el-row> | ||
| 29 | + <el-row> | ||
| 30 | + <el-col :span="12"> | ||
| 31 | + <el-form-item label="航线" prop="flightRoute"> | ||
| 32 | + <el-select class="formItem" v-model="formData.flightRoute" placeholder="未设置" | ||
| 33 | + :loading="routeLoading" :disabled="routeList.length == 0 || disabled" | ||
| 34 | + @change="routeChange"> | ||
| 35 | + <el-option v-for="(item, index) in routeList" :label="item.route" :value="item.route" | ||
| 36 | + :key="item.id"> | ||
| 37 | + <Tooltips :content="item.route" :refName="item.route"></Tooltips> | ||
| 38 | + </el-option> | ||
| 39 | + </el-select> | ||
| 40 | + </el-form-item> | ||
| 41 | + </el-col> | ||
| 42 | + <el-col :span="12"> | ||
| 43 | + <el-form-item label="预留舱位(KG)" prop="groupAllWeight"> | ||
| 44 | + <el-input class="formItem" v-model="formData.groupAllWeight" placeholder="请输入预留舱位" | ||
| 45 | + oninput="value=value.replace(/[^\d\.\-]/g,'')"> | ||
| 46 | + </el-input> | ||
| 47 | + </el-form-item> | ||
| 48 | + </el-col> | ||
| 49 | + </el-row> | ||
| 50 | + <el-row> | ||
| 51 | + <el-col :span="12"> | ||
| 52 | + <el-form-item label="URSA包含" prop="includeUrsa"> | ||
| 53 | + <el-input class="formItem" v-model="formData.includeUrsa" | ||
| 54 | + placeholder="URSA之间用分号分隔,例:F2;F3;P_" type="textarea" rows="3" maxlength="100"> | ||
| 55 | + </el-input> | ||
| 56 | + </el-form-item> | ||
| 57 | + </el-col> | ||
| 58 | + <el-col :span="12"> | ||
| 59 | + <el-form-item label="URSA不包含" prop="notIncludeUrsa"> | ||
| 60 | + <el-input class="formItem" v-model="formData.notIncludeUrsa" | ||
| 61 | + placeholder="URSA之间用分号分隔,例:F2;F3;P_" type="textarea" rows="3" maxlength="100"> | ||
| 62 | + </el-input> | ||
| 63 | + </el-form-item> | ||
| 64 | + </el-col> | ||
| 65 | + </el-row> | ||
| 66 | + <el-row> | ||
| 67 | + <el-col :span="24"> | ||
| 68 | + <el-form-item label="申报类别" prop="classificationList"> | ||
| 69 | + <el-card shadow="never" style="width: 95%"> | ||
| 70 | + <el-checkbox-group v-model="formData.classificationList"> | ||
| 71 | + <el-row> | ||
| 72 | + <el-col v-for="item in checkBoxItem.cargoType" :span="2" :key="item.id"> | ||
| 73 | + <el-checkbox v-if="item.status === 1" :label="item.chineseName" | ||
| 74 | + :name="item.chineseName" :key="item.code"> | ||
| 75 | + <Tooltips :content="item.chineseName" :refName="item.chineseName"> | ||
| 76 | + </Tooltips> | ||
| 77 | + </el-checkbox> | ||
| 78 | + </el-col> | ||
| 79 | + </el-row> | ||
| 80 | + </el-checkbox-group> | ||
| 81 | + </el-card> | ||
| 82 | + </el-form-item> | ||
| 83 | + </el-col> | ||
| 84 | + </el-row> | ||
| 85 | + <el-row> | ||
| 86 | + <el-col :span="24"> | ||
| 87 | + <el-form-item label="Service Code" prop="serviceCodeList"> | ||
| 88 | + <el-card shadow="never" style="width: 95%"> | ||
| 89 | + <el-checkbox-group v-model="formData.serviceCodeList"> | ||
| 90 | + <el-row> | ||
| 91 | + <el-col v-for="item in checkBoxItem.serviceCode" :span="2" :key="item.id"> | ||
| 92 | + <el-checkbox | ||
| 93 | + v-if="item.status === 1 || checkBoxItem.serviceCode.includes(item.chineseName)" | ||
| 94 | + :label="item.chineseName" :name="item.chineseName" | ||
| 95 | + :disabled="checkBoxItem.serviceCode.includes(item.chineseName) && item.status == 0" | ||
| 96 | + :key="item.code"> | ||
| 97 | + <Tooltips :content="item.chineseName" :refName="item.chineseName"> | ||
| 98 | + </Tooltips> | ||
| 99 | + </el-checkbox> | ||
| 100 | + </el-col> | ||
| 101 | + </el-row> | ||
| 102 | + </el-checkbox-group> | ||
| 103 | + </el-card> | ||
| 104 | + </el-form-item> | ||
| 105 | + </el-col> | ||
| 106 | + </el-row> | ||
| 107 | + </el-form> | ||
| 108 | + <span slot="footer" class="dialog-footer"> | ||
| 109 | + <el-button type="primary" :loading="loading" @click="submit">确 定</el-button> | ||
| 110 | + <el-button @click="close">取 消</el-button> | ||
| 111 | + </span> | ||
| 112 | + </el-dialog> | ||
| 113 | + </div> | ||
| 114 | +</template> | ||
| 115 | + | ||
| 116 | +<script> | ||
| 117 | +import { findFlightRoute } from "@/api/cargoSelect"; | ||
| 118 | +import { allDictData } from "@/api/destinationFlight"; | ||
| 119 | +import { saveOrUpdate } from "@/api/supserAllocation" | ||
| 120 | + | ||
| 121 | +export default { | ||
| 122 | + name: '', | ||
| 123 | + props: { | ||
| 124 | + dialogVisible: { | ||
| 125 | + type: Boolean, | ||
| 126 | + default: false | ||
| 127 | + }, | ||
| 128 | + ruleData: { | ||
| 129 | + type: Object, | ||
| 130 | + default: null | ||
| 131 | + }, | ||
| 132 | + status: { | ||
| 133 | + type: String, | ||
| 134 | + default: '' | ||
| 135 | + } | ||
| 136 | + }, | ||
| 137 | + data() { | ||
| 138 | + return { | ||
| 139 | + formData: { | ||
| 140 | + flightNo: '', | ||
| 141 | + flightDate: '', | ||
| 142 | + flightRoute: null, | ||
| 143 | + classificationList: [], | ||
| 144 | + serviceCodeList: [] | ||
| 145 | + }, | ||
| 146 | + routeList: [], | ||
| 147 | + checkBoxItem: { | ||
| 148 | + cargoType: [], | ||
| 149 | + serviceCode: [] | ||
| 150 | + }, | ||
| 151 | + rules: { | ||
| 152 | + shipperAccount: [ | ||
| 153 | + { | ||
| 154 | + required: true, | ||
| 155 | + message: "发件人账号不能为空", | ||
| 156 | + trigger: "blur", | ||
| 157 | + }, | ||
| 158 | + ], | ||
| 159 | + flightDate: [ | ||
| 160 | + { | ||
| 161 | + required: true, | ||
| 162 | + message: "航班日期不能为空", | ||
| 163 | + trigger: "blur", | ||
| 164 | + }, | ||
| 165 | + ], | ||
| 166 | + flightNo: [ | ||
| 167 | + { | ||
| 168 | + required: true, | ||
| 169 | + message: "航班号不能为空", | ||
| 170 | + trigger: "blur", | ||
| 171 | + }, | ||
| 172 | + ], | ||
| 173 | + flightRoute: [ | ||
| 174 | + { | ||
| 175 | + required: true, | ||
| 176 | + message: "航线不能为空", | ||
| 177 | + trigger: "change", | ||
| 178 | + }, | ||
| 179 | + ], | ||
| 180 | + groupAllWeight: [ | ||
| 181 | + { | ||
| 182 | + required: true, | ||
| 183 | + message: "预留舱位不能为空", | ||
| 184 | + trigger: "blur", | ||
| 185 | + }, | ||
| 186 | + ], | ||
| 187 | + includeUrsa: [ | ||
| 188 | + { | ||
| 189 | + required: true, | ||
| 190 | + message: "URSA不能为空", | ||
| 191 | + trigger: "blur", | ||
| 192 | + }, | ||
| 193 | + ], | ||
| 194 | + }, | ||
| 195 | + title: '', | ||
| 196 | + loading: false, | ||
| 197 | + routeLoading: false, | ||
| 198 | + disabled: false | ||
| 199 | + } | ||
| 200 | + }, | ||
| 201 | + created() { | ||
| 202 | + this.getCheckData() | ||
| 203 | + }, | ||
| 204 | + watch: { | ||
| 205 | + dialogVisible(val) { | ||
| 206 | + if (val) { | ||
| 207 | + if (this.status == 'add') { | ||
| 208 | + this.title = '新增' | ||
| 209 | + this.$nextTick(() => { | ||
| 210 | + this.$refs["superAllocationForm"].clearValidate(); | ||
| 211 | + }) | ||
| 212 | + } else if (this.status == 'update') { | ||
| 213 | + this.title = '修改' | ||
| 214 | + this.formData = this.ruleData | ||
| 215 | + this.disabled = true | ||
| 216 | + this.getRoute(1) | ||
| 217 | + } else if (this.status == 'copy') { | ||
| 218 | + this.title = '复制' | ||
| 219 | + this.formData = this.ruleData | ||
| 220 | + this.getRoute(1) | ||
| 221 | + } | ||
| 222 | + } | ||
| 223 | + } | ||
| 224 | + }, | ||
| 225 | + methods: { | ||
| 226 | + //获取复选框数据 | ||
| 227 | + getCheckData() { | ||
| 228 | + allDictData().then(res => { | ||
| 229 | + if (res.code === 200) { | ||
| 230 | + this.checkBoxItem.cargoType = res.data.cargoType | ||
| 231 | + this.checkBoxItem.serviceCode = res.data.serviceCode | ||
| 232 | + } else { | ||
| 233 | + this.msgWarning(res.msg) | ||
| 234 | + } | ||
| 235 | + }).catch(err => { | ||
| 236 | + console.log(err) | ||
| 237 | + }) | ||
| 238 | + }, | ||
| 239 | + //获取航线 | ||
| 240 | + getRoute(val) { | ||
| 241 | + this.routeList = [] | ||
| 242 | + this.routeLoading = true | ||
| 243 | + if (val != 1) { | ||
| 244 | + this.formData.flightRoute = null | ||
| 245 | + } | ||
| 246 | + this.formData.flightNo = this.formData.flightNo.toUpperCase() | ||
| 247 | + let obj = { | ||
| 248 | + fltNo: this.formData.flightNo, | ||
| 249 | + fltDate: this.formData.flightDate | ||
| 250 | + } | ||
| 251 | + findFlightRoute(obj).then(res => { | ||
| 252 | + this.routeLoading = false | ||
| 253 | + if (res.code === 200) { | ||
| 254 | + this.routeList = res.data | ||
| 255 | + } else { | ||
| 256 | + this.msgWarning(res.msg) | ||
| 257 | + } | ||
| 258 | + this.$refs['superAllocationForm'].clearValidate('flightRoute') | ||
| 259 | + }).catch(err => { | ||
| 260 | + this.routeLoading = false | ||
| 261 | + console.log(err) | ||
| 262 | + }) | ||
| 263 | + }, | ||
| 264 | + //提交 | ||
| 265 | + submit() { | ||
| 266 | + this.$refs["superAllocationForm"].validate((valid) => { | ||
| 267 | + if (valid) { | ||
| 268 | + this.loading = true | ||
| 269 | + this.formData.shipperAccount = this.formData.shipperAccount.replace(/;/g, ";") | ||
| 270 | + this.formData.includeUrsa = this.formData.includeUrsa.replace(/;/g, ";") | ||
| 271 | + if (this.formData.notIncludeUrsa && this.formData.notIncludeUrsa != null && this.formData.notIncludeUrsa != '') { | ||
| 272 | + this.formData.notIncludeUrsa = this.formData.notIncludeUrsa.replace(/;/g, ";") | ||
| 273 | + } | ||
| 274 | + saveOrUpdate(this.formData).then(res => { | ||
| 275 | + this.loading = false | ||
| 276 | + if (res.code === 200) { | ||
| 277 | + this.msgSuccess('操作成功!') | ||
| 278 | + this.close() | ||
| 279 | + } else { | ||
| 280 | + this.msgWarning(res.msg) | ||
| 281 | + } | ||
| 282 | + }).catch(err => { | ||
| 283 | + this.loading = false | ||
| 284 | + console.log(err) | ||
| 285 | + }) | ||
| 286 | + } | ||
| 287 | + }) | ||
| 288 | + }, | ||
| 289 | + routeChange() { | ||
| 290 | + this.$forceUpdate() | ||
| 291 | + }, | ||
| 292 | + close() { | ||
| 293 | + this.formData = { | ||
| 294 | + flightNo: '', | ||
| 295 | + flightDate: '', | ||
| 296 | + classificationList: [], | ||
| 297 | + serviceCodeList: [] | ||
| 298 | + } | ||
| 299 | + this.$refs["superAllocationForm"].clearValidate(); | ||
| 300 | + this.routeList = [] | ||
| 301 | + this.disabled = false | ||
| 302 | + this.$emit('close') | ||
| 303 | + } | ||
| 304 | + } | ||
| 305 | +} | ||
| 306 | +</script> | ||
| 307 | + | ||
| 308 | +<style lang="scss" scoped> | ||
| 309 | + | ||
| 310 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | +<template> | ||
| 2 | + <div style="padding:20px 0"> | ||
| 3 | + <el-form class="form-header" ref="dictForm" label-width="auto" label-position="left" style="margin-bottom:10px" | ||
| 4 | + @submit.native.prevent size="small"> | ||
| 5 | + <el-row> | ||
| 6 | + <el-col :span="6"> | ||
| 7 | + <el-form-item label="发件人账号"> | ||
| 8 | + <el-input type="textarea" v-model="selectionData.shipperAccount" placeholder="请输入发件人账号,多个以“;”分割" | ||
| 9 | + maxlength="50" rows="4" /> | ||
| 10 | + </el-form-item> | ||
| 11 | + </el-col> | ||
| 12 | + </el-row> | ||
| 13 | + </el-form> | ||
| 14 | + <div style="margin-left:20px;margin-bottom:10px"> | ||
| 15 | + <el-button icon="el-icon-search" type="primary" size="small" @click="selection(1)">查 询 | ||
| 16 | + </el-button> | ||
| 17 | + <el-button v-hasPermi="['log:superAllocation:add']" icon="el-icon-plus" type="primary" size="small" | ||
| 18 | + @click="add">添 加 | ||
| 19 | + </el-button> | ||
| 20 | + </div> | ||
| 21 | + <Tables ref="supserAllocation" ductName="supserAllocation" :data="tableData" :headerData="tableHeader" | ||
| 22 | + :selection="false" :order="true" :selectFixed="false" :pagination="true" :totalCount="totalCount" | ||
| 23 | + :loading="loading" :limitSize="selectionData.size" :page="selectionData.page" | ||
| 24 | + layout="total,prev, pager, next, jumper, ->" :pageSizes="[100]" :height="tableHeight" | ||
| 25 | + @currentChange="currentChange"> | ||
| 26 | + <template slot="optionColumn"> | ||
| 27 | + <el-table-column label="操作" width="250" align="center"> | ||
| 28 | + <template slot-scope="scope"> | ||
| 29 | + <el-button size="mini" type="text" v-if="scope.row.status != 0" icon="el-icon-edit" | ||
| 30 | + v-hasPermi="['log:superAllocation:update']" @click="update(scope.row, 'update')">修改 | ||
| 31 | + </el-button> | ||
| 32 | + <el-button type="text" v-if="scope.row.status === 1" size="mini" icon="el-icon-video-pause" | ||
| 33 | + v-hasPermi="['log:superAllocation:openClose']" @click="changeStatus(scope.row)"> | ||
| 34 | + 停 用</el-button> | ||
| 35 | + <el-button type="text" v-if="scope.row.status === 0" size="mini" icon="el-icon-video-pause" | ||
| 36 | + v-hasPermi="['log:superAllocation:openClose']" @click="changeStatus(scope.row)"> | ||
| 37 | + 启 用</el-button> | ||
| 38 | + <el-button type="text" icon="el-icon-document-copy" size="mini" | ||
| 39 | + v-hasPermi="['log:superAllocation:copy']" @click="update(scope.row, 'copy')">复 制 | ||
| 40 | + </el-button> | ||
| 41 | + <el-button size="mini" type="text" icon="el-icon-delete" style="color:#ff4949" | ||
| 42 | + v-hasPermi="['log:superAllocation:delete']" @click="del(scope.row)">删除</el-button> | ||
| 43 | + </template> | ||
| 44 | + </el-table-column> | ||
| 45 | + </template> | ||
| 46 | + </Tables> | ||
| 47 | + <Dialog :dialogVisible="dialogVisible" :ruleData="ruleData" :status="dialogStatus" @close="close" /> | ||
| 48 | + </div> | ||
| 49 | +</template> | ||
| 50 | + | ||
| 51 | +<script> | ||
| 52 | +import { queryShipperAccountRule, changeStatusById, queryShipperAccountRuleById, getReleaseWeight } from "@/api/supserAllocation" | ||
| 53 | +import Dialog from './dialog.vue'; | ||
| 54 | + | ||
| 55 | +export default { | ||
| 56 | + name: 'SuperAllocation', | ||
| 57 | + components: { | ||
| 58 | + Dialog | ||
| 59 | + }, | ||
| 60 | + data() { | ||
| 61 | + return { | ||
| 62 | + selectionData: { | ||
| 63 | + shipperAccount: null, | ||
| 64 | + page: 1, | ||
| 65 | + size: 20, | ||
| 66 | + }, | ||
| 67 | + tableData: [], | ||
| 68 | + tableHeader: this.tableHeaders['superAllocation'], | ||
| 69 | + ruleData: { | ||
| 70 | + classificationList: [], | ||
| 71 | + serviceCodeList: [] | ||
| 72 | + }, | ||
| 73 | + dialogStatus: 'add', | ||
| 74 | + tableHeight: null, | ||
| 75 | + totalCount: 0, | ||
| 76 | + dialogVisible: false, | ||
| 77 | + loading: false, | ||
| 78 | + } | ||
| 79 | + }, | ||
| 80 | + created() { | ||
| 81 | + }, | ||
| 82 | + mounted() { | ||
| 83 | + this.tableHeight = window.innerHeight - this.$refs.supserAllocation.$el.offsetHeight - 250 | ||
| 84 | + this.selection(1) | ||
| 85 | + }, | ||
| 86 | + methods: { | ||
| 87 | + //查询 | ||
| 88 | + selection(val) { | ||
| 89 | + this.tableData = [] | ||
| 90 | + this.loading = true | ||
| 91 | + if (val === 1) { | ||
| 92 | + this.selectionData.page = 1 | ||
| 93 | + } | ||
| 94 | + queryShipperAccountRule(this.selectionData).then(res => { | ||
| 95 | + this.loading = false | ||
| 96 | + if (res.code === 200) { | ||
| 97 | + this.tableData = res.data.list | ||
| 98 | + this.totalCount = res.data.total | ||
| 99 | + } else { | ||
| 100 | + this.msgWarning(res.msg) | ||
| 101 | + } | ||
| 102 | + }).catch(err => { | ||
| 103 | + this.loading = false | ||
| 104 | + console.log(err) | ||
| 105 | + }) | ||
| 106 | + }, | ||
| 107 | + //新增 | ||
| 108 | + add() { | ||
| 109 | + this.dialogStatus = 'add' | ||
| 110 | + this.dialogVisible = true | ||
| 111 | + }, | ||
| 112 | + //修改 | ||
| 113 | + update(val, status) { | ||
| 114 | + this.dialogStatus = status | ||
| 115 | + queryShipperAccountRuleById({ id: val.id }).then(res => { | ||
| 116 | + if (res.code === 200) { | ||
| 117 | + this.ruleData = res.data | ||
| 118 | + if (this.ruleData.classificationList == null || this.ruleData.classificationList.length < 1) { | ||
| 119 | + this.ruleData.classificationList = [] | ||
| 120 | + } | ||
| 121 | + if (this.ruleData.serviceCodeList == null || this.ruleData.serviceCodeList.length < 1) { | ||
| 122 | + this.ruleData.serviceCodeList = [] | ||
| 123 | + } | ||
| 124 | + if (status == 'copy') { | ||
| 125 | + this.ruleData.id = undefined | ||
| 126 | + } | ||
| 127 | + this.dialogVisible = true | ||
| 128 | + } else { | ||
| 129 | + this.msgWarning(res.msg) | ||
| 130 | + } | ||
| 131 | + }).catch(err => { | ||
| 132 | + console.log(err) | ||
| 133 | + }) | ||
| 134 | + }, | ||
| 135 | + //删除 | ||
| 136 | + del(val) { | ||
| 137 | + getReleaseWeight({ id: val.id }).then(res => { | ||
| 138 | + if (res.code === 200) { | ||
| 139 | + this.$confirm(`是否要删除记录!预计释放舱位${res.data}`, "注意!", { | ||
| 140 | + confirmButtonText: "确定", | ||
| 141 | + cancelButtonText: '取消', | ||
| 142 | + type: "warning", | ||
| 143 | + }).then(() => { | ||
| 144 | + changeStatusById({ id: val.id, status: 2 }).then(res => { | ||
| 145 | + if (res.code === 200) { | ||
| 146 | + this.msgSuccess(`删除成功!已释放舱位${res.data}`) | ||
| 147 | + this.selection(1) | ||
| 148 | + } else { | ||
| 149 | + this.msgWarning(res.msg) | ||
| 150 | + } | ||
| 151 | + }).catch(err => { | ||
| 152 | + console.log(err) | ||
| 153 | + }) | ||
| 154 | + }).catch(() => { }) | ||
| 155 | + } else { | ||
| 156 | + this.msgWarning(res.code) | ||
| 157 | + } | ||
| 158 | + }).catch(err => { | ||
| 159 | + console.log(err) | ||
| 160 | + }) | ||
| 161 | + }, | ||
| 162 | + //停用启用 | ||
| 163 | + changeStatus(val) { | ||
| 164 | + let status = 0 | ||
| 165 | + let tip = '' | ||
| 166 | + if (val.status == 0) { | ||
| 167 | + status = 1 | ||
| 168 | + tip = '启用' | ||
| 169 | + } else if (val.status == 1) { | ||
| 170 | + status = 0 | ||
| 171 | + tip = '停用' | ||
| 172 | + } | ||
| 173 | + if (tip === "停用") { | ||
| 174 | + getReleaseWeight({ id: val.id }).then(res => { | ||
| 175 | + if (res.code === 200) { | ||
| 176 | + this.$confirm(`预计释放舱位为${res.data},是否确定!`, "注意!", { | ||
| 177 | + confirmButtonText: "确定", | ||
| 178 | + cancelButtonText: '取消', | ||
| 179 | + type: "warning", | ||
| 180 | + }).then(() => { | ||
| 181 | + this.statusChange({ id: val.id, status: status }) | ||
| 182 | + }).catch(() => { }) | ||
| 183 | + } else { | ||
| 184 | + this.msgWarning(res.msg) | ||
| 185 | + } | ||
| 186 | + }).catch(err => { | ||
| 187 | + console.log(err) | ||
| 188 | + }) | ||
| 189 | + } else { | ||
| 190 | + this.$confirm(`是否要${tip}记录!`, "注意!", { | ||
| 191 | + confirmButtonText: "确定", | ||
| 192 | + cancelButtonText: '取消', | ||
| 193 | + type: "warning", | ||
| 194 | + }).then(() => { | ||
| 195 | + this.statusChange({ id: val.id, status: status }) | ||
| 196 | + }).catch(() => { }) | ||
| 197 | + } | ||
| 198 | + }, | ||
| 199 | + //复制 | ||
| 200 | + copy(val) { | ||
| 201 | + this.dialogStatus = 'copy' | ||
| 202 | + this.ruleData = JSON.parse(JSON.stringify(val)) | ||
| 203 | + this.ruleData.id = undefined | ||
| 204 | + this.dialogVisible = true | ||
| 205 | + }, | ||
| 206 | + //状态修改请求 | ||
| 207 | + statusChange(val) { | ||
| 208 | + changeStatusById(val).then(res => { | ||
| 209 | + if (res.code === 200) { | ||
| 210 | + if (val.tip == '停用') { | ||
| 211 | + this.msgSuccess(`${val.tip}成功!已释放${res.data}`) | ||
| 212 | + } else { | ||
| 213 | + this.msgSuccess(`${val.tip}成功!`) | ||
| 214 | + } | ||
| 215 | + this.selection(1) | ||
| 216 | + } else { | ||
| 217 | + this.msgWarning(res.msg) | ||
| 218 | + } | ||
| 219 | + }).catch(err => { | ||
| 220 | + console.log(err) | ||
| 221 | + }) | ||
| 222 | + }, | ||
| 223 | + //关闭 | ||
| 224 | + close() { | ||
| 225 | + this.dialogVisible = false | ||
| 226 | + this.ruleData = {} | ||
| 227 | + this.selection(1) | ||
| 228 | + }, | ||
| 229 | + //翻页 | ||
| 230 | + currentChange(val) { | ||
| 231 | + this.selectionData.page = val.page | ||
| 232 | + this.selection() | ||
| 233 | + }, | ||
| 234 | + } | ||
| 235 | +} | ||
| 236 | + | ||
| 237 | +</script> | ||
| 238 | + | ||
| 239 | +<style lang="scss" scoped> | ||
| 240 | + | ||
| 241 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| 1 | <template> | 1 | <template> |
| 2 | <div class="userDrawer"> | 2 | <div class="userDrawer"> |
| 3 | <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" :close-on-click-modal="false" | 3 | <el-drawer :title="drawerTitle" :visible.sync="drawer" direction="rtl" size="40%" :close-on-click-modal="false" |
| 4 | - :wrapperClosable="false" :show-close="false"> | 4 | + :wrapperClosable="false" :show-close="false" @close="handleClose"> |
| 5 | <el-form ref="userForm" :model="userForm" label-width="auto" :rules="rules" style="margin: 10px" | 5 | <el-form ref="userForm" :model="userForm" label-width="auto" :rules="rules" style="margin: 10px" |
| 6 | @submit.native.prevent> | 6 | @submit.native.prevent> |
| 7 | <el-row :gutter="10"> | 7 | <el-row :gutter="10"> |
| ... | @@ -244,7 +244,7 @@ export default { | ... | @@ -244,7 +244,7 @@ export default { |
| 244 | roleIds: [], | 244 | roleIds: [], |
| 245 | }; | 245 | }; |
| 246 | this.clearValidate('userForm') | 246 | this.clearValidate('userForm') |
| 247 | - this.$emit("handleClose", false); | 247 | + this.$emit("handleClose"); |
| 248 | }, | 248 | }, |
| 249 | //提交 | 249 | //提交 |
| 250 | submit() { | 250 | submit() { |
| ... | @@ -276,4 +276,5 @@ export default { | ... | @@ -276,4 +276,5 @@ export default { |
| 276 | </script> | 276 | </script> |
| 277 | 277 | ||
| 278 | <style> | 278 | <style> |
| 279 | + | ||
| 279 | </style> | 280 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
| ... | @@ -41,7 +41,8 @@ | ... | @@ -41,7 +41,8 @@ |
| 41 | >修改密码</el-button | 41 | >修改密码</el-button |
| 42 | > --> | 42 | > --> |
| 43 | <el-button :type="scope.row.isValid == 1 ? 'warning' : 'primary'" size="mini" | 43 | <el-button :type="scope.row.isValid == 1 ? 'warning' : 'primary'" size="mini" |
| 44 | - v-hasPermi="['system:user:openClose']" @click="userStatus(scope)">{{ scope.row.isValid == 1 ? "停用" : "启用" | 44 | + v-hasPermi="['system:user:openClose']" @click="userStatus(scope)">{{ |
| 45 | + scope.row.isValid == 1 ? "停用" : "启用" | ||
| 45 | }}</el-button> | 46 | }}</el-button> |
| 46 | <el-button type="danger" size="mini" @click="removeUser(scope)" v-hasPermi="['system:user:delete']">删除用户 | 47 | <el-button type="danger" size="mini" @click="removeUser(scope)" v-hasPermi="['system:user:delete']">删除用户 |
| 47 | </el-button> | 48 | </el-button> |
| ... | @@ -236,7 +237,7 @@ export default { | ... | @@ -236,7 +237,7 @@ export default { |
| 236 | .catch(() => { }); | 237 | .catch(() => { }); |
| 237 | }, | 238 | }, |
| 238 | handleClose(val) { | 239 | handleClose(val) { |
| 239 | - this.drawer = val; | 240 | + this.drawer = false; |
| 240 | this.userData = {}; | 241 | this.userData = {}; |
| 241 | this.selectUser(); | 242 | this.selectUser(); |
| 242 | }, | 243 | }, |
| ... | @@ -253,4 +254,5 @@ export default { | ... | @@ -253,4 +254,5 @@ export default { |
| 253 | </script> | 254 | </script> |
| 254 | 255 | ||
| 255 | <style> | 256 | <style> |
| 257 | + | ||
| 256 | </style> | 258 | </style> |
| ... | \ No newline at end of file | ... | \ No newline at end of file | ... | ... |
src/views/systemLog/archiveData/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-form ref="archiveDataForm" class="form-header" :model="selectForm" label-width="auto" size="small" | ||
| 4 | + @submit.native.prevent> | ||
| 5 | + <el-row> | ||
| 6 | + <el-col :span="6"> | ||
| 7 | + <el-form-item label="操作时间"> | ||
| 8 | + <el-date-picker class="formItem" v-model="selectForm.dateList" type="daterange" | ||
| 9 | + range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" | ||
| 10 | + value-format="yyyy-MM-dd" clearable> | ||
| 11 | + </el-date-picker> | ||
| 12 | + </el-form-item> | ||
| 13 | + </el-col> | ||
| 14 | + </el-row> | ||
| 15 | + </el-form> | ||
| 16 | + <div class="ml20 mb20"> | ||
| 17 | + <el-button type="primary" size="small" icon="el-icon-search" :loading="loading" @click="selectLog(1)">查 询 | ||
| 18 | + </el-button> | ||
| 19 | + </div> | ||
| 20 | + <Tables ref="archiveDataTables" ductName="archiveDataTables" :order="true" :border='true' :data="data" | ||
| 21 | + :headerData="tableHeader" tableAlign="center" :showOverflowTooltip="true" :height="tableHeight" | ||
| 22 | + :page="selectForm.page" :limitSize="selectForm.size" :pageSizes="[20]" :totalCount="total" | ||
| 23 | + :loading="loading" @currentChange="currentChange"> | ||
| 24 | + <template v-slot:queryParameter="scope"> | ||
| 25 | + <el-popover placement="top" width="350" trigger="hover"> | ||
| 26 | + <ul style="height:300px;overflow-y:scroll;" | ||
| 27 | + v-if="scope.row.queryParameter != null && scope.row.queryParameter != ''"> | ||
| 28 | + <li v-for="(item, index) in JSON.stringify(JSON.parse(scope.row.queryParameter)).split(',')" | ||
| 29 | + :key="index" style="border-bottom:1px solid #E4E7ED;margin-bottom:5px">{{ item }}</li> | ||
| 30 | + </ul> | ||
| 31 | + <el-button type="text" slot="reference">查 看</el-button> | ||
| 32 | + </el-popover> | ||
| 33 | + </template> | ||
| 34 | + <template v-slot:downloadPath="scope"> | ||
| 35 | + <el-button v-if="scope.row.downloadPath != null && scope.row.status == 1" type="text" size="mini" | ||
| 36 | + icon="el-icon-download" @click="download(scope.row)">下载 | ||
| 37 | + </el-button> | ||
| 38 | + <span v-else>暂无下载</span> | ||
| 39 | + </template> | ||
| 40 | + </Tables> | ||
| 41 | + </div> | ||
| 42 | +</template> | ||
| 43 | + | ||
| 44 | +<script> | ||
| 45 | +import { findArchiveCargoLog, isExistZip } from "@/api/system/logConfig.js"; | ||
| 46 | +import { downLoadZip } from "@/utils/zipdownload"; | ||
| 47 | + | ||
| 48 | +export default { | ||
| 49 | + data() { | ||
| 50 | + return { | ||
| 51 | + selectForm: { | ||
| 52 | + dateList: [], | ||
| 53 | + page: 1, | ||
| 54 | + size: 20 | ||
| 55 | + }, | ||
| 56 | + data: [], | ||
| 57 | + tableHeader: this.tableHeaders['archiveData'], | ||
| 58 | + tableHeight: null, | ||
| 59 | + total: 0, | ||
| 60 | + loading: false, | ||
| 61 | + } | ||
| 62 | + }, | ||
| 63 | + created() { | ||
| 64 | + this.selectLog() | ||
| 65 | + }, | ||
| 66 | + mounted() { | ||
| 67 | + this.tableHeight = window.innerHeight - this.$refs.archiveDataForm.$el.offsetHeight - 200 | ||
| 68 | + }, | ||
| 69 | + methods: { | ||
| 70 | + selectLog(val) { | ||
| 71 | + this.loading = true | ||
| 72 | + if (val == 1) { | ||
| 73 | + this.selectForm.page = 1 | ||
| 74 | + } | ||
| 75 | + let obj = {} | ||
| 76 | + if (this.selectForm.dateList && this.selectForm.dateList.length > 0) { | ||
| 77 | + obj.createTimeStart = this.selectForm.dateList[0] | ||
| 78 | + obj.createTimeEnd = this.selectForm.dateList[1] | ||
| 79 | + } | ||
| 80 | + obj.page = this.selectForm.page | ||
| 81 | + obj.size = this.selectForm.size | ||
| 82 | + findArchiveCargoLog(obj).then(res => { | ||
| 83 | + this.loading = false | ||
| 84 | + if (res.code === 200) { | ||
| 85 | + this.data = res.data.list | ||
| 86 | + this.total = res.data.total | ||
| 87 | + } else { | ||
| 88 | + this.msgWarning(res.msg) | ||
| 89 | + } | ||
| 90 | + }).catch(err => { | ||
| 91 | + this.loading = true | ||
| 92 | + console.log(err) | ||
| 93 | + }) | ||
| 94 | + }, | ||
| 95 | + download(val) { | ||
| 96 | + isExistZip(val).then(res => { | ||
| 97 | + if (res.code === 200) { | ||
| 98 | + setTimeout(() => { | ||
| 99 | + let url = '/archiveCargoLog/downloadZip' | ||
| 100 | + let filename = val.packageName | ||
| 101 | + downLoadZip(url, val, filename) | ||
| 102 | + }, 500); | ||
| 103 | + } else { | ||
| 104 | + this.msgWarning(res.msg) | ||
| 105 | + } | ||
| 106 | + }).catch(err => { | ||
| 107 | + console.log(err) | ||
| 108 | + }) | ||
| 109 | + }, | ||
| 110 | + currentChange(val) { | ||
| 111 | + this.selectForm.page = val.page | ||
| 112 | + this.selectLog() | ||
| 113 | + } | ||
| 114 | + } | ||
| 115 | +} | ||
| 116 | +</script> | ||
| 117 | + | ||
| 118 | +<style lang="scss" scoped> | ||
| 119 | + | ||
| 120 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
| ... | @@ -69,12 +69,19 @@ | ... | @@ -69,12 +69,19 @@ |
| 69 | </template> | 69 | </template> |
| 70 | <template v-slot:flightFltNo="scope"> | 70 | <template v-slot:flightFltNo="scope"> |
| 71 | <el-link v-if="scope.row.allocDimId" type="primary" | 71 | <el-link v-if="scope.row.allocDimId" type="primary" |
| 72 | - @click="$router.push({ name: 'FlightAllocConfigInfo', params: { id: scope.row.allocDimId, handle: 'detail', fltNo: scope.row.flightFltNo, fltDate: scope.row.flightFltDate ? scope.row.flightFltDate : ' ', routeStatus: 'dmLog', route: scope.row.currentFlightRoute ? scope.row.currentFlightRoute : ' ', status: ' ', createStatus: 1 } })"> | 72 | + @click="$router.push({ name: 'FlightAllocConfigInfo', params: { id: scope.row.allocDimId, handle: 'detail', fltNo: scope.row.flightFltNo, fltDate: scope.row.flightFltDate ? scope.row.flightFltDate : ' ', routeStatus: 'dmLog', route: scope.row.currentFlightRoute ? scope.row.currentFlightRoute : ' ', status: ' ', createStatus: 1, } })"> |
| 73 | {{ | 73 | {{ |
| 74 | scope.row.flightFltNo | 74 | scope.row.flightFltNo |
| 75 | }}<i class="el-icon-link"></i> </el-link> | 75 | }}<i class="el-icon-link"></i> </el-link> |
| 76 | <span v-else>{{ scope.row.flightFltNo }}</span> | 76 | <span v-else>{{ scope.row.flightFltNo }}</span> |
| 77 | </template> | 77 | </template> |
| 78 | + <template v-slot:remarksDetail="scope"> | ||
| 79 | + <span v-if="scope.row.remarksDetail == null || scope.row.remarksDetail == ''">{{ scope.row.remarksDetail | ||
| 80 | + }}</span> | ||
| 81 | + <div v-else> | ||
| 82 | + <div v-for="item in scope.row.remarksDetail.split('\\r\\n')">{{ item }}</div> | ||
| 83 | + </div> | ||
| 84 | + </template> | ||
| 78 | </Tables> | 85 | </Tables> |
| 79 | </div> | 86 | </div> |
| 80 | </template> | 87 | </template> |
| ... | @@ -137,7 +144,7 @@ export default { | ... | @@ -137,7 +144,7 @@ export default { |
| 137 | getDmDataList(this.selectForm).then((res) => { | 144 | getDmDataList(this.selectForm).then((res) => { |
| 138 | this.loading = false; | 145 | this.loading = false; |
| 139 | if (res.code === 200) { | 146 | if (res.code === 200) { |
| 140 | - this.total = res.data.total; | 147 | + this.total = res.data.total |
| 141 | if (res.data.total === 0) { | 148 | if (res.data.total === 0) { |
| 142 | this.msgWarning('未查询到数据') | 149 | this.msgWarning('未查询到数据') |
| 143 | } else { | 150 | } else { | ... | ... |
| ... | @@ -64,6 +64,7 @@ export default { | ... | @@ -64,6 +64,7 @@ export default { |
| 64 | }, | 64 | }, |
| 65 | //返回 | 65 | //返回 |
| 66 | close() { | 66 | close() { |
| 67 | + this.$store.dispatch('tagsView/delView', this.$route) | ||
| 67 | this.$store.state.tagsView.visitedViews.splice( | 68 | this.$store.state.tagsView.visitedViews.splice( |
| 68 | this.$store.state.tagsView.visitedViews.findIndex( | 69 | this.$store.state.tagsView.visitedViews.findIndex( |
| 69 | (item) => item.path === this.$route.path | 70 | (item) => item.path === this.$route.path | ... | ... |
src/views/systemLog/operationLog/index.vue
0 → 100644
| 1 | +<template> | ||
| 2 | + <div> | ||
| 3 | + <el-form ref="operationLogForm" class="form-header" :model="selectForm" label-width="auto" size="small" | ||
| 4 | + @submit.native.prevent> | ||
| 5 | + <el-row> | ||
| 6 | + <el-col :span="6"> | ||
| 7 | + <el-form-item label="功能模块"> | ||
| 8 | + <el-select v-model="selectForm.module" class="formItem" placeholder="不限" clearable> | ||
| 9 | + <el-option v-for="item in moduleList" :label="item" :value="item" :key="item"></el-option> | ||
| 10 | + </el-select> | ||
| 11 | + </el-form-item> | ||
| 12 | + </el-col> | ||
| 13 | + <el-col :span="6"> | ||
| 14 | + <el-form-item label="操作描述"> | ||
| 15 | + <el-input v-model="selectForm.describe" class="formItem" placeholder="请输入操作描述" clearable> | ||
| 16 | + </el-input> | ||
| 17 | + </el-form-item> | ||
| 18 | + </el-col> | ||
| 19 | + <el-col :span="6"> | ||
| 20 | + <el-form-item label="操作人"> | ||
| 21 | + <el-input v-model="selectForm.userName" class="formItem" placeholder="请输入操作人" clearable> | ||
| 22 | + </el-input> | ||
| 23 | + </el-form-item> | ||
| 24 | + </el-col> | ||
| 25 | + <el-col :span="6"> | ||
| 26 | + <el-form-item label="操作时间"> | ||
| 27 | + <el-date-picker class="formItem" v-model="dateList" type="daterange" range-separator="至" | ||
| 28 | + start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" clearable> | ||
| 29 | + </el-date-picker> | ||
| 30 | + </el-form-item> | ||
| 31 | + </el-col> | ||
| 32 | + </el-row> | ||
| 33 | + </el-form> | ||
| 34 | + <div class="ml20 mb20"> | ||
| 35 | + <el-button type="primary" size="small" icon="el-icon-search" :loading="loading" @click="selectLog(1)">查 询 | ||
| 36 | + </el-button> | ||
| 37 | + </div> | ||
| 38 | + <Tables ref="operationLogTables" ductName="operationLogTables" :order="true" :border='false' :data="data" | ||
| 39 | + :headerData="tableHeader" tableAlign="center" :showOverflowTooltip="false" :height="tableHeight" | ||
| 40 | + :page="selectForm.page" :limitSize="selectForm.size" :pageSizes="[100]" :totalCount="total" | ||
| 41 | + :loading="loading" @currentChange="currentChange"> | ||
| 42 | + <template v-slot:result="scope"> | ||
| 43 | + <span> | ||
| 44 | + {{ scope.row.result != null && typeof JSON.parse(scope.row.result) == 'object' ? | ||
| 45 | + JSON.parse(scope.row.result).msg : | ||
| 46 | + scope.row.result | ||
| 47 | + }} | ||
| 48 | + </span> | ||
| 49 | + </template> | ||
| 50 | + <template v-slot:remark="scope"> | ||
| 51 | + <!-- <el-popover placement="top" width="400" trigger="hover" | ||
| 52 | + v-if="scope.row.remark != null && scope.row.remark != ''"> | ||
| 53 | + <ul style="height:300px;overflow-y:scroll;"> | ||
| 54 | + <li v-for="(item, index) in scope.row.remark.split('\n')" :key="index" | ||
| 55 | + style="border-bottom:1px solid #E4E7ED;margin-bottom:5px">{{ item }}</li> | ||
| 56 | + </ul> | ||
| 57 | + <el-button type="text" slot="reference">查 看</el-button> | ||
| 58 | + </el-popover> --> | ||
| 59 | + <div> | ||
| 60 | + {{ scope.row.remark }} | ||
| 61 | + </div> | ||
| 62 | + </template> | ||
| 63 | + <template v-slot:requestParameters="scope"> | ||
| 64 | + <el-popover placement="top" width="400" trigger="hover" | ||
| 65 | + v-if="scope.row.requestParameters != null && scope.row.requestParameters != ''"> | ||
| 66 | + <ul style="height:300px;overflow-y:scroll;"> | ||
| 67 | + <li v-for="(item, index) in JSON.stringify(JSON.parse(scope.row.requestParameters)).split(',')" | ||
| 68 | + :key="index" style="border-bottom:1px solid #E4E7ED;margin-bottom:5px">{{ item }}</li> | ||
| 69 | + </ul> | ||
| 70 | + <el-button type="text" slot="reference">查 看</el-button> | ||
| 71 | + </el-popover> | ||
| 72 | + </template> | ||
| 73 | + </Tables> | ||
| 74 | + </div> | ||
| 75 | +</template> | ||
| 76 | + | ||
| 77 | +<script> | ||
| 78 | +import { findModuleCondition, getSystemOperationLogData } from "@/api/system/logConfig.js"; | ||
| 79 | + | ||
| 80 | +export default { | ||
| 81 | + name: 'OperationLog', | ||
| 82 | + data() { | ||
| 83 | + return { | ||
| 84 | + selectForm: { | ||
| 85 | + module: null, | ||
| 86 | + describe: null, | ||
| 87 | + userName: null, | ||
| 88 | + page: 1, | ||
| 89 | + size: 100 | ||
| 90 | + }, | ||
| 91 | + data: [], | ||
| 92 | + tableHeader: this.tableHeaders['operationLog'], | ||
| 93 | + moduleList: [], | ||
| 94 | + dateList: [], | ||
| 95 | + defaultProps: { | ||
| 96 | + children: 'children', | ||
| 97 | + label: 'label' | ||
| 98 | + }, | ||
| 99 | + tableHeight: null, | ||
| 100 | + total: 0, | ||
| 101 | + loading: false | ||
| 102 | + } | ||
| 103 | + }, | ||
| 104 | + created() { | ||
| 105 | + this.getModule() | ||
| 106 | + this.selectLog(1) | ||
| 107 | + }, | ||
| 108 | + activated() { | ||
| 109 | + this.selectLog(); | ||
| 110 | + }, | ||
| 111 | + mounted() { | ||
| 112 | + this.tableHeight = window.innerHeight - this.$refs.operationLogForm.$el.offsetHeight - 240 | ||
| 113 | + }, | ||
| 114 | + methods: { | ||
| 115 | + getModule() { | ||
| 116 | + findModuleCondition().then(res => { | ||
| 117 | + if (res.code === 200) { | ||
| 118 | + this.moduleList = res.data.module | ||
| 119 | + } else { | ||
| 120 | + this.msgWarning(res.msg) | ||
| 121 | + } | ||
| 122 | + }).catch(err => { | ||
| 123 | + console.log(err) | ||
| 124 | + }) | ||
| 125 | + }, | ||
| 126 | + selectLog(val) { | ||
| 127 | + this.loading = true | ||
| 128 | + this.data = [] | ||
| 129 | + if (val == 1) { | ||
| 130 | + this.selectForm.page = 1 | ||
| 131 | + } | ||
| 132 | + let obj = {} | ||
| 133 | + obj.module = this.selectForm.module | ||
| 134 | + if (this.dateList && this.dateList.length > 0) { | ||
| 135 | + obj.createTimeStart = this.dateList[0] | ||
| 136 | + obj.createTimeEnd = this.dateList[1] | ||
| 137 | + } else { | ||
| 138 | + obj.createTimeStart = null | ||
| 139 | + obj.createTimeEnd = null | ||
| 140 | + } | ||
| 141 | + obj.describe = this.selectForm.describe | ||
| 142 | + obj.userName = this.selectForm.userName | ||
| 143 | + obj.page = this.selectForm.page | ||
| 144 | + obj.size = this.selectForm.size | ||
| 145 | + getSystemOperationLogData(obj).then(res => { | ||
| 146 | + this.loading = false | ||
| 147 | + if (res.code === 200) { | ||
| 148 | + this.data = res.data.list | ||
| 149 | + this.total = res.data.total | ||
| 150 | + } else { | ||
| 151 | + this.msgWarning(res.msg) | ||
| 152 | + } | ||
| 153 | + }).catch(err => { | ||
| 154 | + this.loading = false | ||
| 155 | + console.log(err) | ||
| 156 | + }) | ||
| 157 | + }, | ||
| 158 | + currentChange(val) { | ||
| 159 | + this.selectForm.page = val.page | ||
| 160 | + this.selectLog() | ||
| 161 | + } | ||
| 162 | + } | ||
| 163 | +} | ||
| 164 | + | ||
| 165 | +</script> | ||
| 166 | + | ||
| 167 | +<style lang="scss" scoped> | ||
| 168 | + | ||
| 169 | +</style> | ||
| ... | \ No newline at end of file | ... | \ No newline at end of file |
-
Please register or login to post a comment