liwei19941102 1 rok temu
rodzic
commit
05027732df

+ 10 - 8
src/components/Map/index.vue

@@ -41,11 +41,13 @@
     const getDictsData = (param) => {
         getDicts(param).then(res => {
             for (var index in res.data) {
-                var obj = res.data[index].dictValue.split(",");
-                // console.log(obj.toString())
-                var location = formatGCJ(Number(obj[0]), Number(obj[1]));
-                // console.log(location.toString())
-                addMarker(location, res.data[index], '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', 'location')
+                if (res.data[index].cssClass == '1') {
+                    var obj = res.data[index].dictValue.split(",");
+                    // console.log(obj.toString())
+                    var location = formatGCJ(Number(obj[0]), Number(obj[1]));
+                    // console.log(location.toString())
+                    addMarker(location, res.data[index], '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', 'location')
+                }
             }
         })
     }
@@ -58,7 +60,7 @@
             }
             var car = res.rows[res.rows.length - 1]
             if (car) {
-                setCenterLocation([car.lng,car.lat]);
+                setCenterLocation([car.lng, car.lat]);
                 var location = formatGCJ(car.lng, car.lat);
                 // addMarker(location, car, "../src/assets/images/icon/小货车.png", 'car')
                 addMarker(location, car, carImage, 'car')
@@ -71,7 +73,7 @@
         tableData.value = data
     }
 
-    const setCenterLocation = (location) =>{
+    const setCenterLocation = (location) => {
         mapObj.value.setCenter(location);
     }
 
@@ -338,4 +340,4 @@
     background-color: transparent;
     color: #ffffff;
 } */
-</style>
+</style>

+ 389 - 379
src/components/Map/videoMap.vue

@@ -7,421 +7,431 @@
 </template>
 
 <script setup lang="ts">
-import AMapLoader from '@amap/amap-jsapi-loader';
-/*在Vue3中使用时,需要引入Vue3中的shallowRef方法(使用shallowRef进行非深度监听,
-因为在Vue3中所使用的Proxy拦截操作会改变JSAPI原生对象,所以此处需要区别Vue2使用方式对地图对象进行非深度监听,
-否则会出现问题,建议JSAPI相关对象采用非响应式的普通对象来存储)*/
-import { shallowRef } from '@vue/reactivity';
-import { ref } from "vue";
-import { getDicts } from '@/api/system/dict/data'
-import { getGpsData } from '@/api/gpsData/index'
-import { getCameraPlayerConfig } from '@/api/gpsData';
-import carImage from "@/assets/images/icon/小货车.png";
-import add from '@/views/car/carInfo/add.vue';
-import EZUIKit from 'ezuikit-js';
-
-const props = defineProps({
-    showMarket: {
-        type: Boolean,
-        default: true
-    },
-    darkType: {
-        type: Boolean,
-        default: false
-    },
-})
-
-var content = [
-    "<div class='info' style='display:flex;flex-direction:column'><b>摄像头</b>",
-    " <div id='video-container' style='border-radius: 10px;width:30vw'></div>",
-    "</div>",
-];
-
-// const map = shallowRef(null);
-const path = ref([]);
-const playerObj = ref(null)
-const current_position = ref([]);
-let mapObj = ref()
-const allInfoWindow = shallowRef(null);
-let singleMarker = ref(null);
-
-const lineObj = ref(null);
-
-
-const getDictsData = (param) => {
-    getDicts(param).then(res => {
-        for (var index in res.data) {
-            var obj = res.data[index].dictValue.split(",");
-            // console.log(obj.toString())
-            var location = formatGCJ(Number(obj[0]), Number(obj[1]));
-            // console.log(location.toString())
-            addMarker(location, res.data[index], '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', 'location')
-        }
+    import AMapLoader from '@amap/amap-jsapi-loader';
+    /*在Vue3中使用时,需要引入Vue3中的shallowRef方法(使用shallowRef进行非深度监听,
+    因为在Vue3中所使用的Proxy拦截操作会改变JSAPI原生对象,所以此处需要区别Vue2使用方式对地图对象进行非深度监听,
+    否则会出现问题,建议JSAPI相关对象采用非响应式的普通对象来存储)*/
+    import { shallowRef } from '@vue/reactivity';
+    import { ref } from "vue";
+    import { getDicts } from '@/api/system/dict/data'
+    import { getGpsData } from '@/api/gpsData/index'
+    import { getCameraPlayerConfig } from '@/api/gpsData';
+    import carImage from "@/assets/images/icon/小货车.png";
+    import add from '@/views/car/carInfo/add.vue';
+    import EZUIKit from 'ezuikit-js';
+
+    const props = defineProps({
+        showMarket: {
+            type: Boolean,
+            default: true
+        },
+        darkType: {
+            type: Boolean,
+            default: false
+        },
     })
-}
-
-const closeVideo = () =>{
-      console.log('关闭摄像头')
-      playerObj.value.stop()
-      playerObj.value.destroy()
-      document.getElementById('video-container').innerHTML= "";
-}
-
-const getGpsDataList = (param) => {
-    getGpsData(param).then(res => {
-        addLine(res.rows);
-        if (singleMarker.value != null) {
-            mapObj.value.remove(singleMarker.value);
-        }
-        var car = res.rows[res.rows.length - 1]
-        if (car) {
-            var location = formatGCJ(car.lng, car.lat);
-            // addMarker(location, car, "../src/assets/images/icon/小货车.png", 'car')
-            addMarker(location, car, carImage, 'car')
-        }
-    })
-}
-
 
-const setDataList = (data) => {
-    tableData.value = data
-}
+    var content = [
+        "<div class='info' style='display:flex;flex-direction:column'><b>摄像头</b>",
+        " <div id='video-container' style='border-radius: 10px;width:30vw'></div>",
+        "</div>",
+    ];
+
+    // const map = shallowRef(null);
+    const path = ref([]);
+    const playerObj = ref(null)
+    const current_position = ref([]);
+    let mapObj = ref()
+    const allInfoWindow = shallowRef(null);
+    let singleMarker = ref(null);
+
+    const lineObj = ref(null);
+
+
+    const getDictsData = (param) => {
+        getDicts(param).then(res => {
+            for (var index in res.data) {
+                if (res.data[index].cssClass == '2') {
+                    console.log(res.data[index])
+                    var obj = res.data[index].dictValue.split(",");
+                    // console.log(obj.toString())
+                    var location = formatGCJ(Number(obj[0]), Number(obj[1]));
+                    // console.log(location.toString())
+                    addMarker(location, res.data[index], '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-default.png', 'kdlocation')
+                } else if (res.data[index].cssClass == '3') {
+                    console.log(res.data[index])
+                    var obj = res.data[index].dictValue.split(",");
+                    // console.log(obj.toString())
+                    var location = formatGCJ(Number(obj[0]), Number(obj[1]));
+                    // console.log(location.toString())
+                    addMarker(location, res.data[index], '//a.amap.com/jsapi_demos/static/demo-center/icons/poi-marker-red.png', 'zzlocation')
+                }
+            }
+        })
+    }
 
-const initMap = () => {
-    window._AMapSecurityConfig = {
-        securityJsCode: 'b16e0ff6d065a3b8a87e6c448e982ca4',
+    const closeVideo = () => {
+        console.log('关闭摄像头')
+        playerObj.value.stop()
+        playerObj.value.destroy()
+        document.getElementById('video-container').innerHTML = "";
     }
-    AMapLoader.load({
-        key: "c60c1af6d4f39c5220f3ad36298a8830", // 申请好的Web端开发者Key,首次调用 load 时必填
-        version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
-        // plugins:[''], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
-    }).then(async (AMap) => {
-        const map = new AMap.Map("container", {  //设置地图容器id
-            viewMode: "3D",    //是否为3D地图模式
-            zoom: 13,           //初始化地图级别
-            center: [119.807462, 26.958413], //初始化地图中心点位置
-        });
-        console.log(11111111111);
-        console.log(props.darkType)
-        if (props.darkType) {
-            var styleName = "amap://styles/darkblue";
-            map.setMapStyle(styleName);
-        }
-        mapObj.value = map;
-        const infoWindow = new AMap.InfoWindow({
-            offset: new AMap.Pixel(16, -45),
-            //隐藏原生弹窗边框和关闭按钮
-            isCustom: false,
-            autoMove: true,
-            avoid: [20, 20, 20, 20],
-            // 点击地图关闭
-            closeWhenClickMap: false,
-        });
-        allInfoWindow.value = infoWindow
-        infoWindow.on('close',closeVideo)
-        // console.log(content)
-        infoWindow.setContent(content.join(""));
-        // infoWindow.open(map, [119.807462, 26.958413]);
-
-        // 添加插件
-        // AMap.plugin(["AMap.ToolBar", "AMap.Scale", "AMap.HawkEye", "AMap.Geolocation", "AMap.MapType", "AMap.MouseTool"], function () {
-        //     //异步同时加载多个插件
-        //     // 添加地图插件
-        //     // map.addControl(new AMap.ToolBar()); // 工具条控件;范围选择控件
-        //     map.addControl(new AMap.Scale()); // 显示当前地图中心的比例尺
-        //     map.addControl(new AMap.HawkEye()); // 显示缩略图
-        //     map.addControl(new AMap.Geolocation()); // 定位当前位置
-        //     // map.addControl(new AMap.MapType()); // 实现默认图层与卫星图,实时交通图层之间切换
-
-        // });
-        if (props.showMarket) {
-            getDictsData("tbl_sites");
-        }
-        // 单击
-        map.on('click', (e) => {
-            // lng ==> 经度值  lat => 维度值
-            current_position.value = [e.lnglat.lng, e.lnglat.lat];
-            path.value.push([e.lnglat.lng, e.lnglat.lat]);
-            //addMarker();
-            // addPolyLine();
+
+    const getGpsDataList = (param) => {
+        getGpsData(param).then(res => {
+            addLine(res.rows);
+            if (singleMarker.value != null) {
+                mapObj.value.remove(singleMarker.value);
+            }
+            var car = res.rows[res.rows.length - 1]
+            if (car) {
+                var location = formatGCJ(car.lng, car.lat);
+                // addMarker(location, car, "../src/assets/images/icon/小货车.png", 'car')
+                addMarker(location, car, carImage, 'car')
+            }
         })
+    }
 
 
-        // 折线
-        function addPolyLine() {
-            const polyline = new AMap.Polyline({
-                path: path.value,
-                isOutline: true,
-                outlineColor: "#ffeeff",
-                borderWeight: 1,
-                strokeColor: "#3366FF",
-                strokeOpacity: 0.6,
-                strokeWeight: 5,
-                // 折线样式还支持 'dashed'
-                strokeStyle: "solid",
-                // strokeStyle是dashed时有效
-                // strokeDasharray: [10, 5],
-                lineJoin: "round",
-                lineCap: "round",
-                zIndex: 50,
-            });
-            map.add([polyline]);
+    const setDataList = (data) => {
+        tableData.value = data
+    }
+
+    const initMap = () => {
+        window._AMapSecurityConfig = {
+            securityJsCode: 'b16e0ff6d065a3b8a87e6c448e982ca4',
         }
+        AMapLoader.load({
+            key: "c60c1af6d4f39c5220f3ad36298a8830", // 申请好的Web端开发者Key,首次调用 load 时必填
+            version: "2.0", // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
+            // plugins:[''], // 需要使用的的插件列表,如比例尺'AMap.Scale'等
+        }).then(async (AMap) => {
+            const map = new AMap.Map("container", {  //设置地图容器id
+                viewMode: "3D",    //是否为3D地图模式
+                zoom: 13,           //初始化地图级别
+                center: [119.807462, 26.958413], //初始化地图中心点位置
+            });
+            console.log(11111111111);
+            console.log(props.darkType)
+            if (props.darkType) {
+                var styleName = "amap://styles/darkblue";
+                map.setMapStyle(styleName);
+            }
+            mapObj.value = map;
+            const infoWindow = new AMap.InfoWindow({
+                offset: new AMap.Pixel(16, -45),
+                //隐藏原生弹窗边框和关闭按钮
+                isCustom: false,
+                autoMove: true,
+                avoid: [20, 20, 20, 20],
+                // 点击地图关闭
+                closeWhenClickMap: false,
+            });
+            allInfoWindow.value = infoWindow
+            infoWindow.on('close', closeVideo)
+            // console.log(content)
+            infoWindow.setContent(content.join(""));
+            // infoWindow.open(map, [119.807462, 26.958413]);
+
+            // 添加插件
+            // AMap.plugin(["AMap.ToolBar", "AMap.Scale", "AMap.HawkEye", "AMap.Geolocation", "AMap.MapType", "AMap.MouseTool"], function () {
+            //     //异步同时加载多个插件
+            //     // 添加地图插件
+            //     // map.addControl(new AMap.ToolBar()); // 工具条控件;范围选择控件
+            //     map.addControl(new AMap.Scale()); // 显示当前地图中心的比例尺
+            //     map.addControl(new AMap.HawkEye()); // 显示缩略图
+            //     map.addControl(new AMap.Geolocation()); // 定位当前位置
+            //     // map.addControl(new AMap.MapType()); // 实现默认图层与卫星图,实时交通图层之间切换
+
+            // });
+            if (props.showMarket) {
+                getDictsData("tbl_sites");
+            }
+            // 单击
+            map.on('click', (e) => {
+                // lng ==> 经度值  lat => 维度值
+                current_position.value = [e.lnglat.lng, e.lnglat.lat];
+                path.value.push([e.lnglat.lng, e.lnglat.lat]);
+                //addMarker();
+                // addPolyLine();
+            })
+
 
+            // 折线
+            function addPolyLine() {
+                const polyline = new AMap.Polyline({
+                    path: path.value,
+                    isOutline: true,
+                    outlineColor: "#ffeeff",
+                    borderWeight: 1,
+                    strokeColor: "#3366FF",
+                    strokeOpacity: 0.6,
+                    strokeWeight: 5,
+                    // 折线样式还支持 'dashed'
+                    strokeStyle: "solid",
+                    // strokeStyle是dashed时有效
+                    // strokeDasharray: [10, 5],
+                    lineJoin: "round",
+                    lineCap: "round",
+                    zIndex: 50,
+                });
+                map.add([polyline]);
+            }
 
 
-    }).catch(e => {
-        console.log(e);
-        if(e == '多个不一致的 key'){
-            const map = new AMap.Map("container", {  //设置地图容器id
-            viewMode: "3D",    //是否为3D地图模式
-            zoom: 13,           //初始化地图级别
-            center: [119.807462, 26.958413], //初始化地图中心点位置
+
+        }).catch(e => {
+            console.log(e);
+            if (e == '多个不一致的 key') {
+                const map = new AMap.Map("container", {  //设置地图容器id
+                    viewMode: "3D",    //是否为3D地图模式
+                    zoom: 13,           //初始化地图级别
+                    center: [119.807462, 26.958413], //初始化地图中心点位置
+                });
+                console.log(11111111111);
+                console.log(props.darkType)
+                if (props.darkType) {
+                    var styleName = "amap://styles/darkblue";
+                    map.setMapStyle(styleName);
+                }
+                mapObj.value = map;
+                const infoWindow = new AMap.InfoWindow({
+                    offset: new AMap.Pixel(16, -45),
+                    //隐藏原生弹窗边框和关闭按钮
+                    isCustom: false,
+                    autoMove: true,
+                    avoid: [20, 20, 20, 20],
+                    // 点击地图关闭
+                    closeWhenClickMap: false,
+                });
+                allInfoWindow.value = infoWindow
+                infoWindow.on('close', closeVideo)
+                // console.log(content)
+                infoWindow.setContent(content.join(""));
+                if (props.showMarket) {
+                    getDictsData("tbl_sites");
+                }
+                // 单击
+                map.on('click', (e) => {
+                    // lng ==> 经度值  lat => 维度值
+                    current_position.value = [e.lnglat.lng, e.lnglat.lat];
+                    path.value.push([e.lnglat.lng, e.lnglat.lat]);
+                    //addMarker();
+                    // addPolyLine();
+                })
+
+
+                // 折线
+                function addPolyLine() {
+                    const polyline = new AMap.Polyline({
+                        path: path.value,
+                        isOutline: true,
+                        outlineColor: "#ffeeff",
+                        borderWeight: 1,
+                        strokeColor: "#3366FF",
+                        strokeOpacity: 0.6,
+                        strokeWeight: 5,
+                        // 折线样式还支持 'dashed'
+                        strokeStyle: "solid",
+                        // strokeStyle是dashed时有效
+                        // strokeDasharray: [10, 5],
+                        lineJoin: "round",
+                        lineCap: "round",
+                        zIndex: 50,
+                    });
+                    map.add([polyline]);
+                }
+            }
+        })
+    }
+
+    const addMarker = (obj, data, src, type) => {
+        const marker = new AMap.Marker({
+            icon: new AMap.Icon({
+                image: src,
+                imageSize: new AMap.Size(22, 28) //图标大小
+            }),
+            position: obj, // 这里我们通过上面的点击获取经纬度坐标,实时添加标记
+            // 通过设置 offset 来添加偏移量
+            offset: new AMap.Pixel(-10, -20),
         });
-        console.log(11111111111);
-        console.log(props.darkType)
-        if (props.darkType) {
-            var styleName = "amap://styles/darkblue";
-            map.setMapStyle(styleName);
-        }
-        mapObj.value = map;
-        const infoWindow = new AMap.InfoWindow({
-            offset: new AMap.Pixel(16, -45),
-            //隐藏原生弹窗边框和关闭按钮
-            isCustom: false,
-            autoMove: true,
-            avoid: [20, 20, 20, 20],
-            // 点击地图关闭
-            closeWhenClickMap: false,
+        marker.setLabel({
+            offset: new AMap.Pixel(-30, 20),
+            content: data.dictLabel
         });
-        allInfoWindow.value = infoWindow
-        infoWindow.on('close',closeVideo)
-        // console.log(content)
-        infoWindow.setContent(content.join(""));
-        if (props.showMarket) {
-            getDictsData("tbl_sites");
+        if (type == 'car') {
+            singleMarker.value = marker
         }
-        // 单击
-        map.on('click', (e) => {
-            // lng ==> 经度值  lat => 维度值
-            current_position.value = [e.lnglat.lng, e.lnglat.lat];
-            path.value.push([e.lnglat.lng, e.lnglat.lat]);
-            //addMarker();
-            // addPolyLine();
-        })
-
+        marker.setMap(mapObj.value);
+        //给marker添加属性
+        marker.setExtData(data)
+        //给marker添加点击事件
+        marker.on('click', clickMarker)
+    }
 
-        // 折线
-        function addPolyLine() {
-            const polyline = new AMap.Polyline({
-                path: path.value,
-                isOutline: true,
-                outlineColor: "#ffeeff",
-                borderWeight: 1,
-                strokeColor: "#3366FF",
-                strokeOpacity: 0.6,
-                strokeWeight: 5,
-                // 折线样式还支持 'dashed'
-                strokeStyle: "solid",
-                // strokeStyle是dashed时有效
-                // strokeDasharray: [10, 5],
-                lineJoin: "round",
-                lineCap: "round",
-                zIndex: 50,
-            });
-            map.add([polyline]);
+    const addLine = (list) => {
+        if (lineObj.value != null) {
+            mapObj.value.remove([lineObj.value])
         }
+        var dataList = []
+        for (var index in list) {
+            // console.log('转换前坐标' + [list[index].lng, list[index].lat])
+            var location = formatGCJ(list[index].lng, list[index].lat);
+            // console.log('转换后坐标' + [location[0], location[1]])
+            var obj = new AMap.LngLat(location[0], location[1]);
+            dataList.push(obj)
         }
-    })
-}
-
-const addMarker = (obj, data, src, type) => {
-    const marker = new AMap.Marker({
-        icon: new AMap.Icon({
-            image: src,
-            imageSize: new AMap.Size(22, 28) //图标大小
-        }),
-        position: obj, // 这里我们通过上面的点击获取经纬度坐标,实时添加标记
-        // 通过设置 offset 来添加偏移量
-        offset: new AMap.Pixel(-10, -20),
-    });
-    marker.setLabel({
-        offset: new AMap.Pixel(-30, 20),
-        content: data.dictLabel
-    });
-    if (type == 'car') {
-        singleMarker.value = marker
-    }
-    marker.setMap(mapObj.value);
-    //给marker添加属性
-    marker.setExtData(data)
-    //给marker添加点击事件
-    marker.on('click', clickMarker)
-}
-
-const addLine = (list) => {
-    if (lineObj.value != null) {
-        mapObj.value.remove([lineObj.value])
-    }
-    var dataList = []
-    for (var index in list) {
-        // console.log('转换前坐标' + [list[index].lng, list[index].lat])
-        var location = formatGCJ(list[index].lng, list[index].lat);
-        // console.log('转换后坐标' + [location[0], location[1]])
-        var obj = new AMap.LngLat(location[0], location[1]);
-        dataList.push(obj)
+        var polyline = new AMap.Polyline({
+            path: dataList,
+            strokeWeight: 2, //线条宽度
+            strokeColor: "red", //线条颜色
+            lineJoin: "round", //折线拐点连接处样式
+        });
+        // polyline.setMap(mapObj);
+        // console.log(mapObj)
+        lineObj.value = polyline
+        mapObj.value.add(polyline);
     }
-    var polyline = new AMap.Polyline({
-        path: dataList,
-        strokeWeight: 2, //线条宽度
-        strokeColor: "red", //线条颜色
-        lineJoin: "round", //折线拐点连接处样式
-    });
-    // polyline.setMap(mapObj);
-    // console.log(mapObj)
-    lineObj.value = polyline
-    mapObj.value.add(polyline);
-}
-
-const emit = defineEmits(['childToParent']);
-
-const clickMarker = (e) => {
-    // console.log(e.target.getExtData());
-
-    // var json = JSON.parse(e.target.getExtData().remark)
-    console.log(e.target.getExtData().remark)
-    if (e.target.getExtData().remark != null && e.target.getExtData().remark != '') {
-        var showVideo = false
-        var json = JSON.parse(e.target.getExtData().remark)
-        for (var index in json) {
-            if (json[index].type == "camera") {
-                showVideo = true;
-                allInfoWindow.value.open(mapObj.value, e.target.getPosition());
-                getCameraPlayerConfig(json[index].code).then(res => {
-                    console.log(res.data);
-                    var player = new EZUIKit.EZUIKitPlayer({
-                        template: "pcLive",
-                        id: 'video-container', // 视频容器ID
-                        ...res.data
+
+    const emit = defineEmits(['childToParent']);
+
+    const clickMarker = (e) => {
+        // console.log(e.target.getExtData());
+
+        // var json = JSON.parse(e.target.getExtData().remark)
+        console.log(e.target.getExtData().remark)
+        if (e.target.getExtData().remark != null && e.target.getExtData().remark != '') {
+            var showVideo = false
+            var json = JSON.parse(e.target.getExtData().remark)
+            for (var index in json) {
+                if (json[index].type == "camera") {
+                    showVideo = true;
+                    allInfoWindow.value.open(mapObj.value, e.target.getPosition());
+                    getCameraPlayerConfig(json[index].code).then(res => {
+                        console.log(res.data);
+                        var player = new EZUIKit.EZUIKitPlayer({
+                            template: "pcLive",
+                            id: 'video-container', // 视频容器ID
+                            ...res.data
+                        })
+                        playerObj.value = player
                     })
-                    playerObj.value = player
+                }
+            }
+            if (!showVideo) {
+                ElMessage({
+                    message: '该站点未配置摄像头',
+                    type: 'warning',
                 })
             }
-        }
-        if (!showVideo) {
+        } else {
             ElMessage({
                 message: '该站点未配置摄像头',
                 type: 'warning',
             })
         }
-    } else {
-        ElMessage({
-            message: '该站点未配置摄像头',
-            type: 'warning',
-        })
-    }
-    // emit('childToParent', e.target.getPosition())
-}
-
-const formatGCJ = (lng, lat) => {
-    const x_PI = 3.14159265358979324 * 3000.0 / 180.0
-    const PI = 3.1415926535897932384626
-    const a = 6378245.0
-    const ee = 0.00669342162296594323
-    if (outOfChina(lng, lat)) {
-        return [lng, lat]
-    }
-    else {
-        var dlat = transformlat(lng - 105.0, lat - 35.0)
-        var dlng = transformlng(lng - 105.0, lat - 35.0)
-        var radlat = lat / 180.0 * PI
-        var magic = Math.sin(radlat)
-        magic = 1 - ee * magic * magic
-        var sqrtmagic = Math.sqrt(magic)
-        dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI)
-        dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI)
-        const mglat = lat + dlat
-        const mglng = lng + dlng
-        return [mglng, mglat]
-    }
-    /*判断是否在国内,不在国内则不做偏移*/
-    function transformlat(lng, lat) {
-        var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng))
-        ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0
-        ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0
-        ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0
-        return ret
+        // emit('childToParent', e.target.getPosition())
     }
 
-    /**
-     * 纬度转换
-     * @param { Number } lng
-     * @param { Number } lat
-     */
-    function transformlng(lng, lat) {
-        var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng))
-        ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0
-        ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0
-        ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0
-        return ret
-    }
+    const formatGCJ = (lng, lat) => {
+        const x_PI = 3.14159265358979324 * 3000.0 / 180.0
+        const PI = 3.1415926535897932384626
+        const a = 6378245.0
+        const ee = 0.00669342162296594323
+        if (outOfChina(lng, lat)) {
+            return [lng, lat]
+        }
+        else {
+            var dlat = transformlat(lng - 105.0, lat - 35.0)
+            var dlng = transformlng(lng - 105.0, lat - 35.0)
+            var radlat = lat / 180.0 * PI
+            var magic = Math.sin(radlat)
+            magic = 1 - ee * magic * magic
+            var sqrtmagic = Math.sqrt(magic)
+            dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * PI)
+            dlng = (dlng * 180.0) / (a / sqrtmagic * Math.cos(radlat) * PI)
+            const mglat = lat + dlat
+            const mglng = lng + dlng
+            return [mglng, mglat]
+        }
+        /*判断是否在国内,不在国内则不做偏移*/
+        function transformlat(lng, lat) {
+            var ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * Math.sqrt(Math.abs(lng))
+            ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0
+            ret += (20.0 * Math.sin(lat * PI) + 40.0 * Math.sin(lat / 3.0 * PI)) * 2.0 / 3.0
+            ret += (160.0 * Math.sin(lat / 12.0 * PI) + 320 * Math.sin(lat * PI / 30.0)) * 2.0 / 3.0
+            return ret
+        }
 
-    /**
-     * 判断是否在国内,不在国内则不做偏移
-     * @param {*} lng
-     * @param {*} lat
-     */
-    function outOfChina(lng, lat) {
-        return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false)
-    }
+        /**
+         * 纬度转换
+         * @param { Number } lng
+         * @param { Number } lat
+         */
+        function transformlng(lng, lat) {
+            var ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * Math.sqrt(Math.abs(lng))
+            ret += (20.0 * Math.sin(6.0 * lng * PI) + 20.0 * Math.sin(2.0 * lng * PI)) * 2.0 / 3.0
+            ret += (20.0 * Math.sin(lng * PI) + 40.0 * Math.sin(lng / 3.0 * PI)) * 2.0 / 3.0
+            ret += (150.0 * Math.sin(lng / 12.0 * PI) + 300.0 * Math.sin(lng / 30.0 * PI)) * 2.0 / 3.0
+            return ret
+        }
+
+        /**
+         * 判断是否在国内,不在国内则不做偏移
+         * @param {*} lng
+         * @param {*} lat
+         */
+        function outOfChina(lng, lat) {
+            return (lng < 72.004 || lng > 137.8347) || ((lat < 0.8293 || lat > 55.8271) || false)
+        }
 
-}
+    }
 
 
-initMap()
-console.log(props.showMarket);
-// getGpsDataList();
-defineExpose({
-    getGpsDataList,
-});
+    initMap()
+    console.log(props.showMarket);
+    // getGpsDataList();
+    defineExpose({
+        getGpsDataList,
+    });
 </script>
 
 <style>
-#container {
-    padding: 0px;
-    margin: 0px;
-    width: 100%;
-    height: 100%;
-}
-
-.info {
-    background-color: #fff;
-    text-align: center;
-    padding: 10px;
-    position: relative;
-    border: 1px solid #b9b9b9;
-}
-
-.info img {
-    width: 30px;
-    height: 23px;
-    position: absolute;
-    left: calc(50% - 15px);
-    bottom: -23px;
-}
-
-.closeDiv{
-    position: absolute;
-    top: 1px;
-    right: 10px;
-    font-size: 20px;
-    z-index: 30;
-    color: red;
-}
-
-/* .amap-marker-label{
+    #container {
+        padding: 0px;
+        margin: 0px;
+        width: 100%;
+        height: 100%;
+    }
+
+    .info {
+        background-color: #fff;
+        text-align: center;
+        padding: 10px;
+        position: relative;
+        border: 1px solid #b9b9b9;
+    }
+
+    .info img {
+        width: 30px;
+        height: 23px;
+        position: absolute;
+        left: calc(50% - 15px);
+        bottom: -23px;
+    }
+
+    .closeDiv {
+        position: absolute;
+        top: 1px;
+        right: 10px;
+        font-size: 20px;
+        z-index: 30;
+        color: red;
+    }
+
+    /* .amap-marker-label{
     border: 0px solid #00f;
     background-color: transparent;
     color: #ffffff;
 } */
-</style>
+</style>

+ 2 - 2
src/views/car/work/schedule.vue

@@ -54,7 +54,7 @@
           </el-time-picker>
         </el-form-item>
         <el-form-item label="车辆">
-          <el-select v-model="form.carId" placeholder="请选择车辆" style="width: 240px" @change="changeCarNum">
+          <el-select filterable v-model="form.carId" placeholder="请选择车辆" style="width: 240px" @change="changeCarNum">
             <el-option v-for="item in carInfoList" :key="item.id" :label="item.carNum" :value="item.id" />
           </el-select>
         </el-form-item>
@@ -64,7 +64,7 @@
           </el-select>
         </el-form-item>
         <el-form-item label="司机">
-          <el-select v-model="formParams.driverInfo" placeholder="请选择司机" style="width: 240px">
+          <el-select filterable v-model="formParams.driverInfo" placeholder="请选择司机" style="width: 240px">
             <el-option v-for="item in sjList" :key="item.userId" :label="item.nickName" :value="item.userId" />
           </el-select>
         </el-form-item>

+ 1 - 0
src/views/login.vue

@@ -134,6 +134,7 @@ const handleLogin = () => {
         }
       }
     } else {
+      // ElMessage.error(fields);
       console.log('error submit!', fields);
     }
   });

+ 2 - 1
src/views/yunying/scheduling/index.vue

@@ -352,6 +352,7 @@ const getScheduleList = async () => {
     }
     carScheduleList.value = [];
     const res = await listCarSchedule(param);
+    console.log(res)
   // carScheduleList.value = res.rows;
 
     res.rows.map(i => {
@@ -359,7 +360,7 @@ const getScheduleList = async () => {
         var endTime = moment(date).format('YYYY-MM-DD') + ' ' + pathLine[pathLine.length - 1].planInTime
         // console.log(new Date().getTime() )
       // console.log(new Date(endTime).getTime())
-
+        console.log(endTime);
         if (new Date().getTime() < new Date(endTime).getTime()) {
             if (i.ext1 != undefined && i.ext1 != null) {
                 var datajson = JSON.parse(i.ext1)