当前位置: 首页 > news >正文

电商平台技术开发方案快抖霸屏乐云seo

电商平台技术开发方案,快抖霸屏乐云seo,厦门企业网站公司,网站建设的扁平化设计给到我的需求是点击按钮时请求后端接口,根据后端返回的数据,生成表格,并将表格的内容直接下载为html,如下图。 平常做的下载都是后端返回二进制流,这次前端做下载那就必须把页面先画出来,因为下载下来的表格在页面上是不显示的&a…

给到我的需求是点击按钮时请求后端接口,根据后端返回的数据,生成表格,并将表格的内容直接下载为html,如下图。
在这里插入图片描述
平常做的下载都是后端返回二进制流,这次前端做下载那就必须把页面先画出来,因为下载下来的表格在页面上是不显示的,所以要画出来再隐藏一下,隐藏的时候可选方式有很多,但是v-if,v-show这种会导致页面重构的不建议使用(事实也证明v-if和v-show在这种场景是不能使用的,因为这种场景要求表格是实际存在的元素)所以我选择了绝对定位加上z-index:-999的方式,让表格隐藏在文档流下面。
1:html代码-表格样式

    <divid="canvas-file1"style="width: 800px;line-height: 20px;font-size: 14px;position: absolute;z-index: -999;"><tablewidth="800px"border="1px"cellspacing="0px"cellpadding="10px"align="center"bgcolor="#fff"style="margin-top: 10px"><tr><th>商品名称</th><th>规格</th><th>数量</th><th>金额(元)</th></tr><tbody align="center"><template v-for="item in table1.goodsDetailsInfoVOList"><tr v-if="item.hasChildren"><td :rowspan="item.children.length + 1">{{ item.goodsName }}</td><td>{{ item.goodsSpec }}</td><td>{{ item.goodsNum }}</td><td>{{ item.payAmount }}</td></tr><tr v-for="item in item.children"><td>{{ item.goodsSpec }}</td><td>{{ item.goodsNum }}</td><td>{{ item.payAmount }}</td></tr></template></tbody></table></div>

表格画好以后,考虑两种下载的方法,一种是将表格转成图片,然后将图片转成html页面下载。第二种是将表格作为字符串拼接到html页面中,然后下载。(后续发现第一种方法累赘了,当时也不知道怎么想的)
记录一下第一种方法,html2canvas方法里面接受两个参数,第一个就是dom对象,第二个是转canvas时的一些自定义配置项,生成后该方法会调用then回调,将canvas传递出来,我们就可以拿到了。但是有一个值得一提的问题,就是我发现html转canvas的过程是相当缓慢的,这也是后面我放弃这种方法的原因

const handleSubmitExportGoods = () => {exportGoodsLoading.value = true;setTimeout(() => {let arr = [];for (let i = 0; i < 100; i++) {arr.push({ a: i, b: i + 1, c: i + 2 });}table1.value = {list: arr,time: "2023-7-31 09:15:18",title: "活动名称",titleTime: "2023-7-25 09:00:00 发布",};nextTick(() => {html2canvas(document.getElementById("canvas-file1"), {backgroundColor: "transparent", //背景图片透明allowTaint: true, //跨域useCORS: true, //跨域}).then((canvas) => {exportGoodsLoading.value = false;let oImg = new Image();oImg = canvas.toDataURL("image/png"); // 导出图片const html = `<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title></title></head><body style="margin:0"><img src="${oImg}"></img></body></html>`;let blob = new Blob([html], { type: "text/html" });let url = window.URL.createObjectURL(blob);let a = document.createElement("a");a.download = "订单";a.style.display = "none";a.href = url;document.body.appendChild(a);a.click();a.remove();**});});}, 500);
};

然后就是第二种方法,把table拼到html里面,直接上代码

const downloadFile = (domName, fileName) => {let htmlStr = document.getElementById(domName).innerHTML;const html = `<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title></title></head><body style="margin:0">${htmlStr}</body></html>`;let blob = new Blob([html], { type: "text/html" });let url = window.URL.createObjectURL(blob);let a = document.createElement("a");a.download = fileName;a.style.display = "none";a.href = url;document.body.appendChild(a);a.click();a.remove();
};
http://www.ds6.com.cn/news/82853.html

相关文章:

  • 商务网站管理的主要内容数据管理杭州网站seo推广
  • 免费网站seo sem是什么职位
  • 为什么选择网站来做论文题目营销型企业网站有哪些平台
  • 线下引流推广方法网站优化就是搜索引擎优化
  • 自己做网站怎么优化宁波seo排名外包
  • 网站域名及空间购买国内专业的seo机构
  • 济南行业网站开发百度网址安全检测
  • 宁波网站建设制作网络公司广告营销留电话网站
  • 福州做网站公司有哪些广州百度推广外包
  • 网站在淘宝上做靠谱吗千锋教育培训多少钱
  • 成都活动轨迹seo专员
  • 各网站封面尺寸长尾关键词挖掘
  • 杭州口碑好的电商有哪些公司win10优化工具
  • 做网站需要学什么软件哈尔滨关键词优化报价
  • 40个界面ui外包多少钱重庆网络seo公司
  • 谈谈你对网站建设有什么样好的建设意见seo优化公司排名
  • 网店代运营违法吗网站seo置顶
  • 网站建设栏目管理长尾关键词排名工具
  • 怎么用java做html5网站吗济南网络优化哪家专业
  • 泉州网站快速排名提升代理公司注册
  • 珠海新盈科技有限公 网站建设杭州百家号优化
  • 网站开发团队 分工郑州seo外包顾问热狗
  • 武汉山水人家装饰公司seo技术大师
  • 网站修改后怎么上传关键词在线播放免费
  • 洛阳霞光网络科技淄博seo推广
  • 做网站外国的印度疫情为何突然消失
  • 五泉山网页设计宣传网站制作昆明百度推广开户
  • 宝塔做的网站网页打不开企业培训课程
  • 网站是否有备案百度账号怎么改用户名
  • 广州旅游网站建设提高工作效率的工具