Ver Fonte

修改hover框背景色

wangcc há 2 anos atrás
pai
commit
7266677128
2 ficheiros alterados com 281 adições e 215 exclusões
  1. BIN
      src/assets/img/hoverbac.png
  2. 281 215
      src/components/numerical.vue

BIN
src/assets/img/hoverbac.png


+ 281 - 215
src/components/numerical.vue

@@ -1,248 +1,314 @@
 <!--
- * @LastEditors: gcz
+ * @LastEditors: wangcc
 -->
 <template>
-    <div class="numerical" ref="numericalRef">
-        <div class="ntitle">{{$store.state.addr.selectAddr}}{{ntitle}}</div>
-        <!-- <div class="ntitle">
+  <div class="numerical" ref="numericalRef">
+    <div class="ntitle">{{$store.state.addr.selectAddr}}{{ntitle}}</div>
+    <!-- <div class="ntitle">
             <span v-if="$store.state.addr.mapLevel=='province'">{{$store.state.addr.selectAddr}}{{ntitle}}</span>
             <span v-if="$store.state.addr.mapLevel=='city'">{{$store.state.addr.selectAddr}}{{ntitle}}</span>
             <span v-if="$store.state.addr.mapLevel=='district'">{{$store.state.addr.selectAddr}}{{ntitle}}</span>
             <span v-if="$store.state.addr.mapLevel=='street'">{{$store.state.addr.selectAddr}}{{ntitle}}</span>
-        </div> -->
-        <!-- <div class="addr">{{$store.state.addr.selectAddr}}</div> -->
-        <div class="item-wrap">
-            <div class="inner u-flex u-flex-wrap">
-                <div class="numerical-item" v-for="(item,index) in data" @mouseenter="showDetails(item)"  @mouseleave="unShowDetails" :key="item.name+index">
-                    <div class="cell name">{{item.name}}</div>
-                    <span class="cell number">{{item.number}}</span>
-                    <span class="cell unit">{{item.unit}}</span>
-                </div>
-            </div>
-        </div>
-        <div class="detail-wrap"  @mouseenter="isShowDetails=true" @mouseleave="isShowDetails=false" v-show="isShowDetails" ref="detailRef">
-            <el-table :key="hotKey" :data="detailsData" style="width: 100%;overflow-y: auto;" :height="pageName=='economics'?425:null" >
-
-                <el-table-column :label="item.title" :prop="item.value"  v-for="(item, index) in headerList" :key="index" align="center">
-                    <template slot-scope="scope">
-                        {{scope.row[item.value]||'-'}}
-                    </template>
-                </el-table-column>
-
-            </el-table>
+    </div>-->
+    <!-- <div class="addr">{{$store.state.addr.selectAddr}}</div> -->
+    <div class="item-wrap">
+      <div class="inner u-flex u-flex-wrap">
+        <div
+          class="numerical-item"
+          v-for="(item,index) in data"
+          @mouseenter="showDetails(item)"
+          @mouseleave="unShowDetails"
+          :key="item.name+index"
+        >
+          <div class="cell name">{{item.name}}</div>
+          <span class="cell number">{{item.number}}</span>
+          <span class="cell unit">{{item.unit}}</span>
         </div>
+      </div>
     </div>
+    <div
+      class="detail-wrap"
+      @mouseenter="isShowDetails=true"
+      @mouseleave="isShowDetails=false"
+      v-show="isShowDetails"
+      ref="detailRef"
+    >
+      <el-table
+        :key="hotKey"
+        :data="detailsData"
+        style="width: 100%;overflow-y: auto;"
+        height="240"
+      >
+        <el-table-column
+          :label="item.title"
+          :prop="item.value"
+          v-for="(item, index) in headerList"
+          :key="index"
+          align="center"
+        >
+          <template slot-scope="scope">{{scope.row[item.value]||'-'}}</template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
 </template>
 
 <script>
-    import { forestFarmDetail,treeListDetail,baseItemDetail } from '@/service/index';
-    export default {
-        name: '',
-        props:{
-            data:{
-                type: Array,
-                default: null,
-            },
-            ntitle:{
-                type: String,
-                default: '数据概况',
-            },
-            pageName:{
-                type: String,
-                default: '',
-            },
-        },
-        components: {},
-        data () {
-            return {
-                isShowDetails:false,
-                headerList:[],
-                detailsData:[],
-                hotKey: Date.now(),
-                
-            };
-        },
-        created(){
-            // console.log('data',this.data);
-        },
-        mounted(){
-            document.addEventListener('click',this.outClick)
-        },
-        destroyed(){
-            document.removeEventListener('click',this.outClick)
-        },
-        methods: {
-            showDetails(item){
-                // console.log('pageName',this.pageName);
-
-                //排除触发字段
-                let excludeArr = ['优势树种']
-                if(excludeArr.includes(item.name)){
-                    this.isShowDetails = false;
-                    return
-                }
-                let page = {
-                forest: this.getForestData,
-                treeSpecies: this.getTreeSpeciesData,
-                economics:  this.getEconomicsData
-                };
-                page[this.pageName] && page[this.pageName]();
-            },
-            unShowDetails(){
-                this.isShowDetails = false;
+import {
+  forestFarmDetail,
+  treeListDetail,
+  baseItemDetail
+} from '@/service/index';
+export default {
+  name: '',
+  props: {
+    data: {
+      type: Array,
+      default: null
+    },
+    ntitle: {
+      type: String,
+      default: '数据概况'
+    },
+    pageName: {
+      type: String,
+      default: ''
+    }
+  },
+  components: {},
+  data() {
+    return {
+      isShowDetails: false,
+      headerList: [],
+      detailsData: [],
+      hotKey: Date.now()
+    };
+  },
+  created() {
+    // console.log('data',this.data);
+  },
+  mounted() {
+    document.addEventListener('click', this.outClick);
+  },
+  destroyed() {
+    document.removeEventListener('click', this.outClick);
+  },
+  methods: {
+    showDetails(item) {
+      // console.log('pageName',this.pageName);
 
-            },
-            getForestData(){
-                this.isShowDetails = true;
-                forestFarmDetail().then(res=>{
-                    let resData = res.rows;
-                    this.detailsData = resData;
-                    // console.log('forestFarmDetail res',this.detailsData);
+      //排除触发字段
+      let excludeArr = ['优势树种'];
+      if (excludeArr.includes(item.name)) {
+        this.isShowDetails = false;
+        return;
+      }
+      let page = {
+        forest: this.getForestData,
+        treeSpecies: this.getTreeSpeciesData,
+        economics: this.getEconomicsData
+      };
+      page[this.pageName] && page[this.pageName]();
+    },
+    unShowDetails() {
+      this.isShowDetails = false;
+    },
+    getForestData() {
+      this.isShowDetails = true;
+      forestFarmDetail()
+        .then((res) => {
+          let resData = res.rows;
+          this.detailsData = resData;
+          // console.log('forestFarmDetail res',this.detailsData);
 
-                    this.getHeaderList(resData);
+          this.getHeaderList(resData);
+        })
+        .catch((err) => {
+          console.log('forestFarmDetail err', err);
+        });
+    },
+    getTreeSpeciesData() {
+      this.isShowDetails = true;
+      treeListDetail()
+        .then((res) => {
+          let resData = res.data;
+          this.detailsData = resData;
+          // console.log('treeListDetail res',this.detailsData);
+          this.getHeaderList(resData);
+        })
+        .catch((err) => {
+          console.log('treeListDetail err', err);
+        });
+    },
+    getEconomicsData() {
+      this.isShowDetails = true;
+      baseItemDetail()
+        .then((res) => {
+          let resData = res.rows;
+          this.detailsData = resData;
+          console.log('baseItemDetail res', this.detailsData);
+          this.getHeaderList(resData);
+        })
+        .catch((err) => {
+          console.log('baseItemDetail err', err);
+        });
+    },
+    getHeaderList(data) {
+      let data1 = Object.keys(data[0]).map((key) => {
+        console.log('pageName', this.pageName);
+        let titles = {};
+        if (this.pageName == 'forest') {
+          titles = {
+            forestName: '林场名称',
+            smallClassStock: '蓄积量(m³)',
+            landArea: '占地面积(亩)',
+            smallClassCount: '小班数量'
+          };
+        } else if (this.pageName == 'treeSpecies') {
+          titles = {
+            treeName: '树种名称',
+            treeStock: '树种蓄积(m³)',
+            treeCount: '树种株数(株)'
+          };
+        } else if (this.pageName == 'economics') {
+          titles = {
+            baseName: '基地名称',
+            baseNumber: '基地数量',
+            baseArea: '基地面积(亩)',
+            corpNumber: '作物数量',
+            corpName: '作物名称',
+            outputValue: '预估产值(万元)'
+          };
+        }
 
-                }).catch((err) => {
-                    console.log('forestFarmDetail err', err);
-                });
-            },
-            getTreeSpeciesData(){
-                this.isShowDetails = true;
-                treeListDetail().then(res=>{
-                    let resData = res.data;
-                    this.detailsData = resData;
-                    // console.log('treeListDetail res',this.detailsData);
-                    this.getHeaderList(resData);
+        return { title: titles[key], value: key };
+      });
 
-                }).catch((err) => {
-                    console.log('treeListDetail err', err);
-                });
-            },
-            getEconomicsData(){
-                this.isShowDetails = true;
-                baseItemDetail().then(res=>{
-                    let resData = res.rows;
-                    this.detailsData = resData;
-                    console.log('baseItemDetail res',this.detailsData);
-                    this.getHeaderList(resData);
+      let newData = JSON.parse(JSON.stringify(data1));
 
-                }).catch((err) => {
-                    console.log('baseItemDetail err', err);
-                });
-            },
-            getHeaderList(data){
-                let data1 = Object.keys(data[0]).map((key) => {
-                    console.log('pageName',this.pageName);
-                    let titles={};
-                    if(this.pageName=='forest'){
-                        titles={forestName:'林场名称',smallClassStock:'蓄积量(m³)',landArea:'占地面积(亩)',smallClassCount:'小班数量'};
-                    }else if(this.pageName=='treeSpecies'){
-                        titles={treeName:'树种名称',treeStock:'树种蓄积(m³)',treeCount:'树种株数(株)'};
-                    }else if(this.pageName=='economics'){
-                        titles={
-                            baseName:'基地名称',
-                            baseNumber:'基地数量',
-                            baseArea:'基地面积(亩)',
-                            corpNumber:'作物数量',
-                            corpName:'作物名称',
-                            outputValue:'预估产值(万元)',
-                        };
-                    }
-                    
-                    return { title: titles[key] ,value:key};
-                });
+      if (this.pageName == 'economics') {
+        newData.splice(1, 1); //删除基地数量
+        newData.splice(2, 1); //删除作物数量
+      }
 
-                let newData = JSON.parse(JSON.stringify(data1));
-                
-                if(this.pageName=='economics'){
-                    newData.splice(1,1);//删除基地数量
-                    newData.splice(2,1);//删除作物数量
-                }
-                
-                this.headerList = newData;
-                // console.log('this.headerList',this.headerList);
-                this.hotKey = Date.now()
-            },
-            outClick(e){
-                let detailRef=this.$refs.numericalRef
-                if(!detailRef.contains(e.target)&&this.isShowDetails){
-                    this.isShowDetails=false
-                }
-            }
-        },
+      this.headerList = newData;
+      // console.log('this.headerList',this.headerList);
+      this.hotKey = Date.now();
+    },
+    outClick(e) {
+      let detailRef = this.$refs.numericalRef;
+      if (!detailRef.contains(e.target) && this.isShowDetails) {
+        this.isShowDetails = false;
+      }
     }
+  }
+};
 </script>
 
 <style lang='scss' scoped>
 // @import url('https://fonts.font.im/css?family=Rubik');
-.numerical{
-    // box-sizing: border-box;
-    // margin-bottom: 2vh;
-    // border-radius: 10px;
-    // padding: 20px 24px;
-    // border: 1px solid var(--main-color);
-    .item-wrap{
-        height: calc( 100% - 48px );
-        display:flex;
-        align-items: center;
-        .inner{
-            width: 100%;
-        }
-        .numerical-item{
-            padding: 0 15px 15px 15px;
-            box-sizing: border-box;
-            width: 50%;
-            text-align: center;
-            .name{
-                font-size: 18px;
-                color: #a6b7bf;
-                margin-bottom: 5px;
-            }
-            .number{
-                color: var(--main-color);
-                font-size: 35px;
-                margin-right: 5px;
-                font-family: 'Rubik', sans-serif;
-            }
-            .unit{
-                font-size: 17px;
-                color: var(--main-color);
-            }
-        }
+.numerical {
+  // box-sizing: border-box;
+  // margin-bottom: 2vh;
+  // border-radius: 10px;
+  // padding: 20px 24px;
+  // border: 1px solid var(--main-color);
+  .item-wrap {
+    height: calc(100% - 48px);
+    display: flex;
+    align-items: center;
+    .inner {
+      width: 100%;
+    }
+    .numerical-item {
+      padding: 0 15px 15px 15px;
+      box-sizing: border-box;
+      width: 50%;
+      text-align: center;
+      .name {
+        font-size: 18px;
+        color: #a6b7bf;
+        margin-bottom: 5px;
+      }
+      .number {
+        color: var(--main-color);
+        font-size: 35px;
+        margin-right: 5px;
+        font-family: 'Rubik', sans-serif;
+      }
+      .unit {
+        font-size: 17px;
+        color: var(--main-color);
+      }
+    }
+  }
+  .detail-wrap {
+    position: absolute;
+    top: 0;
+    right: -115%;
+    z-index: 99;
+    width: 115%;
+    overflow: hidden;
+    border-radius: 10px;
+    // border: 1px solid rgb(2, 238, 255);
+    ::-webkit-scrollbar {
+      width: 0.3rem;
+      height: 0.625rem;
+      background: transparent;
+    }
+    ::-webkit-scrollbar-thumb {
+      background-color: rgba($color: rgba(4, 175, 206, 0.884), $alpha: 0.6);
+      border-radius: 2em;
+    }
+    /deep/ .el-table{
+        background: url('../assets/img/hoverbac.png');
+        background-repeat: no-repeat;
+        background-size: 100% 100%;
+    }
+   /deep/ .el-table th {
+      background-color: transparent !important;
+      color: #fff;
     }
-    .detail-wrap{
-        position: absolute;
-        top: 0;
-        right: -115%;
-        z-index: 99;
-        width: 115%;
-        overflow: hidden;
-        border-radius: 10px;
-        border: 1px solid rgb(2, 238, 255);
-        ::-webkit-scrollbar {width: .5rem;height: .625rem;background: #ddd;}
-        ::-webkit-scrollbar-thumb {background-color: #333;border-radius: 2em;}
 
+    /deep/ .el-table tr {
+      background-color: transparent !important;
+      color: #fff;
+    }
+    /deep/ .el-table--enable-row-transition .el-table__body td,
+    .el-table .cell {
+      background-color: transparent;
+    }
+    /deep/ .el-table::before {
+      //去除底部白线
+      left: 0;
+      bottom: 0;
+      width: 100%;
+      height: 0px;
     }
+    /deep/ .el-table td.el-table__cell, /deep/ .el-table th.el-table__cell.is-leaf{
+        border-bottom:none;
+    }
+  }
+   
 }
 
-@media only screen and (max-width : 1280px) {
+@media only screen and (max-width: 1280px) {
   //概况
-    .numerical{
-
-        .item-wrap{
-            .numerical-item{
-                padding: 0 0 15px 5px;
-                .name{
-                    font-size: 16px;
-                }
-                .number{
-                    font-size: 24px;
-                }
-                .unit{
-                    font-size: 16px;
-                }
-            }
+  .numerical {
+    .item-wrap {
+      .numerical-item {
+        padding: 0 0 15px 5px;
+        .name {
+          font-size: 16px;
+        }
+        .number {
+          font-size: 24px;
         }
+        .unit {
+          font-size: 16px;
+        }
+      }
     }
+  }
 }
-
 </style>