From d3215f0051943a83f459009359d0039c3a0e1a4e Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期五, 04 八月 2023 10:29:48 +0800
Subject: [PATCH] 信息管理

---
 src/views/datamanage/metadataManage.vue |  310 +++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 259 insertions(+), 51 deletions(-)

diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue
index 5713039..9a74259 100644
--- a/src/views/datamanage/metadataManage.vue
+++ b/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>

--
Gitblit v1.9.3