ailululu 5 年 前
コミット
7afe2edf5f

+ 55 - 55
package-lock.json

@@ -2038,6 +2038,54 @@
         "tslint": "^5.20.1",
         "webpack": "^4.0.0",
         "yorkie": "^2.0.0"
+      },
+      "dependencies": {
+        "cosmiconfig": {
+          "version": "6.0.0",
+          "resolved": "http://registry.m.jd.com/cosmiconfig/download/cosmiconfig-6.0.0.tgz",
+          "integrity": "sha1-2k/uhTxS9rHmk19BwaL8UL1KmYI=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "@types/parse-json": "^4.0.0",
+            "import-fresh": "^3.1.0",
+            "parse-json": "^5.0.0",
+            "path-type": "^4.0.0",
+            "yaml": "^1.7.2"
+          }
+        },
+        "fork-ts-checker-webpack-plugin-v5": {
+          "version": "npm:fork-ts-checker-webpack-plugin@5.2.1",
+          "resolved": "http://registry.m.jd.com/fork-ts-checker-webpack-plugin/download/fork-ts-checker-webpack-plugin-5.2.1.tgz",
+          "integrity": "sha1-eTJthpeXkG+osk4qvPlCH8gFRQ0=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "@babel/code-frame": "^7.8.3",
+            "@types/json-schema": "^7.0.5",
+            "chalk": "^4.1.0",
+            "cosmiconfig": "^6.0.0",
+            "deepmerge": "^4.2.2",
+            "fs-extra": "^9.0.0",
+            "memfs": "^3.1.2",
+            "minimatch": "^3.0.4",
+            "schema-utils": "2.7.0",
+            "semver": "^7.3.2",
+            "tapable": "^1.0.0"
+          }
+        },
+        "schema-utils": {
+          "version": "2.7.0",
+          "resolved": "http://registry.m.jd.com/schema-utils/download/schema-utils-2.7.0.tgz",
+          "integrity": "sha1-FxUfdtjq5n+793lgwzxnatn078c=",
+          "dev": true,
+          "optional": true,
+          "requires": {
+            "@types/json-schema": "^7.0.4",
+            "ajv": "^6.12.2",
+            "ajv-keywords": "^3.4.1"
+          }
+        }
       }
     },
     "@vue/cli-plugin-vuex": {
@@ -2292,9 +2340,9 @@
           }
         },
         "vue-loader-v16": {
-          "version": "npm:vue-loader@16.0.0-beta.10",
-          "resolved": "https://registry.npmjs.org/vue-loader/-/vue-loader-16.0.0-beta.10.tgz",
-          "integrity": "sha512-PflGsj4RHW3tuYFmSPhcozAkds8ELXf8d19twWorQTjcuWxl/Xqb9W1NgfsY7AAkCkkRRYy2FwIX4tSnskfKig==",
+          "version": "npm:vue-loader@16.0.0-rc.1",
+          "resolved": "http://registry.m.jd.com/vue-loader/download/vue-loader-16.0.0-rc.1.tgz",
+          "integrity": "sha1-nB8WhOLQHIpyIW+dTbEZ4VxiJkU=",
           "dev": true,
           "optional": true,
           "requires": {
@@ -2305,8 +2353,8 @@
           "dependencies": {
             "json5": {
               "version": "2.1.3",
-              "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz",
-              "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==",
+              "resolved": "http://registry.m.jd.com/json5/download/json5-2.1.3.tgz",
+              "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=",
               "dev": true,
               "optional": true,
               "requires": {
@@ -2315,8 +2363,8 @@
             },
             "loader-utils": {
               "version": "2.0.0",
-              "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.0.tgz",
-              "integrity": "sha512-rP4F0h2RaWSvPEkD7BLDFQnvSf+nK+wr3ESUjNTyAGobqrijmW92zc+SO6d4p4B1wh7+B/Jg1mkQe5NYUEHtHQ==",
+              "resolved": "http://registry.m.jd.com/loader-utils/download/loader-utils-2.0.0.tgz",
+              "integrity": "sha1-5MrOW4FtQloWa18JfhDNErNgZLA=",
               "dev": true,
               "optional": true,
               "requires": {
@@ -6668,54 +6716,6 @@
         }
       }
     },
-    "fork-ts-checker-webpack-plugin-v5": {
-      "version": "npm:fork-ts-checker-webpack-plugin@5.2.1",
-      "resolved": "https://registry.npmjs.org/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-5.2.1.tgz",
-      "integrity": "sha512-SVi+ZAQOGbtAsUWrZvGzz38ga2YqjWvca1pXQFUArIVXqli0lLoDQ8uS0wg0kSpcwpZmaW5jVCZXQebkyUQSsw==",
-      "dev": true,
-      "optional": true,
-      "requires": {
-        "@babel/code-frame": "^7.8.3",
-        "@types/json-schema": "^7.0.5",
-        "chalk": "^4.1.0",
-        "cosmiconfig": "^6.0.0",
-        "deepmerge": "^4.2.2",
-        "fs-extra": "^9.0.0",
-        "memfs": "^3.1.2",
-        "minimatch": "^3.0.4",
-        "schema-utils": "2.7.0",
-        "semver": "^7.3.2",
-        "tapable": "^1.0.0"
-      },
-      "dependencies": {
-        "cosmiconfig": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-6.0.0.tgz",
-          "integrity": "sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "@types/parse-json": "^4.0.0",
-            "import-fresh": "^3.1.0",
-            "parse-json": "^5.0.0",
-            "path-type": "^4.0.0",
-            "yaml": "^1.7.2"
-          }
-        },
-        "schema-utils": {
-          "version": "2.7.0",
-          "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz",
-          "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
-          "dev": true,
-          "optional": true,
-          "requires": {
-            "@types/json-schema": "^7.0.4",
-            "ajv": "^6.12.2",
-            "ajv-keywords": "^3.4.1"
-          }
-        }
-      }
-    },
     "form-data": {
       "version": "2.3.3",
       "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",

+ 7 - 7
src/packages/price/index.vue

@@ -69,24 +69,24 @@ export default create({
         const priceArray = price.split('.');
         console.log('num1', priceArray);
         return (
-          '<span class="price-big">' +
+          '<view class="price-big">' +
           formatThousands(priceArray[0]) +
-          '</span><span class="price-point">.</span><span class="price-small">' +
+          '</view><view class="price-point">.</view><view class="price-small">' +
           formatDecimal(priceArray[1]) +
-          '</span>'
+          '</view>'
         );
       } else {
         return (
-          '<span class="price-big">' +
+          '<view class="price-big">' +
           formatThousands(price) +
-          '</span><span class="price-point">.</span><span class="price-small">' +
+          '</view><view class="price-point">.</view><view class="price-small">' +
           formatDecimal(0) +
-          '</span>'
+          '</view>'
         );
       }
     };
     const priceShow = computed(() => {
-      const symbol = needSymbol ? '<span class="price-symbol">¥</span>' : '';
+      const symbol = needSymbol ? '<view class="price-symbol">¥</view>' : '';
       return symbol + formatToHump(price.value);
     });
     const classes = computed(() => {

BIN
src/sites/assets/images/icon-select-gray-down.png


BIN
src/sites/assets/images/icon-select-gray-up.png


BIN
src/sites/assets/images/icon-select-white-down.png


BIN
src/sites/assets/images/icon-select-white-up.png


BIN
src/sites/assets/images/icon-user.png


BIN
src/sites/assets/images/input-search.png


BIN
src/sites/assets/images/item-active.png


BIN
src/sites/assets/images/nut3全是两倍图/2倍.png


BIN
src/sites/assets/images/nut3全是两倍图/Git.png


BIN
src/sites/assets/images/nut3全是两倍图/icon-select-gray-down.png


BIN
src/sites/assets/images/nut3全是两倍图/icon-select-gray-up.png


BIN
src/sites/assets/images/nut3全是两倍图/icon-select-white-up.png


BIN
src/sites/assets/images/nut3全是两倍图/向下箭头-黑色.png


+ 47 - 2
src/sites/assets/styles/variables.scss

@@ -7,6 +7,51 @@ $doc-default-primary-bg: linear-gradient(
   rgba(250, 56, 31, 1) 83%,
   rgba(250, 63, 25, 1) 100%
 );
+
+// clolr
+// 红色
+
+$theme-red-word: #fff;
+$theme-red-border: #fff;
+$theme-red-input: #fff;
+$theme-red-actice: #fff;
+$theme-red-header-bg: url('../../assets/images/header-bg.png') no-repeat;
+$theme-red-footer-word1: #1a1a1a;
+$theme-red-footer-word2: #666;
+$theme-red-footer-word3: #1d1d21;
+$theme-red-footer-word4: #808080;
+$theme-red-footer-bg: #fff;
+$theme-red-footer-border: #eaf0fb;
+// 白色
+$theme-white-word: #1a1a1a;
+$theme-white-input: #ccc;
+$theme-white-border: #d8d8d8;
+$theme-white-actice: #fa2c19;
+$theme-white-select-border: #f0f2f5;
+$theme-white-select-word: #666;
+$theme-white-box-border: #f5f5f5;
+$theme-white-footer-word1: #1a1a1a;
+$theme-white-footer-word2: #666;
+$theme-white-footer-word3: #1d1d21;
+$theme-white-footer-word4: #808080;
+$theme-white-footer-bg: #fff;
+$theme-white-footer-border: #eaf0fb;
+// 黑色
+$theme-black-word: #ccc;
+$theme-black-input: #ccc;
+$theme-black-border: #d8d8d8;
+$theme-black-actice: #fff;
+$theme-black-select-bg: #797a7b;
+$theme-black-select-border: #797a7b;
+$theme-black-select-word: #fff;
+$theme-black-box-border: #6b5554;
+$theme-black-footer-word1: #fff;
+$theme-black-footer-word2: #f5f5f5;
+$theme-black-footer-word3: #f5f5f5;
+$theme-black-footer-word4: #808080;
+$theme-black-footer-hover: #fa2c19;
+$theme-black-footer-bg: #1d1d21;
+$theme-black-footer-border: transparent;
 // header
 $doc-default-header-color: $white;
 $doc-header-height: 64px;
@@ -15,8 +60,8 @@ $doc-header-bg: url('../../assets/images/header-bg.png') no-repeat;
 $doc-default-nav-bg: $white;
 $doc-default-nav-color: $title-color;
 // footer
-$doc-default-header-color: $white;
-$doc-footer-height: 73px;
+// $doc-default-header-color: $white;
+// $doc-footer-height: 73px;
 
 //markdown-add-style
 $nutui-doc-black: #323233;

+ 136 - 9
src/sites/doc/components/Footer.vue

@@ -1,24 +1,151 @@
 <template>
-  <div class="doc-footer">
-    2020 JDRD-FEB 前端开发部.All Rights Reserved.
+  <div class="doc-footer" :class="`doc-footer-${theme}`">
+    <div class="doc-footer-content">
+      <div class="doc-footer-list">
+        <h4 class="doc-footer-title">相关资源</h4>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+      </div>
+      <div class="doc-footer-list">
+        <h4 class="doc-footer-title">相关资源</h4>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+      </div>
+      <div class="doc-footer-list">
+        <h4 class="doc-footer-title">相关资源</h4>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+      </div>
+      <div class="doc-footer-list">
+        <h4 class="doc-footer-title">相关资源</h4>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+        <div class="doc-footer-item">JDW智能构建平台</div>
+      </div>
+      <div class="doc-footer-list">
+        <div class="doc-footer-select-hd"><i class=""></i>主题换肤</div>
+        <div class="doc-footer-select-bd">
+          <div class="doc-footer-select-item">
+            热情红
+          </div>
+          <div class="doc-footer-select-item">
+            暗黑风
+          </div>
+        </div>
+      </div>
+    </div>
+    <p class="doc-footer-desc">2020 JDRD-FEB 前端开发部.All Rights Reserved.</p>
   </div>
 </template>
 <script lang="ts">
-import { defineComponent } from 'vue';
+import { defineComponent, reactive } from 'vue';
 export default defineComponent({
-  name: 'doc-footer'
+  name: 'doc-footer',
+  setup() {
+    const data = reactive({
+      theme: 'black',
+      activeIndex: 0
+    });
+    return data;
+  }
 });
 </script>
 
 <style lang="scss">
 .doc {
   &-footer {
-    background: $doc-default-primary-bg;
-    height: $doc-footer-height;
-    line-height: $doc-footer-height;
+    padding: 30px 80px 20px;
     text-align: center;
-    font-size: 16px;
-    color: $white;
+    &-content {
+      display: flex;
+      justify-content: space-around;
+      margin-right: 50px;
+    }
+    &-list {
+      position: relative;
+    }
+    &-title {
+      margin-bottom: 24px;
+      font-size: 16px;
+      font-weight: bold;
+    }
+    &-item {
+      margin-bottom: 14px;
+      line-height: 17px;
+      font-size: 12px;
+    }
+    &-desc {
+      margin-top: 30px;
+      font-size: 12px;
+    }
+    &-select-hd {
+      width: 110px;
+      height: 32px;
+      padding: 0 12px;
+      line-height: 30px;
+      font-size: 14px;
+      border-width: 1px;
+      border-style: solid;
+      border-radius: 2px;
+      cursor: pointer;
+      &:hover {
+      }
+    }
+    &-select-bd {
+      position: absolute;
+      border-radius: 2px;
+    }
+    &-select-item {
+      width: 110px;
+      height: 32px;
+      padding: 0 12px;
+      line-height: 30px;
+      font-size: 14px;
+      border-width: 0px 1px 1px;
+      border-style: solid;
+      border-radius: 2px;
+      cursor: pointer;
+    }
+  }
+}
+// 颜色
+.doc-footer {
+  // 黑色
+  &-black {
+    background: $theme-black-footer-bg;
+    border-top: 1px solid $theme-black-footer-border;
+    .doc-footer {
+      &-title {
+        color: $theme-black-footer-word1;
+      }
+      &-item {
+        color: $theme-black-footer-word2;
+      }
+      &-desc {
+        color: $theme-black-footer-word4;
+      }
+      &-select-hd {
+        color: $theme-black-footer-word2;
+        background: rgba(29, 29, 33, 1);
+        border-color: $theme-black-border;
+        &:hover {
+          border-color: $theme-black-footer-hover;
+        }
+      }
+      &-select-item {
+        color: $theme-black-footer-word2;
+        background: rgba(29, 29, 33, 1);
+        border-color: $theme-black-border;
+        // &:first-of-type {
+        //   border-top: none;
+        // }
+        &:hover {
+          color: $theme-black-footer-hover;
+          // border-color: $theme-black-footer-hover;
+        }
+        &.active {
+        }
+      }
+    }
   }
 }
 </style>

+ 277 - 6
src/sites/doc/components/Header.vue

@@ -1,12 +1,52 @@
 <template>
-  <div class="doc-header">
-    NutUI
+  <div class="doc-header" :style="{ background: themeColor === 'red' ? headerBg : themeColor }" :class="`doc-header-${theme}`">
+    <div class="header-logo">
+      <a class="logo-link" href="#">
+        <template v-if="theme === 'red'">
+          <img src="../../assets/images/logo-header-white.png" />
+        </template>
+        <template v-else>
+          <img src="../../assets/images/logo-header-red.png" />
+        </template>
+      </a>
+      <span class="logo-border"></span>
+    </div>
+    <div class="header-nav">
+      <div class="search-box">
+        <input type="text" class="search-input" placeholder="在nut.ui 中搜索" />
+      </div>
+      <div class="nav-box">
+        <ul class="nav-list">
+          <li class="nav-item nav-item-actie">指南</li>
+          <li class="nav-item">组件</li>
+          <li class="nav-item">示例</li>
+          <li class="nav-item">资源</li>
+          <li class="nav-item">
+            <select class="nutui-select">
+              <option value="1.x">1.x</option>
+              <option value="2.x">2.x</option>
+            </select>
+          </li>
+          <li class="nav-item">
+            <a class="user-link" href="#"> </a>
+          </li>
+        </ul>
+      </div>
+    </div>
   </div>
 </template>
 <script lang="ts">
-import { defineComponent } from 'vue';
+import { defineComponent, reactive } from 'vue';
 export default defineComponent({
-  name: 'doc-header'
+  name: 'doc-header',
+  setup() {
+    const data = reactive({
+      theme: 'red',
+      themeColor: 'red',
+      headerBg: 'url(' + require('../../assets/images/header-bg.png') + ')'
+    });
+    return data;
+  }
 });
 </script>
 
@@ -18,7 +58,6 @@ export default defineComponent({
     top: 0;
     left: 0;
     right: 0;
-    background: $doc-header-bg;
     background-size: cover;
     background-position: center;
     height: $doc-header-height;
@@ -26,7 +65,239 @@ export default defineComponent({
     text-align: left;
     padding: 0 50px;
     font-size: 20px;
-    color: $white;
+  }
+}
+.header {
+  &-logo {
+    position: relative;
+    display: inline-block;
+    width: 240px;
+    height: 64px;
+    .logo-link {
+      display: flex;
+      align-items: center;
+      height: 64px;
+      vertical-align: middle;
+      img {
+        height: 46px;
+      }
+    }
+    .logo-border {
+      display: inline-block;
+      width: 1px;
+      height: 26px;
+      position: absolute;
+      right: 0;
+      top: 50%;
+      margin-top: -13px;
+    }
+  }
+  &-nav {
+    display: flex;
+    justify-content: space-between;
+    align-items: center;
+    float: right;
+    width: calc(100% - 240px);
+    padding: 0 40px;
+    .search-box {
+      font-size: 0;
+      .search-input {
+        height: 22px;
+        padding-left: 42px;
+        font-size: 14px;
+        vertical-align: middle;
+        background: transparent url('../../assets/images/input-search.png') no-repeat;
+      }
+    }
+    .nav-box {
+      margin-right: 140px;
+      .nav-list {
+        min-width: 400px;
+        display: flex;
+        list-style: none;
+        align-items: center;
+      }
+      .nav-item {
+        position: relative;
+        margin-right: 30px;
+        font-size: 14px;
+        padding: 0 10px;
+        height: 63px;
+        line-height: 63px;
+        text-align: center;
+        cursor: pointer;
+        overflow: hidden;
+        &.nav-item-actie {
+          font-weight: bold;
+          &:after {
+            content: '';
+            display: inline-block;
+            width: 35px;
+            height: 13px;
+            position: absolute;
+            bottom: 3px;
+            left: 50%;
+            margin-left: -17.5px;
+            background: url('../../assets/images/item-active.png');
+          }
+        }
+        &:last-of-type {
+          margin-right: 0;
+        }
+        .nutui-select {
+          min-width: 77px;
+          height: 28px;
+          padding: 0 15px;
+          font-size: 14px;
+          color: $theme-red-word;
+          background: url('../../assets/images/icon-select-white-down.png') no-repeat;
+          background-position: right 15px top 12px;
+          background-size: 8px 5px;
+          border-radius: 14px;
+          outline: none;
+          appearance: none;
+        }
+      }
+      .user-link {
+        display: inline-block;
+        width: 26px;
+        height: 26px;
+        vertical-align: middle;
+        background: url('../../assets/images/icon-user.png') no-repeat;
+        background-size: 100%;
+      }
+    }
+  }
+}
+// 颜色
+.doc-header {
+  // 红色
+  &-red {
+    background: $theme-red-header-bg;
+    color: $theme-red-word;
+    .header {
+      &-logo {
+        .logo-border {
+          background: $theme-red-border;
+        }
+      }
+      &-nav {
+        .search-box {
+          .search-input {
+            color: $theme-red-word;
+            background-position: 0 0;
+            &::-webkit-input-placeholder {
+              color: $theme-red-input;
+            }
+          }
+        }
+        .nav-box {
+          .nav-item {
+            color: $theme-red-word;
+            &.nav-item-actie {
+              color: $theme-red-actice;
+              &:after {
+                background-position: 0 0;
+              }
+            }
+            .nutui-select {
+              color: $theme-red-word;
+              border: 1px solid $theme-red-border;
+            }
+          }
+          .user-link {
+            background-position: 0 0;
+          }
+        }
+      }
+    }
+  }
+  // 白色
+  &-white {
+    background: $white;
+    color: $theme-white-word;
+    border-bottom: 1px solid $theme-white-box-border;
+    .header {
+      &-logo {
+        .logo-border {
+          background: $theme-white-border;
+        }
+      }
+      &-nav {
+        .search-box {
+          .search-input {
+            color: $theme-white-word;
+            background-position: 0 -22px;
+            &::-webkit-input-placeholder {
+              color: $theme-white-input;
+            }
+          }
+        }
+        .nav-box {
+          .nav-item {
+            color: $theme-white-word;
+            &.nav-item-actie {
+              color: $theme-white-actice;
+              &:after {
+                background-position: 0 -13px;
+              }
+            }
+            .nutui-select {
+              background-image: url('../../assets/images/icon-select-gray-down.png');
+              background-position: right 15px top 12px;
+              color: $theme-white-select-word;
+              border: 1px solid $theme-white-select-border;
+            }
+          }
+          .user-link {
+            background-position: 0 -26px;
+          }
+        }
+      }
+    }
+  }
+  // 黑色
+  &-black {
+    background: $black;
+    color: $theme-black-word;
+    border-bottom: 1px solid $theme-black-box-border;
+    .header {
+      &-logo {
+        .logo-border {
+          background: $theme-black-border;
+        }
+      }
+      &-nav {
+        .search-box {
+          .search-input {
+            color: $theme-black-word;
+            background-position: 0 -44px;
+            &::-webkit-input-placeholder {
+              color: $theme-black-input;
+            }
+          }
+        }
+        .nav-box {
+          .nav-item {
+            color: $theme-black-word;
+            &.nav-item-actie {
+              color: $theme-black-actice;
+              &:after {
+                background-position: 0 -13px;
+              }
+            }
+            .nutui-select {
+              color: $theme-black-select-word;
+              background-color: $theme-black-select-bg;
+              border: 1px solid $theme-black-select-border;
+            }
+          }
+          .user-link {
+            background-position: 0 -52px;
+          }
+        }
+      }
+    }
   }
 }
 </style>