From e3426d0fa18fc2305f799a35eb0848c17e24b452 Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Wed, 21 Apr 2021 17:35:49 +0800 Subject: [PATCH] 表单显示细节优化 --- forms/datePicker/CDateRangeAction.vue | 11 ++++- forms/datePicker/CDateTimeAction.vue | 7 ++- forms/form/cForm.scss | 3 + forms/numberStep/CNumberStep.vue | 29 ++++++++++---- forms/datePicker/CDatePicker.vue | 4 ++ forms/numberValve/CNumberValve.vue | 20 +++++++++- forms/numberValve/cNumberValve.scss | 5 ++ forms/numberStep/cNumberStep.scss | 26 ++++++++++-- 8 files changed, 85 insertions(+), 20 deletions(-) diff --git a/forms/datePicker/CDatePicker.vue b/forms/datePicker/CDatePicker.vue index 8521004..d6b58fc 100644 --- a/forms/datePicker/CDatePicker.vue +++ b/forms/datePicker/CDatePicker.vue @@ -9,6 +9,7 @@ v-if="mode==='dateRange'" :value="itemRes.formData[itemRes.name]" :onChange="evt=>handleChange(evt)" + :placeholder="placeholder" > <AtInput ref="input" @@ -25,6 +26,7 @@ v-else-if="mode==='dateTime'" :value="itemRes.formData[itemRes.name]" :onChange="evt=>handleChange(evt)" + :placeholder="placeholder" > <AtInput ref="input" @@ -63,6 +65,8 @@ type: String, default: 'date', }, + // 占位提示 + placeholder: String, }, data() { return {}; diff --git a/forms/datePicker/CDateRangeAction.vue b/forms/datePicker/CDateRangeAction.vue index eb1d9c4..65c19d6 100644 --- a/forms/datePicker/CDateRangeAction.vue +++ b/forms/datePicker/CDateRangeAction.vue @@ -22,7 +22,10 @@ :show="drawerShow" :onClose="evt => drawerShow=false" > - <view class="title">请选择日期</view> + <view class="title"> + <view v-if="placeholder">{{placeholder}}</view> + <view v-else>请选择日期</view> + </view> <view class="date"> <picker mode='date' @@ -76,8 +79,12 @@ AtButton, }, props: { - value: null, + // 项值 + value: String, + // 变化回调 onChange: Function, + // 占位提示 + placeholder: String, }, data() { return { diff --git a/forms/datePicker/CDateTimeAction.vue b/forms/datePicker/CDateTimeAction.vue index 4418f01..9ac2ad2 100644 --- a/forms/datePicker/CDateTimeAction.vue +++ b/forms/datePicker/CDateTimeAction.vue @@ -23,7 +23,8 @@ :onClose="evt => drawerShow=false" > <view class="title"> - <view>请选择日期时间</view> + <view v-if="placeholder">{{placeholder}}</view> + <view v-else>请选择日期与时间</view> <AtButton size="small" type="primary" @@ -85,9 +86,11 @@ }, props: { // 项值 - value: null, + value: String, // 变化回调 onChange: Function, + // 占位提示 + placeholder: String, }, data() { return { diff --git a/forms/form/cForm.scss b/forms/form/cForm.scss index 5c9f348..fa48852 100644 --- a/forms/form/cForm.scss +++ b/forms/form/cForm.scss @@ -8,6 +8,9 @@ .c-form { width: 100%; .c-form-item { + .at-input__title { + margin-right: 20px; + } .at-input__title--required { position: relative; &::before { diff --git a/forms/numberStep/CNumberStep.vue b/forms/numberStep/CNumberStep.vue index edf4536..324af11 100644 --- a/forms/numberStep/CNumberStep.vue +++ b/forms/numberStep/CNumberStep.vue @@ -13,15 +13,21 @@ :disabled="itemRes.disabled" :error="itemRes.error" /> - <AtInputNumber + <view + class="c-number-step-step" + :class="unit?'on-unit':''" ref="number" - :min="range[0]" - :max="range[1]" - :step="step" - :width="120" - :value="itemRes.formData[itemRes.name]" - :onChange="evt=>itemRes.onChange(evt)" - /> + > + <AtInputNumber + :min="range[0]" + :max="range[1]" + :step="step" + :width="120" + :value="itemRes.formData[itemRes.name]" + :onChange="evt=>itemRes.onChange(evt)" + /> + <view class="c-number-step-unit">{{unit}}</view> + </view> </view> </template> @@ -52,6 +58,11 @@ type: Number, default: 1, }, + // 数值单位 + unit: { + type: String, + default: '', + }, }, data() { return {}; @@ -66,7 +77,7 @@ } else if (process.env.TARO_ENV === 'weapp') { $(this.$refs.input.$el) .find('.at-input__container') - .append(this.$refs.number.$el); + .append(this.$refs.number); } }, }; diff --git a/forms/numberStep/cNumberStep.scss b/forms/numberStep/cNumberStep.scss index 7308861..f66a649 100644 --- a/forms/numberStep/cNumberStep.scss +++ b/forms/numberStep/cNumberStep.scss @@ -18,12 +18,28 @@ .at-input { padding: 16px 0; } - .at-input-number { - .at-input-number__btn { - padding: 16px 16px; + .c-number-step-step { + .at-input-number { + .at-input-number__btn { + padding: 16px 16px; + width: 30px; + height: 30px; + } + .at-input-number__input { + font-size: 30px; + } } - .at-input-number__input { - font-size: 30px; + &.on-unit { + position: relative; + .at-input-number__input { + padding-right: 40px; + } + .c-number-step-unit { + @include position(absolute, 2px 186px n n); + width: 40px; + line-height: 62px; + color: #999; + } } } } \ No newline at end of file diff --git a/forms/numberValve/CNumberValve.vue b/forms/numberValve/CNumberValve.vue index 394d8c4..98e7af5 100644 --- a/forms/numberValve/CNumberValve.vue +++ b/forms/numberValve/CNumberValve.vue @@ -16,12 +16,15 @@ :required="itemRes.required" :disabled="itemRes.disabled" :error="itemRes.error" - :value="itemRes.formData[itemRes.name]" + :value="itemRes.formData[itemRes.name] + unit" + :placeholder="placeholder" > <view class="at-icon at-icon-chevron-right"></view> </AtInput> </view> <AtFloatLayout + :class="placeholder?'on-title':''" + :title="placeholder" :isOpened="opened" :onClose="evt => handleClose()" > @@ -93,6 +96,11 @@ type: Number, default: 1, }, + // 数值单位(仅显示) + unit: { + type: String, + default: '', + }, }, data() { return { @@ -125,9 +133,17 @@ const targetValue = clientX - this.rect.left; const distance = Math.min(Math.max(targetValue, 0), this.rect.width); const sliderLeft = Math.floor((distance / this.rect.width) * 100); - const sliderValue = + // 实际值 + let sliderValue = Math.round((sliderLeft / 100) * (this.range[1] - this.range[0])) + this.range[0]; + if (this.range[0] < sliderValue && sliderValue < this.range[1]) { + sliderValue -= sliderValue % this.step; + } + // 范围限制 + sliderValue = Math.max(sliderValue, this.range[0]); + sliderValue = Math.min(sliderValue, this.range[1]); + // 设置 this.sliderLeft = sliderLeft; this.current = sliderValue; this.itemRes.onChange(sliderValue); diff --git a/forms/numberValve/cNumberValve.scss b/forms/numberValve/cNumberValve.scss index 7fc9ff5..c4c2c71 100644 --- a/forms/numberValve/cNumberValve.scss +++ b/forms/numberValve/cNumberValve.scss @@ -36,6 +36,11 @@ max-height: 100%; min-height: auto; } + &.on-title { + .at-float-layout__container { + height: 530px; + } + } .layout-body { height: 100%; min-height: auto; -- Gitblit v1.9.1