- //屏蔽右键功能
- // 添加自定义v-down指令
- // let baseDownloadUrl = process.env.VUE_APP_BASE_API; // 域名
- export default {
- mounted(el, binding, vnode) {
- const { value } = binding;
- el.style.cssText = "cursor: pointer;color:#1890ff;";
- el.style.width = "100%";
- el.addEventListener("click", () => {
- console.log(binding);
- let link = document.createElement("a"); // 创建a标签
- link.style.display = "none";
- let url = ""; //文件地址
- let name = ""; //文件名称
- // 如果指令绑定的值为对象则取名称和地址,否则直接取值(即地址)
- if (binding.value instanceof Object) {
- url = binding.value.scanAttachUrl;
- name = binding.value.scanAttachName;
- } else {
- url = binding.value; // 设置下载地址
- }
- // 这里是将url转成blob地址,
- fetch(url)
- .then((res) => res.blob())
- .then((blob) => {
- // 将链接地址字符内容转变成blob地址
- link.href = URL.createObjectURL(blob);
- if (binding.value instanceof Object) {
- link.download = name; //取名称
- } else {
- link.download = url.split("/")[url.split("/").length - 1]; //取名称
- }
- document.body.appendChild(link);
- link.click();
- });
- });
- },
- };