Browse Source

Merge branch 'master' of ssh://10.10.100.21/source/platform-bi-web

zhuth 7 years ago
parent
commit
6877475e01
2 changed files with 26 additions and 1 deletions
  1. 4 1
      package.json
  2. 22 0
      src/components/dashboardDesigner/layout.jsx

+ 4 - 1
package.json

@@ -10,10 +10,13 @@
     "antd": "^3.0.0",
     "app": "^0.1.0",
     "braft-editor": "^1.9.8",
+    "canvas2image": "^1.0.5",
     "dva": "^2.3.1",
     "dva-loading": "^2.0.3",
     "echarts": "^4.1.0",
     "echarts-for-react": "^2.0.12-beta.0",
+    "html2canvas": "^1.0.0-alpha.12",
+    "jspdf": "^1.4.1",
     "moment": "^2.19.3",
     "prop-types": "^15.6.2",
     "react": "^16.2.0",
@@ -29,7 +32,7 @@
     "babel-plugin-import": "^1.8.0",
     "eslint": "^4.19.1",
     "eslint-config-standard": "^11.0.0",
-    "eslint-config-umi": "^0.1.1",
+    "eslint-config-umi": "^0.1.4",
     "eslint-plugin-flowtype": "^2.34.1",
     "eslint-plugin-import": "^2.13.0",
     "eslint-plugin-jsx-a11y": "^5.1.1",

+ 22 - 0
src/components/dashboardDesigner/layout.jsx

@@ -10,6 +10,9 @@ import ElementConfig from './elementConfig'
 import './layout.less'
 import Element from './element'
 import '../../models/dataConnect'
+import html2canvas from 'html2canvas'
+import jsPDF from 'jspdf'
+
 
 class DashboardDesigner extends React.Component {
 
@@ -24,6 +27,20 @@ class DashboardDesigner extends React.Component {
         };
     }
 
+    saveToPNG = (element) => {
+        html2canvas(element).then(function(canvas) {
+                var pageData = canvas.toDataURL('image/png', 1.0);
+
+                //方向默认竖直,尺寸ponits,格式a4[595.28,841.89]
+                var pdf = new jsPDF('', 'pt', 'a4');
+
+                //addImage后两个参数控制添加图片的尺寸,此处将页面高度按照a4纸宽高比列进行压缩
+                pdf.addImage(pageData, 'PNG', 0, 0, 595.28, 592.28/canvas.width * canvas.height );
+
+                pdf.save('stone.pdf');
+        });
+    }
+
 
     showElementConfigBox = (o) => {
         this.setState({
@@ -141,6 +158,11 @@ class DashboardDesigner extends React.Component {
                                 }}>
                                     添加元素
                                 </Button>
+                                <Button onClick={() => {
+                                    this.saveToPNG(document.body)
+                                }}>
+                                    保存为PNG
+                                </Button>
                                 <span>编辑模式</span>
                                 <Switch 
                                     checkedChildren="开"