js 数组删除指定字段 数组是否数据重复等方法 base64格式数据下载二维码

记录开发中遇见的一些方法(因为记性不好 根本记不住 所以好记性不如烂笔头)
数组删掉指定字段

//数组删掉指定字段labelList
var equityList=[{equity: 0,labelList:[{code:'123'}],labelCodeList:['1','2']}]
const removeField = (array, field) => {
      return array.map(item => {
      const { [field]: removed, ...rest } = item;
      return rest;
      });
    };
var equityListNew = removeField(equityList, 'labelList')
  console.log('equityListNew ', equityListNew )
  //[{equity: 0,labelList:['1','2']}]

数组数据是否重复

var codeListAll=["YD10010", "YD10011", "YD10015", "YD10014", "YD10011"]
var s = codeListAll.join(",")+",";
     for(var i=0;i<codeListAll.length;i++) {
        if(s.replace(codeListAll[i]+",","").indexOf(codeListAll[i]+",")>-1) {
          alert("数组中有重复元素:" + codeListAll[i]);
           break;
          }
     }

接口返回 data:image/png;base64格式数据 前端实现下载二维码功能

handleCode(row) {
        const loading = this.$loading({
          lock: true,
          text: '正在下载,请稍候。。。',
          spinner: 'el-icon-loading',
          background: 'rgba(0, 0, 0, 0.7)'
        })
        getWxCodeUnLimit({ id: row.id })//封装好的接口
          .then(response => {
            loading.close()
            var data =response.data.data//接口返回的数据格式 二进制
            var url ='data:image/png;base64,'+ data
            let downloadFilename = row.propertyName + '二维码.png'
            this.downloadFile(downloadFilename,url)
          })
          .catch(() => {
            loading.close()
            this.$notify.error({
              title: '失败',
              message: response.data.msg
            })
          })
      },
       downloadFile(fileName, content){
        const aLink = document.createElement('a')
        aLink.style.display = 'none'
        aLink.href = content // base64Url就是你要下载的base64格式图片代码
        aLink.download = fileName
        // 模拟点击
        document.body.appendChild(aLink)
        aLink.click()
        //移除节点
        document.body.removeChild(aLink)
      },

el-date-picker 时间选择器 限制时间选择范围
在这里插入图片描述

<el-form
            :model="queryForm"
            inline :rules="rules"
            style="display: flex;justify-content: space-between;align-items: center;">
            <el-form-item label="时间查询月" prop="value1">
              <el-date-picker
                class="pickerRange"
                v-model="queryForm.value1"
                value-format="yyyy-MM"
                type="monthrange"
                range-separator="至"
                start-placeholder="开始月份"
                end-placeholder="结束月份"
                
                >
              </el-date-picker>
            </el-form-item>
            <el-form-item label="时间查询日" prop="value2">
              <el-date-picker
                class="pickerRange"
                v-model="queryForm.value2"
                value-format="yyyy-MM-dd"
                type="daterange"
                range-separator="至"
                start-placeholder="开始月份"
                end-placeholder="结束月份"
                
                >
              </el-date-picker>
            </el-form-item>
        </el-form>

<script>
let moment = require("moment") // 引入 时间格式处理
export default {
 data() {
    var dateValidator = (rule, value, callback) => {
        const dateType=rule.dateType||'days';
        const num=rule.num||31
        const dateString=rule.dateString||'天';
        const message=rule.message||'时间跨度不得超过${num}${dateString}';
        if(value&&value.length===2){
          const start=value[0]
          const end=value[1]
          if(moment(end).diff(moment(start),dateType,true)>num){
            callback(new Error(message))
            return
          }
        }
        callback()
      }
    return {
    queryForm: { },

      rules: {
        value1: [
            { validator:dateValidator,dateType:'months',num:5, dateString:'月', message: '时间跨度不能大于6个月', }
          ],
          value2: [
            { validator:dateValidator,dateType:'days',num:180, dateString:'日', message: '时间跨度不能大于180天', }
          ],
        },
    }
    },
}
</script>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值