2 files added
4 files modified
| | |
| | | :error="itemRes.error" |
| | | :cursorSpacing="0" |
| | | :value="value" |
| | | :onChange="evt => hanldeChange(evt)" |
| | | :onChange="evt => handleChange(evt)" |
| | | > |
| | | <slot v-if="!unit" /> |
| | | <text |
| | |
| | | }, |
| | | }, |
| | | methods: { |
| | | hanldeChange(evt) { |
| | | handleChange(evt) { |
| | | // 去除首尾空格,小程序中还可以粘贴换行符进来 |
| | | const changeValue = ((evt || '') + '') |
| | | .replace(/^\s+|\s+$/g, '') |
| | |
| | | :value="filterRes[item.name]" |
| | | :onChange="evt=>handleItemChange(item.name, evt)" |
| | | /> |
| | | <CFilterInput |
| | | v-if="item.type==='input'" |
| | | type="item" |
| | | :label="item.label" |
| | | :value="filterRes[item.name]" |
| | | :onChange="evt=>handleItemChange(item.name, evt)" |
| | | /> |
| | | </view> |
| | | </scroll-view> |
| | | <view class="c-filter-drawer-btn"> |
| | |
| | | import CFilterSelect from './CFilterSelect'; |
| | | import CFilterDateRange from './CFilterDateRange'; |
| | | import CFilterSwitchRadio from './CFilterSwitchRadio'; |
| | | import CFilterInput from './CFilterInput'; |
| | | import './cFilter.scss'; |
| | | |
| | | export default { |
| | |
| | | CFilterSelect, |
| | | CFilterDateRange, |
| | | CFilterSwitchRadio, |
| | | CFilterInput, |
| | | CDrawer, |
| | | }, |
| | | props: { |
New file |
| | |
| | | /** |
| | | * CFilterInput - 筛选项目,单选 |
| | | * @author Tevin |
| | | */ |
| | | |
| | | <template> |
| | | <view |
| | | class="c-filter-input" |
| | | :class="'type-'+type" |
| | | > |
| | | <view class="label">{{label}}</view> |
| | | <AtInput |
| | | type="text" |
| | | :placeholder="'请输入' + label" |
| | | :value="value" |
| | | :onChange="evt => handleChange(evt)" |
| | | /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import Taro from '@tarojs/taro'; |
| | | import { AtInput } from 'taro-ui-vue'; |
| | | import './cFilterInput.scss'; |
| | | |
| | | export default { |
| | | name: 'CFilterInput', |
| | | components: { |
| | | AtInput, |
| | | }, |
| | | props: { |
| | | type: String, |
| | | label: String, |
| | | value: String, |
| | | onChange: Function, |
| | | }, |
| | | data() { |
| | | return {}; |
| | | }, |
| | | methods: { |
| | | handleChange(value) { |
| | | if (value) { |
| | | this.onChange(value); |
| | | } else { |
| | | this.onChange(undefined); |
| | | } |
| | | }, |
| | | }, |
| | | mounted() {}, |
| | | }; |
| | | </script> |
| | |
| | | import './cFilterSwitchRadio.scss'; |
| | | |
| | | export default { |
| | | name: 'CFilterRadio', |
| | | name: 'CFilterSwitchRadio', |
| | | components: { |
| | | CSwitchRadio, |
| | | }, |
| | |
| | | width: 12px; |
| | | height: 12px; |
| | | content: " "; |
| | | background-color: #36a0e7; |
| | | background-color: $colorDanger; |
| | | border-radius: 50%; |
| | | } |
| | | } |
New file |
| | |
| | | /** |
| | | * CFilterInput |
| | | * @author Tevin |
| | | */ |
| | | |
| | | @import "../../common/sassMixin"; |
| | | |
| | | .c-filter-input { |
| | | .label { |
| | | line-height: 40px; |
| | | } |
| | | .at-input { |
| | | height: 90px; |
| | | padding: 0; |
| | | margin: 0; |
| | | background-color: transparent; |
| | | &::after { |
| | | display: none; |
| | | } |
| | | input { |
| | | height: 90px; |
| | | line-height: 90px; |
| | | } |
| | | } |
| | | } |