SEO机制算是让我玩明白了

 获取当前时间时间戳,返回遵循ISO 8601扩展格式的日期

 new Date(Date.now()).toISOString()

使用moment库转换回来

this.moment(new Date(Date.now()).toISOString()).format("YYYY-MM-DD")

 

 

 

js去掉富文本中html标签和图片

 filterHtmlTag(val) {
      if(!val){
        return false;
      }
      // 过滤掉富文本中的所有标签
      var filter = val
        .replace(/<(p|div)[^>]*>(<br\/?>| )<\/\1>/gi, "\n")
        .replace(/<br\/?>/gi, "\n")
        .replace(/<[^>/]+>/g, "")
        .replace(/(\n)?<\/([^>]+)>/g, "")
        .replace(/\u00a0/g, " ")
        .replace(/ /g, " ")
        .replace(/<\/?(img)[^>]*>/gi, "")
        .replace(/&/g, "&")
        .replace(/</g, "<")
        .replace(/>/g, ">")
        .replace(/'/g, "'")
        .replace(/"/g, '"')
        .replace(/<\/?.+?>/g, "");

      var filterOver =
        filter.length > 400 ? filter.slice(0, 400) + "..." : filter;
      return filterOver;
    },

 控制伪元素的显示隐藏,并且可以对伪元素添加点击事件

我们需要在css做这种处理

父元素添加:pointer-events: none; 伪元素添加:pointer-events: auto;

<div
                  @click="ele.unfoldButton=false"
                    v-html="
                      filterHtmlTag(ele.filterInfo) ||
                        filterHtmlTag(ele.labels[0].value)
                    "
                    class="text-part"
                    :class="ele.unfoldButton?'setButton':''"
                  ></div>






.text-part {
  height: 115px;
  background-color: rgb(242, 242, 242);
  padding: 10px;
  padding-bottom: 25px;
  overflow: hidden;
  position: relative;
  pointer-events: none;

}
.setButton::after {
    content: "V";
    position: absolute;
    pointer-events: auto;
    font-weight: bold;
    bottom: 5px;
    left: 50%;
    font-size: 20px;
    color: var(--mainColor);
    display: inline-block;
    width: 25px;
    height: 20px;
    line-height: 20px;
    cursor: pointer;
    border-radius: 50%;
    margin-right: 5px;
    margin-left: 5px;
    text-align: center;
  }

页面上渲染失败[object Promise]

172c675bcdc140ed826e31e7d1174bf1.png 

 代码里是这样写的

   
{{filterHtmlTag(ele.filterInfo, ele.unfoldButton)}}






 //改变文字颜色
    changeWordColor(str, stringPart) {
      str = str.replace(
        stringPart,
        '<span style="color: var(--mainColor);">' + stringPart + "</span>"
      );

      return str;
    },
   async filterHtmlTag(val, slice = false, searchStatus = this.openSearch) {
      if (!val) {
        return false;
      }
      // 过滤掉富文本中的所有标签
      var filter = val
        .replace(/<(p|div)[^>]*>(<br\/?>| )<\/\1>/gi, "\n")
        .replace(/<br\/?>/gi, "\n")
        .replace(/<[^>/]+>/g, "")
        .replace(/(\n)?<\/([^>]+)>/g, "")
        .replace(/\u00a0/g, " ")
        .replace(/ /g, " ")
        .replace(/<\/?(img)[^>]*>/gi, "")
        .replace(/&/g, "&")
        .replace(/</g, "<")
        .replace(/>/g, ">")
        .replace(/'/g, "'")
        .replace(/"/g, '"')
        .replace(/<\/?.+?>/g, "");
      // 是否折叠
      var filterOver =
        filter.length > 400 ? filter.slice(0, 400) + "..." : filter;
        //如果是搜索状态
      if (searchStatus) {

        filterOver =this.changeWordColor(filterOver, this.propertyValue);
        filter = this.changeWordColor(filter, this.propertyValue);

      }

      return slice ? filterOver : filter;
    },

最发现是方法中我写了async,这方法变成异步了,所以才这样输出了,所以啊兄弟们没用的东西一定要删了,使用的时候获取实时的数据,别用async,即可解决此异常

 将elementui的tab切换与走马灯结合起来

04396a56532c4ae69a4709c0e7f2933b.png

 

  <el-tabs v-model="activeItemId" @tab-click="handleClick">
          <!-- 循环 -->
          <el-tab-pane label="111" name="1"
            > <el-carousel
                        v-if="ele.dbValueVOS && ele.dbValueVOS.length !== 0"
                        ref="marquee"
                        @change="val => setContentInfo(val, index)"
                        trigger="click"
                        height="150px"
                        indicator-position="none"
                        :autoplay="false"
                        arrow="always"
                      >
                        <el-carousel-item
                          v-for="item in ele.dbValueVOS"
                          :key="item.id"
                        >
                          <h4>{{ item.propertyName }}</h4>
                        </el-carousel-item>
                      </el-carousel>



</el-tab-pane>
</el-tabs>









handleClick(tab, event) {
      // 点击tab切换,给走马灯部分指定下标
this.$refs.marquee[0].setActiveItem(this.activeItemId);
      //  // 将tab的下标指定为走马灯的下标
      // this.active = e // tab切换的下标

      //获取列表
      console.log(tab, event);
    },

 

修改JS数组中的一个对象的元素的值,其他对象的元素值都跟着变了

数组改完相应下标的的对象,其他下标数据也变了

使用$set给数组里的对象赋值,也改变了其他对象

vue $set 给数组集合对象赋值影响到其他元素

vue数据改变影响其他数据的问题

vue 变量赋值变量,两个变量就会互相影响

vue只是给一条数据赋值却影响到了其他数据

  setContentInfo(valIndex, parentIndex) {
      var {propertyValue} = this.reportList[parentIndex].dbValueVOS[valIndex];
     
      // TODO:给对象中的值赋值,走马灯切换后显示
      // this.$set(this.reportList[parentIndex], "filterInfo", propertyValue);


     
    },

离大谱了,就是个普通赋值,方法只调了一次,就算指定只给下标为0的数据赋值也影响到了其他数据

颠覆我的认知了,科学不存在了

 

 

解决方法如下,直接深拷贝一条,去给数组相应下标的整个对象替换

  setContentInfo(valIndex, parentIndex) {
      var {propertyValue} = this.reportList[parentIndex].dbValueVOS[valIndex];
      let realData =JSON.parse(JSON.stringify(this.reportList[parentIndex]));
      realData.filterInfo=propertyValue;
      // TODO:给对象中的值赋值,走马灯切换后显示
      // this.$set(this.reportList[parentIndex], "filterInfo", propertyValue);



         this.$set(this.reportList, parentIndex, realData);

      
    },

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/15967.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

vue性能优化之虚拟列表滚动

一、前言 前端的性能瓶颈那就是页面的卡顿&#xff0c;当然这种页面的卡顿包含了多种原因。 例如HTTP请求过多导致数据加载变慢&#xff0c;下载的静态文件非常大导致页面加载时间很长&#xff0c;js中一些算法响应的时间过长等。很多前端工程师都花费很多的精力在dom渲染上来…

Docker概念|容器|镜像|命令详细(创建,删除,修改,添加)

Docker概念|容器|镜像|命令详细&#xff08;创建&#xff0c;删除&#xff0c;修改&#xff0c;添加&#xff09; 一&#xff0c;Docker简介二&#xff0c;Docker与虚拟机的区别三&#xff0c;容器核心技术四&#xff0c;Docker核心概念五 docker的安装5.1关闭防火墙,关闭文件防…

python毕业设计之django+vue.js幼儿园网站系统

开发语言&#xff1a;Python 框架&#xff1a;django Python版本&#xff1a;python3.7.7 数据库&#xff1a;mysql 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm 采用了Windows10操作系统平台&#xff0c;使用HTMLCSSJS前端模板django作为后台监控&#xff0…

【VM服务管家】VM4.x算子SDK开发_3.2 公用工具类

目录 3.2.1 图像载入&#xff1a;本地图像的载入方法3.2.2 相机取流&#xff1a;相机SDK取流的方法3.2.3 输入图像&#xff1a;给算子模块输入图像数据的方法3.2.4 实时取流&#xff1a;实时取流的实现方法3.2.5 卡尺ROI&#xff1a;卡尺型ROI的生成方法3.2.6 DL算子耗时&#…

ref在Vue2、Vue3中的使用

文章目录 前言一、ref在Vue2中的用法二、ref在Vue3中的用法 前言 记录一下ref在Vue2与Vue3中的使用&#xff0c;ref可以获取DOM元素&#xff0c;也可以获取子组件的数据、方法。 一、ref在Vue2中的用法 给元素绑定一个ref&#xff0c;然后在js中通过this.$refs获取DOM。 ref命…

从大厂到创业公司,管理上需要怎样转变?

你好&#xff0c;我是舒超。 我职业生涯过去十年的上半段在腾讯负责微博微群、消息流广告、视频评论等社交型的业务系统&#xff0c;下半段在美团基础架构负责云原生基础设施的演进工作&#xff0c;现在星汉未来担任CTO&#xff0c;负责公司产研推进工作。加入星汉未来的时间点…

带你搞懂人工智能、机器学习和深度学习!

不少高校的小伙伴找我聊入门人工智能该怎么起步&#xff0c;如何快速入门&#xff0c;多长时间能成长为中高级工程师&#xff08;聊下来感觉大多数学生党就是焦虑&#xff0c;毕业即失业&#xff0c;尤其现在就业环境这么差&#xff09;&#xff0c;但聊到最后&#xff0c;很多…

MongoDB【索引-index】

目录 1&#xff1a;概述 2&#xff1a;索引的类型 2.1&#xff1a;单字段索引 2.2&#xff1a;复合索引 2.3&#xff1a;其他索引 3&#xff1a;索引的管理操作 3.1&#xff1a;索引的查看 3.2&#xff1a;索引的创建 3.3&#xff1a;索引的移除 4&#xff1a;索引的…

微短剧“小阳春”,“爱优腾芒”抢滩登陆?

降本增效一整年&#xff0c;长视频平台们似乎扭转了市场对于它们“烧钱”的印象。 爱奇艺宣布2022全年盈利&#xff0c;腾讯视频宣布从去年10月起开始盈利&#xff0c;视频平台们结束了一场“无限战争”。 与此同时&#xff0c;随着短视频平台的崛起&#xff0c;视频内容的形…

【Hadoop-HDFS】HDFS中Fsimage与Edits详解

【Hadoop-HDFS】HDFS中Fsimage与Edits详解 1&#xff09;概述2&#xff09;NameNode元数据解析3&#xff09;Fsimage3.1.Fsimage 的作用3.2.FSimage 的文件信息查看 4&#xff09;Edits4.1.Edits 的作用4.2.Edits 的文件信息查看 5&#xff09;元数据信息目录的配置 1&#xff…

Shell+VCS学习1

Shell脚本常见问题 mkdir rmdir rm mkdir 创建文件夹 mkdir -p filename-p 确保目录名称存在&#xff0c;不存在的就建一个。 mkdir -p runoob2/test若 runoob2 目录原本不存在&#xff0c;则建立一个。&#xff08;注&#xff1a;本例若不加 -p 参数&#xff0c;且原本 ru…

栈和队列的转换

在之前的博客当中我们已经学习了栈和队列。在本次的博客当中我们就来学习一下怎么将栈和队列进行相互转换。 栈和队列的相互转换其实是两道OJ题。如果在leetcode上面刷过题的小伙伴们可能早就见过这两种数据结构的相互转换。下面我们就来分别讲解一下这两道OJ题目的编写思路。 …

如何基于vue实现倒计时效果

如何基于vue实现倒计时效果 基于vue2 element实现画面效果代码 基于vue2 element 实现画面效果 代码 <template><div><div class"Box"><div style"position: relative;"><el-progress type"circle" :width"…

使用注解实现REDIS分布式锁

一、业务背景 有些业务请求&#xff0c;属于耗时操作&#xff0c;需要加锁&#xff0c;防止后续的并发操作&#xff0c;同时对数据库的数据进行操作&#xff0c;需要避免对之前的业务造成影响。 二、分析流程 使用 Redis 作为分布式锁&#xff0c;将锁的状态放到 Redis 统一…

基于SpringBoot+Vue+Java的社区医院管理服务系统(附源码+数据库)

摘 要 在Internet高速发展的今天&#xff0c;我们生活的各个领域都涉及到计算机的应用&#xff0c;其中包括社区医院管理服务系统的网络应用&#xff0c;在外国线上管理系统已经是很普遍的方式&#xff0c;不过国内的管理系统可能还处于起步阶段。社区医院管理服务系统具有社区…

一道经典的小学数学题,和它背后的贪心算法(35)

小朋友们好&#xff0c;大朋友们好&#xff01; 我是猫妹&#xff0c;一名爱上Python编程的小学生。 欢迎和猫妹一起&#xff0c;趣味学Python。 今日主题 这个五一小长假&#xff0c;你玩得怎么样&#xff1f; 今天&#xff0c;咱们先做一道经典的小学数学题&#xff0c;…

智慧物流信息系统开发需具备哪些功能?

智慧物流软件开发公司在制作管理系统的时候&#xff0c;需要具备的功能有哪些呢&#xff1f; 一、采集跟踪功能。 &#xff08;1&#xff09;、信息采集&#xff1a;信息采集跟踪系统是智能物流系统的重要组成部分。物流信息采集系统主要由RFID射频识别系统和Savan…

2022年度项目管理软件排名揭晓:哪些软件在市场中脱颖而出?

在项目管理软件的选择过程中&#xff0c;用户会倾向于参考一些软件排名来辅助自己进行选择。软件排名方面推荐参考G2&#xff0c;一个国外的靠谱软件评测网站&#xff0c;类似于软件版的“大众点评”&#xff0c;软件评价来自于真实用户&#xff0c;网站通过多维度的算法&#…

JAVA入坑之GUI编程

一、相关概述 GUI编程是指通过图形化的方式来实现计算机程序的编写&#xff0c;它可以让用户通过鼠标、键盘等设备来操作计算机&#xff0c;而不是通过命令行来输入指令。在Java中&#xff0c;GUI编程主要使用的是Swing和AWT两种技术 二、AWT 2.1介绍 AWT是Java提供的用来建立…

八部门联合推动IPv6创新发展 知道创宇助力IPv6快速安全改造

近日&#xff0c;工业和信息化部、中央网信办、国家发展改革委、教育部、交通运输部、人民银行、国务院国资委、国家能源局等八部门联合印发《关于推进IPv6技术演进和应用创新发展的实施意见》&#xff08;以下简称“《实施意见》”&#xff09;&#xff0c;提出到2025年底&…
最新文章