当前位置: 首页 > article >正文

VUE3给table的head添加popover筛选、时间去除时分秒、字符串替换某字符

1. VUE3给table的head添加popover筛选

<el-table
      ref="processTableRef"
      class="process-table"
      row-key="secuId"
      :data="pagingData"
      style="width: 100%"
      highlight-current-row
      :height="stockListHeight"
      :default-expand-all="isExpand"
      :expand-row-keys="expandRowKeys"
      v-if="reloadeTable"
    >
      <el-table-column type="expand">
        <template #default="props">
          <div class="table-expand" v-if="!!props.row.eventContent">
            <div class="el-form-item" v-html="formatText(props.row.eventContent)"></div>
          </div>
          <div v-else class="expand-empty"><span>暂无数据</span></div>
        </template>
      </el-table-column>
      <el-table-column label="债券代码" show-overflow-tooltip prop="secuId">
        <template #header>
          <el-popover placement="right" trigger="click">
            <el-select
              :teleported="false"
              ref="bondCodeSelection"
              multiple
              filterable
              collapse-tags
              clearable
              v-model="securityIds"
              placeholder
              @change="bondCodeVisibleChange"
              @remove-tag="bondCodeVisible = false"
            >
              <el-option v-for="item in selectIdData" :key="item.value" :value="item.value" :label="item.value"></el-option>
            </el-select>
            <template #reference>
              <label>
                债券代码
                <i v-if="securityIds.length < 1" style="margin-left: 10px; cursor: pointer" class="el-icon-search"></i>
                <i v-else style="margin-left: 10px; color: var(--ems-red); cursor: pointer" class="el-icon-search"></i>
              </label>
            </template>
          </el-popover>
        </template>
        <template #default="props">{{ props.row.secuId }}</template>
      </el-table-column>
</el-table>
const bondCodeSelection = ref()
let securityIds: any = ref([])
let bondCodeVisible = ref(false)

const bondCodeVisibleChange = () => {
  bondCodeVisible.value = false
  bondCodeSelection.value.blur()
}
//筛选下拉框选项,bondTenderStocks为接口获取数据列表
let selectIdData = computed(() => {
  let map = new Set()
  let securitys: any = []
  bondTenderStocks.value.forEach((item: any) => {
    if (map.has(item.secuId) === false) {
      map.add(item.secuId)
      securitys.push({
        text: item.secuId + ' ' + item.secuNm,
        value: item.secuId
      })
    }
  })
  return securitys
})

let displayData = computed(() => {
  let initData = JSON.parse(JSON.stringify(tableData.value))

  // 债券代码
  if (securityIds.value.length !== 0) {
    let securitySet = new Set()
    securityIds.value.forEach((security: any) => securitySet.add(security))
    initData = initData.filter((item: any) => securitySet.has(item.secuId))
  }

  return initData
})

2.时间去除时分秒

function getDate(date: any) {
  if (!date) {
    return ''
  }
    
    // 将字符串转换为 Date 对象  
    var date = new Date(dateString);  
  
    // 使用 toISOString 方法获取日期时间字符串的简化版本,然后提取年月日部分  
    var formattedDate = date.toISOString().split('T')[0];  
    return formattedDate
}

ex:date = "2023-11-02 00:00:00"

3.字符串替换某字符

<div class="el-form-item" v-html="formatText(props.row.eventContent)"></div>

function formatText(text: any) {
  if (!text) {
    return ''
  }
  let result = text
  if (text.indexOf('\n') >= 0) {
    let str = text.replace('\n', '')
    result = str.replace(/\n/g, '</br>')
  }
  return result
}

ex:
全部替换
let str = "\n债券代码:1680352.IB\n债券简称:16马经发债02\n发行量:17.5亿\n中标量:2.1";  
let newStr = str.replace(/\n/g, "</br>");  

//只替换第一个
let newStr = str .replace('\n', '')


http://www.kler.cn/a/162316.html

相关文章:

  • 如何使用 Web Scraper API 高效采集 Facebook 用户帖子信息
  • 2024 年 Apifox 和 Postman 对比介绍详细版
  • 【ACM出版】第四届信号处理与通信技术国际学术会议(SPCT 2024)
  • 深度学习——优化算法、激活函数、归一化、正则化
  • 【设计模式】行为型模式(二):策略模式、命令模式
  • OCR识别铁路电子客票
  • macOS本地调试k8s源码
  • mac苹果笔记本电脑如何强力删除卸载app软件?
  • SQL进阶 | CASE表达式
  • 泽攸科技二维材料转移台的应用场景及优势
  • go-zero 开发入门-加法客服端示例
  • 一文详解设备维护管理软件:降本增效的关键利器
  • Java线程池—附阿里巴巴Java开发手册强制规范要求
  • 【CCF-B】中科院1区TOP,极速1天见刊,国人友好,基金申请必备之选!
  • navigationBar顶部导航栏,兼容适配所有机型(附完整案例)
  • 3接上篇 我的自定义GPTs的改进优化 与物理世界连接成功 GPTs的创建与使用定义和执行特定任务的功能模块 通过API与外部系统或服务的交互
  • git常用命令指南
  • android 13.0 去掉usb授权提示框 默认给予权限
  • 12月7日作业
  • pytorch学习入门之 Variable(变量)
  • 【面试经典150 | 二叉树】从前序与中序遍历序列构造二叉树
  • 苹果手机ios系统安装了一个免签应用书签webclip描述文件该如何卸载?
  • 学习php中使用composer下载安装firebase/php-jwt 以及调用方法
  • 细粒度视觉分类的注意内核编码网络
  • 美国Linux服务器的iptables防火墙介绍
  • 超详细介绍Ubuntu系统安装CUDA和cuDNN【一站式服务!!!】