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
}
相关推荐
颜渊呐几秒前
uniapp中APPwebview与网页的双向通信
前端·uni-app
10年前端老司机13 分钟前
React 受控组件和非受控组件区别和使用场景
前端·javascript·react.js
夏晚星13 分钟前
vue实现微信聊天emoji表情
前端·javascript
停止重构15 分钟前
【方案】前端UI布局的绝技,响应式布局,多端适配
前端·网页布局·响应式布局·grid布局·网页适配多端
極光未晚16 分钟前
TypeScript在前端项目中的那些事儿:不止于类型的守护者
前端·javascript·typescript
ze_juejin17 分钟前
Vue3 + Vite + Ant Design Vue + Axios + Pinia 脚手架搭建
前端·vue.js
Rrvive18 分钟前
原型与原型链到底是什么?
javascript
lichenyang45318 分钟前
React项目(移动app)
前端
用户618482402195119 分钟前
Vue-library-start,一个基于Vite的vue组件库开发模板
前端
美团技术团队31 分钟前
报名 | 美团技术沙龙第86期:多业务场景下,美团如何做性能优化
前端