vue3-ts- element-plus新增组件-过滤

新增组件-所有值为空时过滤

html 复制代码
 <el-form-item label="家庭成员">
        <div
          class="username-box"
          v-for="(item, index) in form.namelist"
          :key="index"
        >
          <div>
            姓名:
            <el-input v-model="item.name" placeholder="姓名"></el-input>
          </div>
          <div>
            性别:
            <el-select
              v-model="item.ger"
              class="m-2"
              placeholder="性别"
              size="large"
            >
              <el-option
                v-for="item in opget"
                :key="item.value"
                :label="item.label"
                :value="item.value"
              />
            </el-select>
          </div>
          <div>
            年龄:
            <el-input v-model="item.age" placeholder="年龄"></el-input>
          </div>
          <div>
            <el-button type="warning" @click.prevent="removeDomain(item)">
              删除
            </el-button>
          </div>
        </div>
        <div>
          <el-button
            type="success"
            :icon="Plus"
            circle
            @click="addDomain()"
          ></el-button>
        </div>
</el-form-item>
css 复制代码
<style lang="less" scoped>
.username-box {
  display: flex;
  align-items: flex-end;
  div {
    margin-right: 10px;
    .el-input {
      width: 200px;
    }
  }
}
</style>
TypeScript 复制代码
<script setup lang="ts">
import {  reactive  } from 'vue'
import { Plus, Check } from '@element-plus/icons-vue'
javascript 复制代码
const form = reactive({
  namelist: [
    {
      name: '',
      age: '',
      ger: '',
    },
  ],
})
javascript 复制代码
const opget = [
  { value: '0', label: '女' },
  { value: '1', label: '男' },
]
javascript 复制代码
const addDomain = () => {
  console.log('添加成员')
  form.namelist.push({ name: '', age: '', ger: '' })
}
const removeDomain = (item) => {
  const index = form.namelist.indexOf(item)
  if (index !== -1) {
    form.namelist.splice(index, 1)
  }
}

提交:

javascript 复制代码
function handleOk() {
  const filteredList = form.namelist.filter((item) => {
    const values = Object.values(item)
    return !values.every((value) => value === '') //判断所有值为空
  })
  form.namelist = filteredList
}
相关推荐
想吃火锅10054 分钟前
【前端手撕】promise.all
前端
lichenyang4536 分钟前
动态加载 vs 延迟加载:为什么 demo 里「延迟」看起来没效果?
前端
cypking19 分钟前
从零搭建 Claude Code + Chrome MCP 浏览器自动化:前端 E2E 端到端测试完整教程(包含增量测试)
前端·chrome·自动化
Levi_J35 分钟前
Vue2 升级 Vue3 项目实战
前端
前端拷贝猿36 分钟前
扫码领券功能需求分析
前端
前端拷贝猿39 分钟前
设备活动弹窗功能需求分析
前端
飞天狗11144 分钟前
零基础JavaWeb入门——第五课第一小节:九大内置对象 · 第1个:request(请求对象)
java·开发语言·前端·后端·servlet
a15108416931 小时前
记一次大模型探索
java·服务器·前端
石山代码1 小时前
变量与解构
开发语言·前端·javascript
888CC++1 小时前
箭头函数(ES6)
前端·javascript·es6