From 3b1d1e53e902631099a483511724ee7c423db140 Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期四, 02 二月 2023 15:29:17 +0800
Subject: [PATCH] 资料馆界面优化

---
 src/views/Archive/index.vue |  408 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 259 insertions(+), 149 deletions(-)

diff --git a/src/views/Archive/index.vue b/src/views/Archive/index.vue
index bed07ff..e8ca548 100644
--- a/src/views/Archive/index.vue
+++ b/src/views/Archive/index.vue
@@ -4,60 +4,38 @@
       <div class="top_left">
         <My-bread :list="[`${$t('synthesis.synthesis')}`, `${$t('synthesis.archive')}`]"></My-bread>
       </div>
-      <div class="top_right">
-        <el-form
-          :inline="true"
-          :model="formInline"
-          class="demo-form-inline"
-        >
-          <el-form-item>
-            <el-input
-              v-model="formInline.tab"
-              suffix-icon="el-icon-search"
-              :placeholder="$t('common.pleaseInput')"
-            ></el-input>
-          </el-form-item>
-          <el-form-item>
-            <el-button
-              icon="el-icon-search"
-              @click="searchDataLibSelectTabs"
-              class="primaries"
-            >{{
-              $t('common.iquery')
-            }}</el-button>
-            <el-button
-              icon="el-icon-refresh"
-              @click="restDataLibSelectTabs"
-              type="info"
-            >{{
-              $t('common.reset')
-            }}</el-button>
-          </el-form-item>
-          <el-form-item>
-            <el-button
-              @click="getSpaceMapVisibale"
-              class="primaries"
-            >{{
-              $t('synthesis.rangequery')
-            }}</el-button>
-          </el-form-item>
-        </el-form>
-      </div>
+
     </div>
     <div class="box_item">
       <div class="box_left">璧勬枡绫诲埆</div>
       <div class="box_cont">
+
+        <div v-if="isShowFirstCheck">
+          <el-checkbox-group v-model="checkedDataType">
+            <el-checkbox
+              @change="handleCheckedDataTypeChange(item)"
+              v-for="(item, index)  in showList"
+              :label="item.name"
+              :key="index"
+            >{{item.name}}</el-checkbox>
+          </el-checkbox-group>
+        </div>
         <div
+          v-if="!isShowFirstCheck"
           class="box_div"
           v-for="(item, index) in showList"
           :key="index"
+          @click="changeListDataType(item)"
         >
-          <el-checkbox
+          <!-- <el-checkbox
             v-if="isShowFirstCheck"
             v-model="item.isCheckedFlag"
             :checked="item.isCheckedFlag"
-          ></el-checkbox>
-          <div style="margin-left: 5px">{{ item.name }}</div>
+          ></el-checkbox> -->
+          <div
+            :class="{menuActive:dataTypeName == item.name}"
+            style="margin-left: 5px"
+          >{{ item.name }}</div>
         </div>
       </div>
       <div class="box_right">
@@ -71,24 +49,36 @@
           class="box_div box_menu"
           @click="checkEvent(1)"
         >
-          <i class="el-icon-plus"></i> {{ $t('synthesis.Multiplechoice') }}
+          <i class="el-icon-plus"></i>
+          <span v-if="!isShowFirstCheck">{{ $t('synthesis.Multiplechoice') }}</span>
+          <span v-if="isShowFirstCheck">{{ $t('synthesis.Singlechoice') }}</span>
         </div>
       </div>
     </div>
     <div class="box_item">
       <div class="box_left">椤圭洰鍚嶇О</div>
       <div class="box_cont">
+        <div v-if=" isShowSecondCheck">
+          <el-checkbox-group v-model="checkedEntryName">
+            <el-checkbox
+              @change="handleCheckedEntryNameChange(item)"
+              v-for="(item, index)  in showList1"
+              :label="item.name"
+              :key="index"
+            >{{item.name}}</el-checkbox>
+          </el-checkbox-group>
+        </div>
         <div
+          v-if="!isShowSecondCheck"
           class="box_div"
           v-for="(item, index) in showList1"
           :key="index"
+          @click="changeListEntryName(item)"
         >
-          <el-checkbox
-            v-if="isShowSecondCheck"
-            v-model="item.isCheckedFlag"
-            :checked="item.isCheckedFlag"
-          ></el-checkbox>
-          <div style="margin-left: 5px">{{ item.name }}</div>
+          <div
+            :class="{menuActive:EntryName == item.name}"
+            style="margin-left: 5px"
+          >{{ item.name }}</div>
         </div>
       </div>
       <div class="box_right">
@@ -102,11 +92,14 @@
           class="box_div box_menu"
           @click="checkEvent(2)"
         >
-          <i class="el-icon-plus"></i> {{ $t('synthesis.Multiplechoice') }}
+          <i class="el-icon-plus"></i>
+          <span v-if="!isShowSecondCheck">{{ $t('synthesis.Multiplechoice') }}</span>
+          <span v-if="isShowSecondCheck">{{ $t('synthesis.Singlechoice') }}</span>
         </div>
       </div>
     </div>
     <div class="bottom_content">
+
       <div class="bottom_left">
         <!-- <div class="box_div">褰撳墠鎼滅储鍏抽敭璇�:</div> -->
         <div>
@@ -128,84 +121,96 @@
           </ul>
         </div>
       </div>
-      <div
-        v-if="isMenuActive"
-        class="bottom_right"
-      >
-        <ul>
-          <li
-            v-for="(item, index) in dataType"
-            :key="index"
-          >
-            <div
-              class="box_div"
-              @click="getShowTable(item)"
-            >
-              {{ item.tabDesc }} 
-            </div>
-          </li>
-        </ul>
-      </div>
-      <div
-        v-if="!isMenuActive"
-        class="bottom_right"
-      >
-        <el-form
-          :inline="true"
-          :model="queryForm"
-          class="demo-form-inline"
-        >
-          <el-form-item>
-            <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>
-            <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>
-            
-            <el-button
-              type="danger"
-              size="small"
-              @click="deleteMetaInfo"
-              icon="el-icon-delete"
-            >{{ $t('common.delete') }}</el-button>
-          </el-form-item> -->
-          <!-- <el-form-item>
-            <el-button
-              @click="setBatchDownload"
-              icon="el-icon-download"
-              type="success"
-              size="small"
-            >鎵归噺涓嬭浇</el-button>
-          </el-form-item> -->
-        </el-form>
+      <div class="bottom_right">
+        <div>
+          <el-form
+            :inline="true"
+            :model="formInline"
+            class="demo-form-inline"
+          >
+            <!-- <el-form-item>
+              <el-cascader
+                v-model="formInline.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>
+              <el-cascader
+                v-model="formInline.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>
+              <el-input
+                v-model="formInline.tab"
+                suffix-icon="el-icon-search"
+                :placeholder="$t('common.pleaseInput')"
+              ></el-input>
+            </el-form-item>
+            <el-form-item>
+              <el-button
+                icon="el-icon-search"
+                @click="searchDataLibSelectTabs"
+                size="mini"
+              >{{
+              $t('common.iquery')
+            }}</el-button>
+              <el-button
+                icon="el-icon-refresh"
+                @click="restDataLibSelectTabs"
+                type="info"
+                size="mini"
+              >{{
+              $t('common.reset')
+            }}</el-button>
+            </el-form-item>
+            <el-form-item>
+              <el-button
+                @click="getSpaceMapVisibale"
+                size="mini"
+              >{{
+              $t('synthesis.rangequery')
+            }}</el-button>
+            </el-form-item>
+          </el-form>
+        </div>
+        <div v-if="isMenuActive">
+          <ul>
+            <li
+              v-for="(item, index) in dataType"
+              :key="index"
+            >
+              <div
+                class="box_div"
+                @click="getShowTable(item)"
+              >
+                {{ item.tabDesc }}
+              </div>
+            </li>
+          </ul>
+        </div>
         <div
           class="boxCard"
+          v-if="!isMenuActive"
           v-for="(item,index) in tableData1"
         >
           <el-card class="box-card">
@@ -234,7 +239,6 @@
             <div class="cardItem"> {{$t('dataManage.vmobj.createontime')}} : {{format(item.createTime)}} </div>
           </el-card>
         </div>
-
       </div>
     </div>
     <div class="panerPage">
@@ -770,10 +774,13 @@
   selectdirTab,
   selectdepTab,
   deleteMeta,
+  dataLib_selectProject,
+  dataLib_selectBaseType,
+  dataLib_selectBusinessType
 } from '../../api/api';
 import $ from 'jquery'
 import { getToken } from '@/utils/auth';
-import { data_type, project_name } from '../../components/js/archive.js';
+// import { data_type, project_name } from '../../components/js/archive.js';
 import MyBread from '../../components/MyBread.vue';
 import MapSdk from '../../components/mapsdk.vue'
 export default {
@@ -803,6 +810,12 @@
       }
     };
     return {
+      data_type: [],
+      project_name: [],
+      checkedDataType: [],
+      checkedEntryName: [],
+      dataTypeName: '涓嶉檺',
+      EntryName: '涓嶉檺',
       conditionVisible: false,
       formSql: {
         field: '',
@@ -815,11 +828,11 @@
       fromSqlflag: false,
       filedsOption: [],
       condOption: [],
-      queryForm: {
-        dirid: null,
+
+      formInline: {
+        tab: '', fileName: '', dirid: null,
         depid: null,
       },
-      formInline: { tab: '', fileName: '' },
       codeForm: {
         password: '',
         repassword: '',
@@ -894,7 +907,6 @@
     };
   },
   computed: {
-
     newList() {
       this.listType.forEach((item) => {
         this.$set(item, 'isCheckedFlag', false);
@@ -902,7 +914,7 @@
       return this.listType;
     },
     showList() {
-      this.listType = data_type;
+      this.listType = this.data_type;
       if (this.showFirstAll == false) {
         var showList = [];
         if (this.newList.length > 8) {
@@ -924,7 +936,7 @@
       return this.listProject;
     },
     showList1() {
-      this.listProject = project_name;
+      this.listProject = this.project_name;
       if (this.showSecondAll == false) {
         var showList1 = [];
         if (this.newList1.length > 8) {
@@ -941,8 +953,41 @@
     },
   },
   methods: {
+    handleCheckedEntryNameChange(res) {
+      if (this.checkedEntryName.indexOf(res.name) != -1) {
+        if (res.name == "涓嶉檺") {
+          this.checkedEntryName = ['涓嶉檺']
+        } else {
+          var index = this.checkedEntryName.indexOf('涓嶉檺')
+          if (index > -1) {
+            this.checkedEntryName.splice(index, 1);
+          }
+        }
+      }
+    },
+    handleCheckedDataTypeChange(res) {
+      if (this.checkedDataType.indexOf(res.name) != -1) {
+        if (res.name == "涓嶉檺") {
+          this.checkedDataType = ['涓嶉檺']
+        } else {
+          var index = this.checkedDataType.indexOf('涓嶉檺')
+          if (index > -1) {
+            this.checkedDataType.splice(index, 1);
+          }
+        }
+      }
 
-
+    },
+    changeListDataType(res) {
+      if (this.isShowFirstCheck == false) {
+        this.dataTypeName = res.name;
+      }
+    },
+    changeListEntryName(res) {
+      if (this.isShowSecondCheck == false) {
+        this.EntryName = res.name;
+      }
+    },
     getSpaceMapVisibale() {
       this.dialogMapVisible = true;
       this.showMapVisible = true;
@@ -983,14 +1028,29 @@
       switch (res) {
         case 1:
           this.isShowFirstCheck = !this.isShowFirstCheck;
+          if (this.isShowFirstCheck == false) {
+            this.checkedDataType = []
+            this.dataTypeName = '涓嶉檺';
+          } else {
+            this.dataTypeName = null;
+            this.checkedDataType = ['涓嶉檺']
+          }
+
           break;
         case 2:
           this.isShowSecondCheck = !this.isShowSecondCheck;
+          if (this.isShowSecondCheck == false) {
+            this.checkedEntryName = []
+            this.EntryName = '涓嶉檺';
+          } else {
+            this.EntryName = null;
+            this.checkedEntryName = ['涓嶉檺']
+          }
           break;
       }
     },
     getMenuChange(res) {
-
+      this.getQueryDirTree();
       this.formInline.tab = ""
       switch (res) {
         case 1:
@@ -1011,9 +1071,9 @@
             dirid: null,
             name: null
           }
-          this.getQueryDirTree();
 
           this.isMenuActive = false;
+          this.getMetaData();
           break;
       }
     },
@@ -1024,7 +1084,7 @@
         this.$message.error('鍗曚綅鍒楄〃鑾峰彇澶辫触');
         return;
       }
-      this.queryForm.dirid = 1;
+      this.formInline.dirid = 1;
       this.companyOption = this.treeData(res.result);
       this.getQueryDepTree();
     },
@@ -1034,9 +1094,9 @@
         this.$message.error('鍗曚綅鍒楄〃鑾峰彇澶辫触');
         return;
       }
-      this.queryForm.depid = 1;
+      this.formInline.depid = 1;
       this.companyOption1 = this.treeData(res.result);
-      this.getMetaData();
+      // this.getMetaData();
     },
 
     // 鏌ヨ
@@ -1046,7 +1106,7 @@
     },
     // 閲嶇疆鏌ヨ
     resetInfo(formName) {
-      this.queryForm.name = '';
+      this.formInline.name = '';
       this.listData.pageSize = 10;
       this.listData.pageIndex = 1;
       this.listData.name = null;
@@ -1172,8 +1232,8 @@
       this.codeForm.repassword = '';
     },
     getMetaData() {
-      this.listData.dirid = this.queryForm.dirid
-      this.listData.depid = this.queryForm.depid;
+      this.listData.dirid = this.formInline.dirid
+      this.listData.depid = this.formInline.depid;
       dataLib_selectByPageForMeta(this.listData).then((res) => {
 
         this.tableData1 = res.result;
@@ -1184,13 +1244,13 @@
     handleChange(value) {
       this.listData.pageSize = 10;
       this.listData.pageIndex = 1;
-      this.queryForm.dirid = value;
+      this.formInline.dirid = value;
       this.getMetaData();
     },
     handleChange1(value) {
       this.listData.pageSize = 10;
       this.listData.pageIndex = 1;
-      this.queryForm.depid = value;
+      this.formInline.depid = value;
       this.getMetaData();
     },
     //鏍戝垪琛ㄧ敓鎴�
@@ -1301,7 +1361,7 @@
       this.listTypeData.name = res.entity;
       this.listTypeData.pageIndex = 1;
       this.listTypeData.pageSize = 10;
-      this.dialogtitle = res.tabDesc ;
+      this.dialogtitle = res.tabDesc;
       this.upAttach.tabName = res.ns + "." + res.tab;
       this.filedsLayer = this.getCollapseDomFiled();
 
@@ -1694,10 +1754,49 @@
     add0(m) {
       return m < 10 ? '0' + m : m;
     },
+    async getDataTyeAndEntryName() {
+      const data = await dataLib_selectProject();//鏌ヨ椤圭洰鍚嶇О
+      if (data.code != 200) {
+        this.$message.error('椤圭洰鍒楄〃璋冪敤澶辫触');
+      }
+
+      const res = await dataLib_selectBaseType(); //鏌ヨ鍩虹鍦扮悊绫诲埆
+      if (res.code != 200) {
+        this.$message.error('鍩虹鍦扮悊绫诲埆鍒楄〃璋冪敤澶辫触');
+      }
+      const rest = await dataLib_selectBusinessType(); //鏌ヨ涓氬姟绫诲埆
+      if (rest.code != 200) {
+        this.$message.error('涓氬姟绫诲埆鍒楄〃璋冪敤澶辫触');
+      }
+      var std = [{ name: "涓嶉檺", id: null }]
+      var str = [{ name: "涓嶉檺", id: null }]
+      for (var i in data.result) {
+        std.push({
+          id: data.result[i].key,
+          name: data.result[i].value
+        })
+      }
+      this.project_name = std;
+      for (var i in res.result) {
+        str.push({
+          id: res.result[i].key,
+          name: res.result[i].value
+        })
+      }
+      for(var i in rest.result){
+          str.push({
+          id: rest.result[i].key,
+          name: rest.result[i].value
+        })
+      }
+      this.data_type = str;
+    }
   },
   mounted() {
     this.getDataLibSelectTabs();
     this.signGetPublicKey();
+    this.getQueryDirTree();
+    this.getDataTyeAndEntryName();
   },
 };
 </script>
@@ -1710,10 +1809,10 @@
   overflow-y: auto;
   background: #353539;
   .top_header {
-    width: calc(100% - 60px);
-    height: 70px;
+    width: calc(100% -20px);
+    height: 60px;
     display: flex;
-    padding: 0 30px;
+    padding: 0 10px;
     justify-content: space-between;
     border-bottom: 1px solid white;
     .top_left {
@@ -1817,7 +1916,7 @@
       }
     }
     .bottom_right {
-      width: calc(100% - 320px);
+      width: 100%;
       padding: 0px 20px;
       height: auto;
       color: white;
@@ -1852,6 +1951,9 @@
     display: flex;
     align-items: center;
     display: flex;
+    .menuActive {
+      color: #409eff;
+    }
   }
   .primaries {
     background: linear-gradient(180deg, #002992, #080472);
@@ -1940,6 +2042,10 @@
   /deep/ .el-select .el-input__inner {
     border-color: #fff !important;
   }
+  /deep/.el-checkbox {
+    color: #ffff;
+    line-height: 25px;
+  }
 }
 
 .elLink {
@@ -1956,6 +2062,10 @@
 }
 /deep/ .el-dialog {
   background: #303030;
+  z-index: 99;
+}
+.downloadBox {
+  z-index: 999;
 }
 /deep/.el-range-editor.is-active,
 .el-range-editor.is-active:hover,

--
Gitblit v1.9.3