shuishen
2022-07-21 03df59a72de4354fcc731675c53dd2805c2ec8b1
数据新增调整
16 files modified
2 files added
1943 ■■■■■ changed files
.gitignore 3 ●●●● patch | view | raw | blame | history
src/App.vue 73 ●●●●● patch | view | raw | blame | history
src/components/map/mainInThere.vue 403 ●●●● patch | view | raw | blame | history
src/components/xymap/map.vue 103 ●●●●● patch | view | raw | blame | history
src/components/xymap/setxy.vue 35 ●●●●● patch | view | raw | blame | history
src/main.js 8 ●●●● patch | view | raw | blame | history
src/page/index/layout.vue patch | view | raw | blame | history
src/store/getters.js 7 ●●●● patch | view | raw | blame | history
src/store/modules/user.js 172 ●●●● patch | view | raw | blame | history
src/styles/element-ui.scss 10 ●●●●● patch | view | raw | blame | history
src/views/architecture/architecture.vue 166 ●●●●● patch | view | raw | blame | history
src/views/hd/hd.vue 178 ●●●● patch | view | raw | blame | history
src/views/life/life.vue 159 ●●●●● patch | view | raw | blame | history
src/views/mechanism/mechanism.vue 165 ●●●●● patch | view | raw | blame | history
src/views/road/road.vue 152 ●●●●● patch | view | raw | blame | history
src/views/sp/sp.vue 153 ●●●●● patch | view | raw | blame | history
src/views/vr/vr.vue 152 ●●●●● patch | view | raw | blame | history
vue.config.js 4 ●●●● patch | view | raw | blame | history
.gitignore
@@ -1,10 +1,11 @@
.DS_Store
node_modules
/dist
/public/wp
/tests/e2e/videos/
/tests/e2e/screenshots/
# local env files
.env.local
.env.*.local
src/App.vue
@@ -1,21 +1,71 @@
<template>
  <div id="app">
    <router-view />
        <el-dialog title="提示" :visible.sync="mapShow" width="1020px" :before-close="handleClose">
            <el-input v-model="xyValue" placeholder="请点击地图选择2.5维坐标"></el-input>
            <xymap class="select-map-xy" @setXyValue="setXyValue"></xymap>
            <div style="text-align: right;">
                <el-button @click="setMapXy" type="primary">确认</el-button>
            </div>
        </el-dialog>
  </div>
</template>
<script>
import { mapGetters } from "vuex"
export default {
  name: "app",
  data() {
    return {};
        return {
            xyValue: '',
            mapShow: false
        }
  },
  watch: {},
    computed: {
        ...mapGetters(["selectMamShow"]),
    },
    watch: {
        mapShow: {
            immediate: true,
            handler (newVal) {
                if (newVal == true) {
                    this.xyValue = ''
                }
                this.$store.commit('SET_SELECT_MAP', newVal)
            }
        },
        selectMamShow: {
            immediate: true,
            handler (newVal) {
                this.mapShow = newVal
            }
        }
    },
  created() {
  },
  methods: {},
  computed: {}
    methods: {
        setXyValue (e) {
            let str = ''
            str = str + e[0] + ',' + e[1]
            this.xyValue = str
        },
        setMapXy () {
            if (this.xyValue == '') {
                this.$message({
                    message: '请点击地图选择XY',
                    type: 'warning'
                })
            }
            this.$store.commit('SET_MAP_X_Y', this.xyValue)
            this.mapShow = false
        }
    }
};
</script>
<style lang="scss">
@@ -24,4 +74,19 @@
  height: 100%;
  overflow: hidden;
}
.select-map {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 3000;
    background: green;
}
.select-map-xy {
    margin: 10px 0;
    cursor: pointer;
}
</style>
src/components/map/mainInThere.vue
@@ -18,8 +18,7 @@
            'openDrawsb',
            openDrawChiose == 'openDrawLine' ? 'activeDraw' : '',
          ]"
          >规划路线</el-button
        >
                >规划路线</el-button>
        <el-button
          type="primary"
          @click="openDrawPointMethod"
@@ -28,8 +27,7 @@
            'openDrawsb',
            openDrawChiose == 'openDrawPoint' ? 'activeDraw' : '',
          ]"
          >规划标点</el-button
        >
                >规划标点</el-button>
      </el-button-group>
      <div id="openTitle" style="display: none">当前选择:{{ openTitle }}</div>
      <el-button-group id="openDrawLine" style="display: none">
@@ -38,11 +36,8 @@
          icon="el-icon-edit"
          @click="getTypeSelected"
          :disabled="beginDraw"
          >{{ butTitle }}</el-button
        >
        <el-button type="primary" @click="stopDrawOur" icon="el-icon-delete"
          >取消</el-button
        >
                >{{ butTitle }}</el-button>
                <el-button type="primary" @click="stopDrawOur" icon="el-icon-delete">取消</el-button>
      </el-button-group>
      <el-button-group id="openDrawPoint" style="display: none">
        <el-button
@@ -50,36 +45,26 @@
          icon="el-icon-edit"
          @click="getTypeSelectedPoint"
          :disabled="beginDraw"
          >{{ butTitlePoint }}</el-button
        >
        <el-button type="primary" @click="stopDrawOur" icon="el-icon-delete"
          >取消</el-button
        >
                >{{ butTitlePoint }}</el-button>
                <el-button type="primary" @click="stopDrawOur" icon="el-icon-delete">取消</el-button>
      </el-button-group>
    </div>
    <el-button-group id="dataConfirm" style="display: none">
      <el-button type="success" icon="el-icon-check" @click="useMapData"
        >确定选择</el-button
      >
            <el-button type="success" icon="el-icon-check" @click="useMapData">确定选择</el-button>
      <!-- v-show="notNow" -->
      <el-button
        type="danger"
        @click="clearUseMapData"
        icon="el-icon-refresh-right"
        >清空</el-button
      >
            <el-button type="danger" @click="clearUseMapData" icon="el-icon-refresh-right">清空</el-button>
    </el-button-group>
    <tip v-show="showTip" :title="tipTitle" :position="position"></tip>
  </div>
</template>
<script>
import OLCesium from "olcs/OLCesium.js";
import "ol/ol.css";
import OlView from "ol/View.js";
import XYZ from "ol/source/XYZ";
import OlLayerTile from "ol/layer/Tile.js";
import OlMap from "ol/Map.js";
import tip from "./tip.vue";
import OLCesium from "olcs/OLCesium.js"
import "ol/ol.css"
import OlView from "ol/View.js"
import XYZ from "ol/source/XYZ"
import OlLayerTile from "ol/layer/Tile.js"
import OlMap from "ol/Map.js"
import tip from "./tip.vue"
import {
  // eslint-disable-next-line no-unused-vars
  defaults as OlControlDefaults,
@@ -103,31 +88,31 @@
  // eslint-disable-next-line no-unused-vars
  ZoomToExtent,
  Rotate,
} from "ol/control.js";
} from "ol/control.js"
import VectorLayer from "ol/layer/Vector";
import VectorSource from "ol/source/Vector";
import VectorLayer from "ol/layer/Vector"
import VectorSource from "ol/source/Vector"
import { OSM, TileWMS, Vector } from "ol/source";
import { OSM, TileWMS, Vector } from "ol/source"
// import Draw from "ol/interaction/Draw";
import Draw from "./Draw";
import Draw from "./Draw"
import Feature from "ol/Feature.js";
import Point from "ol/geom/Point.js";
import LineString from "ol/geom/LineString.js";
import { Icon, Style, Fill, Stroke } from "ol/style.js";
import Feature from "ol/Feature.js"
import Point from "ol/geom/Point.js"
import LineString from "ol/geom/LineString.js"
import { Icon, Style, Fill, Stroke } from "ol/style.js"
// import drawFence from "./drawFence";
import OlFeature from "ol/Feature";
import OlGeomPoint from "ol/geom/Point";
import OlFeature from "ol/Feature"
import OlGeomPoint from "ol/geom/Point"
// import OlLayerVector from "ol/layer/Vector";
// import OlSourceVector from "ol/source/Vector";
import OlStyleStyle from "ol/style/Style";
import OlStyleIcon from "ol/style/Icon";
import OlStyleStyle from "ol/style/Style"
import OlStyleIcon from "ol/style/Icon"
// // 用来添加相关文字描述的
import OlStyleText from "ol/style/Text";
import OlStyleFill from "ol/style/Fill";
import OlStyleText from "ol/style/Text"
import OlStyleFill from "ol/style/Fill"
// import Cesium from "libs/Cesium/Cesium.js";
export default {
@@ -208,7 +193,7 @@
      ourLayer: {}, //图层合集
      notNow: true, //如果修改,不显示确认按钮
    };
        }
  },
  computed: {
    openDrawChiose() {
@@ -219,11 +204,11 @@
      //   this.openDrawPoint
      // );
      if (this.openDrawLine) {
        return "openDrawLine";
                return "openDrawLine"
      } else if (this.openDrawPoint) {
        return "openDrawPoint";
                return "openDrawPoint"
      } else {
        return "notBut---";
                return "notBut---"
      }
    },
  },
@@ -249,25 +234,35 @@
        //     url: "http://t3.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 注记
        //   }),
        // }),
        new OlLayerTile({
          zIndex: 4,
          title: "矢量",
          source: new XYZ({
            url: "http://t3.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 行政区划
            // url: "/localData/sl/{z}/{x}/{y}.png",
            tileUrlFunction: function (tileCoord) {
              var z = tileCoord[0];
              var x = tileCoord[1];
              var y = Math.pow(2, z) + tileCoord[2];
              return "../assets/sl/" + z + "/" + x + "/" + y + ".png";
            },
          }),
        }),
                // new OlLayerTile({
                //     zIndex: 4,
                //     title: "矢量",
                //     source: new XYZ({
                //         url: "http://t3.tianditu.com/DataServer?T=vec_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 行政区划
                //         // url: "/localData/sl/{z}/{x}/{y}.png",
                //         tileUrlFunction: function (tileCoord) {
                //             var z = tileCoord[0]
                //             var x = tileCoord[1]
                //             var y = Math.pow(2, z) + tileCoord[2]
                //             return "../assets/sl/" + z + "/" + x + "/" + y + ".png"
                //         },
                //     }),
                // }),
                // new OlLayerTile({
                //     zIndex: 5,
                //     title: "中文注记",
                //     source: new XYZ({
                //         url: "http://t3.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 注记
                //     }),
                // }),
        new OlLayerTile({
          zIndex: 5,
          title: "中文注记",
                    title: "cesium切图",
          source: new XYZ({
            url: "http://t3.tianditu.com/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0", // 注记
                        url: "/wp/{z}/{x}/{y}.png", // 注记
          }),
        }),
      ],
@@ -282,14 +277,14 @@
      ]),
      target: "map",
      view: new OlView({
        center: [0, 0],
        zoom: 2,
                center: [116.026801, 28.683427],
                zoom: 16,
        projection: "EPSG:4326",
      }),
    });
    window.ol2d = ol2d;
        })
        window.ol2d = ol2d
    var view = ol2d.getView();
        var view = ol2d.getView()
    // let provider = new Cesium.UrlTemplateImageryProvider({
    //   url: "/wp/{z}/{x}/{y}.png",
@@ -298,13 +293,11 @@
    // view.imageryLayers.addImageryProvider(provider);
    // view.setCenter([115.85883507433789, 28.708432053474827])
    view.setCenter([114.03858862, 27.63088262]);
    //
    view.setZoom(18);
    this.view = view;
    const ol3d = new OLCesium({ map: window.ol2d });
    window.ol3d = ol3d;
        this.view = view
        const ol3d = new OLCesium({ map: window.ol2d })
        window.ol3d = ol3d
    // ol2d.addLayer(this.gunAddlayer);
    // ol2d.addLayer(this.peopleAddlayer);
@@ -315,45 +308,45 @@
  methods: {
    clearUseMapData() {
      if (this.openDrawPoint) {
        this.$store.commit("setPointData", ""); //用vuex清空最终数据
                this.$store.commit("setPointData", "") //用vuex清空最终数据
      } else if (this.openDrawLine) {
        this.$store.commit("setRotesData", ""); //用vuex清空最终数据
                this.$store.commit("setRotesData", "") //用vuex清空最终数据
      }
      this.useMapData();
            this.useMapData()
    },
    onceOnlodad(ourDatas) {
      this.ourDatas = ourDatas;
      this.Renders(ourDatas);
            this.ourDatas = ourDatas
            this.Renders(ourDatas)
    },
    //加载底层路线和图标
    Renders(ourDatas) {
      // for (let i in ourDatas) {
      //   console.log(ourDatas[i].value, "------", i);
      // }
      this.deleteElement();
            this.deleteElement()
      for (let k in ourDatas) {
        if (ourDatas[k].isLine) {
          if (!ourDatas[k].value) {
            // this.deleteElement("line", ourDatas[k].id);
          } else {
            this.addLines(ourDatas[k], "line");
                        this.addLines(ourDatas[k], "line")
          }
        } else {
          if (!ourDatas[k].value) {
            // this.deleteElement("point", ourDatas[k].id);
          } else {
            this.addPoint(ourDatas[k], "point");
                        this.addPoint(ourDatas[k], "point")
          }
        }
      }
      this.drawLayerRoom(); //重置绘画层
            this.drawLayerRoom() //重置绘画层
    },
    // 若没有value数据,删除地图上的元素
    deleteElement(name, id) {
      // console.log(name, id);
      // this.ourLayer[name + id].getSource().clear();
      for (let k in this.ourLayer) {
        this.ourLayer[k].getSource().clear();
                this.ourLayer[k].getSource().clear()
      }
    },
    //加载点
@@ -369,7 +362,7 @@
        iconFeatureTitle = new OlFeature({
          geometry: new OlGeomPoint(data.value), //绘制图形(点)
        }),
        that = this;
                that = this
      iconFeature.setStyle(
        new OlStyleStyle({
          image: new OlStyleIcon({
@@ -379,7 +372,7 @@
            src: "img/dingwei/dingwei5.png",
          }),
        })
      );
            )
      iconFeatureTitle.setStyle(
        new OlStyleStyle({
          text: new OlStyleText({
@@ -392,12 +385,12 @@
            }),
          }),
        })
      );
      layer.getSource().addFeature(iconFeature);
      layer.getSource().addFeature(iconFeatureTitle);
            )
            layer.getSource().addFeature(iconFeature)
            layer.getSource().addFeature(iconFeatureTitle)
      //保存图层
      this.ourLayer[name + data.id] = layer;
      ol2d.addLayer(that.ourLayer[name + data.id]);
            this.ourLayer[name + data.id] = layer
            ol2d.addLayer(that.ourLayer[name + data.id])
      // console.log(this.ourLayer, 77777);
    },
    addLines(data, name) {
@@ -406,26 +399,26 @@
          zIndex: 22,
          source: new VectorSource(),
        }),
        that = this;
                that = this
      //绘画线路
      var entityData = "";
      var entityArr = [];
      entityData = data.value.match(/\(([^)]*)\)/);
            var entityData = ""
            var entityArr = []
            entityData = data.value.match(/\(([^)]*)\)/)
      if (entityData && entityData != "") {
        entityData = entityData[1].split(",");
                entityData = entityData[1].split(",")
        for (var j = 0; j < entityData.length; j++) {
          entityArr.push([
            Number(entityData[j].split(" ")[0]),
            Number(entityData[j].split(" ")[1]),
          ]);
                    ])
        }
      }
      var lineCoords = entityArr; // 线里点的集合
            var lineCoords = entityArr // 线里点的集合
      // console.log(lineCoords);
      var feature_LineString = new Feature({
        //线面板
        geometry: new LineString(lineCoords),
      });
            })
      feature_LineString.setStyle(
        //线样式
        new Style({
@@ -439,11 +432,11 @@
            width: 5,
          }),
        })
      );
            )
      //线名称
      let lineFeatureTitle = new OlFeature({
        geometry: new OlGeomPoint(lineCoords[0]), //绘制图形(点)
      });
            })
      lineFeatureTitle.setStyle(
        new OlStyleStyle({
          text: new OlStyleText({
@@ -456,12 +449,12 @@
            }),
          }),
        })
      );
      layer.getSource().addFeature(lineFeatureTitle);
      layer.getSource().addFeature(feature_LineString);
            )
            layer.getSource().addFeature(lineFeatureTitle)
            layer.getSource().addFeature(feature_LineString)
      //保存图层
      this.ourLayer[name + data.id] = layer;
      ol2d.addLayer(that.ourLayer[name + data.id]);
            this.ourLayer[name + data.id] = layer
            ol2d.addLayer(that.ourLayer[name + data.id])
      // console.log(this.ourLayer, 88888);
    },
@@ -469,115 +462,115 @@
    //下面是选择点或线路开始按钮
    init(val, num, value) {
      this.openTitle = val;
            this.openTitle = val
      if (value) {
        this.notNow = false;
                this.notNow = false
      } else {
        this.notNow = true;
                this.notNow = true
      }
      //notNow来确定是修改值还是增加值 是否显示$("#dataConfirm").show(100);
      this.nowIndex = num;
            this.nowIndex = num
      if (val.indexOf("路径") != -1) {
        // console.log("加载路径按钮");
        this.controlBut("openDrawLine", this.notNow);
                this.controlBut("openDrawLine", this.notNow)
      } else {
        // console.log("加载标点按钮");
        this.controlBut("openDrawPoint", this.notNow);
                this.controlBut("openDrawPoint", this.notNow)
      }
    },
    controlBut(openName, notNow) {
      //判断哪个dom打开
      this.closeOurBut();
      this[openName] = true;
      $("#" + openName).show();
      $("#openTitle").show();
            this.closeOurBut()
            this[openName] = true
            $("#" + openName).show()
            $("#openTitle").show()
      if (!notNow) {
        $("#dataConfirm").show(100);
                $("#dataConfirm").show(100)
      }
    },
    closeOurBut(open) {
      //整体关闭dom
      $("#dataConfirm").hide();
      $("#openDrawPoint").hide();
      $("#openDrawLine").hide();
      $("#openTitle").hide();
      this.openDrawLine = false;
      this.openDrawPoint = false;
            $("#dataConfirm").hide()
            $("#openDrawPoint").hide()
            $("#openDrawLine").hide()
            $("#openTitle").hide()
            this.openDrawLine = false
            this.openDrawPoint = false
      if (open) {
        this.openTitle = "";
        this.$parent.closeOpenedMap(); //开放按钮
        this.drawLayerRoom();
                this.openTitle = ""
                this.$parent.closeOpenedMap() //开放按钮
                this.drawLayerRoom()
      }
    },
    //取消按钮
    stopDrawOur() {
      this.closeOurBut(true);
            this.closeOurBut(true)
    },
    //确认数据
    useMapData() {
      //返回用数据
      // console.log(this.openDrawChiose, this.nowIndex);
      this.$parent.MapDataShow = false;
            this.$parent.MapDataShow = false
      let val =
        this.openDrawChiose == "openDrawLine"
          ? "line"
          : this.openDrawChiose == "openDrawPoint"
          ? "point"
          : "notData";
                        : "notData"
      // console.log(val);
      this.$parent.backMapDataOurData(val, this.nowIndex);
            this.$parent.backMapDataOurData(val, this.nowIndex)
      // 返回后关闭操作按钮
      this.closeOurBut();
            this.closeOurBut()
      //清除绘画图层
      this.drawLayerRoom();
            this.drawLayerRoom()
    },
    //提示位置
    setTipPosition(x, y, n, m) {
      this.position.w = x + n;
      this.position.h = y + m;
            this.position.w = x + n
            this.position.h = y + m
    },
    //实时添加最上图层,为了编辑或新建路径能在最上
    drawLayerRoom() {
      let that = this;
            let that = this
      //添加绘画图层--为了在最上层--所以每次绘画要重新添加图层
      if (that.peopleLineAddlayer) {
        that.peopleLineAddlayer.getSource().clear();
        that.peopleLineAddlayer = null;
                that.peopleLineAddlayer.getSource().clear()
                that.peopleLineAddlayer = null
        that.peopleLineAddlayer = new VectorLayer({
          zIndex: 22,
          source: new VectorSource(),
        });
                })
      } else {
        that.peopleLineAddlayer = new VectorLayer({
          zIndex: 22,
          source: new VectorSource(),
        });
                })
      }
      ol2d.addLayer(this.peopleLineAddlayer);
            ol2d.addLayer(this.peopleLineAddlayer)
    },
    //选择绘画路线------↓
    getTypeSelected() {
      let that = this;
      this.beginDraw = true;
      this.draw && ol2d.removeInteraction(this.draw);
            let that = this
            this.beginDraw = true
            this.draw && ol2d.removeInteraction(this.draw)
      //再根据typeSelect的值绘制新的Interaction
      this.drawLayerRoom(); //重置绘画层
      this.addInteraction();
            this.drawLayerRoom() //重置绘画层
            this.addInteraction()
    },
    addInteraction() {
      let value = this.typeSelected,
        that = this;
      this.tipTitle = "单击左键或右键开始绘画";
                that = this
            this.tipTitle = "单击左键或右键开始绘画"
      $("#map") //提示器
        .off("mousemove")
        .mousemove(function (e) {
          if (!that.showTip) {
            that.showTip = true;
                        that.showTip = true
          }
          that.setTipPosition(e.offsetX, e.offsetY, 10, 10);
        });
      this.coordinates = [];
                    that.setTipPosition(e.offsetX, e.offsetY, 10, 10)
                })
            this.coordinates = []
      if (value !== "None") {
        this.draw = new Draw({
          source: this.DrawLayer.getSource(),
@@ -590,50 +583,50 @@
          }),
          coordinate: function (res) {
            //画线中的点
            that.coordinates.push(res.coordinate_);
            that.tipTitle = "可继续,或选择最终位置双击结束";
                        that.coordinates.push(res.coordinate_)
                        that.tipTitle = "可继续,或选择最终位置双击结束"
          },
          coordinateOver: function (res) {
            // 结束绘画 处理数据
            let d = that.doData(that.coordinates);
            that.addLinesDraw(d);
            that.$store.commit("setRotesData", d); //用vuex传最终数据
                        let d = that.doData(that.coordinates)
                        that.addLinesDraw(d)
                        that.$store.commit("setRotesData", d) //用vuex传最终数据
          },
        });
        ol2d.addInteraction(this.draw);
                })
                ol2d.addInteraction(this.draw)
      }
    },
    //处理数据
    doData(val) {
      let str = "LINESTRING(";
            let str = "LINESTRING("
      for (let k = 0; k < val.length; k++) {
        str += `${val[k][0]} ${val[k][1]}`;
                str += `${val[k][0]} ${val[k][1]}`
        if (k != val.length - 1) {
          str += ",";
                    str += ","
        }
      }
      str += ")";
      return str;
            str += ")"
            return str
    },
    addLinesDraw(val) {
      var that = this;
      var entityData = "";
      var entityArr = [];
      entityData = val.match(/\(([^)]*)\)/);
            var that = this
            var entityData = ""
            var entityArr = []
            entityData = val.match(/\(([^)]*)\)/)
      // 此时result=["(dsfasjfj3124123)", "dsfasjfj3124123"];
      if (entityData && entityData != "") {
        entityData = entityData[1].split(",");
                entityData = entityData[1].split(",")
        for (var j = 0; j < entityData.length; j++) {
          entityArr.push([
            Number(entityData[j].split(" ")[0]),
            Number(entityData[j].split(" ")[1]),
          ]);
                    ])
        }
      }
      var lineCoords = entityArr; // 线里点的集合
            var lineCoords = entityArr // 线里点的集合
      //移动位置---暂不需要
      // var view = ol2d.getView();
      // view.setCenter([
@@ -645,7 +638,7 @@
      // 要素
      var feature_LineString = new Feature({
        geometry: new LineString(lineCoords),
      });
            })
      feature_LineString.setStyle(
        new Style({
@@ -659,37 +652,37 @@
            width: 5,
          }),
        })
      );
      that.peopleLineAddlayer.getSource().addFeature(feature_LineString);
      that.butTitle = "重新绘画";
            )
            that.peopleLineAddlayer.getSource().addFeature(feature_LineString)
            that.butTitle = "重新绘画"
      // if (!this.fromView) {
      $("#dataConfirm").show(100);
            $("#dataConfirm").show(100)
      // }
      if (that.draw != null) {
        that.beginDraw = false;
        that.draw.controlDrawing(true);
        that.tipTitle = "已结束绘画,点击重新绘画清除上次内容并开始绘画";
        $("#map").unbind("mousemove");
                that.beginDraw = false
                that.draw.controlDrawing(true)
                that.tipTitle = "已结束绘画,点击重新绘画清除上次内容并开始绘画"
                $("#map").unbind("mousemove")
        // setTimeout(() => {
        this.tipTitle = "";
        this.showTip = false;
                this.tipTitle = ""
                this.showTip = false
      }
    },
    //绘画路线------↑
    //绘画点-------↓
    getTypeSelectedPoint() {
      this.tipTitle = "单击左键选择位置";
      let that = this;
      let isHaveOne = false;
      this.drawLayerRoom(); //重置绘画层
            this.tipTitle = "单击左键选择位置"
            let that = this
            let isHaveOne = false
            this.drawLayerRoom() //重置绘画层
      $("#map")
        .off("mousemove")
        .mousemove(function (e) {
          if (!that.showTip) {
            that.showTip = true;
                        that.showTip = true
          }
          that.setTipPosition(e.offsetX, e.offsetY, 10, 10);
        });
                    that.setTipPosition(e.offsetX, e.offsetY, 10, 10)
                })
      if (this.typeSelected !== "None") {
        this.draw = new Draw({
@@ -705,21 +698,21 @@
          coordinate: function (res) {},
          coordinateOverPoint: function (res) {
            if (isHaveOne) {
              return;
                            return
            }
            that.$store.commit("setPointData", res.coordinate); //用vuex传最终数据
            that.addIconMarker(res.coordinate);
            isHaveOne = true;
                        that.$store.commit("setPointData", res.coordinate) //用vuex传最终数据
                        that.addIconMarker(res.coordinate)
                        isHaveOne = true
          },
        });
        ol2d.addInteraction(this.draw);
                })
                ol2d.addInteraction(this.draw)
      }
    },
    addIconMarker(intlat) {
      let that = this;
            let that = this
      let iconFeature = new OlFeature({
        geometry: new OlGeomPoint(intlat), //绘制图形(点)
      });
            })
      iconFeature.setStyle(
        new OlStyleStyle({
          image: new OlStyleIcon({
@@ -732,17 +725,17 @@
            src: "img/dingwei/dingwei6.png",
          }),
        })
      );
      that.peopleLineAddlayer.getSource().addFeature(iconFeature);
      this.butTitlePoint = "重新标点";
            )
            that.peopleLineAddlayer.getSource().addFeature(iconFeature)
            this.butTitlePoint = "重新标点"
      if (!this.fromView) {
        $("#dataConfirm").show(100);
                $("#dataConfirm").show(100)
      }
      if (this.draw != null) {
        this.draw.controlDrawing(true);
        $("#map").unbind("mousemove");
        this.tipTitle = "";
        this.showTip = false;
                this.draw.controlDrawing(true)
                $("#map").unbind("mousemove")
                this.tipTitle = ""
                this.showTip = false
      }
    },
    //绘制点------↑
src/components/xymap/map.vue
New file
@@ -0,0 +1,103 @@
<!--
 * @Descripttion:
 * @version:
 * @Author: song
 * @Date: 2021-04-08 15:14:57
 * @LastEditors: song
 * @LastEditTime: 2021-04-24 11:59:43
-->
<template>
    <div id="xymap"></div>
</template>
<script>
import OLCesium from "olcs/OLCesium.js"
import "ol/ol.css"
import OlView from "ol/View.js"
import XYZ from "ol/source/XYZ"
import OlLayerTile from "ol/layer/Tile.js"
import OlMap from "ol/Map.js"
import {
    // eslint-disable-next-line no-unused-vars
    defaults as OlControlDefaults,
    defaults,
    // 全屏控件
    // FullScreen,
    // 比例尺控件
    // ScaleLine,
    // 缩放滚动条控件
    // eslint-disable-next-line no-unused-vars
    ZoomSlider,
    // 鼠标位置控件
    // eslint-disable-next-line no-unused-vars
    MousePosition,
    // -地图属性控件
    // Attribution,
    // 鹰眼控件
    // eslint-disable-next-line no-unused-vars
    OverviewMap,
    // 缩放到范围控件
    // eslint-disable-next-line no-unused-vars
    ZoomToExtent,
    // Rotate,
} from "ol/control.js"
export default {
    name: "Map",
    data () {
        return {
            view: "",
        }
    },
    mounted () {
        const that = this
        const ol2d = new OlMap({
            layers: [
                new OlLayerTile({
                    zIndex: 5,
                    title: "cesium切图",
                    source: new XYZ({
                        url: "/wp/{z}/{x}/{y}.png", // 注记
                    }),
                }),
            ],
            // 注意地图控件的写法
            controls: defaults().extend([
                // new FullScreen(),
                // new ScaleLine(),
                // new MousePosition(),
                // new Rotate(),
                // new Attribution()
            ]),
            target: "xymap",
            view: new OlView({
                center: [116.026801, 28.683427],
                zoom: 16,
                projection: "EPSG:4326",
            }),
        })
        var view = ol2d.getView()
        this.view = view
        ol2d.on("singleclick", (e) => {
            that.$emit('setXyValue', e.coordinate)
        })
    },
    methods: {
    },
};
</script>
<style scoped lang="scss">
#xymap {
    position: relative;
    width: 100%;
    height: 480px;
}
</style>
src/components/xymap/setxy.vue
New file
@@ -0,0 +1,35 @@
<template>
    <div @click="selectMapClick">
        <el-input readonly class="select-input-map" v-model="mapXyValue" placeholder="请选择2.5维坐标"></el-input>
    </div>
</template>
<script>
import { mapGetters } from "vuex"
export default {
    computed: {
        ...mapGetters(['mapXyValue'])
    },
    methods: {
        selectMapClick () {
            this.$store.commit('SET_SELECT_MAP', true)
        },
    },
    created () {
        this.$store.commit('SET_MAP_X_Y', '')
    },
    watch: {
        mapXyValue: {
            immediate: true,
            handler (newVal) {
                this.$emit("setData", newVal)
            }
        }
    },
}
</script>
<style>
</style>
src/main.js
@@ -58,7 +58,13 @@
//加载全局组件选地图定位点,每个页面都要使用
import chousePoint from './components/mapOncePoint/chousePoint'
Vue.component("chousePoint", chousePoint);
Vue.component("chousePoint", chousePoint)
import xymap from './components/xymap/map'
Vue.component("xymap", xymap)
import setxy from './components/xymap/setxy'
Vue.component("setxy", setxy)
new Vue({
  router,
src/page/index/layout.vue
src/store/getters.js
@@ -30,5 +30,8 @@
  pointData: (state) => state.map.pointData, //获取点
  mapServiceValue: (state) => state.map.mapServiceValue,
  notSet: (state) => state.map.notSet,
};
export default getters;
    selectMamShow: (state) => state.user.selectMamShow,
    mapXyValue: (state) => state.user.mapXyValue,
}
export default getters
src/store/modules/user.js
@@ -10,23 +10,23 @@
function addPath(ele, first) {
  const menu = website.menu;
  const propsConfig = menu.props;
    const menu = website.menu
    const propsConfig = menu.props
  const propsDefault = {
    label: propsConfig.label || 'name',
    path: propsConfig.path || 'path',
    icon: propsConfig.icon || 'icon',
    children: propsConfig.children || 'children'
  }
  const icon = ele[propsDefault.icon];
  ele[propsDefault.icon] = validatenull(icon) ? menu.iconDefault : icon;
  const isChild = ele[propsDefault.children] && ele[propsDefault.children].length !== 0;
  if (!isChild) ele[propsDefault.children] = [];
    const icon = ele[propsDefault.icon]
    ele[propsDefault.icon] = validatenull(icon) ? menu.iconDefault : icon
    const isChild = ele[propsDefault.children] && ele[propsDefault.children].length !== 0
    if (!isChild) ele[propsDefault.children] = []
  if (!isChild && first && !isURL(ele[propsDefault.path])) {
    ele[propsDefault.path] = ele[propsDefault.path] + '/index'
  } else {
    ele[propsDefault.children].forEach(child => {
      addPath(child);
            addPath(child)
    })
  }
@@ -43,29 +43,31 @@
    menuAll: getStore({name: 'menuAll'}) || [],
    token: getStore({name: 'token'}) || '',
    refreshToken: getStore({name: 'refreshToken'}) || '',
        selectMamShow: false,
        mapXyValue: '',
  },
  actions: {
    //根据用户名登录
    LoginByUsername({commit}, userInfo) {
      return new Promise((resolve, reject) => {
        loginByUsername(userInfo.tenantId, userInfo.deptId, userInfo.roleId, userInfo.username, md5(userInfo.password), userInfo.type, userInfo.key, userInfo.code).then(res => {
          const data = res.data;
                    const data = res.data
          if (data.error_description) {
            Message({
              message: data.error_description,
              type: 'error'
            })
          } else {
            commit('SET_TOKEN', data.access_token);
            commit('SET_REFRESH_TOKEN', data.refresh_token);
            commit('SET_TENANT_ID', data.tenant_id);
            commit('SET_USER_INFO', data);
            commit('DEL_ALL_TAG');
            commit('CLEAR_LOCK');
                        commit('SET_TOKEN', data.access_token)
                        commit('SET_REFRESH_TOKEN', data.refresh_token)
                        commit('SET_TENANT_ID', data.tenant_id)
                        commit('SET_USER_INFO', data)
                        commit('DEL_ALL_TAG')
                        commit('CLEAR_LOCK')
          }
          resolve();
                    resolve()
        }).catch(error => {
          reject(error);
                    reject(error)
        })
      })
    },
@@ -73,11 +75,11 @@
    LoginByPhone({commit}, userInfo) {
      return new Promise((resolve) => {
        loginByUsername(userInfo.phone, userInfo.code).then(res => {
          const data = res.data.data;
          commit('SET_TOKEN', data);
          commit('DEL_ALL_TAG');
          commit('CLEAR_LOCK');
          resolve();
                    const data = res.data.data
                    commit('SET_TOKEN', data)
                    commit('DEL_ALL_TAG')
                    commit('CLEAR_LOCK')
                    resolve()
        })
      })
    },
@@ -85,20 +87,20 @@
    LoginBySocial({commit}, userInfo) {
      return new Promise((resolve) => {
        loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state).then(res => {
          const data = res.data;
                    const data = res.data
          if (data.error_description) {
            Message({
              message: data.error_description,
              type: 'error'
            })
          } else {
            commit('SET_TOKEN', data.access_token);
            commit('SET_REFRESH_TOKEN', data.refresh_token);
            commit('SET_USER_INFO', data);
            commit('DEL_ALL_TAG');
            commit('CLEAR_LOCK');
                        commit('SET_TOKEN', data.access_token)
                        commit('SET_REFRESH_TOKEN', data.refresh_token)
                        commit('SET_USER_INFO', data)
                        commit('DEL_ALL_TAG')
                        commit('CLEAR_LOCK')
          }
          resolve();
                    resolve()
        })
      })
    },
@@ -106,11 +108,11 @@
    GetUserInfo({commit}) {
      return new Promise((resolve, reject) => {
        getUserInfo().then((res) => {
          const data = res.data.data;
          commit('SET_ROLES', data.roles);
          resolve(data);
                    const data = res.data.data
                    commit('SET_ROLES', data.roles)
                    resolve(data)
        }).catch(err => {
          reject(err);
                    reject(err)
        })
      })
    },
@@ -119,10 +121,10 @@
      window.console.log('handle refresh token')
      return new Promise((resolve, reject) => {
        refreshToken(state.refreshToken, state.tenantId).then(res => {
          const data = res.data;
          commit('SET_TOKEN', data.access_token);
          commit('SET_REFRESH_TOKEN', data.refresh_token);
          resolve();
                    const data = res.data
                    commit('SET_TOKEN', data.access_token)
                    commit('SET_REFRESH_TOKEN', data.refresh_token)
                    resolve()
        }).catch(error => {
          reject(error)
        })
@@ -132,16 +134,16 @@
    LogOut({commit}) {
      return new Promise((resolve, reject) => {
        logout().then(() => {
          commit('SET_TOKEN', '');
          commit('SET_MENU', []);
          commit('SET_MENU_ALL_NULL', []);
          commit('SET_ROLES', []);
          commit('SET_TAG_LIST', []);
          commit('DEL_ALL_TAG');
          commit('CLEAR_LOCK');
          removeToken();
          removeRefreshToken();
          resolve();
                    commit('SET_TOKEN', '')
                    commit('SET_MENU', [])
                    commit('SET_MENU_ALL_NULL', [])
                    commit('SET_ROLES', [])
                    commit('SET_TAG_LIST', [])
                    commit('DEL_ALL_TAG')
                    commit('CLEAR_LOCK')
                    removeToken()
                    removeRefreshToken()
                    resolve()
        }).catch(error => {
          reject(error)
        })
@@ -150,23 +152,23 @@
    //注销session
    FedLogOut({commit}) {
      return new Promise(resolve => {
        commit('SET_TOKEN', '');
        commit('SET_MENU_ALL_NULL', []);
        commit('SET_MENU', []);
        commit('SET_ROLES', []);
        commit('SET_TAG_LIST', []);
        commit('DEL_ALL_TAG');
        commit('CLEAR_LOCK');
        removeToken();
        removeRefreshToken();
        resolve();
                commit('SET_TOKEN', '')
                commit('SET_MENU_ALL_NULL', [])
                commit('SET_MENU', [])
                commit('SET_ROLES', [])
                commit('SET_TAG_LIST', [])
                commit('DEL_ALL_TAG')
                commit('CLEAR_LOCK')
                removeToken()
                removeRefreshToken()
                resolve()
      })
    },
    //获取顶部菜单
    GetTopMenu() {
      return new Promise(resolve => {
        getTopMenu().then((res) => {
          const data = res.data.data || [];
                    const data = res.data.data || []
          resolve(data)
        })
      })
@@ -176,13 +178,13 @@
      return new Promise(resolve => {
        getRoutes(topMenuId).then((res) => {
          const data = res.data.data
          let menu = deepClone(data);
                    let menu = deepClone(data)
          menu.forEach(ele => {
            addPath(ele, true);
          });
                        addPath(ele, true)
                    })
          commit('SET_MENU_ALL', menu)
          commit('SET_MENU', menu)
          dispatch('GetButtons');
                    dispatch('GetButtons')
          resolve(menu)
        })
      })
@@ -191,27 +193,33 @@
    GetButtons({commit}) {
      return new Promise((resolve) => {
        getButtons().then(res => {
          const data = res.data.data;
          commit('SET_PERMISSION', data);
          resolve();
                    const data = res.data.data
                    commit('SET_PERMISSION', data)
                    resolve()
        })
      })
    },
  },
  mutations: {
        SET_SELECT_MAP (state, selectMamShow) {
            state.selectMamShow = selectMamShow
        },
        SET_MAP_X_Y (state, mapXyValue) {
            state.mapXyValue = mapXyValue
        },
    SET_TOKEN: (state, token) => {
      setToken(token);
      state.token = token;
            setToken(token)
            state.token = token
      setStore({name: 'token', content: state.token})
    },
    SET_MENU_ID(state, menuId) {
      state.menuId = menuId;
            state.menuId = menuId
    },
    SET_MENU_ALL: (state, menuAll) => {
      let menu = state.menuAll;
            let menu = state.menuAll
      menuAll.forEach(ele => {
        if (!menu.find(item => item.label === ele.label && item.path === ele.path)) {
          menu.push(ele);
                    menu.push(ele)
        }
      })
      state.menuAll = menu
@@ -227,45 +235,45 @@
    },
    SET_REFRESH_TOKEN: (state, refreshToken) => {
      setRefreshToken(refreshToken)
      state.refreshToken = refreshToken;
            state.refreshToken = refreshToken
      setStore({name: 'refreshToken', content: state.refreshToken})
    },
    SET_TENANT_ID: (state, tenantId) => {
      state.tenantId = tenantId;
            state.tenantId = tenantId
      setStore({name: 'tenantId', content: state.tenantId})
    },
    SET_USER_INFO: (state, userInfo) => {
      if (validatenull(userInfo.avatar)) {
        userInfo.avatar = "/img/bg/img-logo.png";
                userInfo.avatar = "/img/bg/img-logo.png"
      }
      state.userInfo = userInfo;
            state.userInfo = userInfo
      setStore({name: 'userInfo', content: state.userInfo})
    },
    SET_ROLES: (state, roles) => {
      state.roles = roles;
            state.roles = roles
    },
    SET_PERMISSION: (state, permission) => {
      let result = [];
            let result = []
      function getCode(list) {
        list.forEach(ele => {
          if (typeof (ele) === 'object') {
            const chiildren = ele.children;
            const code = ele.code;
                        const chiildren = ele.children
                        const code = ele.code
            if (chiildren) {
              getCode(chiildren)
            } else {
              result.push(code);
                            result.push(code)
            }
          }
        })
      }
      getCode(permission);
      state.permission = {};
            getCode(permission)
            state.permission = {}
      result.forEach(ele => {
        state.permission[ele] = true;
      });
                state.permission[ele] = true
            })
      setStore({name: 'permission', content: state.permission})
    }
  }
src/styles/element-ui.scss
@@ -78,7 +78,17 @@
.myInput {
  cursor: pointer !important;
  .el-input.is-disabled .el-input__inner {
    cursor: pointer !important;
  }
}
.select-input-map {
    cursor: pointer;
    input {
        cursor: pointer !important;
    }
}
src/views/architecture/architecture.vue
@@ -28,11 +28,15 @@
          plain
          v-if="permission.architecture_delete"
          @click="handleDelete"
          >删 除
        </el-button>
                >删 除</el-button>
      </template>
      <template slot-scope="{ type, disabled }" slot="chouseJdWdForm">
        <chousePoint @setData="getMapDatas" ref="chousePointRef"></chousePoint>
            </template>
            <template slot-scope="{ type, disabled }" slot="xForm">
                <setxy @setData="setXyMapDatas"></setxy>
      </template>
    </avue-crud>
  </basic-container>
@@ -45,8 +49,8 @@
  add,
  update,
  remove,
} from "@/api/architecture/architecture";
import { mapGetters } from "vuex";
} from "@/api/architecture/architecture"
import { mapGetters } from "vuex"
export default {
  data() {
@@ -125,6 +129,20 @@
            searchSpan: 5,
            search: true,
          },
                    {
                        label: "2.5维坐标",
                        prop: "x",
                        hide: true,
                        span: 24,
                        rules: [
                            {
                                required: true,
                                message: "请选择2.5维坐标",
                            },
                        ],
                    },
          {
            label: "选择地点",
            prop: "chouseJdWd",
@@ -139,6 +157,7 @@
            //   },
            // ],
          },
          {
            label: "详细地点",
            prop: "addressName",
@@ -266,7 +285,8 @@
        ],
      },
      data: [],
    };
            selectXYShow: false
        }
  },
  computed: {
    ...mapGetters(["permission"]),
@@ -276,69 +296,70 @@
        viewBtn: this.vaildData(this.permission.architecture_view, false),
        delBtn: this.vaildData(this.permission.architecture_delete, false),
        editBtn: this.vaildData(this.permission.architecture_edit, false),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
    },
  },
  methods: {
        setXyMapDatas (res) {
            this.form["x"] = res
        },
    getMapDatas(res) {
      this.form["jd"] = res[0];
      this.form["wd"] = res[1];
      this.form["addressName"] = res[2];
            this.form["jd"] = res[0]
            this.form["wd"] = res[1]
            this.form["addressName"] = res[2]
    },
    initData() {
      getDeptTree().then((res) => {
        const column = this.findObject(this.option.column, "type");
        column.dicData = res.data.data;
      });
    },
    rowSave(row, done, loading) {
      var d = [];
            var d = []
      //var dk = [];
      for (var k in row.tpurl) {
        d.push(row.tpurl[k].value);
                d.push(row.tpurl[k].value)
      }
      // for (var ks in row.codeurl) {
      //   dk.push(row.codeurl[ks].value);
      // }
      row.tpurl = d.join(",");
            row.tpurl = d.join(",")
      //row.codeurl = dk.join(",");
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          window.console.log(error);
                    loading()
                    window.console.log(error)
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          console.log(error);
                    loading()
                    console.log(error)
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -347,20 +368,20 @@
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
                    })
                })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
                this.$message.warning("请选择至少一条数据")
                return
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -368,23 +389,25 @@
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
                    this.form = res.data.data
                    this.$store.commit('SET_MAP_X_Y', this.form.x)
          if (type == "edit") {
            let that = this;
                        let that = this
            this.$store.commit("readDom", {
              this: that,
              refName: "chousePointRef",
@@ -393,56 +416,57 @@
                  jd: this.form.jd,
                  wd: this.form.wd,
                  name: this.form.addressName,
                });
                                })
              },
            });
                        })
          }
        });
                })
      }
      done();
            done()
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
</script>
<style></style>
<style lang="scss" scoped>
</style>
src/views/hd/hd.vue
@@ -32,22 +32,18 @@
        </el-button>
      </template> -->
      <template slot-scope="{ type, disabled }" slot="lineForm">
        <getMapDataInThere
          ref="getMapData"
          id="getMapData"
          @setMapData="setMapData"
        ></getMapDataInThere>
                <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
import { getList, getDetail, add, update, remove } from "@/api/hd/hd";
import { mapGetters } from "vuex";
import { getList, getDetail, add, update, remove } from "@/api/hd/hd"
import { mapGetters } from "vuex"
// import Map from "@/components/map/main.vue";
import getMapData from "./getMapData.vue";
import getMapDataInThere from "./getMapDataInThere.vue";
import getMapData from "./getMapData.vue"
import getMapDataInThere from "./getMapDataInThere.vue"
export default {
  components: {
@@ -188,7 +184,7 @@
      data: [],
      LineData: [],
      PointData: [],
    };
        }
  },
  // watch: {
  // rotesData() {
@@ -206,81 +202,81 @@
        viewBtn: this.vaildData(this.permission.hd_view, false),
        delBtn: this.vaildData(this.permission.hd_delete, false),
        editBtn: this.vaildData(this.permission.hd_edit, false),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
    },
  },
  methods: {
    setMapData(val) {
      this.LineData = val[0];
      this.PointData = val[1];
            this.LineData = val[0]
            this.PointData = val[1]
    },
    rowSave(row, done, loading) {
      var d = [];
            var d = []
      for (var k in row.tpurl) {
        d.push(row.tpurl[k].value);
                d.push(row.tpurl[k].value)
      }
      row.tpurl = d.join(",");
      let outMapData = this.$refs.getMapData.myRulesUse();
            row.tpurl = d.join(",")
            let outMapData = this.$refs.getMapData.myRulesUse()
      if (!outMapData) {
        loading();
        return;
                loading()
                return
      }
      row["lxname"] = outMapData[0][0];
      row["lx"] = outMapData[0][1];
      row["addressname"] = outMapData[1][0];
      row["address"] = outMapData[1][1];
            row["lxname"] = outMapData[0][0]
            row["lx"] = outMapData[0][1]
            row["addressname"] = outMapData[1][0]
            row["address"] = outMapData[1][1]
      // console.log(row);
      // loading();
      // return;
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          window.console.log(error);
                    loading()
                    window.console.log(error)
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      let outMapData = this.$refs.getMapData.myRulesUse();
            let outMapData = this.$refs.getMapData.myRulesUse()
      if (!outMapData) {
        loading();
        return;
                loading()
                return
      }
      row["lxname"] = outMapData[0][0];
      row["lx"] = outMapData[0][1];
      row["addressname"] = outMapData[1][0];
      row["address"] = outMapData[1][1];
            row["lxname"] = outMapData[0][0]
            row["lx"] = outMapData[0][1]
            row["addressname"] = outMapData[1][0]
            row["address"] = outMapData[1][1]
      // console.log(row);
      // loading();
      // return;
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          console.log(error);
                    loading()
                    console.log(error)
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -289,20 +285,20 @@
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
                    })
                })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
                this.$message.warning("请选择至少一条数据")
                return
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -310,104 +306,104 @@
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    checkDom(name, fn) {
      //  声明定时器
      let that = this;
      var timer = null;
            let that = this
            var timer = null
      //  检查dom是否执行完成
      function checkDom() {
        let dom = that.$refs[name];
                let dom = that.$refs[name]
        if (dom) {
          //  执行dom加载完成后的操作
          //  清除定时器
          if (!timer) {
            clearTimeout(timer);
                        clearTimeout(timer)
          }
          if (fn) {
            //回调函数
            fn(dom);
            return;
                        fn(dom)
                        return
          } else {
            return dom;
                        return dom
          }
        } else {
          //  自我调用
          timer = setTimeout(checkDom, 100);
                    timer = setTimeout(checkDom, 100)
        }
      }
      //  首次执行
      checkDom();
            checkDom()
    },
    beforeOpen(done, type) {
      let that = this;
            let that = this
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
        });
                    this.form = res.data.data
                })
        //控制按钮不可编辑
        this.checkDom("getMapData", (dom) => {
          // dom.init(val, num, value);
          dom[type + "Init"]([
            [that.form.lxname, that.form.lx],
            [that.form.addressname, that.form.address],
          ]);
        });
                    ])
                })
      }
      done();
            done()
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
src/views/life/life.vue
@@ -28,19 +28,23 @@
          plain
          v-if="permission.life_delete"
          @click="handleDelete"
          >删 除
        </el-button>
                >删 除</el-button>
      </template>
      <template slot-scope="{ type, disabled }" slot="chouseJdWdForm">
        <chousePoint @setData="getMapDatas" ref="chousePointRef"></chousePoint>
            </template>
            <template slot-scope="{ type, disabled }" slot="xForm">
                <setxy @setData="setXyMapDatas"></setxy>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
import { getList, getDetail, add, update, remove } from "@/api/life/life";
import { mapGetters } from "vuex";
import { getList, getDetail, add, update, remove } from "@/api/life/life"
import { mapGetters } from "vuex"
export default {
  data() {
@@ -103,6 +107,20 @@
              },
            ],
          },
                    {
                        label: "2.5维坐标",
                        prop: "x",
                        hide: true,
                        span: 24,
                        rules: [
                            {
                                required: true,
                                message: "请选择2.5维坐标",
                            },
                        ],
                    },
          {
            label: "选择地点",
            prop: "chouseJdWd",
@@ -309,7 +327,7 @@
        ],
      },
      data: [],
    };
        }
  },
  computed: {
    ...mapGetters(["permission"]),
@@ -319,69 +337,74 @@
        viewBtn: this.vaildData(this.permission.life_view, false),
        delBtn: this.vaildData(this.permission.life_delete, false),
        editBtn: this.vaildData(this.permission.life_edit, false),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
    },
  },
  methods: {
        setXyMapDatas (res) {
            this.form["x"] = res
        },
    getMapDatas(res) {
      this.form["jd"] = res[0];
      this.form["wd"] = res[1];
      this.form["addressName"] = res[2];
            this.form["jd"] = res[0]
            this.form["wd"] = res[1]
            this.form["addressName"] = res[2]
    },
    initData() {
      getDeptTree().then((res) => {
        const column = this.findObject(this.option.column, "type");
        column.dicData = res.data.data;
      });
                const column = this.findObject(this.option.column, "type")
                column.dicData = res.data.data
            })
    },
    rowSave(row, done, loading) {
      var d = [];
            var d = []
      // var dk = [];
      for (var k in row.tpurl) {
        d.push(row.tpurl[k].value);
                d.push(row.tpurl[k].value)
      }
      // for (var ks in row.codeurl) {
      //   dk.push(row.codeurl[ks].value);
      // }
      row.tpurl = d.join(",");
            row.tpurl = d.join(",")
      //row.codeurl = dk.join(",");
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          window.console.log(error);
                    loading()
                    window.console.log(error)
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          console.log(error);
                    loading()
                    console.log(error)
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -390,20 +413,20 @@
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
                    })
                })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
                this.$message.warning("请选择至少一条数据")
                return
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -411,23 +434,25 @@
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
                    this.form = res.data.data
                    this.$store.commit('SET_MAP_X_Y', this.form.x)
          if (type == "edit") {
            let that = this;
                        let that = this
            this.$store.commit("readDom", {
              this: that,
              refName: "chousePointRef",
@@ -436,53 +461,53 @@
                  jd: this.form.jd,
                  wd: this.form.wd,
                  name: this.form.addressName,
                });
                                })
              },
            });
                        })
          }
        });
                })
      }
      done();
            done()
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
src/views/mechanism/mechanism.vue
@@ -28,11 +28,14 @@
          plain
          v-if="permission.mechanism_delete"
          @click="handleDelete"
          >删 除
        </el-button>
                >删 除</el-button>
      </template>
      <template slot-scope="{ type, disabled }" slot="chouseJdWdForm">
        <chousePoint @setData="getMapDatas" ref="chousePointRef"></chousePoint>
            </template>
            <template slot-scope="{ type, disabled }" slot="xForm">
                <setxy @setData="setXyMapDatas"></setxy>
      </template>
    </avue-crud>
  </basic-container>
@@ -45,9 +48,9 @@
  add,
  update,
  remove,
} from "@/api/mechanism/mechanism";
import { mapGetters } from "vuex";
import { getDeptTree } from "@/api/system/dept";
} from "@/api/mechanism/mechanism"
import { mapGetters } from "vuex"
import { getDeptTree } from "@/api/system/dept"
export default {
  data() {
@@ -179,6 +182,20 @@
              },
            ],
          },
                    {
                        label: "2.5维坐标",
                        prop: "x",
                        hide: true,
                        span: 24,
                        rules: [
                            {
                                required: true,
                                message: "请选择2.5维坐标",
                            },
                        ],
                    },
          {
            label: "选择地点",
            prop: "chouseJdWd",
@@ -322,7 +339,7 @@
        ],
      },
      data: [],
    };
        }
  },
  computed: {
    ...mapGetters(["permission"]),
@@ -332,74 +349,79 @@
        viewBtn: this.vaildData(this.permission.mechanism_view, false),
        delBtn: this.vaildData(this.permission.mechanism_delete, false),
        editBtn: this.vaildData(this.permission.mechanism_edit, false),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
    },
  },
  methods: {
        setXyMapDatas (res) {
            this.form["x"] = res
        },
    getMapDatas(res) {
      this.form["jd"] = res[0];
      this.form["wd"] = res[1];
      this.form["addressName"] = res[2];
            this.form["jd"] = res[0]
            this.form["wd"] = res[1]
            this.form["addressName"] = res[2]
    },
    initData() {
      getDeptTree().then((res) => {
        const column = this.findObject(this.option.column, "type");
        column.dicData = res.data.data;
      });
                const column = this.findObject(this.option.column, "type")
                column.dicData = res.data.data
            })
    },
    rowSave(row, done, loading) {
      row["address"] = this.form.addressName;
      row["addressName"] = this.form.addressName;
            row["address"] = this.form.addressName
            row["addressName"] = this.form.addressName
      // console.log(row);
      // loading();
      // return;
      var d = [];
            var d = []
      //var dk = [];
      for (var k in row.tpurl) {
        d.push(row.tpurl[k].value);
                d.push(row.tpurl[k].value)
      }
      // for (var ks in row.codeurl) {
      //   dk.push(row.codeurl[ks].value);
      // }
      row.tpurl = d.join(",");
            row.tpurl = d.join(",")
      //row.codeurl = dk.join(",");
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          window.console.log(error);
                    loading()
                    window.console.log(error)
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          console.log(error);
                    loading()
                    console.log(error)
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -408,20 +430,20 @@
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
                    })
                })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
                this.$message.warning("请选择至少一条数据")
                return
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -429,27 +451,28 @@
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    beforeOpen(done, type) {
      if (["add", "edit"].includes(type)) {
        this.initData();
                this.initData()
      }
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          // console.log(res.data.data);
          this.form = res.data.data;
                    this.form = res.data.data
                    this.$store.commit('SET_MAP_X_Y', this.form.x)
          if (type == "edit") {
            let that = this;
                        let that = this
            this.$store.commit("readDom", {
              this: that,
              refName: "chousePointRef",
@@ -458,53 +481,53 @@
                  jd: this.form.jd,
                  wd: this.form.wd,
                  name: this.form.addressName,
                });
                                })
              },
            });
                        })
          }
        });
                })
      }
      done();
            done()
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
src/views/road/road.vue
@@ -28,19 +28,22 @@
          plain
          v-if="permission.road_delete"
          @click="handleDelete"
          >删 除
        </el-button>
                >删 除</el-button>
      </template>
      <template slot-scope="{ type, disabled }" slot="chouseJdWdForm">
        <chousePoint @setData="getMapDatas" ref="chousePointRef"></chousePoint>
            </template>
            <template slot-scope="{ type, disabled }" slot="xForm">
                <setxy @setData="setXyMapDatas"></setxy>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
import { getList, getDetail, add, update, remove } from "@/api/road/road";
import { mapGetters } from "vuex";
import { getList, getDetail, add, update, remove } from "@/api/road/road"
import { mapGetters } from "vuex"
export default {
  data() {
@@ -78,6 +81,20 @@
              },
            ],
          },
                    {
                        label: "2.5维坐标",
                        prop: "x",
                        hide: true,
                        span: 24,
                        rules: [
                            {
                                required: true,
                                message: "请选择2.5维坐标",
                            },
                        ],
                    },
          {
            label: "选择地点",
            prop: "chouseJdWd",
@@ -135,7 +152,7 @@
        ],
      },
      data: [],
    };
        }
  },
  computed: {
    ...mapGetters(["permission"]),
@@ -145,59 +162,64 @@
        viewBtn: this.vaildData(this.permission.road_view, false),
        delBtn: this.vaildData(this.permission.road_delete, false),
        editBtn: this.vaildData(this.permission.road_edit, false),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
    },
  },
  methods: {
        setXyMapDatas (res) {
            this.form["x"] = res
        },
    getMapDatas(res) {
      this.form["jd"] = res[0];
      this.form["wd"] = res[1];
      this.form["addressName"] = res[2];
            this.form["jd"] = res[0]
            this.form["wd"] = res[1]
            this.form["addressName"] = res[2]
    },
    initData() {
      getDeptTree().then((res) => {
        const column = this.findObject(this.option.column, "type");
        column.dicData = res.data.data;
      });
                const column = this.findObject(this.option.column, "type")
                column.dicData = res.data.data
            })
    },
    rowSave(row, done, loading) {
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          window.console.log(error);
                    loading()
                    window.console.log(error)
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          console.log(error);
                    loading()
                    console.log(error)
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -206,20 +228,20 @@
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
                    })
                })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
                this.$message.warning("请选择至少一条数据")
                return
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -227,23 +249,25 @@
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
                    this.form = res.data.data
                    this.$store.commit('SET_MAP_X_Y', this.form.x)
          if (type == "edit") {
            let that = this;
                        let that = this
            this.$store.commit("readDom", {
              this: that,
              refName: "chousePointRef",
@@ -252,53 +276,53 @@
                  jd: this.form.jd,
                  wd: this.form.wd,
                  name: this.form.addressName,
                });
                                })
              },
            });
                        })
          }
        });
                })
      }
      done();
            done()
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
src/views/sp/sp.vue
@@ -28,19 +28,22 @@
          plain
          v-if="permission.sp_delete"
          @click="handleDelete"
          >删 除
        </el-button>
                >删 除</el-button>
      </template>
      <template slot-scope="{ type, disabled }" slot="chouseJdWdForm">
        <chousePoint @setData="getMapDatas" ref="chousePointRef"></chousePoint>
            </template>
            <template slot-scope="{ type, disabled }" slot="xForm">
                <setxy @setData="setXyMapDatas"></setxy>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
import { getList, getDetail, add, update, remove } from "@/api/sp/sp";
import { mapGetters } from "vuex";
import { getList, getDetail, add, update, remove } from "@/api/sp/sp"
import { mapGetters } from "vuex"
export default {
  data() {
@@ -105,6 +108,21 @@
              },
            ],
          },
                    {
                        label: "2.5维坐标",
                        prop: "x",
                        hide: true,
                        span: 24,
                        rules: [
                            {
                                required: true,
                                message: "请选择2.5维坐标",
                            },
                        ],
                    },
          {
            label: "选择地点",
            prop: "chouseJdWd",
@@ -162,7 +180,7 @@
        ],
      },
      data: [],
    };
        }
  },
  computed: {
    ...mapGetters(["permission"]),
@@ -172,59 +190,64 @@
        viewBtn: this.vaildData(this.permission.sp_view, false),
        delBtn: this.vaildData(this.permission.sp_delete, false),
        editBtn: this.vaildData(this.permission.sp_edit, false),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
    },
  },
  methods: {
        setXyMapDatas (res) {
            this.form["x"] = res
        },
    getMapDatas(res) {
      this.form["jd"] = res[0];
      this.form["wd"] = res[1];
      this.form["addressName"] = res[2];
            this.form["jd"] = res[0]
            this.form["wd"] = res[1]
            this.form["addressName"] = res[2]
    },
    initData() {
      getDeptTree().then((res) => {
        const column = this.findObject(this.option.column, "type");
        column.dicData = res.data.data;
      });
                const column = this.findObject(this.option.column, "type")
                column.dicData = res.data.data
            })
    },
    rowSave(row, done, loading) {
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          window.console.log(error);
                    loading()
                    window.console.log(error)
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          console.log(error);
                    loading()
                    console.log(error)
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -233,20 +256,20 @@
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
                    })
                })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
                this.$message.warning("请选择至少一条数据")
                return
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -254,23 +277,25 @@
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
                    this.form = res.data.data
                    this.$store.commit('SET_MAP_X_Y', this.form.x)
          if (type == "edit") {
            let that = this;
                        let that = this
            this.$store.commit("readDom", {
              this: that,
              refName: "chousePointRef",
@@ -279,53 +304,53 @@
                  jd: this.form.jd,
                  wd: this.form.wd,
                  name: this.form.addressName,
                });
                                })
              },
            });
                        })
          }
        });
                })
      }
      done();
            done()
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
src/views/vr/vr.vue
@@ -28,19 +28,22 @@
          plain
          v-if="permission.vr_delete"
          @click="handleDelete"
          >删 除
        </el-button>
                >删 除</el-button>
      </template>
      <template slot-scope="{ type, disabled }" slot="chouseJdWdForm">
        <chousePoint @setData="getMapDatas" ref="chousePointRef"></chousePoint>
            </template>
            <template slot-scope="{ type, disabled }" slot="xForm">
                <setxy @setData="setXyMapDatas"></setxy>
      </template>
    </avue-crud>
  </basic-container>
</template>
<script>
import { getList, getDetail, add, update, remove } from "@/api/vr/vr";
import { mapGetters } from "vuex";
import { getList, getDetail, add, update, remove } from "@/api/vr/vr"
import { mapGetters } from "vuex"
export default {
  data() {
@@ -91,6 +94,20 @@
              },
            ],
          },
                    {
                        label: "2.5维坐标",
                        prop: "x",
                        hide: true,
                        span: 24,
                        rules: [
                            {
                                required: true,
                                message: "请选择2.5维坐标",
                            },
                        ],
                    },
          {
            label: "选择地点",
            prop: "chouseJdWd",
@@ -148,7 +165,7 @@
        ],
      },
      data: [],
    };
        }
  },
  computed: {
    ...mapGetters(["permission"]),
@@ -158,59 +175,64 @@
        viewBtn: this.vaildData(this.permission.vr_view, false),
        delBtn: this.vaildData(this.permission.vr_delete, false),
        editBtn: this.vaildData(this.permission.vr_edit, false),
      };
            }
    },
    ids() {
      let ids = [];
            let ids = []
      this.selectionList.forEach((ele) => {
        ids.push(ele.id);
      });
      return ids.join(",");
                ids.push(ele.id)
            })
            return ids.join(",")
    },
  },
  methods: {
        setXyMapDatas (res) {
            this.form["x"] = res
        },
    getMapDatas(res) {
      this.form["jd"] = res[0];
      this.form["wd"] = res[1];
      this.form["addressName"] = res[2];
            this.form["jd"] = res[0]
            this.form["wd"] = res[1]
            this.form["addressName"] = res[2]
    },
    initData() {
      getDeptTree().then((res) => {
        const column = this.findObject(this.option.column, "type");
        column.dicData = res.data.data;
      });
                const column = this.findObject(this.option.column, "type")
                column.dicData = res.data.data
            })
    },
    rowSave(row, done, loading) {
      add(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          window.console.log(error);
                    loading()
                    window.console.log(error)
        }
      );
            )
    },
    rowUpdate(row, index, done, loading) {
      update(row).then(
        () => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          done();
                    })
                    done()
        },
        (error) => {
          loading();
          console.log(error);
                    loading()
                    console.log(error)
        }
      );
            )
    },
    rowDel(row) {
      this.$confirm("确定将选择数据删除?", {
@@ -219,20 +241,20 @@
        type: "warning",
      })
        .then(() => {
          return remove(row.id);
                    return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
                    })
                })
    },
    handleDelete() {
      if (this.selectionList.length === 0) {
        this.$message.warning("请选择至少一条数据");
        return;
                this.$message.warning("请选择至少一条数据")
                return
      }
      this.$confirm("确定将选择数据删除?", {
        confirmButtonText: "确定",
@@ -240,23 +262,25 @@
        type: "warning",
      })
        .then(() => {
          return remove(this.ids);
                    return remove(this.ids)
        })
        .then(() => {
          this.onLoad(this.page);
                    this.onLoad(this.page)
          this.$message({
            type: "success",
            message: "操作成功!",
          });
          this.$refs.crud.toggleSelection();
        });
                    })
                    this.$refs.crud.toggleSelection()
                })
    },
    beforeOpen(done, type) {
      if (["edit", "view"].includes(type)) {
        getDetail(this.form.id).then((res) => {
          this.form = res.data.data;
                    this.form = res.data.data
                    this.$store.commit('SET_MAP_X_Y', this.form.x)
          if (type == "edit") {
            let that = this;
                        let that = this
            this.$store.commit("readDom", {
              this: that,
              refName: "chousePointRef",
@@ -265,53 +289,53 @@
                  jd: this.form.jd,
                  wd: this.form.wd,
                  name: this.form.addressName,
                });
                                })
              },
            });
                        })
          }
        });
                })
      }
      done();
            done()
    },
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
            this.query = {}
            this.onLoad(this.page)
    },
    searchChange(params, done) {
      this.query = params;
      this.page.currentPage = 1;
      this.onLoad(this.page, params);
      done();
            this.query = params
            this.page.currentPage = 1
            this.onLoad(this.page, params)
            done()
    },
    selectionChange(list) {
      this.selectionList = list;
            this.selectionList = list
    },
    selectionClear() {
      this.selectionList = [];
      this.$refs.crud.toggleSelection();
            this.selectionList = []
            this.$refs.crud.toggleSelection()
    },
    currentChange(currentPage) {
      this.page.currentPage = currentPage;
            this.page.currentPage = currentPage
    },
    sizeChange(pageSize) {
      this.page.pageSize = pageSize;
            this.page.pageSize = pageSize
    },
    refreshChange() {
      this.onLoad(this.page, this.query);
            this.onLoad(this.page, this.query)
    },
    onLoad(page, params = {}) {
      this.loading = true;
            this.loading = true
      getList(
        page.currentPage,
        page.pageSize,
        Object.assign(params, this.query)
      ).then((res) => {
        const data = res.data.data;
        this.page.total = data.total;
        this.data = data.records;
        this.loading = false;
        this.selectionClear();
      });
                const data = res.data.data
                this.page.total = data.total
                this.data = data.records
                this.loading = false
                this.selectionClear()
            })
    },
  },
};
vue.config.js
@@ -29,9 +29,9 @@
            "/api": {
                //本地服务接口地址
                // target: "http://192.168.0.107:80",
                // target: "http://192.168.0.102:82",
                target: "http://192.168.0.110:82",
                // target: "http://171.34.197.243:790",
                target: "http://171.34.197.243:782", //服务器
                // target: "http://171.34.197.243:782", //服务器
                // target: 'http://localhost:82',
                //远程演示服务地址,可用于直接启动项目
                //target: 'https://saber.bladex.vip/api',