hookehuyr

✨ feat: 单行文本,多行文本组件完善

<!--
* @Date: 2022-08-29 14:31:20
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-08-30 10:15:20
* @LastEditTime: 2022-08-30 10:40:16
* @FilePath: /data-table/src/components/TextField/index.vue
* @Description: 单行文本输入框
-->
......@@ -9,7 +9,7 @@
<div class="text-field-page">
<div class="label">{{ item.label }}<span v-if="item.required">&nbsp;*</span></div>
<van-field v-model="item.value" :name="item.name" :type="item.type" :placeholder="item.placeholder"
:rules="item.rules" :required="item.required" />
:rules="item.rules" :required="item.required" clearable />
</div>
</template>
......
<!--
* @Date: 2022-08-29 14:31:20
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-08-30 10:18:18
* @LastEditTime: 2022-08-30 10:40:33
* @FilePath: /data-table/src/components/TextareaField/index.vue
* @Description: 多行文本输入框
-->
......@@ -9,7 +9,7 @@
<div class="textarea-field-page">
<div class="label">{{ item.label }}<span v-if="item.required">&nbsp;*</span></div>
<van-field v-model="item.value" :name="item.name" :type="item.type" :placeholder="item.placeholder"
:rules="item.rules" :required="item.required" rows="2" autosize />
:rules="item.rules" :required="item.required" :rows="item.rows" :autosize="item.autosize" />
</div>
</template>
......
......@@ -12,6 +12,10 @@ import TextareaField from '@/components/TextareaField/index.vue'
export function createComponentType(data) {
// 判断类型和使用组件
_.each(data, (item, index) => {
// 必填项规则添加
if (item.required) {
item.rules = [{ required: true, message: item.placeholder ? item.placeholder : '必填项不能为空' }]
}
if (item.component_type === 'text') {
item.type = 'text';
item.name = item.key;
......@@ -20,6 +24,8 @@ export function createComponentType(data) {
if (item.component_type === 'textarea') {
item.type = 'textarea';
item.name = item.key;
item.rows = 2;
item.autosize = true;
item.component = TextareaField;
}
// // 单选框
......
<!--
* @Date: 2022-07-18 10:22:22
* @LastEditors: hookehuyr hookehuyr@gmail.com
* @LastEditTime: 2022-08-30 10:18:56
* @LastEditTime: 2022-08-30 10:35:45
* @FilePath: /data-table/src/views/index.vue
* @Description: 首页
-->
......@@ -33,7 +33,6 @@ onMounted(() => {
value: 'Hooke',
label: '用户名',
placeholder: '请输入用户名',
rules: [{ required: true, message: '请填写用户名' }],
component: '',
component_type: 'text',
required: true,
......