From 1e09a7a01a6c1888e1a2a832eb007fb8c2b653a0 Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期三, 26 一月 2022 11:06:27 +0800
Subject: [PATCH] Merge branch 'bhomebus' of http://192.168.5.5:10010/r/web/vue-smart-ai into bhomebus

---
 src/pages/settings/views/generalSettings.vue |  418 +++++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 335 insertions(+), 83 deletions(-)

diff --git a/src/pages/settings/views/generalSettings.vue b/src/pages/settings/views/generalSettings.vue
index 5fdca0a..4b6f2a1 100644
--- a/src/pages/settings/views/generalSettings.vue
+++ b/src/pages/settings/views/generalSettings.vue
@@ -58,7 +58,7 @@
             <span class="desc">{{ deviceInfo.runningTime }}</span>
           </div>
         </div> -->
-        <div class="lang" v-if="activePage == 0">
+        <div class="lang videoTime" v-if="activePage == 0">
           <div class="min-dur">
             <div class="title">鎶撴媿鍓嶅綍鍍忔椂闀�</div>
             <div class="entity">
@@ -73,10 +73,11 @@
                   @input="min_len = min_video_len"
                   show-stops
                   :show-tooltip="true"
+                  tooltip-class="toolClass"
                   :format-tooltip="formatTooltip"
                 ></el-slider>
               </div>
-              <el-input-number
+              <!-- <el-input-number
                 v-model="min_len"
                 @change="fakeObj.min = +(min_len / 1.2)"
                 controls-position="right"
@@ -86,7 +87,17 @@
                 step-strictly
                 size="small"
               ></el-input-number
-              >&nbsp;s
+              >&nbsp;s -->
+               
+              <el-input-number 
+              v-model="min_len" 
+              @change="fakeObj.min = +(min_len / 1.2)" 
+              :min="5" 
+              :step="5"
+              :max="120" 
+              step-strictly
+              size="small"
+              ></el-input-number>&nbsp;s
             </div>
           </div>
           <div class="min-dur">
@@ -109,7 +120,6 @@
               <el-input-number
                 v-model="max_len"
                 @change="fakeObj.max = +(max_len / 1.2)"
-                controls-position="right"
                 :min="5"
                 :step="5"
                 step-strictly
@@ -117,6 +127,7 @@
                 size="small"
               ></el-input-number
               >&nbsp;s
+              
             </div>
           </div>
 
@@ -145,9 +156,11 @@
                     style="cursor: pointer"
                     >{{ playSpan }}</span
                   >
-                  <span class="iconfont" v-else style="cursor: pointer">{{
+                  <!-- <span class="iconfont" v-else style="cursor: pointer">{{
                     playSpan2
-                  }}</span>
+                  }}</span> -->
+
+                  <img v-else src="/images/settings/鏆傚仠.png" alt="" style="width:16px;hight:16px;cursor: pointer;margin-top:15px;">
                   <!-- 
                   <i
                     v-if="!item.isPlay"
@@ -194,15 +207,41 @@
         </div>
 
         <div class="self-setting" v-if="activePage == 2">
-          <div class="top-title">鍥炬爣涓婚</div>
+          <div class="top-title">棰滆壊涓婚</div>
+          <div class="color-bar">           
+            <div
+            v-for="(item,index) in colorList"
+            :key="index"   
+            style="border:none;"
+            >
+            <div class="color-option"
+            v-if="universalColor != index"
+            :style="{cursor: 'pointer',backgroundColor:item.color}"
+            @click="colorCard(item.color,index)"
+            />    
 
+            <div class="color-option color-option-active"
+            v-else
+            :style="{cursor: 'pointer',border:`2px solid ${item.color}`}"
+            @click="colorCard(item.color,index)">
+           <div 
+           :style="{backgroundColor:item.color}"
+           class="color-option-content">
+           </div>
+  
+            </div>
+          </div>
+          </div>
+
+          
+
+          <div class="top-title">鍥炬爣涓婚</div>
           <div class="icon-bar" style="cursor: pointer" @click="selectIcons(0)">
             <div class="bar-title">
               <span class="title">鎵佸钩鍐欏疄鍥炬爣</span>
               <span
                 class="icon iconfont"
-                style="color: #3d68e1; font-size: 18px"
-                v-show="activeIcons == 0"
+                :class="activeIcons == 0 ? 'icon-active' : 'icon-normal'"
                 >&#xe6f1;</span
               >
             </div>
@@ -211,7 +250,6 @@
                 class="entity-img"
                 v-for="(item, i) in realIconList"
                 :key="i"
-                @click="colorCard(item.color)"
               >
                 <img :src="item.url" alt="" />
               </div>
@@ -222,8 +260,7 @@
               <span class="title">鎵佸钩鍖栧浘鏍�</span>
               <span
                 class="icon iconfont"
-                style="color: #3d68e1; font-size: 18px"
-                v-show="activeIcons == 1"
+                :class="activeIcons == 1 ? 'icon-active' : 'icon-normal'"
                 >&#xe6f1;</span
               >
             </div>
@@ -237,13 +274,14 @@
               </div>
             </div>
           </div>
+          
           <div class="top-title">妗岄潰鑳屾櫙涓婚</div>
           <div class="bg-bar">
             <div class="bg-list">
               <div
-                class="bg-img"
-                :class="activeBg == i ? 'bg-list-active' : ''"
                 v-for="(item, i) in tableBGList"
+                class="bg-img"
+                :class="activeBg == i ? 'bg-list-active' : ''"              
                 :key="i"
                 @click="pickBg(item, i)"
               >
@@ -260,13 +298,15 @@
 <script>
 import { saveAlarmConfig, getDevInfo } from "@/api/system";
 import { uploadSound, getSoundList, deleteSound } from "@/api/event";
-
+import {
+  updateUser,
+} from "@/api/user";
 export default {
   data() {
     return {
-      playSpan: "\ue6e8",
-      playSpan2: "\ue6e8",
-      delspan: "\ue6e8",
+      playSpan: "\ue75e",
+      playSpan2: "\ue75f",
+      delspan: "\ue715",
       warnSpn: "\ue71c",
       curPlayingIndex: null,
       showUpload: false,
@@ -279,9 +319,9 @@
       },
       menuArr: [
         // { name: "璁惧淇℃伅", icon: "\ue933" ,size:18},
-        { name: "浜嬩欢褰曞儚鏃堕暱", icon: "\ue6f3", size: 20 },
-        { name: "浜嬩欢澹伴煶", icon: "\ue6e1", size: 16 },
-        { name: "涓�у寲璁剧疆", icon: "\ue756", size: 18 },
+        { name: "浜嬩欢褰曞儚鏃堕暱", icon: "\ue74f", size: 20 },
+        { name: "浜嬩欢澹伴煶", icon: "\ueb5e", size: 16 },
+        { name: "涓�у寲璁剧疆", icon: "\ue750", size: 18 },
       ],
       soundList: [],
       activePage: 0,
@@ -311,10 +351,22 @@
         { url: "/images/settings/绯荤粺璁剧疆.png" },
       ],
       tableBGList: [
-        { name: "background", url: "/images/settings/background.png" },
-        { name: "message", url: "/images/settings/鏁版嵁鎺ㄩ��.png" },
-        { name: "weather", url: "/images/settings/绯荤粺璁剧疆.png" },
+        { name: "background", url: "/images/desktop/background.png" },
+        { name: "message", url: "/images/desktop/message.png" },
+        { name: "weather", url: "/images/desktop/weather.png" },
       ],
+      universalColor:'',
+      colorList: [
+        {name:1 ,color:"#FC6B9E"},
+        {name:2 ,color:"#F38F56"},
+        {name:3 ,color:"#FDD33A"},
+        {name:4 ,color:"#53D999"},
+        {name:5 ,color:"#21CDB2"},
+        {name:6 ,color:"#61E2EB"},
+        {name:7 ,color:"#4E94FF"},
+        {name:8 ,color:"#8E8CD8"},
+        {name:9 ,color:"#4C4A48"},
+      ]
     };
   },
   mounted() {
@@ -327,11 +379,12 @@
         _this.curPlayingIndex = null;
       }
     });
-    const url = localStorage.getItem("backgroundPic");
+    const url = this.curUser.backgroundpic;
+    this.activeIcons = this.curUser.useIconType-1
     if (url) {
-      const arr = url.split("/");
+      // const arr = url.split("/");
       this.activeBg = this.tableBGList.findIndex((x) => {
-        return x.url.includes(arr[arr.length - 1]);
+        return x.url == url;
       });
     } else {
       this.activeBg = 0;
@@ -353,6 +406,10 @@
     max_video_len() {
       return Math.round(this.fakeObj.max * 1.2);
     },
+    curUser() {
+      const info = JSON.parse(sessionStorage.getItem("userInfo"));
+      return info;
+    },
   },
   methods: {
     formatTooltip(v) {
@@ -361,12 +418,17 @@
     pickBg(item, i) {
       this.activeBg = i;
       let message = "changeBackground?" + item.name;
-      window.parent.postMessage(
-        {
-          msg: message,
-        },
-        "*"
-      );
+      window.parent.postMessage(  {msg: message, }, "*" );
+      updateUser({
+        id: this.curUser.id,
+        backgroundpic: item.url,
+      }).then((res) => {
+        if (res.success) {
+          sessionStorage.setItem("userInfo", JSON.stringify(res.data))
+          this.$message.success(res.msg);
+        }
+      });
+      this.$forceUpdate()
     },
     togglePlay(item, i) {
       if (this.curPlayingIndex !== null) {
@@ -441,6 +503,16 @@
     },
     selectIcons(i) {
       this.activeIcons = i;
+      updateUser({
+        id: this.curUser.id,
+        iconType: i+1,
+      }).then((res) => {
+        if (res.success) {
+          window.parent.postMessage({ msg: "AppUpdate" }, "*");
+          sessionStorage.setItem("userInfo", JSON.stringify(res.data))
+          this.$message.success(res.msg);
+        }
+      });
     },
     removeSound(item) {
       const h = this.$createElement;
@@ -501,10 +573,12 @@
         }
       });
     },
-    colorCard(color) {
-      document.documentElement.style.setProperty("--colorCard", `${color}`);
-      localStorage.setItem("--colorCard", `${color}`);
-    },
+    colorCard(color,index) {
+      this.universalColor = index
+      document.documentElement.style.setProperty('--colorCard',`${color}`)
+      localStorage.setItem('--colorCard',`${color}`)
+      window.parent.postMessage({msg:'changeColor',color},'*')
+    }
   },
 };
 </script>
@@ -521,16 +595,21 @@
   flex: 1;
   flex-basis: auto;
   box-sizing: border-box;
+  .el-input__inner {
+ height: 24px !important;
+}
   .general-center {
     height: 100%;
     width: 300px;
     overflow: auto;
     box-sizing: border-box;
     flex-shrink: 0;
-    padding: 24px 10px;
+    padding: 10px 10px;
+    padding-top: 6px;
     border-right: 4px solid #f2f2f7;
+    border-top: 4px solid #f2f2f7;
+    border-left: 4px solid #f2f2f7;
     background-color: #fbfaff;
-
     .menu-item {
       height: 56px;
       margin-bottom: 4px;
@@ -554,17 +633,19 @@
       background-color: var(--colorCard) !important;
       color: white !important;
     }
-    /*  .menu-item:hover {
+    .menu-item:hover {
       background-color: #F2F2F7;
-    } */
+    }
   }
   .general-right {
     flex: 1;
     flex-basis: auto;
     overflow: auto;
     box-sizing: border-box;
+    background-color: rgb(251, 250, 255);
+    border-top: 4px solid #f2f2f7;
 
-    padding: 10px 18px 10px 10px;
+    padding: 6px 18px 10px 10px;
     .el-form-item.is-required:not(.is-no-asterisk)
       > .el-form-item__label:before,
     .el-form-item.is-required:not(.is-no-asterisk)
@@ -578,7 +659,7 @@
     .el-form-item {
       margin-bottom: 10px;
       height: 50px;
-      background: #f8f8f8;
+      background: #F2F2F7;
       padding: 4px 20px;
       -webkit-box-sizing: border-box;
       box-sizing: border-box;
@@ -606,16 +687,23 @@
         text-align: left;
         margin-bottom: 5px;
       }
-      .voice-title {
+      .bar.title.voice-title {
         justify-content: center !important;
+        text-align: center;
         font-weight: 700;
-      }
+        border: none;
+        background: #F2F2F7;
+        border-radius: 8px;
+        height: 48px;
+        margin-bottom: 4px;
+        border:2px solid #F2F2F7 !important;    
+       }
       .bar-group {
         overflow: auto;
-        height: 520px;
+        height: calc(100% - 100px);
         .general-bar {
           height: 48px;
-          background-color: #f8f8f8;
+          background: #F2F2F7;
           border-radius: 10px;
           line-height: 48px;
           box-sizing: border-box;
@@ -624,7 +712,8 @@
           display: flex;
           justify-content: space-between;
           margin-bottom: 2px;
-          border: 2px solid #fff;
+          border:2px solid #F2F2F7;
+          margin-bottom: 4px;
           .name {
             font-size: 14px;
           }
@@ -684,30 +773,31 @@
         width: fit-content;
         .icon {
           font-size: 40px;
-          color: rgba(61, 104, 225, 1);
+          color: var(--colorCard);
         }
       }
       .min-dur {
         box-sizing: border-box;
         padding: 0 20px;
-        background-color: rgba(248, 248, 248, 1);
+        background-color: #F2F2F7;
         height: 105px;
-        margin-bottom: 20px;
+        margin-bottom: 4px;
         border-radius: 15px;
         .title {
+          color: #333;
           height: 45px;
           line-height: 45px;
-
           text-align: left;
           box-sizing: border-box;
           padding: 0 6px;
-          font-size: 14px;
+          font-size: 16px;
+          font-weight: 700;
         }
       }
 
-      .min-dur:hover {
+      /* .min-dur:hover {
         background-color: rgba(233, 233, 233, 1);
-      }
+      } */
 
       .entity {
         display: flex;
@@ -718,8 +808,8 @@
           min-width: 30px;
           line-height: 80px;
           margin-right: 10px;
-          color: rgba(120, 120, 120, 1);
-          font-size: 14px;
+          color:#333 ;
+          font-size: 8px;
         }
         .block {
           flex: 1;
@@ -757,34 +847,67 @@
       }
     }
     .save-btn {
-      background-color: #3d68e1;
-      width: 240px;
+      background-color: var(--colorCard);
+      width: 180px;
       height: 40px;
       margin: 0 auto;
-      border-radius: 10px;
+      border-radius: 25px;
       color: #fff;
       line-height: 40px;
       cursor: pointer;
-      font-size: 14px;
-      margin-top: 20px;
+      font-size: 16px;
+      font-weight: 700;
+      margin-top: 55px;
     }
     .self-setting {
       .top-title {
+        text-align: left;
         font-size: 16px;
-        height: 30px;
-        line-height: 30px;
         margin-bottom: 10px;
+        font-weight: 700;
+        margin-top: 20px;
       }
-      .icon-bar:hover {
+  /*     .icon-bar:hover {
         background-color: rgba(233, 233, 233, 1);
+      } */
+      .color-bar {
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        width: 412px;
+        height: 96px;
+        background-color: #fff;
+        border-radius: 8px;
+        padding-left:7px ;
+        .color-option {
+          margin-right:12px ;
+          width: 30px;
+          height: 30px;
+          border-radius:50% ;
+        }
+
+        .color-option-active {
+          box-sizing: border-box;
+          margin-right:12px ;
+          width: 30px;
+          height: 30px;
+          border-radius:50% ;
+          background-color: #fff;
+          padding: 4px;
+          .color-option-content {
+            width: 100%;
+            height: 100%;
+            border-radius:50% ;
+          }
+        }
       }
       .icon-bar {
         cursor: pointer;
-        background-color: rgba(248, 248, 248, 1);
         box-sizing: border-box;
-        padding: 15px 25px;
-        border-radius: 12px;
-        margin-bottom: 12px;
+        padding: 15px 13px 14px 20px;
+        background: #F2F2F7;
+        border-radius: 8px;
+        margin-bottom: 10px;
         .bar-title {
           line-height: 20px;
           height: 20px;
@@ -793,10 +916,20 @@
           justify-content: space-between;
           .title {
             font-size: 14px;
+            font-weight: 700;
+          }
+          .icon-active {
+            font-size: 16px;
+            color: var(--colorCard);
+          }
+          .icon-normal {
+            font-size: 16px;
+            color: #E0E0E0;
           }
         }
         .entity {
           display: flex;
+          margin-left:5px ;
           .entity-img {
             background-color: rgba(248, 248, 248, 1);
             width: 50px;
@@ -810,7 +943,7 @@
         }
       }
       .bg-bar {
-        background-color: rgba(248, 248, 248, 1);
+        background-color: #F2F2F7;
         box-sizing: border-box;
         padding: 15px 25px;
         border-radius: 12px;
@@ -821,18 +954,19 @@
             margin-right: 12px;
             cursor: pointer;
             // width: 120px;
-            height: 80px;
+            height: 66px;
             border: 2px solid transparent;
             img {
               border-radius: 5px;
               height: 100%;
             }
           }
-          .bg-img:hover {
+         /*  .bg-img:hover {
             border: 2px solid yellow;
-          }
+          } */
           .bg-list-active {
-            border: 2px solid yellow;
+            border: 2px solid var(--colorCard);
+            border-radius: 8px;
           }
         }
       }
@@ -874,11 +1008,10 @@
     margin-top: 30px;
   }
 
-  .info {
-    font-weight: bold;
-    font-size: 14px;
-    color: #828282;
-  }
+.info-click {
+  color: var(--colorCard);
+  text-decoration: underline;
+}
 
   .info-click {
     color: #4e94ff;
@@ -947,6 +1080,9 @@
         font-size: 16px;
         font-weight: 700;
       }
+      &:hover {
+        border: 1px solid var(--colorCard) !important;
+      }
     }
     button:first-child {
       background-color: #e0e0e0;
@@ -955,12 +1091,128 @@
       }
     }
     button:last-child {
-      background-color: #4e94ff !important;
-      border-color: #4e94ff !important;
-      span {
-        color: #fff;
+      background-color: var(--colorCard) !important;
+      border: 1px solid var(--colorCard) !important;
+      span { 
+         color: #fff;
       }
     }
   }
 }
 </style>
+
+<style>
+
+.videoTime .el-slider__button {
+  margin-top: -25px !important;
+  border: none !important;
+  
+}
+
+.videoTime .el-slider__button::after {
+  display: block;
+  position: relative;
+content: "\e75d";
+  color: var(--colorCard);
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+.videoTime .el-tooltip {
+background-color: #F2F2F7 !important;
+  border: none !important;
+}
+
+.videoTime .el-slider__runway {
+  background-color: #fff !important;
+  height: 3px !important;
+}
+
+.videoTime .el-slider__stop {
+  background-color: #C4C4C4 !important;
+  height: 3px !important;
+  width: 8px !important;
+  border-radius:0 !important;
+}
+
+.videoTime .el-slider__bar {
+  z-index: 999999999 !important;
+  background-color: var(--colorCard) !important;
+}
+
+.videoTime .el-input-number.el-input-number--small {
+  width: 90px;
+  height: 24px !important;
+  border-radius: 4px;
+  line-height: 24px !important;
+  font-weight: 700 !important;
+}
+
+
+.videoTime .el-input-number.el-input-number--small .el-input__inner {
+font-size: 12px !important;
+height: 24px !important;
+}
+
+.el-input-number__decrease {
+color: #333 !important;
+/* top: 4px !important; */
+ height: 22px !important;
+ width: 20px !important;
+ line-height: 22px  !important;
+}
+
+/* .el-input-number__decrease:hover i{
+  color: var(--colorCard);
+} */
+
+.el-input-number__increase {
+color: #333 !important;
+ /* top: 4px !important; */
+ height: 22px !important;
+ width: 24px !important;
+ line-height: 22px  !important;
+}
+
+.el-input-number__increase:hover i{
+ /*  color: var(--colorCard); */
+ color: #4E94FF;
+}
+
+
+
+
+/* .el-tooltip__popper {
+  font-size: 12px !important;
+  background-color: transparent !important;
+  color:var(--colorCard) !important;
+}
+
+.popper__arrow::after {
+  border-color: transparent !important;
+  border: none !important;
+}
+
+.popper__arrow:after {
+  border-bottom-color: green !important;
+}
+
+.popper__arrow:after {
+  border-top-color: pink !important;
+}
+
+.toolClass {
+  border: none !important;
+}
+
+.toolClass {
+  border: none !important;
+}
+
+.el-slider__button::after {
+  border: none !important;
+} */
+</style>

--
Gitblit v1.8.0