diff --git a/example/app.json b/example/app.json index ccd15ebe..614fd513 100644 --- a/example/app.json +++ b/example/app.json @@ -75,6 +75,7 @@ "van-cell-demo": "./dist/cell/demo/index", "van-cell-group": "./dist/cell-group/index", "van-checkbox": "./dist/checkbox/index", + "van-checkbox-demo": "./dist/checkbox/demo/index", "van-checkbox-group": "./dist/checkbox-group/index", "van-col": "./dist/col/index", "van-count-down": "./dist/count-down/index", diff --git a/example/pages/checkbox/index.js b/example/pages/checkbox/index.js index e70fc539..cc11dfda 100644 --- a/example/pages/checkbox/index.js +++ b/example/pages/checkbox/index.js @@ -1,32 +1,3 @@ import Page from '../../common/page'; -Page({ - data: { - checkbox1: true, - checkbox2: true, - checkbox3: true, - checkboxLabel: true, - checkboxSize: true, - checkboxShape: true, - list: ['a', 'b', 'c'], - result: ['a', 'b'], - result2: [], - result3: [], - result4: [], - activeIcon: 'https://img.yzcdn.cn/vant/user-active.png', - inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png', - }, - - onChange(event) { - const { key } = event.currentTarget.dataset; - this.setData({ [key]: event.detail }); - }, - - toggle(event) { - const { index } = event.currentTarget.dataset; - const checkbox = this.selectComponent(`.checkboxes-${index}`); - checkbox.toggle(); - }, - - noop() {}, -}); +Page(); diff --git a/example/pages/checkbox/index.wxml b/example/pages/checkbox/index.wxml index 62921230..9a3e22d4 100644 --- a/example/pages/checkbox/index.wxml +++ b/example/pages/checkbox/index.wxml @@ -1,150 +1 @@ -<demo-block title="基本用法"> - <van-checkbox - value="{{ checkbox1 }}" - data-key="checkbox1" - custom-class="demo-checkbox" - bind:change="onChange" - > - 复选框 - </van-checkbox> -</demo-block> - -<demo-block title="禁用状态"> - <van-checkbox - disabled - value="{{ false }}" - custom-class="demo-checkbox" - > - 复选框 - </van-checkbox> - <van-checkbox - disabled - value="{{ true }}" - custom-class="demo-checkbox" - > - 复选框 - </van-checkbox> -</demo-block> - -<demo-block title="自定义形状"> - <van-checkbox - value="{{ checkboxShape }}" - data-key="checkboxShape" - shape="square" - custom-class="demo-checkbox" - bind:change="onChange" - > - 复选框 - </van-checkbox> -</demo-block> - -<demo-block title="自定义颜色"> - <van-checkbox - value="{{ checkbox2 }}" - data-key="checkbox2" - checked-color="#07c160" - custom-class="demo-checkbox" - bind:change="onChange" - > - 复选框 - </van-checkbox> -</demo-block> - -<demo-block title="自定义大小"> - <van-checkbox - icon-size="25px" - value="{{ checkboxSize }}" - data-key="checkboxSize" - custom-class="demo-checkbox" - bind:change="onChange" - > - 复选框 - </van-checkbox> -</demo-block> - -<demo-block title="自定义图标"> - <van-checkbox - use-icon-slot - value="{{ checkbox3 }}" - data-key="checkbox3" - custom-class="demo-checkbox" - bind:change="onChange" - > - 自定义图标 - <image - slot="icon" - class="icon" - mode="widthFix" - src="{{ checkbox3 ? activeIcon : inactiveIcon }}" - /> - </van-checkbox> -</demo-block> - -<demo-block title="禁用文本点击"> - <van-checkbox - label-disabled - value="{{ checkboxLabel }}" - data-key="checkboxLabel" - custom-class="demo-checkbox" - bind:change="onChange" - > - 复选框 - </van-checkbox> -</demo-block> - -<demo-block title="复选框组"> - <van-checkbox-group value="{{ result }}" data-key="result" bind:change="onChange"> - <van-checkbox - wx:for="{{ list }}" - wx:key="*this" - name="{{ item }}" - custom-class="demo-checkbox" - > - 复选框 {{ item }} - </van-checkbox> - </van-checkbox-group> -</demo-block> - -<demo-block title="水平排列"> - <van-checkbox-group direction="horizontal" value="{{ result4 }}" data-key="result4" bind:change="onChange"> - <van-checkbox - wx:for="{{ list }}" - wx:key="*this" - name="{{ item }}" - custom-class="demo-checkbox" - > - 复选框 {{ item }} - </van-checkbox> - </van-checkbox-group> -</demo-block> - -<demo-block title="限制最大可选数"> - <van-checkbox-group value="{{ result2 }}" data-key="result2" max="2" bind:change="onChange"> - <van-checkbox - wx:for="{{ list }}" - wx:key="*this" - name="{{ item }}" - custom-class="demo-checkbox" - > - 复选框 {{ item }} - </van-checkbox> - </van-checkbox-group> -</demo-block> - -<demo-block title="搭配单元格组件使用"> - <van-checkbox-group value="{{ result3 }}" data-key="result3" bind:change="onChange"> - <van-cell-group > - <van-cell - wx:for="{{ list }}" - wx:key="*this" - title="复选框 {{ item }}" - value-class="value-class" - clickable - data-index="{{ index }}" - bind:click="toggle" - > - <van-checkbox catch:tap="noop" class="checkboxes-{{ index }}" name="{{ item }}" /> - </van-cell> - </van-cell-group> - </van-checkbox-group> -</demo-block> +<van-checkbox-demo /> diff --git a/packages/checkbox/demo/index.json b/packages/checkbox/demo/index.json new file mode 100644 index 00000000..3fdf853c --- /dev/null +++ b/packages/checkbox/demo/index.json @@ -0,0 +1,10 @@ +{ + "component": true, + "usingComponents": { + "van-button": "../../button/index", + "van-cell": "../../cell/index", + "van-checkbox": "../../checkbox/index", + "van-checkbox-group": "../../checkbox-group/index", + "demo-block": "../../../example/components/demo-block/index" + } +} diff --git a/example/pages/checkbox/index.wxss b/packages/checkbox/demo/index.less similarity index 100% rename from example/pages/checkbox/index.wxss rename to packages/checkbox/demo/index.less diff --git a/packages/checkbox/demo/index.ts b/packages/checkbox/demo/index.ts new file mode 100644 index 00000000..547eda7c --- /dev/null +++ b/packages/checkbox/demo/index.ts @@ -0,0 +1,34 @@ +import { VantComponent } from '../../common/component'; + +VantComponent({ + data: { + checkbox1: true, + checkbox2: true, + checkbox3: true, + checkboxLabel: true, + checkboxSize: true, + checkboxShape: true, + list: ['a', 'b', 'c'], + result: ['a', 'b'], + result2: [], + result3: [], + result4: [], + activeIcon: 'https://img.yzcdn.cn/vant/user-active.png', + inactiveIcon: 'https://img.yzcdn.cn/vant/user-inactive.png', + }, + + methods: { + onChange(event) { + const { key } = event.currentTarget.dataset; + this.setData({ [key]: event.detail }); + }, + + toggle(event) { + const { index } = event.currentTarget.dataset; + const checkbox = this.selectComponent(`.checkboxes-${index}`); + checkbox.toggle(); + }, + + noop() {}, + }, +}); diff --git a/packages/checkbox/demo/index.wxml b/packages/checkbox/demo/index.wxml new file mode 100644 index 00000000..62921230 --- /dev/null +++ b/packages/checkbox/demo/index.wxml @@ -0,0 +1,150 @@ +<demo-block title="基本用法"> + <van-checkbox + value="{{ checkbox1 }}" + data-key="checkbox1" + custom-class="demo-checkbox" + bind:change="onChange" + > + 复选框 + </van-checkbox> +</demo-block> + +<demo-block title="禁用状态"> + <van-checkbox + disabled + value="{{ false }}" + custom-class="demo-checkbox" + > + 复选框 + </van-checkbox> + <van-checkbox + disabled + value="{{ true }}" + custom-class="demo-checkbox" + > + 复选框 + </van-checkbox> +</demo-block> + +<demo-block title="自定义形状"> + <van-checkbox + value="{{ checkboxShape }}" + data-key="checkboxShape" + shape="square" + custom-class="demo-checkbox" + bind:change="onChange" + > + 复选框 + </van-checkbox> +</demo-block> + +<demo-block title="自定义颜色"> + <van-checkbox + value="{{ checkbox2 }}" + data-key="checkbox2" + checked-color="#07c160" + custom-class="demo-checkbox" + bind:change="onChange" + > + 复选框 + </van-checkbox> +</demo-block> + +<demo-block title="自定义大小"> + <van-checkbox + icon-size="25px" + value="{{ checkboxSize }}" + data-key="checkboxSize" + custom-class="demo-checkbox" + bind:change="onChange" + > + 复选框 + </van-checkbox> +</demo-block> + +<demo-block title="自定义图标"> + <van-checkbox + use-icon-slot + value="{{ checkbox3 }}" + data-key="checkbox3" + custom-class="demo-checkbox" + bind:change="onChange" + > + 自定义图标 + <image + slot="icon" + class="icon" + mode="widthFix" + src="{{ checkbox3 ? activeIcon : inactiveIcon }}" + /> + </van-checkbox> +</demo-block> + +<demo-block title="禁用文本点击"> + <van-checkbox + label-disabled + value="{{ checkboxLabel }}" + data-key="checkboxLabel" + custom-class="demo-checkbox" + bind:change="onChange" + > + 复选框 + </van-checkbox> +</demo-block> + +<demo-block title="复选框组"> + <van-checkbox-group value="{{ result }}" data-key="result" bind:change="onChange"> + <van-checkbox + wx:for="{{ list }}" + wx:key="*this" + name="{{ item }}" + custom-class="demo-checkbox" + > + 复选框 {{ item }} + </van-checkbox> + </van-checkbox-group> +</demo-block> + +<demo-block title="水平排列"> + <van-checkbox-group direction="horizontal" value="{{ result4 }}" data-key="result4" bind:change="onChange"> + <van-checkbox + wx:for="{{ list }}" + wx:key="*this" + name="{{ item }}" + custom-class="demo-checkbox" + > + 复选框 {{ item }} + </van-checkbox> + </van-checkbox-group> +</demo-block> + +<demo-block title="限制最大可选数"> + <van-checkbox-group value="{{ result2 }}" data-key="result2" max="2" bind:change="onChange"> + <van-checkbox + wx:for="{{ list }}" + wx:key="*this" + name="{{ item }}" + custom-class="demo-checkbox" + > + 复选框 {{ item }} + </van-checkbox> + </van-checkbox-group> +</demo-block> + +<demo-block title="搭配单元格组件使用"> + <van-checkbox-group value="{{ result3 }}" data-key="result3" bind:change="onChange"> + <van-cell-group > + <van-cell + wx:for="{{ list }}" + wx:key="*this" + title="复选框 {{ item }}" + value-class="value-class" + clickable + data-index="{{ index }}" + bind:click="toggle" + > + <van-checkbox catch:tap="noop" class="checkboxes-{{ index }}" name="{{ item }}" /> + </van-cell> + </van-cell-group> + </van-checkbox-group> +</demo-block> diff --git a/packages/checkbox/test/__snapshots__/demo.spec.ts.snap b/packages/checkbox/test/__snapshots__/demo.spec.ts.snap new file mode 100644 index 00000000..09e87e7a --- /dev/null +++ b/packages/checkbox/test/__snapshots__/demo.spec.ts.snap @@ -0,0 +1,875 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`should render demo and match snapshot 1`] = ` +<main> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 基本用法 + </wx-view> + <van-checkbox + customClass="demo-checkbox" + data-key="checkbox1" + bind:change="onChange" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 禁用状态 + </wx-view> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--disabled" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right van-checkbox__label--disabled" + bind:tap="onClickLabel" + > + + 复选框 + + </wx-view> + </wx-view> + </van-checkbox> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--disabled van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right van-checkbox__label--disabled" + bind:tap="onClickLabel" + > + + 复选框 + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 自定义形状 + </wx-view> + <van-checkbox + customClass="demo-checkbox" + data-key="checkboxShape" + bind:change="onChange" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--square van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 自定义颜色 + </wx-view> + <van-checkbox + customClass="demo-checkbox" + data-key="checkbox2" + bind:change="onChange" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:20px;border-color:#07c160;background-color:#07c160" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 自定义大小 + </wx-view> + <van-checkbox + customClass="demo-checkbox" + data-key="checkboxSize" + bind:change="onChange" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:25px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 自定义图标 + </wx-view> + <van-checkbox + customClass="demo-checkbox" + data-key="checkbox3" + bind:change="onChange" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <wx-image + class="icon" + mode="widthFix" + slot="icon" + src="https://img.yzcdn.cn/vant/user-active.png" + /> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 自定义图标 + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 禁用文本点击 + </wx-view> + <van-checkbox + customClass="demo-checkbox" + data-key="checkboxLabel" + bind:change="onChange" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 复选框组 + </wx-view> + <van-checkbox-group + data-key="result" + bind:change="onChange" + > + <wx-view + class="van-checkbox-group" + > + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 a + + </wx-view> + </wx-view> + </van-checkbox> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round van-checkbox__icon--checked" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 b + + </wx-view> + </wx-view> + </van-checkbox> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 c + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </van-checkbox-group> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 水平排列 + </wx-view> + <van-checkbox-group + data-key="result4" + bind:change="onChange" + > + <wx-view + class="van-checkbox-group van-checkbox-group--horizontal" + > + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox van-checkbox--horizontal custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 a + + </wx-view> + </wx-view> + </van-checkbox> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox van-checkbox--horizontal custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 b + + </wx-view> + </wx-view> + </van-checkbox> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox van-checkbox--horizontal custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 c + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </van-checkbox-group> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 限制最大可选数 + </wx-view> + <van-checkbox-group + data-key="result2" + bind:change="onChange" + > + <wx-view + class="van-checkbox-group" + > + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 a + + </wx-view> + </wx-view> + </van-checkbox> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 b + + </wx-view> + </wx-view> + </van-checkbox> + <van-checkbox + customClass="demo-checkbox" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + > + + 复选框 c + + </wx-view> + </wx-view> + </van-checkbox> + </wx-view> + </van-checkbox-group> + </wx-view> + </demo-block> + <demo-block> + <wx-view + class="custom-class demo-block van-clearfix " + > + <wx-view + class="demo-block__title" + > + 搭配单元格组件使用 + </wx-view> + <van-checkbox-group + data-key="result3" + bind:change="onChange" + > + <wx-view + class="van-checkbox-group" + > + <van-cell-group> + <van-cell + data-index="{{0}}" + valueClass="value-class" + bind:click="toggle" + > + <wx-view + class="custom-class van-cell van-cell--clickable" + hoverClass="van-cell--hover hover-class" + hoverStayTime="70" + style="" + bind:tap="onClick" + > + <wx-view + class="van-cell__title title-class" + style="" + > + 复选框 a + </wx-view> + <wx-view + class="van-cell__value value-class" + > + <van-checkbox + class="checkboxes-0" + catch:tap="noop" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + /> + </wx-view> + </van-checkbox> + </wx-view> + </wx-view> + </van-cell> + <van-cell + data-index="{{1}}" + valueClass="value-class" + bind:click="toggle" + > + <wx-view + class="custom-class van-cell van-cell--clickable" + hoverClass="van-cell--hover hover-class" + hoverStayTime="70" + style="" + bind:tap="onClick" + > + <wx-view + class="van-cell__title title-class" + style="" + > + 复选框 b + </wx-view> + <wx-view + class="van-cell__value value-class" + > + <van-checkbox + class="checkboxes-1" + catch:tap="noop" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + /> + </wx-view> + </van-checkbox> + </wx-view> + </wx-view> + </van-cell> + <van-cell + data-index="{{2}}" + valueClass="value-class" + bind:click="toggle" + > + <wx-view + class="custom-class van-cell van-cell--clickable" + hoverClass="van-cell--hover hover-class" + hoverStayTime="70" + style="" + bind:tap="onClick" + > + <wx-view + class="van-cell__title title-class" + style="" + > + 复选框 c + </wx-view> + <wx-view + class="van-cell__value value-class" + > + <van-checkbox + class="checkboxes-2" + catch:tap="noop" + > + <wx-view + class="van-checkbox custom-class" + > + <wx-view + class="van-checkbox__icon-wrap" + bind:tap="toggle" + > + <van-icon + class="van-checkbox__icon van-checkbox__icon--round" + customClass="icon-class" + style="font-size:20px" + > + <wx-view + class="custom-class van-icon van-icon-success" + style="font-size:0.8em;line-height: 1.25em;" + bind:tap="onClick" + /> + </van-icon> + </wx-view> + <wx-view + class="label-class van-checkbox__label van-checkbox__label--right" + bind:tap="onClickLabel" + /> + </wx-view> + </van-checkbox> + </wx-view> + </wx-view> + </van-cell> + </van-cell-group> + </wx-view> + </van-checkbox-group> + </wx-view> + </demo-block> +</main> +`; diff --git a/packages/checkbox/test/demo.spec.ts b/packages/checkbox/test/demo.spec.ts new file mode 100644 index 00000000..4c3798cb --- /dev/null +++ b/packages/checkbox/test/demo.spec.ts @@ -0,0 +1,11 @@ +import path from 'path'; +import simulate from 'miniprogram-simulate'; + +test('should render demo and match snapshot', () => { + const id = simulate.load(path.resolve(__dirname, '../demo/index'), { + rootPath: path.resolve(__dirname, '../../'), + }); + const comp = simulate.render(id); + comp.attach(document.createElement('parent-wrapper')); + expect(comp.toJSON()).toMatchSnapshot(); +});