作者 朱兆平

Merge remote-tracking branch 'origin/master_dev'

import axios from 'axios'
import http from "../http";
let baseServiceURL = 'wms-server-warehouse'
export const selectVehicle = params => { return axios.get(`${baseServiceURL}/map/location/lastlocation`, { params: params }); };
... ...
... ... @@ -19,7 +19,10 @@ import Print from 'vue-print-nb'
// 条形组件
import VueBarcode from '@xkeshi/vue-barcode'; //导入条形码插件
Vue.component('barcode', VueBarcode);
import BaiduMap from 'vue-baidu-map'
Vue.use(BaiduMap, {
ak: 'PV0SfW0yRxe4NHUQ8OhyO4DrDbiwX4Sd'
})
//定义一个全局过滤器实现日期格式化
Vue.filter('datefmt',function(input,fmtstring){
... ... @@ -43,6 +46,7 @@ Vue.use(ElementUI,
Vue.use(VueRouter)
Vue.use(Vuex)
Vue.use(Print)
Vue.prototype.$axios = axios;
//NProgress.configure({ showSpinner: false });
... ...
... ... @@ -110,6 +110,7 @@ import myTask from './views/technological/myTask.vue'
import definition from './views/technological/definition.vue'
//仓库场站管理
import vehicle from './views/deploy/vehicle.vue'
import station from './views/deploy/station.vue'
import house from './views/deploy/house.vue'
import inventroyrecord from './views/deploy/inventroyrecord.vue'
... ... @@ -562,6 +563,7 @@ let routes = [
name: '仓库场站管理',
iconCls:'el-icon-goods',
children:[
{path:'/vehicle',component:vehicle,name:'车辆定位'},
{path:'/station',component:station,name:'场站管理'},
{path:'/house',component:house,name:'仓库管理'},
{path:'/inventroyrecord',component:inventroyrecord,name:'库存变更记录'},
... ...
<template>
<div>
<el-row>
<el-card style="background-color: #F5F7FA">
<el-row>
<el-col :span="5">
<el-input v-model="queryInfo.vno" prefix-icon="el-icon-search" size="small" style="width: 200px"
placeholder="车牌号" clearable>
<template slot="prepend">车牌号</template>
</el-input>
</el-col>
<el-col :offset="1" :span="12">
<div class="my-text-area">
<div class="el-input-group__prepend prepand">车牌类型</div>
<el-select v-model="queryInfo.vnocolor" placeholder="车牌类型" style="width: 200px" clearable>
<el-option label="蓝色" value="1"></el-option>
<el-option label="黄色" value="2"></el-option>
<el-option label="绿色" value="3"></el-option>
</el-select>
</div>
</el-col>
<el-col :span="3">
<el-button type="primary" icon="el-icon-search" size="small" @click="getList()">
查询
</el-button>
</el-col>
</el-row>
</el-card>
</el-row>
<div id="mapContainer" style="width: 100%; height: 500px;"></div>
</div>
</template>
<script>
import AMapLoader from '@amap/amap-jsapi-loader';
import { selectVehicle } from '../../api/consigner/vehicle';
export default {
name: 'MapComponent',
data() {
return {
mapInstance: null,
queryInfo: {
vno: '',
vnocolor: ''
}
};
},
methods: {
getList() {
const _this = this;
selectVehicle(this.queryInfo).then((response) => {
const res = response.data;
if (res.code !== '200') {
return _this.$message.error('获取车辆位置失败!');
}
if(res.data.data!=='' && res.data.data!=null){
// 获取车辆位置信息
const vehicle = res.data.data.firstVcl;
// 在获取车辆位置成功的部分,创建信息窗口或者自定义标记
const markerContent = document.createElement('div');
markerContent.innerHTML = `
<div class="rounded-corner" STYLE="width: 200px;background-color: rgba(255,255,255,0.7);text-align: center">
<p>车牌号:${vehicle.vno}</p >
<p>已行驶距离:${vehicle.runDistance}公里</p >
<p>剩余距离:${vehicle.remainDistance}公里</p >
</div>
`;
if (vehicle.lon && vehicle.lat) {
const lon = parseFloat(vehicle.lon) / 600000.0; // 将经度字符串转换为数值并除以 600000.0
const lat = parseFloat(vehicle.lat) / 600000.0; // 将纬度字符串转换为数值并除以 600000.0
//const coords = wgs84togcj02(lon, lat);
// 添加车辆位置标记
const marker = new AMap.Marker({
position: [lon, lat],
map: _this.mapInstance,
content: markerContent
});
const defaultMarker = new AMap.Marker({
position: [lon, lat],
map: _this.mapInstance,
});
// 移动地图中心到车辆位置
_this.mapInstance.setCenter([lon, lat]);
_this.$message.success('获取车辆位置成功!');
} else {
_this.$message.warning('车辆位置信息不完整!');
}
}else{
return _this.$message.error('无相关车辆信息返回');
}
}).catch(error => {
_this.$message.error('获取车辆位置失败:' + error.toString());
});
},
initMap() {
AMapLoader.load({
key: 'fdb27c13681d084e85ff8457b5cbe540',
version: '2.0',
plugins: [], // 可以加载地图插件,比如定位、地图工具等
}).then((AMap) => {
this.mapInstance = new AMap.Map('mapContainer', {
zoom: 10,
center: [116.397428, 39.90923], // 设置地图中心点
});
}).catch((err) => {
console.error(err);
});
},
},
mounted() {
this.initMap();
},
};
</script>
<style scoped>
.my-text-area .prepand{
float: left;
width:89px;
height: 28px;
font-size: 12px;
line-height: 28px;
}
</style>
<style>
.my-text-area .el-textarea__inner{
min-height: 28px;
height: 28px;
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
.rounded-corner {
border-radius: 10px; /* 设置圆角的半径为10像素 */
background-color: #f0f0f0; /* 背景颜色 */
padding: 10px; /* 内边距 */
margin: 10px; /* 外边距 */
box-shadow: 0 0 5px #ddd; /* 盒子阴影效果 */
}
</style>
... ...
... ... @@ -185,6 +185,11 @@
fixed="left"
width="55"
/>
<el-table-column label="总提运单号" width="140">
<template slot-scope="scope">
<a type="text" style="color: #409eff;text-decoration: underline" class="tableInline" @click="selectOne(scope.$index, scope.row)">{{ scope.row.billno }}</a>
</template>
</el-table-column>
<el-table-column label="统一编号" width="150">
<template slot-scope="scope">
<span>{{ scope.row.seqno }}</span>
... ... @@ -204,21 +209,16 @@
<!--&lt;!&ndash; <span>{{ scope.row.trnmode }}</span>&ndash;&gt;-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="申报地海关" width="90">
<template slot-scope="scope">
<span>{{ scope.row.customscode }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="申报地海关" width="90">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.customscode }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<!-- <el-table-column label="集装箱(器)编号" width="140">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.contaid }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="总提运单号" width="140">
<template slot-scope="scope">
<span>{{ scope.row.billno }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="进出境运输方式代码" width="120">-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.trafmode ==='2'">江海运输</span>-->
... ... @@ -239,16 +239,16 @@
<!-- <span>{{ scope.row.voyageno }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="境内运输方式" width="120">
<template slot-scope="scope">
<span v-if="scope.row.trafway ==='2'">江海运输</span>
<span v-if="scope.row.trafway ==='3'">铁路运输</span>
<span v-if="scope.row.trafway ==='4'">汽车运输</span>
<span v-if="scope.row.trafway ==='5'">航空运输</span>
<span v-if="scope.row.trafway ==='6'">邮件运输</span>
<!-- <span>{{ scope.row.trafway }}</span>-->
</template>
</el-table-column>
<!-- <el-table-column label="境内运输方式" width="120">-->
<!-- <template slot-scope="scope">-->
<!-- <span v-if="scope.row.trafway ==='2'">江海运输</span>-->
<!-- <span v-if="scope.row.trafway ==='3'">铁路运输</span>-->
<!-- <span v-if="scope.row.trafway ==='4'">汽车运输</span>-->
<!-- <span v-if="scope.row.trafway ==='5'">航空运输</span>-->
<!-- <span v-if="scope.row.trafway ==='6'">邮件运输</span>-->
<!--&lt;!&ndash; <span>{{ scope.row.trafway }}</span>&ndash;&gt;-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="托运货物件数" width="100">
<template slot-scope="scope">
<span>{{ scope.row.packno }}</span>
... ... @@ -259,11 +259,11 @@
<span>{{ scope.row.grosswt }}</span>
</template>
</el-table-column>
<el-table-column label="卸货地代码" width="120">
<template slot-scope="scope">
<span>{{ scope.row.unloadcode }}</span>
</template>
</el-table-column>
<!-- <el-table-column label="卸货地代码" width="120">-->
<!-- <template slot-scope="scope">-->
<!-- <span>{{ scope.row.unloadcode }}</span>-->
<!-- </template>-->
<!-- </el-table-column>-->
<el-table-column label="时间" width="180">
<template slot-scope="scope">
<span>{{ scope.row.creattime }}</span>
... ... @@ -368,9 +368,6 @@
</el-select>
</el-form-item>
</el-col>
<!-- <el-col :span="6">-->
<!-- <el-form-item label="操作员卡号" prop="inputopid">-->
<!-- <el-input v-model="form.inputopid" placeholder="" />-->
... ... @@ -545,8 +542,8 @@
<el-row align="middle">
<el-col :span="24" :offset="9">
<el-form-item >
<el-button style="width: 100px" type="info" @click="trn_dialog.addDialog = false">取消</el-button>
<el-button type="primary" style="width: 100px" @click="dialogStatus==='create'?trn_add():trn_edit()">提交</el-button>
<el-button v-if="dialogStatus!=='find'" style="width: 100px" type="info" @click="trn_dialog.addDialog = false">取消</el-button>
<el-button v-if="dialogStatus!=='find'" type="primary" style="width: 100px" @click="dialogStatus==='create'?trn_add():trn_edit()">提交</el-button>
</el-form-item>
</el-col>
</el-row>
... ... @@ -625,7 +622,8 @@
total: 0,
dialogMap: {
update: '编辑',
create: '新增'
create: '新增',
find: '查看',
},
dialogStatus: 'create',
trn_dialog: {
... ... @@ -807,7 +805,7 @@
//编辑按钮使用权限
isButtonDisabled3(row) {
// 已申报或关务不能编辑
if (row.dstatus ==='001' || this.names == true) {
if (row.dstatus ==='001') {
return true; // 禁用按钮
} else {
return false; // 不禁用按钮
... ... @@ -825,7 +823,7 @@
//删除按钮使用权限
isButtonDisabled5(row) {
// 已申报或关务不能删除
if (row.dstatus ==='001' || this.names == true) {
if (row.dstatus ==='001') {
return true; // 禁用按钮
} else {
return false; // 不禁用按钮
... ... @@ -946,6 +944,13 @@
})
})
},
// 查看
selectOne(index, row){
this.form = Object.assign({}, row)
this.trn_dialog.addDialog = true
this.dialogStatus = 'find'
},
// 打开编辑
editTrn(index, row) {
this.form = Object.assign({}, row)
... ...