From a3aa9b34593a1e09a9030dd200fa1fd679c87fd5 Mon Sep 17 00:00:00 2001
From: ZZJ <zzjdsg2300@163.com>
Date: 星期一, 08 十一月 2021 18:15:12 +0800
Subject: [PATCH] 首页表格

---
 src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue |  299 +++++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 225 insertions(+), 74 deletions(-)

diff --git a/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue b/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue
index a091a5f..8c33c6d 100644
--- a/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue
+++ b/src/pages/shuohuangMonitorAnalyze/components/searchForVideoAnalyze.vue
@@ -11,7 +11,6 @@
           range-separator="鑷�"
           start-placeholder="寮�濮嬫棩鏈�"
           end-placeholder="缁撴潫鏃ユ湡"
-          align="right"
         ></el-date-picker>
         <el-input
           class="search-input"
@@ -84,7 +83,7 @@
                   v-for="(option, index) in config.data"
                   :key="index"
                 >
-                  <div v-show="config.isMultCheck">
+                  <div v-show="config.isMultCheck" class="check-name">
                     <el-checkbox v-model="option.isChecked"></el-checkbox>
                     <span>{{ option.name }}</span>
                   </div>
@@ -99,12 +98,16 @@
               </div>
               <div class="btns text-center" v-show="config.isMultCheck">
                 <el-button
+                  class="sure"
                   size="mini"
                   type="primary"
                   @click="checkOption(config)"
                   >纭畾</el-button
                 >
-                <el-button size="mini" @click="cancleMultCheck(config)"
+                <el-button
+                  size="mini"
+                  @click="cancleMultCheck(config)"
+                  class="cancel"
                   >鍙栨秷</el-button
                 >
               </div>
@@ -175,6 +178,7 @@
               v-model="IsFollow"
               size="mini"
               @change="filterSearchData"
+              style="width: 120px"
             >
               <el-option value label="鍏ㄩ儴"></el-option>
               <el-option :value="'1'" label="鏈叧娉�"></el-option>
@@ -186,6 +190,7 @@
               v-model="IsOperate"
               size="mini"
               @change="filterSearchData"
+              style="width: 120px"
             >
               <el-option value label="鍏ㄩ儴"></el-option>
               <el-option value="0" label="鏈鐞�"></el-option>
@@ -200,14 +205,15 @@
               :class="{ current: showType == 'menu' }"
               @click="checkType('menu')"
             >
-              <i class="el-icon-menu"></i>
+              <span class="iconfont icon">&#xe703; </span>
             </div>
             <div
-              class="type"
+              class="type list"
               :class="{ current: showType == 'list' }"
               @click="checkType('list')"
             >
-              <i class="el-icon-s-operation"></i>
+              <span class="iconfont icon">&#xe70f;</span>
+              <!-- <i class="el-icon-s-operation"></i> -->
             </div>
           </div>
         </div>
@@ -255,13 +261,14 @@
                       v-for="(label, index) in data.LableLst"
                       :key="index"
                     >
-                      {{
-                        label.Desc +
-                        (index == data.LableLst.length - 1 ? "" : "锛�")
-                      }}
+                      {{ label.Desc }}
                     </span>
+                    <!-- (index == data.LableLst.length - 1 ? "" : "锛�") -->
                   </div>
-                  <div v-else>
+                  <div v-else-if="hasError(data)" class="has-error">
+                    <span>鏈夊紓甯�</span>
+                  </div>
+                  <div v-else class="no-error">
                     <span>鏃犲紓甯�</span>
                   </div>
                   <div
@@ -384,7 +391,7 @@
       >
         <div slot="title" class="title">
           <div class="center">
-            <i class="el-icon-connection"></i>
+            <img src="/images/shuohuang/璺緞 414.png" alt="" />
             <span>鎾斁瑙嗛</span>
           </div>
         </div>
@@ -401,7 +408,7 @@
         @close="eventDialogVisible = false"
       >
         <div class="title" slot="title">
-          <i class="el-icon-connection"></i>
+          <img src="/images/shuohuang/璺緞 414.png" alt="" />
           <span>{{ curEvName }}瑙嗛</span>
         </div>
         <event-videos :eventVideoArr="eventVideoArr"></event-videos>
@@ -441,7 +448,7 @@
       keyword: "",
       IsFollow: "",
       searchTime: [
-        new Date(2020, 0, 1, 0, 0, 0),
+        new Date(2021, 0, 1, 0, 0, 0),
         new Date(2021, 11, 31, 23, 59, 59),
       ],
       curTabPage: 1,
@@ -595,7 +602,7 @@
           _this.tabData = _this.tabData.map(function (item) {
             const set = new Set();
             item.LableLst.forEach(function (label) {
-              label.Desc.split("锛�").forEach(function (d) {
+              label.Desc.split(",").forEach(function (d) {
                 set.add(d);
               });
             });
@@ -652,7 +659,7 @@
           _this.tabData = _this.tabData.map(function (item) {
             const set = new Set();
             item.LableLst.forEach(function (label) {
-              label.Desc.split("锛�").forEach(function (d) {
+              label.Desc.split(",").forEach(function (d) {
                 set.add(d);
               });
             });
@@ -699,6 +706,13 @@
           });
         });
       });
+    },
+    hasError(data) {
+      if (!data.EventLst || data.EventLst.length == 0) {
+        return false;
+      }
+      const t = data.EventLst.some((x) => x.state == 0);
+      return t && data.IsOperate == "1";
     },
     toggleFollow(data) {
       data.IsFollow == "0" ? (data.IsFollow = "1") : (data.IsFollow = "0");
@@ -877,14 +891,27 @@
 
 <style lang="scss">
 .search-for-video-analyze {
-  //鍑烘í鍚戞粴鍔ㄦ潯
-  padding: 25px 33px;
-  background-color: #fff;
-  margin: 33px;
+  background-color: #f4f6f9;
+  margin: 0 5px;
+  margin-bottom: 10px;
+
+  * {
+    box-sizing: content-box;
+    color: #425277;
+  }
+  .el-input__inner {
+    border: 1px solid #d7dce8;
+    //  border-color: #CCD9F0;
+  }
   .flex-box {
     display: flex;
   }
   .filter-area {
+    background: #fff;
+    padding: 22px 33px;
+    box-shadow: 0px 3px 6px#D0D7F1;
+
+    border-radius: 10px;
     .input-area {
       display: flex;
       align-items: center;
@@ -908,15 +935,16 @@
       .el-date-editor {
         margin-right: 20px;
       }
-      .el-input-group__append,
-      .el-input-group__prepend {
+      .el-input-group__append {
         background-color: #2d52d7;
-        color: #fff;
         border: 1px solid #2d52d7;
         padding: 0 16px;
 
         white-space: nowrap;
         font-size: 18px;
+        .el-icon-search {
+          color: #fff;
+        }
       }
     }
     .checked-config {
@@ -961,16 +989,16 @@
         flex-wrap: no-wrap;
         cursor: pointer;
         border-bottom: 1px solid #d7dce8;
-
         .title {
           padding: 10px 20px;
-          width: 110px;
+          width: 105px;
           text-align: left;
-          color: #2d52d7;
           font-weight: bold;
-          font-size: 14px;
-          .icon {
+          span {
             font-size: 14px;
+            color: #2d52d7;
+          }
+          .icon {
             margin-right: 10px;
           }
         }
@@ -982,18 +1010,25 @@
             height: 40px;
             overflow: hidden;
             .option {
-              padding: 10px 20px;
+              padding: 10px 0px;
               height: 20px;
               line-height: 20px;
+              min-width: 100px;
+              .check-name {
+                text-align: left;
+                padding-left: 10px;
+              }
               .option-name {
-                padding: 0 8px;
-                color: rgba(66, 82, 119, 1);
+                padding: 0 10px;
+                text-align: left;
+                width: fit-content;
               }
               &:hover > .option-name {
-                outline: 1px solid #a8b7ee;
-                padding: 0 8px;
+                // outline: 1px solid #a8b7ee;
                 background: #e2e7f9;
-                color: #2d52d7;
+                span {
+                  color: #2d52d7;
+                }
               }
               .el-checkbox {
                 padding-right: 6px;
@@ -1003,13 +1038,21 @@
           .btns {
             margin: 12px 0;
             .el-button--mini {
-    padding: 6px
- 17px
-;
-    font-size: 12px;
-    border-radius: 4px
-;
-}
+              padding: 6px 17px;
+              font-size: 12px;
+              border-radius: 4px;
+            }
+            .sure span,
+            .cancel span {
+              color: #fff;
+            }
+            .cancel {
+              background: rgba(175, 185, 208, 1);
+              border-color: rgba(175, 185, 208, 1);
+            }
+            .el-button + .el-button {
+              margin-left: 20px;
+            }
           }
         }
         .right-btns {
@@ -1039,7 +1082,12 @@
             padding: 0px 12px;
             border: 1px solid #d7dce7;
             border-radius: 2px;
-            color: #ee4e6e;
+            .el-icon-plus {
+              color: #ee4e6e;
+            }
+            span {
+              color: #ee4e6e;
+            }
             // &:hover {
             //   color: #7695ec;
             //   border-color: #7695ec;
@@ -1055,7 +1103,7 @@
         }
         .config-submenu {
           .el-menu--horizontal {
-            left: 20px !important;
+            // left: 20px !important;
             & > ul {
               flex-wrap: wrap;
             }
@@ -1066,6 +1114,9 @@
             border: none;
             color: #2c3e50;
             font-size: 12px;
+            padding: 0 10px;
+            min-width: 100px;
+            text-align: left;
           }
           .el-menu--popup {
             display: flex;
@@ -1090,9 +1141,14 @@
     }
   }
   .data-list {
-    margin-top: 20px;
+    margin-top: 24px;
+    background: #ffffff;
+    box-shadow: 0px 3px 6px #d0d7f1;
+    border-radius: 10px;
+    padding: 24px 33px;
     .header-bar {
-      padding-bottom: 10px;
+      margin-bottom: 24px;
+
       .left {
         float: left;
         display: flex;
@@ -1105,54 +1161,54 @@
         display: flex;
         .show-type {
           display: flex;
-          .type {
+          .list span {
             font-size: 20px;
-            padding: 2px 5px;
+          }
+          .type {
+            font-size: 18px;
+            padding: 2px 4px 0px 4px;
+            border-radius: 4px;
             cursor: pointer;
-            border: 1px solid #eee;
-            background-color: #ecf0fc;
-            border-radius: 3px;
-            color: #777;
             &.menu {
               margin-right: 10px;
+              span {
+                font-size: 15px;
+              }
             }
             &.current {
-              border-color: #409eff;
-              background-color: #fff;
+              span {
+                color: #fff;
+              }
+              background-color: #2d52d7;
             }
           }
         }
       }
     }
     .content {
-      //padding-top: 14px;
-      background: #f5f5f5;
-      background: #fff;
-      margin: 0 -30px;
-      margin-bottom: -30px;
       padding: 0;
       .el-table__row {
         cursor: pointer;
       }
-      .el-row {
-        padding-top: 20px;
-        background: #f5f5f5;
+      .el-table {
+        border: none;
       }
       .el-col {
         margin-bottom: 10px;
       }
       .card {
-        cursor: pointer;
         position: relative;
         text-align: left;
         background: #fff;
-        border-radius: 5px;
+        border-radius: 0 0 5px 5px;
         height: 360px;
         margin-bottom: 10px;
+        border: 1px solid#CCD9F0;
         &:hover {
-          box-shadow: 3px 2px 5px 1px rgba(0, 0, 0, 0.3);
+          box-shadow: 3px 3px 4px #d3def2;
         }
         .video-wrap {
+          cursor: pointer;
           border-radius: 3px;
           width: 100%;
           padding-top: 56.25%;
@@ -1163,7 +1219,7 @@
             top: 0;
             width: 100%;
             height: 100%;
-            object-fit: contain;
+            object-fit: unset;
           }
         }
         .video-info {
@@ -1173,21 +1229,61 @@
               margin-bottom: 1px;
             }
             label {
-              color: #999;
+              color: #808dab;
               padding-right: 8px;
+              line-height: 16px;
+            }
+            span {
+              font-weight: bold;
+              color: #425277;
+              line-height: 16px;
             }
           }
           .mark-info {
             margin: 10px 0;
             color: #3d68e1;
             .abnormal {
-              color: red;
               overflow: hidden;
               text-overflow: ellipsis;
               white-space: nowrap;
+              .abnormal-label {
+                display: inline-block;
+                border: 1px solid;
+                border: 1px solid #bf3a3a;
+                border-radius: 2px;
+                color: #bf3a3a;
+                padding: 0 3px;
+                margin-right: 3px;
+              }
             }
             .event-tag {
-              margin-top: 10px;
+              margin-top: 8px;
+              .el-tag.el-tag--info {
+                background-color: #96a0b7;
+                border-color: #96a0b7;
+                color: #fff;
+                cursor: pointer;
+                height: 19px;
+                padding: 0 5px;
+              }
+            }
+            .has-error {
+              width: fit-content;
+              background: #bf3a3a;
+              padding: 1px 5px;
+              border-radius: 2px;
+              span {
+                color: #fff;
+              }
+            }
+            .no-error {
+              width: fit-content;
+              background: #2d52d7;
+              padding: 1px 5px;
+              border-radius: 2px;
+              span {
+                color: #fff;
+              }
             }
           }
           .tag-info {
@@ -1206,9 +1302,11 @@
           font-size: 20px;
           right: 10px;
           bottom: 10px;
-          color: #ccc;
+          i {
+            color: #c7d0e5;
+          }
           .follow {
-            color: #409eff;
+            color: #f90741;
           }
         }
       }
@@ -1232,15 +1330,17 @@
         text-align: center;
         margin: 0 -10px;
         padding: 10px 0 20px;
-        background: #f5f5f5;
       }
     }
+
     .el-dialog__wrapper {
       top: -22px;
     }
     .dialog-video {
       .el-dialog {
-        width: 1180px;
+        width: 1340px;
+        top: 70px;
+        transform: none;
       }
       .el-dialog__body {
         background: #eaeaea;
@@ -1248,7 +1348,7 @@
         height: inherit;
       }
       .el-dialog__header {
-        padding: 3px;
+        padding: 0px;
         .el-dialog__headerbtn {
           top: 6px;
         }
@@ -1269,11 +1369,29 @@
         }
       }
       .title {
-        font-size: 15px;
+        font-size: 16px;
+        height: 40px;
+        line-height: 40px;
+        background: #2d52d7;
+
+        span {
+          line-height: 40px;
+          color: #fcfcfc;
+        }
+
+        img {
+          width: 20px;
+          vertical-align: middle;
+          margin-right: 10px;
+        }
+      }
+      .el-dialog__close::before {
+        color: #fff;
       }
     }
     .dialog-event {
       z-index: 2096 !important;
+
       .el-dialog {
         width: 1000px;
         height: 800px;
@@ -1281,6 +1399,39 @@
         .el-dialog__body {
           padding: 0;
         }
+        .el-dialog__header {
+          padding: 0px;
+          .el-dialog__headerbtn {
+            top: 6px;
+          }
+        }
+        .title {
+          font-size: 16px;
+          height: 40px;
+          line-height: 40px;
+          background: #2d52d7;
+
+          span {
+            line-height: 40px;
+            color: #fcfcfc;
+          }
+
+          img {
+            width: 20px;
+            vertical-align: middle;
+            margin-right: 10px;
+          }
+        }
+        .el-dialog__close::before {
+          color: #fff;
+          &:hover {
+            color: #fff;
+          }
+        }
+
+        .more-videos .top .title {
+          background-color: #fff;
+        }
       }
     }
   }

--
Gitblit v1.8.0