From 23b866659d5e4bb61be38bccffec1727583bebba Mon Sep 17 00:00:00 2001 From: Tevin <tingquanren@163.com> Date: Mon, 19 Apr 2021 18:03:15 +0800 Subject: [PATCH] 增加数值输入组件 --- forms/inputNumber/CInputNumber.vue | 73 ++++++++++++++++++++++++++++++++++++ forms/textarea/CTextArea.vue | 1 forms/inputNumber/cInputNumber.scss | 30 +++++++++++++++ forms/inputNumber/index.js | 10 +++++ 4 files changed, 114 insertions(+), 0 deletions(-) diff --git a/forms/inputNumber/CInputNumber.vue b/forms/inputNumber/CInputNumber.vue new file mode 100644 index 0000000..afd2ef5 --- /dev/null +++ b/forms/inputNumber/CInputNumber.vue @@ -0,0 +1,73 @@ +/** + * CInputNumber + * @author Tevin + */ + +<template> + <view class="c-input-number"> + <AtInput + ref="input" + :name="itemRes.name" + :title="itemRes.label" + :required="itemRes.required" + :disabled="itemRes.disabled" + :error="itemRes.error" + /> + <AtInputNumber + ref="numbers" + :min="range[0]" + :max="range[1]" + :step="step" + :width="120" + :value="itemRes.formData[itemRes.name]" + :onChange="evt=>itemRes.onChange(evt)" + /> + </view> +</template> + +<script> +import Taro from '@tarojs/taro'; +import { $ } from '@tarojs/extend'; +import { AtInput, AtInputNumber } from 'taro-ui-vue'; +import './cInputNumber.scss'; + +export default { + name: 'CInputNumber', + components: { + AtInput, + AtInputNumber, + }, + props: { + // 表单数据资源(表单组件内部机制专用) + itemRes: Object, + // 占位提示 + placeholder: String, + // 取值范围 + range: { + type: Array, + default: [0, 100], + }, + // 步长 + step: { + type: Number, + default: 1, + }, + }, + data() { + return {}; + }, + computed: {}, + methods: {}, + mounted() { + if (process.env.TARO_ENV === 'h5') { + $(this.$refs.input.$el) + .find('.at-input__input') + .prepend(this.$refs.textarea.$el); + } else if (process.env.TARO_ENV === 'weapp') { + $(this.$refs.input.$el) + .find('.at-input__container') + .append(this.$refs.numbers.$el); + } + }, +}; +</script> \ No newline at end of file diff --git a/forms/inputNumber/cInputNumber.scss b/forms/inputNumber/cInputNumber.scss new file mode 100644 index 0000000..c2bdf7a --- /dev/null +++ b/forms/inputNumber/cInputNumber.scss @@ -0,0 +1,30 @@ +/** + * input-number + * @author Tevin + */ + +@import "../../common/sassMixin"; + + +.c-input-number { + .at-input__container { + .weui-input, + .at-input__input { + display: none; + } + } + .at-input__icon { + display: none; + } + .at-input { + padding: 16px 0; + } + .at-input-number { + .at-input-number__btn { + padding: 16px 16px; + } + .at-input-number__input { + font-size: 30px; + } + } +} \ No newline at end of file diff --git a/forms/inputNumber/index.js b/forms/inputNumber/index.js new file mode 100644 index 0000000..ef40bcf --- /dev/null +++ b/forms/inputNumber/index.js @@ -0,0 +1,10 @@ +/** + * CInputNumber + * @author Tevin + */ + +import CInputNumber from '@components/forms/inputNumber/CInputNumber.vue'; + +export { + CInputNumber, +} \ No newline at end of file diff --git a/forms/textarea/CTextArea.vue b/forms/textarea/CTextArea.vue index a4fac34..adb8c65 100644 --- a/forms/textarea/CTextArea.vue +++ b/forms/textarea/CTextArea.vue @@ -10,6 +10,7 @@ :name="itemRes.name" :title="itemRes.label" :required="itemRes.required" + :disabled="itemRes.disabled" :error="itemRes.error" /> <textarea -- Gitblit v1.9.1