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
}
相关推荐
我是若尘2 分钟前
大数据量渲染优化:分批渲染技术详解
前端
ruanCat2 分钟前
pnpm 踩坑实录:用 public-hoist-pattern 拯救被严格隔离坑掉的依赖
前端·npm·node.js
yuki_uix3 分钟前
渲染优化三件套:React.memo、useMemo、useCallback 的使用边界
前端·react.js
徐同保3 分钟前
如何为 Node.js 多层子进程启动调试(以 OpenClaw 为例)
前端
滕青山3 分钟前
基于 pdf-lib 的图片转PDF工具核心JS实现
前端·javascript·vue.js
yuki_uix3 分钟前
前端异步编程三板斧:从面试题到底层思维
前端·javascript
会联营的陆逊4 分钟前
Vite + Vue3 构建优化:CDN 外部化方案
前端·vue.js
毛骗导演5 分钟前
对话历史越来越长,OpenClaw 是怎么「压缩」掉的?——深读 Compaction 机制源码
前端·架构
广州华水科技6 分钟前
单北斗GNSS变形监测如何在大坝安全中发挥关键作用?
前端
外派叙利亚7 分钟前
uniapp 颜色卡条拖动
前端·javascript·uni-app