作者 zhangFan

出港业务总体优化,落装改配新增

要显示太多修改。

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

  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'nmms-server/nmms/mt3201'
  4 +
  5 +export const getMt3201ListForParam = params => {
  6 + return http.get(`${baseUrl}/getMt3201ListForParam`, params);
  7 +};
  8 +export const deleteByIsDelete = params => { return http.del(`${baseUrl}/deleteByIsDelete`,params)};
  9 +
  10 +export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus`, params)};
  11 +
  12 +export const updateMT3201 = params => { return http.put(`${baseUrl}/updateMt3201`,params)};
  13 +
  14 +export const addMt3201 = params => { return http.post(`${baseUrl}/addMt3201`,params)};
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'nmms-server/nmms/flight'
  4 +
  5 +export const getFlightListForParam = params => {
  6 + return http.get(`${baseUrl}/getFlight`, params);
  7 +};
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'nmms-server/nmms/mt4201'
  4 +
  5 +export const getMt4201ListForParam = params => {
  6 + return http.get(`${baseUrl}/getMt4201ListForParam`, params);
  7 +};
  8 +export const deleteByIsDelete = params => { return http.del(`${baseUrl}/deleteByIsDelete`,params)};
  9 +
  10 +export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus`, params)};
  11 +
  12 +export const updateMT4201 = params => { return http.put(`${baseUrl}/updateMt4201`,params)};
  13 +
  14 +export const addMt4201 = params => { return http.post(`${baseUrl}/addMt4201`,params)};
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'nmms-server/nmms/manifest'
  4 +
  5 +export const getManifests = params => {
  6 + return http.get(`${baseUrl}/getManifests`, params);
  7 +};
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'nmms-server/nmms/mt2201'
  4 +
  5 +export const getMt2201ListForParam = params => { return http.get(`${baseUrl}/getMt2201ListForParam`, params)};
  6 +
  7 +export const deleteByIsDelete = params => { return http.del(`${baseUrl}/deleteByIsDelete`,params)};
  8 +
  9 +export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus`, params) };
  10 +
  11 +export const updateMT2201 = params => { return http.put(`${baseUrl}/updateMT2201`,params)};
  12 +
  13 +export const addMt2201 = params => { return http.post(`${baseUrl}/addMt2201`,params)};
  14 +
  15 +export const getLostLoadChange = params => { return http.get(`${baseUrl}/getLostLoadChange`, params)};
  16 +
  17 +export const saveLostChange = params => { return http.get(`${baseUrl}/saveLostChange`, params)};
  18 +
  19 +export const saveLostLoad = params => { return http.put(`${baseUrl}/saveLostLoad`,params)};
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'nmms-server/nmms/mt520x'
  4 +
  5 +export const getMt520XListForParam = params => {
  6 + return http.get(`${baseUrl}/getMt520xListForParam`, params);
  7 +};
  8 +export const deleteByIsDelete = params => { return http.del(`${baseUrl}/deleteByIsDelete`,params)};
  9 +
  10 +export const updateStatus = params => { return http.put(`${baseUrl}/updateStatus`, params)};
  11 +
  12 +export const updateMt520X = params => { return http.put(`${baseUrl}/updateMt520x`,params)};
  13 +
  14 +export const addMt520X = params => { return http.post(`${baseUrl}/addMt520x`,params)};
@@ -17,22 +17,12 @@ export default { @@ -17,22 +17,12 @@ export default {
17 return axios({ 17 return axios({
18 method: 'GET', 18 method: 'GET',
19 url: url, 19 url: url,
20 - data: params, 20 + params: params,
21 headers: { 21 headers: {
22 'Content-Type': 'application/json;charset=UTF-8', 22 'Content-Type': 'application/json;charset=UTF-8',
23 } 23 }
24 }); 24 });
25 }, 25 },
26 - getUrlEnclode(url, params) {  
27 - return axios({  
28 - method: 'GET',  
29 - url: url,  
30 - data: qs.stringify(params),  
31 - headers: {  
32 - 'Content-Type': 'application/x-www-form-urlencoded',  
33 - }  
34 - });  
35 - },  
36 put(url, params){ 26 put(url, params){
37 return axios({ 27 return axios({
38 method: 'PUT', 28 method: 'PUT',
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'nmms-server/nmms/rep'
  4 +
  5 +export const getResponseForParam = params => {
  6 + return http.get(`${baseUrl}/getResponseForParam`, params);
  7 +};
@@ -8,6 +8,15 @@ import Perm from './views/nav1/perm.vue' @@ -8,6 +8,15 @@ import Perm from './views/nav1/perm.vue'
8 import LOG from './views/nav1/Log.vue' 8 import LOG from './views/nav1/Log.vue'
9 import PreManifest from './views/agent/PreManifest.vue' 9 import PreManifest from './views/agent/PreManifest.vue'
10 import OrgManifest from './views/nmms/orgManifest.vue' 10 import OrgManifest from './views/nmms/orgManifest.vue'
  11 +import ExitFlight from './views/nmms/ExitFlight.vue'
  12 +import ExitPre from './views/nmms/ExitPre.vue'
  13 +import ExitTidy from './views/nmms/ExitTidy.vue'
  14 +import ExitArrive from './views/nmms/ExitArrive.vue'
  15 +import ExitManifest from './views/nmms/ExitManifest.vue'
  16 +import ExitLoading from './views/nmms/ExitLoading.vue'
  17 +import ExitFlightDesc from './views/nmms/ExitFlightDesc.vue'
  18 +import LostLoadChange from './views/lostLoadChange/lostLoadChange.vue'
  19 +import LostLoad from './views/lostLoadChange/lostLoading.vue'
11 // import Form from './views/nav1/Form.vue' 20 // import Form from './views/nav1/Form.vue'
12 21
13 import User from './views/nav1/user.vue' 22 import User from './views/nav1/user.vue'
@@ -36,7 +45,7 @@ let routes = [ @@ -36,7 +45,7 @@ let routes = [
36 leaf: true, 45 leaf: true,
37 iconCls: 'el-icon-menu', 46 iconCls: 'el-icon-menu',
38 children: [ 47 children: [
39 - { path: '/main', component: Main, name: '首页'}, 48 + {path: '/main', component: Main, name: '首页'},
40 ] 49 ]
41 }, 50 },
42 // { path: '/test', component: Main }, 51 // { path: '/test', component: Main },
@@ -46,10 +55,10 @@ let routes = [ @@ -46,10 +55,10 @@ let routes = [
46 name: '系统设置', 55 name: '系统设置',
47 iconCls: 'el-icon-setting',//图标样式class 56 iconCls: 'el-icon-setting',//图标样式class
48 children: [ 57 children: [
49 - { path: '/user', component: User, name: '用户管理' },  
50 - { path: '/role', component: Role, name: '角色管理' },  
51 - { path: '/perm', component: Perm, name: '权限管理' },  
52 - { path: '/log', component: LOG, name: '系统日志' }, 58 + {path: '/user', component: User, name: '用户管理'},
  59 + {path: '/role', component: Role, name: '角色管理'},
  60 + {path: '/perm', component: Perm, name: '权限管理'},
  61 + {path: '/log', component: LOG, name: '系统日志'},
53 ] 62 ]
54 }, 63 },
55 { 64 {
@@ -58,8 +67,32 @@ let routes = [ @@ -58,8 +67,32 @@ let routes = [
58 name: '代理人', 67 name: '代理人',
59 iconCls: 'fa fa-id-card-o', 68 iconCls: 'fa fa-id-card-o',
60 children: [ 69 children: [
61 - { path: '/pre', component: PreManifest, name: '预配' },  
62 - { path: '/org', component: OrgManifest, name: '进港' } 70 + {path: '/pre1', component: PreManifest, name: '预配'},
  71 + ]
  72 + },
  73 + {
  74 + path: '/output',
  75 + component: Home,
  76 + name: '出港业务申报',
  77 + iconCls: 'el-icon-collection',
  78 + children: [
  79 + {path: '/flight', component: ExitFlight, name: '出港航班申报'},
  80 + {path: '/pre', component: ExitPre, name: '出港预配舱单'},
  81 + {path: '/manifest', component: ExitManifest, name: '出港运单申报'},
  82 + {path: '/arrive', component: ExitArrive, name: '出港运抵'},
  83 + {path: '/loadingView', component: ExitFlightDesc, name: '出港航班信息'},
  84 + {path: '/loading', component: ExitLoading, name: '出港装载'},
  85 + {path: '/tidy', component: ExitTidy, name: '出港理货'}
  86 + ]
  87 + },
  88 + {
  89 + path: '/lost',
  90 + component: Home,
  91 + name: '落装改配申报',
  92 + iconCls:'el-icon-goods',
  93 + children:[
  94 + {path:'/lostLoad',component:LostLoad,name:'落装业务申报'},
  95 + // {path:'/lostLoadChange',component:LostLoadChange,name:'改配业务申报'}
63 ] 96 ]
64 }, 97 },
65 { 98 {
@@ -68,8 +101,8 @@ let routes = [ @@ -68,8 +101,8 @@ let routes = [
68 name: '导航二', 101 name: '导航二',
69 iconCls: 'fa fa-id-card-o', 102 iconCls: 'fa fa-id-card-o',
70 children: [ 103 children: [
71 - { path: '/page4', component: Page4, name: '页面4' },  
72 - { path: '/page5', component: Page5, name: '页面5' } 104 + {path: '/page4', component: Page4, name: '页面4'},
  105 + {path: '/page5', component: Page5, name: '页面5'}
73 ] 106 ]
74 }, 107 },
75 { 108 {
@@ -79,7 +112,7 @@ let routes = [ @@ -79,7 +112,7 @@ let routes = [
79 iconCls: 'fa fa-address-card', 112 iconCls: 'fa fa-address-card',
80 leaf: true,//只有一个节点 113 leaf: true,//只有一个节点
81 children: [ 114 children: [
82 - { path: '/page6', component: Page6, name: '导航三' } 115 + {path: '/page6', component: Page6, name: '导航三'}
83 ] 116 ]
84 }, 117 },
85 { 118 {
@@ -88,13 +121,13 @@ let routes = [ @@ -88,13 +121,13 @@ let routes = [
88 name: 'Charts', 121 name: 'Charts',
89 iconCls: 'fa fa-bar-chart', 122 iconCls: 'fa fa-bar-chart',
90 children: [ 123 children: [
91 - { path: '/echarts', component: echarts, name: 'echarts' } 124 + {path: '/echarts', component: echarts, name: 'echarts'}
92 ] 125 ]
93 }, 126 },
94 { 127 {
95 path: '*', 128 path: '*',
96 hidden: true, 129 hidden: true,
97 - redirect: { path: '/404' } 130 + redirect: {path: '/404'}
98 } 131 }
99 ]; 132 ];
100 let initRouters = routes.concat(); 133 let initRouters = routes.concat();
@@ -105,7 +138,7 @@ let setUserMenus = function (list) { @@ -105,7 +138,7 @@ let setUserMenus = function (list) {
105 * 处理登陆后的账号对应的菜单 138 * 处理登陆后的账号对应的菜单
106 * @param menuList 139 * @param menuList
107 */ 140 */
108 -let handleMenuList = function (router,menu) { 141 +let handleMenuList = function (router, menu) {
109 var _self = this; 142 var _self = this;
110 var routerName = ""; 143 var routerName = "";
111 router.forEach(function (v_router) { 144 router.forEach(function (v_router) {
@@ -118,16 +151,16 @@ let handleMenuList = function (router,menu) { @@ -118,16 +151,16 @@ let handleMenuList = function (router,menu) {
118 151
119 //匹配到继续判断是否子元素,有子元素继续递归 152 //匹配到继续判断是否子元素,有子元素继续递归
120 if (result) { 153 if (result) {
121 - if(v_router.children) {  
122 - _self.handleMenuList(v_router.children,result.children); 154 + if (v_router.children) {
  155 + _self.handleMenuList(v_router.children, result.children);
123 } 156 }
124 //没有则可以移除 157 //没有则可以移除
125 - }else {  
126 - router.splice(router.findIndex(itm => itm.name === routerName ),1); 158 + } else {
  159 + router.splice(router.findIndex(itm => itm.name === routerName), 1);
127 } 160 }
128 }) 161 })
129 }); 162 });
130 } 163 }
131 export default { 164 export default {
132 - routes,setUserMenus,handleMenuList,initRouters 165 + routes, setUserMenus, handleMenuList, initRouters
133 }; 166 };
@@ -35,6 +35,18 @@ export function validAlphabets(str) { @@ -35,6 +35,18 @@ export function validAlphabets(str) {
35 return reg.test(str) 35 return reg.test(str)
36 } 36 }
37 37
  38 +/* 大小写字母数字*/
  39 +export function validAlphabetsAndNum(str) {
  40 + const reg = /^[0-9A-Za-z]+$/
  41 + return reg.test(str)
  42 +}
  43 +
  44 +/* 大小写字母数字空格*/
  45 +export function validAlphabetsAndSpanceKey(str) {
  46 + const reg = /^[0-9a-zA-Z ]+$/
  47 + return reg.test(str)
  48 +}
  49 +
38 /** 50 /**
39 * 航班校验 51 * 航班校验
40 */ 52 */
1 <template> 1 <template>
2 - <el-row class="container">  
3 - <el-col :span="24" class="header">  
4 - <el-col :span="10" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'">  
5 - {{collapsed?'':sysName}}  
6 - </el-col>  
7 - <el-col :span="10">  
8 - <div class="tools" @click.prevent="collapse">  
9 - <i class="fa fa-align-justify"></i>  
10 - </div>  
11 - </el-col>  
12 - <el-col :span="4" class="userinfo">  
13 - <el-dropdown trigger="hover">  
14 - <span class="el-dropdown-link userinfo-inner"><img :src="this.sysUserAvatar" /> {{sysUserName}}</span>  
15 - <el-dropdown-menu slot="dropdown">  
16 - <el-dropdown-item>我的消息</el-dropdown-item>  
17 - <el-dropdown-item>设置</el-dropdown-item>  
18 - <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>  
19 - </el-dropdown-menu>  
20 - </el-dropdown>  
21 - </el-col>  
22 - </el-col>  
23 - <el-col :span="24" class="main">  
24 - <aside :class="collapsed?'menu-collapsed':'menu-expanded'">  
25 - <!--导航菜单-->  
26 - <el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen" @close="handleclose" @select="handleselect" unique-opened router v-show="!collapsed" style="min-width: 230px">  
27 - <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">  
28 - <el-submenu :index="index+''" v-if="!item.leaf">  
29 - <template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>  
30 - <el-menu-item v-for="child in item.children" :index="child.path" :key="child.path" v-if="!child.hidden">{{child.name}}</el-menu-item>  
31 - </el-submenu>  
32 - <el-menu-item v-if="item.leaf&&item.children.length>0" :index="item.children[0].path"><i :class="item.iconCls"></i>{{item.children[0].name}}</el-menu-item>  
33 - </template>  
34 - </el-menu>  
35 - <!--导航菜单-折叠后-->  
36 - <ul class="el-menu el-menu-vertical-demo collapsed" v-show="collapsed" ref="menuCollapsed">  
37 - <li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item">  
38 - <template v-if="!item.leaf">  
39 - <div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div>  
40 - <ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)" @mouseout="showMenu(index,false)">  
41 - <li v-for="child in item.children" v-if="!child.hidden" :key="child.path" class="el-menu-item" style="padding-left: 40px;" :class="$route.path==child.path?'is-active':''" @click="$router.push(child.path)">{{child.name}}</li>  
42 - </ul>  
43 - </template>  
44 - <template v-else>  
45 - <li class="el-submenu">  
46 - <div class="el-submenu__title el-menu-item" style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;" :class="$route.path==item.children[0].path?'is-active':''" @click="$router.push(item.children[0].path)"><i :class="item.iconCls"></i></div>  
47 - </li>  
48 - </template>  
49 - </li>  
50 - </ul>  
51 - </aside>  
52 - <section class="content-container">  
53 - <div class="grid-content bg-purple-light">  
54 - <el-col :span="24" class="breadcrumb-container">  
55 - <strong class="title">{{$route.name}}</strong>  
56 - <el-breadcrumb separator="/" class="breadcrumb-inner">  
57 - <el-breadcrumb-item v-for="item in $route.matched" :key="item.path">  
58 - {{ item.name }}  
59 - </el-breadcrumb-item>  
60 - </el-breadcrumb>  
61 - </el-col>  
62 - <el-col :span="24" class="content-wrapper">  
63 - <transition name="fade" mode="out-in">  
64 - <router-view></router-view>  
65 - </transition>  
66 - </el-col>  
67 - </div>  
68 - </section>  
69 - </el-col>  
70 - </el-row> 2 + <el-row class="container">
  3 + <el-col :span="24" class="header">
  4 + <el-col :span="10" class="logo" :class="collapsed?'logo-collapse-width':'logo-width'">
  5 + {{collapsed?'':sysName}}
  6 + </el-col>
  7 + <el-col :span="10">
  8 + <div class="tools" @click.prevent="collapse">
  9 + <i class="fa fa-align-justify"></i>
  10 + </div>
  11 + </el-col>
  12 + <el-col :span="4" class="userinfo">
  13 + <el-dropdown trigger="hover">
  14 + <span class="el-dropdown-link userinfo-inner"><img
  15 + :src="this.sysUserAvatar"/> {{sysUserName}}</span>
  16 + <el-dropdown-menu slot="dropdown">
  17 + <el-dropdown-item>我的消息</el-dropdown-item>
  18 + <el-dropdown-item>设置</el-dropdown-item>
  19 + <el-dropdown-item divided @click.native="logout">退出登录</el-dropdown-item>
  20 + </el-dropdown-menu>
  21 + </el-dropdown>
  22 + </el-col>
  23 + </el-col>
  24 + <el-col :span="24" class="main">
  25 + <aside :class="collapsed?'menu-collapsed':'menu-expanded'">
  26 + <!--导航菜单-->
  27 + <el-menu :default-active="$route.path" class="el-menu-vertical-demo" @open="handleopen"
  28 + @close="handleclose" @select="handleselect" unique-opened router v-show="!collapsed"
  29 + style="min-width: 230px">
  30 + <template v-for="(item,index) in $router.options.routes" v-if="!item.hidden">
  31 + <el-submenu :index="index+''" v-if="!item.leaf">
  32 + <template slot="title"><i :class="item.iconCls"></i>{{item.name}}</template>
  33 + <el-menu-item v-for="child in item.children" :index="child.path" :key="child.path"
  34 + v-if="!child.hidden">{{child.name}}
  35 + </el-menu-item>
  36 + </el-submenu>
  37 + <el-menu-item v-if="item.leaf&&item.children.length>0" :index="item.children[0].path"><i
  38 + :class="item.iconCls"></i>{{item.children[0].name}}
  39 + </el-menu-item>
  40 + </template>
  41 + </el-menu>
  42 + <!--导航菜单-折叠后-->
  43 + <ul class="el-menu el-menu-vertical-demo collapsed" v-show="collapsed" ref="menuCollapsed">
  44 + <li v-for="(item,index) in $router.options.routes" v-if="!item.hidden" class="el-submenu item">
  45 + <template v-if="!item.leaf">
  46 + <div class="el-submenu__title" style="padding-left: 20px;" @mouseover="showMenu(index,true)"
  47 + @mouseout="showMenu(index,false)"><i :class="item.iconCls"></i></div>
  48 + <ul class="el-menu submenu" :class="'submenu-hook-'+index" @mouseover="showMenu(index,true)"
  49 + @mouseout="showMenu(index,false)">
  50 + <li v-for="child in item.children" v-if="!child.hidden" :key="child.path"
  51 + class="el-menu-item" style="padding-left: 40px;"
  52 + :class="$route.path==child.path?'is-active':''" @click="$router.push(child.path)">
  53 + {{child.name}}
  54 + </li>
  55 + </ul>
  56 + </template>
  57 + <template v-else>
  58 + <li class="el-submenu">
  59 + <div class="el-submenu__title el-menu-item"
  60 + style="padding-left: 20px;height: 56px;line-height: 56px;padding: 0 20px;"
  61 + :class="$route.path==item.children[0].path?'is-active':''"
  62 + @click="$router.push(item.children[0].path)"><i :class="item.iconCls"></i></div>
  63 + </li>
  64 +</template>
  65 +</li>
  66 +</ul>
  67 +</aside>
  68 +<section class="content-container">
  69 + <div class="grid-content bg-purple-light">
  70 + <el-col :span="24" class="breadcrumb-container">
  71 + <strong class="title">{{$route.name}}</strong>
  72 + <el-breadcrumb separator="/" class="breadcrumb-inner">
  73 + <el-breadcrumb-item v-for="item in $route.matched" :key="item.path">
  74 + {{ item.name }}
  75 + </el-breadcrumb-item>
  76 + </el-breadcrumb>
  77 + </el-col>
  78 + <el-col :span="24" class="content-wrapper">
  79 + <transition name="fade" mode="out-in">
  80 + <router-view :key="$route.path +$route.query.t"></router-view>
  81 + </transition>
  82 + </el-col>
  83 + </div>
  84 +</section>
  85 +</el-col>
  86 +</el-row>
71 </template> 87 </template>
72 88
73 <script> 89 <script>
74 import rt from '../routes' 90 import rt from '../routes'
  91 +
75 export default { 92 export default {
76 93
77 - data() {  
78 - return {  
79 - sysName:'流浪地球管理系统',  
80 - collapsed:false,  
81 - sysUserName: '',  
82 - sysUserAvatar: '',  
83 - form: {  
84 - name: '',  
85 - region: '',  
86 - date1: '',  
87 - date2: '',  
88 - delivery: false,  
89 - type: [],  
90 - resource: '',  
91 - desc: ''  
92 - }  
93 - }  
94 - },  
95 - methods: {  
96 - onSubmit() {  
97 - console.log('submit!');  
98 - },  
99 - handleopen() {  
100 - console.log('handleopen');  
101 - },  
102 - handleclose() {  
103 - console.log('handleclose');  
104 - },  
105 - handleselect: function (a, b) {  
106 - console.log('handleselect!');  
107 - },  
108 - //退出登录  
109 - logout: function () {  
110 - var _this = this;  
111 - this.$confirm('确认退出吗?', '提示', {  
112 - //type: 'warning'  
113 - }).then(() => {  
114 - sessionStorage.removeItem('user'); 94 + provide() {
  95 + return {
  96 + reload: this.reload
  97 + }
  98 + },
  99 + data() {
  100 + return {
  101 + sysName: '流浪地球管理系统',
  102 + collapsed: false,
  103 + sysUserName: '',
  104 + sysUserAvatar: '',
  105 + isRouterAlive: true,
  106 + form: {
  107 + name: '',
  108 + region: '',
  109 + date1: '',
  110 + date2: '',
  111 + delivery: false,
  112 + type: [],
  113 + resource: '',
  114 + desc: ''
  115 + }
  116 + }
  117 + },
  118 + methods: {
  119 + reload() {
  120 + this.$nextTick(function () {
  121 + this.$router.push({
  122 + path: this.$router.path,
  123 + query:{
  124 + t: new Date().getTime()
  125 + }
  126 + })
  127 + })
  128 + },
  129 + onSubmit() {
  130 + console.log('submit!');
  131 + },
  132 + handleopen() {
  133 + console.log('handleopen');
  134 + },
  135 + handleclose() {
  136 + console.log('handleclose');
  137 + },
  138 + handleselect: function (a, b) {
  139 + this.reload()
  140 + },
  141 + //退出登录
  142 + logout: function () {
  143 + var _this = this;
  144 + this.$confirm('确认退出吗?', '提示', {
  145 + //type: 'warning'
  146 + }).then(() => {
  147 + sessionStorage.removeItem('user');
115 sessionStorage.removeItem('menu'); 148 sessionStorage.removeItem('menu');
116 149
117 //退出后初始化原来的路由 150 //退出后初始化原来的路由
118 - let sysRoutes = JSON.parse(sessionStorage.getItem('sysMenu'));  
119 - console.log(sysRoutes);  
120 - _this.$router.options.routes = sysRoutes;  
121 -  
122 - _this.$router.push('/login');  
123 - }).catch(() => {  
124 -  
125 - });  
126 -  
127 -  
128 - },  
129 - //折叠导航栏  
130 - collapse:function(){  
131 - this.collapsed=!this.collapsed;  
132 - },  
133 - showMenu(i,status){  
134 - this.$refs.menuCollapsed.getElementsByClassName('submenu-hook-'+i)[0].style.display=status?'block':'none';  
135 - }  
136 - },  
137 - mounted() { 151 + let sysRoutes = JSON.parse(sessionStorage.getItem('sysMenu'));
  152 + // console.log(sysRoutes);
  153 + _this.$router.options.routes = sysRoutes;
  154 +
  155 + _this.$router.push('/login');
  156 + }).catch(() => {
  157 +
  158 + });
  159 +
  160 +
  161 + },
  162 + //折叠导航栏
  163 + collapse: function () {
  164 + this.collapsed = !this.collapsed;
  165 + },
  166 + showMenu(i, status) {
  167 + this.$refs.menuCollapsed.getElementsByClassName('submenu-hook-' + i)[0].style.display = status ? 'block' : 'none';
  168 + }
  169 + },
  170 + mounted() {
138 var _this = this; 171 var _this = this;
139 - var user = sessionStorage.getItem('user');  
140 - if (user) {  
141 - user = JSON.parse(user);  
142 - this.sysUserName = user.username || '';  
143 - this.sysUserAvatar = user.userface || '/static/images/faceDefault.jpg';  
144 - }  
145 - //操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由  
146 - var userRouters = sessionStorage.getItem('menu');  
147 - if (userRouters) { 172 + var user = sessionStorage.getItem('user');
  173 + if (user) {
  174 + user = JSON.parse(user);
  175 + this.sysUserName = user.username || '';
  176 + this.sysUserAvatar = user.userface || '/static/images/faceDefault.jpg';
  177 + }
  178 + //操作路由,判断本地存储的用户栏目列表是否存在,如果存在则加载路由
  179 + var userRouters = sessionStorage.getItem('menu');
  180 + if (userRouters) {
148 userRouters = JSON.parse(userRouters); 181 userRouters = JSON.parse(userRouters);
149 _this.$router.options.routes = userRouters; 182 _this.$router.options.routes = userRouters;
150 - console.log("home:");  
151 - console.log(_this.$router.options.routes);  
152 - }  
153 - }  
154 - } 183 + // console.log("home:");
  184 + // console.log(_this.$router.options.routes);
  185 + }
  186 + }
  187 + }
155 188
156 </script> 189 </script>
157 190
158 <style scoped lang="scss"> 191 <style scoped lang="scss">
159 - @import '~scss_vars';  
160 -  
161 - .container {  
162 - position: absolute;  
163 - top: 0px;  
164 - bottom: 0px;  
165 - width: 100%;  
166 - .header {  
167 - height: 60px;  
168 - line-height: 60px;  
169 - background: $color-primary;  
170 - color:#fff;  
171 - .userinfo {  
172 - text-align: right;  
173 - padding-right: 35px;  
174 - float: right;  
175 - .userinfo-inner {  
176 - cursor: pointer;  
177 - color:#fff;  
178 - img {  
179 - width: 40px;  
180 - height: 40px;  
181 - border-radius: 20px;  
182 - margin: 10px 0px 10px 10px;  
183 - float: right;  
184 - }  
185 - }  
186 - }  
187 - .logo {  
188 - //width:230px;  
189 - height:60px;  
190 - font-size: 22px;  
191 - padding-left:20px;  
192 - padding-right:20px;  
193 - border-color: rgba(238,241,146,0.3);  
194 - border-right-width: 1px;  
195 - border-right-style: solid;  
196 - img {  
197 - width: 40px;  
198 - float: left;  
199 - margin: 10px 10px 10px 18px;  
200 - }  
201 - .txt {  
202 - color:#fff;  
203 - }  
204 - }  
205 - .logo-width{  
206 - width:230px;  
207 - }  
208 - .logo-collapse-width{  
209 - width:60px  
210 - }  
211 - .tools{  
212 - padding: 0px 23px;  
213 - width:14px;  
214 - height: 60px;  
215 - line-height: 60px;  
216 - cursor: pointer;  
217 - }  
218 - }  
219 - .main {  
220 - display: flex;  
221 - // background: #324057;  
222 - position: absolute;  
223 - top: 60px;  
224 - bottom: 0px;  
225 - overflow: hidden;  
226 - aside {  
227 - flex:0 0 230px;  
228 - width: 230px;  
229 - // position: absolute;  
230 - // top: 0px;  
231 - // bottom: 0px;  
232 - .el-menu{  
233 - height: 100%;  
234 - }  
235 - .collapsed{  
236 - width:60px;  
237 - .item{  
238 - position: relative;  
239 - }  
240 - .submenu{  
241 - position:absolute;  
242 - top:0px;  
243 - left:60px;  
244 - z-index:99999;  
245 - height:auto;  
246 - display:none;  
247 - }  
248 -  
249 - }  
250 - }  
251 - .menu-collapsed{  
252 - flex:0 0 60px;  
253 - width: 60px;  
254 - }  
255 - .menu-expanded{  
256 - flex:0 0 230px;  
257 - width: 230px;  
258 - }  
259 - .menu-expanded ul{  
260 - width: 230px;  
261 - }  
262 - .content-container {  
263 - // background: #f1f2f7;  
264 - flex:1;  
265 - // position: absolute;  
266 - // right: 0px;  
267 - // top: 0px;  
268 - // bottom: 0px;  
269 - // left: 230px;  
270 - overflow-y: scroll;  
271 - padding: 20px;  
272 - .breadcrumb-container {  
273 - //margin-bottom: 15px;  
274 - .title {  
275 - width: 200px;  
276 - float: left;  
277 - color: #475669;  
278 - }  
279 - .breadcrumb-inner {  
280 - float: right;  
281 - }  
282 - }  
283 - .content-wrapper {  
284 - background-color: #fff;  
285 - box-sizing: border-box;  
286 - }  
287 - }  
288 - }  
289 - } 192 + @import '~scss_vars';
  193 +
  194 + .container {
  195 + position: absolute;
  196 + top: 0px;
  197 + bottom: 0px;
  198 + width: 100%;
  199 +
  200 + .header {
  201 + height: 60px;
  202 + line-height: 60px;
  203 + background: $color-primary;
  204 + color: #fff;
  205 +
  206 + .userinfo {
  207 + text-align: right;
  208 + padding-right: 35px;
  209 + float: right;
  210 +
  211 + .userinfo-inner {
  212 + cursor: pointer;
  213 + color: #fff;
  214 +
  215 + img {
  216 + width: 40px;
  217 + height: 40px;
  218 + border-radius: 20px;
  219 + margin: 10px 0px 10px 10px;
  220 + float: right;
  221 + }
  222 + }
  223 + }
  224 +
  225 + .logo {
  226 + //width:230px;
  227 + height: 60px;
  228 + font-size: 22px;
  229 + padding-left: 20px;
  230 + padding-right: 20px;
  231 + border-color: rgba(238, 241, 146, 0.3);
  232 + border-right-width: 1px;
  233 + border-right-style: solid;
  234 +
  235 + img {
  236 + width: 40px;
  237 + float: left;
  238 + margin: 10px 10px 10px 18px;
  239 + }
  240 +
  241 + .txt {
  242 + color: #fff;
  243 + }
  244 + }
  245 +
  246 + .logo-width {
  247 + width: 230px;
  248 + }
  249 +
  250 + .logo-collapse-width {
  251 + width: 60px
  252 + }
  253 +
  254 + .tools {
  255 + padding: 0px 23px;
  256 + width: 14px;
  257 + height: 60px;
  258 + line-height: 60px;
  259 + cursor: pointer;
  260 + }
  261 + }
  262 +
  263 + .main {
  264 + display: flex;
  265 + // background: #324057;
  266 + position: absolute;
  267 + top: 60px;
  268 + bottom: 0px;
  269 + overflow: hidden;
  270 +
  271 + aside {
  272 + flex: 0 0 230px;
  273 + width: 230px;
  274 + // position: absolute;
  275 + // top: 0px;
  276 + // bottom: 0px;
  277 + .el-menu {
  278 + height: 100%;
  279 + }
  280 +
  281 + .collapsed {
  282 + width: 60px;
  283 +
  284 + .item {
  285 + position: relative;
  286 + }
  287 +
  288 + .submenu {
  289 + position: absolute;
  290 + top: 0px;
  291 + left: 60px;
  292 + z-index: 99999;
  293 + height: auto;
  294 + display: none;
  295 + }
  296 +
  297 + }
  298 + }
  299 +
  300 + .menu-collapsed {
  301 + flex: 0 0 60px;
  302 + width: 60px;
  303 + }
  304 +
  305 + .menu-expanded {
  306 + flex: 0 0 230px;
  307 + width: 230px;
  308 + }
  309 +
  310 + .menu-expanded ul {
  311 + width: 230px;
  312 + }
  313 +
  314 + .content-container {
  315 + // background: #f1f2f7;
  316 + flex: 1;
  317 + // position: absolute;
  318 + // right: 0px;
  319 + // top: 0px;
  320 + // bottom: 0px;
  321 + // left: 230px;
  322 + overflow-y: scroll;
  323 + padding: 20px;
  324 +
  325 + .breadcrumb-container {
  326 + //margin-bottom: 15px;
  327 + .title {
  328 + width: 200px;
  329 + float: left;
  330 + color: #475669;
  331 + }
  332 +
  333 + .breadcrumb-inner {
  334 + float: right;
  335 + }
  336 + }
  337 +
  338 + .content-wrapper {
  339 + background-color: #fff;
  340 + box-sizing: border-box;
  341 + }
  342 + }
  343 + }
  344 + }
290 </style> 345 </style>
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 <el-button v-waves :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">{{ $t('table.export') }}</el-button> 9 <el-button v-waves :loading="downloadLoading" class="filter-item" type="primary" icon="el-icon-download" @click="handleDownload">{{ $t('table.export') }}</el-button>
10 <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-message" @click="handleCreate">批量发送</el-button> 10 <el-button class="filter-item" style="margin-left: 10px;" type="primary" icon="el-icon-message" @click="handleCreate">批量发送</el-button>
11 </div> 11 </div>
12 - <tree-table :data="data" :eval-func="func" :eval-args="args" :expand-all="expandAll" stripe style="font-size: 13px" border @selection-change="handleSelectionChange"> 12 + <tree-table :data="tableData" :eval-func="func" :eval-args="args" :expand-all="expandAll" stripe style="font-size: 13px" border @selection-change="handleSelectionChange">
13 <el-table-column prop="waybillNo" label="主单号" width="110px" align="center" sortable> 13 <el-table-column prop="waybillNo" label="主单号" width="110px" align="center" sortable>
14 <template slot-scope="scope"> 14 <template slot-scope="scope">
15 <span>{{ scope.row.waybillNo }}</span> 15 <span>{{ scope.row.waybillNo }}</span>
@@ -79,7 +79,7 @@ @@ -79,7 +79,7 @@
79 </tree-table> 79 </tree-table>
80 <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" /> 80 <pagination v-show="total>0" :total="total" :page.sync="listQuery.page" :limit.sync="listQuery.limit" @pagination="getList" />
81 81
82 - <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" fullscreen="true"> 82 + <el-dialog :title="textMap[dialogStatus]" :visible.sync="dialogFormVisible" fullscreen>
83 <el-form ref="" :inline="true" :rules="rules" :model="temp" label-width="100px" style="font-size: 13px"> 83 <el-form ref="" :inline="true" :rules="rules" :model="temp" label-width="100px" style="font-size: 13px">
84 <div> 84 <div>
85 <el-tag type="info" effect="plain"> 85 <el-tag type="info" effect="plain">
@@ -402,6 +402,7 @@ export default { @@ -402,6 +402,7 @@ export default {
402 return { 402 return {
403 func: treeToArray, 403 func: treeToArray,
404 expandAll: true, 404 expandAll: true,
  405 + fullscreen:true,
405 total: 1, 406 total: 1,
406 resend: true, 407 resend: true,
407 loading:false, 408 loading:false,
@@ -427,6 +428,7 @@ export default { @@ -427,6 +428,7 @@ export default {
427 flightDate: '', 428 flightDate: '',
428 custom: '' 429 custom: ''
429 }, 430 },
  431 + tableData:[],
430 temp: { 432 temp: {
431 id: undefined, 433 id: undefined,
432 waybillNo: '', 434 waybillNo: '',
@@ -440,99 +442,7 @@ export default { @@ -440,99 +442,7 @@ export default {
440 maniWeight: undefined 442 maniWeight: undefined
441 }, 443 },
442 manifestCustoms: ['4604', '4620', '4613'], 444 manifestCustoms: ['4604', '4620', '4613'],
443 - data: [  
444 - {  
445 - id: 0,  
446 - waybillNo: '580-20728399',  
447 - houseWaybillNo: '',  
448 - custom: '4604',  
449 - flight: 'CV9733',  
450 - flightDate: '2019-06-21',  
451 - oriStation: 'LUX',  
452 - desStation: 'CGO',  
453 - maniPiece: 50,  
454 - maniWeight: 21321,  
455 - status: '41301',  
456 - customText: ' 预配舱单主要数据传输成功。',  
457 - customComplate: 25  
458 - },  
459 - {  
460 - id: 1,  
461 - waybillNo: '580-20728396',  
462 - houseWaybillNo: '',  
463 - custom: '4604',  
464 - flight: 'CV9731',  
465 - flightDate: '2019-06-21',  
466 - oriStation: 'LUX',  
467 - desStation: 'CGO',  
468 - maniPiece: 50,  
469 - maniWeight: 21321,  
470 - status: 'wrong',  
471 - customText: ' 预配回执异常 ',  
472 - customComplate: 25,  
473 - children: [  
474 - {  
475 - id: 2,  
476 - waybillNo: '580-20728396',  
477 - houseWaybillNo: 'ADDSS21231',  
478 - custom: '4604',  
479 - flight: 'CV9731',  
480 - flightDate: '2019-06-21',  
481 - oriStation: 'LUX',  
482 - desStation: 'CGO',  
483 - maniPiece: 50,  
484 - maniWeight: 21321,  
485 - status: '10002',  
486 - customText: ' 已暂存',  
487 - customComplate: 0  
488 - },  
489 - {  
490 - id: 3,  
491 - waybillNo: '580-20728396',  
492 - houseWaybillNo: 'SDE3411',  
493 - custom: '4604',  
494 - flight: 'CV9731',  
495 - flightDate: '2019-06-21',  
496 - oriStation: 'LUX',  
497 - desStation: 'CGO',  
498 - maniPiece: 50,  
499 - maniWeight: 21321,  
500 - status: '45103',  
501 - customText: ' 45103 该提(运)单的运抵报告重复申报,海关审核不通过。 关区代码:4604。',  
502 - customComplate: 100  
503 - },  
504 - {  
505 - id: 4,  
506 - waybillNo: '580-20728396',  
507 - houseWaybillNo: 'SDE3411',  
508 - custom: '4604',  
509 - flight: 'CV9731',  
510 - flightDate: '2019-06-21',  
511 - oriStation: 'LUX',  
512 - desStation: 'CGO',  
513 - maniPiece: 50,  
514 - maniWeight: 21321,  
515 - status: '10000',  
516 - customText: ' 已删除 ',  
517 - customComplate: 50  
518 - }  
519 - ]  
520 - },  
521 - {  
522 - id: 4,  
523 - waybillNo: '580-20728391',  
524 - houseWaybillNo: '',  
525 - custom: '4604',  
526 - flight: 'KA740',  
527 - flightDate: '2019-06-29',  
528 - oriStation: 'LUX',  
529 - desStation: 'CGO',  
530 - maniPiece: 50,  
531 - maniWeight: 21321,  
532 - status: '10003',  
533 - customText: ' 已发送预配舱单 '  
534 - }  
535 - ], 445 +
536 pickerOptions: { 446 pickerOptions: {
537 shortcuts: [ 447 shortcuts: [
538 { 448 {
@@ -580,6 +490,10 @@ export default { @@ -580,6 +490,10 @@ export default {
580 } 490 }
581 } 491 }
582 }, 492 },
  493 + created(){
  494 + console.log(this.$route.params.scopeRow)
  495 + this.getList()
  496 + },
583 methods: { 497 methods: {
584 message(row) { 498 message(row) {
585 this.$message.info(row.event) 499 this.$message.info(row.event)
@@ -624,7 +538,369 @@ export default { @@ -624,7 +538,369 @@ export default {
624 row.status = status 538 row.status = status
625 }, 539 },
626 getList() { 540 getList() {
  541 + this.tableData = [
  542 + {
  543 + id: 0,
  544 + waybillNo: '580-20728399',
  545 + houseWaybillNo: '',
  546 + custom: '4604',
  547 + flight: 'CV9733',
  548 + flightDate: '2019-06-21',
  549 + oriStation: 'LUX',
  550 + desStation: 'CGO',
  551 + maniPiece: 50,
  552 + maniWeight: 21321,
  553 + status: '41301',
  554 + customText: ' 预配舱单主要数据传输成功。',
  555 + customComplate: 25
  556 + },
  557 + {
  558 + id: 1,
  559 + waybillNo: '580-20728396',
  560 + houseWaybillNo: '',
  561 + custom: '4604',
  562 + flight: 'CV9731',
  563 + flightDate: '2019-06-21',
  564 + oriStation: 'LUX',
  565 + desStation: 'CGO',
  566 + maniPiece: 50,
  567 + maniWeight: 21321,
  568 + status: 'wrong',
  569 + customText: ' 预配回执异常 ',
  570 + customComplate: 25,
  571 + children: [
  572 + {
  573 + id: 2,
  574 + waybillNo: '580-20728396',
  575 + houseWaybillNo: 'ADDSS21231',
  576 + custom: '4604',
  577 + flight: 'CV9731',
  578 + flightDate: '2019-06-21',
  579 + oriStation: 'LUX',
  580 + desStation: 'CGO',
  581 + maniPiece: 50,
  582 + maniWeight: 21321,
  583 + status: '10002',
  584 + customText: ' 已暂存',
  585 + customComplate: 0
  586 + },
  587 + {
  588 + id: 3,
  589 + waybillNo: '580-20728396',
  590 + houseWaybillNo: 'SDE3411',
  591 + custom: '4604',
  592 + flight: 'CV9731',
  593 + flightDate: '2019-06-21',
  594 + oriStation: 'LUX',
  595 + desStation: 'CGO',
  596 + maniPiece: 50,
  597 + maniWeight: 21321,
  598 + status: '45103',
  599 + customText: ' 45103 该提(运)单的运抵报告重复申报,海关审核不通过。 关区代码:4604。',
  600 + customComplate: 100
  601 + },
  602 + {
  603 + id: 4,
  604 + waybillNo: '580-20728396',
  605 + houseWaybillNo: 'SDE3411',
  606 + custom: '4604',
  607 + flight: 'CV9731',
  608 + flightDate: '2019-06-21',
  609 + oriStation: 'LUX',
  610 + desStation: 'CGO',
  611 + maniPiece: 50,
  612 + maniWeight: 21321,
  613 + status: '10000',
  614 + customText: ' 已删除 ',
  615 + customComplate: 50
  616 + }
  617 + ]
  618 + },
  619 + {
  620 + id: 4,
  621 + waybillNo: '580-20728391',
  622 + houseWaybillNo: '',
  623 + custom: '4604',
  624 + flight: 'KA740',
  625 + flightDate: '2019-06-29',
  626 + oriStation: 'LUX',
  627 + desStation: 'CGO',
  628 + maniPiece: 50,
  629 + maniWeight: 21321,
  630 + status: '10003',
  631 + customText: ' 已发送预配舱单 '
  632 + },
  633 + {
  634 + id: 5,
  635 + waybillNo: '580-20728399',
  636 + houseWaybillNo: '',
  637 + custom: '4604',
  638 + flight: 'CV9733',
  639 + flightDate: '2019-06-21',
  640 + oriStation: 'LUX',
  641 + desStation: 'CGO',
  642 + maniPiece: 50,
  643 + maniWeight: 21321,
  644 + status: '41301',
  645 + customText: ' 预配舱单主要数据传输成功。',
  646 + customComplate: 25
  647 + },
  648 + {
  649 + id: 6,
  650 + waybillNo: '580-20728399',
  651 + houseWaybillNo: '',
  652 + custom: '4604',
  653 + flight: 'CV9733',
  654 + flightDate: '2019-06-21',
  655 + oriStation: 'LUX',
  656 + desStation: 'CGO',
  657 + maniPiece: 50,
  658 + maniWeight: 21321,
  659 + status: '41301',
  660 + customText: ' 预配舱单主要数据传输成功。',
  661 + customComplate: 25
  662 + },
  663 + {
  664 + id: 7,
  665 + waybillNo: '580-20728399',
  666 + houseWaybillNo: '',
  667 + custom: '4604',
  668 + flight: 'CV9733',
  669 + flightDate: '2019-06-21',
  670 + oriStation: 'LUX',
  671 + desStation: 'CGO',
  672 + maniPiece: 50,
  673 + maniWeight: 21321,
  674 + status: '41301',
  675 + customText: ' 预配舱单主要数据传输成功。',
  676 + customComplate: 25
  677 + },
  678 + {
  679 + id: 8,
  680 + waybillNo: '580-20728399',
  681 + houseWaybillNo: '',
  682 + custom: '4604',
  683 + flight: 'CV9733',
  684 + flightDate: '2019-06-21',
  685 + oriStation: 'LUX',
  686 + desStation: 'CGO',
  687 + maniPiece: 50,
  688 + maniWeight: 21321,
  689 + status: '41301',
  690 + customText: ' 预配舱单主要数据传输成功。',
  691 + customComplate: 25
  692 + },
  693 + {
  694 + id: 9,
  695 + waybillNo: '580-20728399',
  696 + houseWaybillNo: '',
  697 + custom: '4604',
  698 + flight: 'CV9733',
  699 + flightDate: '2019-06-21',
  700 + oriStation: 'LUX',
  701 + desStation: 'CGO',
  702 + maniPiece: 50,
  703 + maniWeight: 21321,
  704 + status: '41301',
  705 + customText: ' 预配舱单主要数据传输成功。',
  706 + customComplate: 25
  707 + },
  708 + {
  709 + id: 10,
  710 + waybillNo: '580-20728399',
  711 + houseWaybillNo: '',
  712 + custom: '4604',
  713 + flight: 'CV9733',
  714 + flightDate: '2019-06-21',
  715 + oriStation: 'LUX',
  716 + desStation: 'CGO',
  717 + maniPiece: 50,
  718 + maniWeight: 21321,
  719 + status: '41301',
  720 + customText: ' 预配舱单主要数据传输成功。',
  721 + customComplate: 25
  722 + },
  723 + {
  724 + id: 11,
  725 + waybillNo: '580-20728399',
  726 + houseWaybillNo: '',
  727 + custom: '4604',
  728 + flight: 'CV9733',
  729 + flightDate: '2019-06-21',
  730 + oriStation: 'LUX',
  731 + desStation: 'CGO',
  732 + maniPiece: 50,
  733 + maniWeight: 21321,
  734 + status: '41301',
  735 + customText: ' 预配舱单主要数据传输成功。',
  736 + customComplate: 25
  737 + },
  738 + {
  739 + id: 12,
  740 + waybillNo: '580-20728399',
  741 + houseWaybillNo: '',
  742 + custom: '4604',
  743 + flight: 'CV9733',
  744 + flightDate: '2019-06-21',
  745 + oriStation: 'LUX',
  746 + desStation: 'CGO',
  747 + maniPiece: 50,
  748 + maniWeight: 21321,
  749 + status: '41301',
  750 + customText: ' 预配舱单主要数据传输成功。',
  751 + customComplate: 25
  752 + },
  753 + {
  754 + id: 13,
  755 + waybillNo: '580-20728399',
  756 + houseWaybillNo: '',
  757 + custom: '4604',
  758 + flight: 'CV9733',
  759 + flightDate: '2019-06-21',
  760 + oriStation: 'LUX',
  761 + desStation: 'CGO',
  762 + maniPiece: 50,
  763 + maniWeight: 21321,
  764 + status: '41301',
  765 + customText: ' 预配舱单主要数据传输成功。',
  766 + customComplate: 25
  767 + },{
  768 + id: 14,
  769 + waybillNo: '580-20728399',
  770 + houseWaybillNo: '',
  771 + custom: '4604',
  772 + flight: 'CV9733',
  773 + flightDate: '2019-06-21',
  774 + oriStation: 'LUX',
  775 + desStation: 'CGO',
  776 + maniPiece: 50,
  777 + maniWeight: 21321,
  778 + status: '41301',
  779 + customText: ' 预配舱单主要数据传输成功。',
  780 + customComplate: 25
  781 + },
  782 + {
  783 + id: 15,
  784 + waybillNo: '580-20728399',
  785 + houseWaybillNo: '',
  786 + custom: '4604',
  787 + flight: 'CV9733',
  788 + flightDate: '2019-06-21',
  789 + oriStation: 'LUX',
  790 + desStation: 'CGO',
  791 + maniPiece: 50,
  792 + maniWeight: 21321,
  793 + status: '41301',
  794 + customText: ' 预配舱单主要数据传输成功。',
  795 + customComplate: 25
  796 + },
  797 + {
  798 + id: 16,
  799 + waybillNo: '580-20728399',
  800 + houseWaybillNo: '',
  801 + custom: '4604',
  802 + flight: 'CV9733',
  803 + flightDate: '2019-06-21',
  804 + oriStation: 'LUX',
  805 + desStation: 'CGO',
  806 + maniPiece: 50,
  807 + maniWeight: 21321,
  808 + status: '41301',
  809 + customText: ' 预配舱单主要数据传输成功。',
  810 + customComplate: 25
  811 + },
  812 + {
  813 + id: 17,
  814 + waybillNo: '580-20728399',
  815 + houseWaybillNo: '',
  816 + custom: '4604',
  817 + flight: 'CV9733',
  818 + flightDate: '2019-06-21',
  819 + oriStation: 'LUX',
  820 + desStation: 'CGO',
  821 + maniPiece: 50,
  822 + maniWeight: 21321,
  823 + status: '41301',
  824 + customText: ' 预配舱单主要数据传输成功。',
  825 + customComplate: 25
  826 + },
  827 + {
  828 + id: 18,
  829 + waybillNo: '580-20728399',
  830 + houseWaybillNo: '',
  831 + custom: '4604',
  832 + flight: 'CV9733',
  833 + flightDate: '2019-06-21',
  834 + oriStation: 'LUX',
  835 + desStation: 'CGO',
  836 + maniPiece: 50,
  837 + maniWeight: 21321,
  838 + status: '41301',
  839 + customText: ' 预配舱单主要数据传输成功。',
  840 + customComplate: 25
  841 + },
  842 + {
  843 + id: 19,
  844 + waybillNo: '580-20728399',
  845 + houseWaybillNo: '',
  846 + custom: '4604',
  847 + flight: 'CV9733',
  848 + flightDate: '2019-06-21',
  849 + oriStation: 'LUX',
  850 + desStation: 'CGO',
  851 + maniPiece: 50,
  852 + maniWeight: 21321,
  853 + status: '41301',
  854 + customText: ' 预配舱单主要数据传输成功。',
  855 + customComplate: 25
  856 + },
  857 + {
  858 + id: 20,
  859 + waybillNo: '580-20728399',
  860 + houseWaybillNo: '',
  861 + custom: '4604',
  862 + flight: 'CV9733',
  863 + flightDate: '2019-06-21',
  864 + oriStation: 'LUX',
  865 + desStation: 'CGO',
  866 + maniPiece: 50,
  867 + maniWeight: 21321,
  868 + status: '41301',
  869 + customText: ' 预配舱单主要数据传输成功。',
  870 + customComplate: 25
  871 + },
  872 + {
  873 + id: 23,
  874 + waybillNo: '580-20728399',
  875 + houseWaybillNo: '',
  876 + custom: '4604',
  877 + flight: 'CV9733',
  878 + flightDate: '2019-06-21',
  879 + oriStation: 'LUX',
  880 + desStation: 'CGO',
  881 + maniPiece: 50,
  882 + maniWeight: 21321,
  883 + status: '41301',
  884 + customText: ' 预配舱单主要数据传输成功。',
  885 + customComplate: 25
  886 + }, {
  887 + id: 22,
  888 + waybillNo: '580-20728399',
  889 + houseWaybillNo: '',
  890 + custom: '4604',
  891 + flight: 'CV9733',
  892 + flightDate: '2019-06-21',
  893 + oriStation: 'LUX',
  894 + desStation: 'CGO',
  895 + maniPiece: 50,
  896 + maniWeight: 21321,
  897 + status: '41300',
  898 + customText: ' 预配舱单主要数据传输成功。',
  899 + customComplate: 25
  900 + }
627 901
  902 + ]
  903 + this.total = this.tableData.length
628 }, 904 },
629 handleSelectionChange(val) { 905 handleSelectionChange(val) {
630 this.multipleSelection = val 906 this.multipleSelection = val
  1 +<template>
  2 + <!--<div class="app-container">-->
  3 + <div class="app-content">
  4 + <div class="filter-container">
  5 + <el-input v-model="listQuery.awba" clearable style="width: 200px;" class="filter-item" placeholder="运单号"/>
  6 + <el-input v-model="listQuery.carrier" clearable style="width: 200px;" class="filter-item" placeholder="承运人"/>
  7 + <el-input v-model="listQuery.flightno" clearable style="width: 200px;" class="filter-item" placeholder="航班号"/>
  8 + <el-date-picker v-model="listQuery.flightDate" type="date" placeholder="航班日期"
  9 + value-format="yyyy-MM-dd" class="filter-item"></el-date-picker>
  10 + </div>
  11 + <div class="filter-container">
  12 + <el-select v-model="listQuery.messageType" clearable class="filter-item" placeholder="请选择报文类型" style="width: 200px;">
  13 + <el-option v-for="item in messageTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
  14 + </el-select>
  15 + <el-select v-model="listQuery.messageStatus" clearable class="filter-item" placeholder="请选择报文状态" style="width: 200px;">
  16 + <el-option v-for="item in messageStatusList" :key="item.value" :label="item.label" :value="item.value"></el-option>
  17 + </el-select>
  18 + <el-select v-model="listQuery.customStatus" clearable class="filter-item" placeholder="请选择海关状态" style="width: 200px;">
  19 + <el-option v-for="item in customStatusList" :key="item.value" :label="item.label" :value="item.value"></el-option>
  20 + </el-select>
  21 + <el-button class="filter-item" type="primary" @click="handleSearch">查询</el-button>
  22 + <el-button class="filter-item" style="margin-left: 10px;" type="warning"
  23 + @click="handleUpdateStatus">批量修改状态</el-button>
  24 + </div>
  25 + <div class="midSpan">
  26 + <el-row>
  27 + <el-col :span="0.5">
  28 + <span style="color: red">注:</span>
  29 + </el-col>
  30 + <el-col :span="1" style="background: oldlace; margin-right: 5px" align="center">
  31 + <span>预配舱单</span>
  32 + </el-col>
  33 + <el-col :span="1" style="background: #f0f9eb; margin-right: 5px" align="center">
  34 + <span>出港运抵</span>
  35 + </el-col>
  36 + <el-col :span="1" style="background: #bce7fd; margin-right: 5px" align="center">
  37 + <span>出港装载</span>
  38 + </el-col>
  39 + <el-col :span="1" style="background: #f5ffc0" align="center">
  40 + <span>出港理货</span>
  41 + </el-col>
  42 + </el-row>
  43 + </div>
  44 + <tree-table v-loading="listLoading" :data="manifestData" :eval-func="func" :expand-all="true"
  45 + style="font-size: 13px" border @selection-change="handleSelectionChange"
  46 + :row-class-name="tableRowClassName">
  47 + <el-table-column label="航班号" width="80px" align="center">
  48 + <template slot-scope="scope">
  49 + <span>{{ scope.row.carrier }}{{ scope.row.flightno }}</span>
  50 + </template>
  51 + </el-table-column>
  52 + <el-table-column label="航班日期" width="100px" align="center">
  53 + <template slot-scope="scope">
  54 + <span>{{ scope.row.flightdate }}</span>
  55 + </template>
  56 + </el-table-column>
  57 + <el-table-column label="航段" width="100px" align="center">
  58 + <template slot-scope="scope">
  59 + <span>{{ scope.row.originstation }}-{{ scope.row.destinationstation }}</span>
  60 + </template>
  61 + </el-table-column>
  62 + <el-table-column label="主单号" width="120px" align="center" >
  63 + <template slot-scope="scope" >
  64 + <span>{{ scope.row.awba }}</span>
  65 + </template>
  66 + </el-table-column>
  67 + <el-table-column label="分单号" width="150px" align="center">
  68 + <template slot-scope="scope">
  69 + <span>{{ scope.row.awbh }}</span>
  70 + </template>
  71 + </el-table-column>
  72 + <el-table-column label="件数" width="60px" align="center">
  73 + <template slot-scope="scope">
  74 + <span>{{ scope.row.piece }}</span>
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="重量" width="60px" align="center">
  78 + <template slot-scope="scope">
  79 + <span>{{ scope.row.weight }}</span>
  80 + </template>
  81 + </el-table-column>
  82 + <el-table-column label="关区" width="60px" align="center">
  83 + <template slot-scope="scope">
  84 + <span>{{ scope.row.customcode }}</span>
  85 + </template>
  86 + </el-table-column>
  87 + <el-table-column label="时间" width="150px" align="center">
  88 + <template slot-scope="scope">
  89 + <span>{{ scope.row.actime }}</span>
  90 + </template>
  91 + </el-table-column>
  92 + <el-table-column label="状态" width="90px" align="center">
  93 + <template slot-scope="scope">
  94 + <span v-if="scope.row.status ==='01'">未发送</span>
  95 + <span v-if="scope.row.status ==='02'">已发舱单报</span>
  96 + <span v-if="scope.row.status ==='05'">舱单报退单</span>
  97 + <span v-if="scope.row.status ==='06'">舱单转人工</span>
  98 + <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
  99 + <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
  100 + <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
  101 + <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
  102 + <span v-if="scope.row.status ==='11'">舱单删除成功</span>
  103 + <span v-if="scope.row.status ==='12'">已发舱单修改报</span>
  104 + <span v-if="scope.row.status ==='13'">舱单修改报退单</span>
  105 + <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
  106 + <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
  107 + <span v-if="scope.row.status ==='16'">海关已存在</span>
  108 + </template>
  109 + </el-table-column>
  110 + <el-table-column label="回执内容" align="center" show-overflow-tooltip>
  111 + <template slot-scope="scope">
  112 + <span>{{ scope.row.customText }}</span>
  113 + <!--<div>-->
  114 + <!--<el-progress :percentage="scope.row.customComplate" :status="scope.row.status | statusFilter"/>-->
  115 + <!--</div>-->
  116 + </template>
  117 + </el-table-column>
  118 + <el-table-column label="操作" width="180px" align="center">
  119 + <template slot-scope="scope">
  120 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT2201'" @click="handleUpdate(scope.row)">预配舱单</a>
  121 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT3201'" @click="handleUpdate(scope.row)">出港运抵</a>
  122 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT4201'" @click="handleUpdate(scope.row)">出港装载</a>
  123 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT5202'" @click="handleUpdate(scope.row)">出港理货</a>
  124 + <a style="color: #1d8ce0" @click="handleUpdateStatus(scope.row)">更改状态</a>
  125 + </template>
  126 + </el-table-column>
  127 + </tree-table>
  128 + <pagination v-show="total>0" :total="total" :page.sync="listQuery.pageSize" :limit.sync="listQuery.limitSize"
  129 + @pagination="getList"/>
  130 + </div>
  131 +</template>
  132 +<script>
  133 + import treeTable from '@/components/TreeTable'
  134 + import treeToArray from '@/utils/customEval'
  135 + import Pagination from '@/components/Pagination'
  136 + import {getManifests} from "@/api/exitManifest"
  137 +
  138 + import {getMt520XListForParam} from "@/api/exitTidy";
  139 + import {getMt3201ListForParam} from "@/api/exitArrive";
  140 + import {getMt4201ListForParam} from "@/api/exitLoading";
  141 +
  142 + export default {
  143 + name: "LostLoadChange",
  144 + components: {treeTable, Pagination},
  145 + inject:['reload'],
  146 + data() {
  147 + return {
  148 + func: treeToArray,
  149 + total: 1,
  150 + listLoading: false,
  151 + listQuery: {
  152 + pageSize: 1,
  153 + limitSize: 100,
  154 + awba:undefined,
  155 + carrier: undefined,
  156 + flightno:undefined,
  157 + flightDate: new Date(),
  158 + messageType: undefined,
  159 + messageStatus: undefined,
  160 + customStatus: undefined,
  161 + },
  162 + manifestData: [],
  163 + messageTypeList: [
  164 + {label:'预配舱单',value:'MT2201'},
  165 + {label:'出港运抵',value:'MT3201'},
  166 + {label:'出港装载',value:'MT4201'},
  167 + {label:'出港理货',value:'MT5202'}
  168 + ],
  169 + messageStatusList: [
  170 + {label:'未发送',value:'01'},
  171 + {label:'已发舱单报',value:'02'},
  172 + {label:'舱单报退单',value:'05'},
  173 + {label:'舱单转人工',value:'06'},
  174 + {label:'舱单报申报成功',value:'07'},
  175 + {label:'已发舱单删除报',value:'08'},
  176 + {label:'舱单删除报退单',value:'09'},
  177 + {label:'舱单删除报转人工',value:'10'},
  178 + {label:'舱单删除成功',value:'11'},
  179 + {label:'已发舱单修改报',value:'12'},
  180 + {label:'舱单修改报退单',value:'13'},
  181 + {label:'舱单修改报转人工',value:'14'},
  182 + {label:'舱单修改报成功',value:'15'},
  183 + {label:'海关已存在',value:'16'},
  184 + ],
  185 + customStatusList: [
  186 + {label:'普通货物',value:'001'},
  187 + {label:'国际转运货物',value:'002'},
  188 + {label:'国内转关',value:'003'},
  189 + {label:'空箱',value:'004'},
  190 + {label:'快件',value:'006'},
  191 + ]
  192 + }
  193 + },
  194 + methods: {
  195 + getList() {
  196 + this.listLoading = true
  197 + getManifests(this.listQuery).then(res =>{
  198 + this.manifestData = res.data.dataList
  199 + this.total = res.data.count
  200 + setTimeout(() =>{
  201 + this.listLoading = false
  202 + },1500)
  203 + })
  204 + },
  205 + handleSelectionChange() {
  206 +
  207 + },
  208 + handleSearch(){
  209 + this.getList()
  210 + },
  211 + handleUpdateStatus(row){
  212 +
  213 + },
  214 + handleUpdate(row){
  215 + if(row.messageType === 'MT2201'){
  216 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  217 + }
  218 + if(row.messageType === 'MT3201'){
  219 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  220 + }
  221 + if(row.messageType === 'MT4201'){
  222 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  223 + }
  224 + if(row.messageType === 'MT5201'){
  225 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  226 + }
  227 + },
  228 + tableRowClassName({row,index}){
  229 + if(row.messageType === 'MT2201'){
  230 + return 'MT2201-row'
  231 + }
  232 + if(row.messageType === 'MT3201'){
  233 + return 'MT3201-row'
  234 + }
  235 + if(row.messageType === 'MT4201'){
  236 + return 'MT4201-row'
  237 + }
  238 + if(row.messageType === 'MT5202'){
  239 + return 'MT5202-row'
  240 + }
  241 + }
  242 + }
  243 + }
  244 +
  245 +</script>
  246 +<style>
  247 + .el-table .MT2201-row {
  248 + background: oldlace;
  249 + }
  250 +
  251 + .el-table .MT3201-row {
  252 + background: #f0f9eb;
  253 + }
  254 +
  255 + .el-table .MT4201-row {
  256 + background: #bce7fd;
  257 + }
  258 +
  259 + .el-table .MT5202-row {
  260 + background: #f5ffc0;
  261 + }
  262 + .app-content{
  263 + margin-top: 20px;
  264 + }
  265 + .midSpan{
  266 + margin-bottom: 10px;
  267 + }
  268 +</style>
  1 +<template>
  2 + <!--<div class="app-container">-->
  3 + <div class="app-content">
  4 + <div class="filter-container">
  5 + <el-input v-model="listQuery.awba" clearable style="width: 200px;" class="filter-item" placeholder="主单号"/>
  6 + <el-input v-model="listQuery.awbh" clearable style="width: 200px;" class="filter-item" placeholder="分单号"/>
  7 + <el-button class="filter-item" type="primary" icon="el-icon-search" @click="handleSearch">查询</el-button>
  8 + </div>
  9 + <div>
  10 + <span style="color: red">注:主分单必须同时为空或者同时不为空</span>
  11 + </div>
  12 + <tree-table v-loading="listLoading" :data="lostLoadData" :eval-func="func" :expand-all="true"
  13 + style="font-size: 12px" border>
  14 + <el-table-column label="航班号" width="70px" align="center">
  15 + <template slot-scope="scope">
  16 + <span>{{ scope.row.carrier }}{{ scope.row.flightno }}</span>
  17 + </template>
  18 + </el-table-column>
  19 + <el-table-column label="航班日期" width="100px" align="center">
  20 + <template slot-scope="scope">
  21 + <span>{{ scope.row.flightdate }}</span>
  22 + </template>
  23 + </el-table-column>
  24 + <el-table-column label="航段" width="90px" align="center">
  25 + <template slot-scope="scope">
  26 + <span>{{ scope.row.originstation }}-{{ scope.row.destinationstation }}</span>
  27 + </template>
  28 + </el-table-column>
  29 + <el-table-column label="主单号" width="120px" align="center">
  30 + <template slot-scope="scope">
  31 + <span>{{ scope.row.awba }}</span>
  32 + </template>
  33 + </el-table-column>
  34 + <el-table-column label="分单号" width="150px" align="center">
  35 + <template slot-scope="scope">
  36 + <span>{{ scope.row.awbh }}</span>
  37 + </template>
  38 + </el-table-column>
  39 + <el-table-column label="件数" width="60px" align="center">
  40 + <template slot-scope="scope">
  41 + <span>{{ scope.row.piece }}</span>
  42 + </template>
  43 + </el-table-column>
  44 + <el-table-column label="重量" width="60px" align="center">
  45 + <template slot-scope="scope">
  46 + <span>{{ scope.row.weight }}</span>
  47 + </template>
  48 + </el-table-column>
  49 + <el-table-column label="关区" width="60px" align="center">
  50 + <template slot-scope="scope">
  51 + <span>{{ scope.row.customcode }}</span>
  52 + </template>
  53 + </el-table-column>
  54 + <el-table-column label="时间" width="150px" align="center">
  55 + <template slot-scope="scope">
  56 + <span>{{ scope.row.actime }}</span>
  57 + </template>
  58 + </el-table-column>
  59 + <el-table-column label="落装状态" width="90px" align="center">
  60 + <template slot-scope="scope">
  61 + <span v-if="scope.row.offload ==='001'">未落装</span>
  62 + <span v-if="scope.row.offload ==='002'">已落装</span>
  63 + <span v-if="scope.row.offload ==='003'">以落装改配</span>
  64 + </template>
  65 + </el-table-column>
  66 + <el-table-column label="状态" width="90px" align="center">
  67 + <template slot-scope="scope">
  68 + <span v-if="scope.row.status ==='01'">未发送</span>
  69 + <span v-if="scope.row.status ==='02'">已发舱单报</span>
  70 + <span v-if="scope.row.status ==='05'">舱单报退单</span>
  71 + <span v-if="scope.row.status ==='06'">舱单转人工</span>
  72 + <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
  73 + <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
  74 + <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
  75 + <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
  76 + <span v-if="scope.row.status ==='11'">舱单删除成功</span>
  77 + <span v-if="scope.row.status ==='12'">已发舱单修改报</span>
  78 + <span v-if="scope.row.status ==='13'">舱单修改报退单</span>
  79 + <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
  80 + <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
  81 + <span v-if="scope.row.status ==='16'">海关已存在</span>
  82 + </template>
  83 + </el-table-column>
  84 + <el-table-column label="回执内容" align="center" show-overflow-tooltip>
  85 + <template slot-scope="scope">
  86 + <span>{{ scope.row.ext5 }}</span>
  87 + </template>
  88 + </el-table-column>
  89 + <el-table-column label="操作" width="220px" align="center">
  90 + <template slot-scope="scope">
  91 + <el-button size="mini" type="primary" @click="handleLostLoad(scope.row)"
  92 + :disabled="scope.row.offload ==='002'">落装申请
  93 + </el-button>
  94 + <el-button size="mini" type="success" @click="handleLostChange(scope.row)"
  95 + :disabled="scope.row.offload ==='003'">落装改配
  96 + </el-button>
  97 + </template>
  98 + </el-table-column>
  99 + </tree-table>
  100 + <pagination v-show="total>0" :total="total" :page.sync="listQuery.pageSize" :limit.sync="listQuery.limitSize"
  101 + @pagination="getList"/>
  102 + <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible">
  103 + <el-form ref="lostChangeData" :model="lostChangeModel" :rules="lostChangeRules" label-width="120px">
  104 + <el-form-item label="需改配主单号" prop="manifest">
  105 + <el-input v-model="lostChangeModel.awba" style="width: 300px"></el-input>
  106 + </el-form-item>
  107 + <el-form-item label="需改配分单号" prop="manifest">
  108 + <el-input v-model="lostChangeModel.awbh" style="width: 300px"></el-input>
  109 + </el-form-item>
  110 + <el-form-item label="改配后主单号" prop="manifest">
  111 + <el-input v-model="lostChangeModel.manifest" style="width: 300px"></el-input>
  112 + </el-form-item>
  113 + </el-form>
  114 + <div slot="footer" class="dialog-footer">
  115 + <el-button @click="dialogFormVisible = false">取消</el-button>
  116 + <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button>
  117 + </div>
  118 + </el-dialog>
  119 + </div>
  120 +
  121 +</template>
  122 +<script>
  123 + import treeTable from '@/components/TreeTable'
  124 + import treeToArray from '@/utils/customEval'
  125 + import Pagination from '@/components/Pagination'
  126 + import {getMt2201ListForParam, getLostLoadChange, saveLostChange, saveLostLoad} from "@/api/exitPre";
  127 + import {Message} from 'element-ui'
  128 + export default {
  129 + name: "LostLoad",
  130 + components: {treeTable, Pagination},
  131 + inject: ['reload'],
  132 + data() {
  133 + return {
  134 + func: treeToArray,
  135 + preTableStatus: true,
  136 + lostTableStatus: false,
  137 + total: 1,
  138 + listLoading: false,
  139 + listQuery: {
  140 + pageSize: 1,
  141 + limitSize: 100,
  142 + awba: undefined,
  143 + awbh: undefined,
  144 + },
  145 + dialogFormVisible: false,
  146 + dialogStatus: undefined,
  147 + dialogMap: {
  148 + create: '发送落装改配'
  149 + },
  150 + lostLoadData: [],
  151 + lostChangeModel:{
  152 + uuid: undefined,
  153 + awba: undefined,
  154 + awbh: undefined,
  155 + manifest: undefined
  156 + },
  157 + lostChangeRules:{}
  158 + }
  159 + },
  160 + methods: {
  161 + getList() {
  162 + this.listLoading = true
  163 + if (this.listQuery.awba !== undefined && this.listQuery.awbh !== undefined &&
  164 + this.listQuery.awba !== '' && this.listQuery.awbh !== '') {
  165 + getLostLoadChange(this.listQuery).then(res => {
  166 + this.lostLoadData = res.data.dataList
  167 + this.total = res.data.count
  168 + setTimeout(() => {
  169 + this.listLoading = false
  170 + }, 1500)
  171 + })
  172 + } else {
  173 + this.listQuery.awba = undefined
  174 + this.listQuery.awbh = undefined
  175 + getMt2201ListForParam(this.listQuery).then(res => {
  176 + this.lostLoadData = res.data.dataList
  177 + this.total = res.data.count
  178 + setTimeout(() => {
  179 + this.listLoading = false
  180 + }, 1500)
  181 + })
  182 + }
  183 + },
  184 + handleSearch() {
  185 + this.getList()
  186 + },
  187 + handleLostLoad(row) {
  188 + console.log(row)
  189 + this.$confirm("是否发送落装申请", "确认消息", {
  190 + distinguishCancelAndClose: true,
  191 + confirmButtonText: '确认发送',
  192 + cancelButtonText: '取消发送'
  193 + }).then(() => {
  194 + delete row.parent
  195 + delete row.children
  196 + saveLostLoad(row).then(res => {
  197 + if (res.data.count > 0) {
  198 + this.$message({
  199 + type: 'success',
  200 + message: res.data.respMessage
  201 + })
  202 + this.getList()
  203 + } else {
  204 + this.$message({
  205 + type: 'error',
  206 + message: res.data.respMessage
  207 + })
  208 + }
  209 + })
  210 +
  211 + }).catch(action => {
  212 + this.$message({
  213 + type: 'info',
  214 + message: action === 'cancel'
  215 + ? '取消发送'
  216 + : '发送取消'
  217 + })
  218 + })
  219 + },
  220 + handleLostChange(row) {
  221 + this.lostChangeModel = {
  222 + uuid: undefined,
  223 + awba: undefined,
  224 + awbh: undefined,
  225 + manifest: undefined
  226 + }
  227 + const preModel = Object.assign({},row)
  228 + this.lostChangeModel.awba = preModel.awba
  229 + this.lostChangeModel.awbh = preModel.awbh
  230 + this.lostChangeModel.uuid = preModel.uuid
  231 + this.dialogStatus = 'create'
  232 + this.dialogFormVisible = true
  233 + this.$nextTick(()=>{
  234 + this.$refs.lostChangeData.clearValidate()
  235 + })
  236 + },
  237 + createData(){
  238 + saveLostChange(this.lostChangeModel).then(res =>{
  239 + if(res.data.count >0){
  240 + Message.success(res.data.respMessage)
  241 + this.dialogFormVisible = false
  242 + this.getList()
  243 + } else {
  244 + Message.error(res.data.respMessage)
  245 + }
  246 + })
  247 + }
  248 + }
  249 + }
  250 +
  251 +</script>
  252 +<style>
  253 +
  254 +</style>
  1 +<template>
  2 + <!--<div class="app-container">-->
  3 + <div>
  4 + <div>
  5 + <el-row class="row-bg">
  6 + <el-col :span="24">
  7 + <div class="grid-content content">航班信息</div>
  8 + </el-col>
  9 + <el-col :span="24">
  10 + <div class="grid-content co">
  11 + <el-col :span="1">
  12 + <div class="grid-content"></div>
  13 + </el-col>
  14 + <el-col :span="20">
  15 + <div class="grid-content">
  16 + <span class="titleSpan">航班号:{{this.arriveQuery.carrier}}{{this.arriveQuery.flightno}}</span>
  17 + <span class="titleSpan">航班日期:{{this.arriveQuery.flightdate}}</span>
  18 + <span class="titleSpan">航段:{{this.arriveQuery.originstation}}-{{this.arriveQuery.destinationstation}}</span>
  19 + </div>
  20 + </el-col>
  21 + </div>
  22 + </el-col>
  23 + <el-col :span="24">
  24 + <div class="grid-content content">出港运抵查询</div>
  25 + </el-col>
  26 + <el-col :span="24">
  27 + <div class="grid-content co">
  28 + <el-col :span="1">
  29 + <div class="grid-content"></div>
  30 + </el-col>
  31 + <el-col :span="22">
  32 + <div class="grid-content">
  33 + <el-col :span="4">
  34 + <div class="grid-content">
  35 + <el-input v-model="awba" placeholder="请输入主单号"></el-input>
  36 + </div>
  37 + </el-col>
  38 + <div class="grid-content el-btn">
  39 + <el-button type="primary" size="mini" @click="handleSerach">查询</el-button>
  40 + <el-button v-if="arriveQuery.flightno ===undefined && arriveData.length<1"
  41 + type="primary" size="mini"
  42 + @click="handleAddArrive">新增运抵
  43 + </el-button>
  44 + </div>
  45 + </div>
  46 + </el-col>
  47 + </div>
  48 + </el-col>
  49 + <el-col :span="24">
  50 + <div class="grid-content content" style="margin-top: 6px">出港运抵明细</div>
  51 + </el-col>
  52 + </el-row>
  53 + </div>
  54 + <el-table v-loading="listLoading" :data="arriveData" stripe fit highlight-current-row
  55 + style="font-size: 12px" border @selection-change="handleSelectionChange">
  56 + <el-table-column type="selection" width="55" align="center"></el-table-column>
  57 + <el-table-column label="航班号" width="70" align="center">
  58 + <template slot-scope="scope">
  59 + <span>{{scope.row.carrier}}{{scope.row.flightno}}</span>
  60 + </template>
  61 + </el-table-column>
  62 + <el-table-column label="运单号" width="120" align="center">
  63 + <template slot-scope="scope">
  64 + <span>{{scope.row.awba}}</span>
  65 + </template>
  66 + </el-table-column>
  67 + <el-table-column label="分单号" width="120" align="center">
  68 + <template slot-scope="scope">
  69 + <span>{{scope.row.awbh}}</span>
  70 + </template>
  71 + </el-table-column>
  72 + <el-table-column label="运抵件数" width="70" align="center">
  73 + <template slot-scope="scope">
  74 + <span>{{scope.row.piece}}</span>
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="运抵重量" width="70" align="center">
  78 + <template slot-scope="scope">
  79 + <span>{{scope.row.weight}}</span>
  80 + </template>
  81 + </el-table-column>
  82 + <el-table-column label="货物描述" width="100" align="center">
  83 + <template slot-scope="scope">
  84 + <span>{{scope.row.goodsname}}</span>
  85 + </template>
  86 + </el-table-column>
  87 + <el-table-column label="运抵时间" width="140" align="center">
  88 + <template slot-scope="scope">
  89 + <span>{{scope.row.arrivetime}}</span>
  90 + </template>
  91 + </el-table-column>
  92 + <el-table-column label="状态" width="100" align="center">
  93 + <template slot-scope="scope">
  94 + <span v-if="scope.row.status ==='01'">未发送</span>
  95 + <span v-if="scope.row.status ==='02'">已发舱单报</span>
  96 + <span v-if="scope.row.status ==='05'">舱单报退单</span>
  97 + <span v-if="scope.row.status ==='06'">舱单转人工</span>
  98 + <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
  99 + <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
  100 + <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
  101 + <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
  102 + <span v-if="scope.row.status ==='11'">舱单删除成功</span>
  103 + <span v-if="scope.row.status ==='12'">已发舱单修改报</span>
  104 + <span v-if="scope.row.status ==='13'">舱单修改报退单</span>
  105 + <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
  106 + <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
  107 + <span v-if="scope.row.status ==='16'">海关已存在</span>
  108 + </template>
  109 + </el-table-column>
  110 + <el-table-column prop="receipt" label="回执信息" width="180" align="center">
  111 + <template slot-scope="scope">
  112 + <span>{{scope.row.ext5}}</span>
  113 + </template>
  114 + </el-table-column>
  115 + <el-table-column prop="operation" label="操作" align="center">
  116 + <template slot-scope="scope">
  117 + <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button>
  118 + <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑运单</el-button>
  119 + <el-button size="mini" type="primary" @click="handleAwbSend(scope.row)"
  120 + :disabled="scope.row.status !=='00'">发送舱单报
  121 + </el-button>
  122 + <el-button size="mini" type="danger" @click="handleAwbDelete(scope.row)">发删除报</el-button>
  123 +
  124 + <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)"
  125 + :disabled="scope.row.status ==='00'">修改状态
  126 + </el-button>
  127 + </template>
  128 + </el-table-column>
  129 + </el-table>
  130 + <div class="btnFoot">
  131 + <el-row>
  132 + <el-button type="primary" size="mini" v-if="arriveQuery.flightno !==undefined || arriveData.length>0"
  133 + @click="handelAddArriveInfo">新增出港运抵
  134 + </el-button>
  135 + <el-button type="primary" size="mini" v-if="arriveModel.flightno !== undefined || arriveData.length>0"
  136 + @click="handelBackStep">返回
  137 + </el-button>
  138 + </el-row>
  139 + </div>
  140 + <pagination v-show="total>0" :total="total" :page.sync="arriveQuery.pageSize"
  141 + :limit.sync="arriveQuery.limitSize"
  142 + @pagination="getList"/>
  143 + <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible">
  144 + <el-form ref="arriveFormData" :model="arriveModel" :rules="arriveRoles" label-position="right"
  145 + label-width="90px">
  146 + <div class="grid-content content">
  147 + <span>航班信息</span>
  148 + </div>
  149 + <el-row>
  150 + <el-col :span="7.5">
  151 + <el-form-item label="主单号" prop="awba">
  152 + <el-input v-model="arriveModel.awba"></el-input>
  153 + </el-form-item>
  154 + </el-col>
  155 + <el-col :span="7.5">
  156 + <el-form-item label="分单号" prop="awbh">
  157 + <el-input v-model="awbh"></el-input>
  158 + </el-form-item>
  159 + </el-col>
  160 + </el-row>
  161 + <div class="grid-content content">
  162 + <span>航班信息</span>
  163 + </div>
  164 + <el-row>
  165 + <el-col :span="7.5">
  166 + <el-form-item label="承运人" prop="carrier">
  167 + <el-input v-model="carrier"
  168 + :disabled="dialogFormVisible === 'update'"></el-input>
  169 + </el-form-item>
  170 + </el-col>
  171 + <el-col :span="7.5">
  172 + <el-form-item label="航班号" prop="flightno">
  173 + <el-input v-model="flightno"
  174 + :disabled="dialogFormVisible === 'update'"></el-input>
  175 + </el-form-item>
  176 + </el-col>
  177 + <el-col :span="7.5">
  178 + <el-form-item label="航班日期" prop="flightdate">
  179 + <el-date-picker v-model="arriveModel.flightdate" value-format="yyyy-MM-dd" type="date"
  180 + placeholder="请输入"
  181 + :disabled="dialogFormVisible === 'update'"></el-date-picker>
  182 + </el-form-item>
  183 + </el-col>
  184 + </el-row>
  185 + <el-row>
  186 + <el-col :span="7.5">
  187 + <el-form-item label="起始站" prop="originstation">
  188 + <el-input v-model="originstation"
  189 + :disabled="dialogFormVisible === 'update'"></el-input>
  190 + </el-form-item>
  191 + </el-col>
  192 + <el-col :span="7.5">
  193 + <el-form-item label="目的站" prop="destinationstation">
  194 + <el-input v-model="destinationstation"
  195 + :disabled="dialogFormVisible === 'update'"></el-input>
  196 + </el-form-item>
  197 + </el-col>
  198 + </el-row>
  199 + <div class="grid-content content">
  200 + <span>货物信息</span>
  201 + </div>
  202 + <el-row>
  203 + <el-col :span="7.5">
  204 + <el-form-item label="运抵件数" prop="piece">
  205 + <el-input v-model.number="arriveModel.piece"></el-input>
  206 + </el-form-item>
  207 + </el-col>
  208 + <el-col :span="7.5">
  209 + <el-form-item label="运抵重量" prop="weight">
  210 + <el-input v-model.number="arriveModel.weight"></el-input>
  211 + </el-form-item>
  212 + </el-col>
  213 + <el-col :span="7.5">
  214 + <el-form-item label="运抵时间" prop="arrivetime">
  215 + <el-date-picker v-model="arriveModel.arrivetime" value-format="yyyy-MM-dd HH:mm:ss"
  216 + type="datetime"
  217 + placeholder="请输入"></el-date-picker>
  218 + </el-form-item>
  219 + </el-col>
  220 + </el-row>
  221 + <el-row>
  222 + <el-col :span="7.5">
  223 + <el-form-item label="货物描述" prop="goodsname">
  224 + <el-input v-model="goodsname" placeholder="请输入"></el-input>
  225 + </el-form-item>
  226 + </el-col>
  227 + <el-col :span="7.5">
  228 + <el-form-item label="海关关区" prop="customcode">
  229 + <el-select v-model="arriveModel.customcode">
  230 + <el-option v-for="item in customcodeList " :key="item" :label="item"
  231 + :value="item"></el-option>
  232 + </el-select>
  233 + </el-form-item>
  234 + </el-col>
  235 + </el-row>
  236 + </el-form>
  237 + <div slot="footer" class="dialog-footer">
  238 + <el-button @click="dialogFormVisible = false">取消</el-button>
  239 + <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button>
  240 + <el-button type="success" @click="SaveAndSend">保存并发送</el-button>
  241 + </div>
  242 + </el-dialog>
  243 + <el-dialog title="收发明细" :visible.sync="dialogTableVisible">
  244 + <el-table :data="detailData" border>
  245 + <el-table-column label="操作时间" width="150">
  246 + <template slot-scope="scope">
  247 + {{scope.row.busdate}}
  248 + </template>
  249 + </el-table-column>
  250 + <el-table-column label="航班号" width="80">
  251 + <template slot-scope="scope">
  252 + {{scope.row.carrier}}{{scope.row.flightno}}
  253 + </template>
  254 + </el-table-column>
  255 + <el-table-column label="航班日期" width="100">
  256 + <template slot-scope="scope">
  257 + {{scope.row.flightdate}}
  258 + </template>
  259 + </el-table-column>
  260 + <el-table-column label="件数" width="70">
  261 + <template slot-scope="scope">
  262 + {{scope.row.buspiece}}
  263 + </template>
  264 + </el-table-column>
  265 + <el-table-column label="重量" width="70">
  266 + <template slot-scope="scope">
  267 + {{scope.row.busweight}}
  268 + </template>
  269 + </el-table-column>
  270 + <el-table-column label="回执信息" width="">
  271 + <template slot-scope="scope">
  272 + {{scope.row.cusrestext}}
  273 + </template>
  274 + </el-table-column>
  275 + <el-table-column label="操作人" width="100">
  276 + <template slot-scope="scope">
  277 + {{scope.row.operusername}}
  278 + </template>
  279 + </el-table-column>
  280 + </el-table>
  281 + </el-dialog>
  282 + </div>
  283 +</template>
  284 +<script>
  285 + import treeTable from '@/components/TreeTable'
  286 + import treeToArray from '@/utils/customEval'
  287 + import Pagination from '@/components/Pagination'
  288 +
  289 + import {getMt3201ListForParam, deleteByIsDelete, updateStatus, updateMT3201, addMt3201} from '@/api/exitArrive'
  290 + import {Message} from "element-ui";
  291 + import {validAwb, validAlphabets, validAlphabetsAndNum,validAlphabetsAndSpanceKey} from "@/utils/validate";
  292 + import {getResponseForParam} from '@/api/responseDetail'
  293 +
  294 + export default {
  295 + name: "ExitArrive",
  296 + components: {treeTable, Pagination},
  297 + inject: ['reload'],
  298 + data() {
  299 + const validatorAwb = (rule, value, callback) => {
  300 + if (!validAwb(value)) {
  301 + callback("请正确书写主单号")
  302 + }
  303 + callback()
  304 + }
  305 + const validatorAwbh = (rule, value, callback) => {
  306 + if (!validAlphabetsAndNum(value)) {
  307 + callback("只能输入字母和数字")
  308 + }
  309 + callback()
  310 + }
  311 + const validatorAlphabets = (rule, value, callback) => {
  312 + if (!validAlphabets(value)) {
  313 + callback("只能输入字母")
  314 + }
  315 + callback()
  316 + }
  317 + const validAlphabetsSpanceKey = (rule,value,callback) =>{
  318 + if(!validAlphabetsAndSpanceKey(value)){
  319 + callback("只能输入字母、数字、空格")
  320 + }
  321 + callback()
  322 + }
  323 + return {
  324 + func: treeToArray,
  325 + total: 1,
  326 + arriveQuery: {
  327 + pageSize: 1,
  328 + limitSize: 100,
  329 + awba: undefined,
  330 + carrier: undefined,
  331 + flightno: undefined,
  332 + flightdate: undefined,
  333 + originstation: undefined,
  334 + destinationstation: undefined,
  335 + customcode: undefined
  336 + },
  337 + dialogMap: {
  338 + update: '编辑出港运抵',
  339 + create: '添加出港运抵',
  340 + },
  341 + dialogTableVisible: false,
  342 + multipleSelection: [],
  343 + customcodeList: [4604, 4620],
  344 + dialogStatus: undefined,
  345 + awbhStatus: false,
  346 + dialogFormVisible: false,
  347 + listLoading: false,
  348 + arriveRoles: {
  349 + awba: [{required: true, trigger: 'blur', validator: validatorAwb}],
  350 + awbh: [{required: true, trigger: 'blur', validator: validatorAwbh}],
  351 + goodsname: [{required: true, trigger: 'blur', validator: validAlphabetsSpanceKey}],
  352 + carrier: [{required: true, trigger: 'blur', validator: validatorAwbh}],
  353 + flightno: [{required: true, trigger: 'blur', validator: validatorAwbh}],
  354 + originstation: [{required: true, trigger: 'blur', validator: validatorAlphabets}],
  355 + destinationstation: [{required: true, trigger: 'blur', validator: validatorAlphabets}],
  356 + piece: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}],
  357 + weight: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}],
  358 + },
  359 + arriveData: [],
  360 + detailData: [],
  361 + arriveModel: {
  362 + carrier: undefined,
  363 + flightno: undefined,
  364 + flightdate: undefined,
  365 + originstation: undefined,
  366 + destinationstation: undefined,
  367 + awba: undefined,
  368 + awbh: undefined,
  369 + piece: undefined,
  370 + weight: undefined,
  371 + goodsname: undefined,
  372 + customcode: undefined,
  373 + arrivetime: undefined,
  374 + messageType: 'MT3201'
  375 + }
  376 + }
  377 + },
  378 + created() {
  379 + if (this.$route.params.flightData !== undefined) {
  380 + // 给查询条件赋值
  381 + if (this.$route.params.flightData.awba !== undefined && this.$route.params.flightData.awba !== '') {
  382 + this.arriveQuery.awba = this.$route.params.flightData.awba.substring(0, 3) + "-" + this.$route.params.flightData.awba.substring(3)
  383 + }
  384 +
  385 + this.arriveQuery.carrier = this.$route.params.flightData.flightno.substring(0, 2)
  386 + this.arriveQuery.flightno = this.$route.params.flightData.flightno.substring(2)
  387 + this.arriveQuery.flightdate = this.$route.params.flightData.flightdate
  388 + this.arriveQuery.originstation = this.$route.params.flightData.originstation
  389 + this.arriveQuery.destinationstation = this.$route.params.flightData.destinationstation
  390 + this.getList()
  391 + }
  392 + },
  393 + computed: {
  394 + awba: {
  395 + get: function () {
  396 + return this.arriveQuery.awba
  397 + },
  398 + set: function (val) {
  399 + this.arriveQuery.awba = val.trim()
  400 + }
  401 + },
  402 + awbh: {
  403 + get: function () {
  404 + return this.arriveModel.awbh
  405 + },
  406 + set: function (val) {
  407 + this.arriveModel.awbh = val.toUpperCase().trim()
  408 + }
  409 + },
  410 + carrier: {
  411 + get: function () {
  412 + return this.arriveModel.carrier
  413 + },
  414 + set: function (val) {
  415 + this.arriveModel.carrier = val.toUpperCase().trim()
  416 + }
  417 + },
  418 + goodsname: {
  419 + get: function () {
  420 + return this.arriveModel.goodsname
  421 + },
  422 + set: function (val) {
  423 + this.arriveModel.goodsname = val.toUpperCase().trim()
  424 + }
  425 + },
  426 + flightno: {
  427 + get: function () {
  428 + return this.arriveModel.flightno
  429 + },
  430 + set: function (val) {
  431 + this.arriveModel.flightno = val.toUpperCase().trim()
  432 + }
  433 + },
  434 + originstation: {
  435 + get: function () {
  436 + return this.arriveModel.originstation
  437 + },
  438 + set: function (val) {
  439 + this.arriveModel.originstation = val.toUpperCase().trim()
  440 + }
  441 + },
  442 + destinationstation: {
  443 + get: function () {
  444 + return this.arriveModel.destinationstation
  445 + },
  446 + set: function (val) {
  447 + this.arriveModel.destinationstation = val.toUpperCase().trim()
  448 + }
  449 + }
  450 + },
  451 + methods: {
  452 + getList() {
  453 + this.listLoading = true
  454 + if (this.arriveQuery.awba !== undefined) {
  455 + getMt3201ListForParam(this.arriveQuery).then(res => {
  456 + this.arriveData = res.data.dataList
  457 + this.total = res.data.count
  458 + if (res.data.count > 0) {
  459 + this.arriveQuery.carrier = this.arriveData[0].carrier
  460 + this.arriveQuery.flightno = this.arriveData[0].flightno
  461 + this.arriveQuery.flightdate = this.arriveData[0].flightdate
  462 + this.arriveQuery.originstation = this.arriveData[0].originstation
  463 + this.arriveQuery.destinationstation = this.arriveData[0].destinationstation
  464 + this.arriveQuery.customcode = this.arriveData[0].customcode
  465 + }
  466 + setTimeout(() => {
  467 + this.listLoading = false
  468 + }, 1.5 * 1000)
  469 + })
  470 + } else {
  471 + getMt3201ListForParam(this.arriveQuery).then(res => {
  472 + this.arriveData = res.data.dataList
  473 + this.total = res.data.count
  474 + setTimeout(() => {
  475 + this.listLoading = false
  476 + }, 1.5 * 1000)
  477 + })
  478 + }
  479 +
  480 + },
  481 + handleSerach() {
  482 + this.arriveQuery.carrier = undefined
  483 + this.arriveQuery.flightno = undefined
  484 + this.arriveQuery.originstation = undefined
  485 + this.arriveQuery.flightdate = undefined
  486 + this.arriveQuery.destinationstation = undefined
  487 + this.getList()
  488 + },
  489 + handleSelectionChange(val) {
  490 + this.multipleSelection = val
  491 + },
  492 + // 新增出港运抵
  493 + handelAddArriveInfo() {
  494 + this.restModel()
  495 + // 给model赋值,所使用数据是以单独单号查询数据所得
  496 + this.arriveModel.carrier = this.arriveQuery.carrier
  497 + this.arriveModel.flightdate = this.arriveQuery.flightdate
  498 + this.arriveModel.flightno = this.arriveQuery.flightno
  499 + this.arriveModel.originstation = this.arriveQuery.originstation
  500 + this.arriveModel.destinationstation = this.arriveQuery.destinationstation
  501 + this.arriveModel.customcode = this.arriveQuery.customcode
  502 + this.dialogStatus = 'create'
  503 + this.dialogFormVisible = true
  504 + this.$nextTick(() => {
  505 + this.$refs.arriveFormData.clearValidate()
  506 + })
  507 + },
  508 + createData() {
  509 + this.$refs.arriveFormData.validate(valid => {
  510 + if (valid) {
  511 + addMt3201(this.arriveModel).then(res => {
  512 + if (res.data.count > 0) {
  513 + this.dialogFormVisible = false
  514 + Message.success("出港运抵新增成功")
  515 + this.getList()
  516 + } else {
  517 + Message.error("数据更新失败,请检查数据")
  518 + }
  519 + })
  520 + }
  521 + })
  522 +
  523 + },
  524 +
  525 + // 重置实体
  526 + restModel() {
  527 + this.arriveModel = {
  528 + carrier: undefined,
  529 + flightno: undefined,
  530 + flightdate: undefined,
  531 + originstation: undefined,
  532 + destinationstation: undefined,
  533 + awba: undefined,
  534 + awbh: undefined,
  535 + piece: undefined,
  536 + weight: undefined,
  537 + goodsname: undefined,
  538 + customcode: undefined,
  539 + arrivetime: undefined,
  540 + }
  541 + },
  542 + // 编辑
  543 + handleEdit(row) {
  544 + this.arriveModel = Object.assign({}, row) // copy obj
  545 + this.dialogStatus = 'update'
  546 + this.dialogFormVisible = true
  547 + this.$nextTick(() => {
  548 + this.$refs.arriveFormData.clearValidate()
  549 + })
  550 + },
  551 + updateData() {
  552 + this.$refs.arriveFormData.validate(valid => {
  553 + if (valid) {
  554 + updateMT3201(this.arriveModel).then(res => {
  555 + if (res.data.count > 0) {
  556 + this.dialogFormVisible = false
  557 + Message.success("出港运抵修改成功")
  558 + this.getList()
  559 + } else {
  560 + Message.error("数据更新失败,请检查数据")
  561 + }
  562 + })
  563 + }
  564 +
  565 + })
  566 + },
  567 + //保存并发送
  568 + SaveAndSend() {
  569 +
  570 + },
  571 + // 收发明细
  572 + handleSend(row) {
  573 + const resQuery = {
  574 + carrier: row.carrier,
  575 + flightNo: row.flightno,
  576 + flightDate: row.flightdate,
  577 + awba: row.awba,
  578 + awbh: row.awbh,
  579 + messageType: 'MT3201'
  580 + }
  581 + this.dialogTableVisible = true
  582 + getResponseForParam(resQuery).then(res => {
  583 + this.detailData = res.data
  584 + })
  585 + },
  586 + // 发送舱单报
  587 + handleAwbSend() {
  588 +
  589 + },
  590 + // 发送修改报
  591 + handleAwbEdit() {
  592 +
  593 + },
  594 + //发送删除报
  595 + handleAwbDelete(row) {
  596 + this.$confirm("是否删除", "确认消息", {
  597 + distinguishCancelAndClose: true,
  598 + confirmButtonText: '删除',
  599 + cancelButtonText: '取消'
  600 + }).then(() => {
  601 + deleteByIsDelete(row).then(res => {
  602 + if (res.data.count > 0) {
  603 + this.$message({
  604 + type: 'success',
  605 + message: '删除成功'
  606 + })
  607 + this.getList()
  608 + } else {
  609 + this.$message({
  610 + type: 'danger',
  611 + message: '删除异常,请稍后重试'
  612 + })
  613 + }
  614 + })
  615 + }).catch(action => {
  616 + this.$message({
  617 + type: 'info',
  618 + message: action === 'cancel'
  619 + ? '取消删除'
  620 + : '删除取消'
  621 + })
  622 + })
  623 + },
  624 + //更改状态
  625 + handleAwbStatus(row) {
  626 + this.$confirm("是否发送更改状态", "确认消息", {
  627 + distinguishCancelAndClose: true,
  628 + confirmButtonText: '确认更改',
  629 + cancelButtonText: '取消更改'
  630 + }).then(() => {
  631 + updateStatus(row).then(res => {
  632 + if (res.data.count > 0) {
  633 + this.$message({
  634 + type: 'success',
  635 + message: '当前运单状态已更改'
  636 + })
  637 + this.getList()
  638 + } else {
  639 + this.$message({
  640 + type: 'error',
  641 + message: '状态更改失败,请稍后重试'
  642 + })
  643 + }
  644 + })
  645 +
  646 + }).catch(action => {
  647 + this.$message({
  648 + type: 'info',
  649 + message: action === 'cancel'
  650 + ? '取消状态更改'
  651 + : '状态更改取消'
  652 + })
  653 + })
  654 + },
  655 + // 携数据跳转 新增运抵
  656 + handleAddArrive() {
  657 + const row = {
  658 + 'messageType': 'MT3201'
  659 + }
  660 + this.$router.push({name: "出港航班信息", params: {scopeRow: row}})
  661 + },
  662 + handelBackStep() {
  663 + this.$router.push({name: '出港航班信息', params: {scopeRow: this.arriveModel}})
  664 + }
  665 +
  666 + }
  667 + }
  668 +
  669 +</script>
  670 +
  671 +<style>
  672 + .grid-content {
  673 + height: 36px;
  674 + line-height: 36px;
  675 + }
  676 +
  677 + .content {
  678 + border-left: 4px #409EFF solid;
  679 + padding-left: 10px;
  680 + background-color: #f9fafc;
  681 + margin-bottom: 2px
  682 + }
  683 +
  684 + .row-bg, .co {
  685 + background-color: white;
  686 + }
  687 +
  688 + .titleSpan {
  689 + font-weight: bold;
  690 + margin-right: 35px;
  691 + }
  692 +
  693 + .el-row {
  694 + margin-top: 10px;
  695 + margin-bottom: 0px;
  696 + }
  697 +
  698 + .btnFoot {
  699 + margin-top: 10px;
  700 + }
  701 +
  702 + .el-table td, .el-table th {
  703 + text-align: center
  704 + }
  705 +
  706 + .el-btn {
  707 + margin-left: 10px;
  708 + display: inline-block;
  709 + }
  710 +</style>
  711 +
  1 +<template>
  2 + <div class="app-content">
  3 + <!--<div class="app-container">-->
  4 + <div class="filter-container">
  5 + <el-input v-model="listQuery.flightNo" clearable style="width: 270px;" class="filter-item"
  6 + placeholder="航班号"/>
  7 + <el-date-picker v-model="listQuery.flightDate" clearable type="date" style="width: 270px;"
  8 + placeholder="航班日期"
  9 + class="filter-item" value-format="yyyy-MM-dd"></el-date-picker>
  10 + <el-button class="filter-item" type="primary" icon="el-icon-search" @click="handleSearch">查询</el-button>
  11 + </div>
  12 + <el-table :data="flightData" stripe style="font-size: 14px" border>
  13 + <el-table-column label="航班号" width="280px" align="center">
  14 + <template slot-scope="scope">
  15 + <span>{{ scope.row.carrier }}{{ scope.row.flightNo }}</span>
  16 + </template>
  17 + </el-table-column>
  18 + <el-table-column label="航班日期" width="280px" align="center">
  19 + <template slot-scope="scope">
  20 + <i class="el-icon-time"></i>
  21 + <span>{{ scope.row.flightDate }}</span>
  22 + </template>
  23 + </el-table-column>
  24 + <el-table-column label="始发站" width="280px" align="center">
  25 + <template slot-scope="scope">
  26 + <span>{{ scope.row.originstation }}</span>
  27 + </template>
  28 + </el-table-column>
  29 + <el-table-column label="目的站" width="280px" align="center">
  30 + <template slot-scope="scope">
  31 + <span>{{ scope.row.destinationstation }}</span>
  32 + </template>
  33 + </el-table-column>
  34 + <el-table-column label="操作" align="center">
  35 + <template slot-scope="scope">
  36 + <el-button type="primary" size="mini" @click="handleLoading(scope.row)">装载舱单</el-button>
  37 + <el-button type="primary" size="mini" @click="handleTidy(scope.row)">出港理货</el-button>
  38 + <el-button type="primary" size="mini" @click="handleArrive(scope.row)">出港运抵</el-button>
  39 + <el-button type="primary" size="mini" @click="handlePre(scope.row)">预配舱单</el-button>
  40 + </template>
  41 + </el-table-column>
  42 + </el-table>
  43 + <pagination v-show="total>0" :total="total" :page.sync="listQuery.pageSize" :limit.sync="listQuery.limitSize"
  44 + @pagination="getList"/>
  45 + </div>
  46 +
  47 +</template>
  48 +<script>
  49 + import Pagination from '@/components/Pagination'
  50 + import {getFlightListForParam} from '@/api/exitFlight'
  51 + export default {
  52 + name: "ExitFlight",
  53 + components: {Pagination},
  54 + inject: ['reload'],
  55 + data() {
  56 + return {
  57 + total: 1,
  58 + listQuery: {
  59 + pageSize: 1,
  60 + limitSize: 10,
  61 + flightNo: undefined,
  62 + flightDate: undefined
  63 + },
  64 + flightData: [],
  65 + }
  66 + },
  67 + created(){
  68 + this.getList()
  69 + },
  70 + methods: {
  71 + getList() {
  72 + getFlightListForParam(this.listQuery).then(res =>{
  73 + this.flightData = res.data.dataList
  74 + this.total = res.data.count
  75 + })
  76 + },
  77 + handleSearch() {
  78 + this.getList()
  79 + },
  80 + handleLoading(row) {
  81 + row.messageType = 'MT4201'
  82 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  83 + },
  84 + handleTidy(row) {
  85 + row.messageType = 'MT5201'
  86 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  87 + },
  88 + handleArrive(row) {
  89 + row.messageType = 'MT3201'
  90 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  91 + },
  92 + handlePre(row) {
  93 + row.messageType = 'MT2201'
  94 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  95 + }
  96 + }
  97 + }
  98 +
  99 +</script>
  100 +<style scoped>
  101 + .app-content{
  102 + margin-top: 20px;
  103 + }
  104 +</style>
  1 +<template>
  2 + <el-container>
  3 + <el-main>
  4 + <el-row>
  5 + <el-col :span="24">
  6 + <div class="grid-content"><p>请输入航班信息:</p></div>
  7 + </el-col>
  8 + </el-row>
  9 + <el-row>
  10 + <el-col :span="24">
  11 + <div class="grid-content"><h1>Please Enter The Flight Information:</h1></div>
  12 + </el-col>
  13 + </el-row>
  14 + <el-row type="flex" class="row-bg" justify="center">
  15 + <el-col :span="4">
  16 + <el-input placeholder="必填" v-model="flightno">
  17 + <template slot="prepend">航班号</template>
  18 + </el-input>
  19 + </el-col>
  20 + <el-col :span="4">
  21 + <el-date-picker
  22 + v-model="flight.flightdate"
  23 + type="date"
  24 + value-format="yyyy-MM-dd"
  25 + placeholder="选择日期">
  26 + </el-date-picker>
  27 + </el-col>
  28 + <el-col :span="4">
  29 + <el-input placeholder="必填" v-model="originstation">
  30 + <template slot="prepend">始发站</template>
  31 + </el-input>
  32 + </el-col>
  33 + <el-col :span="4" style="margin-left: 20px">
  34 + <el-input placeholder="必填" v-model="destinationstation">
  35 + <template slot="prepend">目的站</template>
  36 + </el-input>
  37 + </el-col>
  38 + <el-col :span="4" style="margin-left: 20px">
  39 + <el-input placeholder="可为空" v-model="awba">
  40 + <template slot="prepend">主单号</template>
  41 + </el-input>
  42 + </el-col>
  43 + </el-row>
  44 + <el-row>
  45 + <el-col :span="4" :offset="10">
  46 + <div class="grid-content">
  47 + <el-button type="primary" @click="nstep">下一步</el-button>
  48 + </div>
  49 + </el-col>
  50 + </el-row>
  51 + </el-main>
  52 + </el-container>
  53 +</template>
  54 +
  55 +
  56 +<script>
  57 + import {Message} from "element-ui";
  58 +
  59 + export default {
  60 + name: 'ExitFlightDesc',
  61 + data() {
  62 + return {
  63 + flight: {
  64 + flightno: undefined,
  65 + flightdate: undefined,
  66 + originstation: undefined,
  67 + destinationstation: undefined,
  68 + awba: undefined,
  69 + messageType:undefined
  70 + },
  71 + btnStatus: true
  72 + };
  73 + },
  74 + created() {
  75 + if (this.$route.params.scopeRow !== undefined) {
  76 + if(this.$route.params.scopeRow.carrier === undefined){
  77 + this.flight.flightno = this.$route.params.scopeRow.flightno
  78 + } else {
  79 + this.flight.flightno = this.$route.params.scopeRow.carrier + this.$route.params.scopeRow.flightno
  80 + }
  81 + this.flight.flightdate = this.$route.params.scopeRow.flightdate
  82 + this.flight.originstation = this.$route.params.scopeRow.originstation
  83 + this.flight.destinationstation = this.$route.params.scopeRow.destinationstation
  84 + this.flight.messageType = this.$route.params.scopeRow.messageType
  85 + if(this.$route.params.scopeRow.awba !== undefined){
  86 + this.flight.awba = this.$route.params.scopeRow.awba.replace('-','')
  87 + }
  88 +
  89 + }
  90 + },
  91 + computed:{
  92 + flightno : {
  93 + get: function () {
  94 + return this.flight.flightno
  95 + },
  96 + set: function(val){
  97 + this.flight.flightno = val.toUpperCase().trim()
  98 + }
  99 + },
  100 + originstation :{
  101 + get: function () {
  102 + return this.flight.originstation
  103 + },
  104 + set: function(val){
  105 + this.flight.originstation = val.toUpperCase().trim()
  106 + }
  107 + },
  108 + destinationstation :{
  109 + get: function () {
  110 + return this.flight.destinationstation
  111 + },
  112 + set: function(val){
  113 + this.flight.destinationstation = val.toUpperCase().trim()
  114 + }
  115 + },
  116 + awba :{
  117 + get: function () {
  118 + return this.flight.awba
  119 + },
  120 + set: function(val){
  121 + this.flight.awba = val.trim()
  122 + }
  123 + }
  124 + },
  125 + methods: {
  126 + nstep() {
  127 + if (this.flight.flightno !== undefined && this.flight.flightno !==''&&
  128 + this.flight.flightdate !== undefined &&this.flight.flightdate !== '' &&
  129 + this.flight.destinationstation !== undefined && this.flight.destinationstation !==''&&
  130 + this.flight.originstation !== undefined && this.flight.originstation !=='') {
  131 + if(this.flight.awba !== '' && this.flight.awba !== undefined){
  132 + const manifest = this.flight.awba;
  133 + const reg = /^[0-9]{11}$/
  134 + if(!reg.test(manifest)){
  135 + Message.error("主单号只支持数字并且最多11位")
  136 + return
  137 + }
  138 + const num = (manifest.substring(3,10)) % 7
  139 + if(num !== eval(manifest.substring(10))){
  140 + Message.error("主单号不符合模7校验")
  141 + return
  142 + }
  143 + } else {
  144 + this.flight.awba = undefined
  145 + }
  146 +
  147 + if(this.flight.messageType ==="MT5201"){
  148 + this.$router.push({name: '出港理货', params: {flightData: this.flight}});
  149 + }
  150 + if(this.flight.messageType ==="MT4201"){
  151 + this.$router.push({name: '出港装载', params: {flightData: this.flight}});
  152 + }
  153 + if(this.flight.messageType ==="MT3201"){
  154 + this.$router.push({name:'出港运抵',params:{flightData: this.flight}})
  155 + }
  156 + if(this.flight.messageType ==="MT2201"){
  157 + this.$router.push({name:'出港预配舱单',params:{flightData: this.flight}})
  158 + }
  159 + } else {
  160 + Message.warning("请将航班信息填写完整")
  161 + }
  162 +
  163 + }
  164 + }
  165 + };
  166 +</script>
  167 +<style scoped>
  168 + .el-container {
  169 + text-align: center
  170 + }
  171 +
  172 + .el-main {
  173 + margin: 0 auto;
  174 + height: 400px;
  175 + }
  176 +
  177 + p {
  178 + font-size: 25px;
  179 + font-weight: bold;
  180 + }
  181 +</style>
  1 +<template>
  2 + <!--<div class="app-container">-->
  3 + <div>
  4 + <div>
  5 + <el-row class="row-bg">
  6 + <el-col :span="24">
  7 + <div class="grid-content content">航班信息</div>
  8 + </el-col>
  9 + <el-col :span="24">
  10 + <div class="grid-content co">
  11 + <el-col :span="1">
  12 + <div class="grid-content"></div>
  13 + </el-col>
  14 + <el-col :span="20">
  15 + <div class="grid-content">
  16 + <span class="titleSpan">航班号:{{this.loadingQuery.carrier}}{{this.loadingQuery.flightno}}</span>
  17 + <span class="titleSpan">航班日期:{{this.loadingQuery.flightdate}}</span>
  18 + <span class="titleSpan">航段:{{this.loadingQuery.originstation}}-{{this.loadingQuery.destinationstation}}</span>
  19 + </div>
  20 + </el-col>
  21 + </div>
  22 + </el-col>
  23 + <el-col :span="24">
  24 + <div class="grid-content content">进港舱单查询</div>
  25 + </el-col>
  26 + <el-col :span="24">
  27 + <div class="grid-content co">
  28 + <el-col :span="1">
  29 + <div class="grid-content"></div>
  30 + </el-col>
  31 + <el-col :span="22">
  32 + <div class="grid-content">
  33 + <el-col :span="4">
  34 + <div class="grid-content">
  35 + <el-input v-model="loadingQuery.awba" placeholder="请输入主单号"></el-input>
  36 + </div>
  37 + </el-col>
  38 + <div class="el-btn">
  39 + <el-button type="primary" size="mini" @click="handleSearch">查询</el-button>
  40 + <el-button v-if="loadingModel.flightno === undefined && loadingData.length <1"
  41 + type="primary" size="mini" @click="handleAddLoading">新增装载
  42 + </el-button>
  43 + </div>
  44 + </div>
  45 + </el-col>
  46 + </div>
  47 + </el-col>
  48 + <el-col :span="24">
  49 + <div class="grid-content content" style="margin-top: 6px">出港装载明细</div>
  50 + </el-col>
  51 + </el-row>
  52 + <tree-table v-loading="listLoading" :data="loadingData" :eval-func="func" :expand-all="true" stripe
  53 + style="font-size: 12px" border @selection-change="handleSelectionChange">
  54 + <el-table-column label="运单号" width="160" align="center">
  55 + <template slot-scope="scope">
  56 + <span>{{scope.row.awba}}</span>
  57 + </template>
  58 + </el-table-column>
  59 + <el-table-column label="运载件数" width="70" align="center">
  60 + <template slot-scope="scope">
  61 + <span>{{scope.row.lodingpiece}}</span>
  62 + </template>
  63 + </el-table-column>
  64 + <el-table-column label="运载重量" width="70" align="center">
  65 + <template slot-scope="scope">
  66 + <span>{{scope.row.lodingweight}}</span>
  67 + </template>
  68 + </el-table-column>
  69 + <el-table-column label="货物描述" width="120" align="center">
  70 + <template slot-scope="scope">
  71 + <span>{{scope.row.goodsname}}</span>
  72 + </template>
  73 + </el-table-column>
  74 + <el-table-column label="装载时间" width="150" align="center">
  75 + <template slot-scope="scope">
  76 + <span>{{scope.row.loadingtime}}</span>
  77 + </template>
  78 + </el-table-column>
  79 + <el-table-column label="状态" width="100" align="center">
  80 + <template slot-scope="scope">
  81 + <span v-if="scope.row.status ==='01'">未发送</span>
  82 + <span v-if="scope.row.status ==='02'">已发舱单报</span>
  83 + <span v-if="scope.row.status ==='05'">舱单报退单</span>
  84 + <span v-if="scope.row.status ==='06'">舱单转人工</span>
  85 + <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
  86 + <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
  87 + <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
  88 + <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
  89 + <span v-if="scope.row.status ==='11'">舱单删除成功</span>
  90 + <span v-if="scope.row.status ==='12'">已发舱单修改报</span>
  91 + <span v-if="scope.row.status ==='13'">舱单修改报退单</span>
  92 + <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
  93 + <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
  94 + <span v-if="scope.row.status ==='16'">海关已存在</span>
  95 + </template>
  96 + </el-table-column>
  97 + <el-table-column prop="receipt" label="回执信息" width="180" align="center">
  98 + <template slot-scope="scope">
  99 + <span>{{scope.row.ext5}}</span>
  100 + </template>
  101 + </el-table-column>
  102 + <el-table-column prop="operation" label="操作" align="center">
  103 + <template slot-scope="scope">
  104 + <el-button size="mini" @click="handleSend(scope.row)">收发明细</el-button>
  105 + <el-button size="mini" type="success" @click="handleEdit(scope.row)">编辑主单
  106 + </el-button>
  107 + <el-button size="mini" type="primary" @click="handleSendAwb(scope.row)"
  108 + :disabled="scope.row.status !=='00'">发送舱单报
  109 + </el-button>
  110 + <el-button size="mini" type="danger" @click="handleAwbDelete(scope.row)">发删除报</el-button>
  111 + <el-button size="mini" type="warning" @click="handleAwbStatus(scope.row)"
  112 + :disabled="scope.row.status ==='00'">更改状态
  113 + </el-button>
  114 + </template>
  115 + </el-table-column>
  116 + </tree-table>
  117 + <div class="btnFoot">
  118 + <el-row>
  119 + <el-button type="primary" size="mini"
  120 + v-if="loadingModel.flightno !== undefined || loadingData.length >0"
  121 + @click="handelAddLoadingInfo">新增出港装载
  122 + </el-button>
  123 + <el-button type="primary" size="mini" v-if="loadingModel.flightno !== undefined || loadingData.length>0"
  124 + @click="handelBackStep">返回</el-button>
  125 + </el-row>
  126 + </div>
  127 + <pagination v-show="total>0" :total="total" :page.sync="loadingQuery.page" :limit.sync="loadingQuery.limit"
  128 + @pagination="getList"/>
  129 +
  130 + <el-dialog :title="dialogMap[dialogStatus]" :visible.sync="dialogFormVisible">
  131 + <el-form ref="loadingFormData" :model="loadingModel" :rules="loadingRoles" label-position="right"
  132 + label-width="90px">
  133 + <div class="grid-content content">
  134 + <span>航班信息</span>
  135 + </div>
  136 + <el-row>
  137 + <el-col :span="7.5">
  138 + <el-form-item label="主单号" prop="awba">
  139 + <el-input v-model="loadingModel.awba"></el-input>
  140 + </el-form-item>
  141 + </el-col>
  142 + <el-col :span="7.5">
  143 + <el-form-item label="承运人" prop="carrier">
  144 + <el-input v-model="carrier" :disabled="dialogStatus ==='update'"></el-input>
  145 + </el-form-item>
  146 + </el-col>
  147 + <el-col :span="7.5">
  148 + <el-form-item label="航班号" prop="flightno">
  149 + <el-input v-model="flightno" :disabled="dialogStatus ==='update'"></el-input>
  150 + </el-form-item>
  151 + </el-col>
  152 +
  153 + </el-row>
  154 + <el-row>
  155 +
  156 + <el-col :span="7.5">
  157 + <el-form-item label="起始站" prop="originstation">
  158 + <el-input v-model="originstation"
  159 + :disabled="dialogStatus ==='update'"></el-input>
  160 + </el-form-item>
  161 + </el-col>
  162 + <el-col :span="7.5">
  163 + <el-form-item label="目的站" prop="flightno">
  164 + <el-input v-model="destinationstation" :disabled="dialogStatus ==='update'"></el-input>
  165 + </el-form-item>
  166 + </el-col>
  167 + <el-col :span="7.5">
  168 + <el-form-item label="航班日期" prop="flightdate">
  169 + <el-date-picker v-model="loadingModel.flightdate" value-format="yyyy-MM-dd" type="date"
  170 + placeholder="请输入" :disabled="dialogStatus ==='update'"></el-date-picker>
  171 + </el-form-item>
  172 + </el-col>
  173 + </el-row>
  174 + <div class="grid-content content">
  175 + <span>货物信息</span>
  176 + </div>
  177 + <el-row>
  178 + <el-col :span="7.5">
  179 + <el-form-item label="装载件数" prop="piece">
  180 + <el-input v-model.number="loadingModel.lodingpiece"></el-input>
  181 + </el-form-item>
  182 + </el-col>
  183 + <el-col :span="7.5">
  184 + <el-form-item label="装载重量" prop="weight">
  185 + <el-input v-model.number="loadingModel.lodingweight"></el-input>
  186 + </el-form-item>
  187 + </el-col>
  188 + <el-col :span="7.5">
  189 + <el-form-item label="装载时间" prop="loadingtime">
  190 + <el-date-picker v-model="loadingModel.loadingtime" value-format="yyyy-MM-dd HH:mm:ss"
  191 + type="datetime"
  192 + placeholder="请输入"></el-date-picker>
  193 + </el-form-item>
  194 + </el-col>
  195 + </el-row>
  196 + <el-row>
  197 + <el-col :span="7.5">
  198 + <el-form-item label="运单件数" prop="price">
  199 + <el-input v-model.number="loadingModel.awbprice"></el-input>
  200 + </el-form-item>
  201 + </el-col>
  202 + <el-col :span="7.5">
  203 + <el-form-item label="运单重量" prop="weight">
  204 + <el-input v-model.number="loadingModel.awbweight"></el-input>
  205 + </el-form-item>
  206 + </el-col>
  207 + <el-col :span="7.5">
  208 + <el-form-item label="海关关区" prop="customcode">
  209 + <el-select v-model="loadingModel.customcode">
  210 + <el-option v-for="item in customcodeList " :key="item" :label="item"
  211 + :value="item"></el-option>
  212 + </el-select>
  213 + </el-form-item>
  214 +
  215 + </el-col>
  216 + </el-row>
  217 + <el-row>
  218 + <el-col :span="7.5">
  219 + <el-form-item label="特货代码" prop="awbh">
  220 + <el-input v-model="loadingModel.specialgoods"></el-input>
  221 + </el-form-item>
  222 + </el-col>
  223 + <el-col :span="7.5">
  224 + <el-form-item label="货物描述" prop="goodsname">
  225 + <el-input v-model="goodsname" placeholder="请输入"></el-input>
  226 + </el-form-item>
  227 + </el-col>
  228 + </el-row>
  229 + </el-form>
  230 + <div slot="footer" class="dialog-footer">
  231 + <el-button @click="dialogFormVisible = false">取消</el-button>
  232 + <el-button type="primary" @click="dialogStatus==='create'?createData():updateData()">保存</el-button>
  233 + <el-button type="success" @click="handleSaveAndSend">保存并发送</el-button>
  234 + </div>
  235 + </el-dialog>
  236 + <el-dialog title="收发明细" :visible.sync="dialogTableVisible">
  237 + <el-table :data="detailData" border>
  238 + <el-table-column label="操作时间" width="150">
  239 + <template slot-scope="scope">
  240 + {{scope.row.busdate}}
  241 + </template>
  242 + </el-table-column>
  243 + <el-table-column label="航班号" width="80">
  244 + <template slot-scope="scope">
  245 + {{scope.row.carrier}}{{scope.row.flightno}}
  246 + </template>
  247 + </el-table-column>
  248 + <el-table-column label="航班日期" width="100">
  249 + <template slot-scope="scope">
  250 + {{scope.row.flightdate}}
  251 + </template>
  252 + </el-table-column>
  253 + <el-table-column label="件数" width="70">
  254 + <template slot-scope="scope">
  255 + {{scope.row.buspiece}}
  256 + </template>
  257 + </el-table-column>
  258 + <el-table-column label="重量" width="70">
  259 + <template slot-scope="scope">
  260 + {{scope.row.busweight}}
  261 + </template>
  262 + </el-table-column>
  263 + <el-table-column label="回执信息" width="">
  264 + <template slot-scope="scope">
  265 + {{scope.row.cusrestext}}
  266 + </template>
  267 + </el-table-column>
  268 + <el-table-column label="操作人" width="100">
  269 + <template slot-scope="scope">
  270 + {{scope.row.operusername}}
  271 + </template>
  272 + </el-table-column>
  273 + </el-table>
  274 + </el-dialog>
  275 + </div>
  276 + </div>
  277 +</template>
  278 +<script>
  279 + import treeTable from '@/components/TreeTable'
  280 + import treeToArray from '@/utils/customEval'
  281 + import Pagination from '@/components/Pagination'
  282 + import {getMt4201ListForParam, deleteByIsDelete, updateStatus, updateMT4201, addMt4201} from '@/api/exitLoading'
  283 + import {Message} from "element-ui";
  284 + import {validAwb, validAlphabets, validAlphabetsAndNum, validAlphabetsAndSpanceKey} from "@/utils/validate"
  285 + export default {
  286 + name: "ExitLoading",
  287 + components: {treeTable, Pagination},
  288 + inject: ['reload'],
  289 + data() {
  290 + const validatorAwb = (rule, value, callback) => {
  291 + if (!validAwb(value)) {
  292 + callback("请正确书写主单号")
  293 + }
  294 + callback()
  295 + }
  296 + const validatorAwbh = (rule, value, callback) => {
  297 + if (!validAlphabetsAndNum(value)) {
  298 + callback("只能输入字母和数字")
  299 + }
  300 + callback()
  301 + }
  302 + const validatorAlphabets = (rule, value, callback) => {
  303 + if (!validAlphabets(value)) {
  304 + callback("只能输入字母")
  305 + }
  306 + callback()
  307 + }
  308 + const validAlphabetsSpanceKey = (rule,value,callback) =>{
  309 + if(!validAlphabetsAndSpanceKey(value)){
  310 + callback("只能输入字母、数字、空格")
  311 + }
  312 + callback()
  313 + }
  314 + return {
  315 + func: treeToArray,
  316 + total: 1,
  317 + dialogMap: {
  318 + update: '编辑出港装载',
  319 + create: '添加出港装载',
  320 + },
  321 + customcodeList: [4604, 4620],
  322 + dialogStatus: undefined,
  323 + dialogTableVisible: false,
  324 + dialogFormVisible: false,
  325 + listLoading: false,
  326 + loadingQuery: {
  327 + pageSize: 1,
  328 + limitSize: 100,
  329 + awba: undefined,
  330 + carrier: undefined,
  331 + flightno: undefined,
  332 + flightdate: undefined,
  333 + originstation: undefined,
  334 + destinationstation: undefined,
  335 + customcode: undefined
  336 + },
  337 + loadingRoles: {
  338 + awba: [{required: true, trigger: 'blur', validator: validatorAwb}],
  339 + awbh: [{required: true, trigger: 'blur', validator: validatorAwbh}],
  340 + goodsname: [{required: true, trigger: 'blur', validator: validAlphabetsSpanceKey}],
  341 + carrier: [{required: true, trigger: 'blur', validator: validatorAwbh}],
  342 + flightno: [{required: true, trigger: 'blur', validator: validatorAwbh}],
  343 + originstation: [{required: true, trigger: 'blur', validator: validatorAlphabets}],
  344 + destinationstation: [{required: true, trigger: 'blur', validator: validatorAlphabets}],
  345 + piece: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}],
  346 + weight: [{type: 'number', required: true, trigger: 'change', message: '只能输入数字'}],
  347 + customcode:[{required: true, trigger: 'change',message:'不能为空'}]
  348 + },
  349 + loadingData: [],
  350 + detailData: [],
  351 + loadingModel: {
  352 + carrier:undefined,
  353 + flightno: undefined,
  354 + flightdate: undefined,
  355 + originstation: undefined,
  356 + destinationstation: undefined,
  357 + awba: undefined,
  358 + lodingpiece: undefined,
  359 + lodingweight: undefined,
  360 + goodsname: undefined,
  361 + customcode: undefined,
  362 + specialgoods: undefined,
  363 + loadingtime: undefined,
  364 + messageType: 'MT4201',
  365 + awbprice: undefined,
  366 + awbweight: undefined
  367 + }
  368 + }
  369 + },
  370 + created() {
  371 + if (this.$route.params.flightData !== undefined) {
  372 + // 给查询条件赋值
  373 + if (this.$route.params.flightData.awba !== undefined && this.$route.params.flightData.awba !== '') {
  374 + this.loadingQuery.awba = this.$route.params.flightData.awba.substring(0, 3) + '-' + this.$route.params.flightData.awba.substring(3)
  375 + }
  376 + this.loadingQuery.carrier = this.$route.params.flightData.flightno.substring(0, 2)
  377 + this.loadingQuery.flightno = this.$route.params.flightData.flightno.substring(2)
  378 + this.loadingQuery.flightdate = this.$route.params.flightData.flightdate
  379 + this.loadingQuery.originstation = this.$route.params.flightData.originstation
  380 + this.loadingQuery.destinationstation = this.$route.params.flightData.destinationstation
  381 + this.getList()
  382 + }
  383 + },
  384 + computed: {
  385 + carrier: {
  386 + get: function () {
  387 + return this.loadingModel.carrier
  388 + },
  389 + set: function (val) {
  390 + this.loadingModel.carrier = val.toUpperCase().trim()
  391 + }
  392 + },
  393 + goodsname: {
  394 + get: function () {
  395 + return this.loadingModel.goodsname
  396 + },
  397 + set: function (val) {
  398 + this.loadingModel.goodsname = val.toUpperCase().trim()
  399 + }
  400 + },
  401 + flightno: {
  402 + get: function () {
  403 + return this.loadingModel.flightno
  404 + },
  405 + set: function (val) {
  406 + this.loadingModel.flightno = val.toUpperCase().trim()
  407 + }
  408 + },
  409 + originstation: {
  410 + get: function () {
  411 + return this.loadingModel.originstation
  412 + },
  413 + set: function (val) {
  414 + this.loadingModel.originstation = val.toUpperCase().trim()
  415 + }
  416 + },
  417 + destinationstation: {
  418 + get: function () {
  419 + return this.loadingModel.destinationstation
  420 + },
  421 + set: function (val) {
  422 + this.loadingModel.destinationstation = val.toUpperCase().trim()
  423 + }
  424 + }
  425 + },
  426 + methods: {
  427 + getList() {
  428 + this.listLoading = true
  429 + if (this.loadingQuery.awba !== undefined && this.loadingQuery.awba !== '') {
  430 + getMt4201ListForParam(this.loadingQuery).then(res => {
  431 + this.loadingData = res.data.dataList
  432 + this.total = res.data.count
  433 + if (res.data.count > 0) {
  434 + this.loadingQuery.carrier = this.loadingData[0].carrier
  435 + this.loadingQuery.flightno = this.loadingData[0].flightno
  436 + this.loadingQuery.flightdate = this.loadingData[0].flightdate
  437 + this.loadingQuery.originstation = this.loadingData[0].originstation
  438 + this.loadingQuery.destinationstation = this.loadingData[0].destinationstation
  439 + this.loadingQuery.customcode = this.loadingData[0].customcode
  440 + }
  441 + setTimeout(() => {
  442 + this.listLoading = false
  443 + }, 1.5 * 1000)
  444 + })
  445 + } else {
  446 + getMt4201ListForParam(this.loadingQuery).then(res => {
  447 + this.loadingData = res.data.dataList
  448 + this.total = res.data.count
  449 + setTimeout(() => {
  450 + this.listLoading = false
  451 + }, 1.5 * 1000)
  452 + })
  453 + }
  454 +
  455 + },
  456 + // 多选
  457 + handleSelectionChange() {
  458 +
  459 + },
  460 + // 查询
  461 + handleSearch() {
  462 + this.loadingQuery.carrier = undefined
  463 + this.loadingQuery.flightno = undefined
  464 + this.loadingQuery.originstation = undefined
  465 + this.loadingQuery.flightdate = undefined
  466 + this.loadingQuery.destinationstation = undefined
  467 + this.getList()
  468 + },
  469 + // 收发明细
  470 + handleSend() {
  471 + const resQuery = {
  472 + carrier: row.carrier,
  473 + flightNo: row.flightno,
  474 + flightDate: row.flightdate,
  475 + awba: row.awba,
  476 + awbh: row.awbh,
  477 + messageType: 'MT4201'
  478 + }
  479 + this.dialogTableVisible = true
  480 + getResponseForParam(resQuery).then(res => {
  481 + this.detailData = res.data
  482 + })
  483 + },
  484 + // 编辑 弹框
  485 + handleEdit(row) {
  486 + this.loadingModel = Object.assign({}, row)
  487 + console.log(this.loadingModel)
  488 + this.dialogStatus = 'update'
  489 + this.dialogFormVisible = true
  490 + this.$nextTick(() => {
  491 + this.$refs.loadingFormData.clearValidate()
  492 + })
  493 + },
  494 + // 更新数据
  495 + updateData() {
  496 + this.$refs.loadingFormData.validate(valid => {
  497 + if (valid) {
  498 + updateMT4201(this.loadingModel).then(res => {
  499 + if (res.data.count > 0) {
  500 + this.dialogFormVisible = false
  501 + Message.success("数据更新成功")
  502 + this.getList()
  503 + } else {
  504 + Message.error("数据更新失败,请检查数据")
  505 + }
  506 + })
  507 + }
  508 + })
  509 + },
  510 +
  511 + // 发送舱单报
  512 + handleSendAwb() {
  513 +
  514 + },
  515 + // 删除 发送删除报
  516 + handleAwbDelete(row) {
  517 + this.$confirm("是否删除", "确认消息", {
  518 + distinguishCancelAndClose: true,
  519 + confirmButtonText: '删除',
  520 + cancelButtonText: '取消'
  521 + }).then(() => {
  522 + deleteByIsDelete(row).then(res => {
  523 + if (res.data.count > 0) {
  524 + this.$message({
  525 + type: 'success',
  526 + message: '删除成功'
  527 + })
  528 + this.getList()
  529 + } else {
  530 + this.$message({
  531 + type: 'danger',
  532 + message: '删除异常,请稍后重试'
  533 + })
  534 + }
  535 + })
  536 + }).catch(action => {
  537 + this.$message({
  538 + type: 'info',
  539 + message: action === 'cancel'
  540 + ? '取消删除'
  541 + : '删除取消'
  542 + })
  543 + })
  544 + },
  545 + // 更改当前运单发送状态
  546 + handleAwbStatus(row) {
  547 + this.$confirm("是否发送更改状态", "确认消息", {
  548 + distinguishCancelAndClose: true,
  549 + confirmButtonText: '确认更改',
  550 + cancelButtonText: '取消更改'
  551 + }).then(() => {
  552 + updateStatus(row).then(res => {
  553 + if (res.data.count > 0) {
  554 + this.$message({
  555 + type: 'success',
  556 + message: '当前运单状态已更改'
  557 + })
  558 + this.getList()
  559 + } else {
  560 + this.$message({
  561 + type: 'error',
  562 + message: '状态更改失败,请稍后重试'
  563 + })
  564 + }
  565 + })
  566 +
  567 + }).catch(action => {
  568 + this.$message({
  569 + type: 'info',
  570 + message: action === 'cancel'
  571 + ? '取消状态更改'
  572 + : '状态更改取消'
  573 + })
  574 + })
  575 + },
  576 + // 保存并发送
  577 + handleSaveAndSend() {
  578 +
  579 + },
  580 + // 重置实体
  581 + restModel() {
  582 + this.loadingModel = {
  583 + carrier:undefined,
  584 + flightno: undefined,
  585 + flightdate: undefined,
  586 + originstation: undefined,
  587 + destinationstation: undefined,
  588 + awba: undefined,
  589 + lodingpiece: undefined,
  590 + lodingweight: undefined,
  591 + goodsname: undefined,
  592 + customcode: undefined,
  593 + specialgoods: undefined,
  594 + loadingtime: undefined,
  595 + messageType: 'MT4201',
  596 + awbprice: undefined,
  597 + awbweight: undefined
  598 + }
  599 + },
  600 + // 新增出港装载 弹框
  601 + handelAddLoadingInfo() {
  602 + this.restModel()
  603 + // 给model赋值,所使用数据是以单独单号查询数据所得
  604 + this.loadingModel.carrier = this.loadingQuery.carrier
  605 + this.loadingModel.flightdate = this.loadingQuery.flightdate
  606 + this.loadingModel.flightno = this.loadingQuery.flightno
  607 + this.loadingModel.originstation = this.loadingQuery.originstation
  608 + this.loadingModel.destinationstation = this.loadingQuery.destinationstation
  609 + this.loadingModel.customcode = this.loadingQuery.customcode
  610 + this.dialogStatus = 'create'
  611 + this.dialogFormVisible = true
  612 + this.$nextTick(() => {
  613 + this.$refs.loadingFormData.clearValidate()
  614 + })
  615 + },
  616 + // 新增出港装载 请求
  617 + createData() {
  618 + this.$refs.loadingFormData.validate(valid => {
  619 + if (valid) {
  620 + addMt4201(this.loadingModel).then(res => {
  621 + if (res.data.count > 0) {
  622 + this.dialogFormVisible = false
  623 + Message.success("新增出港装载成功")
  624 + this.getList()
  625 + } else {
  626 + Message.error("数据新增失败,请检查数据")
  627 + }
  628 + })
  629 + }
  630 + })
  631 + },
  632 + handleAddLoading() {
  633 + const row = {
  634 + 'messageType': 'MT4201'
  635 + }
  636 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  637 + },
  638 + handelBackStep() {
  639 + this.$router.push({name: '出港航班信息', params: {scopeRow: this.loadingModel}})
  640 + }
  641 + }
  642 + }
  643 +
  644 +</script>
  645 +<style>
  646 + .grid-content {
  647 + height: 36px;
  648 + line-height: 36px;
  649 + }
  650 +
  651 + .content {
  652 + border-left: 4px #409EFF solid;
  653 + padding-left: 10px;
  654 + background-color: #f9fafc;
  655 + margin-bottom: 2px
  656 + }
  657 +
  658 + .row-bg, .co {
  659 + background-color: white;
  660 + }
  661 +
  662 + .titleSpan {
  663 + font-weight: bold;
  664 + margin-right: 35px;
  665 + }
  666 +
  667 + .el-row {
  668 + margin-top: 10px;
  669 + margin-bottom: 0px;
  670 + }
  671 +
  672 + .btnFoot {
  673 + margin-top: 10px;
  674 + }
  675 +
  676 + .el-table td, .el-table th {
  677 + text-align: center
  678 + }
  679 +
  680 + .el-btn {
  681 + margin-left: 10px;
  682 + display: inline-block;
  683 + }
  684 +</style>
  1 +<template>
  2 + <!--<div class="app-container">-->
  3 + <div class="app-content">
  4 + <div class="filter-container">
  5 + <el-input v-model="listQuery.awba" clearable style="width: 200px;" class="filter-item" placeholder="运单号"/>
  6 + <el-input v-model="listQuery.carrier" clearable style="width: 200px;" class="filter-item" placeholder="承运人"/>
  7 + <el-input v-model="listQuery.flightno" clearable style="width: 200px;" class="filter-item" placeholder="航班号"/>
  8 + <el-date-picker v-model="listQuery.flightDate" type="date" placeholder="航班日期"
  9 + value-format="yyyy-MM-dd" class="filter-item"></el-date-picker>
  10 + </div>
  11 + <div class="filter-container">
  12 + <el-select v-model="listQuery.messageType" clearable class="filter-item" placeholder="请选择报文类型" style="width: 200px;">
  13 + <el-option v-for="item in messageTypeList" :key="item.value" :label="item.label" :value="item.value"></el-option>
  14 + </el-select>
  15 + <el-select v-model="listQuery.messageStatus" clearable class="filter-item" placeholder="请选择报文状态" style="width: 200px;">
  16 + <el-option v-for="item in messageStatusList" :key="item.value" :label="item.label" :value="item.value"></el-option>
  17 + </el-select>
  18 + <el-select v-model="listQuery.customStatus" clearable class="filter-item" placeholder="请选择海关状态" style="width: 200px;">
  19 + <el-option v-for="item in customStatusList" :key="item.value" :label="item.label" :value="item.value"></el-option>
  20 + </el-select>
  21 + <el-button class="filter-item" type="primary" @click="handleSearch">查询</el-button>
  22 + <el-button class="filter-item" style="margin-left: 10px;" type="warning"
  23 + @click="handleUpdateStatus">批量修改状态</el-button>
  24 + </div>
  25 + <div class="midSpan">
  26 + <el-row>
  27 + <el-col :span="0.5">
  28 + <span style="color: red">注:</span>
  29 + </el-col>
  30 + <el-col :span="1" style="background: oldlace; margin-right: 5px" align="center">
  31 + <span>预配舱单</span>
  32 + </el-col>
  33 + <el-col :span="1" style="background: #f0f9eb; margin-right: 5px" align="center">
  34 + <span>出港运抵</span>
  35 + </el-col>
  36 + <el-col :span="1" style="background: #bce7fd; margin-right: 5px" align="center">
  37 + <span>出港装载</span>
  38 + </el-col>
  39 + <el-col :span="1" style="background: #f5ffc0" align="center">
  40 + <span>出港理货</span>
  41 + </el-col>
  42 + </el-row>
  43 + </div>
  44 + <tree-table v-loading="listLoading" :data="manifestData" :eval-func="func" :expand-all="true"
  45 + style="font-size: 13px" border @selection-change="handleSelectionChange"
  46 + :row-class-name="tableRowClassName">
  47 + <el-table-column label="航班号" width="80px" align="center">
  48 + <template slot-scope="scope">
  49 + <span>{{ scope.row.carrier }}{{ scope.row.flightno }}</span>
  50 + </template>
  51 + </el-table-column>
  52 + <el-table-column label="航班日期" width="100px" align="center">
  53 + <template slot-scope="scope">
  54 + <span>{{ scope.row.flightdate }}</span>
  55 + </template>
  56 + </el-table-column>
  57 + <el-table-column label="航段" width="100px" align="center">
  58 + <template slot-scope="scope">
  59 + <span>{{ scope.row.originstation }}-{{ scope.row.destinationstation }}</span>
  60 + </template>
  61 + </el-table-column>
  62 + <el-table-column label="主单号" width="120px" align="center" >
  63 + <template slot-scope="scope" >
  64 + <span>{{ scope.row.awba }}</span>
  65 + </template>
  66 + </el-table-column>
  67 + <el-table-column label="分单号" width="150px" align="center">
  68 + <template slot-scope="scope">
  69 + <span>{{ scope.row.awbh }}</span>
  70 + </template>
  71 + </el-table-column>
  72 + <el-table-column label="件数" width="60px" align="center">
  73 + <template slot-scope="scope">
  74 + <span>{{ scope.row.piece }}</span>
  75 + </template>
  76 + </el-table-column>
  77 + <el-table-column label="重量" width="60px" align="center">
  78 + <template slot-scope="scope">
  79 + <span>{{ scope.row.weight }}</span>
  80 + </template>
  81 + </el-table-column>
  82 + <el-table-column label="关区" width="60px" align="center">
  83 + <template slot-scope="scope">
  84 + <span>{{ scope.row.customcode }}</span>
  85 + </template>
  86 + </el-table-column>
  87 + <el-table-column label="时间" width="150px" align="center">
  88 + <template slot-scope="scope">
  89 + <span>{{ scope.row.actime }}</span>
  90 + </template>
  91 + </el-table-column>
  92 + <el-table-column label="状态" width="90px" align="center">
  93 + <template slot-scope="scope">
  94 + <span v-if="scope.row.status ==='01'">未发送</span>
  95 + <span v-if="scope.row.status ==='02'">已发舱单报</span>
  96 + <span v-if="scope.row.status ==='05'">舱单报退单</span>
  97 + <span v-if="scope.row.status ==='06'">舱单转人工</span>
  98 + <span v-if="scope.row.status ==='07'">舱单报申报成功</span>
  99 + <span v-if="scope.row.status ==='08'">已发舱单删除报</span>
  100 + <span v-if="scope.row.status ==='09'">舱单删除报退单</span>
  101 + <span v-if="scope.row.status ==='10'">舱单删除报转人工</span>
  102 + <span v-if="scope.row.status ==='11'">舱单删除成功</span>
  103 + <span v-if="scope.row.status ==='12'">已发舱单修改报</span>
  104 + <span v-if="scope.row.status ==='13'">舱单修改报退单</span>
  105 + <span v-if="scope.row.status ==='14'">舱单修改报转人工</span>
  106 + <span v-if="scope.row.status ==='15'">舱单修改报成功</span>
  107 + <span v-if="scope.row.status ==='16'">海关已存在</span>
  108 + </template>
  109 + </el-table-column>
  110 + <el-table-column label="回执内容" align="center" show-overflow-tooltip>
  111 + <template slot-scope="scope">
  112 + <span>{{ scope.row.customText }}</span>
  113 + <!--<div>-->
  114 + <!--<el-progress :percentage="scope.row.customComplate" :status="scope.row.status | statusFilter"/>-->
  115 + <!--</div>-->
  116 + </template>
  117 + </el-table-column>
  118 + <el-table-column label="操作" width="180px" align="center">
  119 + <template slot-scope="scope">
  120 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT2201'" @click="handleUpdate(scope.row)">预配舱单</a>
  121 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT3201'" @click="handleUpdate(scope.row)">出港运抵</a>
  122 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT4201'" @click="handleUpdate(scope.row)">出港装载</a>
  123 + <a style="color: #1d8ce0; margin-right: 5px" v-if="scope.row.messageType==='MT5202'" @click="handleUpdate(scope.row)">出港理货</a>
  124 + <a style="color: #1d8ce0" @click="handleUpdateStatus(scope.row)">更改状态</a>
  125 + </template>
  126 + </el-table-column>
  127 + </tree-table>
  128 + <pagination v-show="total>0" :total="total" :page.sync="listQuery.pageSize" :limit.sync="listQuery.limitSize"
  129 + @pagination="getList"/>
  130 + </div>
  131 +</template>
  132 +<script>
  133 + import treeTable from '@/components/TreeTable'
  134 + import treeToArray from '@/utils/customEval'
  135 + import Pagination from '@/components/Pagination'
  136 + import {getManifests} from "@/api/exitManifest"
  137 +
  138 + import {getMt520XListForParam} from "@/api/exitTidy";
  139 + import {getMt3201ListForParam} from "@/api/exitArrive";
  140 + import {getMt4201ListForParam} from "@/api/exitLoading";
  141 +
  142 + export default {
  143 + name: "ExitManifest",
  144 + components: {treeTable, Pagination},
  145 + inject:['reload'],
  146 + data() {
  147 + return {
  148 + func: treeToArray,
  149 + total: 1,
  150 + listLoading: false,
  151 + listQuery: {
  152 + pageSize: 1,
  153 + limitSize: 100,
  154 + awba:undefined,
  155 + carrier: undefined,
  156 + flightno:undefined,
  157 + flightDate: new Date(),
  158 + messageType: undefined,
  159 + messageStatus: undefined,
  160 + customStatus: undefined,
  161 + },
  162 + manifestData: [],
  163 + messageTypeList: [
  164 + {label:'预配舱单',value:'MT2201'},
  165 + {label:'出港运抵',value:'MT3201'},
  166 + {label:'出港装载',value:'MT4201'},
  167 + {label:'出港理货',value:'MT5202'}
  168 + ],
  169 + messageStatusList: [
  170 + {label:'未发送',value:'01'},
  171 + {label:'已发舱单报',value:'02'},
  172 + {label:'舱单报退单',value:'05'},
  173 + {label:'舱单转人工',value:'06'},
  174 + {label:'舱单报申报成功',value:'07'},
  175 + {label:'已发舱单删除报',value:'08'},
  176 + {label:'舱单删除报退单',value:'09'},
  177 + {label:'舱单删除报转人工',value:'10'},
  178 + {label:'舱单删除成功',value:'11'},
  179 + {label:'已发舱单修改报',value:'12'},
  180 + {label:'舱单修改报退单',value:'13'},
  181 + {label:'舱单修改报转人工',value:'14'},
  182 + {label:'舱单修改报成功',value:'15'},
  183 + {label:'海关已存在',value:'16'},
  184 + ],
  185 + customStatusList: [
  186 + {label:'普通货物',value:'001'},
  187 + {label:'国际转运货物',value:'002'},
  188 + {label:'国内转关',value:'003'},
  189 + {label:'空箱',value:'004'},
  190 + {label:'快件',value:'006'},
  191 + ]
  192 + }
  193 + },
  194 + methods: {
  195 + getList() {
  196 + this.listLoading = true
  197 + getManifests(this.listQuery).then(res =>{
  198 + this.manifestData = res.data.dataList
  199 + this.total = res.data.count
  200 + setTimeout(() =>{
  201 + this.listLoading = false
  202 + },1500)
  203 + })
  204 + },
  205 + handleSelectionChange() {
  206 +
  207 + },
  208 + handleSearch(){
  209 + this.getList()
  210 + },
  211 + handleUpdateStatus(row){
  212 +
  213 + },
  214 + handleUpdate(row){
  215 + if(row.messageType === 'MT2201'){
  216 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  217 + }
  218 + if(row.messageType === 'MT3201'){
  219 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  220 + }
  221 + if(row.messageType === 'MT4201'){
  222 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  223 + }
  224 + if(row.messageType === 'MT5201'){
  225 + this.$router.push({name: '出港航班信息', params: {scopeRow: row}})
  226 + }
  227 + },
  228 + tableRowClassName({row,index}){
  229 + if(row.messageType === 'MT2201'){
  230 + return 'MT2201-row'
  231 + }
  232 + if(row.messageType === 'MT3201'){
  233 + return 'MT3201-row'
  234 + }
  235 + if(row.messageType === 'MT4201'){
  236 + return 'MT4201-row'
  237 + }
  238 + if(row.messageType === 'MT5202'){
  239 + return 'MT5202-row'
  240 + }
  241 + }
  242 + }
  243 + }
  244 +
  245 +</script>
  246 +<style>
  247 + .el-table .MT2201-row {
  248 + background: oldlace;
  249 + }
  250 +
  251 + .el-table .MT3201-row {
  252 + background: #f0f9eb;
  253 + }
  254 +
  255 + .el-table .MT4201-row {
  256 + background: #bce7fd;
  257 + }
  258 +
  259 + .el-table .MT5202-row {
  260 + background: #f5ffc0;
  261 + }
  262 + .app-content{
  263 + margin-top: 20px;
  264 + }
  265 + .midSpan{
  266 + margin-bottom: 10px;
  267 + }
  268 +</style>