美文网首页
很基础的js(es6)啊~

很基础的js(es6)啊~

作者: 夜息白鸽 | 来源:发表于2018-11-07 17:43 被阅读0次

数组转成字符串 join(',')

let Arry= ['待签收', '已签收', '已退回', '未签收', '已发送', '签收中', '被退回', '以办结', '已经撤回']
let strName = ' '
retrun strName  = Arry.join(',')
//待签收,已签收,已退回,未签收,已发送,签收中,被退回,以办结,已经撤回

处理ie问题要做的兼容

场景:上传组件在ie的时候 会有点击穿透的效果。 做法就是干掉默认事件

        /* 处理ie 点击查看会调上传文件的问题  */
        if(!!window.ActiveXObject || "ActiveXObject" in window){
          console.log('这家伙是IE啊')
          window.event.cancelBubble = true
        }

格式化时间

场景:后台传给你的时间戳 你要做对应的业务处理 例如当天时间要显示当天。 (刚刚,之前多少分钟前发送一样的原理) image.png

代码如下(rawTime目的时间,sysTime当前时间):

    /*格式化时间*/
    getCustomTime(rawTime, sysTime){
      if (!rawTime) {
        return "";
      }
      sysTime = sysTime || unifiedOfficeLib.moment.formatTime(Date.now(), "YYYY-MM-DD hh:mm");
      let timeInfo = "";
      let tempRawTime = rawTime.split(" ");
      let tempSysTime = sysTime.split(" ");
      if (tempRawTime.length !== 2 && tempSysTime.length !== 2) {
        return "";
      }
      /*同一天*/
      if (tempRawTime[0] === tempSysTime[0]) {
        timeInfo = "今天" + tempRawTime[1].substring(0, 5);
      } else {
        let year = tempRawTime[0].substring(0, 4);
        let month = tempRawTime[0].substring(5, 7);
        let day = tempRawTime[0].substring(8, 10);
        /*非同一年*/
        if (year < tempSysTime[0].substring(0, 4)) {
          timeInfo = tempRawTime[0].replace(/-/g, "/");
        } else {
          timeInfo = Number(month) + "月" + Number(day) + "日";
        }
      }
      return timeInfo;
    }

上传文件vue的插件 vue-upload-web 再有一些简单上传前的处理; 效果如下:(ps它喵的什么产品 偏要上传也能拖拉拽功能,气死人。花里胡哨)

image.png

dom:

      <vue-upload-web
        :url="uploadUrl"
        :upload-button="uploadBtn"
        :accept="docAccept"
        :formData="formData"
        @success="handleIEUpDocSuccess"
        @before="beforeDocUpload"
        @error="handleError"
        @complete="handleComplete"
      ></vue-upload-web>

js:

      /**@augments file 待上传的正文文件对象
       * @description 正文上传前执行,检查文件类型,若不符合则进行提示,正文支持pdf/txt/doc/docx四种文件类型,文件大小不能超过40M
       */
      beforeDocUpload(file) {
        let {name, size} = file;
        // 验证size
        if (size / 1014 / 1024 > 40) {
          this.docErrMsg = '上传的文件不要超过40M';
          this.docUpDirty = true;
          return false;
        }
        let arr = name.split(".");
        let arrLen = arr.length
        let formatStr = (arr[arrLen - 1]).toLowerCase()
        if (
          arr.length < 2 ||
          ["pdf", "txt", "doc", "docx", 'ofd'].indexOf(formatStr) === -1
        ) {
          this.docErrMsg = '正文只支持pdf、txt、doc、docx、ofd等格式,请重新上传';
          this.docUpDirty = true;
          return false;
        }
        this.docUpDirty = false;
        return true;
      },

上传文件之后名称需求处理

场景:检查附件是否可以查看,如果为zip,ofd和rar则只能下载(wps 不支持阅读的东西)
dom就走 v-if="checkPreview(doc_name)"


image.png
    /**@augments name 文件名
     * @description 检查附件是否可以查看,如果为zip和rar则只能下载
     */

    checkPreview(name) {
      let nameLength = name.split('.').length
      if (['zip', 'rar', 'ofd'].indexOf(name.split('.')[nameLength - 1]) !== -1) {
        return false
      }
      return true
    }

相关文章

  • 很基础的js(es6)啊~

    数组转成字符串 join(',') 处理ie问题要做的兼容 场景:上传组件在ie的时候 会有点击穿透的效果。 做...

  • JS-日常小记

    小生今天无聊的时间看了一会js的代码片段和es6教程 (小生个人感觉自己的js基础不好,只能没事的时候补一补啊),...

  • ES6核心特性

    摘要: 聊JS离不开ES6啊 原文:ES6核心特性 作者:ljianshu 前言 ES6 虽提供了许多新特性,但我...

  • react基础入门:(一)原生JS基础测试

    原文链接:react基础入门:(一)原生JS基础测试 以下问题都是以es6为基础 一 基础 有哪些数据类型? 字符...

  • 1-6学习基础

    JS基础,有js基础的,学习ES6,它有很多很好的特性,有助于构建良好的代码。有class模板,有了这个就不需要使...

  • 前端知识体系

    1.JS基础 5 2.JS高级 5JS高级程序设计,各种api的应用,es6新增api的运用 3.CSS...

  • VUE basic

    x项目: MOOC qunar 基础:js es6 webpack npm 知识点:axios ajax数据获...

  • 阅读记录

    js语言基础类 typescripts es6 css语法基础 你未必知道的49个CSS知识点 工具类 webpa...

  • ES6基础教程(第八节)——Symbol类型

    ​es6对几大基础类型的扩展已经讲完了,调皮的es6还新增了一种类型,我们知道js有六大基础类型,分别是: Str...

  • ES6-02 字符串与正则表达式

    ES6学习笔记-字符串与正则表达式 JS字符串编码 在ES6之前,JS的字符串以16位字符编码(UCS-2)为基础...

网友评论

      本文标题:很基础的js(es6)啊~

      本文链接:https://www.haomeiwen.com/subject/ydvvxqtx.html