guoshipeng
2023-07-06 6b2741434cb2be708a869505440f9f4efc8e6fd1
src/views/list/devicesBasic.vue
@@ -1,747 +1,948 @@
<template>
  <div>
    <a-card :bordered="false" style="margin-top:24px">
    <a-card :bordered="false" style="margin-top: 24px">
      <div class="tableList">
        <div class="tableListForm">
          <a-form-model @submit="handleSearch" layout="horizontal">
              <a-row :gutter="[8,0]">
            <a-row :gutter="[8, 0]">
              <a-col :span="10">
              <a-button
                <a-button
                  icon="plus"
                  type="primary"
                  @click="() => this.handleModalVisible(true)"
                  style="margin-left: 25px;"
              >新建
              </a-button>
                  style="margin-left: 25px"
                  >新建
                </a-button>
              </a-col>
                <a-col :span="4">
              <a-form-model-item  :labelCol="{span:2}" :wrapperCol="{span:10}">
                <a-select
              <a-col :span="4">
                <a-form-model-item
                  :labelCol="{ span: 2 }"
                  :wrapperCol="{ span: 10 }"
                >
                  <a-select
                    placeholder="选择组织(输入名称搜索)"
                    allow-clear
                    show-search
                    style="width:200px"
                    style="width: 200px"
                    :filter-option="filterOption"
                    @change="handleChange"
                >
                  <a-select-option v-for="(item,index) in orgData" :key="index" :value="item.id">
                    {{ item.name }}
                  </a-select-option>
                </a-select>
              </a-form-model-item>
                </a-col>
                <a-col :span="4">
                  <a-form-model-item  :labelCol="{span:2}" :wrapperCol="{span:10}">
                    <a-select
                        placeholder="选择站点(输入名称搜索)"
                        allow-clear
                        show-search
                        style="width:200px"
                        :filter-option="filterOption"
                        @change="handleChange1"
                  >
                    <a-select-option
                      v-for="(item, index) in orgData"
                      :key="index"
                      :value="item.id"
                    >
                      <a-select-option
                          v-for="(item,index) in MonitorPoints"
                          :key="index"
                          :value="item.id"
                      {{ item.name }}
                    </a-select-option>
                  </a-select>
                </a-form-model-item>
              </a-col>
              <a-col :span="4">
                <a-form-model-item
                  :labelCol="{ span: 2 }"
                  :wrapperCol="{ span: 10 }"
                >
                  <a-select
                    placeholder="选择站点(输入名称搜索)"
                    allow-clear
                    show-search
                    style="width: 200px"
                    :filter-option="filterOption"
                    @change="handleChange1"
                  >
                    <a-select-option
                      v-for="(item, index) in MonitorPoints"
                      :key="index"
                      :value="item.id"
                      >{{ item.name }}
                      </a-select-option>
                    </a-select>
                  </a-form-model-item>
                </a-col>
                <a-col :span="6">
              <a-form-item
                  :labelCol="{span:2}" :wrapperCol="{span:12}"
                    </a-select-option>
                  </a-select>
                </a-form-model-item>
              </a-col>
              <a-col :span="6">
                <a-form-item
                  :labelCol="{ span: 2 }"
                  :wrapperCol="{ span: 12 }"
                  fieldDecoratorId="name"
                  v-bind="searchFormLayout">
                <a-input v-model="serch.name" placeholder="请输入设备名称或者mac号"/>
              </a-form-item>
                </a-col>
                  v-bind="searchFormLayout"
                >
                  <a-input
                    v-model="serch.name"
                    placeholder="请输入设备名称或者mac号"
                  />
                </a-form-item>
              </a-col>
            </a-row>
          </a-form-model>
        </div>
        <av-standard-table
            :dataSource="dataSource"
            :selectedRows="selectedRows"
            :columns="columns"
            :paginationProps="pagination"
            :loading="tableLoading"
            @tableChange="handlerTableChange"
            @selectChange="handlerSelectChange"
          :dataSource="dataSource"
          :selectedRows="selectedRows"
          :columns="columns"
          :paginationProps="pagination"
          :loading="tableLoading"
          @tableChange="handlerTableChange"
          @selectChange="handlerSelectChange"
        ></av-standard-table>
      </div>
    </a-card>
    <a-modal
        title="添加-设备"
        destroyOnClose
        :visible="visibleCreateModal"
        @ok="handleCreateModalOk"
        @cancel="handleCreateModalCancel"
        okText="保存"
        class="modalStyle"
      title="添加-设备"
      destroyOnClose
      :visible="visibleCreateModal"
      @ok="handleCreateModalOk"
      @cancel="handleCreateModalCancel"
      okText="保存"
      class="modalStyle"
    >
      <a-row :gutter="[8,0]" style="border:0px">
      <a-col :span="12">
        <a-button  style="background-color: #00a0e9; color: white" @click="showMap1()"> 经纬度坐标配置 </a-button>
      </a-col>
      <a-row :gutter="[8, 0]" style="border: 0px">
        <a-col :span="12">
          <a-button
            style="background-color: #00a0e9; color: white"
            @click="showMap1()"
          >
            经纬度坐标配置
          </a-button>
        </a-col>
      </a-row>
      <a-form style="margin:0px;padding:0px" :form="form">
        <a-row :gutter="[8,0]" style="border:0px">
      <a-form style="margin: 0px; padding: 0px" :form="form">
        <a-row :gutter="[8, 0]" style="border: 0px">
          <!-- wrapperCol 内容区大小(指input宽度)  labelCol 左边留白大小  两者之和不能》24-->
          <a-col :span="12">
            <a-form-item has-feedback :labelCol="{ span: 5 }" :wrapperCol="{ span: 19 }" label="名称">
            <a-form-item
              has-feedback
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="名称"
            >
              <a-input
                  placeholder="设备名称"
                  type="string"
                  v-decorator="['deviceName', { rules: [{ required: true}] }]"
                placeholder="设备名称"
                type="string"
                v-decorator="['deviceName', { rules: [{ required: true }] }]"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="mac"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="mac"
            >
              <a-input
                  placeholder="mac地址"
                  type="string"
                  v-decorator="['mac', { rules: [{ required: true }] }]"
                placeholder="mac地址"
                type="string"
                v-decorator="['mac', { rules: [{ required: true }] }]"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="经度">
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="经度"
            >
              <a-input
                  v-decorator="['jingdu', { rules: [{ required: true},{message: '请输入正确的经度',pattern:/^[+-]?\d+(\.\d+)?$/}]}]"
                  placeholder="-180~180之间"
                  :disabled="true"
                  type="string"
                v-decorator="[
                  'jingdu',
                  {
                    rules: [
                      { required: true },
                      {
                        message: '请输入正确的经度',
                        pattern: /^[+-]?\d+(\.\d+)?$/,
                      },
                    ],
                  },
                ]"
                placeholder="-180~180之间"
                :disabled="true"
                type="string"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
          <a-form-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span:19 }" label="纬度">
            <a-input
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="纬度"
            >
              <a-input
                :disabled="true"
                v-decorator="['weidu', { rules: [{ required: true},{message: '请输入正确的纬度',pattern:/^[+-]?\d+(\.\d+)?$/}]}]"
                v-decorator="[
                  'weidu',
                  {
                    rules: [
                      { required: true },
                      {
                        message: '请输入正确的纬度',
                        pattern: /^[+-]?\d+(\.\d+)?$/,
                      },
                    ],
                  },
                ]"
                placeholder="-90~90之间"
                type="string"
            />
          </a-form-item>
        </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="设备型号"
            >
              <a-select
                  placeholder="选择型号(输入名称搜索)"
                  type="string"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                  v-decorator="['model', { rules: [{ required: true }] }]"
              >
                <a-select-option v-for="(item,index) in model" :key="index" :value = 'item.id'>{{ item.name }}</a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="维护人"
            >
              <a-select
                  placeholder="选择维护人"
                  mode="multiple"
                  type="string"
                  allow-clear
                  v-decorator="['operator', { rules: [{ required: false }] }]"
              >
                <a-select-option
                    v-for="(item,index) in operators"
                    :key="index"
                    :value = 'item.id'
                >{{ item.user_name }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="生产时间"
            >
              <a-date-picker
                  @change="onStartTimeChange"
                  v-decorator="['createTime', { rules: [{ required: false }] }]"
                  format="YYYY-MM-DD HH:mm:ss"
                  :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                  style="width:299px"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                :wrapperCol="{ span: 19 }"
                has-feedback
                label="安装时间"
            >
              <a-date-picker
                  @change="onEndTimeChange"
                  v-decorator="['updateTime', { rules: [{ required: false }] }]"
                  format="YYYY-MM-DD HH:mm:ss"
                  :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                  style="width:299px"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="监控站点"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备型号"
            >
              <a-select
                  type="string"
                  placeholder="选择监控站点(输入名称搜索)"
                  v-decorator="['monitorPoint', { rules: [{ required: true }] }]"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
              >
                <a-select-option
                    v-for="(item,index) in MonitorPoints"
                    :key="index"
                    :value = 'item.id'
                >{{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="行业">
              <a-select
                  placeholder="选择所属行业"
                  mode="multiple"
                  v-decorator="['profession', { rules: [{ required: true }] }]"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
              >
                <a-select-option
                    v-for="(item,index) in Professions"
                    :key="index"
                    :value="item.dataKey"
                >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="设备工艺"
                placeholder="选择型号(输入名称搜索)"
                type="string"
            >
              <a-select
                  placeholder="选择设备工艺"
                  v-decorator="['tech', { rules: [{ required: false }] }]"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                  @change="changeTech"
                allow-clear
                :filter-option="filterOption"
                show-search
                v-decorator="['model', { rules: [{ required: true }] }]"
              >
                <a-select-option v-for="(item,index) in Techs" :key="index" :value="item.dataKey">{{ item.dataValue }}</a-select-option>
                <a-select-option
                  v-for="(item, index) in model"
                  :key="index"
                  :value="item.id"
                  >{{ item.name }}</a-select-option
                >
              </a-select>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="设备检测器"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="维护人"
            >
              <a-select
                  placeholder="选择设备检测器"
                  v-decorator="['detector', { rules: [{ required: false }] }]"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                placeholder="选择维护人"
                mode="multiple"
                type="string"
                allow-clear
                v-decorator="['operator', { rules: [{ required: false }] }]"
              >
                <a-select-option
                    v-for="(item,index) in this.Detectors"
                    :key="index"
                    :value="item.dataKey"
                >{{ item.dataValue }}
                  v-for="(item, index) in operators"
                  :key="index"
                  :value="item.id"
                  >{{ item.user_name }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]"  v-if="techFlag">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="烟道面积(m²)">
              <a-input
                  v-decorator="['area', { rules: [{ required: false }] }]"
                  placeholder="烟道面积"
                  type="string"
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="生产时间"
            >
              <a-date-picker
                @change="onStartTimeChange"
                v-decorator="['createTime', { rules: [{ required: false }] }]"
                format="YYYY-MM-DD HH:mm:ss"
                :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                style="width: 299px"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span:19 }" label="烟道风速(m/s)">
              <a-input
                  v-decorator="['speed', { rules: [{ required: false }] }]"
                  placeholder="烟道风速"
                  type="string"
            <a-form-item
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              has-feedback
              label="安装时间"
            >
              <a-date-picker
                @change="onEndTimeChange"
                v-decorator="['updateTime', { rules: [{ required: false }] }]"
                format="YYYY-MM-DD HH:mm:ss"
                :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                style="width: 299px"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
          <a-col :span="12">
            <a-form-item :labelCol="{ span: 5 }" :wrapperCol="{ span: 19 }" label="政府站点位置" >
              <a-cascader :options="areaData" placeholder="双击选择城市(为显示城市下的政府站点)" change-on-select @change="positionLevel" labelInValue/>
            </a-form-item>
          </a-col>
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                :wrapperCol="{ span: 19 }"
                label="政府站点"
                has-feedback
                prop="position"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="监控站点"
            >
              <a-select
                  placeholder="政府站点"
                  v-decorator="['govMonitor', { rules: [{ required: false }] }]"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                type="string"
                placeholder="选择监控站点(输入名称搜索)"
                v-decorator="['monitorPoint', { rules: [{ required: true }] }]"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                    v-for="(item,index) in govMonitors"
                    :key="index"
                    :value="item.guid"
                >{{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
          <a-col :span="12">
            <a-form-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="设备采购商"
            >
              <a-select
                  placeholder="选择设备采购商"
                  v-decorator="['purchaser', { rules: [{ required: false }] }]"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
              >
                <a-select-option
                    v-for="(item,index) in this.Purchasers"
                    :key="index"
                    :value="item.dataKey"
                >{{ item.dataValue }}
                  v-for="(item, index) in MonitorPoints"
                  :key="index"
                  :value="item.id"
                  >{{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
                has-feedback
                :labelCol="{ span: 5 }"
                :wrapperCol="{ span: 19 }"
                label="行政区划"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="行业"
            >
              <a-input
                  disabled="disabled"
                  v-decorator="['town', { rules: [{ required: true, message: '行政区划不能为空' }] }]"
                  placeholder="设备安装的行政区划(镇/街道)"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item has-feedback :labelCol="{ span: 5 }" :wrapperCol="{ span: 19 }" label="具体地址">
              <a-input
                  placeholder="具体地址"
                  type="string"
                  v-decorator="['address', { rules: [{ required: false}] }]"
              />
              <a-select
                placeholder="选择所属行业"
                mode="multiple"
                v-decorator="['profession', { rules: [{ required: true }] }]"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                  v-for="(item, index) in Professions"
                  :key="index"
                  :value="item.dataKey"
                  >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备工艺"
              type="string"
            >
              <a-select
                placeholder="选择设备工艺"
                v-decorator="['tech', { rules: [{ required: false }] }]"
                allow-clear
                :filter-option="filterOption"
                show-search
                @change="changeTech"
              >
                <a-select-option
                  v-for="(item, index) in Techs"
                  :key="index"
                  :value="item.dataKey"
                  >{{ item.dataValue }}</a-select-option
                >
              </a-select>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备检测器"
            >
              <a-select
                placeholder="选择设备检测器"
                v-decorator="['detector', { rules: [{ required: false }] }]"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                  v-for="(item, index) in this.Detectors"
                  :key="index"
                  :value="item.dataKey"
                  >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8, 0]" v-if="techFlag">
          <a-col :span="12">
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="烟道面积(m²)"
            >
              <a-input
                v-decorator="['area', { rules: [{ required: false }] }]"
                placeholder="烟道面积"
                type="string"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="烟道风速(m/s)"
            >
              <a-input
                v-decorator="['speed', { rules: [{ required: false }] }]"
                placeholder="烟道风速"
                type="string"
              />
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-item
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="政府站点位置"
            >
              <a-cascader
                :options="areaData"
                placeholder="双击选择城市(为显示城市下的政府站点)"
                change-on-select
                @change="positionLevel"
                labelInValue
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="政府站点"
              has-feedback
              prop="position"
            >
              <a-select
                placeholder="政府站点"
                v-decorator="['govMonitor', { rules: [{ required: false }] }]"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                  v-for="(item, index) in govMonitors"
                  :key="index"
                  :value="item.guid"
                  >{{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备采购商"
            >
              <a-select
                placeholder="选择设备采购商"
                v-decorator="['purchaser', { rules: [{ required: false }] }]"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                  v-for="(item, index) in this.Purchasers"
                  :key="index"
                  :value="item.dataKey"
                  >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              has-feedback
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="行政区划"
            >
              <a-input
                disabled="disabled"
                v-decorator="[
                  'town',
                  { rules: [{ required: true, message: '行政区划不能为空' }] },
                ]"
                placeholder="设备安装的行政区划(镇/街道)"
              />
            </a-form-item>
          </a-col>
          <a-col :span="12">
            <a-form-item
              has-feedback
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="具体地址"
            >
              <a-input
                placeholder="具体地址"
                type="string"
                v-decorator="['address', { rules: [{ required: false }] }]"
              />
            </a-form-item>
          </a-col>
        </a-row>
      </a-form>
      <pick-coordinate1 v-if="addMapFlag" :typeOperation="typeOperation"  @mapFlag1="receiveFlag1" @sendLonLat="receiveLomLat"/>
<!--      <pick-coordinate :mapUrl="mapUrl" :mapRecord="mapRecord" v-if="!mapFlag"  @mapFlag="receiveFlag"/>-->
      <pick-coordinate1
        v-if="addMapFlag"
        :typeOperation="typeOperation"
        @mapFlag1="receiveFlag1"
        @sendLonLat="receiveLomLat"
      />
      <!--      <pick-coordinate :mapUrl="mapUrl" :mapRecord="mapRecord" v-if="!mapFlag"  @mapFlag="receiveFlag"/>-->
    </a-modal>
    <a-modal
        title="编辑-设备"
        destroyOnClose
        :visible="editTaskFormVisible"
        @ok="handleEditModalOk"
        @cancel="handleEditModalCancel"
        okText="保存"
        class="modalStyle"
      title="编辑-设备"
      destroyOnClose
      :visible="editTaskFormVisible"
      @ok="handleEditModalOk"
      @cancel="handleEditModalCancel"
      okText="保存"
      class="modalStyle"
    >
      <a-form-model style="margin:0px;padding:0px"
                    :model="editBeforeData"
                    :rules="rules"
                    ref="editRulesForm"
      <a-form-model
        style="margin: 0px; padding: 0px"
        :model="editBeforeData"
        :rules="rules"
        ref="editRulesForm"
      >
        <a-row :gutter="[8,0]" style="border:0px">
        <a-row :gutter="[8, 0]" style="border: 0px">
          <a-col :span="12">
            <a-button  style="background-color: #00a0e9; color: white" @click="showMap2()"> 经纬度坐标修改 </a-button>
            <a-button
              style="background-color: #00a0e9; color: white"
              @click="showMap2()"
            >
              经纬度坐标修改
            </a-button>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]" style="border:0px">
        <a-row :gutter="[8, 0]" style="border: 0px">
          <!-- wrapperCol 内容区大小(指input宽度)  labelCol 左边留白大小  两者之和不能》24-->
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="名称" prop="name">
              <a-input v-model="editBeforeData.name" placeholder="设备名称"/>
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="名称"
              prop="name"
            >
              <a-input v-model="editBeforeData.name" placeholder="设备名称" />
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="mac" prop="mac">
              <a-input v-model="editBeforeData.mac" placeholder="mac地址"/>
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="mac"
              prop="mac"
            >
              <a-input v-model="editBeforeData.mac" placeholder="mac地址" />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="经度" prop="longitude">
              <a-input disabled="disabled" v-model="editBeforeData.longitude" placeholder="-180~180之间" type="string"/>
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="经度"
              prop="longitude"
            >
              <a-input
                disabled="disabled"
                v-model="editBeforeData.longitude"
                placeholder="-180~180之间"
                type="string"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span:19 }" label="纬度" prop="latitude">
              <a-input  disabled="disabled" v-model="editBeforeData.latitude" placeholder="-90~90之间" type="string"/>
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="纬度"
              prop="latitude"
            >
              <a-input
                disabled="disabled"
                v-model="editBeforeData.latitude"
                placeholder="-90~90之间"
                type="string"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="设备型号" prop="version.id">
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备型号"
              prop="version.id"
            >
              <a-select
                  v-model='editBeforeData.version.id'
                  placeholder="选择型号(输入名称搜索)"
                  type="string"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                v-model="editBeforeData.version.id"
                placeholder="选择型号(输入名称搜索)"
                type="string"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option v-for="(item,index) in this.model" :key="index" :value="item.id">{{ item.name }}</a-select-option>
                <a-select-option
                  v-for="(item, index) in this.model"
                  :key="index"
                  :value="item.id"
                  >{{ item.name }}</a-select-option
                >
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="维护人">
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="维护人"
            >
              <a-select
                  v-model="selectMaintainer"
                  placeholder="选择维护人"
                  mode="multiple"
                  type="string"
                  allow-clear
                  option-label-prop="lable"
                v-model="selectMaintainer"
                placeholder="选择维护人"
                mode="multiple"
                type="string"
                allow-clear
                option-label-prop="lable"
              >
                <a-select-option
                    v-for="(item,index) in this.operators"
                    :key = "index"
                    :value = "item.id"
                    :lable="item.user_name"
                >{{ item.user_name }}
                  v-for="(item, index) in this.operators"
                  :key="index"
                  :value="item.id"
                  :lable="item.user_name"
                  >{{ item.user_name }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-model-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="生产时间"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="生产时间"
            >
              <a-date-picker
                  v-model="editBeforeData.createTime"
                  @change="onStartTimeChange"
                  format="YYYY-MM-DD HH:mm:ss"
                  :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                  style="width:299px"
                v-model="editBeforeData.createTime"
                @change="onStartTimeChange"
                format="YYYY-MM-DD HH:mm:ss"
                :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                style="width: 299px"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item
                :labelCol="{ span: 5 }"
                :wrapperCol="{ span: 19 }"
                has-feedback
                label="安装时间"
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              has-feedback
              label="安装时间"
            >
              <a-date-picker @change="onEndTimeChange" v-model="editBeforeData.installTime"
                             format="YYYY-MM-DD HH:mm:ss" :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                             style="width:299px"
              <a-date-picker
                @change="onEndTimeChange"
                v-model="editBeforeData.installTime"
                format="YYYY-MM-DD HH:mm:ss"
                :show-time="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
                style="width: 299px"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-model-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="监控站点"
                prop="monitorPoint.id"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="监控站点"
              prop="monitorPoint.id"
            >
              <a-select
                  v-model="editBeforeData.monitorPoint.id"
                  type="string"
                  placeholder="选择监控站点(输入名称搜索)"
                  allow-clear
                  :filter-option="filterOption"
                  @change="resetMonitor"
                  show-search
              >
                <a-select-option
                    v-for="(item,index) in this.MonitorPoints"
                    :key="index"
                    :value="item.id"
                >{{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="行业" prop="profession">
              <a-select
                  v-model="editBeforeData.profession.id"
                  placeholder="选择所属行业"
                  mode="multiple"
                  option-label-prop="lable"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
              >
                <a-select-option
                    v-for="(item,index) in this.Professions"
                    :key="index"
                    :value="item.dataKey"
                    :lable="item.dataValue"
                >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
          <a-col :span="12">
            <a-form-model-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="设备工艺"
                v-model="editBeforeData.monitorPoint.id"
                type="string"
                placeholder="选择监控站点(输入名称搜索)"
                allow-clear
                :filter-option="filterOption"
                @change="resetMonitor"
                show-search
              >
                <a-select-option
                  v-for="(item, index) in this.MonitorPoints"
                  :key="index"
                  :value="item.id"
                  >{{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="行业"
              prop="profession"
            >
              <a-select
                  v-model="editBeforeData.tech.id"
                  placeholder="选择设备工艺"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                  @change="editTech"
                v-model="editBeforeData.profession.id"
                placeholder="选择所属行业"
                mode="multiple"
                option-label-prop="lable"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                  v-for="(item, index) in this.Professions"
                  :key="index"
                  :value="item.dataKey"
                  :lable="item.dataValue"
                  >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备工艺"
              type="string"
            >
              <a-select
                v-model="editBeforeData.tech.id"
                placeholder="选择设备工艺"
                allow-clear
                :filter-option="filterOption"
                show-search
                @change="editTech"
              >
                .
                <a-select-option v-for="(item,index) in this.Techs"
                                 :key="index"
                                 :value="Number(item.dataKey)">{{ item.dataValue }}</a-select-option>
                <a-select-option
                  v-for="(item, index) in this.Techs"
                  :key="index"
                  :value="Number(item.dataKey)"
                  >{{ item.dataValue }}</a-select-option
                >
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="设备检测器"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备检测器"
            >
              <a-select
                  v-model="editBeforeData.detector.id"
                  placeholder="选择设备检测器"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                v-model="editBeforeData.detector.id"
                placeholder="选择设备检测器"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                    v-for="(item,index) in this.Detectors"
                    :key="index"
                    :value="Number(item.dataKey)"
                >{{ item.dataValue }}
                  v-for="(item, index) in this.Detectors"
                  :key="index"
                  :value="Number(item.dataKey)"
                  >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]"  v-if="editTechFlag">
        <a-row :gutter="[8, 0]" v-if="editTechFlag">
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span: 19 }" label="烟道面积(m²)">
            <a-form-model-item
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="烟道面积(m²)"
            >
              <a-input
                  v-model="editBeforeData.extand.area"
                  placeholder="烟道面积"
                  type="string"
                v-model="editBeforeData.extand.area"
                placeholder="烟道面积"
                type="string"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" has-feedback :wrapperCol="{ span:19 }" label="烟道风速(m/s)">
              <a-input
                  v-model="editBeforeData.extand.speed"
                  placeholder="烟道风速"
                  type="string"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
          <a-col :span="12">
            <a-form-model-item :labelCol="{ span: 5 }" :wrapperCol="{ span: 19 }" label="位置" >
              <a-cascader :options="areaData" v-model="editBeforeData.positionBack" placeholder="双击选择城市(为显示城市下的政府站点)" change-on-select @change="positionLevel" labelInValue/>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item
                :labelCol="{ span: 5 }"
                :wrapperCol="{ span: 19 }"
                label="政府站点"
                has-feedback
                prop="position"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="烟道风速(m/s)"
            >
              <a-input
                v-model="editBeforeData.extand.speed"
                placeholder="烟道风速"
                type="string"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-model-item
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="位置"
            >
              <a-cascader
                :options="areaData"
                v-model="editBeforeData.positionBack"
                placeholder="双击选择城市(为显示城市下的政府站点)"
                change-on-select
                @change="positionLevel"
                labelInValue
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="政府站点"
              has-feedback
              prop="position"
            >
              <a-select
                  placeholder="政府站点"
                  v-model="editBeforeData.guid"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                placeholder="政府站点"
                v-model="editBeforeData.guid"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                    v-for="(item,index) in govMonitors"
                    :key="index"
                    :value="item.guid"
                >{{ item.name }}
                  v-for="(item, index) in govMonitors"
                  :key="index"
                  :value="item.guid"
                  >{{ item.name }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
        </a-row>
        <a-row :gutter="[8,0]">
        <a-row :gutter="[8, 0]">
          <a-col :span="12">
            <a-form-model-item
                :labelCol="{ span: 5 }"
                has-feedback
                :wrapperCol="{ span: 19 }"
                label="设备采购商"
              :labelCol="{ span: 5 }"
              has-feedback
              :wrapperCol="{ span: 19 }"
              label="设备采购商"
            >
              <a-select
                  v-model="editBeforeData.purchaser.id"
                  placeholder="选择设备采购商"
                  allow-clear
                  :filter-option="filterOption"
                  show-search
                v-model="editBeforeData.purchaser.id"
                placeholder="选择设备采购商"
                allow-clear
                :filter-option="filterOption"
                show-search
              >
                <a-select-option
                    v-for="(item,index) in this.Purchasers"
                    :key="index"
                    :value = "Number(item.dataKey)"
                >{{ item.dataValue }}
                  v-for="(item, index) in this.Purchasers"
                  :key="index"
                  :value="Number(item.dataKey)"
                  >{{ item.dataValue }}
                </a-select-option>
              </a-select>
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item
                has-feedback
                :labelCol="{ span: 5 }"
                :wrapperCol="{ span: 19 }"
                label="具体地址"
              has-feedback
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="具体地址"
            >
              <a-input
                  v-model="editBeforeData.address"
                  placeholder="设备安装的具体地址"
                v-model="editBeforeData.address"
                placeholder="设备安装的具体地址"
              />
            </a-form-model-item>
          </a-col>
          <a-col :span="12">
            <a-form-model-item
                has-feedback
                :labelCol="{ span: 5 }"
                :wrapperCol="{ span: 19 }"
                label="行政区划"
                prop="town.townName"
              has-feedback
              :labelCol="{ span: 5 }"
              :wrapperCol="{ span: 19 }"
              label="行政区划"
              prop="town.townName"
            >
              <a-input
                  disabled="disabled"
                  v-model="editBeforeData.town.townName"
                  placeholder="设备安装的行政区划(镇/街道)"
                disabled="disabled"
                v-model="editBeforeData.town.townName"
                placeholder="设备安装的行政区划(镇/街道)"
              />
            </a-form-model-item>
          </a-col>
        </a-row>
      </a-form-model>
      <pick-coordinate1 v-if="editMapFlag" :typeOperation="typeOperation"  :lnglat="editBeforeData.latitude+ ',' + editBeforeData.longitude" @mapFlag1="receiveFlag2" @editLonLat="receiveLomLat1"/>
      <pick-coordinate1
        v-if="editMapFlag"
        :typeOperation="typeOperation"
        :lnglat="editBeforeData.latitude + ',' + editBeforeData.longitude"
        @mapFlag1="receiveFlag2"
        @editLonLat="receiveLomLat1"
      />
    </a-modal>
    <pick-coordinate :mapUrl="mapUrl" :mapRecord="mapRecord" v-if="!mapFlag"  @mapFlag="receiveFlag"/>
    <Calibration :caliRecord="caliRecord"  :wFlag="visibleFlag" @cFlag="turnFlag"/>
    <pick-coordinate
      :mapUrl="mapUrl"
      :mapRecord="mapRecord"
      v-if="!mapFlag"
      @mapFlag="receiveFlag"
    />
    <Calibration
      :caliRecord="caliRecord"
      :wFlag="visibleFlag"
      @cFlag="turnFlag"
    />
  </div>
</template>
@@ -1091,6 +1292,7 @@
    //初始加载所有工艺
    get("device/techs", {})
        .then(res => {
          console.log(res,'res');
          this.Techs = res.data.data;
        })
        .catch(err => {
@@ -1609,6 +1811,7 @@
  private mapUrl:string = 'device/update'
  private showMap(flag: boolean, record: any) {
    console.log(record,'record');
    this.mapFlag = flag
    this.mapRecord = record
  }
@@ -1754,6 +1957,4 @@
    min-height: 0;
  }
}
</style>