Browse Source

Merge branch 'v3-dev' of https://github.com/jdf2e/nutui into v3-dev

lilinsen 5 years ago
parent
commit
4699208064

+ 2 - 2
README-zh_CN.md

@@ -61,9 +61,9 @@ https://nutui.jd.com
 
 
 NutUI 已经投入了我们的生产环境中使用,业界也在广泛地使用。
 NutUI 已经投入了我们的生产环境中使用,业界也在广泛地使用。
 
 
-<img src="https://raw.githubusercontent.com/richard1015/nutui-user-cases/master/user-cases.jpg" />
+<img src="https://raw.githubusercontent.com/jdf2e/nutui-user-cases/master/user-cases.jpg" />
 
 
-[征集更多优秀案例](https://github.com/richard1015/nutui-user-cases)
+[征集更多优秀案例](https://github.com/jdf2e/nutui-user-cases)
 
 
 ## 开源协议
 ## 开源协议
 
 

+ 2 - 2
README.md

@@ -61,9 +61,9 @@ Documents:[2.X](https://nutui.jd.com/default.html#/start) | [1.X](https://nutu
 
 
 NutUI has been put into use in our production environment and is widely used in developing countries at the same time.
 NutUI has been put into use in our production environment and is widely used in developing countries at the same time.
 
 
-<img src="https://raw.githubusercontent.com/richard1015/nutui-user-cases/master/user-cases.jpg" />
+<img src="https://raw.githubusercontent.com/jdf2e/nutui-user-cases/master/user-cases.jpg" />
 
 
-[Call for more excellent cases](https://github.com/richard1015/nutui-user-cases)
+[Call for more excellent cases](https://github.com/jdf2e/nutui-user-cases)
 
 
 ## Open Source LICENSE
 ## Open Source LICENSE
 
 

+ 3 - 3
package.json

@@ -17,7 +17,7 @@
     "build:site": "nutui-cli build-site",
     "build:site": "nutui-cli build-site",
     "clean": "nutui-cli clean",
     "clean": "nutui-cli clean",
     "add": "nutui-cli add",
     "add": "nutui-cli add",
-    "test": "cross-env NODE_ENV=test nyc mocha-webpack --webpack-config node_modules/@nutui/cli/dist_cli/webpack/test.config.js  --require node_modules/@nutui/cli/dist_cli/test/setup.js src/packages/avatar/__test__/**.spec.js",
+    "test": "cross-env NODE_ENV=test nyc mocha-webpack --webpack-config node_modules/@nutui/cli/dist_cli/webpack/test.config.js  --require node_modules/@nutui/cli/dist_cli/test/setup.js src/packages/sidenavbar/__test__/sidenavbar.spec.js",
     "coveralls": "cat ./coverage/lcov.info | coveralls",
     "coveralls": "cat ./coverage/lcov.info | coveralls",
     "test:watch": "npm run test --watch",
     "test:watch": "npm run test --watch",
     "prettier:fix": "prettier --write src/**/*.{js,vue,scss}",
     "prettier:fix": "prettier --write src/**/*.{js,vue,scss}",
@@ -66,7 +66,6 @@
     "@babel/plugin-transform-runtime": "^7.9.6",
     "@babel/plugin-transform-runtime": "^7.9.6",
     "@commitlint/cli": "^8.0.0",
     "@commitlint/cli": "^8.0.0",
     "@commitlint/config-conventional": "^8.0.0",
     "@commitlint/config-conventional": "^8.0.0",
-    "@vue/composition-api": "^0.5.0",
     "babel-plugin-istanbul": "^6.0.0",
     "babel-plugin-istanbul": "^6.0.0",
     "gsap": "^3.2.6",
     "gsap": "^3.2.6",
     "vue-lazyload": "^1.3.3",
     "vue-lazyload": "^1.3.3",
@@ -78,13 +77,14 @@
   "devDependencies": {
   "devDependencies": {
     "@babel/plugin-syntax-dynamic-import": "^7.8.3",
     "@babel/plugin-syntax-dynamic-import": "^7.8.3",
     "@babel/plugin-transform-object-assign": "^7.8.3",
     "@babel/plugin-transform-object-assign": "^7.8.3",
-    "@nutui/cli": "^0.2.0",
+    "@nutui/cli": "^0.2.1",
     "@typescript-eslint/eslint-plugin": "^2.16.0",
     "@typescript-eslint/eslint-plugin": "^2.16.0",
     "@typescript-eslint/parser": "^2.16.0",
     "@typescript-eslint/parser": "^2.16.0",
     "babel-plugin-transform-object-rest-spread": "^6.26.0",
     "babel-plugin-transform-object-rest-spread": "^6.26.0",
     "eslint-plugin-import": "^2.20.0",
     "eslint-plugin-import": "^2.20.0",
     "eslint-plugin-vue": "^6.1.2",
     "eslint-plugin-vue": "^6.1.2",
     "husky": "^3.0.0",
     "husky": "^3.0.0",
+    "mutation-observer": "^1.0.3",
     "prettier": "^2.0.5",
     "prettier": "^2.0.5",
     "stylelint-config-standard": "^19.0.0"
     "stylelint-config-standard": "^19.0.0"
   },
   },

+ 66 - 64
src/packages/sidenavbar/__test__/sidenavbar.spec.js

@@ -1,3 +1,5 @@
+import MutationObserver from 'mutation-observer'
+global.MutationObserver = MutationObserver 
 import { shallowMount, Mount } from '@vue/test-utils';
 import { shallowMount, Mount } from '@vue/test-utils';
 import Vue from 'vue';
 import Vue from 'vue';
 import SideNavBar from '../sidenavbar.vue';
 import SideNavBar from '../sidenavbar.vue';
@@ -5,79 +7,79 @@ import SubSideNavBar from '../../subsidenavbar/subsidenavbar.vue';
 import SideNavBarItem from '../../sidenavbaritem/sidenavbaritem.vue';
 import SideNavBarItem from '../../sidenavbaritem/sidenavbaritem.vue';
 
 
 describe('SideNavBar.vue', () => {
 describe('SideNavBar.vue', () => {
-    // const wrapper = shallowMount(SideNavBar, {
-    //     slots: {
-    //         default: [SubSideNavBar, SubSideNavBar]
-    //     },
-    //     propsData: {
-    //         offset: 30
-    //     }
-    // });
+    const wrapper = shallowMount(SideNavBar, {
+        slots: {
+            default: [SubSideNavBar, SubSideNavBar]
+        },
+        propsData: {
+            offset: 30
+        }
+    });
 
 
-    // const sub = shallowMount(SubSideNavBar, {
-    //     slots: {
-    //         default: [SideNavBarItem, SideNavBarItem, SideNavBarItem]
-    //     },
-    //     propsData: {
-    //         title: '菜单测试一',
-    //         ikey: 12,
-    //         open: false
-    //     }
-    // })
+    const sub = shallowMount(SubSideNavBar, {
+        slots: {
+            default: [SideNavBarItem, SideNavBarItem, SideNavBarItem]
+        },
+        propsData: {
+            title: '菜单测试一',
+            ikey: 12,
+            open: false
+        }
+    })
 
 
-    // const item = shallowMount(SideNavBarItem, {
-    //     propsData: {
-    //         title: '子菜单测试一',
-    //         ikey: 24
-    //     }
-    // })
+    const item = shallowMount(SideNavBarItem, {
+        propsData: {
+            title: '子菜单测试一',
+            ikey: 24
+        }
+    })
 
 
-    // it('sidenavbar slots', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(wrapper.findAll(".nut-subsidenavbar").length).toBe(2)
-    //     })
-    // });
+    it('sidenavbar slots', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll(".nut-subsidenavbar").length).toBe(2)
+        })
+    });
 
 
-    // it('sidenavbar offset', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(wrapper.findAll(".item-title").at(0).element.style.paddingLeft).toBe('30px')
-    //     })
-    // });
+    it('sidenavbar offset', () => {
+        return Vue.nextTick().then(function () {
+            expect(wrapper.findAll(".item-title").at(0).element.style.paddingLeft).toBe('30px')
+        })
+    });
 
 
-    // it('subsidenavbar slots', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(sub.findAll(".nut-sidenavbaritem").length).toBe(3)
-    //     })
-    // });
+    it('subsidenavbar slots', () => {
+        return Vue.nextTick().then(function () {
+            expect(sub.findAll(".nut-sidenavbaritem").length).toBe(3)
+        })
+    });
 
 
-    // it('subsidenavbar title', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(sub.findAll(".sidenavbar-title").at(0).text()).toBe('菜单测试一')
-    //     })
-    // });
+    it('subsidenavbar title', () => {
+        return Vue.nextTick().then(function () {
+            expect(sub.findAll(".sidenavbar-title").at(0).text()).toBe('菜单测试一')
+        })
+    });
 
 
-    // it('subsidenavbar ikey', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(sub.attributes().ikey).toBe('12')
-    //     })
-    // });
+    it('subsidenavbar ikey', () => {
+        return Vue.nextTick().then(function () {
+            expect(sub.attributes().ikey).toBe('12')
+        })
+    });
 
 
-    // it('subsidenavbar open', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(sub.findAll(".sub-sidenavbar-list").at(0).element.style.height).toBe('0px')
-    //     })
-    // });
+    it('subsidenavbar open', () => {
+        return Vue.nextTick().then(function () {
+            expect(sub.findAll(".sub-sidenavbar-list").at(0).element.style.height).toBe('0px')
+        })
+    });
 
 
-    // it('sidenavbaritem title', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(item.findAll(".item-title").at(0).text()).toBe('子菜单测试一')
-    //     })
-    // });
+    it('sidenavbaritem title', () => {
+        return Vue.nextTick().then(function () {
+            expect(item.findAll(".item-title").at(0).text()).toBe('子菜单测试一')
+        })
+    });
 
 
-    // it('sidenavbaritem ikey', () => {
-    //     return Vue.nextTick().then(function () {
-    //         expect(item.attributes().ikey).toBe('24')
-    //     })
-    // });
+    it('sidenavbaritem ikey', () => {
+        return Vue.nextTick().then(function () {
+            expect(item.attributes().ikey).toBe('24')
+        })
+    });
 
 
 });
 });

+ 15 - 15
src/packages/sidenavbar/demo.vue

@@ -7,7 +7,14 @@
           <label>展示一级</label>
           <label>展示一级</label>
         </span>
         </span>
       </nut-cell>
       </nut-cell>
-      <nut-popup position="right" v-model="show3" :style="{ width, height }">
+      <nut-cell :is-link="true" :show-icon="true" @click.native="showNav4">
+        <span slot="title">
+          <label>展示icon</label>
+        </span>
+      </nut-cell>
+    </div>
+    <div>
+        <nut-popup position="right" v-model="show3" :style="{ width, height }">
         <nut-sidenavbar>
         <nut-sidenavbar>
           <nut-subsidenavbar title="菜单内容一" ikey="1" :open="false"></nut-subsidenavbar>
           <nut-subsidenavbar title="菜单内容一" ikey="1" :open="false"></nut-subsidenavbar>
           <nut-subsidenavbar title="菜单内容二" ikey="2"></nut-subsidenavbar>
           <nut-subsidenavbar title="菜单内容二" ikey="2"></nut-subsidenavbar>
@@ -20,13 +27,6 @@
           </nut-subsidenavbar>
           </nut-subsidenavbar>
         </nut-sidenavbar>
         </nut-sidenavbar>
       </nut-popup>
       </nut-popup>
-    </div>
-    <div>
-      <nut-cell :is-link="true" :show-icon="true" @click.native="showNav4">
-        <span slot="title">
-          <label>展示icon</label>
-        </span>
-      </nut-cell>
       <nut-popup position="right" v-model="show4" :style="{ width, height }">
       <nut-popup position="right" v-model="show4" :style="{ width, height }">
         <nut-sidenavbar>
         <nut-sidenavbar>
           <nut-subsidenavbar title="菜单内容一" ikey="1" :open="false">
           <nut-subsidenavbar title="菜单内容一" ikey="1" :open="false">
@@ -54,6 +54,13 @@
           <label>右侧</label>
           <label>右侧</label>
         </span>
         </span>
       </nut-cell>
       </nut-cell>
+      <nut-cell :is-link="true" :show-icon="true" @click.native="showNav5">
+        <span slot="title">
+          <label>异步</label>
+        </span>
+      </nut-cell>
+    </div>
+    <div>
       <nut-popup position="right" v-model="show1" :style="{ width, height }">
       <nut-popup position="right" v-model="show1" :style="{ width, height }">
         <nut-sidenavbar :show="show1">
         <nut-sidenavbar :show="show1">
           <nut-subsidenavbar title="图像理解" ikey="3" :open="false">
           <nut-subsidenavbar title="图像理解" ikey="3" :open="false">
@@ -66,13 +73,6 @@
           </nut-subsidenavbar>
           </nut-subsidenavbar>
         </nut-sidenavbar>
         </nut-sidenavbar>
       </nut-popup>
       </nut-popup>
-    </div>
-    <div>
-      <nut-cell :is-link="true" :show-icon="true" @click.native="showNav5">
-        <span slot="title">
-          <label>异步</label>
-        </span>
-      </nut-cell>
       <nut-popup position="right" v-model="show5" :style="{ width, height }">
       <nut-popup position="right" v-model="show5" :style="{ width, height }">
         <nut-sidenavbar :show="show5">
         <nut-sidenavbar :show="show5">
           <nut-sidenavbaritem ikey="1" title="人脸识别" @click="handleClick('人脸识别')"></nut-sidenavbaritem>
           <nut-sidenavbaritem ikey="1" title="人脸识别" @click="handleClick('人脸识别')"></nut-sidenavbaritem>

+ 0 - 1
src/packages/sidenavbar/sidenavbar.vue

@@ -53,7 +53,6 @@ export default {
     setPaddingLeft(nodeList, level = 1) {
     setPaddingLeft(nodeList, level = 1) {
       for (let i = 0; i < nodeList.length; i++) {
       for (let i = 0; i < nodeList.length; i++) {
         let item = nodeList[i];
         let item = nodeList[i];
-        console.log(this.offset)
         item.children[0].style.paddingLeft = this.offset * level + 'px';
         item.children[0].style.paddingLeft = this.offset * level + 'px';
         if (!item.className.includes('nut-sidenavbaritem')) {
         if (!item.className.includes('nut-sidenavbaritem')) {
           this.setPaddingLeft(Array.from(item.children[1].children), ++this.count);
           this.setPaddingLeft(Array.from(item.children[1].children), ++this.count);

+ 1 - 1
test/setup.js

@@ -1,3 +1,3 @@
-require('jsdom-global')();
+require('jsdom-global')()
 window.Date = Date;
 window.Date = Date;
 global.expect = require('expect');
 global.expect = require('expect');