返回

从零开发一个宝宝账单(五):uni-ui表单页面

前端

今天我们来实现记一笔功能,首页是数据展示,没有数据如何展示,所以先实现添加数据的功能。 这是我们最初的页面,如你所见,空空如也,现在我们往里面加入几个选择框与输入框。

认识uni-ui

uni-app框架中,提供了丰富的组件库,其中就有表单组件库uni-ui。uni-ui是一个基于Vue.js的UI框架,提供了丰富的表单组件,可以快速构建表单页面。

uni-ui表单组件

uni-ui表单组件包含了各种常见的表单元素,如输入框、选择框、开关、日期选择器等。这些组件都提供了丰富的属性和事件,可以满足各种表单需求。

创建表单页面

在pages目录下,新建一个form.vue页面,作为表单页面。在form.vue页面中,引入uni-ui组件库,并使用uni-ui表单组件构建表单页面。

<template>
  <view>
    <uni-form @submit="onSubmit">
      <uni-form-item label="类型" required>
        <uni-radio-group v-model="type">
          <uni-radio label="收入" value="income" />
          <uni-radio label="支出" value="expense" />
        </uni-radio-group>
      </uni-form-item>
      <uni-form-item label="金额" required>
        <uni-input v-model="amount" type="number" />
      </uni-form-item>
      <uni-form-item label="日期" required>
        <uni-datetime-picker v-model="date" type="date" />
      </uni-form-item>
      <uni-form-item label="备注">
        <uni-textarea v-model="remark" />
      </uni-form-item>
      <uni-button type="primary" size="large" @click="onSubmit">记一笔</uni-button>
    </uni-form>
  </view>
</template>

<script>
import { useStore } from '@/store'

export default {
  setup() {
    const store = useStore()

    const type = ref('income')
    const amount = ref(0)
    const date = ref(new Date().toISOString().slice(0, 10))
    const remark = ref('')

    const onSubmit = () => {
      store.commit('addRecord', {
        type: type.value,
        amount: amount.value,
        date: date.value,
        remark: remark.value
      })
      uni.navigateBack()
    }

    return {
      type,
      amount,
      date,
      remark,
      onSubmit
    }
  }
}
</script>

表单提交

在表单页面中,我们使用@submit事件监听表单提交。当用户点击记一笔按钮时,触发onSubmit方法。在onSubmit方法中,我们调用store中的addRecord方法,将表单数据提交到store中。提交成功后,我们使用uni.navigateBack()方法返回上一页。

总结

通过使用uni-ui表单组件,我们快速构建了一个表单页面。uni-ui表单组件提供了丰富的属性和事件,可以满足各种表单需求。通过使用uni-ui表单组件,我们可以快速构建出功能强大的表单页面。