From f9ac8fe8cbbb5a91fb047a9e90dec81efca11a01 Mon Sep 17 00:00:00 2001
From: web <candymxq888@outlook.com>
Date: 星期一, 09 六月 2025 17:04:14 +0800
Subject: [PATCH] fix:修改框架

---
 src/assets/images/login/login_icon.png    |    0 
 src/assets/images/screen/btnbg-active.png |    0 
 src/assets/images/login/login_bcg1.png    |    0 
 src/assets/images/screen/head.png         |    0 
 src/assets/images/screen/content_bg.png   |    0 
 src/assets/images/login/login_bcg.png     |    0 
 src/assets/images/screen/btnbg.png        |    0 
 src/assets/images/screen/userImg.png      |    0 
 src/views/screen/home/index.vue           |  132 ------------------
 /dev/null                                 |    0 
 src/screen/index.vue                      |  246 +++++++++++++++++++++++++++++-----
 package.json                              |    2 
 src/assets/images/screen/loginOut.png     |    0 
 13 files changed, 208 insertions(+), 172 deletions(-)

diff --git a/package.json b/package.json
index 7ae122f..554ac59 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
   "name": "jc-hydropower-station-web",
   "version": "3.8.7",
   "description": "管理系统",
-  "author": "金川项目",
+  "author": "泾川项目",
   "license": "MIT",
   "type": "module",
   "scripts": {
diff --git a/src/assets/images/login/login_bcg.png b/src/assets/images/login/login_bcg.png
new file mode 100644
index 0000000..2eeb2ff
--- /dev/null
+++ b/src/assets/images/login/login_bcg.png
Binary files differ
diff --git a/src/assets/images/login/login_bcg1.png b/src/assets/images/login/login_bcg1.png
new file mode 100644
index 0000000..db77bff
--- /dev/null
+++ b/src/assets/images/login/login_bcg1.png
Binary files differ
diff --git a/src/assets/images/login/login_icon.png b/src/assets/images/login/login_icon.png
new file mode 100644
index 0000000..6f4e94d
--- /dev/null
+++ b/src/assets/images/login/login_icon.png
Binary files differ
diff --git a/src/assets/images/map-bg.png b/src/assets/images/map-bg.png
deleted file mode 100644
index 474c290..0000000
--- a/src/assets/images/map-bg.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/messageInfo-box.png b/src/assets/images/messageInfo-box.png
deleted file mode 100644
index b371547..0000000
--- a/src/assets/images/messageInfo-box.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/point.png b/src/assets/images/point.png
deleted file mode 100644
index 6258ce3..0000000
--- a/src/assets/images/point.png
+++ /dev/null
Binary files differ
diff --git a/src/assets/images/screen/btnbg-active.png b/src/assets/images/screen/btnbg-active.png
new file mode 100644
index 0000000..7221d38
--- /dev/null
+++ b/src/assets/images/screen/btnbg-active.png
Binary files differ
diff --git a/src/assets/images/screen/btnbg.png b/src/assets/images/screen/btnbg.png
new file mode 100644
index 0000000..0f38a44
--- /dev/null
+++ b/src/assets/images/screen/btnbg.png
Binary files differ
diff --git a/src/assets/images/screen/content_bg.png b/src/assets/images/screen/content_bg.png
new file mode 100644
index 0000000..96b7f87
--- /dev/null
+++ b/src/assets/images/screen/content_bg.png
Binary files differ
diff --git a/src/assets/images/screen/head.png b/src/assets/images/screen/head.png
new file mode 100644
index 0000000..abfacaf
--- /dev/null
+++ b/src/assets/images/screen/head.png
Binary files differ
diff --git a/src/assets/images/screen/loginOut.png b/src/assets/images/screen/loginOut.png
new file mode 100644
index 0000000..582f66e
--- /dev/null
+++ b/src/assets/images/screen/loginOut.png
Binary files differ
diff --git a/src/assets/images/screen/userImg.png b/src/assets/images/screen/userImg.png
new file mode 100644
index 0000000..3e8ed9c
--- /dev/null
+++ b/src/assets/images/screen/userImg.png
Binary files differ
diff --git a/src/screen/index.vue b/src/screen/index.vue
index e598b10..d1daa78 100644
--- a/src/screen/index.vue
+++ b/src/screen/index.vue
@@ -1,86 +1,252 @@
 <template>
     <div class="main">
         <div class="header">
-            <div class="top">大屏 </div>
+            <div class="top">
+                <div class="title">xxxxxxxxxxxxx大屏</div>
+                <div class="time">
+                    <span>{{ nowTime.date }}</span>
+                    <span>{{ nowTime.time }}</span>
+                </div>
+                <div class="user-image">
+                    <div>
+                        <img src="../assets/images/screen/userImg.png" alt="">
+                    </div>
+                    <div class="loginOut">
+                        <el-dropdown trigger="click">
+                            <img src="../assets/images/screen/loginOut.png" alt="">
+                            <template #dropdown>
+                                <el-dropdown-menu>
+                                    <el-dropdown-item>
+                                        <span @click="toUserDetail" >个人中心</span>
+                                    </el-dropdown-item>
+                                    <el-dropdown-item divided>
+                                        <span @click="loginOut">退出登录</span>
+                                    </el-dropdown-item>
+                                </el-dropdown-menu>
+                            </template>
+                        </el-dropdown>
+                    </div>
+                </div>
+            </div>
             <div class="nav">
-                <div v-for="(item,index) in btnList" :key="index" @click="navTo(item)" class="plain" :class="item.url === route.path ? 'active' : ''">{{ item.name }}</div>
+                <div class="nav-content">
+                    <div class="nav-content-l">
+                        <div v-for="(item,index) in btnList.slice(0,4)" :key="index" @click="navTo(item)" class="plain" :class="item.url === route.path ? 'active' : ''">{{ item.name }}</div>
+                    </div>
+                    <div class="nav-content-r">
+                        <div v-for="(item,index) in btnList.slice(4,8)" :key="index" @click="navTo(item)" class="plain" :class="item.url === route.path ? 'active' : ''">{{ item.name }}</div>
+                    </div>
+                </div>
             </div>
         </div>
-        <div class="content">
-            <router-view></router-view>
-        </div>
+        <div class="content"><router-view></router-view></div>
     </div>
 </template>
 <script setup>
 import{ useRouter,useRoute } from 'vue-router'
-import useUserStore from '@/store/modules/user.js'
-import {onMounted} from "vue";
-
-const userStore = useUserStore()
+import {ElMessageBox} from "element-plus";
+import { removeToken } from '@/utils/auth'
 
 const router = useRouter()
 const route = ref(useRoute())
+const loginOut = () =>{
+    ElMessageBox.confirm('确定注销并退出系统吗?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+    }).then((e) => {
+        removeToken()
+        window.location.reload();
+
+    }).catch(() => { });
+}
+
+const toUserDetail = () =>{
+    router.push('/userCenter')
+}
+
 const btnList = ref([
-    {name:'首页总览',url:'/screen/home'}
+    {name:'首页总览',url:'/screen/home'},
+    {name:'系统监管',url:'/user'},
 ])
 
 const navTo = (item) =>{
     router.push(item.url)
 }
 
-onMounted(() => {
-    if(userStore.userType == 1) {
-        btnList.value.push({name:'系统管理',url:'/user'})
-    }
-})
+//获取当前时间
+const nowTime = ref({})
+const now = new Date()
+const getTime = (now) => {
+    // 获取年月日时分秒
+    const year = now.getFullYear();
+    const month = String(now.getMonth() + 1).padStart(2, '0'); // 月份是从0开始的
+    const day = String(now.getDate()).padStart(2, '0');
+    const hours = String(now.getHours()).padStart(2, '0');
+    const minutes = String(now.getMinutes()).padStart(2, '0');
+    const seconds = String(now.getSeconds()).padStart(2, '0');
 
+    // 获取星期
+    const weekdays = ["星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
+    const weekday = weekdays[now.getDay()];
+
+    // 拼接成指定格式的字符串
+    return nowTime.value = {
+        date:`${year}.${month}.${day} ${weekday}`,
+        time:`${hours}:${minutes}:${seconds}`,
+    }
+}
+getTime(now)
+
+onMounted(()=>{
+    setInterval(()=>{
+        nowTime.value = getTime(new Date())
+    },1000)
+})
 </script>
 
 <style lang="scss" scoped>
 .main{
+    background:rgba(8,28,65,1);
+    //background-image:url("../assets/images/screen/bcg.png");
+    background-size: 100% 100%;
     width: 100%;
     height: 100%;
     .header{
         width: 100%;
-        height: 14%;
-        background-color: rgb(82, 120, 128);
-        position: relative;
+        height: 10%;
         .top{
-            height: 60%;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            font-size: 48px;
-            font-weight: 700;
-            color: #fff;
             position: relative;
-            z-index: 100;
+            width: 100%;
+            height: 6.5rem;
+            background-image: url("../assets/images/screen/head.png");
+            background-size: 100% 100%;
+            background-repeat: no-repeat;
+            .title{
+                width: 57rem;
+                height: 2rem;
+                position: absolute;
+                left:calc(50% - 28.5rem);
+                text-align: center;
+                font-size: 1.6rem;
+                font-weight: 800;
+                color: #F9FBFF;
+                line-height: 70px;
+                text-shadow:0 0 3px rgba(255,255,255,0.7);
+            }
+            .time{
+                position: absolute;
+                width: 13rem;
+                top: 0.5rem;
+                left: 2rem;
+                display: flex;
+                justify-content: space-between;
+                line-height: 1.6rem;
+                span{
+                    font-weight: 400;
+                    color: #83D9F3;
+                }
+                span:last-child{
+                    text-shadow:0 0 2px rgba(255,255,255,0.6);
+                }
+            }
+            .select{
+                width: 8rem;
+                height: 2rem;
+                position: absolute;
+                top: 0.1rem;
+                right: 8rem;
+                .select-item {
+                    :deep(.el-select__wrapper) {
+                        background: rgba(6, 47, 97, 0.8) !important;
+                        border: solid #14528f 0.125rem;
+                        height: 2rem;
+                    }
+                    :deep(.el-select__placeholder) {
+                        color: #07a4ff;
+                        font-size: 0.75rem;
+                    }
+                }
+            }
+            .user-image{
+                position: absolute;
+                width: 3rem;
+                height: 2rem;
+                top: 0.5rem;
+                right: 2rem;
+                display: flex;
+                justify-content: space-between;
+                align-items: center;
+                .loginOut img{
+                    margin-top: 0.1rem;
+                    width: 0.8rem;
+                    height: 0.6rem;
+                }
+            }
+            .left-icon{
+                position: absolute;
+                top: 50%;
+                img{
+                    width: 28rem;
+                    height: 1.87rem;
+                }
+            }
+            .right-icon{
+                position: absolute;
+                top: 50%;
+                right: 0;
+                img{
+                    width: 28rem;
+                    height: 1.87rem;
+                    transform: scaleX(-1);
+                }
+            }
         }
         .nav{
-            display: flex;
-            height: 40%;
             position: relative;
             z-index: 100;
-            .plain{
-                flex-grow: 1;
-                height: 100%;
+            margin-top: -4.5rem;
+            width: 100%;
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+        }
+        .nav-content{
+            width: 100%;
+            display: flex;
+            align-items: center;
+            justify-content: space-between;
+            font-weight: 400;
+            font-size: 1.1rem;
+            color: #FFFFFF;
+            line-height: 3rem;
+            &-l{
+                width: 35%;
                 display: flex;
-                align-items: center;
-                justify-content: center;
-                border: 1px solid #fff;
-                background-color: rgba(23, 108, 229, 0.3);
-                color: #fff;
-                font-size: 22px;
-                cursor: pointer;
+            }
+            &-r{
+                width: 35%;
+                display: flex;
+            }
+            .plain{
+                width: 10rem;
+                height: 3.5rem;
+                line-height: 3.5rem;
+                background-image: url("../assets/images/screen/btnbg.png");
+                background-size: 100% 100%;
+                text-align: center;
             }
             .active{
-                background-color: #91BDDB;
+                background-image: url("../assets/images/screen/btnbg-active.png");
             }
         }
     }
     .content{
         width: 100%;
-        height: 86%;
+        height: 90%;
+        background: url("../assets/images/screen/content_bg.png") no-repeat;
+        background-size: 100% 100%;
+        padding: 0 1.5rem 1.5rem;
     }
 }
 </style>
\ No newline at end of file
diff --git a/src/views/screen/home/index.vue b/src/views/screen/home/index.vue
index 5d8d975..a477325 100644
--- a/src/views/screen/home/index.vue
+++ b/src/views/screen/home/index.vue
@@ -1,146 +1,16 @@
 <template>
     <div class="home">
-        <div class="home-bg"></div>
-        <div class="home-c">
-            <div class="point">
-                <div class="point-address"></div>
-                <div class="point-message">
-                    <div class="video-box">
-                        <el-icon><VideoPlay /></el-icon>
-                    </div>
-                    <div class="info-box">
-                        <div class="info-t">水电站流量监测点</div>
-                        <div class="info-sw">水位:<span>500</span>m</div>
-                        <div class="info-ls">流速:<span>15</span>m/s</div>
-                        <div class="info-ssls">瞬时流速:<span>150</span>m/s</div>
-                        <div class="info-ljll">
-                            累计流量:
-                            <el-select
-                                v-model="selectll"
-                                class="m-2"
-                                placeholder="Select"
-                                size="small"
-                                style="width: 240px"
-                            >
-                                <el-option
-                                    v-for="(item, idx) in liuliangOptions"
-                                    :key="idx"
-                                    :label="item.label"
-                                    :value="idx"
-                                />
-                            </el-select>
-                            <span>{{ liuliangOptions[selectll].value }}</span>m/s
-                        </div>
-                    </div>
-                </div>
-            </div>
-        </div>
+        11111
     </div>
 </template>
 
 
 <script setup>
-
-import {ref} from "vue";
-
-const selectll = ref(0)
-
-const liuliangOptions = [
-    { label: '总计流量', value: 500 },
-    { label: '日累计流量', value: 1000 },
-    { label: '周累计流量', value: 10000 },
-    { label: '月累计流量', value: 300000 },
-    { label: '年累计流量', value: 3600000 },
-]
-
 </script>
 
 
 <style scoped lang="scss">
 .home{
     height: 100%;
-    .home-bg{
-        position: absolute;
-        left: 0;
-        top: 0;
-        width: 100%;
-        height: 100%;
-        background: url("@/assets/images/map-bg.png") no-repeat;
-        background-size: 100% 100%;
-        z-index: 11;
-    }
-    .home-c{
-        width: 100%;
-        height: 100%;
-        position: relative;
-        z-index: 20;
-        .point{
-            position: absolute;
-            left: 58%;
-            top: 30%;
-            .point-address{
-                width: 35px;
-                height: 40px;
-                background: url("@/assets/images/point.png") no-repeat;
-                background-size: 100% 100%;
-            }
-            .point-message{
-                width: 600px;
-                height: 200px;
-                background: url("@/assets/images/messageInfo-box.png") no-repeat;
-                background-size: 100% 100%;
-                position: absolute;
-                left: -600px;
-                top: -100px;
-                padding: 30px 50px 30px 30px;
-                color: #fff;
-                display: flex;
-                align-items: center;
-                gap: 20px;
-                .video-box{
-                    flex-shrink: 0;
-                    width: 200px;
-                    height: 138px;
-                    line-height: 138px;
-                    text-align: center;
-                    font-size: 38px;
-                    background: #cccb40;
-                }
-                .info-box{
-                    height: 100%;
-                    display: flex;
-                    flex-direction: column;
-                    justify-content: space-between;
-                    .info-t{
-                        font-size: 20px;
-                    }
-                    .info-ljll{
-                        display: flex;
-                        align-items: center;
-                        :deep(.el-select){
-                            width: 100px !important;
-                            .el-select__wrapper{
-                                color: #fff;
-                                background: transparent;
-                                .el-select__selected-item{
-                                    color: #fff;
-                                }
-                                .el-select__suffix .el-icon{
-                                    color: #fff;
-                                }
-                                &:hover{
-                                    box-shadow: none;
-                                }
-                            }
-                        }
-                    }
-                    span{
-                        display: inline-block;
-                        padding: 0 10px;
-                    }
-                }
-            }
-        }
-    }
 }
 </style>
\ No newline at end of file

--
Gitblit v1.9.3