From f088e6887fe88f0be698892c9883521e9e57d5c3 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期二, 25 七月 2023 09:31:53 +0800
Subject: [PATCH] 信息管理 GDB数据修改

---
 src/views/datamanage/metadataManage.vue | 2168 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 1,757 insertions(+), 411 deletions(-)

diff --git a/src/views/datamanage/metadataManage.vue b/src/views/datamanage/metadataManage.vue
index afecd65..8ee4f93 100644
--- a/src/views/datamanage/metadataManage.vue
+++ b/src/views/datamanage/metadataManage.vue
@@ -1,211 +1,602 @@
 <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">
-      <el-form ref="queryForm" :model="queryForm" :inline="true">
-        <el-form-item label="鍏抽敭瀛�" prop="name">
-          <el-input
-            v-model="queryForm.name"
-            :placeholder="$t('common.pleaseInput')"
-          />
-        </el-form-item>
-        <el-form-item>
-          <el-button
-            @click="queryInfo()"
-            icon="el-icon-search"
-            type="primary"
-            size="small"
-            >鏌ヨ</el-button
-          >
-        </el-form-item>
-        <el-form-item>
-          <el-button
-            @click="resetInfo('queryForm')"
-            icon="el-icon-refresh"
-            type="info"
-            size="small"
-            >閲嶇疆</el-button
-          >
-        </el-form-item>
+    <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">
+              <el-select
+                :popper-append-to-body="false"
+                v-model="queryForm.depName"
+                ref="treeSelect"
+              >
+                <el-option
+                  :value="queryForm.depid"
+                  :label="queryForm.depName"
+                  style="height: auto"
+                >
+                  <el-tree
+                    ref="tree"
+                    :data="companyOption1"
+                    node-key="id"
+                    :props="cascader"
+                    @node-click="handleChange1"
+                  />
+                </el-option>
+              </el-select>
+              <!-- <el-cascader
+            v-model="queryForm.depid"
+            :show-all-levels="false"
+            :options="companyOption1"
+            @change="handleChange1"
+            :props="{
+              label: 'name',
+              value: 'id',
+              children: 'children',
+              checkStrictly: true,
+              emitPath: false,
+            }"
+          ></el-cascader> -->
+            </el-form-item>
+            <el-form-item size="small">
+              <el-select
+                :popper-append-to-body="false"
+                v-model="queryForm.dirName"
+                ref="treeSelect1"
+              >
+                <el-option
+                  :value="queryForm.dirid"
+                  :label="queryForm.dirName"
+                  style="height: auto"
+                >
+                  <el-tree
+                    ref="tree"
+                    :data="companyOption"
+                    node-key="id"
+                    :props="cascader"
+                    @node-click="handleChange"
+                  />
+                </el-option>
+              </el-select>
+              <!-- <el-cascader
+            v-model="queryForm.dirid"
+            :show-all-levels="false"
+            :options="companyOption"
+            @change="handleChange"
+            :props="{
+              label: 'name',
+              value: 'id',
+              children: 'children',
+              checkStrictly: true,
+              emitPath: false,
+            }"
+          ></el-cascader> -->
+            </el-form-item>
+            <el-form-item size="small">
+              <el-select
+                :popper-append-to-body="false"
+                v-model="queryForm.verid"
+                placeholder="璇烽�夋嫨"
+                @change="verHandleChange($event)"
+              >
+                <el-option
+                  v-for="item in verOptions"
+                  :key="item.id"
+                  :label="item.name"
+                  :value="item.id"
+                >
+                </el-option>
+              </el-select>
+            </el-form-item>
+            <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
+                  slot="suffix"
+                  class="el-icon-search"
+                  @click="queryInfo()"
+                  style="padding-right: 8px"
+                ></i></el-input>
+            </el-form-item>
+          </div>
+          <div>
+            <!--            <el-form-item>
+              <el-button
+                  @click="queryInfo()"
+                  icon="el-icon-search"
+                  class="primary"
+                  size="small"
+              >{{ $t("common.iquery") }}
+              </el-button
+              >
+            </el-form-item>-->
+            <el-form-item v-if="btnStatus.delete">
+              <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">
+              <el-button
+                @click="downFormData"
+                icon="el-icon-download"
+                type="success"
+                size="small"
+              >{{ $t("common.download") }}
+              </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">
-          <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">
-          <el-button
-            @click="downFormData"
-            icon="el-icon-download"
-            type="success"
-            size="small"
-            >涓嬭浇</el-button
-          >
-        </el-form-item>
+            <el-form-item>
+              <el-button
+                @click="resetInfo('queryForm')"
+                icon="el-icon-refresh"
+                type="info"
+                size="small"
+              >{{ $t("common.reset") }}
+              </el-button>
+            </el-form-item>
+          </div>
+        </div>
       </el-form>
     </div>
-    <div class="bottom">
-      <div class="rightTable">
-        <div class="table_box">
-          <el-table
-            :data="tableData"
-            border
-            style="width: 100%"
-            fit
-            @selection-change="handleSelectionChange"
-            height="99%"
-          >
-            <el-table-column type="selection" width="55" />
-            <el-table-column min-width="150" prop="name" label="鍚嶇О" />
-            <el-table-column min-width="100" prop="format" label="鏍煎紡" />
-            <el-table-column min-width="100" prop="sizes" label="澶у皬" />
-            <el-table-column
-              min-width="100"
-              prop="createUser"
-              label="鍒涘缓浜哄憳"
-            />
-            <el-table-column
-              min-width="100"
-              prop="createTime"
-              label="鍒涘缓鏃堕棿"
-            />
-            <el-table-column min-width="100" prop="cs" label="鍧愭爣绯荤粺" />
-            <el-table-column min-width="100" prop="scale" label="姣斾緥灏�" />
-            <el-table-column min-width="100" prop="resolution" label="鍒嗚鲸鐜�" />
+    <div class="dividing-line"></div>
+    <div
+      class="table_box subpage_Div"
+      :style="styleVar"
+    >
+      <el-table
+        :data="tableData"
+        style="width: 100%"
+        border
+        @selection-change="handleSelectionChange"
+        height="calc(100% - 57px)"
+      >
+        <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 min-width="100" prop="descr" label="鎻忚堪" />
-            <el-table-column min-width="100" label="鎿嶄綔">
-              <template slot-scope="scope">
-                <el-link @click="showDetail(scope.row)">鏌ョ湅</el-link>
-                <el-link @click="editInfo(scope.row)" style="margin-left: 10px"
-                  >淇敼</el-link
-                >
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
+        <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')"
+          :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">
+            <!-- <span ></span> -->
+            <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="tab"
+              :label="$t('dataManage.vmobj.tab')"
+              :formatter="formatData"
+            /> -->
+        <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
+        class="pagination_box"
+        style="margin-top: 15px"
+      >
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="listData.pageIndex"
+          :page-sizes="[10, 50, 100, 200]"
+          :page-size="listData.pageSize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="count"
+        >
+        </el-pagination>
+      </div>
+    </div>
+    <div
+      class="infoBox_box"
+      v-show="showinfoBox"
+      style="z-index:99999"
+    >
+      <div class="infoBox box_div">
         <div
-          style="margin-top: 20px; margin-left: 400px"
+          slot="header"
+          class="clearfix"
+        >
+          <span>{{ $t("common.details") }}</span>
+          <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%"
+        >
+          <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("common.size") }}锛歿{ setInfoBoxSize(itemdetail.sizes) }}</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("dataManage.vmobj.tab") }}锛歿{ itemdetail.tab }}</p>
+          <el-divider></el-divider>
+          <p>{{ $t("dataManage.vmobj.row") }}锛歿{ itemdetail.rows }}</p>
+          <el-divider></el-divider>
+          <p>
+            {{ $t("dataManage.vmobj.createonuser") }}锛歿{ itemdetail.uname }}
+          </p>
+          <el-divider></el-divider>
+          <p>
+            {{ $t("dataManage.vmobj.createontime") }}锛歿{
+              setInfoBoxTime(itemdetail.createTime)
+            }}
+          </p>
+          <el-divider></el-divider>
+          <!-- <p>
+            {{ $t("dataManage.vmobj.depName") }}锛歿{ itemdetail.updateUser }}
+          </p>
+          <el-divider></el-divider>
+          <p>
+            {{ $t("dataManage.vmobj.depName") }}锛歿{
+              setInfoBoxTime(itemdetail.updateTime)
+            }}
+          </p> -->
+        </div>
+      </div>
+    </div>
+
+    <el-dialog
+      width="80vh"
+      top="5vh"
+      :title="
+        behavior == '鏂板鐢ㄦ埛'
+          ? `${$t('common.append')}`
+          : `${$t('common.update')}`
+      "
+      :visible.sync="dialogFormVisible"
+      :before-close="handleClose"
+    >
+      <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-form-item>
+        <el-form-item
+          :label="$t('dataManage.vmobj.format')"
+          :label-width="formLabelWidth"
+        >
+          <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-form-item>
+        <el-form-item
+          :label="$t('dataManage.vmobj.depName')"
+          :label-width="formLabelWidth"
+        >
+          <el-select
+            style="width: 100%"
+            :popper-append-to-body="false"
+            v-model="editForm.depName"
+          >
+            <el-option
+              :value="editForm.depid"
+              :label="editForm.depName"
+              style="height: auto"
+            >
+              <el-tree
+                ref="tree"
+                :data="companyOption1"
+                node-key="id"
+                :props="cascader"
+                @node-click="handleChange2"
+              />
+            </el-option>
+          </el-select>
+          <!-- <el-cascader
+            v-model="editForm.depid"
+            :options="companyOption"
+            :props="cascader"
+            style="width:350px"
+          ></el-cascader> -->
+        </el-form-item>
+        <el-form-item
+          :label="$t('dataManage.vmobj.dirName')"
+          :label-width="formLabelWidth"
+        >
+          <el-select
+            style="width: 100%"
+            :popper-append-to-body="false"
+            v-model="editForm.dirName"
+          >
+            <el-option
+              :value="editForm.dirid"
+              :label="editForm.dirName"
+              style="height: auto"
+            >
+              <el-tree
+                ref="tree"
+                :data="dirComPanyOption"
+                node-key="id"
+                :props="cascader"
+                @node-click="handleChange3"
+              />
+            </el-option>
+          </el-select>
+          <!-- <el-cascader
+            v-model="editForm.dirid"
+            :options="dirComPanyOption"
+            :props="cascader"
+            style="width:350px"
+          ></el-cascader> -->
+        </el-form-item>
+        <el-form-item
+          :label="$t('dataManage.vmobj.describe')"
+          :label-width="formLabelWidth"
+        >
+          <el-input
+            v-model="editForm.describe"
+            autocomplete="off"
+          ></el-input>
+        </el-form-item>
+        <!-- <el-form-item
+          :label="$t('dataManage.vmobj.gather')"
+          :label-width="formLabelWidth"
+        >
+          <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") }}
+        </el-button>
+        <el-button
+          size="small"
+          type="primary"
+          @click="sendEdit('editForm')"
+          v-loading.fullscreen.lock="fullscreenLoading"
+        >{{ $t("common.submit") }}
+        </el-button>
+      </div>
+      <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") }}
+        </el-button>
+      </div>
+    </el-dialog>
+    <el-dialog
+      :title="$t('common.details')"
+      :visible.sync="dialogVisible"
+      width="70%"
+    >
+      <div style="height: 600px">
+        <el-table
+          ref="filterTable"
+          :data="dbTableData"
+          height="90%"
+          border
+          style="width: 100%"
+        >
+          <el-table-column
+            width="60"
+            align="center"
+            type="index"
+            :label="$t('common.index')"
+          />
+          <el-table-column
+            v-for="(item, index) in attributeData"
+            :key="index"
+            :label="item.alias"
+            :prop="item.field"
+            show-overflow-tooltip
+            align="center"
+          ></el-table-column>
+        </el-table>
+        <div
+          style="margin-top: 10px"
           class="pagination_box"
         >
           <el-pagination
-            @size-change="handleSizeChange"
-            @current-change="handleCurrentChange"
-            :current-page="currentPage"
-            :page-sizes="[10, 20, 50, 100]"
-            :page-size="10"
+            @size-change="handleLoaderSizeChange"
+            @current-change="handleLoaderCurrentChange"
+            :current-page="listLoader.pageIndex"
+            :page-sizes="[10, 50, 100, 200]"
+            :page-size="listLoader.pageSize"
             layout="total, sizes, prev, pager, next, jumper"
-            :total="count"
+            :total="count1"
           >
           </el-pagination>
         </div>
       </div>
-    </div>
-    <div class="infoBox" v-show="showinfoBox">
-      <el-card class="box-card">
-        <div slot="header" class="clearfix">
-          <span>璇︾粏淇℃伅</span>
-          <div style="float: right; cursor: pointer" @click="closeDetial">
-            <i class="el-icon-close"></i>
-          </div>
-        </div>
-        <div class="contentBox">
-          <p>鏁版嵁鍚嶇О锛歿{ itemdetail.name }}</p>
-          <el-divider></el-divider>
-          <p>鏁版嵁绫诲瀷锛歿{ itemdetail.type }}</p>
-          <el-divider></el-divider>
-          <p>鏁版嵁鏍煎紡锛歿{ itemdetail.format }}</p>
-          <el-divider></el-divider>
-          <p>鍒涘缓鏃堕棿锛歿{ itemdetail.createTime }}</p>
-          <el-divider></el-divider>
-          <p>鍒涘缓浜哄憳锛歿{ itemdetail.createUser }}</p>
-          <el-divider></el-divider>
-          <p>鏇存柊鏃堕棿锛歿{ itemdetail.updateTime }}</p>
-          <el-divider></el-divider>
-          <p>鏇存柊浜哄憳锛歿{ itemdetail.updateUser }}</p>
-          <el-divider></el-divider>
-          <p>鍧愭爣绯荤粺锛歿{ itemdetail.cs }}</p>
-          <el-divider></el-divider>
-          <p>姣斾緥灏簕{ itemdetail.scale }}</p>
-          <el-divider></el-divider>
-          <p>鍒嗚鲸鐜噞{ itemdetail.resolution }}</p>
-          <el-divider></el-divider>
-          <p>鎻忚堪锛歿{ itemdetail.descr }}</p>
-        </div>
-      </el-card>
-    </div>
-    <el-dialog
-      width="510px"
-      top="5vh"
-      :title="behavior"
-      :visible.sync="dialogFormVisible"
-      :before-close="handleClose"
-    >
-      <el-form :model="editForm" ref="editForm">
-        <el-form-item label="鏁版嵁鍚嶇О" :label-width="formLabelWidth">
-          <el-input v-model="editForm.name" autocomplete="off"></el-input>
-        </el-form-item>
-        <el-form-item label="鏁版嵁绫诲瀷" :label-width="formLabelWidth">
-          <el-input v-model="editForm.type" autocomplete="off"></el-input>
-        </el-form-item>
-        <el-form-item label="鏁版嵁鏍煎紡" :label-width="formLabelWidth">
-          <el-input v-model="editForm.format" autocomplete="off"></el-input>
-        </el-form-item>
-        <el-form-item label="鍧愭爣绯荤粺" :label-width="formLabelWidth">
-          <el-input v-model="editForm.cs" autocomplete="off"></el-input>
-        </el-form-item>
-        <el-form-item label="姣斾緥灏�" :label-width="formLabelWidth">
-          <el-input v-model="editForm.scale" autocomplete="off"></el-input>
-        </el-form-item>
-        <el-form-item label="鍒嗚鲸鐜�" :label-width="formLabelWidth">
-          <el-input v-model="editForm.resolution" autocomplete="off"></el-input>
-        </el-form-item>
-        <el-form-item label="鎻忚堪" :label-width="formLabelWidth">
-          <el-input v-model="editForm.descr" autocomplete="off"></el-input>
-        </el-form-item>
-      </el-form>
-      <div v-if="behavior == '淇敼淇℃伅'" slot="footer" class="dialog-footer">
-        <el-button size="medium" @click="cancelEdit()">閲嶇疆</el-button>
-        <el-button
-          size="medium"
-          type="primary"
-          @click="sendEdit('editForm')"
-          v-loading.fullscreen.lock="fullscreenLoading"
-          >鎻愪氦</el-button
-        >
-      </div>
-      <div v-else slot="footer" class="dialog-footer">
-        <el-button size="medium" @click="cancelAdd('editForm')">閲嶇疆</el-button>
-        <el-button
-          size="medium"
-          type="primary"
-          @click="sendAdd('editForm')"
-          v-loading.fullscreen.lock="fullscreenLoading"
-          >鎻愪氦</el-button
-        >
-      </div>
     </el-dialog>
-    <div class="downloadBox" v-if="showCodeBox">
-      <h4 style="padding: 20px">璇疯緭鍏ヤ笅杞藉寘瀵嗙爜</h4>
+    <div
+      class="downloadBox box_div subpage_Div"
+      v-if="showCodeBox"
+    >
+      <h4 style="padding: 20px">{{ $t("common.passworld") }}</h4>
       <el-form
         :model="codeForm"
         :rules="rules"
@@ -213,34 +604,494 @@
         label-width="100px"
         class="codeForm"
       >
-        <el-form-item label="瀵嗙爜" prop="password">
-          <el-input type="password" v-model="codeForm.password"></el-input>
+        <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="纭瀵嗙爜" prop="repassword">
-          <el-input type="password" v-model="codeForm.repassword"></el-input>
+        <el-form-item
+          :label="$t('common.SPassword')"
+          prop="repassword"
+        >
+          <el-input
+            type="password"
+            v-model="codeForm.repassword"
+            show-password
+          ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" size="small" @click="download('codeForm')"
-            >纭畾</el-button
-          >
-          <el-button type="info" size="small" @click="closeDown('codeForm')"
-            >鍙栨秷</el-button
-          >
+          <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>
         </el-form-item>
       </el-form>
     </div>
+    <el-dialog
+      :title="fromQueryMeta.title"
+      :visible.sync="queryMetaFlag"
+      width="70%"
+    >
+      <div style="height: 65vh; width: 100%">
+        <el-form
+          :inline="true"
+          :model="fromQueryMeta"
+          class="demo-form-inline"
+        >
+          <el-form-item>
+            <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>
+            <el-button
+              type="info"
+              size="small"
+              @click="setRestMetaData()"
+            >閲嶇疆
+            </el-button>
+          </el-form-item>
+        </el-form>
+        <el-table
+          ref="filterTable"
+          :data="metaDataTable"
+          style="width: 100%"
+          height="calc(100% - 100px)"
+        >
+          <el-table-column
+            align="center"
+            type="index"
+            :label="$t('common.index')"
+            width="70px"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="name"
+            :label="$t('common.name')"
+            width="120"
+          >
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="dirName"
+            :label="$t('dataManage.dataUpObj.catalogue')"
+            width="300"
+          />
+          <el-table-column
+            align="center"
+            prop="depName"
+            :label="$t('dataManage.dataUpObj.company')"
+            width="200"
+          />
+          <el-table-column
+            align="center"
+            prop="verName"
+            :label="$t('dataManage.dataUpObj.versionNo')"
+          />
+          <el-table-column
+            align="center"
+            prop="type"
+            :label="$t('common.type')"
+          />
+          <el-table-column
+            align="center"
+            prop="sizes"
+            :label="$t('common.size')"
+            :formatter="changeSizeFile"
+          />
+          <el-table-column
+            align="center"
+            :label="$t('dataManage.dataUpObj.tableName')"
+          >
+            <template slot-scope="scope">
+              <a
+                class="scopeRowColor"
+                @click="detail(scope.row)"
+              >{{
+                scope.row.tab
+              }}</a>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="rows"
+            :label="$t('common.lineNuber')"
+          />
+          <el-table-column
+            align="center"
+            prop="desc"
+            :label="$t('dataManage.dataUpObj.describe')"
+          />
+        </el-table>
+        <div
+          class="pagination_box"
+          style="margin-top: 15px"
+        >
+          <el-pagination
+            @size-change="handleMetaSizeChange"
+            @current-change="handMetaCurrentChange"
+            :current-page="listMetaData.pageIndex"
+            :page-sizes="[10, 50, 100, 200]"
+            :page-size="listMetaData.pageSize"
+            layout="total, sizes, prev, pager, next, jumper"
+            :total="listMetaData.count"
+          >
+          </el-pagination>
+        </div>
+      </div>
+    </el-dialog>
+    <el-dialog
+      :title="fromQueryMeta.title"
+      :visible.sync="queryMetaFlag1"
+      width="70%"
+    >
+      <div style="height: 65vh; width: 100%">
+        <el-table
+          ref="filterTable"
+          :data="metaDataTable1"
+          style="width: 100%"
+          height="100%"
+        >
+          <el-table-column
+            align="center"
+            type="index"
+            :label="$t('common.index')"
+            width="70px"
+          ></el-table-column>
+          <el-table-column
+            align="center"
+            prop="name"
+            :label="$t('common.name')"
+            width="120"
+          >
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="dirName"
+            :label="$t('dataManage.dataUpObj.catalogue')"
+            width="300"
+          />
+          <el-table-column
+            align="center"
+            prop="depName"
+            :label="$t('dataManage.dataUpObj.company')"
+            width="200"
+          />
+          <el-table-column
+            align="center"
+            prop="verName"
+            :label="$t('dataManage.dataUpObj.versionNo')"
+          />
+          <el-table-column
+            align="center"
+            prop="type"
+            :label="$t('common.type')"
+          />
+          <el-table-column
+            align="center"
+            prop="sizes"
+            :label="$t('common.size')"
+            :formatter="changeSizeFile"
+          />
+          <el-table-column
+            align="center"
+            :label="$t('dataManage.dataUpObj.tableName')"
+          >
+            <template slot-scope="scope">
+              <a
+                class="scopeRowColor"
+                @click="detail(scope.row)"
+              >{{
+                scope.row.tab
+              }}</a>
+            </template>
+          </el-table-column>
+          <el-table-column
+            align="center"
+            prop="rows"
+            :label="$t('common.lineNuber')"
+          />
+          <el-table-column
+            align="center"
+            prop="desc"
+            :label="$t('dataManage.dataUpObj.describe')"
+          />
+        </el-table>
+      </div>
+    </el-dialog>
+    <el-dialog
+      custom-class="preview-dialog"
+      title="棰勮"
+      :append-to-body="false"
+      :visible.sync="dialog.dialogVisible"
+      width="70%"
+      :close-on-click-modal="false"
+    >
+      <div
+        v-if="dialog.isPdf"
+        class="pdfClass"
+      >
+        <iframe
+          :src="dialog.src"
+          type="application/x-google-chrome-pdf"
+          width="100%"
+          height="100%"
+        >
+        </iframe>
+      </div>
+      <div
+        v-if="dialog.isJpg"
+        class="pdfClass"
+      >
+        <el-image
+          style="width: 100%; height: 100%"
+          :src="dialog.src"
+          :preview-src-list="[dialog.src]"
+        >
+        </el-image>
+      </div>
+    </el-dialog>
+    <el-dialog
+      title="鏁版嵁鐢宠"
+      :visible.sync="dialogInsertFile"
+      width="30%"
+      top="10vh"
+      :modal="false"
+      :close-on-click-modal="false"
+      :show-close="false"
+    >
+      <el-form
+        ref="form"
+        :model="fileFrom"
+        label-width="100px"
+      >
+        <el-form-item label="瀹℃牳鍗曚綅">
+          <div>
+            <ul>
+              <li v-for="item in fileFrom.depid">
+                {{ item.name }}
+              </li>
+            </ul>
+          </div>
+        </el-form-item>
+
+        <el-form-item label="鎻忚堪">
+          <el-input
+            type="textarea"
+            placeholder="璇疯緭鍏ュ唴瀹�"
+            v-model="fileFrom.descr"
+            maxlength="50"
+            show-word-limit
+          >
+          </el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button
+            class="primary"
+            size="small"
+            @click="getFileInsertApply()"
+          >{{ $t("common.confirm") }}</el-button>
+          <el-button
+            type="info"
+            size="small"
+            @click="handleInsertFileClose()"
+          >{{ $t("common.cancel") }}</el-button>
+        </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%"
+        >
+          <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>
 </template>
 
 <script>
+import $ from "jquery";
+import { getToken } from "@/utils/auth";
 import {
-  select_meta_ByPageAndCount,
-  // queryDataCount,
-  updateMeta,
+  encr,
   deleteMeta,
   insertMeta,
+  meta_downloadReq,
+  meta_selectByPageForUpload,
+  meta_selectDownloadFile,
+  meta_selectFields,
+  meta_selectPageAndCountByPid,
+  meta_selectVerByDirid,
+  select_meta_ByPageAndCount,
+  selectdepTab,
+  selectdirTab,
+  sign_getPublicKey,
+  updateMeta,
+  meta_selectById,
+  meta_selectMetaOverflowDep,
+  meta_selectDepsByCodes,
+  apply_insertApply,
+  meta_selectGdbByGuid,
 } from "../../api/api";
+
 import MyBread from "../../components/MyBread.vue";
+
 export default {
   name: "metadataManage",
   components: { MyBread },
@@ -254,7 +1105,26 @@
         callback();
       }
     };
+    var passwordValidator = (rule, value, callback) => {
+      var passwordreg =
+        /^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$/;
+      if (!passwordreg.test(value)) {
+        callback(new Error("瀵嗙爜蹇呴』鐢辨暟瀛椼�佸瓧姣嶃�佺壒娈婂瓧绗︾粍鍚�,璇疯緭鍏�13-20浣�"));
+      } else {
+        callback();
+      }
+    };
     return {
+      verOptions: [],
+      defaultProps: {
+        children: "children",
+        label: "name",
+      },
+      dirComPanyOption: [],
+      companyOption: [],
+      companyOption1: [],
+      activeName: "",
+      optionCount: [],
       showCodeBox: false,
       value: true,
       multipleSelection: [],
@@ -266,6 +1136,11 @@
       itemdetail: {},
       queryForm: {
         name: "",
+        dirid: "",
+        depid: "",
+        verid: "",
+        depName: "",
+
       },
       behavior: "",
       initialForm: "",
@@ -274,13 +1149,17 @@
         repassword: "",
       },
       rules: {
-        password: [{ required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" }],
+        password: [
+          { required: true, message: "璇疯緭鍏ュ瘑鐮�", trigger: "blur" },
+          { validator: passwordValidator, trigger: "blur" },
+        ],
         repassword: [
           { required: true, message: "璇疯緭鍏ョ‘璁ゅ瘑鐮�", trigger: "blur" },
           { validator: repasswordValidator, trigger: "blur" },
         ],
       },
       tableData: [],
+      dbTableData: [],
       count: 0,
       currentPage: 1,
       pageSize: 10,
@@ -293,16 +1172,421 @@
         insert: false,
         update: false,
       },
+      listData: {
+        pageSize: 10,
+        pageIndex: 1,
+        name: null,
+        dirid: null,
+        depid: null,
+      },
+      cascader: {
+        label: "name",
+        value: "id",
+        children: "children",
+        checkStrictly: true,
+        emitPath: false,
+      },
+      dialogVisible: false,
+      listLoader: {
+        id: null,
+        pageIndex: 1,
+        pageSize: 10,
+      },
+      count1: 0,
+      attributeData: [],
+      tableHeight: 0,
+      timer: 0,
+      styleVar: {
+        height: "calc(100% - 109px)",
+      },
+      listMetaData: {
+        metaid: 0,
+        name: "",
+        pageIndex: 1,
+        pageSize: 10,
+        count: 0,
+      },
+      queryMetaFlag: false,
+      fromQueryMeta: {
+        title: "",
+        name: "",
+      },
+      metaDataTable: [],
+      queryMetaFlag1: false,
+      metaDataTable1: [],
+      dialog: {
+        dialogVisible: false,
+        isPdf: false,
+        isJpg: false,
+        src: "",
+      },
+      dialogInsertFile: false,
+      fileFrom: {
+        descr: null,
+        depid: null,
+        ids: null,
+        pwd: null,
+        depcodes: null,
+      },
+      gdbData: [],
+      gdbDialog: false,
+      gdbGuid: null,
     };
   },
   created() {
-    this.getMetaData({
-      pageIndex: 1,
-      pageSize: 10,
-    });
+    // this.getSelectDictTab();
     this.showPermsBtn();
+    this.getQueryDepTree();
+
+    this.signGetPublicKey();
+  },
+  beforeDestroy() {
+    this.timer && clearTimeout(this.timer);
+    window.removeEventListener("resize", this.onResize);
+  },
+
+  mounted() {
+    window.addEventListener("resize", this.onResize);
+    this.calHeight();
+  },
+  watch: {
+    "queryForm.depName"() {
+
+      this.$refs.treeSelect.visible = false;
+    },
+    "queryForm.dirid"() {
+
+      this.$refs.treeSelect1.visible = false;
+    },
   },
   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) {
+        return parseFloat(cellValue / 1204).toFixed(3) + "GB";
+      } else {
+        return cellValue + "MB";
+      }
+    },
+    setRestMetaData() {
+      this.fromQueryMeta.name = "";
+      this.listMetaData.name = this.fromQueryMeta.name;
+      this.listMetaData.pageIndex = 1;
+      this.listMetaData.pageSize = 10;
+
+      this.startQueryMetaData();
+    },
+    setSearchMetaData() {
+      this.listMetaData.name = this.fromQueryMeta.name;
+      this.listMetaData.pageIndex = 1;
+      this.listMetaData.pageSize = 10;
+
+      this.startQueryMetaData();
+    },
+    //婧愭暟鎹〉闈㈠垏鎹�
+    handleMetaSizeChange(val) {
+      this.listMetaData.pageIndex = 1;
+      this.listMetaData.pageSize = val;
+      this.startQueryMetaData();
+    },
+    //婧愭暟鎹〉闈㈠垏鎹�
+    handMetaCurrentChange(val) {
+      this.listMetaData.pageIndex = val;
+      this.startQueryMetaData();
+    },
+    //鍏冩暟鎹煡璇�
+    async setMetaDataQuery(row) {
+      this.fromQueryMeta.title = row.name;
+      this.listMetaData = {
+        id: row.metaid,
+
+      };
+      const data = await meta_selectById(this.listMetaData);
+      if (data.code != 200) {
+        return;
+      }
+
+      this.queryMetaFlag1 = true;
+      this.metaDataTable1 = [data.result];
+      // this.listMetaData.count = data.count;
+    },
+
+
+    //婧愭暟鎹煡璇�
+    setQueryMetaData(row) {
+      this.fromQueryMeta.title = row.name;
+      this.listMetaData = {
+        metaid: row.id,
+        name: "",
+        pageIndex: 1,
+        pageSize: 10,
+        count: 0,
+      };
+      this.startQueryMetaData();
+      this.queryMetaFlag = true;
+    },
+    async startQueryMetaData() {
+      const data = await meta_selectPageAndCountByPid(this.listMetaData);
+      if (data.code != 200) {
+        return;
+      }
+      this.metaDataTable = data.result;
+      this.listMetaData.count = data.count;
+    },
+
+    onResize() {
+      this.timer && clearTimeout(this.timer);
+      this.timer = setTimeout(() => {
+        this.calHeight();
+      }, 500);
+    },
+    calHeight() {
+      this.$nextTick(() => {
+        const rect = this.$refs.container.getBoundingClientRect();
+        this.tableHeight = `${rect.height + 97}px`;
+        this.styleVar["height"] = `calc(100% - ${rect.height + 28}px)`;
+      });
+    },
+    async detail(res) {
+      var val = res.tab.split(".");
+      const data = await meta_selectFields({
+        ns: val[0],
+        tab: val[1],
+      });
+
+      if (data.code != 200) {
+        this.$message.error("瀛楁鍒楄〃璋冪敤澶辫触");
+        return;
+      }
+
+      this.dialogVisible = true;
+
+      this.attributeData = data.result;
+
+      this.listLoader = {
+        id: res.id,
+        pageIndex: 1,
+        pageSize: 10,
+      };
+      this.getDataLoaderSelectDbData();
+    },
+
+    async getDataLoaderSelectDbData() {
+      const data1 = await meta_selectByPageForUpload(this.listLoader);
+      if (data1.code != 200) {
+        this.$message.error("瀛楁鍒楄〃璋冪敤澶辫触");
+        return;
+      }
+
+      var option = data1.result;
+      for (var i in option) {
+        option[i].dirid = option[i].dirName;
+        option[i].depid = option[i].depName;
+        option[i].createuser = option[i].createName;
+        option[i].updateuser = option[i].updateName;
+        option[i].verid = option[i].verName;
+        if (option[i].createtime != null) {
+          option[i].createtime = this.setInfoBoxTime(option[i].createtime);
+        }
+        if (option[i].updatetime != null) {
+          option[i].updatetime = this.setInfoBoxTime(option[i].updatetime);
+        }
+      }
+      this.dbTableData = data1.result;
+      this.count1 = data1.count;
+    },
+    handleLoaderSizeChange(val) {
+      this.listLoader.pageIndex = 1;
+      this.listLoader.pageSize = val;
+      this.getDataLoaderSelectDbData();
+    },
+    handleLoaderCurrentChange(val) {
+      this.listLoader.pageIndex = val;
+      this.getDataLoaderSelectDbData();
+    },
+
+    async signGetPublicKey() {
+      const res = await sign_getPublicKey();
+      if (res && res.code == 200) {
+        window.encrypt = new JSEncrypt();
+        encrypt.setPublicKey(res.result);
+      }
+    },
+    //鍗曚綅鍒楄〃鑾峰彇
+    async getQueryDepTree() {
+      const res = await selectdepTab();
+      if (res.code != 200) {
+        this.$message.error("鍗曚綅鍒楄〃鑾峰彇澶辫触");
+        return;
+      }
+      this.companyOption1 = this.treeData(res.result);
+      this.queryForm.depcode = this.companyOption1[0].code;
+      this.queryForm.depName = this.companyOption1[0].name;
+      this.getQueryDirTree();
+    },
+
+    async getQueryDirTree() {
+      const res = await selectdirTab();
+      if (res.code != 200) {
+        this.$message.error("鍗曚綅鍒楄〃鑾峰彇澶辫触");
+        return;
+      }
+      this.companyOption = this.treeData(res.result);
+      this.queryForm.dirid = this.companyOption[0].id;
+      this.queryForm.dircode = this.companyOption[0].code;
+      this.queryForm.dirName = this.companyOption[0].name;
+      this.getQueryVerList();
+    },
+
+    async getQueryVerList() {
+      const data = await meta_selectVerByDirid({ dirid: this.queryForm.dirid });
+      if (data.code != 200) {
+        this.$message.error("鐗堟湰鍒楄〃鑾峰彇澶辫触");
+        return;
+      }
+      this.verOptions = data.result;
+      this.queryForm.verid = data.result[0].id;
+      this.getMetaData();
+    },
+    verHandleChange(val) {
+      this.queryForm.verid = val;
+      this.listData.pageSize = 10;
+      this.listData.pageIndex = 1;
+      this.getMetaData();
+    },
+    handleChange(data, node, nodeData) {
+      this.listData.pageSize = 10;
+      this.listData.pageIndex = 1;
+      this.queryForm.dircode = data.code;
+      this.queryForm.dirid = data.id;
+      this.queryForm.dirName = data.name;
+      this.getQueryVerList();
+    },
+    handleChange1(data, node, nodeData) {
+      this.listData.pageSize = 10;
+      this.listData.pageIndex = 1;
+      this.queryForm.depcode = data.code;
+      this.queryForm.depName = data.name;
+
+      this.getMetaData();
+    },
+    handleChange2(data, node, nodeData) {
+      this.editForm.depid = data.id;
+      this.editForm.depcode = data.code;
+      this.editForm.depName = data.name;
+    },
+    handleChange3(data, node, nodeData) {
+      this.editForm.dirid = data.id;
+      this.editForm.dircode = data.code;
+      this.editForm.dirName = data.name;
+    },
+    //鏍煎紡鍖栧垪琛�
+    formatData(row, column) {
+      let data = row[column.property];
+      if (data == null) {
+        return data;
+      }
+      return this.format(data);
+    },
+    setInfoBoxTime(res) {
+      if (res == null) {
+        return res;
+      }
+      return this.format(res);
+    },
+    setInfoBoxSize(res) {
+      if (res >= 1024) {
+        return parseFloat(res / 1024).toFixed(3) + " GB";
+      } else {
+        return res + " MB";
+      }
+    },
+    //鏍煎紡鍖栨椂闂�
+    format(shijianchuo) {
+      //shijianchuo鏄暣鏁帮紝鍚﹀垯瑕乸arseInt杞崲
+      var time = new Date(shijianchuo);
+      var y = time.getFullYear();
+      var m = time.getMonth() + 1;
+      var d = time.getDate();
+      var h = time.getHours();
+      var mm = time.getMinutes();
+      var s = time.getSeconds();
+      return (
+        y +
+        "-" +
+        this.add0(m) +
+        "-" +
+        this.add0(d) +
+        " " +
+        h +
+        ":" +
+        mm +
+        ":" +
+        s
+      );
+    },
+    //鏍煎紡鍖栨椂闂�
+    add0(m) {
+      return m < 10 ? "0" + m : m;
+    },
+    //鍗曚綅杞崲
+    stateFormatSizes(row, column) {
+      if (row.sizes >= 1024) {
+        const val = parseFloat(row.sizes / 1024).toFixed(3);
+        return val + " GB";
+      } else {
+        return row.sizes + " MB";
+      }
+    },
+    //鐩綍鏍戣幏鍙�
+    async getSelectDictTab() {
+      const res = await selectdirTab();
+      if (res.code != 200) {
+        this.$message.error("鍒楄〃璋冪敤澶辫触");
+      }
+      this.optionCount = this.treeData(res.result);
+      this.dirComPanyOption = this.treeData(res.result);
+      this.listData.depcode = this.optionCount[0].code;
+    },
+    handleNodeClick(data) {
+      this.listData.pageSize = 10;
+      this.listData.pageIndex = 1;
+      this.listData.dirid = data.id;
+      this.getMetaData();
+    },
+    getTableDesc(res) {
+      this.activeName = res.tab;
+    },
     //鏄剧ず鏉冮檺鎸夐挳
     showPermsBtn() {
       let currentPerms = this.$store.state.currentPerms;
@@ -311,68 +1595,72 @@
         .filter((item) => item.perms == currentPerms)
         .map((item) => (this.btnStatus[item.tag.substr(1)] = true));
     },
-    ShowWindowFly(res) {
-      console.log(res);
-      if (res == "") return;
-      if (res.indexOf(".xls") != -1) {
-        this.showMetadata(res, true);
-      } else if (res.indexOf(".doc") != -1) {
-        this.showMetadata(res, true);
-      } else if (res.indexOf(".png") != -1) {
-        this.showMetadata(res, true);
-      } else if (res.indexOf(".jpg") != -1) {
-        this.showMetadata(res, true);
-      } else if (res.indexOf(".pdf") != -1) {
-        this.showMetadata(res, true);
-      } else if (res.indexOf(".fly") != -1) {
-        this.showMetadata(res, false);
-      } else if (res.indexOf(".mpt") != -1) {
-        this.showMetadata(res, false);
-      }
-    },
-    showMetadata(res, flag) {
-      var metaUrl;
-      if (flag == true) {
-        metaUrl = res;
-      } else if (flag == false) {
-        metaUrl = ifreamUrl + "/LFWeb/MetaPop.html?name=" + res;
-      }
-      window.open(
-        metaUrl,
-        "",
-        "height=800, width=1500, top=150, left=350, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no"
-      );
-    },
+    // ShowWindowFly(res) {
+    //   console.log(res);
+    //   if (res == '') return;
+    //   if (res.indexOf('.xls') != -1) {
+    //     this.showMetadata(res, true);
+    //   } else if (res.indexOf('.doc') != -1) {
+    //     this.showMetadata(res, true);
+    //   } else if (res.indexOf('.png') != -1) {
+    //     this.showMetadata(res, true);
+    //   } else if (res.indexOf('.jpg') != -1) {
+    //     this.showMetadata(res, true);
+    //   } else if (res.indexOf('.pdf') != -1) {
+    //     this.showMetadata(res, true);
+    //   } else if (res.indexOf('.fly') != -1) {
+    //     this.showMetadata(res, false);
+    //   } else if (res.indexOf('.mpt') != -1) {
+    //     this.showMetadata(res, false);
+    //   }
+    // },
+    // showMetadata(res, flag) {
+    //   var metaUrl;
+    //   if (flag == true) {
+    //     metaUrl = res;
+    //   } else if (flag == false) {
+    //     metaUrl = ifreamUrl + '/LFWeb/MetaPop.html?name=' + res;
+    //   }
+    //   window.open(
+    //     metaUrl,
+    //     '',
+    //     'height=800, width=1500, top=150, left=350, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, status=no'
+    //   );
+    // },
     // 璇锋眰鏁版嵁鍐呭
-    getMetaData(params) {
-      select_meta_ByPageAndCount(params).then((res) => {
+    getMetaData() {
+      this.listData.depcode = this.queryForm.depcode;
+      this.listData.dircode = this.queryForm.dircode;
+
+      this.listData.verid = this.queryForm.verid;
+      // this.listData.dirid = 57
+
+      select_meta_ByPageAndCount(this.listData).then((res) => {
         this.tableData = res.result;
         this.count = res.count;
       });
     },
     // 鏌ヨ
     queryInfo() {
-      let searchData = {
-        name: this.queryForm.name.trim(),
-        pageIndex: this.pageIndex,
-        pageSize: this.pageSize,
-      };
-      select_meta_ByPageAndCount(searchData).then((res) => {
-        if (res.code == 200) {
-          this.tableData = res.result;
-          this.count = res.count;
-        } else {
-          console.log("鏌ヨ鎺ュ彛鎶ラ敊");
-          this.$notify.error({
-            title: res.code,
-            message: res.result,
-          });
-        }
-      });
+      this.listData.name = this.queryForm.name.trim();
+      this.listData.pageSize = 10;
+      this.listData.pageIndex = 1;
+      this.getMetaData();
     },
     // 閲嶇疆鏌ヨ
     resetInfo(formName) {
       this.$refs[formName].resetFields();
+      this.listData.pageSize = 10;
+      this.listData.pageIndex = 1;
+      this.listData.name = null;
+      this.queryForm.dirid = this.companyOption[0].id;
+      this.queryForm.depid = this.companyOption1[0].id;
+      this.queryForm.dircode = this.companyOption[0].code;
+      this.queryForm.depcode = this.companyOption1[0].code;
+      this.queryForm.dirName = this.companyOption[0].name;
+      this.queryForm.depName = this.companyOption1[0].name;
+      this.getQueryVerList();
+      this.getMetaData();
     },
     //鏂板鎸夐挳
     showAddDialog() {
@@ -387,14 +1675,15 @@
     sendAdd(formName) {
       this.$refs[formName].validate((valid) => {
         if (valid) {
-          console.log(this.editForm);
           this.fullscreenLoading = true;
           insertMeta(this.editForm)
             .then((res) => {
               setTimeout(() => {
                 this.fullscreenLoading = false;
                 if (res.code == 200) {
-                  this.getMetaData({ pageIndex: 1, pageSize: 10 });
+                  this.listData.pageSize = 10;
+                  this.listData.pageIndex = 1;
+                  this.getMetaData();
                   this.$message({
                     message: "娣诲姞鎴愬姛",
                     type: "success",
@@ -437,7 +1726,9 @@
                 message: "鍒犻櫎鎴愬姛!",
               });
               this.multipleSelection = [];
-              this.getMetaData({ pageIndex: 1, pageSize: 10 });
+              // this.listData.pageSize = 10
+              this.listData.pageIndex = 1;
+              this.getMetaData();
             } else {
               this.$message.error("鍒犻櫎澶辫触");
               this.multipleSelection = [];
@@ -453,7 +1744,9 @@
     showDetail(row) {
       // console.log(index, row);
       this.showinfoBox = true;
+
       this.itemdetail = row;
+
     },
     // 鍏抽棴鏌ョ湅
     closeDetial() {
@@ -471,6 +1764,7 @@
       this.behavior = "淇敼淇℃伅";
       this.editForm = JSON.parse(JSON.stringify(row));
       this.dialogFormVisible = true;
+      this.getSelectDictTab();
     },
     handleClose(done) {
       this.$confirm("纭鍏抽棴锛�")
@@ -478,7 +1772,7 @@
           this.editForm = {};
           done();
         })
-        .catch((_) => {});
+        .catch((_) => { });
     },
 
     // 鎻愪氦淇敼
@@ -494,7 +1788,16 @@
             setTimeout(() => {
               this.fullscreenLoading = false;
               if (res.code == 200) {
-                this.getMetaData({ pageIndex: 1, pageSize: 10 });
+                this.listData.pageSize = 10;
+                this.listData.pageIndex = 1;
+
+                if (this.gdbDialog) {
+                  this.getSelectGdbByGuid();
+                } else {
+                  this.getMetaData();
+                }
+
+
                 this.$message({
                   message: "淇敼鎴愬姛",
                   type: "success",
@@ -509,13 +1812,119 @@
           alert("淇敼澶辫触锛岃閲嶈瘯锛�");
           this.fullscreenLoading = false;
         });
+
     },
     cancelEdit() {
       this.$nextTick(() => {
         this.editForm = JSON.parse(this.initialForm);
       });
     },
-    download() {},
+    async download() {
+      var ids = [];
+      for (var i in this.multipleSelection) {
+        ids.push(this.multipleSelection[i].id);
+      }
+      var obj = {
+        ids: ids,
+      };
+      const data = await meta_selectMetaOverflowDep(obj);
+      if (data.code != 200) {
+        return;
+      }
+      var password = this.codeForm.repassword;
+      if (data.result.length == 0) {
+        var obj = {
+          pwd: encrypt.encrypt(this.codeForm.repassword),
+          ids: ids,
+        };
+        const res = await meta_downloadReq(JSON.stringify(obj));
+        if (res.code != 200) {
+          this.$message.error("涓嬭浇璇锋眰澶辫触");
+          return;
+        }
+
+        var downObj = {
+          guid: res.result,
+          pwd: encodeURIComponent(encrypt.encrypt(this.codeForm.repassword)),
+        };
+        const data1 = await meta_selectDownloadFile(downObj);
+        if (data1.code != 200) {
+          this.$message.error("涓嬭浇璇锋眰澶辫触");
+          return;
+        }
+        var token = getToken();
+        var url =
+          BASE_URL +
+          "/meta/downloadFile?token=" +
+          token +
+          "&guid=" +
+          res.result +
+          "&pwd=" +
+          encodeURIComponent(encrypt.encrypt(this.codeForm.repassword));
+
+        $("#downFrame").attr("src", url).click();
+      } else {
+        var val = "";
+        var std = [];
+        for (var i in data.result) {
+          if (val == "") {
+            val += "codes=" + data.result[i];
+          } else {
+            val += "&codes=" + data.result[i];
+          }
+          std.push({
+            name: data.result[i],
+          });
+        }
+        const data1 = await meta_selectDepsByCodes(val);
+        if (data1.code != 200) {
+          return;
+        }
+
+        this.fileFrom.depid = data1.result;
+        this.fileFrom.ids = ids;
+        this.fileFrom.pwd = encr(password);
+        this.fileFrom.depcodes = data.result;
+        this.dialogInsertFile = true;
+      }
+
+      this.closeDown();
+    },
+
+    async getFileInsertApply() {
+      this.dialogInsertFile = false;
+
+      var obj = {
+        ids: this.fileFrom.ids,
+        pwd: this.fileFrom.pwd,
+        tabs: ["鍏冩暟鎹〃"],
+        entities: ["sysmeta"],
+        descr: this.fileFrom.descr,
+        depcodes: this.fileFrom.depcodes,
+      };
+
+      const data = await apply_insertApply(JSON.stringify(obj));
+      this.handleInsertFileClose();
+      if (data.code != 200) {
+        this.$message.error("鏁版嵁鐢宠澶辫触");
+        return;
+      }
+      this.$message({
+        message: "鏁版嵁鐢宠鎴愬姛",
+        type: "success",
+      });
+    },
+    handleInsertFileClose() {
+      this.dialogInsertFile = false;
+      this.fileFrom = {
+        descr: null,
+        depid: null,
+        ids: null,
+        pwd: null,
+        depcodes: null,
+      };
+    },
+
     closeDown() {
       this.showCodeBox = false;
       this.codeForm.password = "";
@@ -527,34 +1936,67 @@
         return;
       }
       this.showCodeBox = true;
-      // this.$prompt("璇疯緭鍏ュ瘑鐮�", "鎻愮ず", {
-      //   confirmButtonText: "纭畾",
-      //   cancelButtonText: "鍙栨秷",
-      //   inputType: "password",
-      //   inputPattern: /^[\s\S]*.*[^\s][\s\S]*$/,
-      //   inputErrorMessage: "杈撳叆涓嶈兘涓虹┖",
-      // })
-      //   .then(() => {
-      //     let ids = "";
-      //     this.multipleSelection.forEach((e) => {
-      //       ids += `id=${e.id}&`;
-      //     });
-      //     let res = ids.substring(0, ids.length - 1);
-      //     console.log(res);
-      //     let url = "http://192.168.20.106/LFServer/Meta/Downloads?" + res;
-      //     window.open(url);
-      //   })
-      //   .catch(() => {});
     },
 
     handleSizeChange(val) {
-      this.pageSize = val;
-      this.queryInfo();
+      this.listData.pageSize = val;
+      this.listData.pageIndex = 1;
+      this.getMetaData();
     },
     handleCurrentChange(val) {
-      this.pageIndex = val;
-      this.currentPage = val;
-      this.queryInfo();
+      this.listData.pageIndex = val;
+      this.getMetaData();
+    },
+    //鏍戝垪琛ㄧ敓鎴�
+    treeData(source) {
+      let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕
+      return cloneData.filter((father) => {
+        // 寰幆鎵�鏈夐」
+        let branchArr = cloneData.filter((child) => father.id == child.pid); // 瀵规瘮ID锛屽垎鍒笂涓嬬骇鑿滃崟锛屽苟杩斿洖鏁版嵁
+        branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊�
+        return father.pid == 0; // 杩斿洖涓�绾ц彍鍗�
+      });
+    },
+    showPreview(row) {
+      let name = row.name;
+      if (!name) return false;
+      return (
+        name.indexOf("pdf") != -1 ||
+        name.indexOf("jpg") != -1 ||
+        name.indexOf("gif") != -1 ||
+        name.indexOf("png") != -1 ||
+        name.indexOf("jpeg") != -1
+      );
+    },
+    handlePreview(row) {
+      let name = row.name;
+      this.refreshAttatchDetail();
+
+      if (name.indexOf(".pdf") != -1) {
+        this.dialog.isPdf = true;
+      } else if (
+        name.indexOf(".jpg") != -1 ||
+        name.indexOf(".gif") != -1 ||
+        name.indexOf(".png") != -1 ||
+        name.indexOf(".jpeg") != -1
+      ) {
+        this.dialog.isJpg = true;
+      }
+      this.dialog.dialogVisible = true;
+
+      var url =
+        BASE_URL +
+        "/inquiry/downloadForView?guid=" +
+        row.guid +
+        "&token=" +
+        getToken();
+      this.dialog.src = url;
+    },
+    refreshAttatchDetail() {
+      this.dialog.src = "";
+      this.dialog.dialogVisible = false;
+      this.dialog.isPdf = false;
+      this.dialog.isJpg = false;
     },
   },
 };
@@ -562,134 +2004,22 @@
 <style lang="less" scoped>
 //@import url(); 寮曞叆鍏叡css绫�
 .authorityManagement_box {
-  background: rgb(240, 242, 245);
-  border-radius: 10px;
-  height: 100%;
-  padding: 10px;
-  box-sizing: border-box;
+  height: 98%;
+  width: 98%;
+  padding: 0.5%;
+
   .inquire {
-    position: relative;
-    height: 50px;
-    overflow: auto;
     padding: 8px;
-    margin-top: 20px;
-    background: #fff;
+    //margin-top: 20px;
+
     border-radius: 5px;
-    border: 1px solid rgb(202, 201, 204);
-    margin-bottom: 20px;
+
+    //margin-bottom: 20px;
     .el-form-item {
       margin: 5px;
     }
   }
-  .bottom {
-    width: 100%;
-    height: 83%;
-    .rightTable {
-      height: 100%;
-      width: 100%;
-      .table_box {
-        width: 100%;
-        height: 93%;
-        margin: 0 auto;
-        overflow: auto;
-        background: #fff;
-        .el-table {
-          height: 100%;
-          // overflow: auto;
-        }
-        .el-table /deep/ .el-table__header-wrapper tr th {
-          background-color: rgb(255, 255, 255) !important;
-          color: rgb(0, 0, 0);
-        }
-        // 淇敼姣忚鏍峰紡锛�
-        .el-table /deep/ .el-table__row {
-          background-color: rgba(255, 255, 255) !important;
-          color: rgb(0, 0, 0);
-        }
-        .el-table /deep/ .el-table__body tr.current-row > td {
-          background-color: rgb(211, 211, 211) !important;
-        }
-        .el-table /deep/ .el-table__body tr:hover > td {
-          background-color: rgb(211, 211, 211) !important;
-        }
-        // 淇敼琛ㄦ牸姣忚杈规鐨勬牱寮忥細
-        .el-table /deep/ td,
-        .el-table /deep/ th.is-leaf {
-          border-bottom: 1px solid #eee;
-          border-right: 1px solid #eee;
-        }
-        .el-table /deep/ .el-table__cell {
-          padding: 0;
-        }
-        // 璁剧疆琛ㄦ牸姣忚鐨勯珮搴︼細
-        .el-table /deep/ .el-table__header tr,
-        .el-table /deep/ .el-table__header th {
-          height: 40px;
-        }
-        .el-table__body tr,
-        .el-table__body td {
-          height: 40px;
-          padding: 0;
-        }
-        // 璁剧疆琛ㄦ牸杈规棰滆壊锛�
 
-        .el-table--border::after,
-        .el-table--group::after {
-          width: 0;
-        }
-        .el-table::before {
-          height: 0;
-        }
-        //   a {
-        //     color: #000;
-        //   }
-      }
-    }
-  }
-  .infoBox {
-    width: 500px;
-    border: 1px solid #eee;
-    position: absolute;
-    z-index: 100;
-    top: 15%;
-    right: 25%;
-    background-color: #fff;
-    .el-card {
-      background-color: transparent;
-      span {
-        font-size: 16px;
-        font-weight: 600;
-      }
-    }
-    .contentBox {
-      margin: 0 aotu 10px;
-      height: 600px;
-      overflow: auto;
-      p {
-        // background-color: #bfa;
-        // margin-bottom: 10px;
-        font-size: 14px;
-      }
-    }
-  }
-  /deep/ .el-dialog {
-    // width: 500px !important;
-    // margin-top: 10vh !important;
-  }
-
-  /deep/.el-dialog .el-input__inner {
-    width: 300px;
-  }
-  /deep/ .el-dialog__body {
-    padding: 0px 30px;
-  }
-  /deep/ .el-dialog__footer {
-    padding-top: 0 !important;
-    width: 200px;
-    display: flex;
-    margin: 0 auto;
-    justify-content: center;
-  }
   .dotClass {
     width: 10px;
     height: 10px;
@@ -697,15 +2027,31 @@
     display: block;
     margin-left: 10px; //杩欎釜鐢ㄤ簬鍦嗙偣灞呬腑
   }
+
   .downloadBox {
     position: absolute;
     top: 20%;
-    left: 50%;
+    left: 40%;
     padding: 20px;
-    background-color: #fff;
-    width: 20%;
-    border: 1px solid #000;
+
+    width: 30%;
+
     border-radius: 10px;
   }
+  .preview-dialog {
+    .pdfClass {
+      height: 70vh;
+      width: 100%;
+      position: relative;
+    }
+  }
+  .el-divider--horizontal {
+    margin: 15px 0;
+  }
+  .gdbTableBox {
+    width: 100%;
+    height: 740px;
+    overflow-y: auto;
+  }
 }
 </style>

--
Gitblit v1.9.3