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

手机网站与电脑网站兼容seo实战培训教程

手机网站与电脑网站兼容,seo实战培训教程,企业做网站需要做哪些工作,响应式网站的组成文章目录前言一、Echarts准备工作1、查看是否安装了Echarts2、Echarts导入script 中3、使用Echarts创建图表二、报表制作打印html2canvas和jsPDF准备工作1、安装html2canvas和jsPDF依赖包2、html2canvas和jsPDF引用到script中3、制作并打印报表三、导出结果前言 若依框架前端中…

文章目录

  • 前言
  • 一、Echarts准备工作
    • 1、查看是否安装了Echarts
    • 2、Echarts导入script 中
    • 3、使用Echarts创建图表
  • 二、报表制作打印html2canvas和jsPDF准备工作
    • 1、安装html2canvas和jsPDF依赖包
    • 2、html2canvas和jsPDF引用到script中
    • 3、制作并打印报表
  • 三、导出结果


前言

若依框架前端中,要使用一些文本、数据、图表制作报表,然后导出,那么这个功能如何实现呢?

一、Echarts准备工作

1、查看是否安装了Echarts

查看是否安装了Echarts,方法是,终端运行:

npm list echarts

以下代表已安装成功:
在这里插入图片描述

如果没安装则执行安装依赖包:

npm install echarts --save

2、Echarts导入script 中

import * as echarts from 'echarts'

3、使用Echarts创建图表


const numbers = ref(['加载中', '加载中'])onMounted(() => {setTimeout(() => {numbers.value = ['10', '30'] const present = parseInt(numbers.value[0]);const total = parseInt(numbers.value[1]);const absent = total - present;// 初始化图表const chartDom = document.getElementById('attendanceChart');const myChart = echarts.init(chartDom);// 图表配置const option = {// 提示框配置tooltip: {trigger: 'item',  // 触发类型为数据项触发formatter: '{a} <br/>{b}: {c} ({d}%)'  // 提示框格式化字符串// {a} 系列名称, {b} 数据名称, {c} 数值, {d} 百分比},// 图例配置legend: {top: '0%',    // 图例距离容器顶部的距离left: 'center', // 图例水平居中textStyle: {   // 图例文字样式color: '#A6CAF4', // 文字颜色fontSize: 14     // 文字大小}},// 系列列表(一个图表可以包含多个系列)series: [{name: '你好',  // 系列名称type: 'pie',      // 图表类型为饼图radius: '100%',    // 饼图半径(单个值表示饼图,数组表示环图)top: '20%', // 饼图距离容器顶部的距离// 数据数组data: [{value: present,  name: '我好',    // 数据项名称itemStyle: {     // 数据项样式color: '#91CC75' // 出勤部分颜色(绿色)}},{value: absent,   // 数据值name: '未出勤',  // 数据项名称itemStyle: {     // 数据项样式color: '#409EF0' }}],// 平时不显示外侧标签和引导线label: {show: false},labelLine: {show: false},// 鼠标悬停时显示标签(类似图例效果)emphasis: {label: {show: true,position: 'inside', // 悬停时标签显示在内侧formatter: '{b}: {d}%', // 显示名称和百分比color: '#ffff', // 文字颜色fontSize: 14},itemStyle: {shadowBlur: 10,shadowOffsetX: 0,shadowColor: 'rgba(0, 0, 0, 0.5)'}}}]};// 使用配置项显示图表myChart.setOption(option);// 组件卸载时清理onBeforeUnmount(() => {// 如果图表实例存在,则销毁if (myChart) {myChart.dispose();  // 销毁图表实例,释放资源}});}, 300) // 延迟模拟数据加载
})

二、报表制作打印html2canvas和jsPDF准备工作

1、安装html2canvas和jsPDF依赖包

npm install  html2canvas jspdf

2、html2canvas和jsPDF引用到script中

import html2canvas from 'html2canvas';
import { jsPDF } from 'jspdf'; // jspdf需解构导入

3、制作并打印报表

1、按钮

<div>
<!-- 添加导出按钮 --><button @click="exportTextAndChartAsPDF" class="export-btn">导出报表</button>
</div>

2、按钮调用

const personnelData = [{ name: '张三', date: '2023-10-01', status: '出勤' },{ name: '李四', date: '2023-10-01', status: '缺勤' },{ name: '王五', date: '2023-10-02', status: '迟到' },
];const exportTextAndChartAsPDF = async () => {const pdf = new jsPDF('p', 'mm', 'a4'); // 纵向 A4 纸const lineHeight = 10; // 行高let startY = 40; // 初始 Y 坐标// 1. 添加标题pdf.setFontSize(16).setTextColor(0, 0, 0);pdf.text('人数报表', 105, 15, { align: 'center' });// 2. 添加表格标题行pdf.setFontSize(12);pdf.text('姓名', 20, 30);pdf.text('日期', 80, 30);pdf.text('状态', 140, 30);// 3. 添加数据行personnelData.forEach((item, index) => {const currentY = startY + index * lineHeight;pdf.text(item.name, 20, currentY);pdf.text(item.date, 80, currentY);pdf.text(item.status, 140, currentY);});// 4. 截取饼图并添加到 PDFconst chartContainer = document.getElementById('attendanceChart')?.parentNode; // 获取饼图容器(确保存在)if (chartContainer) {// 截图饼图区域const canvas = await html2canvas(chartContainer, {scale: 2, // 提高分辨率logging: false,useCORS: true, // 允许跨域图片backgroundColor: '#FFFFFF', // 背景设为白色});// 计算饼图在 PDF 中的位置(放在表格下方)const imgProps = { width: 80, height: 80 }; // 自定义饼图大小(mm)const imgX = 60; // X 坐标(居中偏左)const imgY = startY + personnelData.length * lineHeight + 20; // Y 坐标(表格下方留 20mm 间距)// 添加饼图到 PDFpdf.addImage(canvas.toDataURL('image/png'),'PNG',imgX,imgY,imgProps.width,imgProps.height);}// 5. 保存 PDFpdf.save('报表导出.pdf');
};

3、按钮样式

/* 添加导出按钮样式 */
.export-btn {position: absolute;top: 10px;right: 10px;z-index: 10;padding: 5px 10px;background-color: #409EFF;color: white;border: none;border-radius: 4px;cursor: pointer;
}.export-btn:hover {background-color: #66b1ff;
}

三、导出结果

在这里插入图片描述

http://www.dtcms.com/wzjs/85811.html

相关文章:

  • 网站建设最新签约登封网站关键词优化软件
  • 成都自适应网站建设网上电商怎么做
  • 音乐网站怎么建设销售新人怎么找客户
  • 网站和网店的区别百度电脑网页版
  • 快速网站模板公司网站制作费用
  • 左右网站模版免费建网站最新视频教程
  • 招聘网站怎么做seo百度关键词点击价格查询
  • 北京网站建设seo优化2345网址导航浏览器下载
  • 阿里云做网站要几天关键词排名优化公司外包
  • wordpress code 标签seo专业推广
  • 建设网站6980块钱贵吗seo快速排名案例
  • 竞彩网站建设咖啡seo是什么意思
  • 怎么做盗号网站手机手机系统流畅神器
  • 常规做网站要在工信部认证吗推广策划方案范文
  • 营销型网站功能模块seo是什么意思为什么要做seo
  • bing 提交网站1688seo优化是什么
  • 网站建设---部署与发布seo排名快速优化
  • 个人求职网站设计福建百度代理公司
  • 广州力科网站建设公司代运营公司可靠吗
  • 东莞24小时推广首页seo网络优化是什么意思
  • 网站的结构布局怎样上百度做广告
  • 金华网站建设郑州网站制作推广公司
  • wordpress没有备案aso优化费用
  • 网站建设abc网络推广主要做什么
  • 网站 美化百度指数介绍
  • 凡科可以做淘宝客网站吗sem和seo的区别
  • 营销型企业网站建设教案个人信息怎么在百度推广
  • 青海省网站建设公司深圳做网站公司哪家好
  • 淘宝客自建网站做还是用微信qq做seo
  • 抚州市网站建设百度seo公司