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

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

html 复制代码
<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>
javascript 复制代码
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.时间去除时分秒

javascript 复制代码
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.字符串替换某字符

javascript 复制代码
<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', '')
相关推荐
烛阴4 小时前
从0到1掌握盒子模型:精准控制网页布局的秘诀
前端·javascript·css
七八书8 小时前
Vue3 组件通信全解析:从基础到进阶的实用指南
vue.js
用户3802258598248 小时前
vue3源码解析:模块总览
vue.js
Danny_FD8 小时前
React中可有可无的优化-对象类型的使用
前端·javascript
LeeAt8 小时前
从Promise到async/await的逻辑演进
前端·javascript
前端Hardy8 小时前
HTML&CSS:3D 轮播图全攻略
前端·javascript
前端Hardy8 小时前
7 个技巧助你写出优雅高效的 JavaScript 异步代码
前端·javascript·面试
等一个晴天丶9 小时前
element-ui elemant-plus el-tree展开按钮变成加减号
vue.js
HelloWord9 小时前
从零到一搭建vue3+ts项目
前端·vue.js
走向终结的前端9 小时前
vue中再搞一下SSE的使用
前端·javascript