mirror of
https://github.com/youzan/vant.git
synced 2025-10-18 01:17:15 +00:00
[Doc] optimzie router & remove unused code (#640)
This commit is contained in:
@@ -1,22 +1,6 @@
|
||||
<template>
|
||||
<van-badge-group>
|
||||
<van-badge title="热销榜" info="8" @click="onItemClick"></van-badge>
|
||||
<van-badge title="手握寿司" info="199" @click="onItemClick"></van-badge>
|
||||
<van-badge title="热销榜" info="8" />
|
||||
<van-badge title="手握寿司" info="199" />
|
||||
</van-badge-group>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Badge from 'packages/badge';
|
||||
import BadgeGroup from 'packages/badge-group';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'van-badge': Badge,
|
||||
'van-badge-group': BadgeGroup
|
||||
},
|
||||
|
||||
methods: {
|
||||
onItemClick() {}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@@ -1,19 +1,11 @@
|
||||
<template>
|
||||
<van-checkbox-group v-model="result" :max="max">
|
||||
<van-checkbox v-for="(item, index) in list" :key="index" :name="item" :disabled="index === 2">复选框{{item}}</van-checkbox>
|
||||
<van-checkbox v-for="(item, index) in list" :key="index" :name="item" :disabled="index === 2">复选框{{ item }}</van-checkbox>
|
||||
</van-checkbox-group>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Checkbox from 'packages/checkbox';
|
||||
import CheckboxGroup from 'packages/checkbox-group';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'van-checkbox': Checkbox,
|
||||
'van-checkbox-group': CheckboxGroup
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
list: [
|
||||
|
@@ -1,18 +1,16 @@
|
||||
<template>
|
||||
<van-field :onIconClick="onIconClick" @blur="$emit('blur')">
|
||||
<van-field @click-icon="onIconClick" @blur="$emit('blur')">
|
||||
<div slot="icon">icon</div>
|
||||
</van-field>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Field from 'packages/field';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[Field.name]: Field
|
||||
},
|
||||
|
||||
props: ['onIconClick']
|
||||
props: {
|
||||
onIconClick: {
|
||||
type: Function,
|
||||
default: () => {}
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@@ -1,37 +1,16 @@
|
||||
<template>
|
||||
<van-goods-action>
|
||||
<van-goods-action-mini-btn icon="chat" @click="onClickMiniBtn">
|
||||
<van-goods-action-mini-btn icon="chat">
|
||||
客服
|
||||
</van-goods-action-mini-btn>
|
||||
<van-goods-action-mini-btn icon="cart" url="http://www.youzan.com" @click="onClickMiniBtn">
|
||||
<van-goods-action-mini-btn icon="cart" url="http://www.youzan.com">
|
||||
购物车
|
||||
</van-goods-action-mini-btn>
|
||||
<van-goods-action-big-btn @click="onClickBigBtn">
|
||||
<van-goods-action-big-btn>
|
||||
加入购物车
|
||||
</van-goods-action-big-btn>
|
||||
<van-goods-action-big-btn @click="onClickBigBtn" primary url="http://www.youzan.com">
|
||||
<van-goods-action-big-btn primary url="http://www.youzan.com">
|
||||
立即购买
|
||||
</van-goods-action-big-btn>
|
||||
</van-goods-action>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import GoodsAction from 'packages/goods-action';
|
||||
import GoodsActionBigBtn from 'packages/goods-action-big-btn';
|
||||
import GoodsActionMiniBtn from 'packages/goods-action-mini-btn';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[GoodsAction.name]: GoodsAction,
|
||||
[GoodsActionBigBtn.name]: GoodsActionBigBtn,
|
||||
[GoodsActionMiniBtn.name]: GoodsActionMiniBtn
|
||||
},
|
||||
|
||||
methods: {
|
||||
onClickMiniBtn() {
|
||||
},
|
||||
onClickBigBtn() {
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@@ -12,15 +12,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Tab from 'packages/tab';
|
||||
import Tabs from 'packages/tabs';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'van-tab': Tab,
|
||||
'van-tabs': Tabs
|
||||
},
|
||||
|
||||
props: {
|
||||
active: [String, Number]
|
||||
}
|
||||
|
@@ -5,12 +5,12 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NoticeBar from 'packages/notice-bar';
|
||||
export default {
|
||||
components: {
|
||||
[NoticeBar.name]: NoticeBar
|
||||
},
|
||||
props: ['speed', 'text', 'mode', 'delay']
|
||||
props: {
|
||||
speed: Number,
|
||||
text: String,
|
||||
mode: String,
|
||||
delay: Number
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
|
@@ -5,15 +5,9 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import NumberKeyboard from 'packages/number-keyboard';
|
||||
|
||||
export default {
|
||||
name: 'number-keyboard-test',
|
||||
|
||||
components: {
|
||||
[NumberKeyboard.name]: NumberKeyboard
|
||||
},
|
||||
|
||||
props: ['showKeyboard']
|
||||
props: {
|
||||
showKeyboard: Boolean
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@@ -4,17 +4,9 @@
|
||||
<van-radio name="2">单选框2</van-radio>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
|
||||
|
||||
<script>
|
||||
import Radio from 'packages/radio';
|
||||
import RadioGroup from 'packages/radio-group';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'van-radio': Radio,
|
||||
'van-radio-group': RadioGroup
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
radio: '1'
|
||||
|
@@ -11,15 +11,3 @@
|
||||
</van-col>
|
||||
</van-row>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Row from 'packages/row';
|
||||
import Col from 'packages/col';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'van-row': Row,
|
||||
'van-col': Col
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@@ -8,15 +8,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Steps from 'packages/steps';
|
||||
import Step from 'packages/step';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'van-step': Step,
|
||||
'van-steps': Steps
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
active: 1
|
||||
|
@@ -2,7 +2,7 @@
|
||||
<van-tabbar v-model="active" @change="onChange">
|
||||
<van-tabbar-item icon="shop">
|
||||
<span>自定义</span>
|
||||
<img slot="icon" :src="active === 0 ? icon.active : icon.normal" />
|
||||
<img slot="icon" :src="active === 0 ? icon.active : icon.normal" >
|
||||
</van-tabbar-item>
|
||||
<van-tabbar-item icon="chat">标签</van-tabbar-item>
|
||||
<van-tabbar-item icon="chat">标签</van-tabbar-item>
|
||||
@@ -11,15 +11,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Tabbar from 'packages/tabbar';
|
||||
import TabbarItem from 'packages/tabbar-item';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[Tabbar.name]: Tabbar,
|
||||
[TabbarItem.name]: TabbarItem
|
||||
},
|
||||
|
||||
data() {
|
||||
return {
|
||||
active: 0,
|
||||
|
@@ -8,15 +8,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Tab from 'packages/tab';
|
||||
import Tabs from 'packages/tabs';
|
||||
|
||||
export default {
|
||||
components: {
|
||||
'van-tab': Tab,
|
||||
'van-tabs': Tabs
|
||||
},
|
||||
|
||||
props: {
|
||||
firstTabTitle: {
|
||||
type: String,
|
||||
|
@@ -1,28 +1,3 @@
|
||||
<script>
|
||||
import Waterfall from 'packages/waterfall';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
disabled: Boolean,
|
||||
list: Array,
|
||||
onWaterfallLower: {
|
||||
type: Function,
|
||||
default() {
|
||||
return function() {};
|
||||
}
|
||||
}
|
||||
},
|
||||
directives: {
|
||||
WaterfallLower: Waterfall('lower')
|
||||
},
|
||||
methods: {
|
||||
triggerWaterfallLower() {
|
||||
this.onWaterfallLower();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div
|
||||
v-waterfall-lower="triggerWaterfallLower"
|
||||
@@ -36,6 +11,31 @@
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Waterfall from 'packages/waterfall';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
disabled: Boolean,
|
||||
list: Array,
|
||||
onWaterfallLower: {
|
||||
type: Function,
|
||||
default() {
|
||||
return function() {};
|
||||
}
|
||||
}
|
||||
},
|
||||
directives: {
|
||||
WaterfallLower: Waterfall('lower')
|
||||
},
|
||||
methods: {
|
||||
triggerWaterfallLower() {
|
||||
this.onWaterfallLower();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.waterfall--hidden {
|
||||
overflow: scroll;
|
||||
|
@@ -1,38 +1,3 @@
|
||||
<script>
|
||||
import Waterfall from 'packages/waterfall';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
disabled: Boolean,
|
||||
list: Array,
|
||||
onWaterfallLower: {
|
||||
type: Function,
|
||||
default() {
|
||||
return function() {};
|
||||
}
|
||||
},
|
||||
onWaterfallUpper: {
|
||||
type: Function,
|
||||
default() {
|
||||
return function() {};
|
||||
}
|
||||
}
|
||||
},
|
||||
directives: {
|
||||
WaterfallLower: Waterfall('lower'),
|
||||
WaterfallUpper: Waterfall('upper')
|
||||
},
|
||||
methods: {
|
||||
triggerWaterfallLower() {
|
||||
this.onWaterfallLower();
|
||||
},
|
||||
triggerWaterfallUpper() {
|
||||
this.onWaterfallUpper();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<div
|
||||
v-waterfall-lower="triggerWaterfallLower"
|
||||
@@ -45,3 +10,38 @@
|
||||
>{{ item.id }}</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import Waterfall from 'packages/waterfall';
|
||||
|
||||
export default {
|
||||
props: {
|
||||
disabled: Boolean,
|
||||
list: Array,
|
||||
onWaterfallLower: {
|
||||
type: Function,
|
||||
default() {
|
||||
return function() {};
|
||||
}
|
||||
},
|
||||
onWaterfallUpper: {
|
||||
type: Function,
|
||||
default() {
|
||||
return function() {};
|
||||
}
|
||||
}
|
||||
},
|
||||
directives: {
|
||||
WaterfallLower: Waterfall('lower'),
|
||||
WaterfallUpper: Waterfall('upper')
|
||||
},
|
||||
methods: {
|
||||
triggerWaterfallLower() {
|
||||
this.onWaterfallLower();
|
||||
},
|
||||
triggerWaterfallUpper() {
|
||||
this.onWaterfallUpper();
|
||||
}
|
||||
}
|
||||
};
|
||||
</script>
|
||||
|
@@ -39,7 +39,6 @@ function getWebpackConfig(testFileName) {
|
||||
alias: {
|
||||
src: path.resolve(process.cwd(), 'src'),
|
||||
packages: path.resolve(process.cwd(), 'packages'),
|
||||
examples: path.resolve(process.cwd(), 'examples'),
|
||||
vue$: 'vue/dist/vue.common.js'
|
||||
}
|
||||
},
|
||||
|
@@ -1,5 +1,9 @@
|
||||
import Vue from 'vue';
|
||||
import Vant from 'packages';
|
||||
require('packages/vant-css/src/index.css');
|
||||
|
||||
Vue.use(Vant);
|
||||
|
||||
// hack for test touch event
|
||||
window.ontouchstart = {};
|
||||
|
||||
|
@@ -43,6 +43,17 @@ describe('ContactCard', () => {
|
||||
expect(wrapper.hasClass('van-contact-card')).to.be.true;
|
||||
expect(wrapper.find('.van-contact-card__text div')[0].text()).to.equal('联系人:测试姓名');
|
||||
expect(wrapper.find('.van-contact-card__text div')[1].text()).to.equal('联系电话:13000000000');
|
||||
|
||||
const spy = sinon.spy();
|
||||
wrapper.vm.$on('click', spy);
|
||||
wrapper.trigger('click');
|
||||
expect(spy.calledOnce).to.be.true;
|
||||
|
||||
wrapper.vm.editable = false;
|
||||
const spy2 = sinon.spy();
|
||||
wrapper.vm.$on('click', spy2);
|
||||
wrapper.trigger('click');
|
||||
expect(spy2.calledOnce).to.be.false;
|
||||
});
|
||||
});
|
||||
|
||||
|
@@ -121,6 +121,33 @@ describe('Field', () => {
|
||||
expect(wrapper.find('.van-field__icon').length).to.equal(1);
|
||||
});
|
||||
|
||||
it('keypress event', () => {
|
||||
wrapper = mount(Field, {
|
||||
propsData: {
|
||||
value: '',
|
||||
type: 'number'
|
||||
}
|
||||
});
|
||||
|
||||
const spy1 = sinon.spy();
|
||||
wrapper.vm.onKeypress({ keyCode: 0, preventDefault: spy1 });
|
||||
expect(spy1.calledOnce).to.be.true;
|
||||
|
||||
const spy2 = sinon.spy();
|
||||
wrapper.vm.onKeypress({ keyCode: 50, preventDefault: spy2 });
|
||||
expect(spy2.calledOnce).to.be.false;
|
||||
|
||||
const spy3 = sinon.spy();
|
||||
wrapper.vm.value = '0.1';
|
||||
wrapper.vm.onKeypress({ keyCode: 46, preventDefault: spy3 });
|
||||
expect(spy3.calledOnce).to.be.true;
|
||||
|
||||
wrapper.vm.type = 'text';
|
||||
const spy4 = sinon.spy();
|
||||
wrapper.vm.onKeypress({ keyCode: 0, preventDefault: spy4 });
|
||||
expect(spy4.calledOnce).to.be.false;
|
||||
});
|
||||
|
||||
it('create a field with icon slot', () => {
|
||||
const fn = sinon.spy();
|
||||
|
||||
|
Reference in New Issue
Block a user