From 525dae0dec6ba6afbe6bf81b82eb99d69aeb05b5 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期一, 21 八月 2023 15:57:27 +0800
Subject: [PATCH] Merge branch 'master' of http://139.186.142.91:10010/r/productDev/dmMes

---
 screen_standard/src/views/index.vue |  300 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 292 insertions(+), 8 deletions(-)

diff --git a/screen_standard/src/views/index.vue b/screen_standard/src/views/index.vue
index e660a85..b8c1ff6 100644
--- a/screen_standard/src/views/index.vue
+++ b/screen_standard/src/views/index.vue
@@ -1,34 +1,318 @@
 <template>
-    <div class="content">
-        <div class="content_left">1</div>
+    <div class="content1">
+        <div class="content_left">
+            <div class="content_left_item1">
+                <div class="content_left_item1_head">
+                    <span>褰撴棩鍛樺伐浜ч噺TOP10</span>
+                </div>
+                <div class="content_left_item1_content">
+                    <div class="content_left_item1_content_row" v-for="(item, index) in 10" :key="index">
+                        <div class="content_left_item1_content_row_name">
+                            <div :class="index > 2 ? 'num bg1' : 'num bg2'">{{ index + 1 }}</div>
+                            <span>璧电珛{{ index }}</span>
+                        </div>
+                        <div class="content_left_item1_content_row_line">
+                            <el-progress
+                                :show-text="false"
+                                :percentage="50">
+                            </el-progress>
+                        </div>
+                        <div class="content_left_item1_content_row_num">342</div>
+                    </div>
+                </div>
+            </div>
+            <div class="content_left_item2">
+                <div class="content_left_item2_head">
+                    <span>浠撳簱瀹炴椂浣欓噺缁熻</span>
+                </div>
+                <div class="content_left_item2_content">
+                    <div class="item2_content_head">
+                        <div class="item2_content_head_item">鐗╂枡鍚嶇О / 宸ュ簭</div>
+                        <div class="item2_content_head_item">浠撳簱</div>
+                        <div class="item2_content_head_item">璐ф灦</div>
+                        <div class="item2_content_head_item">鏁伴噺</div>
+                    </div>
+                    <div @mouseenter="handleMouseEnter" @mouseleave="handleMouseLeave" class="main_container">
+                        <div ref="scrollContainer" class="scroll_container">
+                            <div v-for="(item, index) in listData" :key="item.id" :class="index % 2 == 0 ? 'scroll_item scroll_item_bg1' : 'scroll_item scroll_item_bg2'">
+                                <span>{{ item.name }}</span>
+                                <div class="scroll_item_row"></div>
+                                <div class="scroll_item_row"></div>
+                                <div class="scroll_item_row"></div>
+                                <div class="scroll_item_row"></div>
+                            </div>
+                        </div>
+                    </div>
+                </div>
+            </div>
+        </div>
         <div class="content_center">2</div>
         <div class="content_right">3</div>
     </div>
 </template>
 
-
 <script setup>
+    import {reactive, ref, onMounted, onBeforeUnmount, onUnmounted, nextTick} from 'vue'
 
+    let timer = ref(null)
+    let scrollContainer = ref(null)
+    let listData = reactive([
+        {name: 'dom绗竴涓�'},
+        {name: 'dom绗簩涓�'},
+        {name: 'dom绗笁涓�'},
+        {name: 'dom绗洓涓�'},
+        {name: 'dom绗簲涓�'},
+        {name: 'dom绗叚涓�'},
+        {name: 'dom绗竷涓�'},
+        {name: 'dom绗叓涓�'},
+        {name: 'dom绗節涓�'},
+        {name: 'dom绗崄涓�'},
+    ])
+    start()
+    // 娉細绀轰緥涓殑 listData 鍐欑殑鏄潤鎬佹暟鎹紝鍙互鐩存帴璋冪敤 start()
+    // 濡傛灉鏄帴鍙h幏鍙� listData 鍒楄〃鏃讹紝闇�瑕佸湪 nextTick 涓皟鐢� start()
+    // 鍚﹀垯锛岃繘鍏ラ〉闈笉浼氭粴鍔ㄣ�傚繀椤婚紶鏍囩Щ鍏ョЩ鍑烘墠浼氭粴鍔�
+    // 鐢� nextTick 鐨勫師鍥犳槸闇�瑕佺瓑 dom 鍏冪礌鍔犺浇瀹屾瘯鍚庡啀鎵ц鏂规硶
+    
+    // let chartData = reactive({
+    //     data: []
+    // })
+    // function getSensorData() {
+    //     GetSensorData().then(res=> {
+    //         chartData.data = res.data.data
+    //         nextTick(()=>{
+    //             start()
+    //         })
+    //     })
+    // }
+    
+    // onMounted(()=> {
+    //     getSensorData()
+    // })
+
+    onBeforeUnmount(()=>{
+        clearTimeout(timer.value)
+    })
+    onUnmounted(()=>{
+        clearTimeout(timer.value)
+    })
+
+    function handleMouseEnter() {
+        clearTimeout(timer.value)
+    }
+    function handleMouseLeave() {
+        start()
+    }
+    // 寮�鍚畾鏃跺櫒
+    function start() {
+        clearTimeout(timer.value)
+        // 瀹氭椂鍣ㄨЕ鍙戝懆鏈�
+        let speed = ref(25)
+        timer.value = setInterval(ListScroll, speed.value)
+    }
+    function ListScroll() {
+        let scrollDom = scrollContainer.value
+        // 鍒よ缁勪欢鏄惁娓叉煋瀹屾垚
+        if(scrollDom.offsetHeight == 0) {
+            scrollDom = scrollContainer.value
+        }else {
+            // 濡傛灉鍒楄〃鏁伴噺杩囧皯涓嶈繘琛屾粴鍔�
+            if(scrollDom.children.length < 4) {
+                clearTimeout(timer.value)
+                return
+            }
+            // 缁勪欢杩涜婊氬姩
+            scrollDom.scrollTop += 1
+            // 鍒ゆ柇鏄惁婊氬姩鍒板簳閮�
+            if(scrollDom.scrollTop == (scrollDom.scrollHeight - scrollDom.clientHeight)) {
+                // 鑾峰彇缁勪欢绗竴涓妭鐐�
+                let first = scrollDom.children[0]
+                // 鍒犻櫎鑺傜偣
+                scrollDom.removeChild(first)
+                // 灏嗚鑺傜偣鎷兼帴鍒扮粍浠舵渶鍚�
+                scrollDom.append(first)
+            }
+        }
+    }  
 </script>
 
 <style lang="scss" scoped>
-    .content {
+    .content1 {
         width: 100%;
         height: auto;
         display: flex;
         align-items: center;
         justify-content: space-between;
         .content_left {
-            width: 920px;
-            background-color: aquamarine;
+            flex: 1;
+            .content_left_item1 {
+                width: 100%;
+                margin-bottom: 20px;
+                .content_left_item1_head {
+                    background: url('@/assets/img/home_title_short@2x.png');
+                    background-repeat: no-repeat;
+                    background-size: 100% 100%;
+                    width: 100%;
+                    height: 38px;
+                    line-height: 38px;
+                    padding-left: 34px;
+                    box-sizing: border-box;
+                    span {
+                        font-size: 16px;
+                        font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+                        font-weight: bold;
+                        color: #FFFFFF;
+                        line-height: 24px;
+                        text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
+                    }
+                }
+                .content_left_item1_content {
+                    width: 100%;
+                    height: 360px;
+                    padding: 20px;
+                    box-sizing: border-box;
+                    background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
+                    .content_left_item1_content_row {
+                        width: 100%;
+                        display: flex;
+                        align-items: center;
+                        justify-content: space-between;
+                        margin-bottom: 13px;
+                        &:last-child {
+                            margin: 0;
+                        }
+                        .content_left_item1_content_row_name {
+                            flex-shrink: 0;
+                            display: flex;
+                            align-items: center;
+                            span {
+                                font-size: 13px;
+                                font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+                                font-weight: 400;
+                                color: #D2E0FF;
+                                margin-left: 9px;
+                            }
+                            .num {
+                                width: 20px;
+                                height: 20px;
+                                line-height: 20px;
+                                text-align: center;
+                                font-size: 12px;
+                                font-family: SourceHanSansSC-Medium, SourceHanSansSC;
+                                font-weight: 500;
+                                color: #FFFFFF;
+                            }
+                            .bg1 {
+                                background: url('@/assets/img/rank_blue@2x.png');
+                                background-repeat: no-repeat;
+                                background-size: 100% 100%;
+                            }
+                            .bg2 {
+                                background: url('@/assets/img/rank_yellow@2x.png');
+                                background-repeat: no-repeat;
+                                background-size: 100% 100%;
+                            }
+                        }
+                        .content_left_item1_content_row_line {
+                            flex: 1;
+                            margin: 0 15px;
+                            &::v-deep(.el-progress-bar__outer) {
+                                border-radius: 0%;
+                                background: rgba(255,255,255,0.13);
+                            }
+                            &::v-deep(.el-progress-bar__inner) {
+                                border-radius: 0%;
+                                background: linear-gradient(270deg, #00B0FF 0%, #345BA3 100%);
+                            }
+                        }
+                        .content_left_item1_content_row_num {
+                            font-size: 13px;
+                            font-family: SourceHanSansSC-Regular, SourceHanSansSC;
+                            font-weight: 400;
+                            color: #D2E0FF;
+                        }
+                    }
+                }
+            }
+            .content_left_item2 {
+                width: 100%;
+                .content_left_item2_head {
+                    background: url('@/assets/img/home_title_short@2x.png');
+                    background-repeat: no-repeat;
+                    background-size: 100% 100%;
+                    width: 100%;
+                    height: 38px;
+                    line-height: 38px;
+                    padding-left: 34px;
+                    box-sizing: border-box;
+                    span {
+                        font-size: 16px;
+                        font-family: SourceHanSansSC-Bold, SourceHanSansSC;
+                        font-weight: bold;
+                        color: #FFFFFF;
+                        line-height: 24px;
+                        text-shadow: 0px 0px 10px rgba(0,24,72,0.75);
+                    }
+                }
+                .content_left_item2_content {
+                    width: 100%;
+                    height: 361px;
+                    padding: 20px;
+                    box-sizing: border-box;
+                    background: linear-gradient(180deg, rgba(52,88,159,0) 0%, rgba(0,86,255,0.4) 100%);
+                    .item2_content_head {
+                        width: 100%;
+                        height: 36px;
+                        display: flex;
+                        align-items: center;
+                        background: rgba(52,88,159,0.5);
+                        .item2_content_head_item {
+                            flex: 1;
+                            height: 100%;
+                            display: flex;
+                            align-items: center;
+                            justify-content: center;
+                            font-size: 13px;
+                            font-family: PingFangSC-Medium, PingFang SC;
+                            font-weight: 500;
+                            color: #01D9FE;
+                            &:first-child {
+                                flex: 1.5;
+                            }
+                        }
+                    }
+                    .main_container {
+                        width: 100%;
+                        height: calc(100% - 36px);
+                        .scroll_container {
+                            width: 100%;
+                            height: 100%;
+                            overflow: hidden;
+                            .scroll_item_bg1 {
+                                background: rgba(52,88,159,0.2);
+                            }
+                            .scroll_item_bg2 {
+                                background: rgba(52,88,159,0.5);
+                            }
+                            .scroll_item {
+                                width: 100%;
+                                height: 36px;
+                                display: flex;
+                                align-items: center;
+
+                            }
+                        }
+                    }
+                }
+            }
         }
         .content_center {
-            flex: 1;
+            flex: 2;
             margin: 0 40px;
             background-color: aquamarine;
         }
         .content_right {
-            width: 920px;
+            flex: 1;
             background-color: aquamarine;
         }
     }

--
Gitblit v1.9.3