管道基础大数据平台系统开发-【前端】-新系統界面
Surpriseplus
2023-08-04 d3215f0051943a83f459009359d0039c3a0e1a4e
src/views/datamanage/metadataManage.vue
@@ -158,49 +158,6 @@
            </el-form-item>
          </div>
        </div>
        <!-- <el-form-item style="float:right">
          <el-button
            @click="queryInfo()"
            icon="el-icon-search"
            class="primary"
            size="small"
          >{{ $t('common.iquery') }}</el-button>
        </el-form-item>
        <el-form-item style="float:right">
          <el-button
            @click="resetInfo('queryForm')"
            icon="el-icon-refresh"
            type="info"
            size="small"
          >{{ $t('common.reset') }}</el-button>
        </el-form-item> -->
        <!-- <el-form-item v-if="btnStatus.insert">
          <el-button
            type="success"
            size="small"
            @click="showAddDialog"
            icon="el-icon-plus"
            >{{ $t('common.append') }}</el-button
          >
        </el-form-item> -->
        <!-- <el-form-item v-if="btnStatus.delete" style="float:right">
          <el-button
            type="danger"
            size="small"
            @click="deleteMetaInfo"
            icon="el-icon-delete"
          >{{ $t('common.delete') }}</el-button>
        </el-form-item>
        <el-form-item v-if="btnStatus.download" style="float:right">
          <el-button
            @click="downFormData"
            icon="el-icon-download"
            type="success"
            size="small"
          >{{ $t('common.download') }}</el-button>
        </el-form-item> -->
      </el-form>
    </div>
    <div class="dividing-line"></div>
@@ -249,7 +206,24 @@
        <el-table-column
          prop="type"
          :label="$t('dataManage.vmobj.format')"
        />
        >
          <template slot-scope="scope">
            <span v-if="scope.row.type == 'gdb'">
              <el-link
                @click="setSelectGdbByGuid(scope.row)"
                style="color: #409eff"
              >
                {{  scope.row.type }}
              </el-link>
            </span>
            <span v-else>
              {{  scope.row.type }}
            </span>
          </template>
        </el-table-column>
        <el-table-column
          prop="sizes"
          :label="$t('dataManage.vmobj.size')"
@@ -290,6 +264,13 @@
          prop="rows"
          :label="$t('dataManage.vmobj.row')"
        />
        <el-table-column
          :label="$t('common.dataStatus')"
          :formatter="stateFormat"
        >
        </el-table-column>
        <el-table-column
          prop="uname"
          :label="$t('dataManage.vmobj.createonuser')"
@@ -350,6 +331,7 @@
    <div
      class="infoBox_box"
      v-show="showinfoBox"
      style="z-index:99999"
    >
      <div class="infoBox box_div">
        <div
@@ -770,7 +752,7 @@
            @size-change="handleMetaSizeChange"
            @current-change="handMetaCurrentChange"
            :current-page="listMetaData.pageIndex"
            :page-sizes="[10, 50, 100, 200]"
            :page-sizes="[10, 50, 100, 200,500]"
            :page-size="listMetaData.pageSize"
            layout="total, sizes, prev, pager, next, jumper"
            :total="listMetaData.count"
@@ -938,11 +920,170 @@
        </el-form-item>
      </el-form>
    </el-dialog>
    <el-dialog
      title=""
      :visible.sync="gdbDialog"
      width="80%"
      top="8vh"
      :modal="false"
      :close-on-click-modal="false"
    >
      <div class="gdbTableBox">
        <el-table
          :data="gdbData"
          style="width: 100%"
          max-height="38.54167vw"
        >
          <el-table-column
            type="selection"
            width="55"
          />
          <el-table-column
            :label="$t('dataManage.dictionaryManageObj.number')"
            type="index"
            width="50"
          >
          </el-table-column>
          <el-table-column :label="$t('dataManage.vmobj.name')">
            <template slot-scope="scope">
              <span v-if="scope.row.ismeta > 0">
                <el-link
                  style="color: #409eff"
                  title="源数据查询"
                  @click="setQueryMetaData(scope.row)"
                  target="_blank"
                >{{ scope.row.name }}</el-link>
              </span>
              <span v-else-if="scope.row.metaid > 0">
                <el-link
                  style="color: #409eff"
                  title="元数据查询"
                  @click="setMetaDataQuery(scope.row)"
                  target="_blank"
                >{{ 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>
          <el-table-column
            prop="sizes"
            :label="$t('dataManage.vmobj.size')"
            :formatter="stateFormatSizes"
          />
          <el-table-column
            prop="depName"
            :label="$t('dataManage.vmobj.depName')"
          />
          <el-table-column
            prop="dirName"
            :label="$t('dataManage.vmobj.dirName')"
            width="200"
          />
          <el-table-column
            prop="verName"
            :label="$t('dataManage.vmobj.versionNumber')"
          />
          <el-table-column :label="$t('dataManage.dataUpObj.tableName')">
            <template slot-scope="scope">
              <el-link></el-link>
              <el-link
                :underline="false"
                @click="detail(scope.row)"
              >{{
              scope.row.tab
            }}</el-link>
            </template>
          </el-table-column>
          <el-table-column
            prop="rows"
            :label="$t('dataManage.vmobj.row')"
          />
          <el-table-column
            :label="$t('common.dataStatus')"
            :formatter="stateFormat"
          >
          </el-table-column>
          <el-table-column
            prop="uname"
            :label="$t('dataManage.vmobj.createonuser')"
          />
          <el-table-column
            prop="createTime"
            :label="$t('dataManage.vmobj.createontime')"
            :formatter="formatData"
          />
          <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") }}
              </el-button>
              <el-button
                type="warning"
                plain
                size="small"
                v-if="btnStatus.update"
                @click="editInfo(scope.row)"
                style="margin-left: 10px"
              >{{ $t("common.edit") }}
              </el-button>
              <el-button
                plain
                size="small"
                v-if="showPreview(scope.row)"
                @click="handlePreview(scope.row)"
                style="margin-left: 10px"
              >{{ $t("common.preview") }}
              </el-button>
            </template>
          </el-table-column>
        </el-table>
      </div>
    </el-dialog>
    <iframe
      id="downFrame"
      src=""
      style="display: none; border: 0; padding: 0; height: 0; width: 0"
    ></iframe>
    <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>
@@ -968,6 +1109,7 @@
  meta_selectMetaOverflowDep,
  meta_selectDepsByCodes,
  apply_insertApply,
  meta_selectGdbByGuid,
} from "../../api/api";
import MyBread from "../../components/MyBread.vue";
@@ -1108,6 +1250,10 @@
        pwd: null,
        depcodes: null,
      },
      gdbData: [],
      gdbDialog: false,
      gdbGuid: null,
      loadDialogVisible: false
    };
  },
  created() {
@@ -1137,6 +1283,36 @@
    },
  },
  methods: {
    //gdb 点击事件
    setSelectGdbByGuid(row) {
      this.gdbGuid = row.guid
      this.getSelectGdbByGuid();
    },
    async getSelectGdbByGuid() {
      if (!this.gdbGuid) return
      const data = await meta_selectGdbByGuid({ guid: this.gdbGuid })
      if (data.code != 200) {
        return this.$message.error("根据GUID查询GDB数据失败");
      }
      if (data.count <= 0) {
        return this.$message("查无更多数据");
      }
      this.gdbData = data.result;
      this.gdbDialog = true;
    },
    stateFormat(row, column) {
      var val = ['shp', 'gdb', 'xls', 'xlsx']
      if (val.indexOf(row.type) > -1 && row.rows > 0) {
        return '已上传,已入库'
      } else if (val.indexOf(row.type) > -1 && row.rows == 0) {
        return '已上传,未入库'
      } else {
        return '已上传'
      }
    },
    //大小值改变
    changeSizeFile(row, column, cellValue, index) {
      if (cellValue >= 1024) {
@@ -1176,10 +1352,7 @@
      this.fromQueryMeta.title = row.name;
      this.listMetaData = {
        id: row.metaid,
        // name: "",
        // pageIndex: 1,
        // pageSize: 10,
        // count: 0,
      };
      const data = await meta_selectById(this.listMetaData);
      if (data.code != 200) {
@@ -1190,6 +1363,8 @@
      this.metaDataTable1 = [data.result];
      // this.listMetaData.count = data.count;
    },
    //源数据查询
    setQueryMetaData(row) {
      this.fromQueryMeta.title = row.name;
@@ -1557,6 +1732,9 @@
    },
    // 删除多条
    deleteMetaInfo() {
      if (this.multipleSelection.length <= 0) {
        return this.$message("请选择要删除的数据");
      }
      this.$confirm("确定是否删除所选内容?", "提示", {
        confirmButtonText: "确定",
        cancelButtonText: "取消",
@@ -1567,8 +1745,10 @@
          for (var i in this.multipleSelection) {
            std.push(this.multipleSelection[i].id);
          }
          this.loadDialogVisible = true;
          deleteMeta({ ids: std.toString() }).then((res) => {
            if (res.code == 200) {
              this.loadDialogVisible = false;
              this.$message({
                type: "success",
                message: "删除成功!",
@@ -1576,9 +1756,12 @@
              this.multipleSelection = [];
              // this.listData.pageSize = 10
              this.listData.pageIndex = 1;
              this.getMetaData();
            } else {
              this.loadDialogVisible = false;
              this.$message.error("删除失败");
              this.multipleSelection = [];
            }
          });
@@ -1592,7 +1775,7 @@
    showDetail(row) {
      // console.log(index, row);
      this.showinfoBox = true;
      debugger
      this.itemdetail = row;
    },
@@ -1638,7 +1821,14 @@
              if (res.code == 200) {
                this.listData.pageSize = 10;
                this.listData.pageIndex = 1;
                this.getMetaData();
                if (this.gdbDialog) {
                  this.getSelectGdbByGuid();
                } else {
                  this.getMetaData();
                }
                this.$message({
                  message: "修改成功",
                  type: "success",
@@ -1653,6 +1843,7 @@
          alert("修改失败,请重试!");
          this.fullscreenLoading = false;
        });
    },
    cancelEdit() {
      this.$nextTick(() => {
@@ -1888,5 +2079,22 @@
  .el-divider--horizontal {
    margin: 15px 0;
  }
  .gdbTableBox {
    width: 100%;
    height: 740px;
    overflow-y: auto;
  }
  .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>