作者 朱兆平

Merge remote-tracking branch 'origin/master'

@@ -35,7 +35,7 @@ module.exports = { @@ -35,7 +35,7 @@ module.exports = {
35 // target: 'http://localhost:12343',//设置你调用的接口域名和端口号 别忘了加http 35 // target: 'http://localhost:12343',//设置你调用的接口域名和端口号 别忘了加http
36 changeOrigin: true, 36 changeOrigin: true,
37 pathRewrite: { 37 pathRewrite: {
38 - '^/api/': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可 38 + '^/api/': '/', //这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
39 } 39 }
40 } 40 }
41 }, 41 },
@@ -47,6 +47,7 @@ export default { @@ -47,6 +47,7 @@ export default {
47 return axios({ 47 return axios({
48 method: 'POST', // 请求协议 48 method: 'POST', // 请求协议
49 url: 'cloud-user-center/login', // 请求的地址 49 url: 'cloud-user-center/login', // 请求的地址
  50 + // url: 'cloud-kako-user-center/login', // 请求的地址
50 data: qs.stringify(data), // post 请求的数据 51 data: qs.stringify(data), // post 请求的数据
51 timeout: 30000, // 超时时间, 单位毫秒 52 timeout: 30000, // 超时时间, 单位毫秒
52 headers: { 53 headers: {
1 import axios from 'axios' 1 import axios from 'axios'
2 2
3 -let base = '/wlpt-flight-scheduling-interface/inquiry'; 3 +let base = '/wltp-flight-scheduling-interface/inquiry';
4 4
  5 +export const portList = params => { return axios.get(`${base}/portList`, { params: params }); };
5 6
  7 +export const exportList = params => { return axios.get(`${base}/exportList`, { params: params }); };
6 8
7 -export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; 9 +export const nternationaiiImportList = params => { return axios.get(`${base}/nternationaiiImportList`, { params: params }); };
  10 +
  11 +export const nternationaiiExportList = params => { return axios.get(`${base}/nternationaiiExportList`, { params: params }); };
8 12
1 import axios from 'axios' 1 import axios from 'axios'
2 2
3 let base = '/cloud-user-center/perm'; 3 let base = '/cloud-user-center/perm';
  4 +// let base = '/cloud-kako-user-center/perm';
4 5
5 6
6 export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; 7 export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
  1 +import axios from 'axios'
  2 +import http from "../http";
  3 +
  4 +let base = 'byonet-import';
  5 +
  6 +export const trailerFrameNoSuccess = params => {return axios.post(`${base}/businesstype/trailerFrameNoSuccess`, params);};
  7 +
  8 +export const list = params => {return http.get(`${base}/businesstype/list`, params);};
  9 +
  10 +export const aisleList = params => {return http.get(`${base}/businesstype/aisleList`, params);};
  11 +
  12 +export const save = params => {return axios.post(`${base}/businesstype/save`, params);};
  13 +
  14 +
  15 +
1 import axios from 'axios' 1 import axios from 'axios'
2 2
3 let base = '/cloud-user-center/role'; 3 let base = '/cloud-user-center/role';
  4 +// let baseUrl = '/cloud-kako-user-center/role'
4 5
5 6
6 export const getList = params => { return axios.get(`${base}/list`, { params: params }); }; 7 export const getList = params => { return axios.get(`${base}/list`, { params: params }); };
  1 +import http from './http.js'
  2 +
  3 +let baseUrl = 'station-manage'
  4 +
  5 +// 场站信息,分页查询
  6 +export const selectYardList = params =>{return http.get(`${baseUrl}/yard/page`, params);};
  7 +export const getYardList = params =>{return http.get(`${baseUrl}/yard/list`, params);};
  8 +// 场站信息,新增
  9 +export const insertYard = params =>{return http.post(`${baseUrl}/yard/insert`, params);};
  10 +// 场站信息,编辑
  11 +export const updateYard = params =>{return http.put(`${baseUrl}/yard/update`, params);};
  12 +// 场站信息,删除
  13 +export const deleteYard = params =>{return http.del(`${baseUrl}/yard/delete`, params);};
  14 +
  15 +// 卡口信息,分页查询
  16 +export const selectBayonetList = params =>{return http.get(`${baseUrl}/bayonet/page`, params);};
  17 +// 卡口信息,新增
  18 +export const insertBayonet = params =>{return http.post(`${baseUrl}/bayonet/insert`, params);};
  19 +// 卡口信息,编辑
  20 +export const updateBayonet = params =>{return http.put(`${baseUrl}/bayonet/update`, params);};
  21 +// 卡口信息,删除
  22 +export const deleteBayonet = params =>{return http.del(`${baseUrl}/bayonet/delete`, params);};
  23 +
  24 +
  25 +// 仓库信息,分页查询
  26 +export const selectWarehouseList = params =>{return http.get(`${baseUrl}/warehouse/page`, params);};
  27 +// 仓库信息,新增
  28 +export const insertWarehouse = params =>{return http.post(`${baseUrl}/warehouse/insert`, params);};
  29 +// 仓库信息,编辑
  30 +export const updateWarehouse = params =>{return http.put(`${baseUrl}/warehouse/update`, params);};
  31 +// 仓库信息,删除
  32 +export const deleteWarehouse = params =>{return http.del(`${baseUrl}/warehouse/delete`, params);};
  33 +
1 import http from './http.js' 1 import http from './http.js'
2 let baseUrl = '/cloud-user-center/user' 2 let baseUrl = '/cloud-user-center/user'
  3 +// let baseUrl = '/cloud-kako-user-center/user'
3 export const getUserList = params => { return http.get(`${baseUrl}/list`, params); }; 4 export const getUserList = params => { return http.get(`${baseUrl}/list`, params); };
4 5
5 export const getUserListPage = params => { return http.get(`/user/list`,params) }; 6 export const getUserListPage = params => { return http.get(`/user/list`,params) };
@@ -91,6 +91,12 @@ import Consignee from './views/consigner/consignee.vue' @@ -91,6 +91,12 @@ import Consignee from './views/consigner/consignee.vue'
91 import Security from './views/security/security.vue' 91 import Security from './views/security/security.vue'
92 92
93 93
  94 +// 场站管理
  95 +import Yard from './views/station_manage/Yard.vue'
  96 +import Bayonet from './views/station_manage/Bayonet.vue'
  97 +import Warehouse from './views/station_manage/Warehouse.vue'
  98 +
  99 +
94 100
95 let routes = [ 101 let routes = [
96 { 102 {
@@ -316,6 +322,17 @@ let routes = [ @@ -316,6 +322,17 @@ let routes = [
316 {path:'/queryFlightConfigure',component:queryFlightConfigure,name:'航班配置查询'}, 322 {path:'/queryFlightConfigure',component:queryFlightConfigure,name:'航班配置查询'},
317 ] 323 ]
318 }, 324 },
  325 + {
  326 + path: '/',
  327 + component: Home,
  328 + name: '场站管理',
  329 + iconCls: 'el-icon-setting',//图标样式class
  330 + children: [
  331 + {path: '/yard', component: Yard, name: '场站管理'},
  332 + {path: '/bayonet', component: Bayonet, name: '卡口管理'},
  333 + {path: '/warehouse', component: Warehouse, name: '仓库管理'},
  334 + ]
  335 + },
319 336
320 { 337 {
321 path: '/empt', 338 path: '/empt',
@@ -2,38 +2,45 @@ @@ -2,38 +2,45 @@
2 <section> 2 <section>
3 <!-- 工具条--> 3 <!-- 工具条-->
4 <el-row class="toolbar" style="padding-bottom: 0px;"> 4 <el-row class="toolbar" style="padding-bottom: 0px;">
5 - <el-form :inline="true" ref="form" :model="form"> 5 + <el-form :inline="true" ref="form" :model="filters">
6 <el-row> 6 <el-row>
7 - <el-col span="5"> 7 + <el-col :span="5">
8 <el-form-item label="车牌号:"> 8 <el-form-item label="车牌号:">
9 - <el-input v-model="form.input" placeholder="" size="small"style="width: 120px"></el-input> 9 + <el-input v-model="filters.trailerFrameNo" placeholder="" size="small"style="width: 120px"></el-input>
10 </el-form-item> 10 </el-form-item>
11 </el-col> 11 </el-col>
12 - <el-col span="5"> 12 + <el-col :span="5">
13 <el-form-item label="挂靠名称:"> 13 <el-form-item label="挂靠名称:">
14 - <el-input v-model="form.input" placeholder="" size="small" style="width: 120px"></el-input> 14 + <el-input v-model="filters.agentname" placeholder="" size="small" style="width: 120px"></el-input>
15 </el-form-item> 15 </el-form-item>
16 </el-col> 16 </el-col>
17 - <el-col span="5"> 17 + <el-col :span="5">
18 <el-form-item label="目的场站:"> 18 <el-form-item label="目的场站:">
19 - <el-select v-model="form.region" placeholder="请选择" size="small" style="width: 120px">  
20 - <el-option label="综保区货站" value="zongbaoqu"></el-option>  
21 - <el-option label="三号货站" value="sanhao"></el-option>  
22 - <el-option label="冷链货站" value="lenglian"></el-option>  
23 - <el-option label="快邮货站" value="kuaiyou"></el-option>  
24 - <el-option label="西货站" value="xi"></el-option> 19 + <el-select v-model="filters.endstation" @change="aisleOption(filters.endstation)" clearable placeholder="请选择">
  20 + <el-option
  21 + v-for="item in options"
  22 + :key="item.stationId"
  23 + :label="item.name"
  24 + :value="item.stationId">
  25 + </el-option>
25 </el-select> 26 </el-select>
26 </el-form-item> 27 </el-form-item>
27 </el-col> 28 </el-col>
28 - <el-col span="5">  
29 - <el-form-item label="卡 口:" style="margin-left: 10px">  
30 - <el-select v-model="form.region" placeholder="请选择" size="small" style="width: 120px"> 29 + <el-col :span="5">
  30 + <el-form-item label="卡口:" style="margin-left: 10px">
  31 + <el-select v-model="filters.aisle" :disabled="disabled" placeholder="先选择目的场站" size="small" style="width: 150px">
  32 + <el-option
  33 + v-for="item in aisleOptions"
  34 + :key="item.channel"
  35 + :label="item.name"
  36 + :value="item.channel">
  37 + </el-option>
31 </el-select> 38 </el-select>
32 </el-form-item> 39 </el-form-item>
33 </el-col> 40 </el-col>
34 - <el-col span="2"> 41 + <el-col :span="2">
35 <el-form-item> 42 <el-form-item>
36 - <el-button type="primary" @click="" size="small">查&nbsp;&nbsp;&nbsp;询</el-button> 43 + <el-button type="primary" @click="getList()" size="small">查询</el-button>
37 </el-form-item> 44 </el-form-item>
38 </el-col> 45 </el-col>
39 </el-row> 46 </el-row>
@@ -42,81 +49,44 @@ @@ -42,81 +49,44 @@
42 <!-- 列表--> 49 <!-- 列表-->
43 <el-row> 50 <el-row>
44 <el-table 51 <el-table
45 - :data="tableData" 52 + :data="businesstypeList"
46 border 53 border
  54 + v-loading="businesstypeListLoading"
47 style="width: 100%"> 55 style="width: 100%">
48 - <el-table-column  
49 - fixed  
50 - prop="date"  
51 - label="操作"> 56 + <el-table-column fixed prop="date" label="操作">
52 <el-button @click="handleClick(scope.row)" type="primary" size="small">查看</el-button> 57 <el-button @click="handleClick(scope.row)" type="primary" size="small">查看</el-button>
53 </el-table-column> 58 </el-table-column>
54 - <el-table-column  
55 - prop="name"  
56 - label="是否失效"> 59 + <el-table-column prop="isvalid" :formatter="isvalidFormatter" label="是否失效">
57 </el-table-column> 60 </el-table-column>
58 - <el-table-column  
59 - prop="province"  
60 - label="车牌号"  
61 - width="100"> 61 + <el-table-column prop="trailerFrameNo" label="车牌号" width="100">
62 </el-table-column> 62 </el-table-column>
63 - <el-table-column  
64 - prop="city"  
65 - label="挂靠单位"> 63 + <el-table-column prop="agentname" label="挂靠单位">
66 </el-table-column> 64 </el-table-column>
67 - <el-table-column  
68 - prop="zip"  
69 - label="目的关区"> 65 + <el-table-column prop="endport" label="目的关区">
70 </el-table-column> 66 </el-table-column>
71 - <el-table-column  
72 - prop="name"  
73 - label="卡口"> 67 + <el-table-column prop="aisle" label="卡口" width="100">
74 </el-table-column> 68 </el-table-column>
75 - <el-table-column  
76 - prop="province"  
77 - label="地磅称重"> 69 + <el-table-column prop="aislewt" label="地磅称重">
78 </el-table-column> 70 </el-table-column>
79 - <el-table-column  
80 - prop="city"  
81 - label="总货重"> 71 + <el-table-column prop="remark" label="总货重">
82 </el-table-column> 72 </el-table-column>
83 - <el-table-column  
84 - prop="address"  
85 - label="进出差值"> 73 + <el-table-column prop="remark1" label="进出差值">
86 </el-table-column> 74 </el-table-column>
87 - <el-table-column  
88 - prop="zip"  
89 - label="备案车重"> 75 + <el-table-column prop="remark2" label="备案车重">
90 </el-table-column> 76 </el-table-column>
91 - <el-table-column  
92 - prop="name"  
93 - label="业务类型"> 77 + <el-table-column prop="businesstype" label="业务类型">
94 </el-table-column> 78 </el-table-column>
95 - <el-table-column  
96 - prop="province"  
97 - label="货物类型"> 79 + <el-table-column prop="cocode" label="货物类型">
98 </el-table-column> 80 </el-table-column>
99 - <el-table-column  
100 - prop="city"  
101 - label="二维码编号"  
102 - width="110"> 81 + <el-table-column prop="barcode" label="二维码编号" width="110">
103 </el-table-column> 82 </el-table-column>
104 - <el-table-column  
105 - prop="address"  
106 - label="进出场站"> 83 + <el-table-column prop="turnoverflag" :formatter="turnoverflagFormatter" label="进出场站">
107 </el-table-column> 84 </el-table-column>
108 - <el-table-column  
109 - prop="zip"  
110 - label="已进已出"> 85 + <el-table-column prop="contrastflag" label="已进已出">
111 </el-table-column> 86 </el-table-column>
112 - <el-table-column  
113 - prop="zip"  
114 - label="更新时间"> 87 + <el-table-column prop="updateDate" label="更新时间" width="155">
115 </el-table-column> 88 </el-table-column>
116 - <el-table-column  
117 - fixed="right"  
118 - label="操作"  
119 - width="150"> 89 + <el-table-column fixed="right" label="操作" width="150">
120 <template slot-scope="scope"> 90 <template slot-scope="scope">
121 <el-button type="success" size="mini">修改</el-button> 91 <el-button type="success" size="mini">修改</el-button>
122 <el-button type="danger" size="mini">删除</el-button> 92 <el-button type="danger" size="mini">删除</el-button>
@@ -131,53 +101,134 @@ @@ -131,53 +101,134 @@
131 <el-pagination 101 <el-pagination
132 @size-change="handleSizeChange" 102 @size-change="handleSizeChange"
133 @current-change="handleCurrentChange" 103 @current-change="handleCurrentChange"
134 - :current-page="currentPage4"  
135 - :page-sizes="[100, 200, 300, 400]"  
136 - :page-size="100" 104 + :current-page="pageSize"
  105 + :page-sizes="[10, 100, 200, 300]"
  106 + :page-size="10"
137 layout="total, sizes, prev, pager, next, jumper" 107 layout="total, sizes, prev, pager, next, jumper"
138 - :total="400"> 108 + :total="this.total">
139 </el-pagination> 109 </el-pagination>
140 </div> 110 </div>
141 </section> 111 </section>
142 </template> 112 </template>
143 -  
144 <script> 113 <script>
  114 + import {list, aisleList} from '../../api/remote_interface/byont_import';
  115 + import {getYardList as yartList} from "../../api/station_dispatch";
145 export default { 116 export default {
146 data() { 117 data() {
147 return { 118 return {
148 - tableData:[  
149 - {  
150 - date: '',  
151 - name: '未失效',  
152 - province: '晋A5ES6',  
153 - city: '河南诺畅',  
154 - address: '4604',  
155 - zip: '西货站' 119 + businesstypeList: [],
  120 + pageSize: 1,
  121 + limitSize: 10,
  122 + total: 1,
  123 + options: [],
  124 + aisleOptions: [],
  125 + disabled: true,
  126 + filters: {
  127 + trailerFrameNo: '',
  128 + agentname: '',
  129 + endstation: '',
  130 + aisle: '',
  131 + },
  132 + businesstypeListLoading: false
156 } 133 }
157 - ],  
158 - currentPage4: 4,  
159 - form: {  
160 - name: '',  
161 - region: '',  
162 - date1: '',  
163 - date2: '',  
164 - delivery: false,  
165 - type: [],  
166 - resource: '',  
167 - desc: '' 134 + },
  135 + methods: {
  136 +
  137 + isvalidFormatter: function(row, column){
  138 + if (row.isvalid == '0'){
  139 + return "未失效"
  140 + }else {
  141 + return "失效"
168 } 142 }
  143 + },
  144 + turnoverflagFormatter: function(row, column){
  145 + if (row.turnoverflag == 'I'){
  146 + return "进场站"
  147 + }else {
  148 + return "出场站"
169 } 149 }
170 }, 150 },
171 - methods: { 151 + // 获取列表
  152 + getList() {
  153 + let para = {
  154 + pageSize: this.pageSize,
  155 + limitSize: this.limitSize,
  156 + trailerFrameNo: this.filters.trailerFrameNo,
  157 + agentname: this.filters.agentname,
  158 + endstation: this.filters.endstation,
  159 + aisle: this.filters.aisle
  160 + };
  161 + this.businesstypeListLoading = true;
  162 + console.log(para);
  163 + list(para).then((res) => {
  164 + this.total = res.data.data.total;
  165 + this.businesstypeList = res.data.data.list;
  166 + this.businesstypeListLoading = false;
  167 + }).catch((error) => {
  168 + this.businesstypeListLoading = false;
  169 + if(null!= error.response && error.response!==undefined){
  170 + let status= error.response.status;
  171 + let msg = error.response.statusText;
  172 + alert(status+msg);
  173 + }else {
  174 + alert(error);
  175 + }
  176 +
  177 + });
  178 +
  179 + },
  180 +
  181 + // 获取场站
  182 + getYardList(){
  183 + yartList().then((res) =>{
  184 + this.options = res.data.data;
  185 + }).catch((error) => {
  186 + if(null!= error.response && error.response!==undefined){
  187 + let status= error.response.status;
  188 + let msg = error.response.statusText;
  189 + alert(status+msg);
  190 + }else {
  191 + alert(error);
  192 + }
  193 +
  194 + });
  195 + },
  196 + // 获取卡口名称
  197 + aisleOption(value){
  198 + let para = {
  199 + yardId: value
  200 + }
  201 + this.filters.aisle = '';
  202 + aisleList(para).then((res) =>{
  203 + this.aisleOptions = res.data.data;
  204 + this.disabled = false;
  205 + }).catch((error) => {
  206 + if(null!= error.response && error.response!==undefined){
  207 + let status= error.response.status;
  208 + let msg = error.response.statusText;
  209 + alert(status+msg);
  210 + }else {
  211 + alert(error);
  212 + }
  213 +
  214 + });
  215 + },
172 onSubmit() { 216 onSubmit() {
173 console.log('submit!'); 217 console.log('submit!');
174 }, 218 },
175 handleSizeChange(val) { 219 handleSizeChange(val) {
176 - console.log(`每页 ${val} 条`); 220 + this.limitSize = val;
  221 + this.getList();
177 }, 222 },
178 handleCurrentChange(val) { 223 handleCurrentChange(val) {
179 - console.log(`当前页: ${val}`); 224 + this.pageSize = val;
  225 + this.getList();
  226 +
180 } 227 }
  228 + },
  229 + mounted() {
  230 + this.getYardList();
  231 + this.getList();
181 } 232 }
182 } 233 }
183 </script> 234 </script>
@@ -2,16 +2,16 @@ @@ -2,16 +2,16 @@
2 <section> 2 <section>
3 <!-- 工具条--> 3 <!-- 工具条-->
4 <el-row class="toolbar" style="padding-bottom: 0px;"> 4 <el-row class="toolbar" style="padding-bottom: 0px;">
5 - <el-form :inline="true" ref="form" :model="form" > 5 + <el-form :inline="true" ref="filters" :model="filters" :rules="rules" >
6 <el-row> 6 <el-row>
7 - <el-col span="8">  
8 - <el-form-item label="主单号:">  
9 - <el-input v-model="form.input" placeholder="" size="small" style="width: 240px"></el-input> 7 + <el-col :span="8">
  8 + <el-form-item label="主单号:" prop="waybill">
  9 + <el-input v-model="filters.waybill" placeholder="" size="small" style="width: 240px"></el-input>
10 </el-form-item> 10 </el-form-item>
11 </el-col> 11 </el-col>
12 - <el-col span="8"> 12 + <el-col :span="8">
13 <el-form-item> 13 <el-form-item>
14 - <el-button type="primary" @click="" size="small" style="margin-left: 40px">查&nbsp;&nbsp;&nbsp;询</el-button> 14 + <el-button type="primary" @click="getWaybillList('filters')" size="small" style="margin-left: 40px">查询</el-button>
15 <span style="color: red;margin-left: 10px">查询单号前请先选定业务类型</span> 15 <span style="color: red;margin-left: 10px">查询单号前请先选定业务类型</span>
16 </el-form-item> 16 </el-form-item>
17 </el-col> 17 </el-col>
@@ -20,64 +20,42 @@ @@ -20,64 +20,42 @@
20 </el-row> 20 </el-row>
21 <!-- 列表--> 21 <!-- 列表-->
22 <el-row> 22 <el-row>
23 - <el-table  
24 - :data="tableData"  
25 - style="width: 100%">  
26 - <el-table-column  
27 - fixed  
28 - prop="date"  
29 - label="操作">  
30 - <el-button @click="handleClick(scope.row)" type="primary" size="small">查看</el-button> 23 + <el-table :data="awbaList" v-loading="commonLoading" style="width: 100%">
  24 + <el-table-column fixed label="操作">
  25 + <template slot-scope="scope">
  26 + <el-button @click="addWaybill(scope.$index, scope.row)" type="primary" size="small">添加</el-button>
  27 + </template>
31 </el-table-column> 28 </el-table-column>
32 - <el-table-column  
33 - prop="date"  
34 - label="航班号"> 29 + <el-table-column prop="flightno" label="航班号">
35 </el-table-column> 30 </el-table-column>
36 - <el-table-column  
37 - prop="name"  
38 - label="航班日期"> 31 + <el-table-column prop="flightDate" :formatter="flightDate" label="航班日期">
39 </el-table-column> 32 </el-table-column>
40 - <el-table-column  
41 - prop="address"  
42 - label="航段"> 33 + <el-table-column prop="segment" label="航段">
43 </el-table-column> 34 </el-table-column>
44 - <el-table-column  
45 - prop="date"  
46 - label="主单号"> 35 + <el-table-column prop="waybillnomaster" label="主单号">
47 </el-table-column> 36 </el-table-column>
48 - <el-table-column  
49 - prop="name"  
50 - label="件数"> 37 + <el-table-column prop="totalpiece" label="件数">
51 </el-table-column> 38 </el-table-column>
52 - <el-table-column  
53 - prop="address"  
54 - label="重量"> 39 + <el-table-column prop="totalweight" label="重量">
55 </el-table-column> 40 </el-table-column>
56 - <el-table-column  
57 - prop="date"  
58 - label="关区"> 41 + <el-table-column prop="customscode" label="关区">
59 </el-table-column> 42 </el-table-column>
60 - <el-table-column  
61 - prop="name"  
62 - label="时间"> 43 + <el-table-column prop="createdate" :formatter="formatDate" label="时间">
63 </el-table-column> 44 </el-table-column>
64 - <el-table-column  
65 - prop="address"  
66 - label="回执内容"> 45 + <el-table-column prop="receiptinformation" label="回执内容" width="280px">
67 </el-table-column> 46 </el-table-column>
68 </el-table> 47 </el-table>
69 </el-row> 48 </el-row>
70 <!-- 申请表单信息--> 49 <!-- 申请表单信息-->
71 <el-row style="padding-bottom: 0px;"> 50 <el-row style="padding-bottom: 0px;">
72 - <el-form ref="form" :model="form"> 51 + <el-form ref="addForm" :model="addForm" :rules="addFormRules">
73 <el-row> 52 <el-row>
74 - <el-col span="8"> 53 + <el-col :span="10">
75 <el-row> 54 <el-row>
76 <el-form-item label="输入备注:"> 55 <el-form-item label="输入备注:">
77 <el-input 56 <el-input
78 type="text" 57 type="text"
79 - placeholder=""  
80 - v-model="form.text" 58 + v-model="addForm.remark3"
81 maxlength="10" 59 maxlength="10"
82 show-word-limit 60 show-word-limit
83 size="small" style="width: 180px"> 61 size="small" style="width: 180px">
@@ -85,58 +63,64 @@ @@ -85,58 +63,64 @@
85 </el-form-item> 63 </el-form-item>
86 </el-row> 64 </el-row>
87 <el-row> 65 <el-row>
88 - <el-form-item label="车牌号码:">  
89 - <el-input v-model="form.input" placeholder="" size="small" style="width: 180px"></el-input> 66 + <el-form-item label="车牌号码:" prop="trailerFrameNo">
  67 + <el-input v-model="addForm.trailerFrameNo" placeholder="请输入车牌号" @change="trailerFrameNo(addForm.trailerFrameNo)" size="small" style="width: 180px"></el-input>
90 </el-form-item> 68 </el-form-item>
91 </el-row> 69 </el-row>
92 <el-row> 70 <el-row>
93 - <el-form-item label="货物类型:">  
94 - <el-select v-model="form.region" placeholder="请选择" size="small" style="width: 180px">  
95 - <el-option label="转关货" value="zongbaoqu"></el-option>  
96 - <el-option label="换单货" value="sanhao"></el-option>  
97 - <el-option label="普通货" value="lenglian"></el-option>  
98 - <el-option label="退库货" value="kuaiyou"></el-option>  
99 - <el-option label="查验货" value="xi"></el-option> 71 + <el-form-item label="货物类型:" prop="cocode">
  72 + <el-select v-model="addForm.cocode" placeholder="请选择" size="small" style="width: 180px">
  73 + <el-option label="转关货" value="转关货"></el-option>
  74 + <el-option label="换单货" value="换单货"></el-option>
  75 + <el-option label="普通货" value="普通货"></el-option>
  76 + <el-option label="退库货" value="退库货"></el-option>
  77 + <el-option label="查验货" value="查验货"></el-option>
100 </el-select> 78 </el-select>
101 </el-form-item> 79 </el-form-item>
102 </el-row> 80 </el-row>
103 <el-row> 81 <el-row>
104 - <el-form-item label="运输公司:">  
105 - <el-input v-model="form.input" placeholder="" size="small" style="width: 180px"></el-input> 82 + <el-form-item label="场站选择:" prop="endstationList">
  83 + <el-select v-model="addForm.endstationList" multiple placeholder="请选择">
  84 + <el-option
  85 + v-for="item in options"
  86 + :key="item.stationId"
  87 + :label="item.name"
  88 + :value="item.stationId">
  89 + </el-option>
  90 + </el-select>
106 </el-form-item> 91 </el-form-item>
107 </el-row> 92 </el-row>
108 <el-row> 93 <el-row>
109 - <el-form-item label="挂靠单位:">  
110 - <el-input v-model="form.input" placeholder="" size="small" style="width: 180px"></el-input> 94 + <el-form-item label="运输公司:">
  95 + <el-input v-model="addForm.agentno" placeholder="" size="small" style="width: 180px"></el-input>
111 </el-form-item> 96 </el-form-item>
112 </el-row> 97 </el-row>
113 - </el-col>  
114 - <el-col span="7">  
115 <el-row> 98 <el-row>
116 - <el-form-item label="是否空车:">  
117 - <el-radio v-model="radio" label="1" style="margin-left: 20px">是</el-radio>  
118 - <el-radio v-model="radio" label="2">否</el-radio> 99 + <el-form-item label="挂靠单位:">
  100 + <el-input v-model="addForm.agentname" placeholder="" size="small" style="width: 180px"></el-input>
119 </el-form-item> 101 </el-form-item>
120 </el-row> 102 </el-row>
  103 + </el-col>
  104 + <el-col :span="7">
121 <el-row> 105 <el-row>
122 - <el-form-item label="业务类型:">  
123 - <el-select v-model="form.region" placeholder="请选择" size="small" style="width: 180px">  
124 - <el-option label="进口提货" value="zongbaoqu"></el-option>  
125 - <el-option label="出口送货" value="sanhao"></el-option>  
126 - <el-option label="分拨业务" value="lenglian"></el-option>  
127 - <el-option label="调拨业务" value="kuaiyou"></el-option> 106 + <el-form-item label="业务类型:" prop="businesstype">
  107 + <el-select v-model="addForm.businesstype" clearable placeholder="请选择" size="small" style="width: 180px">
  108 + <el-option label="进口提货" value="进口提货"></el-option>
  109 + <el-option label="出口送货" value="出口送货"></el-option>
  110 + <el-option label="分拨业务" value="分拨业务"></el-option>
  111 + <el-option label="调拨业务" value="调拨业务"></el-option>
128 </el-select> 112 </el-select>
129 </el-form-item> 113 </el-form-item>
130 114
131 </el-row> 115 </el-row>
132 <el-row> 116 <el-row>
133 <el-form-item label="申请单位:"> 117 <el-form-item label="申请单位:">
134 - <el-input v-model="form.input" placeholder="" size="small" style="width: 180px"></el-input> 118 + <el-input v-model="addForm.veProperty" disabled size="small" style="width: 180px"></el-input>
135 </el-form-item> 119 </el-form-item>
136 </el-row> 120 </el-row>
137 <el-row> 121 <el-row>
138 <el-form-item label="备案单位:"> 122 <el-form-item label="备案单位:">
139 - <el-input v-model="form.input" placeholder="" size="small" style="width: 180px"></el-input> 123 + <el-input v-model="addForm.trailerLicenseNo" disabled size="small" style="width: 180px"></el-input>
140 </el-form-item> 124 </el-form-item>
141 125
142 </el-row> 126 </el-row>
@@ -146,114 +130,313 @@ @@ -146,114 +130,313 @@
146 type="textarea" 130 type="textarea"
147 :rows="4" 131 :rows="4"
148 placeholder="请输入主单号,例如17212341234,多个单号以‘,’(英文)分割" 132 placeholder="请输入主单号,例如17212341234,多个单号以‘,’(英文)分割"
149 - v-model="textarea" 133 + v-model="addForm.masterList"
150 style="width: 180px"> 134 style="width: 180px">
151 </el-input> 135 </el-input>
152 </el-form-item> 136 </el-form-item>
153 </el-row> 137 </el-row>
154 -  
155 - </el-col>  
156 - <el-col span="3">  
157 - <el-row>  
158 - <el-form-item label="选择场站信息:" >  
159 - </el-form-item>  
160 - </el-row>  
161 - </el-col>  
162 - <el-col span="4">  
163 - <el-row>  
164 - <el-tree  
165 - :data="data"  
166 - show-checkbox  
167 - node-key="id"  
168 - :default-expanded-keys="[2, 3]">  
169 - </el-tree>  
170 - </el-row>  
171 </el-col> 138 </el-col>
172 </el-row> 139 </el-row>
173 <el-row style="margin-left: 320px"> 140 <el-row style="margin-left: 320px">
174 - <el-button type="success">保&nbsp;&nbsp;&nbsp;&nbsp;存</el-button>  
175 - <el-button type="info">返&nbsp;&nbsp;&nbsp;&nbsp;回</el-button> 141 +<!-- <el-button type="primary" @click="saveSubmit()" :disabled="disabledStr">保存</el-button>-->
  142 + <el-button type="primary" @click="saveSubmit()" :disabledStr="disabledStr" >保存</el-button>
176 </el-row> 143 </el-row>
177 </el-form> 144 </el-form>
178 </el-row> 145 </el-row>
179 </section> 146 </section>
180 147
181 </template> 148 </template>
182 -  
183 <script> 149 <script>
  150 + import {getYardList as yartList} from '../../api/station_dispatch'
  151 + import {trailerFrameNoSuccess, save} from '../../api/remote_interface/byont_import'
  152 + import loginUserInfo from "../../api/base";
  153 + import {add} from "../../api/security/security";
184 export default { 154 export default {
185 data() { 155 data() {
186 return { 156 return {
187 - form: {  
188 - input: '', 157 + rules:{
  158 + waybill: [
  159 + { required: true, message: '请输入运单号', trigger: 'change' }
  160 + ]
189 }, 161 },
190 - radio:'',  
191 - tableData:[],  
192 - data: [{  
193 - id: 1,  
194 - label: '4604',  
195 - children: [{  
196 - id: 3,  
197 - label: '西货站',  
198 - children: [{  
199 - id: 4,  
200 - label: '一号卡口进'  
201 - }, {  
202 - id: 5,  
203 - label: '一号卡口出',  
204 - }]  
205 - }, {  
206 - id: 2,  
207 - label: '军投货站',  
208 - children: [{  
209 - id: 6,  
210 - label: '一号卡口进'  
211 - }, {  
212 - id: 7,  
213 - label: '一号卡口出',  
214 - }]  
215 - }] 162 + addFormRules:{
  163 + businesstype: [
  164 + {required: true, message: '请输入运单号', trigger: 'blur'}
  165 + ],
  166 + trailerFrameNo: [
  167 + {required: true, message: '请输入车牌号', trigger: 'blur'}
  168 + ],
  169 + cocode: [
  170 + {required: true, message: '请选择货务类型', trigger: 'blur'}
  171 + ],
  172 + endstationList: [
  173 + {required: true, message: '请选择场站', trigger: 'blur'}
  174 + ]
216 }, 175 },
217 - {  
218 - id: 1,  
219 - label: '4620',  
220 - children: [{  
221 - id: 3,  
222 - label: '综保区货站仓库',  
223 - children: [{  
224 - id: 4,  
225 - label: '内三卡口进'  
226 - }, {  
227 - id: 5,  
228 - label: '内三卡口出',  
229 - }]  
230 - }] 176 + options:[],
  177 + filters: {
  178 + waybill: '828-12161085',
231 }, 179 },
232 - {  
233 - id: 1,  
234 - label: '4612',  
235 - children: [{  
236 - id: 3,  
237 - label: '综保区',  
238 - children: [{  
239 - id: 4,  
240 - label: '六号主卡口进'  
241 - }, {  
242 - id: 5,  
243 - label: '六号主卡口出',  
244 - }]  
245 - }]  
246 - }],  
247 - defaultProps: {  
248 - children: 'children',  
249 - label: 'label' 180 + radio:'',
  181 + awbaList:[],
  182 + yardList: [],
  183 + commonLoading: false,
  184 + textarea: '',
  185 + disabledStr: true,
  186 + addForm: {
  187 + // 备注
  188 + remark3: '',
  189 + // 业务类型
  190 + businesstype: '',
  191 + // 车牌号
  192 + trailerFrameNo: '',
  193 + //备案单位
  194 + trailerLicenseNo: '',
  195 + // 主单列表
  196 + masterList: '',
  197 + // 场站编号
  198 + endstation: '',
  199 + endstationList: '',
  200 + // 运输公司
  201 + agentno: '',
  202 + // 挂靠单位
  203 + agentname: '',
  204 + //申请单位
  205 + veProperty: '',
  206 + // 货物类型
  207 + cocode:'',
  208 + // 货物重量
  209 + remark: ''
250 }, 210 },
251 - textarea: '' 211 +
252 } 212 }
253 }, 213 },
254 methods: { 214 methods: {
  215 + // 运单查询
  216 + getWaybillList(filters){
  217 + let businesstype = this.addForm.businesstype;
  218 + if (businesstype != undefined && businesstype != null && businesstype != ''){
  219 + this.$refs[filters].validate((valid) => {
  220 + if (valid) {
  221 + this.commonLoading = true;
  222 + if (businesstype == '进口提货'){
  223 + businesstype = 'I';
  224 + }else if (businesstype == '出口送货'){
  225 + businesstype = 'E';
  226 + }else if (businesstype == '分拨业务'){
  227 + businesstype = 'I';
  228 + }else if (businesstype == '调拨业务'){
  229 + businesstype = 'E';
  230 + }
  231 + let _this = this;
  232 + var url = "http://tjfx.15miaoo.com:8003/orig/orig";
  233 + var xhr = new XMLHttpRequest();
  234 + // 访问nginx中的代理服务器
  235 + xhr.open('get', url+'?waybill='+this.filters.waybill+'&imp='+businesstype, true);
  236 + xhr.send();
  237 + xhr.onreadystatechange = function(){
  238 + if(xhr.readyState == 4){
  239 + if(xhr.status ==200){
  240 + var data = JSON.parse(xhr.responseText);
  241 + _this.awbaList=data;
  242 + //console.log(data);
  243 + _this.commonLoading = false;
  244 + }
  245 + }
  246 + }
  247 + } else {
  248 + console.log('error submit!!');
  249 + return false;
  250 + }
  251 + });
  252 + }else {
  253 + this.$message({
  254 + message: '请在下列选择业务类型',
  255 + type: "error"
  256 + })
  257 + }
  258 + },
  259 + // 获取场站
  260 + getYardList(){
  261 + yartList().then((res) =>{
  262 + this.options = res.data.data;
  263 + }).catch((error) => {
  264 + if(null!= error.response && error.response!==undefined){
  265 + let status= error.response.status;
  266 + let msg = error.response.statusText;
  267 + alert(status+msg);
  268 + }else {
  269 + alert(error);
  270 + }
  271 +
  272 + });
  273 + },
  274 + // 校验车牌号是否合格
  275 + trailerFrameNo(value){
  276 + let params = {
  277 + 'trailerFrameNo': value,
  278 + }
  279 + trailerFrameNoSuccess(params).then((res) =>{
  280 + if (res.data.code == 200){
  281 + this.$message({
  282 + message: res.data.msg,
  283 + type: "success"
  284 + })
  285 + this.addForm.agentno = res.data.data.coCode;
  286 + this.addForm.trailerLicenseNo = res.data.data.veTargetNo;
  287 + this.addForm.agentname = res.data.data.proposer;
  288 +
  289 + this.disabledStr = false;
  290 + }else if(res.data.code == 201) {
  291 + this.$message({
  292 + message: res.data.msg,
  293 + type: "warning"
  294 + })
  295 + this.disabledStr = true;
  296 + }else if (res.data.code == 202){
  297 + this.$message({
  298 + message: res.data.msg,
  299 + type: "warning"
  300 + })
  301 + this.addForm.agentno = res.data.data.coCode;
  302 + this.addForm.trailerLicenseNo = res.data.data.veTargetNo;
  303 + this.addForm.agentname = res.data.data.proposer;
  304 + this.addForm.veProperty = res.data.data.veProperty;
  305 + this.disabledStr = true;
  306 + }
  307 + }).catch((error) => {
  308 + if(null!= error.response && error.response!==undefined){
  309 + let status= error.response.status;
  310 + let msg = error.response.statusText;
  311 + alert(status+msg);
  312 + }else {
  313 + alert(error);
  314 + }
  315 +
  316 + });
  317 + },
  318 + // 日期格式转换
  319 + flightDate: function (row, column) {
  320 + // 获取单元格数据
  321 + let data = row.flightDate
  322 + if(data == null) {
  323 + return null
  324 + }
  325 + let dt = new Date(data)
  326 + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate();
  327 + },
  328 + formatDate: function (row, column) {
  329 + // 获取单元格数据
  330 + let data = row.createdate;
  331 + if(data == null) {
  332 + return null
  333 + }
  334 + let dt = new Date(data)
  335 + return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate()+ ' ' + dt.getHours() + ':' + dt.getMinutes() + ':' + dt.getSeconds();
  336 + },
  337 + // 添加主单号到主单列表
  338 + addWaybill: function(index, row){
  339 + this.addForm.masterList += row.waybillnomaster+','
  340 + },
  341 + addweight(businesstype){
  342 + let _this = this;
  343 + let addweight = "";
  344 + // 运单重量累加
  345 + this.addForm.masterList=this.addForm.masterList.substring(0,this.addForm.masterList.length-1);
  346 + var split = this.addForm.masterList.split(",");
  347 + split.forEach((item) =>{
  348 + var url = "http://tjfx.15miaoo.com:8003/orig/orig";
  349 + var xhr = new XMLHttpRequest();
  350 + // 访问nginx中的代理服务器
  351 + xhr.open('get', url+'?waybill='+item+'&imp='+businesstype, true);
  352 + xhr.send();
  353 + xhr.onreadystatechange = function(){
  354 + if(xhr.readyState == 4){
  355 + if(xhr.status ==200){
  356 + var data = JSON.parse(xhr.responseText);
  357 + data.forEach((itmeData => {
  358 + addweight += itmeData.manifesttotalweight+",";
  359 + }));
  360 + }
  361 + }
  362 + }
  363 + });
  364 + return addweight;
  365 + },
  366 + addsubmit(){
  367 + let para = Object.assign({}, _this.addForm);
  368 + save(para).then((res) => {
  369 + if (res.data.code == 200){
  370 + this.$message({
  371 + message: '提交成功',
  372 + type: 'success'
  373 + });
  374 + this.$refs['addForm'].resetFields();
  375 + }else {
  376 + this.$message({
  377 + message: '提交失败',
  378 + type: 'error'
  379 + });
  380 + }
  381 + }).catch(error => alert(error));
  382 + },
  383 + // 申请添加
  384 + saveSubmit (){
  385 + let _this = this;
  386 + this.$refs.addForm.validate((valid) => {
  387 + if (valid) {
  388 + this.$confirm('确认提交吗?', '提示', {}).then(() => {
  389 + let businesstype = this.addForm.businesstype;
  390 + if (businesstype == '进口提货'){
  391 + businesstype = 'I';
  392 + }else if (businesstype == '出口送货'){
  393 + businesstype = 'E';
  394 + }else if (businesstype == '分拨业务'){
  395 + businesstype = 'I';
  396 + }else if (businesstype == '调拨业务'){
  397 + businesstype = 'E';
  398 + }
  399 + if (this.addForm.masterList.indexOf(",") !== -1){
  400 + _this.addForm.remark = _this.addweight(businesstype);
  401 + _this.nextTick(function(){
  402 + _this.addsubmit();
  403 + });
  404 +
  405 + }else {
  406 + console.log("进入远程调用");
  407 + let sum = 0;
  408 + var url = "http://tjfx.15miaoo.com:8003/orig/orig";
  409 + var xhr = new XMLHttpRequest();
  410 + // 访问nginx中的代理服务器
  411 + xhr.open('get', url+'?waybill='+this.addForm.masterList+'&imp='+businesstype, true);
  412 + xhr.send();
  413 + xhr.onreadystatechange = function(){
  414 + if(xhr.readyState == 4){
  415 + if(xhr.status ==200){
  416 + var data = JSON.parse(xhr.responseText);
  417 + data.forEach((itme => {
  418 + _this.addForm.remark += parseInt(itme.manifesttotalweight);
  419 + }));
  420 +
  421 + }
  422 + }
  423 + }
  424 + }
  425 + console.log(_this.addForm.remark);
  426 + console.log(_this.addForm);
  427 + }).catch(() =>{
255 428
  429 + });
  430 + } else {
  431 + console.log('error submit!!');
  432 + return false;
  433 + }
  434 + });
  435 + }
256 }, 436 },
  437 + mounted() {
  438 + this.getYardList();
  439 + }
257 } 440 }
258 </script> 441 </script>
259 442
@@ -27,20 +27,20 @@ @@ -27,20 +27,20 @@
27 <p style="font-size: 28px">条件查询</p> 27 <p style="font-size: 28px">条件查询</p>
28 </el-row> 28 </el-row>
29 <el-row> 29 <el-row>
30 - <el-tabs v-model="activeName" @tab-click="getDomesticClearance()" style="width: 100%"> 30 + <el-tabs v-model="activeName" @tab-click="getDomesticClearance" style="width: 100%">
31 <el-tab-pane label="国内出港" name="first"> 31 <el-tab-pane label="国内出港" name="first">
32 <div style=";margin-top: 15px"> 32 <div style=";margin-top: 15px">
33 <el-time-picker 33 <el-time-picker
34 - v-model="value1" 34 + v-model="filters.flightDate"
35 placeholder="任意时间点" 35 placeholder="任意时间点"
36 style="width: 140px"> 36 style="width: 140px">
37 </el-time-picker> 37 </el-time-picker>
38 <el-time-picker 38 <el-time-picker
39 - v-model="value2" 39 + v-model="filters.flightDate"
40 placeholder="任意时间点" 40 placeholder="任意时间点"
41 style="width: 140px"> 41 style="width: 140px">
42 </el-time-picker> 42 </el-time-picker>
43 - <el-select v-model="value" placeholder="目的地" style="width: 140px"> 43 + <el-select v-model="filters.destination" placeholder="目的地" style="width: 140px">
44 <el-option 44 <el-option
45 v-for="item in options" 45 v-for="item in options"
46 :key="item.value" 46 :key="item.value"
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 :value="item.value"> 48 :value="item.value">
49 </el-option> 49 </el-option>
50 </el-select> 50 </el-select>
51 - <el-select v-model="value" placeholder="航空公司" style="width: 140px"> 51 + <el-select v-model="filters.carrier" placeholder="航空公司" style="width: 140px">
52 <el-option 52 <el-option
53 v-for="item in options" 53 v-for="item in options"
54 :key="item.value" 54 :key="item.value"
@@ -61,35 +61,24 @@ @@ -61,35 +61,24 @@
61 <el-row style="margin-top: 15px"> 61 <el-row style="margin-top: 15px">
62 <el-col :span="23"> 62 <el-col :span="23">
63 <el-table 63 <el-table
64 - :data="tableData" 64 + :data="listDate"
65 style="width: 100%"> 65 style="width: 100%">
66 - <el-table-column  
67 - prop=""  
68 - label="计划离港"> 66 + <el-table-column prop="fplt" label="计划离港">
69 </el-table-column> 67 </el-table-column>
70 - <el-table-column  
71 - prop=""  
72 - label="航班号"> 68 + <el-table-column label="航班号">
  69 + <template slot-scope="scope">
  70 + {{scope.row.carrier}}{{scope.row.flightno}}
  71 + </template>
73 </el-table-column> 72 </el-table-column>
74 - <el-table-column  
75 - prop=""  
76 - label="航空公司"> 73 + <el-table-column prop="carrier" label="航空公司">
77 </el-table-column> 74 </el-table-column>
78 - <el-table-column  
79 - prop=""  
80 - label="目的地"> 75 + <el-table-column prop="apcd" label="目的地">
81 </el-table-column> 76 </el-table-column>
82 - <el-table-column  
83 - prop=""  
84 - label="预计/实际离港"> 77 + <el-table-column prop="frlt" label="预计/实际离港">
85 </el-table-column> 78 </el-table-column>
86 - <el-table-column  
87 - prop=""  
88 - label="状态"> 79 + <el-table-column prop="" label="状态">
89 </el-table-column> 80 </el-table-column>
90 - <el-table-column  
91 - prop=""  
92 - label="航站楼"> 81 + <el-table-column prop="btsc" label="航站楼">
93 </el-table-column> 82 </el-table-column>
94 </el-table> 83 </el-table>
95 </el-col> 84 </el-col>
@@ -98,18 +87,17 @@ @@ -98,18 +87,17 @@
98 <el-tab-pane label="国际/地区出港" name="second"> 87 <el-tab-pane label="国际/地区出港" name="second">
99 <div style=";margin-top: 15px"> 88 <div style=";margin-top: 15px">
100 <el-time-picker 89 <el-time-picker
101 - v-model="value1"  
102 - 90 + v-model="filters.flightDate"
103 placeholder="任意时间点" 91 placeholder="任意时间点"
104 style="width: 140px"> 92 style="width: 140px">
105 </el-time-picker> 93 </el-time-picker>
106 <el-time-picker 94 <el-time-picker
107 arrow-control 95 arrow-control
108 - v-model="value2" 96 + v-model="filters.flightDate"
109 placeholder="任意时间点" 97 placeholder="任意时间点"
110 style="width: 140px"> 98 style="width: 140px">
111 </el-time-picker> 99 </el-time-picker>
112 - <el-select v-model="value" placeholder="目的地" style="width: 140px"> 100 + <el-select v-model="filters.destination" placeholder="目的地" style="width: 140px">
113 <el-option 101 <el-option
114 v-for="item in options" 102 v-for="item in options"
115 :key="item.value" 103 :key="item.value"
@@ -117,7 +105,7 @@ @@ -117,7 +105,7 @@
117 :value="item.value"> 105 :value="item.value">
118 </el-option> 106 </el-option>
119 </el-select> 107 </el-select>
120 - <el-select v-model="value" placeholder="航空公司" style="width: 140px"> 108 + <el-select v-model="filters.carrier" placeholder="航空公司" style="width: 140px">
121 <el-option 109 <el-option
122 v-for="item in options" 110 v-for="item in options"
123 :key="item.value" 111 :key="item.value"
@@ -130,54 +118,48 @@ @@ -130,54 +118,48 @@
130 <el-row style="margin-top: 15px"> 118 <el-row style="margin-top: 15px">
131 <el-col :span="23"> 119 <el-col :span="23">
132 <el-table 120 <el-table
133 - :data="tableData" 121 + :data="listDate"
134 style="width: 100%"> 122 style="width: 100%">
135 - <el-table-column  
136 - prop=""  
137 - label="计划离港"> 123 + <el-table-column prop="fplt" label="计划离港">
138 </el-table-column> 124 </el-table-column>
139 - <el-table-column  
140 - prop=""  
141 - label="航班号"> 125 + <el-table-column label="航班号">
  126 + <template slot-scope="scope">
  127 + {{scope.row.carrier}}{{scope.row.flightno}}
  128 + </template>
142 </el-table-column> 129 </el-table-column>
143 - <el-table-column  
144 - prop=""  
145 - label="航空公司"> 130 + <el-table-column prop="carrier" label="航空公司">
146 </el-table-column> 131 </el-table-column>
147 - <el-table-column  
148 - prop=""  
149 - label="目的地"> 132 + <el-table-column prop="apcd" label="目的地">
150 </el-table-column> 133 </el-table-column>
151 - <el-table-column  
152 - prop=""  
153 - label="预计/实际离港"> 134 + <el-table-column prop="frlt" label="预计/实际离港">
154 </el-table-column> 135 </el-table-column>
155 - <el-table-column  
156 - prop=""  
157 - label="状态"> 136 + <el-table-column prop="" label="状态">
158 </el-table-column> 137 </el-table-column>
159 - <el-table-column  
160 - prop=""  
161 - label="航站楼"> 138 + <el-table-column prop="btsc" label="航站楼">
162 </el-table-column> 139 </el-table-column>
163 </el-table> 140 </el-table>
164 </el-col> 141 </el-col>
165 </el-row> 142 </el-row>
166 </el-tab-pane> 143 </el-tab-pane>
167 - <el-tab-pane label="国内港" name="third"> 144 + <el-tab-pane label="国内港" name="third">
168 <div style=";margin-top: 15px"> 145 <div style=";margin-top: 15px">
169 - <el-time-picker  
170 - v-model="value1" 146 + <el-time-select
  147 + v-model="filters.flightDate"
  148 + :picker-options="{
  149 + start: '00:00',
  150 + step: '01:00',
  151 + end: '23:00'
  152 + }"
171 placeholder="任意时间点" 153 placeholder="任意时间点"
172 style="width: 140px"> 154 style="width: 140px">
173 - </el-time-picker> 155 + </el-time-select>
174 <el-time-picker 156 <el-time-picker
175 arrow-control 157 arrow-control
176 - v-model="value2" 158 + v-model="filters.flightDate"
177 placeholder="任意时间点" 159 placeholder="任意时间点"
178 style="width: 140px"> 160 style="width: 140px">
179 </el-time-picker> 161 </el-time-picker>
180 - <el-select v-model="value" placeholder="目的地" style="width: 140px"> 162 + <el-select v-model="filters.destination" placeholder="目的地" style="width: 140px">
181 <el-option 163 <el-option
182 v-for="item in options" 164 v-for="item in options"
183 :key="item.value" 165 :key="item.value"
@@ -185,7 +167,7 @@ @@ -185,7 +167,7 @@
185 :value="item.value"> 167 :value="item.value">
186 </el-option> 168 </el-option>
187 </el-select> 169 </el-select>
188 - <el-select v-model="value" placeholder="航空公司" style="width: 140px"> 170 + <el-select v-model="filters.carrier" placeholder="航空公司" style="width: 140px">
189 <el-option 171 <el-option
190 v-for="item in options" 172 v-for="item in options"
191 :key="item.value" 173 :key="item.value"
@@ -198,54 +180,43 @@ @@ -198,54 +180,43 @@
198 <el-row style="margin-top: 15px"> 180 <el-row style="margin-top: 15px">
199 <el-col :span="23"> 181 <el-col :span="23">
200 <el-table 182 <el-table
201 - :data="tableData" 183 + :data="listDate"
202 style="width: 100%"> 184 style="width: 100%">
203 - <el-table-column  
204 - prop=""  
205 - label="计划离港"> 185 + <el-table-column prop="fplt" label="计划离港">
206 </el-table-column> 186 </el-table-column>
207 - <el-table-column  
208 - prop=""  
209 - label="航班号"> 187 + <el-table-column label="航班号">
  188 + <template slot-scope="scope">
  189 + {{scope.row.carrier}}{{scope.row.flightno}}
  190 + </template>
210 </el-table-column> 191 </el-table-column>
211 - <el-table-column  
212 - prop=""  
213 - label="航空公司"> 192 + <el-table-column prop="carrier" label="航空公司">
214 </el-table-column> 193 </el-table-column>
215 - <el-table-column  
216 - prop=""  
217 - label="目的地"> 194 + <el-table-column prop="apcd" label="目的地">
218 </el-table-column> 195 </el-table-column>
219 - <el-table-column  
220 - prop=""  
221 - label="预计/实际离港"> 196 + <el-table-column prop="frlt" label="预计/实际离港">
222 </el-table-column> 197 </el-table-column>
223 - <el-table-column  
224 - prop=""  
225 - label="状态"> 198 + <el-table-column prop="" label="状态">
226 </el-table-column> 199 </el-table-column>
227 - <el-table-column  
228 - prop=""  
229 - label="航站楼"> 200 + <el-table-column prop="btsc" label="航站楼">
230 </el-table-column> 201 </el-table-column>
231 </el-table> 202 </el-table>
232 </el-col> 203 </el-col>
233 </el-row> 204 </el-row>
234 </el-tab-pane> 205 </el-tab-pane>
235 - <el-tab-pane label="国际/地区港" name="fourth"> 206 + <el-tab-pane label="国际/地区港" name="fourth">
236 <div style=";margin-top: 15px"> 207 <div style=";margin-top: 15px">
237 <el-time-picker 208 <el-time-picker
238 - v-model="value1" 209 + v-model="filters.flightDate"
239 placeholder="任意时间点" 210 placeholder="任意时间点"
240 style="width: 140px"> 211 style="width: 140px">
241 </el-time-picker> 212 </el-time-picker>
242 <el-time-picker 213 <el-time-picker
243 arrow-control 214 arrow-control
244 - v-model="value2" 215 + v-model="filters.flightDate"
245 placeholder="任意时间点" 216 placeholder="任意时间点"
246 style="width: 140px"> 217 style="width: 140px">
247 </el-time-picker> 218 </el-time-picker>
248 - <el-select v-model="value" placeholder="目的地" style="width: 140px"> 219 + <el-select v-model="filters.destination" placeholder="目的地" style="width: 140px">
249 <el-option 220 <el-option
250 v-for="item in options" 221 v-for="item in options"
251 :key="item.value" 222 :key="item.value"
@@ -253,7 +224,7 @@ @@ -253,7 +224,7 @@
253 :value="item.value"> 224 :value="item.value">
254 </el-option> 225 </el-option>
255 </el-select> 226 </el-select>
256 - <el-select v-model="value" placeholder="航空公司" style="width: 140px"> 227 + <el-select v-model="filters.carrier" placeholder="航空公司" style="width: 140px">
257 <el-option 228 <el-option
258 v-for="item in options" 229 v-for="item in options"
259 :key="item.value" 230 :key="item.value"
@@ -266,35 +237,24 @@ @@ -266,35 +237,24 @@
266 <el-row style="margin-top: 15px"> 237 <el-row style="margin-top: 15px">
267 <el-col :span="23"> 238 <el-col :span="23">
268 <el-table 239 <el-table
269 - :data="tableData" 240 + :data="listDate"
270 style="width: 100%"> 241 style="width: 100%">
271 - <el-table-column  
272 - prop=""  
273 - label="计划离港"> 242 + <el-table-column prop="fplt" label="计划离港">
274 </el-table-column> 243 </el-table-column>
275 - <el-table-column  
276 - prop=""  
277 - label="航班号"> 244 + <el-table-column label="航班号">
  245 + <template slot-scope="scope">
  246 + {{scope.row.carrier}}{{scope.row.flightno}}
  247 + </template>
278 </el-table-column> 248 </el-table-column>
279 - <el-table-column  
280 - prop=""  
281 - label="航空公司"> 249 + <el-table-column prop="carrier" label="航空公司">
282 </el-table-column> 250 </el-table-column>
283 - <el-table-column  
284 - prop=""  
285 - label="目的地"> 251 + <el-table-column prop="apcd" label="目的地">
286 </el-table-column> 252 </el-table-column>
287 - <el-table-column  
288 - prop=""  
289 - label="预计/实际离港"> 253 + <el-table-column prop="frlt" label="预计/实际离港">
290 </el-table-column> 254 </el-table-column>
291 - <el-table-column  
292 - prop=""  
293 - label="状态"> 255 + <el-table-column prop="" label="状态">
294 </el-table-column> 256 </el-table-column>
295 - <el-table-column  
296 - prop=""  
297 - label="航站楼"> 257 + <el-table-column prop="btsc" label="航站楼">
298 </el-table-column> 258 </el-table-column>
299 </el-table> 259 </el-table>
300 </el-col> 260 </el-col>
@@ -304,10 +264,9 @@ @@ -304,10 +264,9 @@
304 </el-row> 264 </el-row>
305 <el-row> 265 <el-row>
306 <div> 266 <div>
307 - <pagination background layout="total, prev, pager, next" v-show="total>0" :total="total" :page.sync="pageSize" :limit.sync="pageNum"  
308 - @pagination="getDomesticClearance"/> 267 + <el-pagination background layout="total, prev, pager, next" v-show="this.total>0" :total="total" :page.sync="this.pageSize" :limit.sync="this.pageSize"
  268 + @pagination="getDomesticClearance()"/>
309 </div> 269 </div>
310 -  
311 </el-row> 270 </el-row>
312 </el-col> 271 </el-col>
313 </el-row> 272 </el-row>
@@ -316,47 +275,100 @@ @@ -316,47 +275,100 @@
316 </template> 275 </template>
317 276
318 <script> 277 <script>
319 - import {getList} from '../../api/inquiry/inquiry' 278 + import {portList, exportList, nternationaiiImportList, nternationaiiExportList} from '../../api/inquiry/inquiry'
320 export default { 279 export default {
321 data() { 280 data() {
322 return { 281 return {
323 currentPage4: 4, 282 currentPage4: 4,
324 activeName: 'first', 283 activeName: 'first',
325 filters: { 284 filters: {
326 - flightNo: '' 285 + flightNo: '',
  286 + flightDate: '',
  287 + destination: '',
  288 + carrier: ''
327 }, 289 },
  290 + options:[],
  291 + listDate: [],
328 total: 1, 292 total: 1,
329 pageSize: 1, 293 pageSize: 1,
330 - pageNum: 30,  
331 - domesticClearanceList: [], 294 + limitSize: 30,
332 }; 295 };
333 }, 296 },
334 methods: { 297 methods: {
335 -  
336 //获取列表集合 298 //获取列表集合
337 - getDomesticClearance() { 299 + getDomesticClearance(tab, event) {
  300 + let label = tab.label;
  301 + this.listLoading = true;
  302 + if (label == '国内出港'){
  303 + exportList().then((res) =>{
  304 + this.total = res.data.total;
  305 + this.listDate = res.data.data.list;
  306 + this.listLoading = false;
  307 + }).catch((error) => {
  308 + this.listLoading = false;
  309 + if(null!= error.response && error.response!==undefined){
  310 + let status= error.response.status;
  311 + let msg = error.response.statusText;
  312 + alert(status+msg);
  313 + }else {
  314 + alert(error);
  315 + }
  316 +
  317 + });
  318 + }else if(label == '国际/地区出港'){
  319 + nternationaiiExportList().then((res) =>{
  320 + this.total = res.data.total;
  321 + this.listDate = res.data.data.list;
  322 + this.listLoading = false;
  323 + }).catch((error) => {
  324 + this.listLoading = false;
  325 + if(null!= error.response && error.response!==undefined){
  326 + let status= error.response.status;
  327 + let msg = error.response.statusText;
  328 + alert(status+msg);
  329 + }else {
  330 + alert(error);
  331 + }
338 332
339 - // this.listLoading = true;  
340 - // //NProgress.start();  
341 - // getList().then((res) => {  
342 - // this.total = res.data.total;  
343 - // this.domesticClearanceList = res.data.list;  
344 - // this.listLoading = false;  
345 - // //NProgress.done();  
346 - // }).catch((error) => {  
347 - //  
348 - // this.listLoading = false;  
349 - // if(null!= error.response && error.response!==undefined){  
350 - // let status= error.response.status;  
351 - // let msg = error.response.statusText;  
352 - // alert(status+msg);  
353 - // }else {  
354 - // alert(error);  
355 - // }  
356 - //  
357 - // }); 333 + });
  334 + }else if(label == '国内进港'){
  335 + portList().then((res) =>{
  336 + this.total = res.data.total;
  337 + this.listDate = res.data.data.list;
  338 + this.listLoading = false;
  339 + }).catch((error) => {
  340 + this.listLoading = false;
  341 + if(null!= error.response && error.response!==undefined){
  342 + let status= error.response.status;
  343 + let msg = error.response.statusText;
  344 + alert(status+msg);
  345 + }else {
  346 + alert(error);
  347 + }
  348 +
  349 + });
  350 + }else if(label == '国际/地区进港'){
  351 + nternationaiiImportList().then((res) =>{
  352 + this.total = res.data.total;
  353 + this.listDate = res.data.data.list;
  354 + this.listLoading = false;
  355 + }).catch((error) => {
  356 + this.listLoading = false;
  357 + if(null!= error.response && error.response!==undefined){
  358 + let status= error.response.status;
  359 + let msg = error.response.statusText;
  360 + alert(status+msg);
  361 + }else {
  362 + alert(error);
  363 + }
  364 +
  365 + });
  366 + }
358 } 367 }
359 }, 368 },
  369 + mounted() {
  370 +
  371 + }
360 372
361 } 373 }
362 </script> 374 </script>
  1 +<template>
  2 + <div>
  3 + <el-card style="background-color: #F5F7FA">
  4 + <!-- 搜素区域 -->
  5 + <div>
  6 + <el-row :gutter="10">
  7 + <el-col :span="4">
  8 + <el-input v-model="bayonet_queryInfo.stationName" prefix-icon="el-icon-search" size="small"
  9 + placeholder="场站名称" clearable></el-input>
  10 + </el-col>
  11 + <el-col :span="4">
  12 + <el-input v-model="bayonet_queryInfo.name" prefix-icon="el-icon-search" size="small"
  13 + placeholder="卡口名称" clearable></el-input>
  14 + </el-col>
  15 + <el-col :span="4">
  16 + <el-input v-model="bayonet_queryInfo.channel" prefix-icon="el-icon-search" size="small"
  17 + placeholder="通道编号" clearable></el-input>
  18 + </el-col>
  19 + <el-col :span="8">
  20 + <el-button type="success" style="width:120px" size="small" @click="bayonet_getList">
  21 + 查询
  22 + </el-button>
  23 + <el-button type="primary" style="width:120px" size="small" @click="bayonet_toAddDialog">
  24 + 卡口添加
  25 + </el-button>
  26 + </el-col>
  27 + </el-row>
  28 + </div>
  29 +
  30 + <!-- 列表区域 -->
  31 + <div style="margin-top: 20px;">
  32 + <el-table :data="bayonet_page.bayonetList" border size="mini"
  33 + v-loading="bayonet_loading.listLoading" element-loading-text="获取卡口列表,拼命加载中">
  34 + <el-table-column type="index" align="center"></el-table-column>
  35 + <el-table-column label="场站名称" prop="yard.name" align="center" width="120"></el-table-column>
  36 + <el-table-column label="卡口名称" prop="name" align="center" width="200"></el-table-column>
  37 + <el-table-column label="通道编号" prop="channel" align="center" width="200"></el-table-column>
  38 + <el-table-column label="卡口类型" prop="type" align="center" width="200">
  39 + <template slot-scope="scope">
  40 + <span v-if="scope.row.type ==='1'">进</span>
  41 + <span v-if="scope.row.type ==='2'">出</span>
  42 + <span v-if="scope.row.type ==='3'">进出共用</span>
  43 + </template>
  44 + </el-table-column>
  45 + <el-table-column label="备注信息" prop="remarks" align="center" width="200"></el-table-column>
  46 + <el-table-column label="操作" width="140px" align="center">
  47 + <template slot-scope="scope">
  48 + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
  49 + <el-button type="text" icon="el-icon-edit" size="mini"
  50 + @click="bayonet_toEditDialog(scope.$index,scope.row)">编辑
  51 + </el-button>
  52 + </el-tooltip>
  53 + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
  54 + <el-button type="text" icon="el-icon-delete" size="mini"
  55 + :loading="bayonet_loading.delLoading"
  56 + @click="bayonet_delete(scope.$index,scope.row)">删除
  57 + </el-button>
  58 + </el-tooltip>
  59 + </template>
  60 + </el-table-column>
  61 + </el-table>
  62 + </div>
  63 +
  64 + <!-- 分页区域 -->
  65 + <div style="margin-top: 10px">
  66 + <el-row :gutter="24">
  67 + <el-col :span="10" style="margin-top: 5px">
  68 + <el-pagination
  69 + @size-change="bayonet_handleSizeChange"
  70 + @current-change="bayonet_handleCurrentChange"
  71 + :current-page="bayonet_queryInfo.pageNum"
  72 + :page-sizes="[10,30,50,100]"
  73 + :page-size="bayonet_queryInfo.pageSize"
  74 + layout="total, sizes, prev, pager, next, jumper"
  75 + :total="bayonet_page.total">
  76 + </el-pagination>
  77 + </el-col>
  78 + </el-row>
  79 + </div>
  80 + </el-card>
  81 + <!-- 卡口添加 -->
  82 + <div>
  83 + <el-dialog title="卡口添加:"
  84 + :visible.sync="bayonet_dialog.addDialog"
  85 + style="margin-top: -80px" text-align="center" width="60%"
  86 + @close="bayonet_addDialogClosed">
  87 + <el-form :inline="true" label-width="150px" status-icon style="margin-top: -10px;" align="center"
  88 + :model="bayonet_addForm" :rules="bayonet_addFormRules" ref="bayonet_addFormRef">
  89 + <el-form-item label="场站名称:" prop="yardId">
  90 + <el-select v-model="bayonet_addForm.yardId" style="width: 300px" clearable size="small"
  91 + placeholder="请选择场站名称">
  92 + <el-option
  93 + v-for="item in stationNameList"
  94 + :key="item.name"
  95 + :label="item.name"
  96 + :value="item.id">
  97 + </el-option>
  98 + </el-select>
  99 + </el-form-item>
  100 + <el-form-item label="卡口名称:" prop="name">
  101 + <el-input v-model="bayonet_addForm.name" style="width:300px" size="mini" clearable
  102 + placeholder="请输入卡口名称">
  103 + </el-input>
  104 + </el-form-item>
  105 + <el-form-item label="通道编号:" prop="channel">
  106 + <el-input v-model="bayonet_addForm.channel" style="width:300px" size="mini" clearable
  107 + placeholder="请输入通道编号">
  108 + </el-input>
  109 + </el-form-item>
  110 +
  111 + <el-form-item label="卡口类型:" prop="type">
  112 + <el-select v-model="bayonet_addForm.type" style="width: 300px" clearable size="small"
  113 + placeholder="请选择卡口类型">
  114 + <el-option
  115 + v-for="item in bayonetTypeList"
  116 + :key="item.label"
  117 + :label="item.label"
  118 + :value="item.value">
  119 + </el-option>
  120 + </el-select>
  121 + </el-form-item>
  122 +
  123 +
  124 + <el-form-item label="备注信息:" prop="remarks">
  125 + <el-input v-model="bayonet_addForm.remarks" style="width:300px" clearable size="mini"
  126 + type="textarea" :rows="5">
  127 + </el-input>
  128 + </el-form-item>
  129 + </el-form>
  130 + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -30px">
  131 + <el-button type="info" @click="bayonet_dialog.addDialog = false" size="medium"
  132 + style="width: 100px">取消
  133 + </el-button>
  134 + <el-button type="primary" @click="bayonet_add" :loading="bayonet_loading.addLoading"
  135 + size="medium" style="width: 100px">保存
  136 + </el-button>
  137 + </div>
  138 + </el-dialog>
  139 + </div>
  140 + <!-- 卡口修改 -->
  141 + <div>
  142 + <el-dialog title="卡口修改:"
  143 + :visible.sync="bayonet_dialog.editDialog"
  144 + style="margin-top: -80px" text-align="center" width="60%"
  145 + @close="bayonet_editDialogClosed">
  146 + <el-form :inline="true" label-width="150px" status-icon style="margin-top: -10px;" align="center"
  147 + :model="bayonet_editForm" :rules="bayonet_editFormRules" ref="bayonet_editFormRef">
  148 + <el-form-item label="场站名称:" prop="yardId">
  149 + <el-select v-model="bayonet_editForm.yardId" style="width: 300px" clearable size="small"
  150 + placeholder="请选择场站名称">
  151 + <el-option
  152 + v-for="item in stationNameList"
  153 + :key="item.name"
  154 + :label="item.name"
  155 + :value="item.id">
  156 + </el-option>
  157 + </el-select>
  158 + </el-form-item>
  159 + <el-form-item label="卡口名称:" prop="name">
  160 + <el-input v-model="bayonet_editForm.name" style="width:300px" size="mini" clearable
  161 + placeholder="请输入卡口名称">
  162 + </el-input>
  163 + </el-form-item>
  164 + <el-form-item label="通道编号:" prop="channel">
  165 + <el-input v-model="bayonet_editForm.channel" style="width:300px" size="mini" clearable
  166 + placeholder="请输入通道编号">
  167 + </el-input>
  168 + </el-form-item>
  169 + <el-form-item label="卡口类型:" prop="type">
  170 + <el-select v-model="bayonet_editForm.type" style="width: 300px" clearable size="small"
  171 + placeholder="请选择卡口类型">
  172 + <el-option
  173 + v-for="item in bayonetTypeList"
  174 + :key="item.label"
  175 + :label="item.label"
  176 + :value="item.value">
  177 + </el-option>
  178 + </el-select>
  179 + </el-form-item>
  180 +
  181 + <el-form-item label="备注信息:" prop="remarks">
  182 + <el-input v-model="bayonet_editForm.remarks" style="width:300px" clearable size="mini"
  183 + type="textarea" :rows="5">
  184 + </el-input>
  185 + </el-form-item>
  186 + </el-form>
  187 + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -30px">
  188 + <el-button type="info" @click="bayonet_dialog.editDialog = false" size="medium"
  189 + style="width: 100px">取消
  190 + </el-button>
  191 + <el-button type="primary" @click="bayonet_edit" :loading="bayonet_loading.editLoading"
  192 + size="medium" style="width: 100px">保存
  193 + </el-button>
  194 + </div>
  195 + </el-dialog>
  196 + </div>
  197 + </div>
  198 +</template>
  199 +
  200 +<script>
  201 + import {selectBayonetList, getYardList, insertBayonet, updateBayonet, deleteBayonet} from "../../api/station_dispatch";
  202 +
  203 + export default {
  204 + name: "Bayonet",
  205 + data() {
  206 + return {
  207 + /**
  208 + * 搜索参数
  209 + */
  210 + bayonet_queryInfo: {
  211 + // 场站名称
  212 + stationName: '',
  213 + // 卡口名称
  214 + name: '',
  215 + // 通道编号
  216 + channel: '',
  217 + // 当前页数
  218 + pageNum: 1,
  219 + // 每页大小
  220 + pageSize: 10,
  221 + },
  222 +
  223 + /**
  224 + * 分页
  225 + */
  226 + bayonet_page: {
  227 + bayonetList: [],
  228 + total: 0,
  229 + selectList: [],
  230 + },
  231 +
  232 + /**
  233 + * 场站列表
  234 + */
  235 + stationNameList: [],
  236 +
  237 + /**
  238 + * 卡口类型列表
  239 + */
  240 + bayonetTypeList: [
  241 + {
  242 + value: '1',
  243 + label: '进'
  244 + },
  245 + {
  246 + value: '2',
  247 + label: '出'
  248 + },
  249 + {
  250 + value: '3',
  251 + label: '进出共用'
  252 + },
  253 + ],
  254 + /**
  255 + * 加载
  256 + */
  257 + bayonet_loading: {
  258 + listLoading: false,
  259 + addLoading: false,
  260 + editLoading: false,
  261 + delLoading: false,
  262 + batchDelLoading: false,
  263 + },
  264 +
  265 + /**
  266 + * 对话框
  267 + */
  268 + bayonet_dialog: {
  269 + addDialog: false,
  270 + editDialog: false,
  271 + },
  272 +
  273 + /**
  274 + * 备案添加,表单
  275 + */
  276 + bayonet_addForm: {
  277 + // 场站名称
  278 + stationName: '',
  279 + // 卡口名称
  280 + name: '',
  281 + // 通道编号
  282 + channel: '',
  283 + // 备注信息
  284 + remarks: '',
  285 + },
  286 +
  287 + /**
  288 + * 备案添加,表单验证规则
  289 + */
  290 + bayonet_addFormRules: {
  291 + // 场站名称
  292 + stationName: [
  293 + {required: true, message: '请输入场站名称', trigger: ['blur', 'change']},
  294 + ],
  295 + // 卡口名称
  296 + name: [
  297 + {required: true, message: '请输入卡口名称', trigger: ['blur', 'change']},
  298 + ],
  299 + // 通道编号
  300 + channel: [
  301 + {required: true, message: '请输入通道编号', trigger: ['blur', 'change']},
  302 + ],
  303 + type: [
  304 + {required: true, message: '请选择卡口类型', trigger: ['blur', 'change']},
  305 + ],
  306 + },
  307 +
  308 + /**
  309 + * 备案修改,表单
  310 + */
  311 + bayonet_editForm: {},
  312 +
  313 + /**
  314 + * 备案修改,表单验证规则
  315 + */
  316 + bayonet_editFormRules: {
  317 + // 场站名称
  318 + stationName: [
  319 + {required: true, message: '请输入场站名称', trigger: ['blur', 'change']},
  320 + ],
  321 + // 卡口名称
  322 + name: [
  323 + {required: true, message: '请输入卡口名称', trigger: ['blur', 'change']},
  324 + ],
  325 + // 通道编号
  326 + channel: [
  327 + {required: true, message: '请输入通道编号', trigger: ['blur', 'change']},
  328 + ],
  329 + type: [
  330 + {required: true, message: '请选择卡口类型', trigger: ['blur', 'change']},
  331 + ],
  332 + },
  333 + }
  334 + },
  335 + methods: {
  336 + /**
  337 + * 分页查询,监听 pageSize 改变的事件
  338 + * 刷新列表
  339 + */
  340 + bayonet_handleSizeChange(newSize) {
  341 + this.bayonet_queryInfo.pageSize = newSize;
  342 + this.bayonet_getList();
  343 + },
  344 + /**
  345 + * 分页查询,监听 pageNum 改变的事件
  346 + * 刷新列表
  347 + */
  348 + bayonet_handleCurrentChange(newPage) {
  349 + this.bayonet_queryInfo.pageNum = newPage;
  350 + this.bayonet_getList();
  351 + },
  352 +
  353 + /**
  354 + * 列表查询
  355 + */
  356 + bayonet_getList() {
  357 + this.bayonet_loading.listLoading = true;
  358 + selectBayonetList(this.bayonet_queryInfo).then((response) => {
  359 + let res = response.data;
  360 + if (res.code !== '200') {
  361 + this.bayonet_loading.listLoading = false;
  362 + return this.$message.error(res.msg);
  363 + }
  364 + this.bayonet_page.bayonetList = res.data.list;
  365 + this.bayonet_page.total = res.data.total;
  366 + this.bayonet_loading.listLoading = false;
  367 + }).catch(error => {
  368 + this.bayonet_loading.listLoading = false;
  369 + this.$message.error(error.toString());
  370 + });
  371 + },
  372 +
  373 + /**
  374 + * 对话框,备案添加,打开事件
  375 + */
  376 + bayonet_toAddDialog() {
  377 + this.getYards();
  378 + this.bayonet_dialog.addDialog = true;
  379 + },
  380 +
  381 + /**
  382 + * 对话框,备案添加,关闭事件
  383 + */
  384 + bayonet_addDialogClosed() {
  385 + this.$refs.bayonet_addFormRef.resetFields();
  386 + },
  387 +
  388 + /**
  389 + * 备案添加
  390 + */
  391 + bayonet_add() {
  392 + this.$refs.bayonet_addFormRef.validate(valid => {
  393 + // 未通过,表单预校验
  394 + if (!valid) return;
  395 +
  396 + this.bayonet_loading.addLoading = true;
  397 + insertBayonet(this.bayonet_addForm).then((response) => {
  398 + let res = response.data;
  399 + if (res.code !== '200') {
  400 + this.bayonet_loading.addLoading = false;
  401 + return this.$message.error(res.msg);
  402 + }
  403 + this.$message.success(res.msg);
  404 + this.bayonet_loading.addLoading = false;
  405 + this.bayonet_dialog.addDialog = false;
  406 + this.bayonet_getList();
  407 + }).catch(error => {
  408 + this.bayonet_loading.addLoading = false;
  409 + this.$message.error(error.toString());
  410 + });
  411 + })
  412 + },
  413 +
  414 + /**
  415 + * 备案修改,对话框,打开事件
  416 + */
  417 + bayonet_toEditDialog(index, row) {
  418 + this.getYards();
  419 + this.bayonet_editForm = Object.assign({}, row);
  420 + this.bayonet_dialog.editDialog = true;
  421 + },
  422 +
  423 + /**
  424 + * 备案修改,对话框,关闭事件
  425 + */
  426 + bayonet_editDialogClosed() {
  427 + this.$refs.bayonet_editFormRef.resetFields();
  428 + },
  429 + /**
  430 + * 备案修改
  431 + */
  432 + bayonet_edit() {
  433 + this.$refs.bayonet_editFormRef.validate(valid => {
  434 + // 未通过,表单预校验
  435 + if (!valid) return;
  436 +
  437 + this.bayonet_loading.editLoading = true;
  438 + updateBayonet(this.bayonet_editForm).then((response) => {
  439 + let res = response.data;
  440 + if (res.code !== '200') {
  441 + this.bayonet_loading.editLoading = false;
  442 + return this.$message.error(res.msg);
  443 + }
  444 + this.$message.success(res.msg);
  445 + this.bayonet_loading.editLoading = false;
  446 + this.bayonet_dialog.editDialog = false;
  447 + this.bayonet_getList();
  448 + }).catch(error => {
  449 + this.bayonet_loading.editLoading = false;
  450 + this.$message.error(error.toString());
  451 + });
  452 + })
  453 + },
  454 +
  455 + /**
  456 + * 删除功能
  457 + */
  458 + bayonet_delete(index, row) {
  459 + this.$confirm('此操作永久删除该卡口信息, 是否继续?', '警告', {
  460 + confirmButtonText: '确定删除',
  461 + cancelButtonText: '取消',
  462 + type: 'warning'
  463 + }
  464 + ).then(() => {
  465 + this.bayonet_loading.delLoading = true;
  466 + deleteBayonet(row).then((response) => {
  467 + let res = response.data;
  468 + if (res.code !== '200') {
  469 + this.bayonet_loading.delLoading = false;
  470 + return this.$message.error(res.msg);
  471 + }
  472 + this.bayonet_loading.delLoading = false;
  473 + this.$message.success(res.msg);
  474 + this.bayonet_getList();
  475 + }).catch(error => {
  476 + this.bayonet_loading.delLoading = false;
  477 + this.$message.error(error.toString());
  478 + });
  479 + }).catch(() => {
  480 + });
  481 + },
  482 +
  483 + /**
  484 + * 获取所有场站列表
  485 + */
  486 + getYards() {
  487 + getYardList().then((response) => {
  488 + let res = response.data;
  489 + if (res.code !== '200') {
  490 + return this.$message.error(res.msg);
  491 + }
  492 + this.stationNameList = res.data;
  493 + }).catch(error => {
  494 + this.$message.error(error.toString());
  495 + });
  496 + }
  497 + },
  498 + }
  499 +</script>
  500 +
  501 +<style scoped>
  502 +
  503 +</style>
  1 +<template>
  2 + <div>
  3 + <el-card style="background-color: #F5F7FA">
  4 + <!-- 搜素区域 -->
  5 + <div>
  6 + <el-row :gutter="10">
  7 + <el-col :span="4">
  8 + <el-input v-model="warehouse_queryInfo.stationName" prefix-icon="el-icon-search" size="small"
  9 + placeholder="场站名称" clearable></el-input>
  10 + </el-col>
  11 + <el-col :span="4">
  12 + <el-input v-model="warehouse_queryInfo.name" prefix-icon="el-icon-search" size="small"
  13 + placeholder="仓库名称" clearable></el-input>
  14 + </el-col>
  15 +
  16 + <el-col :span="8">
  17 + <el-button type="success" style="width:120px" size="small" @click="warehouse_getList">
  18 + 查询
  19 + </el-button>
  20 + <el-button type="primary" style="width:120px" size="small" @click="warehouse_toAddDialog">
  21 + 仓库添加
  22 + </el-button>
  23 + </el-col>
  24 + </el-row>
  25 + </div>
  26 +
  27 + <!-- 列表区域 -->
  28 + <div style="margin-top: 20px;">
  29 + <el-table :data="warehouse_page.warehouseList" border size="mini"
  30 + v-loading="warehouse_loading.listLoading" element-loading-text="获取仓库列表,拼命加载中">
  31 + <el-table-column type="index" align="center"></el-table-column>
  32 + <el-table-column label="场站名称" prop="yard.name" align="center" width="120"></el-table-column>
  33 + <el-table-column label="仓库名称" prop="name" align="center" width="130"></el-table-column>
  34 + <el-table-column label="仓库类型" prop="warehouseType" align="center" width="120">
  35 + <template slot-scope="scope">
  36 + <span v-if="scope.row.warehouseType ==='001'">进港仓库</span>
  37 + <span v-if="scope.row.warehouseType ==='002'">出港仓库</span>
  38 + <span v-if="scope.row.warehouseType ==='003'">查验仓库</span>
  39 + <span v-if="scope.row.warehouseType ==='004'">危险品仓库</span>
  40 + </template>
  41 + </el-table-column>
  42 + <el-table-column label="仓库长度(米)" prop="warehouseLength" align="center" width="120"></el-table-column>
  43 + <el-table-column label="仓库宽度(米)" prop="warehouseWidth" align="center" width="120"></el-table-column>
  44 + <el-table-column label="仓库高度(米)" prop="warehouseHeight" align="center" width="120"></el-table-column>
  45 + <el-table-column label="仓库面积(平方米)" prop="warehouseArea" align="center" width="140"></el-table-column>
  46 + <el-table-column label="仓库体积(立方米)" prop="warehouseVolume" align="center" width="140"></el-table-column>
  47 + <el-table-column label="备注信息" prop="remarks" align="center" width="200"></el-table-column>
  48 + <el-table-column label="操作" width="160px" align="center" fixed="right">
  49 + <template slot-scope="scope">
  50 + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
  51 + <el-button type="text" icon="el-icon-edit" size="mini"
  52 + @click="warehouse_toEditDialog(scope.$index,scope.row)">编辑
  53 + </el-button>
  54 + </el-tooltip>
  55 + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
  56 + <el-button type="text" icon="el-icon-delete" size="mini"
  57 + :loading="warehouse_loading.delLoading"
  58 + @click="warehouse_delete(scope.$index,scope.row)">删除
  59 + </el-button>
  60 + </el-tooltip>
  61 + </template>
  62 + </el-table-column>
  63 + </el-table>
  64 + </div>
  65 +
  66 + <!-- 分页区域 -->
  67 + <div style="margin-top: 10px">
  68 + <el-row :gutter="24">
  69 + <el-col :span="10" style="margin-top: 5px">
  70 + <el-pagination
  71 + @size-change="warehouse_handleSizeChange"
  72 + @current-change="warehouse_handleCurrentChange"
  73 + :current-page="warehouse_queryInfo.pageNum"
  74 + :page-sizes="[10,30,50,100]"
  75 + :page-size="warehouse_queryInfo.pageSize"
  76 + layout="total, sizes, prev, pager, next, jumper"
  77 + :total="warehouse_page.total">
  78 + </el-pagination>
  79 + </el-col>
  80 + </el-row>
  81 + </div>
  82 + </el-card>
  83 + <!-- 仓库添加 -->
  84 + <div>
  85 + <el-dialog title="仓库添加:"
  86 + :visible.sync="warehouse_dialog.addDialog"
  87 + style="margin-top: -100px" text-align="center" width="60%"
  88 + @close="warehouse_addDialogClosed">
  89 + <el-form :inline="true" label-width="165px" status-icon style="margin-top: -20px;" align="center"
  90 + :model="warehouse_addForm" :rules="warehouse_addFormRules" ref="warehouse_addFormRef">
  91 + <el-form-item label="场站名称:" prop="yardId">
  92 + <el-select v-model="warehouse_addForm.yardId" style="width: 300px" clearable size="mini"
  93 + placeholder="请选择场站名称">
  94 + <el-option
  95 + v-for="item in stationNameList"
  96 + :key="item.name"
  97 + :label="item.name"
  98 + :value="item.id">
  99 + </el-option>
  100 + </el-select>
  101 + </el-form-item>
  102 + <el-form-item label="仓库名称:" prop="name">
  103 + <el-input v-model="warehouse_addForm.name" style="width:300px" size="mini" clearable
  104 + placeholder="请输入仓库名称">
  105 + </el-input>
  106 + </el-form-item>
  107 + <el-form-item label="仓库类型:" prop="warehouseType">
  108 + <el-select v-model="warehouse_addForm.warehouseType" style="width: 300px" clearable size="mini"
  109 + placeholder="请选择仓库类型">
  110 + <el-option
  111 + v-for="item in warehouseTypeList"
  112 + :key="item.label"
  113 + :label="item.label"
  114 + :value="item.value">
  115 + </el-option>
  116 + </el-select>
  117 + </el-form-item>
  118 +
  119 + <el-form-item label="仓库长度(米):" prop="warehouseLength">
  120 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  121 + @blur="calculationAreaAndVolume"
  122 + v-model="warehouse_addForm.warehouseLength" placeholder="请输入仓库长度">
  123 + </el-input-number>
  124 + </el-form-item>
  125 + <el-form-item label="仓库宽度(米):" prop="warehouseWidth">
  126 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  127 + @blur="calculationAreaAndVolume"
  128 + v-model="warehouse_addForm.warehouseWidth" placeholder="请输入仓库宽度">
  129 + </el-input-number>
  130 + </el-form-item>
  131 + <el-form-item label="仓库高度(米):" prop="warehouseHeight">
  132 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  133 + @blur="calculationAreaAndVolume"
  134 + v-model="warehouse_addForm.warehouseHeight" placeholder="请输入仓库宽度">
  135 + </el-input-number>
  136 + </el-form-item>
  137 + <el-form-item label="仓库面积(平方米):" prop="warehouseArea">
  138 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  139 + :disabled="warehouse_addForm.warehouseLength === undefined || warehouse_addForm.warehouseWidth === undefined"
  140 + v-model="warehouse_addForm.warehouseArea" placeholder="请输入仓库面积">
  141 + </el-input-number>
  142 + </el-form-item>
  143 + <el-form-item label="仓库体积(立方米):" prop="warehouseVolume">
  144 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  145 + :disabled="warehouse_addForm.warehouseLength === undefined || warehouse_addForm.warehouseWidth === undefined
  146 + || warehouse_addForm.warehouseHeight === undefined"
  147 + v-model="warehouse_addForm.warehouseVolume" placeholder="请输入仓库体积">
  148 + </el-input-number>
  149 + </el-form-item>
  150 +
  151 + <el-form-item label="备注信息:" prop="remarks">
  152 + <el-input v-model="warehouse_addForm.remarks" style="width:300px" clearable size="mini"
  153 + type="textarea" :rows="2">
  154 + </el-input>
  155 + </el-form-item>
  156 + </el-form>
  157 + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -30px">
  158 + <el-button type="info" @click="warehouse_dialog.addDialog = false" size="medium"
  159 + style="width: 100px">取消
  160 + </el-button>
  161 + <el-button type="primary" @click="warehouse_add" :loading="warehouse_loading.addLoading"
  162 + size="medium" style="width: 100px">保存
  163 + </el-button>
  164 + </div>
  165 + </el-dialog>
  166 + </div>
  167 +
  168 + <!-- 仓库修改 -->
  169 + <div>
  170 + <el-dialog title="仓库修改:"
  171 + :visible.sync="warehouse_dialog.editDialog"
  172 + style="margin-top: -100px" text-align="center" width="60%"
  173 + @close="warehouse_editDialogClosed">
  174 + <el-form :inline="true" label-width="165px" status-icon style="margin-top: -20px;" align="center"
  175 + :model="warehouse_editForm" :rules="warehouse_editFormRules" ref="warehouse_editFormRef">
  176 + <el-form-item label="场站名称:" prop="yardId">
  177 + <el-select v-model="warehouse_editForm.yardId" style="width: 300px" clearable size="small"
  178 + placeholder="请选择场站名称">
  179 + <el-option
  180 + v-for="item in stationNameList"
  181 + :key="item.name"
  182 + :label="item.name"
  183 + :value="item.id">
  184 + </el-option>
  185 + </el-select>
  186 + </el-form-item>
  187 + <el-form-item label="仓库名称:" prop="name">
  188 + <el-input v-model="warehouse_editForm.name" style="width:300px" size="mini" clearable
  189 + placeholder="请输入仓库名称">
  190 + </el-input>
  191 + </el-form-item>
  192 + <el-form-item label="仓库类型:" prop="warehouseType">
  193 + <el-select v-model="warehouse_editForm.warehouseType" style="width: 300px" clearable size="small"
  194 + placeholder="请选择仓库类型">
  195 + <el-option
  196 + v-for="item in warehouseTypeList"
  197 + :key="item.label"
  198 + :label="item.label"
  199 + :value="item.value">
  200 + </el-option>
  201 + </el-select>
  202 + </el-form-item>
  203 + <el-form-item label="仓库长度(米):" prop="warehouseLength">
  204 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  205 + @blur="edit_calculationAreaAndVolume"
  206 + v-model="warehouse_editForm.warehouseLength" placeholder="请输入仓库长度">
  207 + </el-input-number>
  208 + </el-form-item>
  209 + <el-form-item label="仓库宽度(米):" prop="warehouseWidth">
  210 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  211 + @blur="edit_calculationAreaAndVolume"
  212 + v-model="warehouse_editForm.warehouseWidth" placeholder="请输入仓库宽度">
  213 + </el-input-number>
  214 + </el-form-item>
  215 +
  216 + <el-form-item label="仓库高度(米):" prop="warehouseHeight">
  217 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  218 + @blur="edit_calculationAreaAndVolume"
  219 + v-model="warehouse_editForm.warehouseHeight" placeholder="请输入仓库宽度">
  220 + </el-input-number>
  221 + </el-form-item>
  222 + <el-form-item label="仓库面积(平方米):" prop="warehouseArea">
  223 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  224 + v-model="warehouse_editForm.warehouseArea" placeholder="请输入面积">
  225 + </el-input-number>
  226 + </el-form-item>
  227 + <el-form-item label="仓库体积(立方米):" prop="warehouseVolume">
  228 + <el-input-number :precision="2" :step="0.1" style="width:300px" clearable
  229 + v-model="warehouse_editForm.warehouseVolume" placeholder="请输入体积">
  230 + </el-input-number>
  231 + </el-form-item>
  232 +
  233 + <el-form-item label="备注信息:" prop="remarks">
  234 + <el-input v-model="warehouse_editForm.remarks" style="width:300px" clearable size="mini"
  235 + type="textarea" :rows="2">
  236 + </el-input>
  237 + </el-form-item>
  238 + </el-form>
  239 + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -30px">
  240 + <el-button type="info" @click="warehouse_dialog.editDialog = false" size="medium"
  241 + style="width: 100px">取消
  242 + </el-button>
  243 + <el-button type="primary" @click="warehouse_edit" :loading="warehouse_loading.editLoading"
  244 + size="medium" style="width: 100px">保存
  245 + </el-button>
  246 + </div>
  247 + </el-dialog>
  248 + </div>
  249 + </div>
  250 +</template>
  251 +
  252 +<script>
  253 + import {selectWarehouseList, insertWarehouse, updateWarehouse, deleteWarehouse, getYardList} from "../../api/station_dispatch";
  254 +
  255 + export default {
  256 + name: "Warehouse",
  257 + data() {
  258 + return {
  259 + /**
  260 + * 搜索参数
  261 + */
  262 + warehouse_queryInfo: {
  263 + // 当前页数
  264 + pageNum: 1,
  265 + // 每页大小
  266 + pageSize: 10,
  267 + },
  268 +
  269 + /**
  270 + * 分页
  271 + */
  272 + warehouse_page: {
  273 + yardList: [],
  274 + total: 0,
  275 + selectList: [],
  276 + },
  277 +
  278 + /**
  279 + * 加载
  280 + */
  281 + warehouse_loading: {
  282 + listLoading: false,
  283 + addLoading: false,
  284 + editLoading: false,
  285 + delLoading: false,
  286 + batchDelLoading: false,
  287 + },
  288 +
  289 + /**
  290 + * 对话框
  291 + */
  292 + warehouse_dialog: {
  293 + addDialog: false,
  294 + editDialog: false,
  295 + },
  296 +
  297 + /**
  298 + * 备案添加,表单
  299 + */
  300 + warehouse_addForm: {
  301 + // 对应场站的ID
  302 + yardId: '',
  303 + // 仓库名称
  304 + name: '',
  305 + // 仓库类型
  306 + warehouseType: '',
  307 + // 仓库长度
  308 + warehouseLength: undefined,
  309 + // 仓库宽度
  310 + warehouseWidth: undefined,
  311 + // 仓库高度
  312 + warehouseHeight: undefined,
  313 + // 仓库面积
  314 + warehouseArea: undefined,
  315 + // 仓库体积
  316 + warehouseVolume: undefined,
  317 + // 备注
  318 + remarks: '',
  319 + },
  320 +
  321 + /**
  322 + * 仓库类型
  323 + */
  324 + warehouseTypeList: [
  325 + {
  326 + value: '001',
  327 + label: '进港仓库'
  328 + },
  329 + {
  330 + value: '002',
  331 + label: '出港仓库'
  332 + },
  333 + {
  334 + value: '003',
  335 + label: '查验仓库'
  336 + },
  337 + {
  338 + value: '004',
  339 + label: '危险品仓库'
  340 + },
  341 + ],
  342 + /**
  343 + * 场站名称
  344 + */
  345 + stationNameList: [],
  346 +
  347 + /**
  348 + * 备案添加,表单验证规则
  349 + */
  350 + warehouse_addFormRules: {
  351 + yardId: [
  352 + {required: true, message: '请选择场站', trigger: ['blur', 'change']},
  353 + ],
  354 + // 仓库名称
  355 + name: [
  356 + {required: true, message: '请输入仓库名称', trigger: ['blur', 'change']},
  357 + ],
  358 + // 仓库类型
  359 + warehouseType: [
  360 + {required: true, message: '请选择仓库类型', trigger: ['blur', 'change']},
  361 + ],
  362 + // 仓库长度
  363 + warehouseLength: [
  364 + {required: true, message: '请输入仓库长度', trigger: ['blur', 'change']},
  365 + ],
  366 + // 仓库宽度
  367 + warehouseWidth: [
  368 + {required: true, message: '请输入仓库宽度', trigger: ['blur', 'change']},
  369 + ],
  370 + warehouseArea: [
  371 + {required: true, message: '请输入仓库面积', trigger: ['blur', 'change']},
  372 + ],
  373 + },
  374 +
  375 + /**
  376 + * 备案修改,表单
  377 + */
  378 + warehouse_editForm: {},
  379 +
  380 + /**
  381 + * 备案修改,表单验证规则
  382 + */
  383 + warehouse_editFormRules: {
  384 + yardId: [
  385 + {required: true, message: '请选择场站', trigger: ['blur', 'change']},
  386 + ],
  387 + // 仓库名称
  388 + name: [
  389 + {required: true, message: '请输入仓库名称', trigger: ['blur', 'change']},
  390 + ],
  391 + // 仓库类型
  392 + warehouseType: [
  393 + {required: true, message: '请选择仓库类型', trigger: ['blur', 'change']},
  394 + ],
  395 + // 仓库长度
  396 + warehouseLength: [
  397 + {required: true, message: '请输入仓库长度', trigger: ['blur', 'change']},
  398 + ],
  399 + // 仓库宽度
  400 + warehouseWidth: [
  401 + {required: true, message: '请输入仓库宽度', trigger: ['blur', 'change']},
  402 + ],
  403 + warehouseArea: [
  404 + {required: true, message: '请输入仓库面积', trigger: ['blur', 'change']},
  405 + ],
  406 + },
  407 + }
  408 + },
  409 + methods: {
  410 + /**
  411 + * 分页查询,监听 pageSize 改变的事件
  412 + * 刷新列表
  413 + */
  414 + warehouse_handleSizeChange(newSize) {
  415 + this.warehouse_queryInfo.pageSize = newSize;
  416 + this.warehouse_getList();
  417 + },
  418 + /**
  419 + * 分页查询,监听 pageNum 改变的事件
  420 + * 刷新列表
  421 + */
  422 + warehouse_handleCurrentChange(newPage) {
  423 + this.warehouse_queryInfo.pageNum = newPage;
  424 + this.warehouse_getList();
  425 + },
  426 +
  427 + /**
  428 + * 列表查询
  429 + */
  430 + warehouse_getList() {
  431 + this.warehouse_loading.listLoading = true;
  432 + selectWarehouseList(this.warehouse_queryInfo).then((response) => {
  433 + let res = response.data;
  434 + if (res.code !== '200') {
  435 + this.warehouse_loading.listLoading = false;
  436 + return this.$message.error(res.msg);
  437 + }
  438 + this.warehouse_page.warehouseList = res.data.list;
  439 + this.warehouse_page.total = res.data.total;
  440 + this.warehouse_loading.listLoading = false;
  441 + }).catch(error => {
  442 + this.warehouse_loading.listLoading = false;
  443 + this.$message.error(error.toString());
  444 + });
  445 + },
  446 +
  447 + /**
  448 + * 对话框,备案添加,打开事件
  449 + */
  450 + warehouse_toAddDialog() {
  451 + this.getYards();
  452 + this.warehouse_dialog.addDialog = true;
  453 + },
  454 +
  455 + /**
  456 + * 对话框,备案添加,关闭事件
  457 + */
  458 + warehouse_addDialogClosed() {
  459 + this.$refs.warehouse_addFormRef.resetFields();
  460 + },
  461 +
  462 + /**
  463 + * 添加表单,失去焦点时,计算面积和体积
  464 + */
  465 + calculationAreaAndVolume() {
  466 + this.warehouse_addForm.warehouseArea = this.warehouse_addForm.warehouseLength * this.warehouse_addForm.warehouseWidth;
  467 + this.warehouse_addForm.warehouseVolume =
  468 + this.warehouse_addForm.warehouseLength * this.warehouse_addForm.warehouseWidth * this.warehouse_addForm.warehouseHeight;
  469 + },
  470 + /**
  471 + * 备案添加
  472 + */
  473 + warehouse_add() {
  474 + this.$refs.warehouse_addFormRef.validate(valid => {
  475 + // 未通过,表单预校验
  476 + if (!valid) return;
  477 +
  478 + this.warehouse_loading.addLoading = true;
  479 + insertWarehouse(this.warehouse_addForm).then((response) => {
  480 + let res = response.data;
  481 + if (res.code !== '200') {
  482 + this.warehouse_loading.addLoading = false;
  483 + return this.$message.error(res.msg);
  484 + }
  485 + this.$message.success(res.msg);
  486 + this.warehouse_loading.addLoading = false;
  487 + this.warehouse_dialog.addDialog = false;
  488 + this.warehouse_getList();
  489 + }).catch(error => {
  490 + this.warehouse_loading.addLoading = false;
  491 + this.$message.error(error.toString());
  492 + });
  493 + })
  494 + },
  495 +
  496 + /**
  497 + * 备案修改,对话框,打开事件
  498 + */
  499 + warehouse_toEditDialog(index, row) {
  500 + this.getYards();
  501 + this.warehouse_editForm = Object.assign({}, row);
  502 + this.warehouse_dialog.editDialog = true;
  503 + },
  504 +
  505 + /**
  506 + * 备案修改,对话框,关闭事件
  507 + */
  508 + warehouse_editDialogClosed() {
  509 + this.$refs.warehouse_editFormRef.resetFields();
  510 + },
  511 + /**
  512 + * 添加表单,失去焦点时,计算面积和体积
  513 + */
  514 + edit_calculationAreaAndVolume() {
  515 + this.warehouse_editForm.warehouseArea = this.warehouse_editForm.warehouseLength * this.warehouse_editForm.warehouseWidth;
  516 + this.warehouse_editForm.warehouseVolume =
  517 + this.warehouse_editForm.warehouseLength * this.warehouse_editForm.warehouseWidth * this.warehouse_editForm.warehouseHeight;
  518 + },
  519 + /**
  520 + * 备案修改
  521 + */
  522 + warehouse_edit() {
  523 + this.$refs.warehouse_editFormRef.validate(valid => {
  524 + // 未通过,表单预校验
  525 + if (!valid) return;
  526 +
  527 + this.warehouse_loading.editLoading = true;
  528 + updateWarehouse(this.warehouse_editForm).then((response) => {
  529 + let res = response.data;
  530 + if (res.code !== '200') {
  531 + this.warehouse_loading.editLoading = false;
  532 + return this.$message.error(res.msg);
  533 + }
  534 + this.$message.success(res.msg);
  535 + this.warehouse_loading.editLoading = false;
  536 + this.warehouse_dialog.editDialog = false;
  537 + this.warehouse_getList();
  538 + }).catch(error => {
  539 + this.warehouse_loading.editLoading = false;
  540 + this.$message.error(error.toString());
  541 + });
  542 + })
  543 + },
  544 +
  545 + /**
  546 + * 删除功能
  547 + */
  548 + warehouse_delete(index, row) {
  549 + this.$confirm('此操作永久删除该仓库信息, 是否继续?', '警告', {
  550 + confirmButtonText: '确定删除',
  551 + cancelButtonText: '取消',
  552 + type: 'warning'
  553 + }
  554 + ).then(() => {
  555 + this.warehouse_loading.delLoading = true;
  556 + deleteWarehouse(row).then((response) => {
  557 + let res = response.data;
  558 + if (res.code !== '200') {
  559 + this.warehouse_loading.delLoading = false;
  560 + return this.$message.error(res.msg);
  561 + }
  562 + this.warehouse_loading.delLoading = false;
  563 + this.$message.success(res.msg);
  564 + this.warehouse_getList();
  565 + }).catch(error => {
  566 + this.warehouse_loading.delLoading = false;
  567 + this.$message.error(error.toString());
  568 + });
  569 + }).catch(() => {
  570 + });
  571 + },
  572 + /**
  573 + * 获取所有场站列表
  574 + */
  575 + getYards() {
  576 + getYardList().then((response) => {
  577 + let res = response.data;
  578 + if (res.code !== '200') {
  579 + return this.$message.error(res.msg);
  580 + }
  581 + this.stationNameList = res.data;
  582 + }).catch(error => {
  583 + this.$message.error(error.toString());
  584 + });
  585 + },
  586 + },
  587 + }
  588 +</script>
  589 +
  590 +<style scoped>
  591 +
  592 +</style>
  1 +<template>
  2 + <div>
  3 + <el-card style="background-color: #F5F7FA">
  4 + <!-- 搜素区域 -->
  5 + <div>
  6 + <el-row :gutter="10">
  7 + <el-col :span="4">
  8 + <el-input v-model="yard_queryInfo.name" prefix-icon="el-icon-search" size="small"
  9 + placeholder="场站名称" clearable></el-input>
  10 + </el-col>
  11 + <el-col :span="4">
  12 + <el-input v-model="yard_queryInfo.customsCode" prefix-icon="el-icon-search" size="small"
  13 + placeholder="关区代码" clearable></el-input>
  14 + </el-col>
  15 + <el-col :span="8">
  16 + <el-button type="success" style="width:120px" size="small" @click="yard_getList">
  17 + 查询
  18 + </el-button>
  19 + <el-button type="primary" style="width:120px" size="small" @click="yard_toAddDialog">
  20 + 场站添加
  21 + </el-button>
  22 + </el-col>
  23 + </el-row>
  24 + </div>
  25 +
  26 + <!-- 列表区域 -->
  27 + <div style="margin-top: 20px;">
  28 + <el-table :data="yard_page.yardList" border size="mini"
  29 + v-loading="yard_loading.listLoading" element-loading-text="获取场站列表,拼命加载中">
  30 + <el-table-column type="index" align="center"></el-table-column>
  31 + <el-table-column label="场站名称" prop="name" align="center" width="120"></el-table-column>
  32 + <el-table-column label="区域代码" prop="areaCode" align="center" width="120"></el-table-column>
  33 + <el-table-column label="场站ID" prop="stationId" align="center" width="120"></el-table-column>
  34 + <el-table-column label="关区代码" prop="customsCode" align="center" width="120"></el-table-column>
  35 + <el-table-column label="备注信息" prop="remarks" align="center" width="200"></el-table-column>
  36 + <el-table-column label="操作" width="140px" align="center">
  37 + <template slot-scope="scope">
  38 + <el-tooltip effect="dark" content="编辑" placement="top-start" :enterable="false">
  39 + <el-button type="text" icon="el-icon-edit" size="mini"
  40 + @click="yard_toEditDialog(scope.$index,scope.row)">编辑
  41 + </el-button>
  42 + </el-tooltip>
  43 + <el-tooltip effect="dark" content="删除" placement="top-start" :enterable="false">
  44 + <el-button type="text" icon="el-icon-delete" size="mini"
  45 + :loading="yard_loading.delLoading"
  46 + @click="yard_delete(scope.$index,scope.row)">删除
  47 + </el-button>
  48 + </el-tooltip>
  49 + </template>
  50 + </el-table-column>
  51 + </el-table>
  52 + </div>
  53 +
  54 + <!-- 分页区域 -->
  55 + <div style="margin-top: 10px">
  56 + <el-row :gutter="24">
  57 + <el-col :span="10" style="margin-top: 5px">
  58 + <el-pagination
  59 + @size-change="yard_handleSizeChange"
  60 + @current-change="yard_handleCurrentChange"
  61 + :current-page="yard_queryInfo.pageNum"
  62 + :page-sizes="[10,30,50,100]"
  63 + :page-size="yard_queryInfo.pageSize"
  64 + layout="total, sizes, prev, pager, next, jumper"
  65 + :total="yard_page.total">
  66 + </el-pagination>
  67 + </el-col>
  68 + </el-row>
  69 + </div>
  70 + </el-card>
  71 + <!-- 场站添加 -->
  72 + <div>
  73 + <el-dialog title="场站添加:"
  74 + :visible.sync="yard_dialog.addDialog"
  75 + style="margin-top: -80px" text-align="center" width="60%"
  76 + @close="yard_addDialogClosed">
  77 + <el-form :inline="true" label-width="150px" status-icon style="margin-top: -10px;" align="center"
  78 + :model="yard_addForm" :rules="yard_addFormRules" ref="yard_addFormRef">
  79 + <el-form-item label="场站名称:" prop="name">
  80 + <el-input v-model="yard_addForm.name" style="width:300px" size="mini" clearable
  81 + placeholder="请输入场站名称">
  82 + </el-input>
  83 + </el-form-item>
  84 + <el-form-item label="区域代码:" prop="areaCode">
  85 + <el-input v-model="yard_addForm.areaCode" style="width:300px" size="mini" clearable
  86 + placeholder="请输入区域代码">
  87 + </el-input>
  88 + </el-form-item>
  89 + <el-form-item label="场站ID:" prop="stationId">
  90 + <el-input v-model="yard_addForm.stationId" style="width:300px" size="mini" clearable
  91 + placeholder="请输入场站ID">
  92 + </el-input>
  93 + </el-form-item>
  94 + <el-form-item label="关区代码:" prop="customsCode">
  95 + <el-select v-model="yard_addForm.customsCode" style="width: 300px" clearable size="small"
  96 + placeholder="请选择关区代码">
  97 + <el-option
  98 + v-for="item in customsCodeList"
  99 + :key="item.value"
  100 + :label="item.label"
  101 + :value="item.value">
  102 + </el-option>
  103 + </el-select>
  104 + </el-form-item>
  105 +
  106 + <el-form-item label="备注信息:" prop="remarks">
  107 + <el-input v-model="yard_addForm.remarks" style="width:300px" clearable size="mini"
  108 + type="textarea" :rows="5">
  109 + </el-input>
  110 + </el-form-item>
  111 + </el-form>
  112 + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -30px">
  113 + <el-button type="info" @click="yard_dialog.addDialog = false" size="medium"
  114 + style="width: 100px">取消
  115 + </el-button>
  116 + <el-button type="primary" @click="yard_add" :loading="yard_loading.addLoading"
  117 + size="medium" style="width: 100px">保存
  118 + </el-button>
  119 + </div>
  120 + </el-dialog>
  121 + </div>
  122 +
  123 + <!-- 场站修改 -->
  124 + <div>
  125 + <el-dialog title="场站修改:"
  126 + :visible.sync="yard_dialog.editDialog"
  127 + style="margin-top: -80px" text-align="center" width="60%"
  128 + @close="yard_editDialogClosed">
  129 + <el-form :inline="true" label-width="150px" status-icon style="margin-top: -10px;" align="center"
  130 + :model="yard_editForm" :rules="yard_editFormRules" ref="yard_editFormRef">
  131 + <el-form-item label="场站名称:" prop="name">
  132 + <el-input v-model="yard_editForm.name" style="width:300px" size="mini" clearable
  133 + placeholder="请输入场站名称">
  134 + </el-input>
  135 + </el-form-item>
  136 + <el-form-item label="区域代码:" prop="areaCode">
  137 + <el-input v-model="yard_editForm.areaCode" style="width:300px" size="mini" clearable
  138 + placeholder="请输入区域代码">
  139 + </el-input>
  140 + </el-form-item>
  141 + <el-form-item label="场站ID:" prop="stationId">
  142 + <el-input v-model="yard_editForm.stationId" style="width:300px" size="mini" clearable
  143 + placeholder="请输入场站ID">
  144 + </el-input>
  145 + </el-form-item>
  146 + <el-form-item label="关区代码:" prop="customsCode">
  147 + <el-select v-model="yard_editForm.customsCode" style="width: 300px" clearable size="small"
  148 + placeholder="请选择关区代码">
  149 + <el-option
  150 + v-for="item in customsCodeList"
  151 + :key="item.value"
  152 + :label="item.label"
  153 + :value="item.value">
  154 + </el-option>
  155 + </el-select>
  156 + </el-form-item>
  157 +
  158 + <el-form-item label="备注信息:" prop="remarks">
  159 + <el-input v-model="yard_editForm.remarks" style="width:300px" clearable size="mini"
  160 + type="textarea" :rows="5">
  161 + </el-input>
  162 + </el-form-item>
  163 + </el-form>
  164 + <div slot="footer" class="dialog-footer" style="text-align: center;margin-top: -30px">
  165 + <el-button type="info" @click="yard_dialog.editDialog = false" size="medium"
  166 + style="width: 100px">取消
  167 + </el-button>
  168 + <el-button type="primary" @click="yard_edit" :loading="yard_loading.editLoading"
  169 + size="medium" style="width: 100px">保存
  170 + </el-button>
  171 + </div>
  172 + </el-dialog>
  173 + </div>
  174 + </div>
  175 +</template>
  176 +
  177 +<script>
  178 + import {selectYardList, insertYard, updateYard, deleteYard} from "../../api/station_dispatch";
  179 +
  180 + export default {
  181 + name: "Yard",
  182 + data() {
  183 + return {
  184 + /**
  185 + * 搜索参数
  186 + */
  187 + yard_queryInfo: {
  188 + // 场站名称
  189 + name: '',
  190 + customsCode: undefined,
  191 + // 当前页数
  192 + pageNum: 1,
  193 + // 每页大小
  194 + pageSize: 10,
  195 + },
  196 +
  197 + /**
  198 + * yard,分页
  199 + */
  200 + yard_page: {
  201 + yardList: [],
  202 + total: 0,
  203 + selectList: [],
  204 + },
  205 +
  206 + /**
  207 + * 加载
  208 + */
  209 + yard_loading: {
  210 + listLoading: false,
  211 + addLoading: false,
  212 + editLoading: false,
  213 + delLoading: false,
  214 + batchDelLoading: false,
  215 + },
  216 +
  217 + /**
  218 + * 对话框
  219 + */
  220 + yard_dialog: {
  221 + addDialog: false,
  222 + editDialog: false,
  223 + },
  224 +
  225 + /**
  226 + * 备案添加,表单
  227 + */
  228 + yard_addForm: {
  229 + // 场站名称
  230 + name: '',
  231 + // 区域代码
  232 + areaCode: '',
  233 + // 场站ID
  234 + stationId: '',
  235 + // 关区代码
  236 + customsCode: undefined,
  237 + // 备注信息
  238 + remarks: '',
  239 + },
  240 +
  241 + customsCodeList: [
  242 + {
  243 + value: 4604,
  244 + label: '4604'
  245 + },
  246 + {
  247 + value: 4620,
  248 + label: '4620'
  249 + },
  250 + ],
  251 + /**
  252 + * 备案添加,表单验证规则
  253 + */
  254 + yard_addFormRules: {
  255 + name: [
  256 + {required: true, message: '请输入场站名称', trigger: ['blur', 'change']},
  257 + ],
  258 + },
  259 +
  260 + /**
  261 + * 备案修改,表单
  262 + */
  263 + yard_editForm: {},
  264 +
  265 + /**
  266 + * 备案修改,表单验证规则
  267 + */
  268 + yard_editFormRules: {
  269 + name: [
  270 + {required: true, message: '请输入场站名称', trigger: ['blur', 'change']},
  271 + ],
  272 + },
  273 + }
  274 + },
  275 + methods: {
  276 + /**
  277 + * 分页查询,监听 pageSize 改变的事件
  278 + * 刷新列表
  279 + */
  280 + yard_handleSizeChange(newSize) {
  281 + this.yard_queryInfo.pageSize = newSize;
  282 + this.yard_getList();
  283 + },
  284 + /**
  285 + * 分页查询,监听 pageNum 改变的事件
  286 + * 刷新列表
  287 + */
  288 + yard_handleCurrentChange(newPage) {
  289 + this.yard_queryInfo.pageNum = newPage;
  290 + this.yard_getList();
  291 + },
  292 +
  293 + /**
  294 + * 列表查询
  295 + */
  296 + yard_getList() {
  297 + this.yard_loading.listLoading = true;
  298 + selectYardList(this.yard_queryInfo).then((response) => {
  299 + let res = response.data;
  300 + if (res.code !== '200') {
  301 + this.yard_loading.listLoading = false;
  302 + return this.$message.error(res.msg);
  303 + }
  304 + this.yard_page.yardList = res.data.list;
  305 + this.yard_page.total = res.data.total;
  306 + this.yard_loading.listLoading = false;
  307 + }).catch(error => {
  308 + this.yard_loading.listLoading = false;
  309 + this.$message.error(error.toString());
  310 + });
  311 + },
  312 +
  313 + /**
  314 + * 对话框,备案添加,打开事件
  315 + */
  316 + yard_toAddDialog() {
  317 + this.yard_dialog.addDialog = true;
  318 + },
  319 +
  320 + /**
  321 + * 对话框,备案添加,关闭事件
  322 + */
  323 + yard_addDialogClosed() {
  324 + this.$refs.yard_addFormRef.resetFields();
  325 + },
  326 +
  327 + /**
  328 + * 备案添加
  329 + */
  330 + yard_add() {
  331 + this.$refs.yard_addFormRef.validate(valid => {
  332 + // 未通过,表单预校验
  333 + if (!valid) return;
  334 + // 通过,表单预检验
  335 + this.yard_loading.addLoading = true;
  336 + insertYard(this.yard_addForm).then((response) => {
  337 + let res = response.data;
  338 + if (res.code !== '200') {
  339 + this.yard_loading.addLoading = false;
  340 + return this.$message.error(res.msg);
  341 + }
  342 + this.$message.success(res.msg);
  343 + this.yard_loading.addLoading = false;
  344 + this.yard_dialog.addDialog = false;
  345 + this.yard_getList();
  346 + }).catch(error => {
  347 + this.yard_loading.addLoading = false;
  348 + this.$message.error(error.toString());
  349 + });
  350 + })
  351 + },
  352 +
  353 + /**
  354 + * 备案修改,对话框,打开事件
  355 + */
  356 + yard_toEditDialog(index, row) {
  357 + this.yard_editForm = Object.assign({}, row);
  358 + this.yard_dialog.editDialog = true;
  359 + },
  360 +
  361 + /**
  362 + * 备案修改,对话框,关闭事件
  363 + */
  364 + yard_editDialogClosed() {
  365 + this.$refs.yard_editFormRef.resetFields();
  366 + },
  367 + /**
  368 + * 备案修改
  369 + */
  370 + yard_edit() {
  371 + this.$refs.yard_editFormRef.validate(valid => {
  372 + // 未通过,表单预校验
  373 + if (!valid) return;
  374 +
  375 + this.yard_loading.editLoading = true;
  376 + updateYard(this.yard_editForm).then((response) => {
  377 + let res = response.data;
  378 + if (res.code !== '200') {
  379 + this.yard_loading.editLoading = false;
  380 + return this.$message.error(res.msg);
  381 + }
  382 + this.$message.success(res.msg);
  383 + this.yard_loading.editLoading = false;
  384 + this.yard_dialog.editDialog = false;
  385 + this.yard_getList();
  386 + }).catch(error => {
  387 + this.yard_loading.editLoading = false;
  388 + this.$message.error(error.toString());
  389 + });
  390 + })
  391 + },
  392 +
  393 + /**
  394 + * 删除功能
  395 + */
  396 + yard_delete(index, row) {
  397 + this.$confirm('此操作永久删除该场站信息, 是否继续?', '警告', {
  398 + confirmButtonText: '确定删除',
  399 + cancelButtonText: '取消',
  400 + type: 'warning'
  401 + }
  402 + ).then(() => {
  403 + this.yard_loading.delLoading = true;
  404 + deleteYard(row).then((response) => {
  405 + let res = response.data;
  406 + if (res.code !== '200') {
  407 + this.yard_loading.delLoading = false;
  408 + return this.$message.error(res.msg);
  409 + }
  410 + this.yard_loading.delLoading = false;
  411 + this.$message.success(res.msg);
  412 + this.yard_getList();
  413 + }).catch(error => {
  414 + this.yard_loading.delLoading = false;
  415 + this.$message.error(error.toString());
  416 + });
  417 + }).catch(() => {
  418 + });
  419 + },
  420 + },
  421 + }
  422 +</script>
  423 +
  424 +<style scoped>
  425 +
  426 +</style>