瀏覽代碼

提交文件

Lijy 6 月之前
父節點
當前提交
17cd915d5a
共有 20 個文件被更改,包括 1080 次插入101 次删除
  1. 43 19
      fhKeeper/formulahousekeeper/inva_4_tivo/css/index.css
  2. 283 0
      fhKeeper/formulahousekeeper/inva_4_tivo/css/knowledgeField.css
  3. 285 0
      fhKeeper/formulahousekeeper/inva_4_tivo/css/knowledgeField.less
  4. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/image/bannar10.png
  5. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/image/detailWork.png
  6. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/image/ions/blueIcon.png
  7. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/image/ions/greenIcon.png
  8. 15 15
      fhKeeper/formulahousekeeper/inva_4_tivo/index.html
  9. 8 6
      fhKeeper/formulahousekeeper/inva_4_tivo/js/iframe.js
  10. 328 0
      fhKeeper/formulahousekeeper/inva_4_tivo/knowledgeField.html
  11. 47 21
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/css/header.css
  12. 50 21
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/css/header.less
  13. 9 7
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/header.html
  14. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/client.png
  15. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/follow.png
  16. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/production.png
  17. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/project.png
  18. 二進制
      fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/workHourHover.png
  19. 10 10
      fhKeeper/formulahousekeeper/timesheet/config/index.js
  20. 2 2
      fhKeeper/formulahousekeeper/timesheet_h5/vue.config.js

+ 43 - 19
fhKeeper/formulahousekeeper/inva_4_tivo/css/index.css

@@ -72,26 +72,29 @@
 
 /* 图片 */
 .bannarIMgGam {
-    width: 62.5rem;
-    /* height: 34.625rem; */
+    width: 35.6875rem;
     position: absolute;
-    top: 13.75rem;
-    right: 3.4375rem;
+    top: 15.8125rem;
+    right: 6.25rem;
     z-index: 1;
 }
 
 .bannarTxt {
     position: absolute;
-    top: 18.375rem;
-    left: 16.25rem;
-    color: #fff;
+    top: 13.9688rem;
+    left: 9rem;
+    color: #252432;
+    font-size: 3.75rem;
 }
 .bannarTil {
-    font-size: 6.9375rem;
+    font-size: 5.25rem;
     font-weight: bold;
     font-family: '黑体';
     letter-spacing: .625rem;
 }
+.bannarTil span {
+    color: #3396FB;
+}
 .bannarTilP {
     font-size: 20px;
     font-style: oblique;
@@ -108,16 +111,18 @@
     font-size: 16px;
     line-height: 50px;
     border: 1px solid #fff;
+    background: #3396FB;
     width: 208px;
     padding: 0 46px;
     text-align: center;
     border-radius: 6px;
     margin: 20px 0 0 0;
     letter-spacing: .3125rem;
+    margin-right: .75rem;
 }
 .bannarBtn:hover {
-    background: #fff;
-    color: #333333;
+    background: #66b1ff;
+    color: #fff;
     font-weight: normal;
     cursor: pointer;
 }
@@ -126,26 +131,45 @@
 }
 .bannarRz {
     display: flex;
-    justify-content: space-between;
-    width: 31.25rem;
-    margin-top: .75rem;
+    margin-top: 2.3887rem;
 }
 .bannarRzBox {
-    padding: 0 .625rem;
+    padding: .3125rem 1.1875rem;
     display: flex;
     align-items: center;
     justify-content: center;
-    line-height: 1.375rem;
-    border-radius: .625rem;
-    font-size: .375rem;
-    color: #d7d7d7;
+    font-weight: medium;
+    line-height: 1.2;
+    font-size: .625rem;
+    color: #000000;
+    border-radius: 100px;
+    background: #00B05019;
+    border: 2px solid #00B050;
+    margin-right: 1.25rem;
 }
 .bannarRzBox img {
     width: 1.125rem;
-    height: .9375rem;
+    height: 1.125rem;
     display: inline-block;
     margin-right: .3125rem;
 }
+.bannarTextList {
+    color: #252432;
+    font-family: PingFang SC;
+    font-weight: heavy;
+    font-size: 26px;
+    line-height: 1.2;
+    letter-spacing: 0px;
+    margin-top: 4.4375rem;
+    padding-left: 1.875rem;
+}
+.bannarTextList li {
+    list-style: disc;
+}
+.bannarTextList li:nth-child(2) {
+    margin-top: 2.8125rem;
+    margin-bottom: 4.4375rem;
+}
 
 /* 产品介绍 */
 .product {

+ 283 - 0
fhKeeper/formulahousekeeper/inva_4_tivo/css/knowledgeField.css

@@ -0,0 +1,283 @@
+.knowledgeFieldCon {
+  position: relative;
+  background: #f6f7fb;
+  height: 100%;
+  padding-top: 4.5rem;
+  display: flex;
+}
+.knowledgeFieldCon .knowledgeField {
+  flex: 1;
+  margin: 2.1875rem;
+  background: #fff;
+  border-radius: 0.25rem;
+  display: flex;
+  flex-direction: column;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-header {
+  height: 4.5rem;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  padding: 0 1.5rem;
+  border-bottom: 0.0625rem solid #ededed;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-header .knowledgeField-header-text {
+  color: #000000;
+  font-family: Microsoft YaHei UI;
+  font-weight: bold;
+  font-size: 20px;
+  line-height: normal;
+  letter-spacing: 0px;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-header .elInput {
+  width: 25.8125rem;
+  margin-right: 0.8125rem;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-header .elInput .elSelect {
+  width: 5rem;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-content {
+  padding: 0 1.5625rem;
+  margin: 1.875rem 0;
+  overflow-y: auto;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-content .knowledgeField-content-item {
+  display: flex;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-content .knowledgeField-content-item .image {
+  width: 10.1875rem;
+  height: 6.8125rem;
+  margin-right: 1.25rem;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-content .knowledgeField-content-item .textContent {
+  width: 100.5rem;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-content .knowledgeField-content-item .textContent div {
+  color: #000000;
+  font-family: Microsoft YaHei UI;
+  font-weight: regular;
+  font-size: 20px;
+  line-height: normal;
+  letter-spacing: 0px;
+  padding-bottom: 0.875rem;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-content .knowledgeField-content-item .textContent p {
+  color: #7b7b7b;
+  font-family: Microsoft YaHei UI;
+  font-weight: regular;
+  font-size: 16px;
+  height: 2.5rem;
+  line-height: normal;
+  letter-spacing: 0px;
+  display: -webkit-box;
+  /* 必须设置为弹性盒模型 */
+  -webkit-box-orient: vertical;
+  /* 设置盒子的排列方式为垂直 */
+  overflow: hidden;
+  /* 隐藏超出的文本 */
+  -webkit-line-clamp: 2;
+  /* 限制显示2行 */
+  text-overflow: ellipsis;
+  /* 超出的部分显示省略号 */
+  margin-bottom: 0.625rem;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-content .knowledgeField-content-item .textContent span {
+  color: #3396fb;
+  font-family: Microsoft YaHei UI;
+  font-weight: regular;
+  font-size: 16px;
+  line-height: normal;
+  letter-spacing: 0px;
+  cursor: pointer;
+}
+.knowledgeFieldCon .knowledgeField .knowledgeField-bottom {
+  padding: 1.5625rem 0;
+}
+.knowledgeFieldCon .knowledgeDetails {
+  padding: 1.25rem 2.1875rem;
+  display: flex;
+  justify-content: space-between;
+  position: relative;
+}
+.knowledgeFieldCon .knowledgeDetails .returnIcon {
+  position: absolute;
+  left: 4.0625rem;
+  top: 2.8125rem;
+  font-size: 1.5625rem;
+  cursor: pointer;
+}
+.knowledgeFieldCon .knowledgeDetails .returnIcon:hover {
+  color: #3396FB;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left {
+  width: 92.75rem;
+  background: #fff;
+  display: flex;
+  flex-direction: column;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-title {
+  color: #000000;
+  font-family: Microsoft YaHei UI;
+  font-weight: bold;
+  font-size: 1.5rem;
+  line-height: normal;
+  letter-spacing: 0px;
+  text-align: center;
+  padding-top: 1.5rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con {
+  padding: 0 1.875rem 0.9375rem 1.875rem;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .distribution {
+  width: 33%;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .timeContent {
+  font-size: 1rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .timeContent p {
+  color: #7b7b7b;
+  margin-right: 1rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .timeContent span {
+  color: #000000;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .readUse .text {
+  font-size: 1rem;
+  margin-right: 1rem;
+  color: #7b7b7b;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .readUse .image {
+  width: 8.8125rem;
+  height: 2.5rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con li {
+  font-family: Microsoft YaHei UI;
+  font-weight: regular;
+  font-size: 1rem;
+  line-height: normal;
+  margin-right: 2.0625rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .grey {
+  color: #7b7b7b;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-con .blue {
+  color: #3396fb;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .hypertextContent {
+  background: #f6f6f6;
+  padding: 1.875rem;
+  overflow-y: auto;
+  margin: 0 1.875rem;
+  flex: 1;
+  font-size: 1rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-left .knowledgeDetails-left-bottom {
+  padding: 1.25rem 0;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right {
+  width: 22.625rem;
+  padding-left: 1.875rem;
+  display: flex;
+  flex-direction: column;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestArticles {
+  width: 100%;
+  height: 20.75rem;
+  background: #fff;
+  margin-bottom: 1.25rem;
+  padding: 1.25rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .relatedRecommendations {
+  flex: 1;
+  background: #fff;
+  padding: 1.25rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .knowledgeDetails-right-title {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .knowledgeDetails-right-title div {
+  font-size: 1rem;
+  color: #000000;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .knowledgeDetails-right-title span {
+  font-size: 0.875rem;
+  color: #3878ff;
+  cursor: pointer;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .line {
+  width: 100%;
+  height: 1px;
+  background: #ededed;
+  margin: 0.5625rem 0 0.875rem 0;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList {
+  width: 100%;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item {
+  width: 100%;
+  display: flex;
+  justify-content: space-between;
+  margin-bottom: 1rem;
+  border: 1px solid #fff;
+  cursor: pointer;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item:hover {
+  border: 1px solid #409EFF;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item:hover .latestList-item-text {
+  color: #3396FB;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item:last-child {
+  margin-bottom: 0;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item .latestList-item-image {
+  width: 6.25rem;
+  height: 4.5rem;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item .latestList-item-text {
+  width: 11.25rem;
+  font-size: 0.875rem;
+  color: #000000;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item .latestList-item-text .data {
+  color: #c7c7c7;
+  text-align: right;
+}
+.knowledgeFieldCon .knowledgeDetails .knowledgeDetails-right .latestList .latestList-item .latestList-item-text .latestList-item-text-title {
+  line-height: 1.125rem;
+  height: 3.5625rem;
+  display: -webkit-box;
+  /* 必须设置为弹性盒模型 */
+  -webkit-box-orient: vertical;
+  /* 设置盒子的排列方式为垂直 */
+  overflow: hidden;
+  /* 隐藏超出的文本 */
+  -webkit-line-clamp: 3;
+  /* 限制显示2行 */
+  text-overflow: ellipsis;
+  /* 超出的部分显示省略号 */
+}
+.knowledgeFieldCon .flex1 {
+  flex: 1;
+}
+.knowledgeFieldCon .flex {
+  display: flex;
+}
+.knowledgeFieldCon .flex-center {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+}
+.knowledgeFieldCon img {
+  width: 100%;
+  height: 100%;
+}
+.knowledgeFieldCon .wh100 {
+  width: 100%;
+  height: 100%;
+}

+ 285 - 0
fhKeeper/formulahousekeeper/inva_4_tivo/css/knowledgeField.less

@@ -0,0 +1,285 @@
+.knowledgeFieldCon {
+  position: relative;
+  background: #f6f7fb;
+  height: 100%;
+  padding-top: 4.5rem;
+  display: flex;
+  // 知识园地
+  .knowledgeField {
+    flex: 1;
+    margin: 2.1875rem;
+    background: #fff;
+    border-radius: 0.25rem;
+    display: flex;
+    flex-direction: column;
+    .knowledgeField-header {
+      height: 4.5rem;
+      display: flex;
+      align-items: center;
+      justify-content: space-between;
+      padding: 0 1.5rem;
+      border-bottom: 0.0625rem solid #ededed;
+      .knowledgeField-header-text {
+        color: #000000;
+        font-family: Microsoft YaHei UI;
+        font-weight: bold;
+        font-size: 20px;
+        line-height: normal;
+        letter-spacing: 0px;
+      }
+      .elInput {
+        width: 25.8125rem;
+        margin-right: 0.8125rem;
+        .elSelect {
+          width: 5rem;
+        }
+      }
+    }
+
+    .knowledgeField-content {
+      padding: 0 1.5625rem;
+      margin: 1.875rem 0;
+      overflow-y: auto;
+      .knowledgeField-content-item {
+        display: flex;
+        .image {
+          width: 10.1875rem;
+          height: 6.8125rem;
+          margin-right: 1.25rem;
+        }
+        .textContent {
+          width: 100.5rem;
+          div {
+            color: #000000;
+            font-family: Microsoft YaHei UI;
+            font-weight: regular;
+            font-size: 20px;
+            line-height: normal;
+            letter-spacing: 0px;
+            padding-bottom: 0.875rem;
+          }
+          p {
+            color: #7b7b7b;
+            font-family: Microsoft YaHei UI;
+            font-weight: regular;
+            font-size: 16px;
+            height: 2.5rem;
+            line-height: normal;
+            letter-spacing: 0px;
+            display: -webkit-box; /* 必须设置为弹性盒模型 */
+            -webkit-box-orient: vertical; /* 设置盒子的排列方式为垂直 */
+            overflow: hidden; /* 隐藏超出的文本 */
+            -webkit-line-clamp: 2; /* 限制显示2行 */
+            text-overflow: ellipsis; /* 超出的部分显示省略号 */
+            margin-bottom: 0.625rem;
+          }
+          span {
+            color: #3396fb;
+            font-family: Microsoft YaHei UI;
+            font-weight: regular;
+            font-size: 16px;
+            line-height: normal;
+            letter-spacing: 0px;
+            cursor: pointer;
+          }
+        }
+      }
+    }
+
+    .knowledgeField-bottom {
+      padding: 1.5625rem 0;
+    }
+  }
+
+  // 知识详情
+  .knowledgeDetails {
+    padding: 1.25rem 2.1875rem;
+    display: flex;
+    justify-content: space-between;
+    position: relative;
+    .returnIcon {
+      position: absolute;
+      left: 4.0625rem;
+      top: 2.8125rem;
+      font-size: 1.5625rem;
+      cursor: pointer;
+    }
+    .returnIcon:hover {
+      color: #3396FB;
+    }
+
+    .knowledgeDetails-left {
+      width: 92.75rem;
+      background: #fff;
+      display: flex;
+      flex-direction: column;
+
+      .knowledgeDetails-left-title {
+        color: #000000;
+        font-family: Microsoft YaHei UI;
+        font-weight: bold;
+        font-size: 1.5rem;
+        line-height: normal;
+        letter-spacing: 0px;
+        text-align: center;
+        padding-top: 1.5rem;
+      }
+
+      .knowledgeDetails-left-con {
+        padding: 0 1.875rem 0.9375rem 1.875rem;
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        .distribution {
+          width: 33%;
+        }
+        .timeContent {
+          font-size: 1rem;
+          p {
+            color: #7b7b7b;
+            margin-right: 1rem;
+          }
+          span {
+            color: #000000;
+          }
+        }
+        .readUse {
+          .text {
+            font-size: 1rem;
+            margin-right: 1rem;
+            color: #7b7b7b;
+          }
+          .image {
+            width: 8.8125rem;
+            height: 2.5rem;
+          }
+        }
+        li {
+          font-family: Microsoft YaHei UI;
+          font-weight: regular;
+          font-size: 1rem;
+          line-height: normal;
+          margin-right: 2.0625rem;
+        }
+        .grey {
+          color: #7b7b7b;
+        }
+        .blue {
+          color: #3396fb;
+        }
+      }
+
+      .hypertextContent {
+        background: #f6f6f6;
+        padding: 1.875rem;
+        overflow-y: auto;
+        margin: 0 1.875rem;
+        flex: 1;
+        font-size: 1rem;
+      }
+
+      .knowledgeDetails-left-bottom {
+        padding: 1.25rem 0;
+      }
+    }
+
+    .knowledgeDetails-right {
+      width: 22.625rem;
+      padding-left: 1.875rem;
+      display: flex;
+      flex-direction: column;
+      .latestArticles {
+        width: 100%;
+        height: 20.75rem;
+        background: #fff;
+        margin-bottom: 1.25rem;
+        padding: 1.25rem;
+      }
+      .relatedRecommendations {
+        flex: 1;
+        background: #fff;
+        padding: 1.25rem;
+      }
+      .knowledgeDetails-right-title {
+        display: flex;
+        justify-content: space-between;
+        align-items: center;
+        div {
+          font-size: 1rem;
+          color: #000000;
+        }
+        span {
+          font-size: 0.875rem;
+          color: #3878ff;
+          cursor: pointer;
+        }
+      }
+      .line {
+        width: 100%;
+        height: 1px;
+        background: #ededed;
+        margin: 0.5625rem 0 0.875rem 0;
+      }
+      .latestList {
+        width: 100%;
+        .latestList-item {
+          width: 100%;
+          display: flex;
+          justify-content: space-between;
+          margin-bottom: 1rem;
+          border: 1px solid #fff;
+          cursor: pointer;
+          &:hover {
+            border: 1px solid #409EFF;
+            .latestList-item-text {
+              color: #3396FB;
+            }
+          }
+          &:last-child { margin-bottom: 0; }
+          .latestList-item-image {
+            width: 6.25rem;
+            height: 4.5rem;
+          }
+          .latestList-item-text {
+            width: 11.25rem;
+            font-size: 0.875rem;
+            color: #000000;
+            .data {
+              color: #c7c7c7;
+              text-align: right;
+            }
+            .latestList-item-text-title {
+              line-height: 1.125rem;
+              height: 3.5625rem;
+              display: -webkit-box; /* 必须设置为弹性盒模型 */
+              -webkit-box-orient: vertical; /* 设置盒子的排列方式为垂直 */
+              overflow: hidden; /* 隐藏超出的文本 */
+              -webkit-line-clamp: 3; /* 限制显示2行 */
+              text-overflow: ellipsis; /* 超出的部分显示省略号 */
+            }
+          }
+        }
+      }
+    }
+  }
+
+  .flex1 {
+    flex: 1;
+  }
+  .flex {
+    display: flex;
+  }
+  .flex-center {
+    display: flex;
+    align-items: center;
+    justify-content: center;
+  }
+  img {
+    width: 100%;
+    height: 100%;
+  }
+  .wh100 {
+    width: 100%;
+    height: 100%;
+  }
+}

二進制
fhKeeper/formulahousekeeper/inva_4_tivo/image/bannar10.png


二進制
fhKeeper/formulahousekeeper/inva_4_tivo/image/detailWork.png


二進制
fhKeeper/formulahousekeeper/inva_4_tivo/image/ions/blueIcon.png


二進制
fhKeeper/formulahousekeeper/inva_4_tivo/image/ions/greenIcon.png


+ 15 - 15
fhKeeper/formulahousekeeper/inva_4_tivo/index.html

@@ -16,8 +16,8 @@
     <script src="js/jquery1.42.min.js"></script>
     <script src="js/jquery.SuperSlide.2.1.3.js"></script>
     <!-- 统计文件 -->
-    <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script>
-    <script>LA.init({id: "Jk62Sh8gvUhl1xcU",ck: "Jk62Sh8gvUhl1xcU"})</script>
+    <!-- <script charset="UTF-8" id="LA_COLLECT" src="//sdk.51.la/js-sdk-pro.min.js"></script>
+    <script>LA.init({id: "Jk62Sh8gvUhl1xcU",ck: "Jk62Sh8gvUhl1xcU"})</script> -->
     <script>
         let str = (navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i)) ? 'app': 'pc';
         let url = window.location.href
@@ -56,26 +56,26 @@
     </div>
 
     <!-- 轮播图 -->
-    <div class="bannar" style="position: relative;background: #000000;height: 902px;">
-        <!-- <img src="./image/bannar1.jpg" style="width: 100%;" alt=""> -->
-        <!-- <img src="./image/bannar7.jpg" style="width: 100%;" alt="" class="bannarIMgGamOne"> -->
-        <img src="./image/bannar9.gif" alt="" class="bannarIMgGam">
+    <div class="bannar" style="position: relative;background: #ffffff;height: 100vh">
+        <img src="./image/bannar10.png" alt="" class="bannarIMgGam">
         <div class="bannarTxt">
-            <div class="bannarTil">工时管家</div>
+            <div class="bannarTil">专业团队用<span>工时管家</span></div>
             <div class="bannarRz">
-                <div class="bannarRzBox" style="border: 0.125rem solid #00b050;">
-                    <img src="./image/ions/green.png" alt="">
+                <div class="bannarRzBox" style="border: 0.125rem solid #00B050;">
+                    <img src="./image/ions/greenIcon.png" alt="">
                     通过ISO27001:2013信息安全认证
                 </div>
-                <div class="bannarRzBox" style="border: 0.125rem solid #00b0f0;">
-                    <img src="./image/ions/blue.png" alt="">
+                <div class="bannarRzBox" style="border: 0.125rem solid #3396FB;background: #3396FB19;">
+                    <img src="./image/ions/blueIcon.png" alt="">
                     通过ISO9001:2015质量体系认证
                 </div>
             </div>
-            <div class="bannarTilP">·提供最全面的项目工时统计解决方案·</div>
-            <!-- <a href="javascript:;" id="anqiye">
-                <img src="./image/qiyeweix.png" referrerpolicy="unsafe-url" alt="企业微信">
-            </a> -->
+            <div class="bannarTextList">
+                <ul>
+                    <li>提供最全面的项目工时统计解决方案</li>
+                    <li>满足小团队项目管理需求 / 大公司IPO财务分摊需求</li>
+                </ul>
+            </div>
             <a href="javascript:;" id="zhuce"><img src="https://open.work.weixin.qq.com/service/img?id=wwf11426cf618e1703&t=register&c=white&s=large" srcset="https://open.work.weixin.qq.com/service/img?id=wwf11426cf618e1703&t=register&c=white&s=large@2x 2x" referrerpolicy="unsafe-url" alt="企业微信"></a>
             <a href="javascript:;" id="anqiye"><img src="https://open.work.weixin.qq.com/service/img?id=wwf11426cf618e1703&t=install&c=white&s=large" srcset="https://open.work.weixin.qq.com/service/img?id=wwf11426cf618e1703&t=install&c=white&s=large@2x 2x" referrerpolicy="unsafe-url" alt="企业微信"></a>
             <div class="homeAdiv">

+ 8 - 6
fhKeeper/formulahousekeeper/inva_4_tivo/js/iframe.js

@@ -1,11 +1,13 @@
 const iframe = document.getElementById("headerIframe");
 let observer = null
 const backcolor = {
+  index: { background: '#fff', color: '#1C1C28', logo: './image/logos.jpg' },
   project: { background: '#F6FEF9', color: '#3C86DF', logo: './image/logos.jpg' },
   mobile: { background: 'none', color: '#000', logo: './image/logos.jpg' },
   about: { background: 'none', color: '#000', logo: './image/logos.jpg' },
   dynamic: { background: 'none', color: '#000', logo: './image/logos.jpg' },
-  customerNew: { background: '#fff', color: '#000', logo: './image/logos.jpg' }
+  customerNew: { background: '#fff', color: '#000', logo: './image/logos.jpg' },
+  knowledgeField: { background: '#fff', color: '#000', logo: './image/logos.jpg' }
 }
 
 function removeListener() {
@@ -15,7 +17,6 @@ function removeListener() {
 }
 function reinitIframe() {
   if (iframe) {
-      console.log('开始执行')
       const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
       const iframeBody = iframeDocument.body
       observer = new MutationObserver(function(mutationsList, observer) {
@@ -32,20 +33,21 @@ function handleScroll() {
   const iframeDocument = iframe.contentDocument || iframe.contentWindow.document;
   let imgElement = iframeDocument.getElementById('logo');
   let headerItems = iframeDocument.querySelectorAll('.header-item')
+  let headerView = iframeDocument.querySelector('.headerView')
   const urls = window.location.href
   const filed = urls.match(/\/([^\/]+)\.html$/) && urls.match(/\/([^\/]+)\.html$/)[1];
   if(scrollYnma > 1) {
-    iframe.style.background = '#fff'
+    headerView.style.background = '#fff'
     imgElement.src = './image/logos.jpg'
-    iframe.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.2)';
+    headerView.style.boxShadow = '0 0 10px rgba(0, 0, 0, 0.2)';
     headerItems.forEach(function(item) {
       item.style.color = '#000'; // 设置你想要的字体颜色
     });
     return
   }
   console.log(backcolor[filed], filed)
-  iframe.style.background = (backcolor[filed] && backcolor[filed].background) || 'none'
-  iframe.style.boxShadow = '0 0 0 rgba(0, 0, 0, 0)';
+  headerView.style.background = (backcolor[filed] && backcolor[filed].background) || 'none'
+  headerView.style.boxShadow = '0 0 0 rgba(0, 0, 0, 0)';
   imgElement.src = (backcolor[filed] && backcolor[filed].logo) || './image/logos.png'
   headerItems.forEach(function(item) {
     item.style.color = (backcolor[filed] && backcolor[filed].color) || '#fff'; // 设置你想要的字体颜色

+ 328 - 0
fhKeeper/formulahousekeeper/inva_4_tivo/knowledgeField.html

@@ -0,0 +1,328 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="utf-8">
+  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
+  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+  <meta name="keywords"
+    content="工时管理,工时统计,工时填报,项目成本统计,生产工时管理系统,工时成本管理,工时管理软件,研发工时管理系统,企业工时管理系统,项目工时统计,项目工时统计软件,项目工时统计系统,工时统计系统,工时统计表" />
+  <meta name="description" content="工时管家提供专业的工时填报和统计报表。支持PC和手机端。可按项目,部门,岗位等多维度统计成本。" />
+  <title>工时管家-专注工时管理,手机移动填报,核算项目投入人力成本,企业IPO利器!</title>
+  <link rel="shortcut icon" type="image/x-icon" href="./favicon.ico" />
+  <link href="https://fonts.googleapis.com/css?family=Open+Sans:400,400i,700&display=swap&subset=latin-ext"
+    rel="stylesheet">
+  <link href="css/bootstrap.css" rel="stylesheet">
+  <link href="css/font-awesome.css" rel="stylesheet">
+  <link href="css/swiper.css" rel="stylesheet">
+  <link href="css/magnific-popup.css" rel="stylesheet">
+  <link href="css/styles.css" rel="stylesheet">
+  <link rel="stylesheet" href="css/reset.css">
+  <link rel="stylesheet" href="css/tongyong.css">
+  <link rel="stylesheet" href="css/knowledgeField.css">
+  <!-- 底部重写 -->
+  <link rel="stylesheet" href="css/bottom.css">
+
+  <link rel="stylesheet" href="./css/element-uiCss.css">
+  <script src="./js/vue.min.js"></script>
+  <script src="./js/element-ui.js"></script>
+</head>
+
+<body data-spy="scroll" data-target=".fixed-top">
+  <div class="spinner-wrapper">
+    <div class="spinner">
+      <div class="bounce1"></div>
+      <div class="bounce2"></div>
+      <div class="bounce3"></div>
+    </div>
+  </div>
+
+  <!-- 头部 -->
+  <iframe id="headerIframe" src="./moduleView/header.html" class="iframeClass" onLoad="reinitIframe();"></iframe>
+  <!-- 主体内容 -->
+  <div class="knowledgeFieldCon" id="app">
+    <div v-loading="detailsSwitchingLoading" class="wh100 flex">
+      <!-- 知识园地 -->
+      <div class="knowledgeField" v-if="!isItForDetails">
+        <div class="knowledgeField-header">
+          <div class="knowledgeField-header-text">知识园地</div>
+          <div class="flex">
+            <el-input placeholder="请输入内容" v-model.trim="info" size="small" class="elInput"
+              @keyup.enter="getKnowledgeFieldTable()">
+            </el-input>
+            <el-button type="primary" size="mini" @click="getKnowledgeFieldTable()">确定</el-button>
+          </div>
+        </div>
+        <div class="flex1 knowledgeField-content" v-loading="knowledgeFieldTableLoading">
+          <div v-for="(item,index) in knowledgeFieldTableList" :key="index">
+            <div class="knowledgeField-content-item">
+              <div class="image"><el-image :src="item.coverImg" class="wh100"></el-image></div>
+              <div class="textContent">
+                <div>{{ item.title }}</div>
+                <p>{{ item.profile }}</p>
+                <span @click="learnMore(item, true)">了解详情></span>
+              </div>
+            </div>
+            <el-divider v-if="index < knowledgeFieldTableList.length - 1"></el-divider>
+          </div>
+        </div>
+        <div class="knowledgeField-bottom flex-center">
+          <el-pagination background layout="total, prev, pager, next, sizes" :page-sizes="[4, 8, 12, 20]"
+            :page-size="pageSize" :current-page.sync="pageIndex" @size-change="handleSizeChange"
+            @current-change="handleCurrentChange" :total="total">
+          </el-pagination>
+        </div>
+      </div>
+
+      <!-- 知识详情 -->
+      <div v-if="isItForDetails" class="knowledgeDetails">
+        <div class="returnIcon" @click="back()">
+          <i class="el-icon-arrow-left"></i>
+        </div>
+        <div class="knowledgeDetails-left">
+          <div class="knowledgeDetails-left-title">{{ articleDetails.title }}</div>
+          <el-divider></el-divider>
+          <div class="knowledgeDetails-left-con">
+            <div class="flex distribution">
+              <ul class="flex">
+                <li class="grey">标签:</li>
+                <li class="blue" v-for="(item, index) in articleDetails.categoryNamesList" :key="index">{{ item }}</li>
+              </ul>
+            </div>
+            <div class="flex-center distribution timeContent">
+              <p>发布时间</p>
+              <span>{{ articleDetails.createTime }}</span>
+            </div>
+            <div class="flex-center distribution readUse" style="justify-content: flex-end;">
+              <div class="text">推荐使用:</div>
+              <div><img src="./image/detailWork.png" alt=""></div>
+            </div>
+          </div>
+          <div class="hypertextContent" v-html="articleDetails.content">
+
+          </div>
+          <div class="knowledgeDetails-left-bottom flex-center"></div>
+        </div>
+        <div class="knowledgeDetails-right">
+          <div class="latestArticles">
+            <div class="knowledgeDetails-right-title">
+              <div>最新文章</div>
+              <span @click="learnMore({}, false, true)">查看更多></span>
+            </div>
+            <div class="line"></div>
+            <div class="latestList">
+              <div class="latestList-item" v-for="(item, index) in latestArticles" :key="index"
+                @click="detailsJump(item)">
+                <div class="latestList-item-image">
+                  <el-image :src="item.coverImg" class="wh100"></el-image>
+                </div>
+                <div class="latestList-item-text">
+                  <div class="latestList-item-text-title">{{ item.title }}</div>
+                  <div class="data">{{ item.createTime }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+          <div class="relatedRecommendations">
+            <div class="knowledgeDetails-right-title">
+              <div>相关推荐</div>
+              <span @click="learnMore({}, false, true)">查看更多></span>
+            </div>
+            <div class="line"></div>
+            <div class="latestList">
+              <div class="latestList-item" v-for="(item, index) in relatedRecommendations" :key="index"
+                @click="detailsJump(item)">
+                <div class="latestList-item-image">
+                  <el-image :src="item.coverImg" class="wh100"></el-image>
+                </div>
+                <div class="latestList-item-text">
+                  <div class="latestList-item-text-title">{{ item.title }}</div>
+                  <div class="data">{{ item.createTime }}</div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </div>
+      </div>
+    </div>
+  </div>
+
+  <!-- Scripts -->
+  <script src="js/js/jquery.min.js"></script> <!-- jQuery for Bootstrap's JavaScript plugins -->
+  <script src="js/js/popper.min.js"></script> <!-- Popper tooltip library for Bootstrap -->
+  <script src="js/js/bootstrap.min.js"></script> <!-- Bootstrap framework -->
+  <script src="js/js/jquery.easing.min.js"></script> <!-- jQuery Easing for smooth scrolling between anchors -->
+  <script src="js/js/swiper.min.js"></script> <!-- Swiper for image and text sliders -->
+  <script src="js/js/jquery.magnific-popup.js"></script> <!-- Magnific Popup for lightboxes -->
+  <script src="js/js/validator.min.js"></script> <!-- Validator.js - Bootstrap plugin that validates forms -->
+  <script src="js/js/scripts.js"></script>
+  <script>
+    new Vue({
+      el: "#app",
+      data: {
+        info: '',
+        pageIndex: 1,
+        pageSize: 4,
+        total: 0,
+        // requestPrefix: 'http://192.168.2.17:8080',
+        requestPrefix: 'http://47.101.180.183:9049',
+        // requestPrefix: '',
+        knowledgeFieldTableList: [],
+        latestArticles: [],
+        relatedRecommendations: [],
+        detailRow: {},
+        articleDetails: {},
+        isItForDetails: false,
+        knowledgeFieldTableLoading: false,
+        detailsSwitchingLoading: false,
+      },
+      methods: {
+        getArticleDetails() {
+          const url = `${this.requestPrefix}/article/getArticleById`
+          const params = { id: this.detailRow.id }
+          this.httpRequest(this.addQueryParams(url, params)).then(res => {
+            const row = {
+              ...res.data,
+              categoryNamesList: res.data.categoryNames ? res.data.categoryNames.split(',') : []
+            };
+            this.articleDetails = row
+          })
+        },
+        getLatestArticles() {
+          const url = `${this.requestPrefix}/article/latestList`;
+          const params = { id: this.detailRow.id }
+          this.httpRequest(this.addQueryParams(url, params)).then(res => {
+            this.latestArticles = res.data.map(item => {
+              if(item.coverImg) {
+                item.coverImg = `data:image/jpeg;base64, ${item.coverImg}`
+              }
+              return { ...item }
+            })
+          })
+        },
+        getRelatedRecommendations() {
+          const url = `${this.requestPrefix}/article/relatedList`
+          const params = { id: this.detailRow.id }
+          this.httpRequest(this.addQueryParams(url, params)).then(res => {
+            this.relatedRecommendations = res.data.map(item => {
+              if(item.coverImg) {
+                item.coverImg = `data:image/jpeg;base64, ${item.coverImg}`
+              }
+              return { ...item }
+            })
+          })
+        },
+        getKnowledgeFieldTable() {
+          const url = `${this.requestPrefix}/article/pageList`
+          const params = { pageIndex: this.pageIndex, pageSize: this.pageSize, info: this.info }
+          this.knowledgeFieldTableLoading = true
+          this.httpRequest(this.addQueryParams(url, params)).then(res => {
+            const { total = 0, data = [] } = res
+            data.forEach(item => {
+              if(item.coverImg) {
+                item.coverImg = `data:image/jpeg;base64, ${item.coverImg}`
+              }
+            })
+            this.total = total
+            this.knowledgeFieldTableList = [...data]
+          }).finally(() => {
+            this.knowledgeFieldTableLoading = false
+          }).catch(err => {
+            console.log(err, '<==== 请求失败')
+          })
+        },
+        back() {
+          this.detailRow = {}
+          this.detailsSwitchingLoading = true
+          setTimeout(() => {
+            this.isItForDetails = false
+          }, 500)
+          setTimeout(() => {
+            this.detailsSwitchingLoading = false
+          }, 1000)
+        },
+        detailsJump(item) {
+          this.detailRow = item
+          this.detailsSwitchingLoading = true
+          this.getArticleDetails()
+          this.getLatestArticles()
+          this.getRelatedRecommendations()
+          setTimeout(() => {
+            this.detailsSwitchingLoading = false
+          }, 1000)
+        },
+        learnMore(item, flag = false, reset = false) {
+          this.detailRow = item
+          this.detailsSwitchingLoading = true
+          if (reset) {
+            this.pageIndex = 1
+            this.pageSize = 4
+            this.info = ''
+            this.getKnowledgeFieldTable()
+          }
+          if (flag) {
+            this.getArticleDetails()
+            this.getLatestArticles()
+            this.getRelatedRecommendations()
+          }
+          setTimeout(() => {
+            this.isItForDetails = flag
+          }, 500)
+          setTimeout(() => {
+            this.detailsSwitchingLoading = false
+          }, 1000)
+        },
+        handleSizeChange(val) {
+          this.pageIndex = 1
+          this.pageSize = val
+          this.getKnowledgeFieldTable()
+        },
+        handleCurrentChange(val) {
+          this.pageIndex = val
+          this.getKnowledgeFieldTable()
+        },
+        // 封装请求接口
+        httpRequest(url, options = {}, method = 'GET') {
+          // 默认配置
+          const defaultOptions = {
+            method,
+            headers: {
+              'Content-Type': 'application/json',
+            },
+            body: null,
+          };
+
+          const requestOptions = { ...defaultOptions, ...options };
+
+          if (requestOptions.body && typeof requestOptions.body !== 'string') {
+            requestOptions.body = JSON.stringify(requestOptions.body);
+          }
+          return fetch(url, requestOptions)
+            .then(response => {
+              if (!response.ok) {
+                throw new Error(`HTTP错误: ${response.status}`);
+              }
+              return response.json();
+            })
+            .catch(error => {
+              console.error('请求失败:', error);
+              throw error;
+            });
+        },
+        addQueryParams(url, params) {
+          const urlWithParams = new URL(url);
+          Object.keys(params).forEach(key => {
+            urlWithParams.searchParams.append(key, params[key]);
+          });
+          return urlWithParams.toString();
+        }
+      },
+      mounted: function () {
+        this.getKnowledgeFieldTable()
+      }
+    })
+  </script>
+  <script src="js/iframe.js"></script>
+</body>
+
+</html>

+ 47 - 21
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/css/header.css

@@ -2,8 +2,8 @@
   width: 100%;
 }
 .headerView {
-  width: 101.25rem;
-  height: 5rem;
+  padding: 0 6.25rem;
+  height: 4.5rem;
   margin: auto;
   display: flex;
   align-items: center;
@@ -19,6 +19,7 @@
 .headerView .headerView-left .header-logo,
 .headerView .headerView-right .header-logo {
   width: 6.875rem;
+  padding-right: 5.625rem;
 }
 .headerView .headerView-left .header-list,
 .headerView .headerView-right .header-list {
@@ -29,8 +30,8 @@
 }
 .headerView .headerView-left .header-list .header-item,
 .headerView .headerView-right .header-list .header-item {
-  margin-right: 2rem;
-  font-size: 1.125rem;
+  margin-right: 3.75rem;
+  font-size: 1rem;
   height: 100%;
   display: flex;
   align-items: center;
@@ -42,14 +43,24 @@
   display: flex;
   align-items: center;
   height: 3.5rem;
+  border-bottom: 0.0125rem solid rgba(0, 0, 0, 0);
 }
 .headerView .headerView-left .header-list .header-item::last-child,
 .headerView .headerView-right .header-list .header-item::last-child {
   margin-right: 0;
 }
+.headerView .headerView-left .header-list .productRectangle span,
+.headerView .headerView-right .header-list .productRectangle span {
+  display: block;
+  display: flex;
+  align-items: center;
+  height: 3.5rem;
+  border-bottom: 0.0125rem solid rgba(0, 0, 0, 0);
+}
 .headerView .headerView-left .header-list .item-hover,
 .headerView .headerView-right .header-list .item-hover {
-  border-bottom: 0.125rem solid #37b8ff;
+  color: #3396FB;
+  border-bottom: 0.125rem solid #3396FB !important;
 }
 .headerView .headerView-left .header-list a,
 .headerView .headerView-right .header-list a {
@@ -63,39 +74,54 @@
   height: 100%;
 }
 .headerProduct {
-  width: 100%;
+  width: 16.5rem;
   padding-bottom: 20px;
-  border-top: 0.0625rem solid #dcdfe6;
   background: #fff;
+  border: 1px solid #FFFFFF;
+  box-shadow: 0px 0px 20px 0px #00000019;
+  position: relative;
+  left: 320px;
 }
 .headerProduct .content {
-  width: 100rem;
-  display: flex;
-  margin: auto;
+  width: 100%;
 }
 .headerProduct .content .product {
-  width: 48%;
+  width: 100%;
   font-size: 1.125rem;
 }
 .headerProduct .content .product .product-title {
-  display: flex;
-  padding: 1.25rem 0 0.9375rem 1rem;
-  align-items: center;
-  border-bottom: 0.0625rem solid #dcdfe6;
+  color: #3396FB;
+  font-family: Microsoft YaHei UI;
+  font-weight: bold;
+  font-size: 1rem;
+  line-height: normal;
+  letter-spacing: 0px;
+  padding: 1rem 0 1.125rem 1.125rem;
 }
 .headerProduct .content .product .hove {
-  background: #f0f4ff;
-  color: #3370ff;
+  background: #3396FB;
+  color: #fff;
 }
 .headerProduct .content .product .product-item {
-  margin-top: 0.625rem;
-  width: 7.5rem;
-  padding: 0.625rem 1.25rem;
-  border-radius: 0.25rem;
+  width: 100%;
+  height: 2.625rem;
+  display: flex;
+  align-items: center;
+  font-size: 1rem;
+  padding-left: 1.375rem;
+  box-sizing: border-box;
+}
+.headerProduct .content .product .product-item img {
+  width: 1.25rem;
+  height: 1.25rem;
+  padding-right: 0.625rem;
 }
 .headerProduct .content .product .product-item a {
   display: block;
+  width: 100%;
   height: 100%;
+  display: flex;
+  align-items: center;
   color: inherit;
   text-decoration: none;
 }

+ 50 - 21
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/css/header.less

@@ -2,8 +2,8 @@
   width: 100%;
 }
 .headerView {
-  width: 101.25rem;
-  height: 5rem;
+  padding: 0 6.25rem;
+  height: 4.5rem;
   margin: auto;
   display: flex;
   align-items: center;
@@ -16,6 +16,7 @@
     height: 100%;
     .header-logo {
       width: 6.875rem;
+      padding-right: 5.625rem;
     }
     .header-list {
       display: flex;
@@ -23,8 +24,8 @@
       height: 100%;
       margin-left: 2rem;
       .header-item {
-        margin-right: 2rem;
-        font-size: 1.125rem;
+        margin-right: 3.75rem;
+        font-size: 1rem;
         height: 100%;
         display: flex;
         align-items: center;
@@ -34,14 +35,26 @@
           display: flex;
           align-items: center;
           height: 3.5rem;
+          border-bottom: .0125rem solid rgba(0, 0, 0, 0);
         }
         &::last-child {
           margin-right: 0;
         }
       }
 
+      .productRectangle {
+        span {
+          display: block;
+          display: flex;
+          align-items: center;
+          height: 3.5rem;
+          border-bottom: .0125rem solid rgba(0, 0, 0, 0);
+        }
+      }
+
       .item-hover {
-        border-bottom: 0.125rem solid #37b8ff;
+        color: #3396FB;
+        border-bottom: 0.125rem solid #3396FB !important;
       }
 
       a {
@@ -60,36 +73,52 @@
 }
 
 .headerProduct {
-  width: 100%;
+  width: 16.5rem;
   padding-bottom: 20px;
-  border-top: 0.0625rem solid #dcdfe6;
   background: #fff;
+  border: 1px solid #FFFFFF;
+  box-shadow: 0px 0px 20px 0px #00000019;
+  position: relative;
+  left: 320px;
   .content {
-    width: 100rem;
-    display: flex;
-    margin: auto;
+    width: 100%;
     .product {
-      width: 48%;
+      width: 100%;
       font-size: 1.125rem;
       .product-title {
-        display: flex;
-        padding: 1.25rem 0 0.9375rem 1rem;
-        align-items: center;
-        border-bottom: 0.0625rem solid #dcdfe6;
+        color: #3396FB;
+        font-family: Microsoft YaHei UI;
+        font-weight: bold;
+        font-size: 1rem;
+        line-height: normal;
+        letter-spacing: 0px;
+        padding: 1rem 0 1.125rem 1.125rem;
       }
       .hove {
-        background: #f0f4ff;
-        color: #3370ff;
+        background: #3396FB;
+        color: #fff;
       }
       .product-item {
-        margin-top: 0.625rem;
-        width: 7.5rem;
-        padding: 0.625rem 1.25rem;
-        border-radius: 0.25rem;
+        width: 100%;
+        height: 2.625rem;
+        display: flex;
+        align-items: center;
+        font-size: 1rem;
+        padding-left: 1.375rem;
+        box-sizing: border-box;
+
+        img {
+          width: 1.25rem;
+          height: 1.25rem;
+          padding-right: .625rem;
+        }
 
         a {
           display: block;
+          width: 100%;
           height: 100%;
+          display: flex;
+          align-items: center;
           color: inherit;
           text-decoration: none;
         }

+ 9 - 7
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/header.html

@@ -20,7 +20,7 @@
           <!-- <img src="./image/logo.png" class="img" alt=""> -->
         </div>
         <div class="header-list" @mouseleave="mouseleave('left')">
-          <div class="header-item" @mouseenter="mouseenter('product', true)" @mouseleave="mouseleave('product')">产品矩阵</div>
+          <div class="header-item productRectangle" @mouseenter="mouseenter('product', true)" @mouseleave="mouseleave('product')"><span :class="`${ productFlag && 'item-hover' }`">产品矩阵</span></div>
           <div v-for="(item, index) in leftItemList" :key="index" @mouseenter="mouseenter('left', index)" :class="`${item.class}`">
             <a :href="item.value" target="_top" :class="`${ leftItemIndex == index ? 'item-hover' : '' }`"> {{ item.label }} </a>
           </div>
@@ -44,6 +44,7 @@
           <div class="product-title">火石企业办公套件</div>
           <div class="product-list" @mouseleave="mouseleave('other')">
             <div :class="`product-item ${otherItemIndex == index ? 'hove' : ''}`" v-for="(item, index) in otherList" :key="index" @click="toPath(item)" @mouseenter="mouseenter('other', index)">
+              <img :src="otherItemIndex == index ? item.hoverIcon : item.icon" alt="">
               <a :href="item.path" target="_top">{{ item.label }}</a>
             </div>
           </div>
@@ -67,14 +68,15 @@
             { label: '产品定价', value: '../index.html#pricing', class: 'header-item' },
             { label: '关于我们', value: '../about.html', class: 'header-item' },
             { label: '企业动态', value: '../dynamic.html', class: 'header-item' },
+            { label: '知识园地', value: '../knowledgeField.html', class: 'header-item' },
           ],
           otherList: [
-            { label: '工时管家', path: '../index.html' },
-            { label: '随访管家', path: '../followup.html' },
-            { label: '项目管家', path: '../project.html' },
-            { label: '客户管家', path: '../customerNew.html' },
-            { label: '生产车间管家', path: '../workshop.html' },
-          ],
+            { label: '工时管家', path: '../index.html', icon: './image/icon/client.png', hoverIcon: './image/icon/workHourHover.png' },
+            { label: '随访管家', path: '../followup.html', icon: './image/icon/client.png', hoverIcon: './image/icon/workHourHover.png' },
+            { label: '项目管家', path: '../project.html', icon: './image/icon/project.png', hoverIcon: './image/icon/workHourHover.png' },
+            { label: '客户管家', path: '../customerNew.html', icon: './image/icon/follow.png', hoverIcon: './image/icon/workHourHover.png' },
+            { label: '生产车间管家', path: '../workshop.html', icon: './image/icon/production.png', hoverIcon: './image/icon/workHourHover.png' },
+         ],
           showRight: true,
           urlFiled: 'index',
           rightCilckUrl: {

二進制
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/client.png


二進制
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/follow.png


二進制
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/production.png


二進制
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/project.png


二進制
fhKeeper/formulahousekeeper/inva_4_tivo/moduleView/image/icon/workHourHover.png


+ 10 - 10
fhKeeper/formulahousekeeper/timesheet/config/index.js

@@ -2,19 +2,19 @@ var path = require('path')
 
 //  var ip = '192.168.2.12'
 // var ip = '47.101.180.183'
-// var ip = '47.100.37.243'
+var ip = '47.100.37.243'
 // var ip = '192.168.10.2'
 // var ip = '192.168.2.8' 
 
-var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
-for (var i in ifaces) {
-    for (var j in ifaces[i]) {
-        var val = ifaces[i][j]
-        if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
-            ip = val.address
-        }
-    }
-}
+// var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
+// for (var i in ifaces) {
+//     for (var j in ifaces[i]) {
+//         var val = ifaces[i][j]
+//         if (val.family === 'IPv4' && val.address !== '127.0.0.1') {
+//             ip = val.address
+//         }
+//     }
+// }
 // 1196735749
 module.exports = {
   build: {

+ 2 - 2
fhKeeper/formulahousekeeper/timesheet_h5/vue.config.js

@@ -5,9 +5,9 @@ const themePath = path.resolve(__dirname,'src/assets/style/theme.less');
 const Timestamp = new Date().getTime();
 
 // var ip = '47.101.180.183'
-// var ip = '47.100.37.243'
+var ip = '47.100.37.243'
 // var ip = '192.168.2.8'
-var ip = '127.0.0.1'
+// var ip = '127.0.0.1'
 
 // var os = require('os'), ip = '', ifaces = os.networkInterfaces() // 获取本机ip
 // for (var i in ifaces) {