From 49576d386b9c287fe7acb8e4045d778f16680c39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A3=8E=E7=BB=A7=E7=BB=AD=E5=90=B9?= <17611323298@163.com> Date: Wed, 22 Mar 2023 18:29:46 +0800 Subject: [PATCH] =?UTF-8?q?=E5=91=A8=E6=8A=A5=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 + public/cdn/js/circliful.js | 96 + public/index.html | 1 + src/api/modules/http.js | 10 + src/router/page/index.js | 4 + src/views/Statistics/intelligentReporting.vue | 12 +- src/views/Statistics/reportDetail.vue | 2948 +++++++++++++++++ 7 files changed, 3067 insertions(+), 6 deletions(-) create mode 100644 public/cdn/js/circliful.js create mode 100644 src/views/Statistics/reportDetail.vue diff --git a/package.json b/package.json index cef0a3c..3212bf4 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,9 @@ "echarts": "^4.2.1", "element-ui": "2.12.0", "file-saver": "^2.0.5", + "html2canvas": "^1.4.1", "js-cookie": "^2.2.0", + "jspdf": "^2.5.1", "jszip": "^3.9.1", "jszip-utils": "^0.1.0", "less-loader": "^6.0.0", diff --git a/public/cdn/js/circliful.js b/public/cdn/js/circliful.js new file mode 100644 index 0000000..65d5d3a --- /dev/null +++ b/public/cdn/js/circliful.js @@ -0,0 +1,96 @@ +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define(factory);// AMD + } else if (typeof exports === 'object' && typeof module !== 'undefined') { + module.exports = factory(); // CommonJS + } else { + window.Progressbar = factory(); // Browser globals + } +}(this, function () { + function Progressbar(options){ + this.id = options.id; + this.value = options.value || 0; + this.width = options.width || 200; + this.height = options.height || 200; + this.bgColor = options.bgColor || '#F0ECEC'; + this.barColor = options.barColor || '#F9A825'; + this.fontColor = options.fontColor || '#606266'; + this.text = options.text || '%' + if(options.init){ + this.init(); + } + } + Progressbar.prototype.init = function(){ + console.log(this.id, '创建的id') + var canvas = document.getElementById(this.id); + console.log(canvas, '找没找到', document.getElementById(this.id)) + if(!canvas.getContext) { + throw new Error('your browser does not support canvas') + } + + if(!this.id){ + throw new Error('your need pass id ') + } + + var width = parseInt(this.width); + var height = parseInt(this.height); + canvas.setAttribute('width',width); + canvas.setAttribute('height',height); + + var ctx = canvas.getContext("2d"); + + var startAngle = 3 / 2 * Math.PI; + var percentage = 0; + var diffAngle = 0; + var cx = width / 2; + var cy = height / 2; + var timer = setInterval(draw, 50); + var value = this.value; + var bgColor = this.bgColor; + var barColor = this.barColor; + var fontColor = this.fontColor; + var text = this.text; + + function draw(){ + diffAngle = (percentage / 100) * Math.PI * 2; + + //清除矩形区域 + ctx.clearRect(0, 0, width, height); + + ctx.beginPath(); + + //设置线段宽度 + ctx.lineWidth = 15; + + //绘制圆 + ctx.arc(cx, cy, 50, 0, 2 * Math.PI, false); + + //设置填充色 + ctx.fillStyle = '#FFF'; + ctx.fill(); + + //绘制图形轮廓 + ctx.strokeStyle = bgColor; + ctx.stroke(); + + //绘制百分比进度 + ctx.beginPath(); + ctx.arc(cx, cy, 50, startAngle, diffAngle + startAngle, false); + ctx.strokeStyle = barColor; + ctx.stroke(); + + //绘制百分比文字 + ctx.fillStyle = fontColor; + ctx.textAlign = 'center'; + ctx.font = '16px serif'; + ctx.fillText(percentage + text, cx, cy + 6); + + if (percentage >= value) { + clearTimeout(timer); + } + + percentage++; + } + } + return Progressbar; +})); \ No newline at end of file diff --git a/public/index.html b/public/index.html index 12df838..0885a9b 100644 --- a/public/index.html +++ b/public/index.html @@ -15,6 +15,7 @@ + AI销讲助手 \ No newline at end of file