管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-03-18 35889caf6315da8f72aec921069547af462b479a
数据发布页面,接口对接,空间查询,属性查询数据修改
已修改8个文件
724 ■■■■ 文件已修改
src/api/api.js 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/en.js 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/assets/lang/zh.js 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapView/mapMenuTop.vue 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/MapView/mapSpaceTop.vue 33 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/preview_map.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/metadataManage.vue 250 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/datamanage/uploadmanage.vue 377 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/api/api.js
@@ -1097,4 +1097,13 @@
export function publish_deletes(params) {
  return request.get('/publish/deletes', { params: params });
}
//数据发布 => 数据修改
export function publish_update(params) {
  return request.post('/publish/update', params);
}
//数据发布 => 数据插入
export function publish_insert(params) {
  return request.post('/publish/insert', params);
}
src/assets/lang/en.js
@@ -155,7 +155,13 @@
      depName: 'Company',
      versionNumber: 'Version Number',
      tab: 'Table',
      row: 'rows'
      row: 'rows',
      numberFiles: 'Number of published files',
      minLevel: 'Minimum level',
      maxLevel: 'Maximum level',
      labe11: 'Please enter the minimum level (0 to 20)',
      labe12: 'Please enter the maximum level (0 to 20)',
      labe13: 'Please enter a name',
    },
    dictionaryManage: 'dictionaryManage',
    dictionaryManageObj: {
src/assets/lang/zh.js
@@ -154,10 +154,16 @@
      gather: '采集时间',
      depName: '单位',
      describe: '描述',
      versionNumber: '版本号',
      tab: '表名',
      row: '行数'
      row: '行数',
      numberFiles: '发布文件数',
      minLevel: '最小级别',
      maxLevel: '最大级别',
      labe11: '请输入最小级别(0 ~ 20)',
      labe12: '请输入最大级别(0 ~ 20)',
      labe13: '请输入名称',
    },
    dictionaryManage: '字典管理',
    dictionaryManageObj: {
src/components/MapView/mapMenuTop.vue
@@ -183,6 +183,7 @@
  encr,
  dataLib_selectTabs,
  pipelines_selectSegNames,
  dataLib_selectTabed
} from "../../api/api.js"
import { selectPipelines } from "@/api/screen.js"
import { getToken } from "@/utils/auth"
@@ -287,19 +288,15 @@
      }
    },
    async getAllTable() {
      const data = await dataLib_selectTabs({
        pageIndex: 1,
        pageSize: 500,
      const data = await dataLib_selectTabed({
        hasGeom: "true",
        name: null,
      })
      if (data.code != 200) {
        this.$message.error("列表调用失败")
      }
      // var val = data.result.filter(res => {
      //   if (res.rows != 0) {
      //     return res
      //   }
      // })
      var val = data.result
      var std = [];
      val.filter((item) => {
@@ -314,16 +311,18 @@
          )
        }
      });
      for (var i in this.layerData) {
        var item = this.layerData[i];
        for (var j in val) {
          var res = val[j];
      this.layerData.filter((item) => {
        val.filter((res) => {
          if (item.val === res.bak && res.rows != 0 && res.rows) {
            console.log(res)
          if (item.val === res.bak) {
            res.label = res.tabDesc
            item.children.push(res)
            this.layerData[i].children.push(res)
          }
        })
      })
        }
      }
    },
    //获取选择树的节点
src/components/MapView/mapSpaceTop.vue
@@ -105,11 +105,36 @@
      }
      var option = data.result;
      this.layerData = option.filter((res) => {
        if (res.rows != 0) {
          return res;
        }
      });
        return res;
      });
      // var val = data.result
      // var std = [];
      // val.filter((item) => {
      //   if (std.indexOf(item.bak) == -1) {
      //     std.push(item.bak);
      //     this.layerData.push(
      //       {
      //         val: item.bak,
      //         label: item.bak,
      //         children: [],
      //       }
      //     )
      //   }
      // });
      // for (var i in this.layerData) {
      //   var item = this.layerData[i];
      //   for (var j in val) {
      //     var res = val[j];
      //     if (item.val === res.bak) {
      //       res.label = res.tabDesc
      //       this.layerData[i].children.push(res)
      //     }
      //   }
      // }
      // for (var i in option) {
      //   // console.log(option[i].tableType)
src/components/preview_map.vue
@@ -24,7 +24,7 @@
    init3DMap() {
      //地图初始化
      window.sgworld = new SmartEarth.SGWorld("mapdiv", {
        url: SmartEarthRootUrl + "Workers/image/earth.jpg",
        licenseServer: window.sceneConfig.licenseServer,
      });
@@ -34,12 +34,6 @@
      //   destination: Cesium.Cartesian3.fromDegrees(110, 33, 8000000),
      // });
      Viewer.imageryLayers.addImageryProvider(
        new Cesium.UrlTemplateImageryProvider({
          url: gaoDeBaseUrl[1].url,
          maximumLevel: 18
        })
      );
      Viewer._enableInfoOrSelection = false;
      //显示fps
src/views/datamanage/metadataManage.vue
@@ -1,14 +1,19 @@
<template>
  <div class="authorityManagement_box">
    <My-bread
      :list="[
    <My-bread :list="[
        `${$t('dataManage.dataManage')}`,
        `${$t('dataManage.metadataManage')}`,
      ]"
    ></My-bread>
      ]"></My-bread>
    <el-divider />
    <div class="inquire subpage_Div" ref="container">
      <el-form ref="queryForm" :model="queryForm" :inline="true">
    <div
      class="inquire subpage_Div"
      ref="container"
    >
      <el-form
        ref="queryForm"
        :model="queryForm"
        :inline="true"
      >
        <div class="flex_box">
          <div style="margin-right: auto">
            <el-form-item size="small">
@@ -93,19 +98,21 @@
                </el-option>
              </el-select>
            </el-form-item>
            <el-form-item prop="name" size="small">
            <el-form-item
              prop="name"
              size="small"
            >
              <!--            suffix-icon="el-icon-edit"  :placeholder="$t('common.pleaseInput')"-->
              <el-input
                v-model="queryForm.name"
                :placeholder="$t('shuJuGuanLi.lable2')"
                style="width: 200px"
                ><i
              ><i
                  slot="suffix"
                  class="el-icon-search"
                  @click="queryInfo()"
                  style="padding-right: 8px"
                ></i
              ></el-input>
                ></i></el-input>
            </el-form-item>
          </div>
          <div>
@@ -125,7 +132,7 @@
                size="small"
                @click="deleteMetaInfo"
                icon="el-icon-delete"
                >{{ $t("common.delete") }}
              >{{ $t("common.delete") }}
              </el-button>
            </el-form-item>
            <el-form-item v-if="btnStatus.download">
@@ -134,7 +141,7 @@
                icon="el-icon-download"
                type="success"
                size="small"
                >{{ $t("common.download") }}
              >{{ $t("common.download") }}
              </el-button>
            </el-form-item>
@@ -144,7 +151,7 @@
                icon="el-icon-refresh"
                type="info"
                size="small"
                >{{ $t("common.reset") }}
              >{{ $t("common.reset") }}
              </el-button>
            </el-form-item>
          </div>
@@ -195,7 +202,10 @@
      </el-form>
    </div>
    <div class="dividing-line"></div>
    <div class="table_box subpage_Div" :style="styleVar">
    <div
      class="table_box subpage_Div"
      :style="styleVar"
    >
      <el-table
        :data="tableData"
        style="width: 100%"
@@ -203,7 +213,10 @@
        @selection-change="handleSelectionChange"
        height="calc(100% - 57px)"
      >
        <el-table-column type="selection" width="55" />
        <el-table-column
          type="selection"
          width="55"
        />
        <el-table-column
          :label="$t('dataManage.dictionaryManageObj.number')"
          type="index"
@@ -218,8 +231,7 @@
                title="源数据查询"
                @click="setQueryMetaData(scope.row)"
                target="_blank"
                >{{ scope.row.name }}</el-link
              >
              >{{ scope.row.name }}</el-link>
            </span>
            <span v-else-if="scope.row.metaid > 0">
              <el-link
@@ -227,14 +239,15 @@
                title="元数据查询"
                @click="setMetaDataQuery(scope.row)"
                target="_blank"
                >{{ scope.row.name }}</el-link
              ></span
            >
              >{{ scope.row.name }}</el-link></span>
            <span v-else>{{ scope.row.name }}</span>
          </template>
        </el-table-column>
        <el-table-column prop="type" :label="$t('dataManage.vmobj.format')" />
        <el-table-column
          prop="type"
          :label="$t('dataManage.vmobj.format')"
        />
        <el-table-column
          prop="sizes"
          :label="$t('dataManage.vmobj.size')"
@@ -257,7 +270,10 @@
          <template slot-scope="scope">
            <!-- <span ></span> -->
            <el-link></el-link>
            <el-link :underline="false" @click="detail(scope.row)">{{
            <el-link
              :underline="false"
              @click="detail(scope.row)"
            >{{
              scope.row.tab
            }}</el-link>
          </template>
@@ -268,7 +284,10 @@
              :label="$t('dataManage.vmobj.tab')"
              :formatter="formatData"
            /> -->
        <el-table-column prop="rows" :label="$t('dataManage.vmobj.row')" />
        <el-table-column
          prop="rows"
          :label="$t('dataManage.vmobj.row')"
        />
        <el-table-column
          prop="uname"
          :label="$t('dataManage.vmobj.createonuser')"
@@ -278,14 +297,17 @@
          :label="$t('dataManage.vmobj.createontime')"
          :formatter="formatData"
        />
        <el-table-column min-width="210" :label="$t('common.operate')">
        <el-table-column
          min-width="210"
          :label="$t('common.operate')"
        >
          <template slot-scope="scope">
            <el-button
              @click="showDetail(scope.row)"
              type="primary"
              plain
              size="small"
              >{{ $t("common.details") }}
            >{{ $t("common.details") }}
            </el-button>
            <el-button
              type="warning"
@@ -294,7 +316,7 @@
              v-if="btnStatus.update"
              @click="editInfo(scope.row)"
              style="margin-left: 10px"
              >{{ $t("common.edit") }}
            >{{ $t("common.edit") }}
            </el-button>
            <el-button
              plain
@@ -302,12 +324,15 @@
              v-if="showPreview(scope.row)"
              @click="handlePreview(scope.row)"
              style="margin-left: 10px"
              >{{ $t("common.preview") }}
            >{{ $t("common.preview") }}
            </el-button>
          </template>
        </el-table-column>
      </el-table>
      <div class="pagination_box" style="margin-top: 15px">
      <div
        class="pagination_box"
        style="margin-top: 15px"
      >
        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
@@ -320,16 +345,28 @@
        </el-pagination>
      </div>
    </div>
    <div class="infoBox_box" v-show="showinfoBox">
    <div
      class="infoBox_box"
      v-show="showinfoBox"
    >
      <div class="infoBox box_div">
        <div slot="header" class="clearfix">
        <div
          slot="header"
          class="clearfix"
        >
          <span>{{ $t("common.details") }}</span>
          <div style="float: right; cursor: pointer" @click="closeDetial">
          <div
            style="float: right; cursor: pointer"
            @click="closeDetial"
          >
            <i class="el-icon-close"></i>
          </div>
        </div>
        <el-divider></el-divider>
        <div class="contentBox" style="padding: 1%">
        <div
          class="contentBox"
          style="padding: 1%"
        >
          <p>{{ $t("dataManage.vmobj.name") }}:{{ itemdetail.name }}</p>
          <el-divider></el-divider>
          <p>{{ $t("dataManage.vmobj.format") }}:{{ itemdetail.type }}</p>
@@ -359,13 +396,13 @@
          </p>
          <el-divider></el-divider>
          <p>
            {{ $t("dataManage.vmobj.updateonuser") }}:{{
            {{ $t("dataManage.vmobj.depName") }}:{{
              itemdetail.updateUser
            }}
          </p>
          <el-divider></el-divider>
          <p>
            {{ $t("dataManage.vmobj.updateontime") }}:{{
            {{ $t("dataManage.vmobj.depName") }}:{{
              setInfoBoxTime(itemdetail.updateTime)
            }}
          </p>
@@ -384,24 +421,36 @@
      :visible.sync="dialogFormVisible"
      :before-close="handleClose"
    >
      <el-form :model="editForm" ref="editForm">
      <el-form
        :model="editForm"
        ref="editForm"
      >
        <el-form-item
          :label="$t('dataManage.vmobj.name')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="editForm.name" autocomplete="off"></el-input>
          <el-input
            v-model="editForm.name"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.vmobj.format')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="editForm.type" autocomplete="off"></el-input>
          <el-input
            v-model="editForm.type"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.vmobj.size')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="editForm.sizes" autocomplete="off"></el-input>
          <el-input
            v-model="editForm.sizes"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <el-form-item
          :label="$t('dataManage.vmobj.depName')"
@@ -467,7 +516,10 @@
          :label="$t('dataManage.vmobj.describe')"
          :label-width="formLabelWidth"
        >
          <el-input v-model="editForm.describe" autocomplete="off"></el-input>
          <el-input
            v-model="editForm.describe"
            autocomplete="off"
          ></el-input>
        </el-form-item>
        <!-- <el-form-item
          :label="$t('dataManage.vmobj.gather')"
@@ -476,28 +528,40 @@
          <el-input v-model="editForm.gather" autocomplete="off"></el-input>
        </el-form-item> -->
      </el-form>
      <div v-if="behavior == '修改信息'" slot="footer" class="dialog-footer">
        <el-button size="small" @click="cancelEdit()"
          >{{ $t("common.reset") }}
      <div
        v-if="behavior == '修改信息'"
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          size="small"
          @click="cancelEdit()"
        >{{ $t("common.reset") }}
        </el-button>
        <el-button
          size="small"
          type="primary"
          @click="sendEdit('editForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
          >{{ $t("common.submit") }}
        >{{ $t("common.submit") }}
        </el-button>
      </div>
      <div v-else slot="footer" class="dialog-footer">
        <el-button size="small" @click="cancelAdd('editForm')"
          >{{ $t("common.reset") }}
      <div
        v-else
        slot="footer"
        class="dialog-footer"
      >
        <el-button
          size="small"
          @click="cancelAdd('editForm')"
        >{{ $t("common.reset") }}
        </el-button>
        <el-button
          size="small"
          type="primary"
          @click="sendAdd('editForm')"
          v-loading.fullscreen.lock="fullscreenLoading"
          >{{ $t("common.submit") }}
        >{{ $t("common.submit") }}
        </el-button>
      </div>
    </el-dialog>
@@ -529,7 +593,10 @@
            align="center"
          ></el-table-column>
        </el-table>
        <div style="margin-top: 10px" class="pagination_box">
        <div
          style="margin-top: 10px"
          class="pagination_box"
        >
          <el-pagination
            @size-change="handleLoaderSizeChange"
            @current-change="handleLoaderCurrentChange"
@@ -543,7 +610,10 @@
        </div>
      </div>
    </el-dialog>
    <div class="downloadBox box_div subpage_Div" v-if="showCodeBox">
    <div
      class="downloadBox box_div subpage_Div"
      v-if="showCodeBox"
    >
      <h4 style="padding: 20px">{{ $t("common.passworld") }}</h4>
      <el-form
        :model="codeForm"
@@ -552,14 +622,20 @@
        label-width="100px"
        class="codeForm"
      >
        <el-form-item :label="$t('common.passworld')" prop="password">
        <el-form-item
          :label="$t('common.passworld')"
          prop="password"
        >
          <el-input
            type="password"
            v-model="codeForm.password"
            show-password
          ></el-input>
        </el-form-item>
        <el-form-item :label="$t('common.SPassword')" prop="repassword">
        <el-form-item
          :label="$t('common.SPassword')"
          prop="repassword"
        >
          <el-input
            type="password"
            v-model="codeForm.repassword"
@@ -567,11 +643,17 @@
          ></el-input>
        </el-form-item>
        <el-form-item>
          <el-button class="primary" size="small" @click="download('codeForm')"
            >{{ $t("common.confirm") }}
          <el-button
            class="primary"
            size="small"
            @click="download('codeForm')"
          >{{ $t("common.confirm") }}
          </el-button>
          <el-button type="info" size="small" @click="closeDown('codeForm')"
            >{{ $t("common.cancel") }}
          <el-button
            type="info"
            size="small"
            @click="closeDown('codeForm')"
          >{{ $t("common.cancel") }}
          </el-button>
        </el-form-item>
      </el-form>
@@ -582,17 +664,30 @@
      width="70%"
    >
      <div style="height: 65vh; width: 100%">
        <el-form :inline="true" :model="fromQueryMeta" class="demo-form-inline">
        <el-form
          :inline="true"
          :model="fromQueryMeta"
          class="demo-form-inline"
        >
          <el-form-item>
            <el-input size="small" v-model="fromQueryMeta.name"></el-input>
            <el-input
              size="small"
              v-model="fromQueryMeta.name"
            ></el-input>
          </el-form-item>
          <el-form-item>
            <el-button type="primary" size="small" @click="setSearchMetaData()"
              >查询
            <el-button
              type="primary"
              size="small"
              @click="setSearchMetaData()"
            >查询
            </el-button>
            <el-button type="info" size="small" @click="setRestMetaData()"
              >重置
            <el-button
              type="info"
              size="small"
              @click="setRestMetaData()"
            >重置
            </el-button>
          </el-form-item>
        </el-form>
@@ -648,7 +743,10 @@
            :label="$t('dataManage.dataUpObj.tableName')"
          >
            <template slot-scope="scope">
              <a class="scopeRowColor" @click="detail(scope.row)">{{
              <a
                class="scopeRowColor"
                @click="detail(scope.row)"
              >{{
                scope.row.tab
              }}</a>
            </template>
@@ -664,7 +762,10 @@
            :label="$t('dataManage.dataUpObj.describe')"
          />
        </el-table>
        <div class="pagination_box" style="margin-top: 15px">
        <div
          class="pagination_box"
          style="margin-top: 15px"
        >
          <el-pagination
            @size-change="handleMetaSizeChange"
            @current-change="handMetaCurrentChange"
@@ -736,7 +837,10 @@
            :label="$t('dataManage.dataUpObj.tableName')"
          >
            <template slot-scope="scope">
              <a class="scopeRowColor" @click="detail(scope.row)">{{
              <a
                class="scopeRowColor"
                @click="detail(scope.row)"
              >{{
                scope.row.tab
              }}</a>
            </template>
@@ -762,7 +866,10 @@
      width="70%"
      :close-on-click-modal="false"
    >
      <div v-if="dialog.isPdf" class="pdfClass">
      <div
        v-if="dialog.isPdf"
        class="pdfClass"
      >
        <iframe
          :src="dialog.src"
          type="application/x-google-chrome-pdf"
@@ -771,8 +878,15 @@
        >
        </iframe>
      </div>
      <div v-if="dialog.isJpg" class="pdfClass">
        <img style="width: 100%; height: 100%" :src="dialog.src" alt="" />
      <div
        v-if="dialog.isJpg"
        class="pdfClass"
      >
        <img
          style="width: 100%; height: 100%"
          :src="dialog.src"
          alt=""
        />
      </div>
    </el-dialog>
@@ -1430,7 +1544,7 @@
          this.editForm = {}
          done()
        })
        .catch(_ => {})
        .catch(_ => { })
    },
    // 提交修改
src/views/datamanage/uploadmanage.vue
@@ -1,5 +1,6 @@
<template>
  <div class="uploads_box">
    <My-bread :list="[
        `${$t('dataManage.dataManage')}`,
        `${$t('dataManage.uploadManage')}`,
@@ -113,6 +114,7 @@
          <el-input
            size="small"
            :title="$t('dataManage.vmobj.keyword')"
            v-model="formInline.name"
          > <i
              @click="getTableData"
              :title="$t('common.iquery')"
@@ -124,12 +126,15 @@
        <el-form-item style="float:right">
          <!-- 发布 -->
          <el-button
            v-if="active == 'first'"
            type="success"
            size="small"
            icon="el-icon-s-promotion"
            @click="setPagePublish"
          >{{$t('common.publish')}}</el-button>
          <!-- 刪除 -->
          <el-button
            v-if="active == 'second'"
            type="danger"
            size="small"
            icon="el-icon-delete"
@@ -166,7 +171,7 @@
          >
          </el-table-column>
          <el-table-column
            prop="type"
            prop="name"
            :label="$t('dataManage.vmobj.name')"
            align="center"
          />
@@ -229,27 +234,28 @@
          >
            <template slot-scope="scope">
              <el-button
                v-if="scope.row.url"
                v-if="active == 'second'"
                size="small"
                type="success"
                type="info"
                plain
                @click="setPreviewLayer(scope.row)"
              >{{$t('common.preview')}}
                @click="setPreviewDetails(scope.row)"
              >{{$t('common.details')}}
              </el-button>
              <el-button
                v-if="scope.row.url"
                v-if="active == 'second'"
                size="small"
                type="warning"
                plain
                @click="setPreviewLayer(scope.row)"
              >{{$t('common.preview')}}
                @click="setPreviewEdit(scope.row)"
              >{{$t('common.update')}}
              </el-button>
              <el-button
                v-if="scope.row.url"
                size="small"
                type="info"
                type="success"
                plain
                @click="setPreviewLayer(scope.row)"
              >{{$t('common.preview')}}
@@ -287,8 +293,172 @@
        <mapview v-if="showMapView"></mapview>
      </div>
    </el-dialog>
    <!-- 修改数据 -->
    <el-dialog
      :title="$t('common.update')"
      :visible.sync="editDialogVisible"
      width="50%"
      :show-close="false"
      :close-on-click-modal="false"
    >
      <div style="width:100%;height:50vh">
        <el-form
          ref="form"
          :model="editLayer"
          label-width="150px"
        >
          <el-form-item :label="$t('dataManage.vmobj.name')">
            <el-input v-model="editLayer.name"></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.format')">
            <el-input
              disabled
              v-model="editLayer.type"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.depName')">
            <el-input
              disabled
              v-model="editLayer.depName"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.dirName')">
            <el-input
              disabled
              v-model="editLayer.dirName"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.versionNumber')">
            <el-input
              disabled
              v-model="editLayer.verName"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('common.publishAddress')">
            <el-input v-model="editLayer.url"></el-input>
          </el-form-item>
          <el-form-item>
            <el-button
              size="small"
              type="primary"
              @click="setEditLayerSubmit"
            >{{$t('common.submit')}}</el-button>
            <el-button
              size="small"
              type="info"
              @click="setEditLayerCancle"
            >{{$t('common.cancel')}}</el-button>
          </el-form-item>
        </el-form>
      </div>
    </el-dialog>
    <!-- 数据详情 -->
    <el-dialog
      :title="$t('common.details')"
      :visible.sync="detailsDialogVisible"
      width="50%"
      :close-on-click-modal="false"
    >
      <div style="width:100%;height:50vh">
        <p>{{ $t("dataManage.vmobj.name") }}:{{ itemdetail.name }}</p>
        <el-divider></el-divider>
        <p>{{ $t("dataManage.vmobj.format") }}:{{ itemdetail.type }}</p>
        <el-divider></el-divider>
        <p>{{ $t("dataManage.vmobj.depName") }}:{{ itemdetail.depName }}</p>
        <el-divider></el-divider>
        <p>{{ $t("dataManage.vmobj.dirName") }}:{{ itemdetail.dirName }}</p>
        <el-divider></el-divider>
        <p>{{ $t("dataManage.vmobj.versionNumber") }}:{{ itemdetail.verName }}</p>
        <el-divider></el-divider>
        <p>{{ $t("common.publishAddress") }}:{{ itemdetail.url }}</p>
        <el-divider></el-divider>
        <p>{{ $t("common.rublisher") }}:{{ itemdetail.createName }}</p>
        <el-divider></el-divider>
        <p>{{ $t("common.releaseTime") }}:{{ itemdetail.createTime }}</p>
        <el-divider></el-divider>
        <p>{{ $t("dataManage.vmobj.updateonuser") }}:{{ itemdetail.updateName }}</p>
        <el-divider></el-divider>
        <p>{{ $t("dataManage.vmobj.updateontime") }}:{{ itemdetail.updateTime }}</p>
        <el-divider></el-divider>
      </div>
    </el-dialog>
    <!-- 发布 -->
    <el-dialog
      :title="$t('common.publish')"
      :visible.sync="insertDialogVisible"
      width="40%"
      :close-on-click-modal="false"
    >
      <div style="width:100%;height:30vh">
        <el-form
          ref="form"
          :model="insertLayer"
          label-width="150px"
        >
          <el-form-item :label="$t('dataManage.vmobj.name')">
            <el-input
              v-model="insertLayer.name"
              :placeholder="$t('dataManage.vmobj.name')"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.numberFiles')">
            <el-input
              disabled
              v-model="insertLayer.number"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.minLevel')">
            <el-input
              v-model="insertLayer.min"
              :placeholder="$t('dataManage.vmobj.labe11')"
            ></el-input>
          </el-form-item>
          <el-form-item :label="$t('dataManage.vmobj.maxLevel')">
            <el-input
              v-model="insertLayer.max"
              :placeholder="$t('dataManage.vmobj.labe12')"
            ></el-input>
          </el-form-item>
          <el-form-item>
            <el-button
              size="small"
              type="primary"
              @click="setinsertLayerSubmit()"
            >{{$t('common.submit')}}</el-button>
            <el-button
              size="small"
              type="info"
              @click="setsubmitLayerSubmit()"
            >{{$t('common.cancel')}}</el-button>
          </el-form-item>
        </el-form>
      </div>
    </el-dialog>
    <div
      class="loadBox"
      v-if="loadDialogVisible"
    >
      <div style="widht:100%; margin:20px; color:white">
        <div style="margin-left:99%">
          <el-link
            @click="setloadDialogVisible()"
            style="color:white"
          > X</el-link>
        </div>
      </div>
      <div
        v-loading="true"
        element-loading-background="rgba(0, 0, 0, 0.0) "
        element-loading-text="数据发布中"
        style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); "
      >
      </div>
    </div>
  </div>
</template>
<script>
@@ -300,7 +470,9 @@
  meta_selectVerByDirid,
  publish_selectMetasByPage,
  publish_selectByPage,
  publish_deletes
  publish_deletes,
  publish_update,
  publish_insert,
} from '../../api/api.js'
export default {
@@ -350,10 +522,162 @@
      dialogVisible: false,
      showMapView: false,
      showPageSize: [],
      editLayer: {},
      updateLayer: {},
      editDialogVisible: false,
      detailsDialogVisible: false,
      itemdetail: {},
      insertDialogVisible: false,
      insertLayer: { name: '', number: null, min: 4, max: 8 },
      loadDialogVisible: false
    }
  },
  methods: {
    setloadDialogVisible() {
      this.loadDialogVisible = false
    },
    //发布提交
    async setinsertLayerSubmit() {
      var min = this.insertLayer.min;
      var max = this.insertLayer.max;
      var name = this.insertLayer.name;
      if (!name) {
        this.$message.error("名称不能为空")
        return
      }
      if (!min) {
        this.$message.error("请输入最小级别(0 ~ 20)")
        return
      } else {
        if (parseInt(min) < 0 || parseInt(min) > 20) {
          this.$message.error(" 最小级别不能小于 0 或大于 20 ")
          return
        }
      }
      if (!max) {
        this.$message.error("请输入最大级别(0 ~ 20)")
        return
      } else {
        if (parseInt(max) < 0 || parseInt(max) > 20) {
          this.$message.error(" 最大级别不能小于 0 或大于 20 ")
          return
        }
      }
      if (parseInt(min) > parseInt(max)) {
        this.$message.error("最小级别不得大于最大级别")
        return
      }
      var std = [];
      for (var i in this.multipleSelection) {
        std.push(this.multipleSelection[i])
      }
      var obj = {
        dircode: this.formInline.dirid,
        depcode: this.formInline.depid,
        min: min,
        max: max,
        name: name,
        ids: std.toString(),
        type: this.formInline.type
      }
      this.loadDialogVisible = true
      this.insertDialogVisible = false;
      const data = await publish_insert(obj);
      if (data.code != 200) {
        this.$message.error("数据发布失败")
      } else {
        this.$message({
          message: '数据发布成功',
          type: 'success'
        });
      }
      this.loadDialogVisible = false
      this.getTableData();
    },
    //数据发布
    async setPagePublish() {
      if (this.multipleSelection.length == 0) {
        this.$message.error("请选择要发布的数据")
        return
      }
      if (this.formInline.type == "DOM") {
        this.insertLayer.name = this.formInline.dirName;
        this.insertLayer.number = this.multipleSelection.length
        this.insertDialogVisible = true;
      } else {
        var std = [];
        for (var i in this.multipleSelection) {
          std.push(this.multipleSelection[i])
        }
        var obj = {
          dircode: this.formInline.dirid,
          depcode: this.formInline.depid,
          ids: std.toString(),
          type: this.formInline.type
        }
        this.loadDialogVisible = true
        this.insertDialogVisible = false;
        const data = await publish_insert(obj);
        if (data.code != 200) {
          this.$message.error("数据发布失败")
        } else {
          this.$message({
            message: '数据发布成功',
            type: 'success'
          });
        }
        this.loadDialogVisible = false
        this.getTableData();
      }
    },
    //数据详情
    setPreviewDetails(res) {
      this.itemdetail = res;
      this.detailsDialogVisible = true;
    },
    //修改提交
    async setEditLayerSubmit() {
      const data = await publish_update(this.editLayer);
      if (data.code != 200) {
        this.$message.error("数据修改失败")
        return
      }
      this.$message({
        message: '数据修改成功',
        type: 'success'
      });
      this.getTableData();
      this.editDialogVisible = false;
    },
    //修改取消
    setEditLayerCancle() {
      if (this.editLayer == this.updateLayer) {
        this.editDialogVisible = false;
      } else {
        this.$confirm('确认关闭?')
          .then(_ => {
            done();
          })
          .catch(_ => {
            this.editLayer = JSON.parse(this.updateLayer)
            this.editDialogVisible = false;
          });
      }
    },
    //修改弹窗
    setPreviewEdit(res) {
      this.updateLayer = JSON.stringify(res) //备份;
      this.editLayer = JSON.parse(JSON.stringify(res));
      this.editDialogVisible = true;
    },
    //删除
    async setPageDelete() {
      if (this.multipleSelection.length == 0) {
        return this.$message.error("请选择要删除的数据")
@@ -362,7 +686,7 @@
        for (var i in this.multipleSelection) {
          std.push(this.multipleSelection[i].id);
        }
        const data = await publish_deletes(std);
        const data = await publish_deletes({ ids: std.toString() });
        if (data.code != 200) {
          this.$message.error("单位列表获取失败")
          return
@@ -484,11 +808,11 @@
      this.dirOption = this.treeData(data.result);
      this.formInline.dirid = this.dirOption[0].code;
      this.formInline.dirName = this.dirOption[0].name;
      this.getVerList()
      this.getVerList(this.dirOption[0].id)
    },
    //获取版本列表
    async getVerList() {
      const data = await meta_selectVerByDirid({ dirid: this.formInline.dirid })
    async getVerList(res) {
      const data = await meta_selectVerByDirid({ dirid: res })
      if (data.code != 200) {
        this.$message.error("版本列表获取失败")
        return
@@ -499,6 +823,7 @@
    },
    //版本列表切换
    handleVerChange(value) {
      debugger
      this.formInline.verid = value;
      this.getTableData();
    },
@@ -515,10 +840,9 @@
    },
    //目录列表切换
    handleDirChange(data, node, nodeData) {
      this.formInline.dirid = data.code
      this.formInline.dirName = data.name
      this.getVerList()
      this.getVerList(data.id)
    },
    //获取Table表格数据
    async getTableData() {
@@ -567,7 +891,9 @@
            if (res.createTime) {
              res.createTime = that.format(res.createTime);
            }
            if (res.updateTime) {
              res.updateTime = that.format(res.updateTime);
            }
            if (res.url) {
              res.url = res.url.replace("{host}", iisHost);
            }
@@ -679,5 +1005,20 @@
      height: calc(100% - 110px);
    }
  }
  /deep/.el-divider--horizontal {
    margin: 14px 0px;
  }
  .loadBox {
    position: fixed;
    z-index: 2002;
    background: rgba(0, 0, 0, 0.2);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    .el-loading-mask {
      background: transparent !important;
    }
  }
}
</style>