自学内容网 自学内容网

Vue.js组件(5):表单回显

1 文本框回显

        此组件是简单的,只需要使用v-model绑定props的值即可:

1.1 父组件

// 子组件标签与传入的数据
<project-statistics :form="project"></project-statistics>

const project = ref({
  id : 1,
  name : '测试项目',
})

1.2 子组件

        定义props接收父组件传递的参数,并使用v-model与表单进行绑定。

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="项目ID">
        <el-input v-model="form.id" disabled></el-input>
      </el-form-item>
      <el-form-item label="项目名称">
        <el-input v-model="form.name"></el-input>
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.name }}
</template>

<script setup>
defineProps({
  form: {
    id: Number,
    name: String,
  }
})
</script>

1.3 测试

        数据可以回显到表单中并且可以根据表单的内容进行变动。 

2 单选按钮回显

        也相对简单,只需要绑定对应的value即可。

2.1 父组件

<project-statistics :form="project"></project-statistics>

const project = ref({
  id : 1,
  name : '测试项目',
  status: 1,
})

2.2 子组件

        页面显示的内容为label属性的值,value为绑定的值。

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="状态">
        <el-radio-group v-model="form.status">
          <el-radio label="启用" :value="1"></el-radio>
          <el-radio label="禁用" :value="0"></el-radio>
        </el-radio-group>
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.status }}
</template>

<script setup>
defineProps({
  form: {
    status: Number
  }
})
</script>

2.3 测试

3 多选框回显

        因为是多选注意传入的参数为数组类型。

3.1 父组件

<project-statistics :form="project"></project-statistics>

const project = ref({
  label: [1, 3, 4]
})

3.2 子组件

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="标签">
        <el-checkbox-group v-model="form.label">
          <el-checkbox-button label="标签1" :value="1"></el-checkbox-button>
          <el-checkbox-button label="标签2" :value="2"></el-checkbox-button>
          <el-checkbox-button label="标签3" :value="3"></el-checkbox-button>
          <el-checkbox-button label="标签4" :value="4"></el-checkbox-button>
          <el-checkbox-button label="标签5" :value="5"></el-checkbox-button>
        </el-checkbox-group>
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.label }}
</template>

<script setup>
defineProps({
  form: {
    label: Array
  }
})
</script>

3.3 测试

4 选择器回显

4.1 单选

        比较简单,传入一个值即可。

4.1.1 父组件

<project-statistics :form="project"></project-statistics>

const project = ref({
  audit: 3
})

4.1.2 子组件

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="审核状态">
        <el-select v-model="form.audit" placeholder="请选择">
          <el-option label="待审核" :value="1"></el-option>
          <el-option label="审核通过" :value="2"></el-option>
          <el-option label="审核不通过" :value="3"></el-option>
          <el-option label="已删除" :value="4"></el-option>
        </el-select>
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.audit }}
</template>

<script setup>
defineProps({
  form: {
    audit: Number
  }
})
</script>

4.1.3 测试

4.2 多选

4.2.1 父组件

<project-statistics :form="project"></project-statistics>

const project = ref({
  label: [2,3,5]
})

4.2.2 子组件

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="标签">
        <el-select v-model="form.label" placeholder="请选择" multiple>
          <el-option label="标签1" :value="1"></el-option>
          <el-option label="标签2" :value="2"></el-option>
          <el-option label="标签3" :value="3"></el-option>
          <el-option label="标签4" :value="4"></el-option>
          <el-option label="标签5" :value="5"></el-option>
        </el-select>
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.label }}
</template>

<script setup>
defineProps({
  form: {
    label: Array
  }
})
</script>

4.2.3 测试

4.3 级联

        传入的参数为数组结构,对应级联的value值。

4.3.1 父组件

<project-statistics :form="project"></project-statistics>

const project = ref({
  area: [1,101,10101]
})

4.3.2 子组件

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="标签">
        <el-cascader
            v-model="form.area"
            :options="areaList"
            :props="areaProps"
        />
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.area }}
</template>

<script setup>
import {ref} from "vue";

defineProps({
  form: {
    area: Array
  }
})

// 级联数据
const areaList = ref([{
  name: '北京市',
  code: 1,
  children: [
    {
      name: '北京市',
      code: 101,
      children: [
        {
          name: '丰台区',
          code: 10101,
          children: []
        }
      ]
    }
  ]
},
  {
    name: '天津市',
    code: 2,
    children: [
      {
        name: '天津市',
        code: 201,
        children: [
          {
            name: '虹桥区',
            code: 20101,
            children: []
          }
        ]
      }
    ]
  }
])

// 属性映射
const areaProps = ref({
  value: 'code',
  label: 'name',
  children: 'children'
});
</script>

4.3.3 测试

5 日期时间

5.1 日期

5.1.1 父组件

<project-statistics :form="project"></project-statistics>

const project = ref({
  date: '2024-01-01',
})

5.1.2 子组件

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="日期">
        <el-date-picker
            v-model="form.date"
            type="date"
            placeholder="Pick a day"
            :size="'default'"
            value-format="YYYY-MM-DD"
        />
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.date }}
</template>

<script setup>

defineProps({
  form: {
    date: String
  }
})

5.1.3 测试

5.2 日期时间

5.2.1 父组件

        传入规范格式的日期时间即可回显。

<project-statistics :form="project"></project-statistics>

const project = ref({
  date: '2024-01-01T12:00:00',
})

5.2.2 子组件

<template>
  <div>
    <el-form :model="form" label-width="80px">
      <el-form-item label="日期">
        <el-date-picker
            v-model="form.date"
            type="datetime"
            placeholder="Pick a day"
            :size="'default'"
            value-format="YYYY-MM-DDTHH:mm:ss"
        />
      </el-form-item>
    </el-form>
  </div>
  回显的数据:{{ form.date }}
</template>

<script setup>
defineProps({
  form: {
    date: String
  }
})
</script>

5.2.3 测试


原文地址:https://blog.csdn.net/qq_40298351/article/details/144050993

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!