vue复制粘贴数据

应用场景:复制表格单行数据,到新页面粘贴
列表页面
页面效果
在这里插入图片描述
点击操作栏的“复制”,复制单行数据
代码

// 这里的id对应复制事件的id,默认样式不展示
<textarea id="rowData" style="display: none;"></textarea>

// 点击“复制”触发的事件
handleCopy(row){
      console.log(row);
      var ele = document.getElementById("rowData");
      ele.value = JSON.stringify(row)   // 用JSON.stringify转换一下
      ele.select();
      document.execCommand('copy');
      this.msgSuccess("复制成功");   // 封装好的提示方法,没封装可以用官网原本的提示 this.$message.success()
      sessionStorage.setItem('copyData',ele.value)  //将复制的数据缓存起来
      console.log(ele.value,':ele.value');
},

打印的复制数据
在这里插入图片描述
form页面
在这里插入图片描述
进入页面时,判断是否有缓存,有缓存则显示该弹窗,没有缓存不显示;点击“取消”或“确定”时,清空缓存
代码

<el-dialog
      title="提示"
      :visible.sync="showCopy"
      width="40%"
      :before-close="handleClose">
      <span>检测到有粘贴内容,是否粘贴到该订单?</span>
      <span slot="footer" class="dialog-footer">
        <el-button @click="cancalCopy">取 消</el-button>
        <el-button type="primary" @click="sureCopy">确 定</el-button>
      </span>
</el-dialog>
data(){
	return{
		copyData:{},  // copy的数据
		showCopy:false, // 复制弹窗列表
	}
},
created() {
    this.copyData = JSON.parse(sessionStorage.getItem("copyData"));
    if (Object.keys(this.copyData).length>0) {  // 判断缓存是否有数据
      this.showCopy = true
    }else{
      this.showCopy = false
    }
},
methods:{
	cancalCopy(){
      this.showCopy = false
      sessionStorage.removeItem('copyData')  // 清除缓存
    },
    // 点击“确定”按钮,将剪贴板的内容粘贴到form表单,并清除缓存
    sureCopy(){
      //this.formInline:form表单默认数据
      this.formInline= {...this.copyData,...this.formInline} 
      this.showCopy = false
      sessionStorage.removeItem('copyData')
    },
}

以上就是所有过程啦!如果有更方便的方法欢迎补充哦~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue项目中复制粘贴无效可能有多种原因。以下是一些可能的原因和解决方法。 1. 不正确的事件绑定:如果你在复制粘贴操作之后没有正确绑定相关的事件,Vue将无法捕捉到你的操作。确保在需要复制粘贴的元素上正确绑定对应的事件,例如使用`v-on:copy`和`v-on:paste`。 2. 缺少必要的组件或指令:如果你在复制粘贴操作之后需要使用某个特定的组件或指令来处理数据,但没有在项目中正确引入或使用它们,那么复制粘贴操作将无法生效。请检查项目中是否正确导入并使用了相关的组件或指令。 3. 事件冲突:如果你在复制粘贴操作之前绑定了其他事件,可能会导致事件冲突,从而使复制粘贴无效。请确保没有在复制粘贴操作之前绑定了其他干扰事件。 4. CSS样式限制:复制粘贴操作也可能由于一些CSS样式的限制而无法正常工作。例如,如果元素的CSS样式中设置了`user-select`为`none`,会禁止用户选择元素内容,从而导致复制粘贴无效。请检查相关元素的CSS样式是否会影响到复制粘贴操作。 5. 其他可能的原因:还有其他可能的原因,例如浏览器的限制、操作系统的限制等。在排除了以上几点情况后,可以尝试在其他浏览器或设备上进行测试,或者搜索相关问题的解决方案。 总结:要解决Vue项目中复制粘贴无效的问题,首先要确保正确绑定相关事件、导入必要的组件或指令,并检查可能的CSS样式限制。如果问题依然存在,可以进一步排查其他可能的原因。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值