liuxiaolong
2019-05-06 acc45d2ece02563964d7b8a22ff0c40bd8358889
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<template>
  <div>
    <div class="flex-box">
      <div class="pr5" v-show="!buttonVisible" style="font-size: 13px;margin-top: 4px">
        <span v-for="(val,index) in thisAreaData" :key="index">{{val.name}},</span>
      </div>
      <el-button :type="thisAreaData&&thisAreaData.length>0?'text':'info'" size="mini" class="pr5 pl5"
                 @click="onButtonClick(thisAreaData)">
        {{thisAreaData && thisAreaData.length > 0 ? updateLabel : setLabel}}
      </el-button>
    </div>
    <!-- 绘制弹窗 start -->
    <el-dialog
      title="设定区域"
      class="trajectoryDialog"
      :visible.sync="dialogVisible"
      width="80%"
      :show-close="false"
      append-to-body
      :before-close="handleClose">
      <div style="height:700px;">
        <!-- <h3 class="lineFrame-title mt5"><span class="lineFrame-title-icon"></span>轨迹信息</h3>  -->
        <areaMapeControl
          :showControlBtn="true"
          :showCameras="true"
          :fromeId="fromeIdAreaMap"
          :openTimer="openTimer"
          :thisAreaData="thisAreaData"
          @areaData="getAreaData"
          @dialogClose="closedialog"
          :newId = "getRandomId"
        ></areaMapeControl>
      </div>
    </el-dialog>
    <!-- 地图绘制弹窗 结束 -->
  </div>
</template>
 
<script>
  import areaMapeControl from "@/components/common/areaMapeControl";
  import uuidv1 from 'uuid/v1';
 
  export default {
    props: ["setLabel", "updateLabel", "areas"],
    data () {
      return {
        dialogVisible: false,
        buttonVisible: true,
 
        fromeIdAreaMap: ',',
        openTimer: '',
        thisAreaData: []
      }
    },
    components: {
      areaMapeControl
    },
    computed:{
      getRandomId(){
          return  "guid" +  uuidv1()
      }
    },
    methods: {
      init(areas){
        this.thisAreaData = areas || []
 
        let ids = ',';
        for (let area of this.thisAreaData) {
          ids += area.id + ",";
        }
        this.fromeIdAreaMap = ids;
 
        if (ids.length == 1) {
          this.buttonVisible = true;
        } else {
          this.buttonVisible = false;
        }
      },
      onButtonClick(thisAreaData){
        this.dialogVisible = true;
        this.openTimer = new Date().getTime() + '';
      },
      //关闭弹窗
      closedialog(str){
        this.dialogVisible = false;
      },
      handleClose(done) {
        this.$confirm('确认关闭?')
          .then(_ => {
            done();
          })
          .catch(_ => {
          });
      },
      getAreaData(json){
        //子组件回值赋值
        this.fromeIdAreaMap = json.area_ids;
        this.thisAreaData = json.areaData;
        this.dialogVisible = false;
        this.$emit('update:areas', json.areaData);
      },
    },
    watch: {
      areas: {
        handler(val, oldVal){
          if (val !== oldVal) {
            this.init(val);
          }
        },
        deep: true
      },
    },
  }
</script>