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 已经投入了我们的生产环境中使用,业界也在广泛地使用。
 
-<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.
 
-<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
 

+ 3 - 3
package.json

@@ -17,7 +17,7 @@
     "build:site": "nutui-cli build-site",
     "clean": "nutui-cli clean",
     "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",
     "test:watch": "npm run test --watch",
     "prettier:fix": "prettier --write src/**/*.{js,vue,scss}",
@@ -66,7 +66,6 @@
     "@babel/plugin-transform-runtime": "^7.9.6",
     "@commitlint/cli": "^8.0.0",
     "@commitlint/config-conventional": "^8.0.0",
-    "@vue/composition-api": "^0.5.0",
     "babel-plugin-istanbul": "^6.0.0",
     "gsap": "^3.2.6",
     "vue-lazyload": "^1.3.3",
@@ -78,13 +77,14 @@
   "devDependencies": {
     "@babel/plugin-syntax-dynamic-import": "^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/parser": "^2.16.0",
     "babel-plugin-transform-object-rest-spread": "^6.26.0",
     "eslint-plugin-import": "^2.20.0",
     "eslint-plugin-vue": "^6.1.2",
     "husky": "^3.0.0",
+    "mutation-observer": "^1.0.3",
     "prettier": "^2.0.5",
     "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 Vue from 'vue';
 import SideNavBar from '../sidenavbar.vue';
@@ -5,79 +7,79 @@ import SubSideNavBar from '../../subsidenavbar/subsidenavbar.vue';
 import SideNavBarItem from '../../sidenavbaritem/sidenavbaritem.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>
         </span>
       </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-subsidenavbar title="菜单内容一" ikey="1" :open="false"></nut-subsidenavbar>
           <nut-subsidenavbar title="菜单内容二" ikey="2"></nut-subsidenavbar>
@@ -20,13 +27,6 @@
           </nut-subsidenavbar>
         </nut-sidenavbar>
       </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-sidenavbar>
           <nut-subsidenavbar title="菜单内容一" ikey="1" :open="false">
@@ -54,6 +54,13 @@
           <label>右侧</label>
         </span>
       </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-sidenavbar :show="show1">
           <nut-subsidenavbar title="图像理解" ikey="3" :open="false">
@@ -66,13 +73,6 @@
           </nut-subsidenavbar>
         </nut-sidenavbar>
       </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-sidenavbar :show="show5">
           <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) {
       for (let i = 0; i < nodeList.length; i++) {
         let item = nodeList[i];
-        console.log(this.offset)
         item.children[0].style.paddingLeft = this.offset * level + 'px';
         if (!item.className.includes('nut-sidenavbaritem')) {
           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;
 global.expect = require('expect');