Browse Source

docs: sites optimization

richard1015 4 years ago
parent
commit
b3a82894b3

+ 5 - 0
src/config.json

@@ -56,6 +56,11 @@
       {
         "name": "international",
         "cName": "国际化",
+        "show": false
+      },
+      {
+        "name": "resource",
+        "cName": "资源",
         "show": true
       },
       {

+ 2 - 2
src/docs/international.md

@@ -1,6 +1,6 @@
-# 国际化
+# 国际化(3.0开发中)
 
-NutUI 2.0 以上版本支持多语言。组件默认使用中文,支持加载其他语言包来实现多语言切换功能。除了组件本身的语言切换以外,用户还可以调用相关的语言转换方法来支持其他功能的国际化。具体使用方法如下:
+NutUI 3.0 以上版本支持多语言。组件默认使用中文,支持加载其他语言包来实现多语言切换功能。除了组件本身的语言切换以外,用户还可以调用相关的语言转换方法来支持其他功能的国际化。具体使用方法如下:
 
 ## 使用方法
 

+ 7 - 17
src/docs/intro.md

@@ -1,6 +1,6 @@
 # NutUI 3.0
 
-NutUI 是一套京东风格的移动端组件库,开发和服务于移动Web界面的企业级产品。
+NutUI 是一套京东风格的 Vue 移动端组件库,开发和服务于移动Web界面的企业级产品。
 
 <div style="margin:30px 0;">
     <img src="https://img14.360buyimg.com/imagetools/jfs/t1/167902/2/8762/791358/603742d7E9b4275e3/e09d8f9a8bf4c0ef.png" width="150" alt="NutUI">
@@ -14,24 +14,23 @@ NutUI 是一套京东风格的移动端组件库,开发和服务于移动Web
 
 ## 特性
 
-* 30+ 高质量组件
+* 70+ 高质量组件(3.0 持续开发中)
 * 基于京东APP 9.0 视觉规范
-* 支持按需加载
+* 支持按需引用
 * 详尽的文档和示例
-* 支持定制主题
 * 支持 TypeScript
-* 支持服务端渲染(Vue SSR)
-* 配套有基于Webpack的构建工具,可快速创建已内置本组件库的Vue工程
+* 支持服务端渲染(测试阶段)
+* 支持定制主题(3.0 开发中)
+* 单元测试覆盖(3.0 开发中)
 
 ## 示例
 
-![NutUI Demo](https://img14.360buyimg.com/uba/s260x260_jfs/t1/32118/11/559/2782/5c3d81ecEbda0c0f1/5f2b637d11817204.png)
+<img src="https://img12.360buyimg.com/imagetools/jfs/t1/162421/39/13392/9425/6052ea60E592310a9/264bdff23ef5fe95.png" width="200" alt="NutUI">
 
 ## 支持环境
 
 * Android 4.0+
 * iOS 8.0+
-* 服务端渲染
 
 ## 构建版本
 
@@ -44,15 +43,6 @@ NutUI 是一套京东风格的移动端组件库,开发和服务于移动Web
 
 > 你还可以订阅: https://github.com/jdf2e/nutui/releases.atom 来获得稳定版发布的通知。
 
-## 链接
-* [Vue官方文档](http://cn.vuejs.org/)
-* [Webpack](http://webpack.github.io/)
-* [Vite](https://vitejs.dev/)
-* [意见反馈](https://github.com/jdf2e/nutui/issues)
-* [更新日志](https://github.com/jdf2e/nutui/releases)
-* [案例征集](https://github.com/jdf2e/nutui/issues/16)
-* 联系我们:nutui@jd.com
-* [加入我们](#/joinus)
 
 
 ## 开源协议

+ 42 - 188
src/docs/start.md

@@ -2,74 +2,21 @@
 
 ## 安装
 
-* 通过 NPM 或 YARN 安装(推荐)
+* 通过 Npm 或 Yarn 安装
 
-#### NPM
-```bash
-npm i @nutui/nutui@next -S
-```
+#### NPM 安装
 
-#### YARN
 ```bash
-yarn add @nutui/nutui@next
-```
-> 如果你的网络环境不佳,不妨试试国内的npm镜像
-
-> 默认安装最新版 2.x,如需使用 1.x 版本,请指定版本号,如:  `npm i @nutui/nutui@1.3.2 -S`
+# Vue2 项目
+npm i @nutui/nutui -S
 
-* 页面直接引用
-
-在页面中使用 script 和 link 标签直接引入文件,**NutUI** 将会自动注册。我们在 npm 发布包内的 dist 目录下提供了 **nutui.js** **nutui.css** 以及 **nutui.min.js** **nutui.min.css**。
-
-当然你也可以通过 CDN 的方式引入, 可以在 **jsdelivr** 和 **unpkg** 等公共 CDN 上获取到 NutUI。我们推荐链接到一个你可以手动更新的指定版本号。
-
-```html 开发环境版本,包含了有帮助的命令行警告
-<!-- 开发环境版本,包含了有帮助的命令行警告 -->
-<!-- 引入样式 -->
-<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/nutui.css">
-<!-- 引入Vue -->
-<script src="https://cdn.jsdelivr.net/npm/vue@next"></script>
-<!-- 引入组件库 -->
-<script src="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/nutui.js"></script>
-```
-或者
-```html
-<!-- 生产环境版本,优化了尺寸和速度 -->
-<!-- 引入样式 -->
-<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/nutui.min.css">
-<!-- 引入Vue -->
-<script src="https://cdn.jsdelivr.net/npm/vue@next"></script>
-<!-- 引入组件库 -->
-<script src="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/nutui.min.js"></script>
+# Vue3 项目
+npm i @nutui/nutui@beta -S
 ```
 
-CDN 使用示例
+#### CDN 安装使用示例
 
-```html
-<!DOCTYPE html>
-<html>
-<head>
-    <meta charset="UTF-8">
-    <meta name="viewport" content="width=device-width, initial-scale=1.0">
-    <!-- 引入样式 -->
-    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/nutui.min.css">
-    <!-- 引入Vue -->
-    <script src="https://cdn.jsdelivr.net/npm/vue@next"></script>
-    <!-- 引入NutUI组件库 -->
-    <script src="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/nutui.min.js"></script>
-</head>
-<body>
-    <div id="app">
-        <nut-button>Button</nut-button>
-    </div>
-    <script>
-        new Vue({el: '#app'});
-    </script>
-</body>
-</html>
-```
-
-CDN 按需加载引入示例
+> 可以通过 CDN 的方式引入, 可以在 **jsdelivr** 和 **unpkg** 等公共 CDN 上获取到 NutUI。
 
 ```html
 <!DOCTYPE html>
@@ -77,158 +24,65 @@ CDN 按需加载引入示例
   <head>
     <meta charset="UTF-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <!-- 引入样式 -->
+    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/style.css" />
+    <!-- 引入Vue -->
+    <script src="https://cdn.jsdelivr.net/npm/vue@next"></script>
+    <!-- 引入NutUI组件库 -->
+    <script src="https://cdn.jsdelivr.net/npm/@nutui/nutui@beta/dist/nutui.umd.js"></script>
   </head>
-
   <body>
     <div id="app">
-      <nut-button>cdn按需加载</nut-button>
+        
     </div>
-
-    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
-    <!-- 引入样式 -->
-    <link
-      rel="stylesheet"
-      href="https://cdn.jsdelivr.net/npm/@nutui/nutui@latest/dist/packages/button/button.css"
-    />
-    <!-- 引入Vue -->
-    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
-    <!-- 引入组件库 -->
-    <script src="https://cdn.jsdelivr.net/npm/@nutui/nutui@latest/dist/packages/button/button.js"></script>
     <script>
-      Vue.component(button.default.name, button.default);
-      new Vue({
-        el: "#app"
+      // 在 #app 标签下渲染一个按钮组件
+      const app = Vue.createApp({
+        template: `
+        <nut-button type="primary">主要按钮</nut-button>
+        <nut-button type="info">信息按钮</nut-button>
+        <nut-button type="default">默认按钮</nut-button>
+        <nut-button type="danger">危险按钮</nut-button>
+        <nut-button type="warning">警告按钮</nut-button>
+        <nut-button type="success">成功按钮</nut-button>
+        `,
       });
+      app.use(nutui);
+      app.mount("#app");
     </script>
   </body>
 </html>
 ```
 
 > 在页面中直接引入,将无法使用 **主题定制** 等功能。我们推荐使用 *NPM* 或 *YARN* 方式安装,不推荐在页面中直接引入的用法
-
-* 通过 **Vue CLI** 图形化界面安装
-
-如果你的项目是使用 [Vue CLI](https://cli.vuejs.org/zh/) 脚手架搭建,那么你还可以通过 **Vue CLI** 提供的图形化界面安装 **NutUI** :在图形化界面的 **依赖** 界面,点击右上角 **安装依赖** 按钮,搜索 **@nutui/nutui** 安装即可。
-
-## 加载示例
+#### NPM 使用示例
 
 ```javascript
-import Vue from 'vue';
-import NutUI from '@nutui/nutui';
-import '@nutui/nutui/dist/nutui.css';
-
-NutUI.install(Vue);
+import { createApp } from "vue";
+import App from "./App.vue";
+import NutUI from "@nutui/nutui";
+import "@nutui/nutui/dist/style.css";
+createApp(App).use(NutUI).mount("#app");
 ```
 
 > 注意:这种方式将会导入所有组件
 
-## 按需加载
-
-以下两种方式都可以实现只加载用到的组件,从而减少加载的文件体积。
-
-### 1. 使用 webpack 插件 **[@nutui/babel-plugin-separate-import](https://www.npmjs.com/package/@nutui/babel-plugin-separate-import)** (推荐)
-
-首先安装 **@nutui/babel-plugin-separate-import** 插件
-
-```bash
-npm i @nutui/babel-plugin-separate-import -D
-```
-
-然后配置一下babel的配置文件
-
-``` bash
-{
-  "plugins": [
-    ["@nutui/babel-plugin-separate-import", {
-        "style": "scss"
-    }]
-  ]
-}
-```
-> style 选项值为 "css" 时加载组件对应的css文件,为 "scss" 时加载对应的scss文件。无style选项时,不自动加载样式文件。
-
-接下来,我们就可以在项目里只引入用到的组件了。默认情况下,样式也无需单独引入。插件会自动将代码转换为方式二的手动引入方式。
+## 推荐使用按需加载
 
 ```javascript
-import Vue from 'vue';
-import { Dialog,Picker } from '@nutui/nutui';
-
-Dialog.install(Vue);
-Picker.install(Vue);
-```
-如果需要按需加载 scss 文件(如需要自定义主题)时,除了需要把 style 选项值设为 **scss** 外,还需要修改 webpack 配置文件的 sass-loader 配置,如下所示:
-
-``` bash
-{
-    loader: 'sass-loader',
-    options: {
-        data: `@import "@nutui/nutui/dist/styles/index.scss"; `
-    }
-}
+import { createApp } from "vue";
+import App from "./App.vue";
+import { Button, Cell, Icon } from "@nutui/nutui";
+import "@nutui/nutui/dist/style.css";
+createApp(App).use(Button).use(Cell).use(Icon).mount("#app");
 ```
 
-`vue.config.js` VueCLI3 配置方式 
-
-``` bash
-module.exports = {
-    css: {
-        loaderOptions: {
-            // 给 sass-loader 传递选项
-            scss: {
-                // @/ 是 src/ 的别名
-                // 注意:在 sass-loader v7 中,这个选项名是 "data"
-                prependData: ` 
-                @import "@/assets/custom_theme.scss";
-                @import "@nutui/nutui/dist/styles/index.scss";
-                `,
-            }
-        },
-    }
-}
-```
-
-> VueCLI 3 相关Demo 请查看 [NutUI Demo](https://github.com/jdf2e/nutui-demo)
-
-### 2. 手动引入
 
-```javascript
-import Vue from 'vue';
-import Button from '@nutui/nutui/dist/packages/button/button.js';  // 加载构建后的JS
-import '@nutui/nutui/dist/packages/button/button.css';  //加载构建后的CSS
-//主题定制等场景需要加载SCSS,而不是构建后的CSS
-//import '@nutui/nutui/dist/packages/button/button.scss'; 
-
-Button.install(Vue);
-```
-
-## 组件使用
+## 注意事项
 
-1.使用:prop传递数据格式为 数字、布尔值或函数时,必须带:(兼容字符串类型除外),比如:
+- 使用:prop传递数据格式为 数字、布尔值或函数时,必须带:(兼容字符串类型除外),比如:
 ```html
 <nut-switch :active="true" size="base"></nut-switch>
 ```
 
-2.组件 css 单位使用的是 **px**,如果你的项目中需要 **rem** 单位,可借助一些工具进行转换,比如 [webpack](https://www.webpackjs.com/) 的 [px2rem-loader](https://www.npmjs.com/package/px2rem-loader)、[postcss](https://github.com/postcss/postcss) 的 [postcss-plugin-px2rem](https://www.npmjs.com/package/postcss-plugin-px2rem) 插件等
-
-VueCLI3 配置示例 `vue.config.js`
-``` javascript
-const pxtorem = require('postcss-pxtorem');
-module.exports = {
-    css: {
-        loaderOptions: {
-          postcss: {
-            plugins: [
-              pxtorem({
-                rootValue: 37.5,
-                propList: ['*']
-              })
-            ]
-          }
-        }
-      }
-}
-```
-
-3.组件具体用法以文档为准
-
-4.组件使用过程中如有问题或建议,欢迎[反馈](https://github.com/jdf2e/nutui/issues)
+- 组件 css 单位使用的是 **px**,如果你的项目中需要 **rem** 单位,可借助一些工具进行转换,比如 [webpack](https://www.webpackjs.com/) 的 [px2rem-loader](https://www.npmjs.com/package/px2rem-loader)、[postcss](https://github.com/postcss/postcss) 的 [postcss-plugin-px2rem](https://www.npmjs.com/package/postcss-plugin-px2rem) 插件等

+ 44 - 56
src/docs/theme.md

@@ -1,29 +1,36 @@
 # 主题定制
 
-> 定制主题须使用 NutUI 2.0 以上版本
-
 NutUI 默认提供一套 UI 主题,同时允许在一定程度上定制新的主题,以满足业务的多样化视觉需求。
 
-![主题定制](http://img14.360buyimg.com/uba/jfs/t1/14893/39/4803/92712/5c3478afEc0458edb/54e06165a4445661.png)
+<br/>
+
+<img src="https://img12.360buyimg.com/imagetools/jfs/t1/157759/16/13989/142151/6052efc7Ef8f4bff4/f3dd6422949ba4b7.jpg" width="700" alt="NutUI 主题定制">
+
 
 
 ## 样式变量
 
 NutUI 的样式是基于 **[SCSS](https://sass-lang.com/)** 开发的,定义了一套默认样式变量,定制主题就是编辑这个变量列表。
 
-以下是一些与颜色相关基本样式变量,所有可用的变量请参考配置文件。
+> 现阶段需要开发者手动配置,可视化生成配置目前正在开发中。
+
+以下是一些与颜色相关基本样式变量,所有可用的变量请参考[配置文件 variables.scss](https://github.com/jdf2e/nutui/blob/next/src/styles/variables.scss)。
 
 ```scss
-$primary-color: #F0250F;
-$normal-color: #848484;
-$link-color: $primary-color;
-$link-hover-color: mix($link-color , #000, 80%);
-$title-color: #2D2D2D;
-$text-color: #848484;
-$light-color: #F6F6F6;
-$dark-color: #DADADA;
+// 主色调
+$primary-color: #fa2c19;
+$primary-color-end: #fa6419;
+...
 ```
 
+> 在主题定制场景下,项目中引用组件时,需要引入 **SCSS** 文件,而不是 **CSS** 文件。
+
+需要引入 **nutui.scss** 文件
+
+```javascript
+import NutUI from '@nutui/nutui';
+import '@nutui/nutui/dist/nutui.scss';
+```
 
 ## 定制主题
 
@@ -31,27 +38,45 @@ $dark-color: #DADADA;
 
 在本地项目中新建一个 **SCSS** 文件,包含上述变量,自定义变量值。
 
-### 第二步:修改本地项目 webpack 的配置文件
+### 第二步:修改本地项目 webpack 或者 vite 的配置文件
 
 修改 webpack 配置文件中 **sass-loader** 的配置。在 **options** 的 **data** 属性值中,先后 import 你自定义的 SCSS 文件(如 `custom.scss`)和 NutUI 的样式变量配置文件(路径为 **dist/styles/variable.scss**)。
 
-```javascript
+#### vite 版本
+
+``` javascript
+// https://vitejs.dev/config/
+export default defineConfig({
+  //...
+  css: {
+    preprocessorOptions: {
+      scss: {
+        additionalData: `@import "./asset/css/custom.scss";@import "@nutui/nutui/dist/styles/variables.scss";`
+      }
+    }
+  }
+})
+```
+
+#### vue/cli 2版本
+
+``` javascript
 {
     test: /\.(sa|sc)ss$/,
     use: [
         {
             loader: 'sass-loader',
             options: {
-                data: `@import "./asset/css/custom.scss"; @import "@nutui/nutui/dist/styles/index.scss"; `,
+                data: `@import "./asset/css/custom.scss";@import "@nutui/nutui/dist/styles/variables.scss";`,
             }
         }
     ]
 }
 ```
 
-如果你的项目使用的是VueCLI 3以上版本 请修改 `vue.config.js` 进行配置
+#### vue/cli 3 以上版本修改 **vue.config.js** 进行配置
 
-``` bash
+``` javascript
 module.exports = {
     css: {
         loaderOptions: {
@@ -59,46 +84,9 @@ module.exports = {
             scss: {
                 // @/ 是 src/ 的别名
                 // 注意:在 sass-loader v7 中,这个选项名是 "data"
-                prependData: ` 
-                @import "@/assets/custom_theme.scss";
-                @import "@nutui/nutui/dist/styles/index.scss";
-                `,
+                prependData: `@import "@/assets/custom_theme.scss";@import "@nutui/nutui/dist/styles/variables.scss";`,
             }
         },
     }
 }
-```
-
-### 第三步:引用组件样式时引用 SCSS 文件
-
-在主题定制场景下,项目中引用组件时,需要引入 **SCSS** 文件,而不是 **CSS** 文件。分三种情况:
-
-1.引用完整组件库时,需要引入 **nutui.scss** 文件
-
-```javascript
-import NutUI from '@nutui/nutui';
-import '@nutui/nutui/dist/nutui.scss';
-```
-
-2.未使用插件,手动按需引用组件时,需手动引入组件对应的 SCSS 文件。
-
-```javascript
-import Button from '@nutui/nutui/dist/packages/button/button.js';
-import '@nutui/nutui/dist/packages/button/button.scss';
-```
-
-3.使用了插件 **[@nutui/babel-plugin-separate-import](https://www.npmjs.com/package/@nutui/babel-plugin-separate-import)** 进行按需引用时,需修改babel的配置文件(如.babelrc),将 **style** 的设置为 **scss**。该插件将会自动引入指定组件对应的 SCSS 文件。
-
-```bash
-{
-  "plugins": [
-    ["@nutui/babel-plugin-separate-import", {
-        "libraryName": "@nutui/nutui",
-        "libraryDirectory": "dist/packages",
-        "style": "scss"
-    }]
-  ]
-}
-```
-
-> VueCLI 3 相关Demo 请查看 [NutUI Demo](https://github.com/jdf2e/nutui-demo)
+```

+ 23 - 16
src/sites/doc/components/Footer.vue

@@ -10,26 +10,26 @@
       <div class="doc-footer-list">
         <h4 class="doc-footer-title">相关资源</h4>
         <div class="doc-footer-item"
-          ><a class="sub-link" target="_blank" href="https://ling.jd.com/jdw"
-            >羚珑-中后台智能构建平台</a
+          ><a
+            class="sub-link"
+            target="_blank"
+            href="hhttps://cn.vuejs.org/index.html"
+            >Vue</a
           ></div
         >
         <div class="doc-footer-item"
-          ><a class="sub-link" target="_blank" href="https://taro.jd.com"
-            >Taro</a
+          ><a class="sub-link" target="_blank" href="https://vitejs.dev"
+            >Vite</a
           ></div
         >
         <div class="doc-footer-item"
-          ><a class="sub-link" target="_blank" href="https://vitejs.dev"
-            >Vite</a
+          ><a class="sub-link" target="_blank" href="https://taro.jd.com"
+            >Taro</a
           ></div
         >
         <div class="doc-footer-item"
-          ><a
-            class="sub-link"
-            target="_blank"
-            href="hhttps://cn.vuejs.org/index.html"
-            >Vue</a
+          ><a class="sub-link" target="_blank" href="https://ling.jd.com/jdw"
+            >羚珑</a
           ></div
         >
       </div>
@@ -51,6 +51,7 @@
             >NutUI 知乎专栏</a
           ></div
         >
+
         <div class="doc-footer-item vx-item">
           微信
           <i class="icon-vx"></i>
@@ -65,16 +66,22 @@
       <div class="doc-footer-list">
         <h4 class="doc-footer-title">关于我们</h4>
         <div class="doc-footer-item"
-          ><a class="sub-link" target="_blank" href="#/joinus">加入我们</a></div
+          ><a class="sub-link" href="#/joinus">加入我们</a></div
         >
         <div class="doc-footer-item"
-          ><a class="sub-link" target="_blank" href="http://fe.jd.com"
-            >京东零售前端</a
+          ><a class="sub-link" href="mailto:nutui@jd.com">联系我们</a></div
+        >
+        <div class="doc-footer-item"
+          ><a
+            class="sub-link"
+            target="_blank"
+            href="https://github.com/jdf2e/nutui/issues"
+            >意见反馈</a
           ></div
         >
         <div class="doc-footer-item"
-          ><a class="sub-link" target="_blank" href="nutui@jd.com"
-            >联系我们</a
+          ><a class="sub-link" target="_blank" href="http://fe.jd.com"
+            >京东前端</a
           ></div
         >
       </div>

+ 1 - 0
src/sites/doc/components/Nav.vue

@@ -9,6 +9,7 @@
           :class="{ active: isActive(_package.name) }"
           v-for="_package in docs.packages"
           :key="_package"
+          v-show="_package.show"
         >
           <router-link
             v-if="!_package.isLink"

+ 27 - 10
src/sites/doc/views/Main.vue

@@ -144,7 +144,6 @@ export default defineComponent({
   }
 });
 </script>
-
 <style lang="scss">
 @keyframes fadeInLeft {
   from {
@@ -156,6 +155,32 @@ export default defineComponent({
     transform: translate3d(0, 0, 0);
   }
 }
+.doc-content-index {
+  .content-left {
+    .content-title {
+      animation: fadeInLeft 1s both;
+    }
+    .content-smile {
+      animation: fadeInLeft 1s both 0.5s;
+    }
+    .content-subTitle {
+      animation: fadeInLeft 1s both 0.5s;
+    }
+    .content-button {
+      iframe {
+        animation: fadeInLeft 1s both 1.2s;
+      }
+      .leftButton {
+        animation: fadeInLeft 1s both 1.2s;
+      }
+      .rightButton {
+        animation: fadeInLeft 1s both 1.2s;
+      }
+    }
+  }
+}
+</style>
+<style lang="scss" scoped>
 .doc-content {
   &-hd {
     height: 52px;
@@ -229,10 +254,8 @@ export default defineComponent({
       height: 44px;
       line-height: 22px;
       font-size: 14px;
-      text-overflow: -o-ellipsis-lastline;
       overflow: hidden;
       text-overflow: ellipsis;
-      display: -webkit-box;
       -webkit-line-clamp: 2;
       line-clamp: 2;
       -webkit-box-orient: vertical;
@@ -254,7 +277,6 @@ export default defineComponent({
       font-family: PingFangSC-Medium;
       font-size: 42px;
       color: rgba(255, 255, 255, 1);
-      animation: fadeInLeft 1s both;
     }
     .content-smile {
       margin-top: 10px;
@@ -263,14 +285,12 @@ export default defineComponent({
       background: url(https://storage.360buyimg.com/imgtools/09516173b9-9b32b9d0-3864-11eb-9a56-0104487ad2b0.png)
         no-repeat;
       background-size: cover;
-      animation: fadeInLeft 1s both 0.5s;
     }
     .content-subTitle {
       margin-top: 12px;
       font-family: PingFangSC-Regular;
       font-size: 20px;
       color: rgba(255, 255, 255, 1);
-      animation: fadeInLeft 1s both 0.5s;
     }
     .content-button {
       position: relative;
@@ -278,7 +298,6 @@ export default defineComponent({
       margin-top: 40px;
       iframe {
         align-self: center;
-        animation: fadeInLeft 1s both 1.2s;
       }
       .leftButton {
         display: flex;
@@ -291,7 +310,6 @@ export default defineComponent({
         font-family: PingFangSC-Regular;
         width: 150px;
         height: 40px;
-        animation: fadeInLeft 1s both 1.2s;
         background: linear-gradient(
           135deg,
           rgba(250, 25, 44, 1) 0%,
@@ -318,7 +336,6 @@ export default defineComponent({
         border-radius: 29px;
         background-color: #000000;
         cursor: pointer;
-        animation: fadeInLeft 1s both 1.2s;
         &:hover {
           .qrcodepart {
             display: block;
@@ -344,7 +361,7 @@ export default defineComponent({
           width: 160px;
           height: 160px;
           margin: 0 auto;
-          background: url(https://img12.360buyimg.com/imagetools/jfs/t1/124892/31/7144/6065/5f0d9fe4Ef020d678/cae78d015aa5897c.png)
+          background: url(https://img12.360buyimg.com/imagetools/jfs/t1/162421/39/13392/9425/6052ea60E592310a9/264bdff23ef5fe95.png)
             no-repeat;
           background-size: cover;
         }

+ 24 - 19
src/sites/doc/views/Resource.vue

@@ -3,7 +3,7 @@
   <div class="resource-main">
     <div class="resource-main-content">
       <h3 class="sub-title">资源</h3>
-      <p class="sub-desc">这里汇总了NutUI 相关的所有的资源</p>
+      <p class="sub-desc">这里汇总了 NutUI 相关的所有的资源</p>
     </div>
   </div>
   <!-- 设计资源 -->
@@ -11,7 +11,7 @@
     <div class="resource-block" v-if="articleList.length === 0">
       <h4 class="sub-title">设计资源</h4>
       <p class="sub-desc"
-        >这里提供 NUT UI
+        >这里提供 NUTUI
         相关设计资源和设计工具的下载,更多设计资源正在整理和完善中。你可以在这个<span
           class="sub-red"
           >地址</span
@@ -25,9 +25,10 @@
     <div class="resource-block" v-else>
       <h4 class="sub-title">设计资源</h4>
       <p class="sub-desc"
-        >想要了解 Nut Ui 设计体系背后的故事?如何才能更好的应用 Ant
-        Design?你可以查阅下述我们为你精挑细选的文章。也欢迎关注Nut Ui
-        官方专栏,这里常有关于Nut Ui 设计体系下相关话题内容的最新分享和讨论.</p
+        >想要了解 NutUI
+        设计体系背后的故事?如何才能更好的应用?你可以查阅下述我们为你精挑细选的文章。也欢迎关注
+        NutUI 官方专栏,这里常有关于 NutUI
+        设计体系下相关话题内容的最新分享和讨论。</p
       >
       <div class="tab-box">
         <div class="tab-hd">
@@ -71,20 +72,16 @@
     <!-- 社区文章 -->
     <div class="resource-block">
       <h4 class="sub-title">社区文章</h4>
-      <p class="sub-desc"
-        >想要了解 Nut Ui 设计体系背后的故事?如何才能更好的应用 Nut
-        Ui?你可以查阅下述我们为你精挑细选的文章。也欢迎关注Nut Ui
-        官方专栏,这里常有关于Nut Ui 设计体系下相关话题内容的最新分享和讨论.</p
-      >
+      <p class="sub-desc"></p>
       <ul class="article-box">
-        <li class="article-item">
-          <a class="article-link">
-            NutUI - 由京东出品,适合快速开发商城类h5、小程序的移动端 UI 组件库
-          </a>
-        </li>
-        <li class="article-item">
-          <a class="article-link">
-            NutUI - 由京东出品,适合快速开发商城类h5、小程序的移动端 UI 组件库
+        <li
+          class="article-item"
+          v-for="item in communityArticleList"
+          :key="item.id"
+          @click="toLink(item.id)"
+        >
+          <a class="article-link" :href="item.link">
+            {{ item.title }} - {{ item.user_name }}
           </a>
         </li>
       </ul>
@@ -111,8 +108,10 @@ export default defineComponent({
   },
   setup() {
     const articleList: any[] = [];
+    const communityArticleList: any[] = [];
     const data = reactive({
       articleList,
+      communityArticleList,
       tabData: [
         {
           title: '全部文章'
@@ -138,7 +137,13 @@ export default defineComponent({
       const articleApiService = new ArticleApiService();
       articleApiService.getArticle().then(res => {
         if (res?.state == 0) {
-          data.articleList = res.value.data.arrays as any[];
+          (res.value.data.arrays as any[]).forEach(element => {
+            if (element.type == 1) {
+              data.articleList.push(element);
+            } else {
+              data.communityArticleList.push(element);
+            }
+          });
         }
       });
     });

+ 5 - 1
src/sites/service/ArticleApiService.ts

@@ -11,7 +11,11 @@ export class ArticleApiService {
    * @memberof ArticleApiService
    */
   getArticle() {
-    return this.httpClient.request('/article/list', 'get', {});
+    return this.httpClient.request(
+      '/article/list?pageIndex=1&pageSize=100',
+      'get',
+      {}
+    );
   }
   /**
    * 保存用户访问数据