×

技术文档

vue配置iframe父级窗口通信

admin admin 发表于2023-02-07 浏览40 评论0

在router/index.js中配置

export default new Router({
  scrollBehavior: () => ({ y: 0 }),
  routes: [
    {
      path: '/',
      name: 'index',
      component: resolve => require(['@/views/index'], resolve),
      meta: {
        keepAlive: true, // 此组件需要被缓存
        isIframe: true // 标记是否是iframe
      }
    }
  ]
})

技术文档

公共DNS

admin admin 发表于2022-03-26 浏览73 评论0
阿里云:
223.6.6.6
223.5.5.5

百度:
180.76.76.76

联通:
123.125.81.6
218.30.118.6

114:
114.114.114.114

附:

地区    主服务器    备服务器    
北京联通DNS    202.106.196.115    202.106.46.151    
202.106.0.20    202.106.195.68    
重庆联通DNS    221.5.203.98    221.7.92.98    
广东联通DNS    210.21.196.6    221.5.88.88    
河北联通DNS    202.99.160.68    202.99.166.4    
河南联通DNS    202.102.224.68    202.102.227.68    
黑龙江联通DNS    202.97.224.69    202.97.224.68    
吉林联通DNS    202.98.0.68    202.98.5.68    
江苏联通DNS    221.6.4.66    221.6.4.67    
内蒙古联通DNS    202.99.224.68    202.99.224.8    
山东联通DNS    202.102.128.68    202.102.152.3    
202.102.134.68    202.102.154.3    
山西联通DNS    202.99.192.66    202.99.192.68    
陕西联通DNS    221.11.1.67    221.11.1.68    
上海联通DNS    210.22.70.3    210.22.84.3    
四川联通DNS    119.6.6.6    124.161.87.155    
天津联通DNS    202.99.104.68    202.99.96.68    
浙江联通DNS    221.12.1.227    221.12.33.227


中国公共dns
百科 >中国公共dns
说明:
阿里、腾讯dns不错;谷歌的8.8.8.8虽然不错,但国内访问确实不稳定,还会碰到解析记录更新不及时问题;114之前试了,正常用挺好的,但如果公司访问非常多的情况下,怀疑限频阈值较低,有时会解析不了。

为什么要用公共dns呢?那是因为使用了多家运营商商务宽带,但各运营商dns要嘛限制只对自家网络开放,要嘛限频限得非常低。这时候就需要用公共dns了,当然自己在公网内网搭建dns更好。

具体:
阿里公共DNS 
阿里公共DNS是阿里巴巴集团推出的DNS递归解析系统,目标是成为国内互联网基础设施的组成部分,面向互联网用户提供“快速”、“稳定”、“智能”的免费DNS递归解析服务.
官网:https://www.alidns.com/
IPv4首选:223.5.5.5
IPv4备用:223.6.6.6
IPv6首选:2400:3200::1
IPv6备用:2400:3200:baba::1

腾讯公共DNS(同DNSPod)
腾讯公共DNS是腾讯DNSPod 提供的公共 DNS 服务,基于 BGP AnyCast,支持 edns-client-subnet 技术,精准调度,多地集群容灾,面向所有互联网用户免费使用。
官网:https://www.dnspod.cn/Products/Public.DNS
IPv4首选:119.29.29.29
IPv4备用:
IPv6首选:
IPv6备用:


百度公共DNS
百度公共DNS是百度系统部推出的递归DNS解析服务。拥有云防护、无劫持、更精准等特性,让您上网更快更安全。
官网:https://dudns.baidu.com/intro/publicdns/
IPv4首选:180.76.76.76
IPv4备用:
IPv6首选:2400:da00::6666
IPv6备用:

谷歌公共DNS(Google Public DNS)
Google Public DNS 是Google面对大众推出的一个公共免费域名解析服务。
官网:https://developers.google.com/speed/public-dns
IPv4首选:8.8.8.8
IPv4备用:8.8.4.4
IPv6首选:2001:4860:4860::8888
IPv6备用:2001:4860:4860::8844

114DNS:
114DNS是由多个基础电信运营商与南京信风共建共享,但由南京信风提供技术支持的公共DNS。
官网:https://www.114dns.com/about.html
IPv4首选:114.114.114.114
IPv4备用:114.114.115.115
IPv6首选:
IPv6备用:

附录:
中国电信各地DNS服务器,https://www.66office.com/article.php?id=267
中国联通各地DNS服务器,https://www.66office.com/article.php?id=266

技术文档

Vue 加载本地Excel实时预览

admin admin 发表于2022-01-24 浏览60 评论0
#template

<template>
   <div>
        <input type="file" id="files" ref="upload" accept=".xls,.xlsx" style="display: none">
        <el-button slot="trigger" type="warning" @click="clickLoad" style="margin-right: 20px">从Excel加载</el-button>
   </div>
</template>


methods(){
    clickLoad() {
      this.$refs.upload.dispatchEvent(new MouseEvent('click'))
    },
    readExcel(e) {//表格导入
      let that = this;
      const files = e.target.files;
      let validRule = /\.(xls|xlsx)$/
      if (files.length <= 0) {//如果没有文件名
        return false;
      } else if (!validRule.test(files[0].name.toLowerCase())) {
        this.$Message.error('上传格式不正确,请上传xls或者xlsx格式');
        return false;
      }
      const fileReader = new FileReader();
      fileReader.onload = (e) => {
        try {
          const data = e.target.result;
          const workData = XLSX.read(data, {
            type: 'binary'
          });
          // console.log(workData)// 文件的内容
          const wsName = workData.SheetNames[0];//取第一张表
          const ws = XLSX.utils.sheet_to_json(workData.Sheets[wsName]);//生成json表格内容
          // console.log(ws);  //自第二行开始的内容
          //{  这里可以做相应的处理 }
          //{  这里可以做相应的处理 }
          // console.log("table:", this.tablesData)
          for (let i = 0; i < this.tablesData.length; i++) {
            let item = this.tablesData[i]
            let allKey = Object.keys(item)
            for (let j = 0; j < ws.length; j++) {
              let item2 = ws[j]
              let key1 = item['a'] + "_" + item['b'] + "_" + item['c']
              let key2 = item2['a'] + "_" + item2['b'] + "_" + item2['c']
              if (key1 === key2) {
                for (let key of allKey) {
                  //只对20开头的key做值更新
                  if (key.indexOf("20") === 0) {
                    console.log("key1:", key1, "key2:", key2, "key:", key, "value:", item2[key])
                    this.$set(this.tablesData[i], key, item2[key])
                  }
                }
              }
            }
          }
          this.$refs.upload.value = ''; // 处理完成 清空表单值
        } catch (e) {
          this.$message.error("解析表格失败")
          return false;
        }
      };
      fileReader.readAsBinaryString(files[0]);
    }

},

mounted(){
    //注册事件
    this.$refs.upload.addEventListener('change', e => {
          this.readExcel(e)
    })
}