vue+element

  1. for 循环 生成 checkbox

<el-checkbox v-model="checked3" label="备选项1" border size="medium"></el-checkbox>

vue中的数据是异步更新的到dom的,也就是说我们在改变之后数据后,还没有立即更新,使用this.$nextTick 这个方法 在下次 DOM 更新后再进行数据的处理

在初始化改变数据checked3

点击无效

改mounted(){ checked3=true }

在一个案例中 ,data添加新数据 可页面没有渲染,不知道为啥错,但将v-for移动到他第一个子元素<el-col>处,就解决了问题

<el-row v-for="item in data">  data添加新数据 可页面没有渲染,不知道为啥错
 <el-col>

  <el-row>
  </el-row>

  <el-row>
  </el-row>

</el-col>
<el-col>

                     之后改了改 监听

change当绑定值变化时触发的事件更新后的值

   强制刷新 this.$forceUpdate()

2el-form调用resetFields报错Cannot read property ‘indexOf‘ of undefined

原因是 form下面的foritem 必须要加prop 可以为prop=''但不能没有

3.jszip

如何使用JSZip (stuk.github.io)

参考 JS实现单个或多个文件批量下载的方法详解_javascript技巧_脚本之家

<a href={url} download={fileName}>download</a>

1

2

3

4

5

6

7

8

9

function downloadFile(url, fileName) {

    const a = document.createElement('a');

    a.style.display = 'none';

    a.href = url;

    a.download = fileName;

    document.body.appendChild(a);

    a.click();

    document.body.removeChild(a);

}

const zip = new JSZip();

zip.file("Hello.txt", file); // 支持纯文本等

zip.file("img1.jpg", file); // 支持Promise类型,需要返回数据类型是 String, Blob, ArrayBuffer, etc

zip.generateAsync({ type: "blob" }).then(blob => {

    const url = window.URL.createObjectURL(blob);

    downloadFile(url, "test.zip");

});

参考 element-ui 中 table 鼠标悬停背景色修改

.el-table__body tr:hover>td{
    background-color: #c6cfdf!important;
  }
 
.el-table__body tr.current-row>td{
    background-color: #c6cfdf!important;
  }

4 指定容器全屏

 //控制全屏
    enterfullscreen () { //进入全屏
      var docElm = document.getElementById('homeid')  // 指定容器id
      //W3C
      if (docElm.requestFullscreen) {
        docElm.requestFullscreen()
      }
      //FireFox
      else if (docElm.mozRequestFullScreen) {
        docElm.mozRequestFullScreen()
      }
      //Chrome等
      else if (docElm.webkitRequestFullScreen) {
        docElm.webkitRequestFullScreen()
      }
      //IE11
      else if (elem.msRequestFullscreen) {
        elem.msRequestFullscreen()
      }
    },
    //退出全屏
    exitfullscreen () {
      if (document.exitFullscreen) {
        document.exitFullscreen()
      } else if (document.mozCancelFullScreen) {
        document.mozCancelFullScreen()
      } else if (document.webkitCancelFullScreen) {
        document.webkitCancelFullScreen()
      } else if (document.msExitFullscreen) {
        document.msExitFullscreen()
      }
    }

全屏后黑屏,可能没有父元素的css,全屏的元素没有背景颜色,指定背景颜色就ok

5 contenteditable 富文本编辑器

参考HTML5 - contenteditable 富文本编辑器_html5富文本编辑器_尘旭员的博客-CSDN博客

vue @blur 事件

<div contenteditable="true" spellcheck="false" class="scriptEditor" @blur="editnameSet(index, $event)"

>
    <div class="lineText"><span style="color: green;">;我是注释123456789</span></div>
</div>


8

  // 禁用鼠标右击、F12 来禁止打印和打开调试工具

prohibit () {
        document.oncontextmenu=function(ev){
          return false;    //屏蔽右键菜单
        }
        document.onkeydown = function (e) {
          if (e.ctrlKey && (e.keyCode === 65 || e.keyCode === 67 || e.keyCode === 73 || e.keyCode === 74 || e.keyCode === 80 || e.keyCode === 83 || e.keyCode === 85 || e.keyCode === 86 || e.keyCode === 117)) {
            return false
          }
          if (e.keyCode === 18 || e.keyCode === 123) {
            return false
          }
        }
      }

9 docx-preview

渲染docx报错 docx renderAsync can esModule:false,can`t find end of cantral directory Lis

格式错吧

10

upload组件 before-upload 自定义传参

:before-upload=" (file) => { return handleBefore(file, '你的参数')}"

handleBefore(file, params) {}

const reader=new FileReader()

文件读取器new FileReader() 对象提供了以下方法来加载文件:

  • readAsArrayBuffer():读取指定 Blob 中的内容,完成之后,result 属性中保存的将是被读取文件的 ArrayBuffer 数据对象;
  • FileReader.readAsBinaryString():读取指定 Blob 中的内容,完成之后,result 属性中将包含所读取文件的原始二进制数据;
  • FileReader.readAsDataURL():读取指定 Blob 中的内容,完成之后,result 属性中将包含一个data: URL 格式的 Base64 字符串以表示所读取文件的内容。
  • FileReader.readAsText():读取指定 Blob 中的内容,完成之后,result 属性中将包含一个字符串以表示所读取的文件内容。

可以看到,上面这些方法都接受一个要读取的 blob 对象作为参数,读取完之后会将读取的结果放入对象的 result 属性中。

11 XLSX 

// npm install xlsx

import * as XLSX from 'xlsx/xlsx.mjs'

导入

 getXLSX() {
      const xlsx_data = res.data.arrayBuffer() //await
      let tem_workbook = XLSX.read(xlsx_data, { type: "array" }); // 解析数据
      workbook.value = tem_workbook
      this.getTable(tem_workbook.SheetNames[0]); // 读取第一张表数据

    },
    // 解析xlsx数据为table
    getTable(sheetName) {
      let worksheet = workbook.value.Sheets[sheetName];
//XLSX.utils.sheet_to_html(worksheet)
      excelData.value = XLSX.utils.sheet_to_json(worksheet);
    },

XLSX 导出

12 docx

import { renderAsync } from 'docx-preview';

  //解析docx文件https://blog.csdn.net/huangzhixin1996/article/details/126196456
    renderAsyncMe() {
      renderAsync(res.data, document.getElementById("preload_box"), null, {
        className: "docx", // 默认和文档样式类的类名/前缀
        inWrapper: true, // 启用围绕文档内容渲染包装器
        ignoreWidth: false, // 禁止页面渲染宽度
        ignoreHeight: false, // 禁止页面渲染高度
        ignoreFonts: false, // 禁止字体渲染
        breakPages: true, // 在分页符上启用分页
        ignoreLastRenderedPageBreak: true, //禁用lastRenderedPageBreak元素的分页
        experimental: false, //启用实验性功能(制表符停止计算)
        trimXmlDeclaration: true, //如果为真,xml声明将在解析之前从xml文档中删除
        debug: false, // 启用额外的日志记录
      })

    },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue + Element是一种在Vue项目中使用Element UI框架的组合。Element是一个基于Vue 2.0的桌面端组件库,为开发者、设计师和产品经理提供了丰富的组件和样式。\[1\] 要在Vue项目中使用Element UI,首先需要引入Element UI。可以通过两种方法引入:一种是通过安装Node包,另一种是通过CDN引入。如果选择安装Node包的方式,可以使用命令`cnpm i element-ui --save`进行安装。如果选择CDN引入的方式,需要在HTML文件中引入Element UI的样式和组件库的链接。\[3\] 在main.js文件中,需要注册Element UI。可以通过`import ElementUI from 'element-ui'`和`Vue.use(ElementUI)`来注册Element UI。这样就可以在Vue项目中使用Element UI的组件了。\[2\]\[3\] 使用Element UI的具体步骤可以参考Element官网提供的例子和代码,根据官网的指引来实现想要的效果。\[3\] 总结起来,Vue + Element是指在Vue项目中使用Element UI框架的组合。通过引入Element UI并在main.js中注册,可以在Vue项目中使用Element UI的丰富组件和样式。具体的使用步骤可以参考Element官网提供的例子和代码。 #### 引用[.reference_title] - *1* *2* [VueElement的使用](https://blog.csdn.net/s_9527_s/article/details/123094193)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [vue中使用element(菜鸟教程)](https://blog.csdn.net/weixin_44727080/article/details/113607189)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值