From 6f5331c9ba8b6ba44b45b6a89d7c7c813ab8052d Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Fri, 08 Jul 2022 20:28:29 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/components/splitScreen/index.vue  |  153 ++----
 src/views/farm/index.vue              |  320 ++++++++++++
 src/components/remote/index.vue       |  128 +---
 src/components/selectTime/index.vue   |  307 ++++++++++++
 src/components/timeLine/index.vue     |  371 +++++++++-----
 src/styles/index.scss                 |    1 
 src/styles/publicBox/trace-table.scss |  141 +++++
 7 files changed, 1,088 insertions(+), 333 deletions(-)

diff --git a/src/components/remote/index.vue b/src/components/remote/index.vue
index 90e6af9..505957a 100644
--- a/src/components/remote/index.vue
+++ b/src/components/remote/index.vue
@@ -1,7 +1,15 @@
 /* eslint-disable camelcase */
 <template>
     <div style="height: 100%; width: 100%; position: relative;">
-        <div class="location-box">
+        <div v-show="SelectTimeFlag">
+            <select-time ref="leftRoller" :leftOrRight="'left'" class="l-time"></select-time>
+        </div>
+
+        <div v-show="SelectTimeFlag">
+            <select-time ref="rightRoller" :leftOrRight="'right'" class="r-time"></select-time>
+        </div>
+
+        <div class="location-box" v-show="!rollerCloseShow && !screenShow">
             <el-input
                 placeholder="请输入地点/经纬度:113.25,30.53"
                 v-model="location"
@@ -12,21 +20,21 @@
         </div>
 
         <div class="tool-box">
-            <div class="measure" v-show="screenShow">
+            <!-- <div class="measure" v-show="screenShow">
                 <div class="btn">
                     <span>
                         <i class="el-icon-time"></i>
                     </span>
                     标注
                 </div>
-            </div>
+            </div>-->
 
             <div class="measure" v-show="!screenShow">
-                <div class="btn">
+                <div class="btn" @click="deactivate">
                     <span>
                         <i class="el-icon-time"></i>
                     </span>
-                    标注
+                    清除
                 </div>
                 <div class="line"></div>
                 <div class="btn" @click="distanceSurface">
@@ -45,7 +53,7 @@
             </div>
 
             <div v-show="!rollerCloseShow && !screenShow" class="func">
-                <div class="btn">
+                <div class="btn" style="color: #fff; background: #469CF3; height: 100%;">
                     <span>
                         <i class="el-icon-time"></i>
                     </span>
@@ -95,6 +103,7 @@
 
     data () {
         return {
+            SelectTimeFlag: false,
             rollerCloseShow: false,
             screenShow: false,
             location: ''
@@ -138,76 +147,6 @@
             )
 
             // http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer
-
-            global.viewer.imageryLayers.addImageryProvider(
-                new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
-                    url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengyjjddom/MapServer/WMTS',
-                    // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
-                    layer: 'nanchengyjjddom',
-                    style: 'default',
-                    tileMatrixSetID: 'default028mm',
-                    format: 'image/png',
-                    tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
-                    maximumLevel: 19,
-                    tileMatrixLabels: [
-                        '0',
-                        '1',
-                        '2',
-                        '3',
-                        '4',
-                        '5',
-                        '6',
-                        '7',
-                        '8',
-                        '9',
-                        '10',
-                        '11',
-                        '12',
-                        '13',
-                        '14',
-                        '15',
-                        '16',
-                        '17',
-                        '18',
-                        '19'
-                    ]
-                })
-            )
-
-            global.viewer.imageryLayers.addImageryProvider(
-                new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
-                    url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
-                    // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
-                    layer: 'nanchengdom',
-                    style: 'default',
-                    tileMatrixSetID: 'default028mm',
-                    format: 'image/png',
-                    tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
-                    maximumLevel: 19,
-                    tileMatrixLabels: [
-                        '0',
-                        '1',
-                        '2',
-                        '3',
-                        '4',
-                        '5',
-                        '6',
-                        '7',
-                        '8',
-                        '9',
-                        '10',
-                        '11',
-                        '12',
-                        '13',
-                        '14',
-                        '15',
-                        '16',
-                        '17',
-                        '18',
-                        '19'
-                    ]
-                })
-            )
 
             // 矢量电子
             // global.viewer.imageryLayers.addImageryProvider(
@@ -354,12 +293,13 @@
             }
         },
 
-        closeSplitScreen () {
-            this.screenShow = false
-        },
-
         splitScreen () {
             this.screenShow = true
+            this.deactivate()
+        },
+
+        closeSplitScreen () {
+            this.screenShow = false
         },
 
         distanceSurface () {
@@ -376,19 +316,27 @@
                     key: 'e9533f5acb2ac470b07f406a4d24b4f0'
                 })
                 global.viewer.mapSplit.enable = true
-
-                global.viewer.mapSplit.addBaseLayer(baselayerElc)
             } else {
                 global.viewer.mapSplit.enable = true
             }
 
             num++
             this.rollerCloseShow = true
+            this.SelectTimeFlag = true
+            this.deactivate()
+            this.$refs.leftRoller.init()
+            this.$refs.rightRoller.init()
         },
 
         closeRollerShutters () {
             global.viewer.mapSplit.enable = false
             this.rollerCloseShow = false
+            this.SelectTimeFlag = false
+
+            this.$refs.leftRoller.clearLayer()
+            this.$refs.rightRoller.clearLayer()
+
+            // global.viewer.imageryLayers.removeAll()
         }
     }
 }
@@ -415,6 +363,22 @@
     width: 320px;
 }
 
+.l-time {
+    position: absolute;
+    top: 30px;
+    left: 25%;
+    transform: translate(-50%, 0);
+    z-index: 99;
+}
+
+.r-time {
+    position: absolute;
+    top: 30px;
+    right: 25%;
+    transform: translate(50%, 0);
+    z-index: 99;
+}
+
 .tool-box {
     display: flex;
     justify-content: space-between;
diff --git a/src/components/selectTime/index.vue b/src/components/selectTime/index.vue
new file mode 100644
index 0000000..b8259be
--- /dev/null
+++ b/src/components/selectTime/index.vue
@@ -0,0 +1,307 @@
+<template>
+    <!--时间线-->
+    <div>
+        <div class="current-select" @click="listFlag = !listFlag">
+            <div class="title">2019-2M第一季度</div>
+            <i class="el-icon-caret-bottom"></i>
+        </div>
+
+        <div class="list-box" v-show="listFlag">
+            <ul>
+                <li
+                    v-for="(item, index) in selectList"
+                    :key="index"
+                    @click="currentClick(item, index)"
+                >{{item.title}}</li>
+            </ul>
+        </div>
+    </div>
+</template>
+
+<script>
+let leftCurrentLayer = null
+let rightCurrentLayer = null
+
+window.splitScreenOneLayers = null
+window.splitScreenTwoLayers = null
+window.splitScreenThreeLayers = null
+window.splitScreenFourLayers = null
+
+export default {
+    name: 'selectTime',
+    props: ['leftOrRight', 'type'],
+    data () {
+        return {
+            selectList: [{
+                title: '2012-2M第一季度'
+            }, {
+                title: '2013-2M第一季度'
+            }, {
+                title: '2014-2M第一季度'
+            }, {
+                title: '2015-2M第一季度'
+            }, {
+                title: '2016-2M第一季度'
+            }, {
+                title: '2017-2M第一季度'
+            }, {
+                title: '2018-2M第一季度'
+            }, {
+                title: '2019-2M第一季度'
+            }, {
+                title: '2020-2M第一季度'
+            }, {
+                title: '2021-2M第一季度'
+            }, {
+                title: '2022-2M第一季度'
+            }],
+            listFlag: false,
+            currentTitle: null,
+            currentIndex: null
+        }
+    },
+    mounted () {
+
+    },
+
+    methods: {
+        init () {
+            this.currentTitle = this.selectList[0].title
+            this.currentIndex = 0
+
+            if (this.leftOrRight == 'left') {
+                this.leftAddLayer()
+            } else {
+                this.rightAddLayer()
+            }
+        },
+
+        clearLayer () {
+            if (this.leftOrRight == 'left') {
+                this.removeLeftAddLayer()
+            } else {
+                this.removeRightAddLayer()
+            }
+        },
+
+        leftAddLayer () {
+            leftCurrentLayer = global.viewer.imageryLayers.addImageryProvider(
+                new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+                    url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengyjjddom/MapServer/WMTS',
+                    // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    layer: 'nanchengyjjddom',
+                    style: 'default',
+                    tileMatrixSetID: 'default028mm',
+                    format: 'image/png',
+                    tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+                    maximumLevel: 19,
+                    tileMatrixLabels: [
+                        '0',
+                        '1',
+                        '2',
+                        '3',
+                        '4',
+                        '5',
+                        '6',
+                        '7',
+                        '8',
+                        '9',
+                        '10',
+                        '11',
+                        '12',
+                        '13',
+                        '14',
+                        '15',
+                        '16',
+                        '17',
+                        '18',
+                        '19'
+                    ]
+                }), 10
+            )
+        },
+
+        rightAddLayer () {
+            rightCurrentLayer = global.viewer.mapSplit.addBaseLayer(
+                new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+                    url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    layer: 'nanchengdom',
+                    style: 'default',
+                    tileMatrixSetID: 'default028mm',
+                    format: 'image/png',
+                    tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+                    maximumLevel: 19,
+                    tileMatrixLabels: [
+                        '0',
+                        '1',
+                        '2',
+                        '3',
+                        '4',
+                        '5',
+                        '6',
+                        '7',
+                        '8',
+                        '9',
+                        '10',
+                        '11',
+                        '12',
+                        '13',
+                        '14',
+                        '15',
+                        '16',
+                        '17',
+                        '18',
+                        '19'
+                    ]
+                }), 21
+            )
+        },
+
+        removeLeftAddLayer () {
+            if (leftCurrentLayer != null) {
+                global.viewer.imageryLayers.remove(leftCurrentLayer)
+                leftCurrentLayer = null
+            }
+        },
+
+        removeRightAddLayer () {
+            if (rightCurrentLayer != null) {
+                global.viewer.imageryLayers.remove(rightCurrentLayer)
+                rightCurrentLayer = null
+            }
+        },
+
+        addLayers (variable) {
+            window[variable] = window[this.type].imageryLayers.addImageryProvider(
+                new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+                    url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    layer: 'nanchengdom',
+                    style: 'default',
+                    tileMatrixSetID: 'default028mm',
+                    format: 'image/png',
+                    tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+                    maximumLevel: 19,
+                    tileMatrixLabels: [
+                        '0',
+                        '1',
+                        '2',
+                        '3',
+                        '4',
+                        '5',
+                        '6',
+                        '7',
+                        '8',
+                        '9',
+                        '10',
+                        '11',
+                        '12',
+                        '13',
+                        '14',
+                        '15',
+                        '16',
+                        '17',
+                        '18',
+                        '19'
+                    ]
+                }), 10
+            )
+        },
+
+        removeLayers (variable) {
+            if (window[variable] != null) {
+                window[this.type].imageryLayers.remove(window[variable])
+                window[variable] = null
+            }
+        },
+
+        currentClick (item, index) {
+            if (this.currentIndex == index) {
+                this.listFlag = false
+                return
+            }
+
+            if (this.leftOrRight) {
+                if (this.leftOrRight == 'left') {
+                    this.removeLeftAddLayer()
+                    this.leftAddLayer()
+                } else {
+                    this.removeRightAddLayer()
+                    this.rightAddLayer()
+                }
+
+                this.listFlag = false
+            } else {
+                if (this.type == 'viewerOne') {
+                    this.removeLayers('splitScreenOneLayers')
+                    this.addLayers('splitScreenOneLayers')
+                } else if (this.type == 'viewerTwo') {
+                    this.removeLayers('splitScreenTwoLayers')
+                    this.addLayers('splitScreenTwoLayers')
+                } else if (this.type == 'viewerThree') {
+                    this.removeLayers('splitScreenThreeLayers')
+                    this.addLayers('splitScreenThreeLayers')
+                } else if (this.type == 'viewerFour') {
+                    this.removeLayers('splitScreenFourLayers')
+                    this.addLayers('splitScreenFourLayers')
+                }
+
+                this.listFlag = false
+            }
+        }
+    },
+
+    destroyed () {
+        if (this.type) {
+            if (this.type == 'viewerOne') {
+                this.removeLayers('splitScreenOneLayers')
+                this.addLayers('splitScreenOneLayers')
+            } else if (this.type == 'viewerTwo') {
+                this.removeLayers('splitScreenTwoLayers')
+                this.addLayers('splitScreenTwoLayers')
+            } else if (this.type == 'viewerThree') {
+                this.removeLayers('splitScreenThreeLayers')
+                this.addLayers('splitScreenThreeLayers')
+            } else if (this.type == 'viewerFour') {
+                this.removeLayers('splitScreenFourLayers')
+                this.addLayers('splitScreenFourLayers')
+            }
+        }
+    }
+}
+</script>
+
+<style  lang="scss" scoped>
+.current-select {
+    padding: 0 15px;
+    width: 166px;
+    height: 30px;
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    background: #ffffff;
+    border-radius: 4px 4px 4px 4px;
+    box-sizing: border-box;
+    font-size: 12px;
+    color: #717171;
+    cursor: pointer;
+}
+
+.list-box {
+    position: absolute;
+    top: 32px;
+    width: 166px;
+    height: 240px;
+    overflow-y: auto;
+    background: #ffffff;
+    border-radius: 4px 4px 4px 4px;
+    box-sizing: border-box;
+    font-size: 12px;
+    color: #717171;
+
+    li {
+        line-height: 30px;
+    }
+}
+</style>
diff --git a/src/components/splitScreen/index.vue b/src/components/splitScreen/index.vue
index 2ce6c90..29d7def 100644
--- a/src/components/splitScreen/index.vue
+++ b/src/components/splitScreen/index.vue
@@ -1,10 +1,18 @@
 /* eslint-disable camelcase */
 <template>
     <div class="current-wrapper" style="height: 100%; width: 100%; position: relative;">
-        <div class="map-box" id="viewer-container-one"></div>
-        <div class="map-box" id="viewer-container-two"></div>
-        <div class="map-box" id="viewer-container-three"></div>
-        <div class="map-box" id="viewer-container-four"></div>
+        <div class="map-box" id="viewer-container-one">
+            <select-time ref="leftRoller" :type="'viewerOne'" class="time"></select-time>
+        </div>
+        <div class="map-box" id="viewer-container-two">
+            <select-time ref="leftRoller" :type="'viewerTwo'" class="time"></select-time>
+        </div>
+        <div class="map-box" id="viewer-container-three">
+            <select-time ref="leftRoller" :type="'viewerThree'" class="time"></select-time>
+        </div>
+        <div class="map-box" id="viewer-container-four">
+            <select-time ref="leftRoller" :type="'viewerFour'" class="time"></select-time>
+        </div>
 
         <div class="line-row"></div>
         <div class="line-column"></div>
@@ -12,10 +20,10 @@
 </template>
 
 <script>
-let viewerOne = null
-let viewerTwo = null
-let viewerThree = null
-let viewerFour = null
+window.viewerOne = null
+window.viewerTwo = null
+window.viewerThree = null
+window.viewerFour = null
 
 let handlerTL = null
 let handlerTR = null
@@ -39,7 +47,7 @@
 
         this.$nextTick(() => {
             function initViewer () {
-                viewerOne = new global.DC.Viewer('viewer-container-one', {
+                window.viewerOne = new global.DC.Viewer('viewer-container-one', {
                     contextOptions: {
                         webgl: {
                             alpha: true,
@@ -49,7 +57,7 @@
                     }
                 })
 
-                viewerTwo = new global.DC.Viewer('viewer-container-two', {
+                window.viewerTwo = new global.DC.Viewer('viewer-container-two', {
                     contextOptions: {
                         webgl: {
                             alpha: true,
@@ -59,7 +67,7 @@
                     }
                 })
 
-                viewerThree = new global.DC.Viewer('viewer-container-three', {
+                window.viewerThree = new global.DC.Viewer('viewer-container-three', {
                     contextOptions: {
                         webgl: {
                             alpha: true,
@@ -69,7 +77,7 @@
                     }
                 })
 
-                viewerFour = new global.DC.Viewer('viewer-container-four', {
+                window.viewerFour = new global.DC.Viewer('viewer-container-four', {
                     contextOptions: {
                         webgl: {
                             alpha: true,
@@ -80,25 +88,25 @@
                 })
 
                 if (global.DC.Namespace.Cesium.FeatureDetection.supportsImageRenderingPixelated()) { // 判断是否支持图像渲染像素化处理
-                    viewerOne.setOptions({
+                    window.viewerOne.setOptions({
                         resolutionScale: window.devicePixelRatio
                     })
 
-                    viewerTwo.setOptions({
+                    window.viewerTwo.setOptions({
                         resolutionScale: window.devicePixelRatio
                     })
 
-                    viewerThree.setOptions({
+                    window.viewerThree.setOptions({
                         resolutionScale: window.devicePixelRatio
                     })
 
-                    viewerFour.setOptions({
+                    window.viewerFour.setOptions({
                         resolutionScale: window.devicePixelRatio
                     })
                 }
 
                 // 影像
-                viewerOne.imageryLayers.addImageryProvider(
+                window.viewerOne.imageryLayers.addImageryProvider(
                     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
                         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
@@ -108,7 +116,7 @@
                     })
                 )
 
-                viewerTwo.imageryLayers.addImageryProvider(
+                window.viewerTwo.imageryLayers.addImageryProvider(
                     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
                         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
@@ -118,7 +126,7 @@
                     })
                 )
 
-                viewerThree.imageryLayers.addImageryProvider(
+                window.viewerThree.imageryLayers.addImageryProvider(
                     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
                         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
@@ -128,83 +136,13 @@
                     })
                 )
 
-                viewerFour.imageryLayers.addImageryProvider(
+                window.viewerFour.imageryLayers.addImageryProvider(
                     new global.DC.Namespace.Cesium.UrlTemplateImageryProvider({
                         url: 'http://t{s}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0',
                         subdomains: ['0', '1', '2', '3', '4', '5', '6', '7'],
                         format: 'image/jpeg',
                         show: true,
                         maximumLevel: 18
-                    })
-                )
-
-                viewerOne.imageryLayers.addImageryProvider(
-                    new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
-                        url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengyjjddom/MapServer/WMTS',
-                        // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
-                        layer: 'nanchengyjjddom',
-                        style: 'default',
-                        tileMatrixSetID: 'default028mm',
-                        format: 'image/png',
-                        tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
-                        maximumLevel: 19,
-                        tileMatrixLabels: [
-                            '0',
-                            '1',
-                            '2',
-                            '3',
-                            '4',
-                            '5',
-                            '6',
-                            '7',
-                            '8',
-                            '9',
-                            '10',
-                            '11',
-                            '12',
-                            '13',
-                            '14',
-                            '15',
-                            '16',
-                            '17',
-                            '18',
-                            '19'
-                        ]
-                    })
-                )
-
-                viewerOne.imageryLayers.addImageryProvider(
-                    new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
-                        url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
-                        // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
-                        layer: 'nanchengdom',
-                        style: 'default',
-                        tileMatrixSetID: 'default028mm',
-                        format: 'image/png',
-                        tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
-                        maximumLevel: 19,
-                        tileMatrixLabels: [
-                            '0',
-                            '1',
-                            '2',
-                            '3',
-                            '4',
-                            '5',
-                            '6',
-                            '7',
-                            '8',
-                            '9',
-                            '10',
-                            '11',
-                            '12',
-                            '13',
-                            '14',
-                            '15',
-                            '16',
-                            '17',
-                            '18',
-                            '19'
-                        ]
                     })
                 )
 
@@ -229,9 +167,9 @@
                 //     })
                 // )
 
-                that.initHandler(viewerOne, viewerTwo, viewerThree, viewerFour)
+                that.initHandler(window.viewerOne, window.viewerTwo, window.viewerThree, window.viewerFour)
 
-                viewerOne.camera.setView({
+                window.viewerOne.camera.setView({
                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                     // fromDegrees()方法,将经纬度和高程转换为世界坐标
                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -246,7 +184,7 @@
                     }
                 })
 
-                viewerTwo.camera.setView({
+                window.viewerTwo.camera.setView({
                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                     // fromDegrees()方法,将经纬度和高程转换为世界坐标
                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -261,7 +199,7 @@
                     }
                 })
 
-                viewerThree.camera.setView({
+                window.viewerThree.camera.setView({
                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                     // fromDegrees()方法,将经纬度和高程转换为世界坐标
                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -276,7 +214,7 @@
                     }
                 })
 
-                viewerFour.camera.setView({
+                window.viewerFour.camera.setView({
                     // Cesium的坐标是以地心为原点,一向指向南美洲,一向指向亚洲,一向指向北极州
                     // fromDegrees()方法,将经纬度和高程转换为世界坐标
                     destination: global.DC.Namespace.Cesium.Cartesian3.fromDegrees(
@@ -376,15 +314,15 @@
         handlerBL = null
         handlerBR = null
 
-        viewerOne.destroy()
-        viewerTwo.destroy()
-        viewerThree.destroy()
-        viewerFour.destroy()
+        window.viewerOne.destroy()
+        window.viewerTwo.destroy()
+        window.viewerThree.destroy()
+        window.viewerFour.destroy()
 
-        viewerOne = null
-        viewerTwo = null
-        viewerThree = null
-        viewerFour = null
+        window.viewerOne = null
+        window.viewerTwo = null
+        window.viewerThree = null
+        window.viewerFour = null
     }
 }
 </script>
@@ -407,8 +345,17 @@
     flex-wrap: wrap;
 
     .map-box {
+        position: relative;
         width: 50%;
         height: 50%;
+
+        .time {
+            position: absolute;
+            top: 35px;
+            left: 50%;
+            transform: translate(-50%, 0);
+            z-index: 99;
+        }
     }
 
     .line-row {
diff --git a/src/components/timeLine/index.vue b/src/components/timeLine/index.vue
index 9c21240..3245627 100644
--- a/src/components/timeLine/index.vue
+++ b/src/components/timeLine/index.vue
@@ -31,117 +31,97 @@
 </template>
 
 <script>
+let currentYxOne = null
+let currentYxTwo = null
+
 export default {
     name: 'timeLine',
     data () {
         return {
             timeIndex: 2,
-            timeLineList: [{
-                timestamp: '2012',
-                color: '#999',
-                fontsize: 18,
-                size: '28',
-                bgcolor: '#e4e7ed',
-                icon: 'el-iconprev',
-                year: '2012',
-                info: '2012第一季度'
-            }, {
-                timestamp: '2013年',
-                color: '#999',
-                fontsize: 18,
-                size: '28',
-                bgcolor: '#e4e7ed',
-                year: '2013',
-                info: '2012第二季度'
-            }, {
-                timestamp: '2014年',
-                color: '#999',
-                fontsize: 18,
-                size: '28',
-                bgcolor: '#e4e7ed',
-                year: '2014',
-                info: '2012第三季度'
-            }, {
-                timestamp: '2015年',
-                color: '#999',
-                fontsize: 18,
-                year: '2015',
-                size: '28',
-                bgcolor: '#e4e7ed',
-                info: '2012第四季度'
-            }, {
-                timestamp: '2016年',
-                color: '#999',
-                fontsize: 18,
-                size: '28',
-                year: '2016',
-                bgcolor: '#e4e7ed',
-                info: '2013第一季度'
-            }, {
-                timestamp: '2017年',
-                color: '#999',
-                fontsize: 18,
-                size: '28',
-                bgcolor: '#e4e7ed',
-                year: '2017',
-                info: '2013第二季度'
-            }, {
-                timestamp: '2018年',
-                color: '#999',
-                fontsize: 18,
-                size: '28',
-                bgcolor: '#e4e7ed',
-                year: '2018',
-                info: '2013第三季度'
-            }, {
-                timestamp: '2019年',
-                color: '#999',
-                fontsize: 18,
-                year: '2019',
-                bgcolor: '#e4e7ed',
-                size: '28',
-                info: '2013第四季度'
-            }, {
-                timestamp: '2019年',
-                color: '#999',
-                fontsize: 18,
-                year: '2019',
-                bgcolor: '#e4e7ed',
-                size: '28',
-                info: '2014第一季度'
-            }, {
-                timestamp: '2019年',
-                color: '#999',
-                fontsize: 18,
-                year: '2019',
-                bgcolor: '#e4e7ed',
-                size: '28',
-                info: '2014第二季度'
-            }, {
-                timestamp: '2019年',
-                color: '#999',
-                fontsize: 18,
-                year: '2019',
-                bgcolor: '#e4e7ed',
-                size: '28',
-                info: '2014第三季度'
-            }, {
-                timestamp: '2019年',
-                color: '#999',
-                fontsize: 18,
-                year: '2019',
-                bgcolor: '#e4e7ed',
-                size: '28',
-                info: '2014第四季度'
-            }, {
-                timestamp: '2019',
-                color: '#999',
-                fontsize: 18,
-                year: '2019',
-                bgcolor: '#e4e7ed',
-                size: '28',
-                info: '2015第一季度'
-            }],
+            timeLineList: [
+                {
+                    timestamp: '2012',
+                    color: '#999',
+                    fontsize: 18,
+                    size: '28',
+                    bgcolor: '#e4e7ed',
+                    icon: 'el-iconprev',
+                    year: '2012',
+                    info: '2012第一季度'
+                }, {
+                    timestamp: '2013年',
+                    color: '#999',
+                    fontsize: 18,
+                    size: '28',
+                    bgcolor: '#e4e7ed',
+                    year: '2013',
+                    info: '2012第二季度'
+                }, {
+                    timestamp: '2014年',
+                    color: '#999',
+                    fontsize: 18,
+                    size: '28',
+                    bgcolor: '#e4e7ed',
+                    year: '2014',
+                    info: '2012第三季度'
+                }, {
+                    timestamp: '2015年',
+                    color: '#999',
+                    fontsize: 18,
+                    year: '2015',
+                    size: '28',
+                    bgcolor: '#e4e7ed',
+                    info: '2012第四季度'
+                }, {
+                    timestamp: '2016年',
+                    color: '#999',
+                    fontsize: 18,
+                    size: '28',
+                    year: '2016',
+                    bgcolor: '#e4e7ed',
+                    info: '2013第一季度'
+                }, {
+                    timestamp: '2017年',
+                    color: '#999',
+                    fontsize: 18,
+                    size: '28',
+                    bgcolor: '#e4e7ed',
+                    year: '2017',
+                    info: '2013第二季度'
+                }, {
+                    timestamp: '2018年',
+                    color: '#999',
+                    fontsize: 18,
+                    size: '28',
+                    bgcolor: '#e4e7ed',
+                    year: '2018',
+                    info: '2013第三季度'
+                }, {
+                    timestamp: '2019年',
+                    color: '#999',
+                    fontsize: 18,
+                    year: '2019',
+                    bgcolor: '#e4e7ed',
+                    size: '28',
+                    info: '2013第四季度'
+                }, {
+                    timestamp: '2019年',
+                    color: '#999',
+                    fontsize: 18,
+                    year: '2019',
+                    bgcolor: '#e4e7ed',
+                    size: '28',
+                    info: '2014第一季度'
+                }, {
+                    timestamp: '2019年',
+                    color: '#999',
+                    fontsize: 18,
+                    year: '2019',
+                    bgcolor: '#e4e7ed',
+                    size: '28',
+                    info: '2014第二季度'
+                }],
             currentObj: {
                 timestamp: '2012',
                 color: '#999',
@@ -157,8 +137,100 @@
             rightStart: true
         }
     },
+    mounted () {
+        this.$nextTick(() => {
+            this.addBaseLayer()
+        })
+    },
+
     methods: {
+        addBaseLayer () {
+            currentYxOne = global.viewer.imageryLayers.addImageryProvider(
+                new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+                    url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengyjjddom/MapServer/WMTS',
+                    // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    layer: 'nanchengyjjddom',
+                    style: 'default',
+                    tileMatrixSetID: 'default028mm',
+                    format: 'image/png',
+                    tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+                    maximumLevel: 19,
+                    tileMatrixLabels: [
+                        '0',
+                        '1',
+                        '2',
+                        '3',
+                        '4',
+                        '5',
+                        '6',
+                        '7',
+                        '8',
+                        '9',
+                        '10',
+                        '11',
+                        '12',
+                        '13',
+                        '14',
+                        '15',
+                        '16',
+                        '17',
+                        '18',
+                        '19'
+                    ]
+                })
+            )
+
+            currentYxTwo = global.viewer.imageryLayers.addImageryProvider(
+                new global.DC.Namespace.Cesium.WebMapTileServiceImageryProvider({
+                    url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    // url: 'http://arcgis.jxpskj.com:6080/arcgis/rest/services/nanchengdom/MapServer/WMTS',
+                    layer: 'nanchengdom',
+                    style: 'default',
+                    tileMatrixSetID: 'default028mm',
+                    format: 'image/png',
+                    tilingScheme: new global.DC.Namespace.Cesium.GeographicTilingScheme(),
+                    maximumLevel: 19,
+                    tileMatrixLabels: [
+                        '0',
+                        '1',
+                        '2',
+                        '3',
+                        '4',
+                        '5',
+                        '6',
+                        '7',
+                        '8',
+                        '9',
+                        '10',
+                        '11',
+                        '12',
+                        '13',
+                        '14',
+                        '15',
+                        '16',
+                        '17',
+                        '18',
+                        '19'
+                    ]
+                })
+            )
+        },
+        removeBaseLayer () {
+            if (currentYxOne != null) {
+                global.viewer.imageryLayers.remove(currentYxOne)
+                currentYxOne = null
+            }
+
+            if (currentYxTwo != null) {
+                global.viewer.imageryLayers.remove(currentYxTwo)
+                currentYxTwo = null
+            }
+        },
         selectTime (e, item, index) {
+            if (this.currentInd == index) return
+
+            this.removeBaseLayer()
+
             this.currentObj = item
             this.currentInd = index
 
@@ -166,66 +238,86 @@
                 this.$refs.TimePointer.style.left = e.target.offsetLeft + parseInt(this.$refs.mytimeline.style.left) + 14 + 'px'
                 this.$refs.TextPopup.style.left = e.target.offsetLeft + parseInt(this.$refs.mytimeline.style.left) - 38 + 'px'
             } else {
-                if (e.target.offsetLeft <= 528) {
+                if (e.target.offsetLeft <= 480) {
                     this.$refs.TimePointer.style.left = e.target.offsetLeft + 14 + 'px'
                     this.$refs.TextPopup.style.left = e.target.offsetLeft - 38 + 'px'
                 }
             }
+
+            this.addBaseLayer()
             // offsetX
         },
         changeActive (index) {
             this.timeIndex = index
         },
         moveLeft () {
-            const leftWidth = parseInt(this.$refs.mytimeline.style.left)
-            const boxWidth = parseInt(this.$refs.mytimeline.clientWidth)
+            // const leftWidth = parseInt(this.$refs.mytimeline.style.left)
+            // const boxWidth = parseInt(this.$refs.mytimeline.clientWidth)
 
-            if (this.leftStart == false) {
-                return
-            } else {
-                this.rightStart = true
-            }
+            // if (this.leftStart == false) {
+            //     return
+            // } else {
+            //     this.rightStart = true
+            // }
 
             if (this.currentInd <= 0) return
+
+            this.removeBaseLayer()
 
             this.currentInd = this.currentInd - 1
             this.currentObj = this.timeLineList[this.currentInd]
 
-            if (leftWidth <= 0 && Math.abs(leftWidth) <= boxWidth - 528) {
-                if (leftWidth + 48 < 0) {
-                    this.$refs.mytimeline.style.left = leftWidth + 48 + 'px'
-                } else {
-                    this.$refs.mytimeline.style.left = 0 + 'px'
+            this.$refs.TimePointer.style.left = parseInt(this.$refs.TimePointer.style.left) - 48 + 'px'
+            this.$refs.TextPopup.style.left = parseInt(this.$refs.TextPopup.style.left) - 48 + 'px'
 
-                    this.leftStart = false
-                }
-            }
+            this.addBaseLayer()
+
+            // if (leftWidth <= 0 && Math.abs(leftWidth) <= boxWidth - 480) {
+            //     if (leftWidth + 48 < 0) {
+            //         this.$refs.mytimeline.style.left = leftWidth + 48 + 'px'
+            //     } else {
+            //         this.$refs.mytimeline.style.left = 0 + 'px'
+
+            //         this.leftStart = false
+            //     }
+            // }
         },
         moveRight () {
-            const leftWidth = parseInt(this.$refs.mytimeline.style.left)
-            const boxWidth = parseInt(this.$refs.mytimeline.clientWidth)
+            // const leftWidth = parseInt(this.$refs.mytimeline.style.left)
+            // const boxWidth = parseInt(this.$refs.mytimeline.clientWidth)
 
-            if (this.rightStart == false) {
-                return
-            } else {
-                this.leftStart = true
-            }
+            // if (this.rightStart == false) {
+            //     return
+            // } else {
+            //     this.leftStart = true
+            // }
 
             if (this.currentInd >= this.timeLineList.length - 1) return
+
+            this.removeBaseLayer()
 
             this.currentInd = this.currentInd + 1
             this.currentObj = this.timeLineList[this.currentInd]
 
-            if (leftWidth <= 0 && Math.abs(leftWidth) <= boxWidth - 528) {
-                if (Math.abs(leftWidth - 48) < boxWidth - 528) {
-                    this.$refs.mytimeline.style.left = leftWidth - 48 + 'px'
-                } else {
-                    this.$refs.mytimeline.style.left = -(boxWidth - 528) + 'px'
+            this.$refs.TimePointer.style.left = parseInt(this.$refs.TimePointer.style.left) + 48 + 'px'
+            this.$refs.TextPopup.style.left = parseInt(this.$refs.TextPopup.style.left) + 48 + 'px'
 
-                    this.rightStart = false
-                }
-            }
+            this.addBaseLayer()
+
+            // if (leftWidth <= 0 && Math.abs(leftWidth) <= boxWidth - 480) {
+            //     if (Math.abs(leftWidth - 48) < boxWidth - 480) {
+            //         this.$refs.mytimeline.style.left = leftWidth - 48 + 'px'
+            //     } else {
+            //         this.$refs.mytimeline.style.left = -(boxWidth - 480) + 'px'
+
+            //         this.rightStart = false
+            //     }
+            // }
         }
+    },
+
+    destroyed () {
+        this.removeBaseLayer()
     }
 }
 </script>
@@ -252,6 +344,7 @@
 
         img {
             width: 20px;
+            cursor: pointer;
         }
 
         .year-box {
@@ -265,11 +358,11 @@
 
     .time-line-box {
         position: relative;
-        width: 528px;
+        width: 480px;
         height: 16px;
         .ul_box {
             position: relative;
-            width: 528px;
+            width: 480px;
             height: 16px;
             overflow-x: hidden;
             display: flex;
diff --git a/src/styles/index.scss b/src/styles/index.scss
index d48a890..420ea59 100644
--- a/src/styles/index.scss
+++ b/src/styles/index.scss
@@ -1,6 +1,7 @@
 @import "./element-ui.scss";
 @import "./publicBox/arc-nav-bar.scss";
 @import "./publicBox/market-nav-bar.scss";
+@import "./publicBox/trace-table.scss";
 
 html,
 body {
diff --git a/src/styles/publicBox/trace-table.scss b/src/styles/publicBox/trace-table.scss
new file mode 100644
index 0000000..6ef7675
--- /dev/null
+++ b/src/styles/publicBox/trace-table.scss
@@ -0,0 +1,141 @@
+.public-trace-table {
+    position: fixed;
+    top: 50%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    width: 1208px;
+
+    background-color: transparent;
+    z-index: 99;
+    font-size: 14px;
+    box-shadow: inset 0px 0px 30px 1px rgba(33, 186, 196, 0.1600);
+    border: 1px solid #69E2ED;
+    background: rgba(20, 66, 104, 0.8);
+
+    .header {
+        position: relative;
+        border-radius: 8px 8px 0 0;
+        width: 100%;
+        height: 58px;
+        line-height: 58px;
+        background: linear-gradient(96deg, #142B4B 0%, #0F1525 100%);
+        /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+
+        .logo {
+            position: aboslute;
+            top: 0;
+            left: 0;
+            width: 8px;
+            height: 100%;
+            background: #69E2ED;
+        }
+
+        .title {
+            position: absolute;
+            top: 0;
+            left: 25px;
+            font-size: 18px;
+            font-weight: bold;
+            color: #66DDE9;
+        }
+
+        .close {
+            position: absolute;
+            right: 20px;
+            top: 0;
+            left: auto;
+            bottom: 0;
+            margin: auto;
+            width: 28px;
+            height: 28px;
+            cursor: pointer;
+            opacity: 0.6;
+        }
+    }
+
+    .content {
+        clear: both;
+        width: 100%;
+        height: 500px;
+        margin-top: 0px;
+        text-align: center;
+        overflow-y: auto;
+        /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
+        border-radius: 0 0 8px 8px;
+
+        .farm-profiles {
+            position: relative;
+
+            .btn-grounp {
+                position: absolute;
+                top: 18px;
+                right: 20px;
+
+                .details {
+                    text-align: right;
+                    font-size: 18px;
+                    color: #08F4FF;
+                    cursor: pointer;
+                }
+
+                .scene {
+                    margin-top: 24px;
+                    display: flex;
+                    align-items: center;
+                    justify-content: center;
+                    width: 100px;
+                    height: 30px;
+                    background: rgba(102, 221, 233, 0.16);
+                    border-radius: 4px 4px 4px 4px;
+                    border: 1px solid #66DDE9;
+                    box-sizing: border-box;
+
+                    img {
+                        // width: 70px;
+                        height: 24px;
+                    }
+                }
+            }
+
+            .farm-content {
+
+                padding: 30px 20px;
+                font-size: 16px;
+                color: #fff;
+
+                .row {
+                    display: flex;
+                    justify-content: space-between;
+
+                    .l {
+                        display: flex;
+                        align-items: flex-start;
+                        justify-content: flex-end;
+                        width: 100px;
+                        height: 50px;
+                        color: #A9D1D7;
+                    }
+
+                    .r {
+                        display: flex;
+                        align-items: flex-start;
+                        justify-content: flex-start;
+                        margin-left: 24px;
+                        flex: 1;
+
+                        img {
+                            margin-right: 16px;
+                            width: 102px;
+                            height: 102px;
+                            border-radius: 4px 4px 4px 4px;
+                        }
+                    }
+                }
+
+            }
+
+        }
+
+
+    }
+}
\ No newline at end of file
diff --git a/src/views/farm/index.vue b/src/views/farm/index.vue
index 2f74da9..fc56e58 100644
--- a/src/views/farm/index.vue
+++ b/src/views/farm/index.vue
@@ -2,14 +2,14 @@
 * @Author: Morpheus
 * @Date: 2022-05-11 15:00:23
  * @Last Modified by: Morpheus
- * @Last Modified time: 2022-07-08 14:08:30
+ * @Last Modified time: 2022-07-08 20:01:42
 * 驾驶舱
 */
 <template>
     <div class="container">
         <mapBox ref="modalForm" />
 
-        <div class="header">
+        <div class="current-header">
             <div class="return">
                 <span @click="prev">
                     <i class="el-icon-back"></i> 返回
@@ -23,6 +23,11 @@
         </div>
 
         <div class="l-content">
+            <div class="t-l-border border-box"></div>
+            <div class="t-r-border border-box"></div>
+            <div class="b-l-border border-box"></div>
+            <div class="b-r-border border-box"></div>
+
             <div class="tab-btn">
                 <div>
                     <div class="item" :class="{on: ncjscz == 'ncjs'}">
@@ -38,17 +43,117 @@
                     </div>
                 </div>
             </div>
-            <div class="content"></div>
+            <div v-show="ncjscz == 'ncjs'" class="detail-box">
+                <div class="item">
+                    <div class="name">农场名称:</div>
+                    <div class="deserve">xx农场</div>
+                </div>
+
+                <div class="item">
+                    <div class="name">农场名称:</div>
+                    <div class="deserve">xx农场</div>
+                </div>
+            </div>
+
+            <div v-show="ncjscz == 'cz'" class="lists-box nscz">
+                <div>
+                    <div class="t-border"></div>
+                    <div class="t-item">
+                        <div>施肥</div>
+                        <div>有机肥料、有机肥</div>
+                        <div>2022-06-31</div>
+                    </div>
+                    <div class="b-item">
+                        <div>水稻</div>
+                        <div>林术</div>
+                        <div>株良镇田南村5号地块</div>
+                    </div>
+                </div>
+            </div>
         </div>
 
         <div class="r-content">
+            <div class="t-l-border border-box"></div>
+            <div class="t-r-border border-box"></div>
+            <div class="b-l-border border-box"></div>
+            <div class="b-r-border border-box"></div>
+
             <div class="tab-btn">
-                <div>种养品种</div>
-                <div>地块</div>
-                <div>物联网设备</div>
+                <div>
+                    <div class="item" :class="{on: zydksb == 'zy'}">
+                        <div @click="zydksb = 'zy'" class="title">种养品种</div>
+                        <span></span>
+                    </div>
+                </div>
+
+                <div>
+                    <div class="item" :class="{on: zydksb == 'dk'}">
+                        <div @click="zydksb = 'dk'" class="title">地块</div>
+                        <span></span>
+                    </div>
+                </div>
+
+                <div>
+                    <div class="item" :class="{on: zydksb == 'sb'}">
+                        <div @click="zydksb = 'sb'" class="title">物联网设备</div>
+                        <span></span>
+                    </div>
+                </div>
             </div>
-            <div class="content"></div>
+
+            <div v-show="zydksb == 'zy'" class="lists-box dk">
+                <div>
+                    <div class="title">
+                        <img src="/img/icon/list-img.png" alt />水稻
+                    </div>
+                    <div class="num-unit">
+                        120
+                        <span>亩</span>
+                    </div>
+                </div>
+            </div>
+
+            <div v-show="zydksb == 'dk'" class="lists-box dk">
+                <div>
+                    <div class="title">
+                        <img src="/img/icon/jk.png" alt />某某地块
+                    </div>
+                    <div class="num-unit">
+                        0.24
+                        <span>亩</span>
+                    </div>
+                </div>
+            </div>
+
+            <div v-show="zydksb =='sb'" class="lists-box sb">
+                <div>
+                    <div class="title">
+                        <img src="/img/icon/jk.png" alt />监控设备
+                    </div>
+                    <div class="type off">在线</div>
+                </div>
+            </div>
         </div>
+
+        <public-box class="public-trace-table">
+            <template slot="public-box-header">
+                <div class="logo"></div>
+                <div class="title">农产品溯源码</div>
+                <img
+                    @click="farmProfiles = false"
+                    src="/img/icon/public-close.png"
+                    alt
+                    class="close"
+                />
+            </template>
+            <template slot="public-box-content">
+                <div class="action-bar"></div>
+                <div class="table-list">
+                    <div class="t-header"></div>
+                    <div class="t-body"></div>
+                </div>
+            </template>
+        </public-box>
     </div>
 </template>
 
@@ -57,7 +162,8 @@
 export default {
     data () {
         return {
-            ncjscz: 'cz'
+            ncjscz: 'cz',
+            zydksb: 'sb'
         }
     },
     created () {
@@ -87,7 +193,7 @@
     width: 100%;
     height: 100%;
 
-    .header {
+    .current-header {
         display: flex;
         align-items: center;
         justify-content: space-between;
@@ -146,6 +252,8 @@
 
     .l-content,
     .r-content {
+        display: flex;
+        flex-direction: column;
         position: absolute;
         top: 248px;
         width: 440px;
@@ -194,6 +302,200 @@
                 }
             }
         }
+
+        .detail-box {
+            margin: 20px;
+            flex: 1;
+            overflow-y: auto;
+
+            .item {
+                display: flex;
+                align-items: center;
+                margin-top: 14px;
+                padding: 0 20px;
+                height: 56px;
+                background: #081e36;
+                font-size: 16px;
+                color: #84c3d2;
+
+                .name {
+                    margin-right: 8px;
+                    font-weight: bold;
+                    color: #abebf7;
+                }
+            }
+
+            .item:first-child {
+                margin-top: 0;
+            }
+        }
+
+        .nscz.lists-box {
+            margin: 20px;
+            flex: 1;
+            overflow-y: auto;
+
+            & > div {
+                position: relative;
+                height: 84px;
+                margin-top: 10px;
+                padding: 10px 20px;
+                box-sizing: border-box;
+                display: flex;
+                flex-direction: column;
+                justify-content: space-between;
+
+                background: rgba(102, 221, 233, 0.1);
+                border-radius: 8px;
+                font-size: 18px;
+                color: #a9d1d7;
+
+                & > .t-item {
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+
+                    & > div:first-child {
+                        font-weight: bold;
+                        color: #66dde9;
+                    }
+                }
+
+                & > .b-item {
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-between;
+
+                    & > div:first-child {
+                        color: #fff;
+                    }
+                }
+
+                .t-border {
+                    position: absolute;
+                    top: 0;
+                    left: 0;
+                    right: 0;
+                    bottom: auto;
+                    margin: auto;
+                    width: 80%;
+                    height: 1px;
+                    background: linear-gradient(
+                        89deg,
+                        rgba(102, 221, 233, 0) 0%,
+                        #66dde9 51%,
+                        rgba(102, 221, 233, 0) 100%
+                    );
+                }
+            }
+
+            & > div:first-child {
+                margin-top: 0px;
+            }
+        }
+
+        .zy.lists-box,
+        .dk.lists-box,
+        .sb.lists-box {
+            margin: 20px;
+            flex: 1;
+            overflow-y: auto;
+
+            & > div {
+                position: relative;
+                height: 60px;
+                margin-top: 10px;
+                padding: 0 20px;
+                box-sizing: border-box;
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                border-bottom: 1px solid rgba(255, 255, 255, 0.2);
+                font-size: 18px;
+                color: #a9d1d7;
+
+                .title {
+                    display: flex;
+                    align-items: center;
+
+                    img {
+                        margin-right: 18px;
+                        width: 24px;
+                        height: 24px;
+                    }
+                }
+
+                .num-unit {
+                    font-weight: bold;
+                    color: #7ccfd6;
+
+                    span {
+                        font-size: 16px;
+                        font-weight: 400;
+                        color: #a9d1d7;
+                    }
+                }
+
+                .type {
+                    font-weight: bold;
+                    color: #7ccfd6;
+                }
+
+                .off.type {
+                    color: #d96b5a;
+                }
+            }
+
+            & > div:first-child {
+                margin-top: 0;
+            }
+
+            & > div:last-child {
+                border: none;
+            }
+        }
+
+        .zy.lists-box {
+            & > div {
+                height: 80px;
+            }
+        }
+
+        .border-box {
+            position: absolute;
+            width: 72px;
+            height: 56px;
+            z-index: 0;
+        }
+
+        .t-l-border {
+            top: -2px;
+            left: -2px;
+            border-top: 3px solid #09e2ef;
+            border-left: 3px solid #09e2ef;
+            border-top-left-radius: 30px;
+        }
+        .t-r-border {
+            top: -2px;
+            right: -2px;
+            border-top: 3px solid #09e2ef;
+            border-right: 3px solid #09e2ef;
+            border-top-right-radius: 30px;
+        }
+        .b-l-border {
+            bottom: -2px;
+            left: -2px;
+            border-bottom: 3px solid #09e2ef;
+            border-left: 3px solid #09e2ef;
+            border-bottom-left-radius: 30px;
+        }
+        .b-r-border {
+            bottom: -2px;
+            right: -2px;
+            border-bottom: 3px solid #09e2ef;
+            border-right: 3px solid #09e2ef;
+            border-bottom-right-radius: 30px;
+        }
     }
 
     .l-content {

--
Gitblit v1.9.3