ElementPlus实现页面,上部分是表单,下部分是表格

效果

在这里插入图片描述

<template>
  <el-dialog v-model="produceDialogFormVisible" draggable custom-class="dialog-title" :title="title" :close-on-click-modal="false">
    <el-form label-width="120px">
      <el-row :gutter="40">
        <el-col :span="12">
          <el-form-item label="需求单编号" >
            <el-input v-model="orderNo"/>
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item label="预计交付时间">
            <el-date-picker
              v-model="estimatedCompletionTime"
              type="date"
              placeholder="Pick a day"
              style="width: 200px"
            />
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <el-table
      ref="table"
      v-loading="listLoading"
      :data="list"
      fit
      highlight-current-row
      header-cell-class-name="header-cell"
    >
      <el-table-column type="selection" width="55" />
      <el-table-column type="index" width="50" />
      <el-table-column label="仓库" min-width="80px">
        <template #default="{row}">
          <span>{{ row.warehouseName }}</span>
        </template>
      </el-table-column>
      <el-table-column label="产品名称" min-width="150px">
        <template #default="{row}">
          {{ getName(row.property) }}
        </template>
      </el-table-column>
      <el-table-column label="数量" min-width="200px">
        <template #default="{row}">
          <el-input-number v-model="row.number" :step="row.unitMinimum === '0' ? 0.01 : row.unitMinimum" step-strictly :min="0" :max="row.inventoryLimit" @change="handleChange"/>
          <span style="line-height: 32px;margin-left: 5px">{{ row.unitName? row.unitName:'' }}</span>
        </template>
      </el-table-column>
      <el-table-column label="单价" min-width="80px">
        <template #default="{row}">
          <span>{{ row.univalent }}</span>
        </template>
      </el-table-column>
      <el-table-column label="小计" min-width="80px">
        <template #default="{row}">
          <span>{{ row.total }}</span>
        </template>
      </el-table-column>
      <el-table-column label="操作" align="center" min-width="230" class-name="small-padding fixed-width">
        <template #default="{row}">
          <el-button size="small" plain icon="Delete" @click="handleDelete(row)">
            删除
          </el-button>
        </template>
      </el-table-column>
    </el-table>
    <template #footer>
      <el-button @click="produceDialogFormVisible = false">
        取消
      </el-button>
      <el-button v-permission="['biz:warningconfiguration:WarningConfiguration:update']" type="primary" :loading="loading" @click="createData()">
        确定
      </el-button>
    </template>
    <product-range-select ref="productRangeSelect" v-model="temp.productText" :range-option="rangeOption" />
  </el-dialog>
</template>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ElementPlus 是一套基于 Vue.js 的桌面级组件库,包含了丰富的 UI 组件以及一些高级功能,如树状数据处理、表单验证等。 当你在 ElementPlus 中使用树形表格时,通常需要对表格展开和折叠的操作添加自定义动画效果,比如渐入渐出样式。这个效果可以通过设置组件内部的方法及 CSS 类实现。 ### 树形表格基本结构: 在 ElementPlus 中,`el-tree-table` 组件用于展示树形表格内容。每行节点可以设置 `expandedKeys` 属性以控制是否展开或折叠。 ### 添加渐入渐出效果: 为了给展开和折叠操作添加渐入渐出效果,你需要修改 `.el-tree-node__content` 类的 CSS 样式,并利用 JavaScript 或者 Vue 的生命周期钩子来动态切换这些样式。 #### 示例步骤: 1. **修改 CSS**: 创建一个新的 CSS 类名,例如 `.expand-fade-in-out` 来表示渐入渐出效果。 ```css .expand-fade-in-out { transition: all 0.5s ease; } ``` 这里使用了 `transition` 属性来指定过渡效果,`all` 表示所有属性都会进行过渡,`0.5s` 设置了持续时间,而 `ease` 则表示缓动效果。 2. **JavaScript 控制样式**: 在应用初始化或数据变动时,通过改变特定节点元素的类名来应用渐入渐出效果。 - 初始化状态(加载数据前,所有节点默认展开,不需要渐入效果): ```javascript this.$nextTick(() => { // 默认情况下,所有的树节点都处于打开状态,这里可以根据实际需求决定是否启用渐入效果 const openNodes = document.querySelectorAll('.el-tree-node__content'); openNodes.forEach(node => { node.classList.add('expand-fade-in-out'); // 应用渐入效果 }); }); ``` - 数据变化时更新样式(适用于动态更新场景): ```javascript updatedData.forEach((item) => { if (item.expanded) { // 如果节点需要展开 item.node.classList.remove('expand-fade-in-out'); // 移除渐入效果 } else { // 如果节点需要折叠 item.node.classList.add('expand-fade-in-out'); // 应用渐入效果 } }); ``` 以上就是在 ElementPlus 树形表格实现展开渐入渐出样式的步骤。请注意,在实际项目中,根据具体情况调整 CSS 和 JS 逻辑。 --- ## 相关问题: 1. 如何优化渐入渐出效果以提高用户体验? 2. 是否存在其他替代方案以减少渲染性能的影响? 3. 怎样在保持动画效果的同时保证页面响应速度?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值