Browse Source

导出pdf

zq940222 4 months ago
parent
commit
f70cf6ddbd
54 changed files with 3256 additions and 588 deletions
  1. 0 0
      src/assets/data/worldGeo-zh.json
  2. 38 0
      src/assets/pdfExport/NO1.svg
  3. 41 0
      src/assets/pdfExport/NO2.svg
  4. 43 0
      src/assets/pdfExport/NO3.svg
  5. 25 0
      src/assets/pdfExport/changweici.svg
  6. 23 0
      src/assets/pdfExport/conversionRate.svg
  7. 27 0
      src/assets/pdfExport/dachengshijian.svg
  8. 34 0
      src/assets/pdfExport/dachengtianshu.svg
  9. 1 0
      src/assets/pdfExport/fangwenliang.svg
  10. 38 0
      src/assets/pdfExport/img/NO1.svg
  11. 41 0
      src/assets/pdfExport/img/NO2.svg
  12. 43 0
      src/assets/pdfExport/img/NO3.svg
  13. BIN
      src/assets/pdfExport/img/advich-bg.png
  14. 25 0
      src/assets/pdfExport/img/changweici.svg
  15. 23 0
      src/assets/pdfExport/img/conversionRate.svg
  16. BIN
      src/assets/pdfExport/img/demo.jpg
  17. BIN
      src/assets/pdfExport/img/down.png
  18. BIN
      src/assets/pdfExport/img/erweima.jpg
  19. BIN
      src/assets/pdfExport/img/erweima.png
  20. BIN
      src/assets/pdfExport/img/footer-bg.png
  21. 1 0
      src/assets/pdfExport/img/outlink1.svg
  22. 1 0
      src/assets/pdfExport/img/outlink2.svg
  23. 1 0
      src/assets/pdfExport/img/outlink3.svg
  24. 1 0
      src/assets/pdfExport/img/pingjun.svg
  25. 14 0
      src/assets/pdfExport/img/pvicon.svg
  26. BIN
      src/assets/pdfExport/img/shang.png
  27. BIN
      src/assets/pdfExport/img/title-dot.png
  28. BIN
      src/assets/pdfExport/img/title-left-bg.png
  29. BIN
      src/assets/pdfExport/img/title-right-bg.png
  30. BIN
      src/assets/pdfExport/img/top.png
  31. BIN
      src/assets/pdfExport/img/top_bg.png
  32. 31 0
      src/assets/pdfExport/img/unReadEnquiryNum.svg
  33. 14 0
      src/assets/pdfExport/img/uvicon.svg
  34. BIN
      src/assets/pdfExport/img/xiaofei_bg.png
  35. BIN
      src/assets/pdfExport/img/yue_bg.png
  36. 27 0
      src/assets/pdfExport/img/zhidingci.svg
  37. 1 0
      src/assets/pdfExport/keywordsrank3.svg
  38. 13 0
      src/assets/pdfExport/lianjieshu.svg
  39. 14 0
      src/assets/pdfExport/pvicon.svg
  40. 29 0
      src/assets/pdfExport/shengyufuwutianshu.svg
  41. 669 0
      src/assets/pdfExport/style/index.less
  42. 185 0
      src/assets/pdfExport/style/reset.less
  43. 31 0
      src/assets/pdfExport/unReadEnquiryNum.svg
  44. 14 0
      src/assets/pdfExport/uvicon.svg
  45. 21 0
      src/assets/pdfExport/wenzhangshu.svg
  46. 23 0
      src/assets/pdfExport/xunpanshu.svg
  47. 27 0
      src/assets/pdfExport/zhidingci.svg
  48. 10 1
      src/router/routes/index.ts
  49. 420 0
      src/views/adweb/seo/Pdf.vue
  50. 0 587
      src/views/adweb/seo/SeoKeywordsRankListCopy.vue
  51. 13 0
      src/views/adweb/seo/SeoPdfExport.api.ts
  52. 34 0
      src/views/adweb/seo/SeoPdfExport.data.ts
  53. 1093 0
      src/views/adweb/seo/SeoPdfExport.vue
  54. 167 0
      src/views/adweb/seo/components/SeoPdfExportModal.vue

File diff suppressed because it is too large
+ 0 - 0
src/assets/data/worldGeo-zh.json


+ 38 - 0
src/assets/pdfExport/NO1.svg

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F5D968;}
+	.st1{fill:#DB7C2E;}
+</style>
+<g>
+	<path class="st0" d="M102.5,14.7L26.1,58c-1.6,0.9-2.6,2.6-2.6,4.4l-0.7,87.9c0,1.8,0.9,3.5,2.5,4.4l75.7,44.5
+		c1.6,0.9,3.5,0.9,5.1,0l76.4-43.3c1.6-0.9,2.6-2.6,2.6-4.4l0.7-87.9c0-1.8-0.9-3.5-2.5-4.4l-75.7-44.5
+		C106,13.8,104,13.8,102.5,14.7z M162.2,144l-56,31.8c-1.6,0.9-3.5,0.9-5.1,0l-55.5-32.7c-1.6-0.9-2.5-2.6-2.5-4.4l0.5-64.4
+		c0-1.8,1-3.5,2.6-4.4l56-31.8c1.6-0.9,3.5-0.9,5.1,0l55.5,32.7c1.6,0.9,2.5,2.6,2.5,4.4l-0.5,64.4
+		C164.8,141.4,163.8,143.1,162.2,144z"/>
+	<g>
+		<path class="st1" d="M78.4,131.4h19.4V82.8H81.5v-9.5c9-1.5,15.2-3.4,21-6.5h13.3v64.6h16.9v12.4H78.5L78.4,131.4L78.4,131.4z"/>
+	</g>
+	<path class="st1" d="M77.1,1.3L77.1,1.3c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
+		c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+		s-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+		c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2
+		s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0.1,0.2c0,0.1,0,0.1,0.1,0.2
+		c0,0.1,0.1,0.1,0.1,0.2s0,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2
+		s0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2C75.9,8,76,8,76,8c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+		c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+		c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0
+		c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0l0,0L69.6,27L48.1,14c2.4-2.6,2.9-6.5,1.1-9.7
+		c-2.3-4-7.3-5.4-11.3-3.1s-5.4,7.3-3.1,11.3c1.9,3.3,5.7,4.8,9.2,3.9L43.1,42l-21-0.4c0.8-1.3,0.8-2.9,0-4.3l0,0
+		c-1.2-2.1-3.8-2.8-5.9-1.6l0,0c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1
+		c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1c-0.1,0.1-0.2,0.2-0.2,0.3c0,0,0,0,0,0.1c-0.1,0.1-0.1,0.2-0.2,0.3l0,0
+		c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.4l0,0c0,0.1-0.1,0.3-0.1,0.4l0,0c0,0.1-0.1,0.2-0.1,0.4l0,0
+		c0,0.1,0,0.3,0,0.4l0,0c0,0.1,0,0.2,0,0.4l0,0c0,0.1,0,0.2,0,0.4c0,0,0,0,0,0.1s0,0.2,0.1,0.3v0.1c0,0.1,0.1,0.2,0.1,0.3v0.1
+		c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0.1,0.1,0.1c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.1
+		c0,0.1,0.1,0.2,0.1,0.2s0,0,0.1,0.1s0.1,0.2,0.2,0.3l0,0c1,1.2,2.6,1.7,4.1,1.3l0,0c0.1,0,0.3-0.1,0.4-0.1h0.1
+		c0.1,0,0.2-0.1,0.3-0.1s0.1-0.1,0.2-0.1c0.1,0,0.2-0.1,0.2-0.1l0,0l0,0c0,0,0.1,0,0.1-0.1l24.8,27.3l47.1-26.8l-10.9-35
+		c1.8-1.3,2.4-3.7,1.3-5.7l0,0C81.8,0.8,79.2,0.1,77.1,1.3z"/>
+</g>
+</svg>

+ 41 - 0
src/assets/pdfExport/NO2.svg

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#7CBFBF;}
+	.st1{fill:#B1DEE0;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M80.4,135.2C100.9,116.8,113,102.6,113,91c0-7.7-4.2-12.2-11.3-12.2c-5.5,0-10.1,3.6-13.9,7.8l-8.2-8.2
+			c6.9-7.3,13.7-11.4,24-11.4c14.3,0,23.8,9.2,23.8,23.3c0,13.7-11.3,28.4-25.1,41.8c3.8-0.4,8.8-0.8,12.2-0.8H131v12.6H80.4V135.2z
+			"/>
+	</g>
+	<g>
+		<path class="st1" d="M102.7,14.6L26.2,57.9c-1.6,0.9-2.6,2.6-2.6,4.4l-0.7,88c0,1.8,0.9,3.5,2.5,4.4l75.8,44.6
+			c1.6,0.9,3.5,0.9,5.1,0l76.5-43.4c1.6-0.9,2.6-2.6,2.6-4.4l0.7-88c0-1.8-0.9-3.5-2.5-4.4l-75.8-44.6
+			C106.3,13.7,104.3,13.7,102.7,14.6z M162.6,144.1l-56.1,31.8c-1.6,0.9-3.5,0.9-5.1,0l-55.6-32.7c-1.6-0.9-2.5-2.6-2.5-4.4
+			l0.5-64.5c0-1.8,1-3.5,2.6-4.4L102.5,38c1.6-0.9,3.5-0.9,5.1,0l55.6,32.7c1.6,0.9,2.5,2.6,2.5,4.4l-0.5,64.5
+			C165.2,141.5,164.2,143.2,162.6,144.1z"/>
+		<path class="st0" d="M76.9,1.2L76.9,1.2c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1s-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
+			c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+			c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s0,0.1-0.1,0.2
+			c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2
+			s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0.1,0.2c0,0.1,0,0.1,0.1,0.2C75,6.3,75,6.4,75,6.5c0,0.1,0,0.1,0.1,0.2
+			c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2
+			C75.7,8,75.8,8,75.8,8C76,8,76,8,76.1,8.1c0,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1s0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+			c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2,0.1
+			C78,9,78,9,78.1,9.1c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0
+			c-0.1,0.1-0.1,0.1,0,0.1c0.1,0,0.1,0,0.2,0l0,0L69.3,27L47.7,14c2.4-2.6,2.9-6.5,1.1-9.7c-2.3-4-7.3-5.4-11.3-3.1
+			s-5.4,7.3-3.1,11.3c1.9,3.3,5.7,4.8,9.2,3.9l-0.8,25.8l-21-0.4c0.8-1.3,0.8-2.9,0-4.3l0,0c-1.2-2.1-3.8-2.8-5.9-1.6l0,0
+			c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1
+			c-0.1,0.1-0.2,0.2-0.2,0.3c0,0,0,0,0,0.1c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.4
+			l0,0c0,0.1-0.1,0.3-0.1,0.4l0,0c0,0.1-0.1,0.2-0.1,0.4l0,0c0,0.1,0,0.3,0,0.4l0,0c0,0.1,0,0.2,0,0.4l0,0c0,0.1,0,0.2,0,0.4
+			c0,0,0,0,0,0.1s0,0.2,0.1,0.3v0.1c0,0.1,0.1,0.2,0.1,0.3V41c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0.1,0.1,0.1c0,0.1,0.1,0.1,0.1,0.2
+			c0,0.1,0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.1c0,0.1,0.1,0.2,0.1,0.2s0,0,0.1,0.1c0.1,0.1,0.1,0.2,0.2,0.3l0,0
+			c1,1.2,2.6,1.7,4.1,1.3l0,0c0.1,0,0.3-0.1,0.4-0.1h0.1c0.1,0,0.2-0.1,0.3-0.1c0.1,0,0.1-0.1,0.2-0.1s0.2-0.1,0.2-0.1l0,0l0,0
+			c0,0,0.1,0,0.1-0.1l24.8,27.3l47.2-26.8L81.5,8.5c1.8-1.3,2.4-3.7,1.3-5.7l0,0C81.6,0.7,79,0,76.9,1.2z"/>
+	</g>
+</g>
+</svg>

+ 43 - 0
src/assets/pdfExport/NO3.svg

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#9E5243;}
+	.st1{fill:#ED997C;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M76,134.8l7-9.5c4.5,4.4,10,7.8,16.8,7.8c7.7,0,12.9-3.8,12.9-10.5c0-7.4-4.4-12-20.8-12V99.8
+			c13.9,0,18.4-4.8,18.4-11.5c0-5.9-3.7-9.4-10.1-9.5c-5.4,0.1-9.8,2.7-14.3,6.7l-7.6-9.2c6.5-5.7,13.8-9.3,22.6-9.3
+			c14.6,0,24.5,7.1,24.5,20.1c0,8.2-4.6,14.1-12.6,17.2v0.5c8.6,2.3,15.1,8.7,15.1,18.6c0,13.9-12.1,21.9-26.5,21.9
+			C89.3,145.4,81.3,140.9,76,134.8z"/>
+	</g>
+	<g>
+		<path class="st1" d="M102.7,14.7L26.3,58c-1.6,0.9-2.6,2.6-2.6,4.4L23,150.3c0,1.8,0.9,3.5,2.5,4.4l75.7,44.5
+			c1.6,0.9,3.5,0.9,5.1,0l76.4-43.3c1.6-0.9,2.6-2.6,2.6-4.4l0.7-87.9c0-1.8-0.9-3.5-2.5-4.4l-75.7-44.5
+			C106.2,13.8,104.3,13.8,102.7,14.7z M162.5,144l-56,31.8c-1.6,0.9-3.5,0.9-5.1,0l-55.5-32.7c-1.6-0.9-2.5-2.6-2.5-4.4l0.5-64.4
+			c0-1.8,1-3.5,2.6-4.4l56-31.9c1.6-0.9,3.5-0.9,5.1,0l55.5,32.7c1.6,0.9,2.5,2.6,2.5,4.4l-0.5,64.4
+			C165.1,141.4,164.1,143.1,162.5,144z"/>
+		<path class="st0" d="M77.1,1.3L77.1,1.3c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
+			c-0.1,0-0.1,0.1-0.2,0.1s-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+			c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2
+			c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2
+			s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0.1,0.2c0,0.1,0,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2
+			c0,0.1,0,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2
+			c0,0.1,0.1,0.1,0.1,0.2C75.9,8,76,8,76,8c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+			c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+			c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0
+			c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0l0,0L69.6,27L48,14c2.4-2.6,2.9-6.5,1.1-9.7
+			c-2.3-4-7.3-5.4-11.3-3.1s-5.4,7.3-3.1,11.3c1.9,3.3,5.7,4.8,9.2,3.9l-1,25.9l-21-0.4c0.8-1.3,0.8-2.9,0-4.3l0,0
+			c-1.2-2.1-3.8-2.8-5.9-1.6l0,0c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1
+			c-0.1,0.1-0.1,0.1-0.2,0.2L15,36.8c-0.1,0.1-0.2,0.2-0.2,0.3c0,0,0,0,0,0.1c-0.1,0.1-0.1,0.2-0.2,0.3l0,0
+			c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.4l0,0c0,0.1-0.1,0.3-0.1,0.4l0,0c0,0.1-0.1,0.2-0.1,0.4l0,0
+			c0,0.1,0,0.3,0,0.4l0,0c0,0.1,0,0.2,0,0.4l0,0c0,0.1,0,0.2,0,0.4c0,0,0,0,0,0.1s0,0.2,0.1,0.3v0.1c0,0.1,0.1,0.2,0.1,0.3v0.1
+			c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0.1,0.1,0.1c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.1
+			c0,0.1,0.1,0.2,0.1,0.2s0,0,0.1,0.1s0.1,0.2,0.2,0.3l0,0c1,1.2,2.6,1.7,4.1,1.3l0,0c0.1,0,0.3-0.1,0.4-0.1h0.1
+			c0.1,0,0.2-0.1,0.3-0.1s0.1-0.1,0.2-0.1c0.1,0,0.2-0.1,0.2-0.1l0,0l0,0c0,0,0.1,0,0.1-0.1l24.8,27.3l47.1-26.8L81.7,8.6
+			c1.8-1.3,2.4-3.7,1.3-5.7l0,0C81.8,0.8,79.1,0.1,77.1,1.3z"/>
+	</g>
+</g>
+</svg>

+ 25 - 0
src/assets/pdfExport/changweici.svg

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#58CBA8;}
+</style>
+<title>指定词备份</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="指定词备份">
+		<path id="形状" class="st0" d="M159.9,0.8H40c-14.7,0-26.7,12-26.7,26.9v144.6c0,14.8,12,26.9,26.7,26.9h120
+			c14.7,0,26.7-12,26.7-26.9V27.7C186.6,12.8,174.6,0.8,159.9,0.8z M173.4,172.2c0,7.4-6,13.4-13.3,13.4H40c-7.4,0-13.3-6-13.3-13.4
+			V27.7c0-7.4,6-13.4,13.3-13.4h120c7.4,0,13.3,6,13.3,13.4V172.2z"/>
+		<path id="路径" class="st0" d="M49.3,88.1H124c3.7,0,6.6-2.9,6.6-6.7c0-3.8-3-6.7-6.6-6.7H49.3c-3.7,0-6.6,3-6.6,6.7
+			C42.5,85.1,45.5,88.1,49.3,88.1z"/>
+		<path id="路径_1_" class="st0" d="M150.6,36.1H49.3c-3.7,0-6.6,2.9-6.6,6.7c0,3.8,2.9,6.7,6.6,6.7h101.4c3.7,0,6.6-2.9,6.6-6.7
+			C157.2,39,154.4,36.1,150.6,36.1z"/>
+		<path id="路径_2_" class="st0" d="M137.3,113.2h-88c-3.7,0-6.6,3-6.6,6.7l0,0c0,3.8,2.9,6.7,6.6,6.7h88c3.7,0,6.6-3,6.6-6.7l0,0
+			C143.9,116.2,141,113.2,137.3,113.2z"/>
+		<path id="路径_3_" class="st0" d="M149,151.8H49.3c-3.7,0-6.6,3-6.6,6.7l0,0c0,3.8,2.9,6.7,6.6,6.7H149c3.7,0,6.6-3,6.6-6.7l0,0
+			C155.6,154.7,152.8,151.8,149,151.8z"/>
+	</g>
+</g>
+</svg>

+ 23 - 0
src/assets/pdfExport/conversionRate.svg

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#5350E3;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M200,100c0,26.6-10.3,51.7-29.2,70.6s-44,29.4-70.7,29.4C44.9,200,0,155.1,0,100S44.9,0,100,0
+			c11.5,0,22.8,1.9,33.4,5.7c1.7,0.6,3,1.8,3.7,3.5c0.7,1.6,0.8,3.4,0.2,5c-1.2,3.4-4.9,5.1-8.3,4c-9.2-3.3-19-5-29-5
+			c-47.8,0-86.7,38.9-86.7,86.7s38.9,86.7,86.7,86.7s86.7-38.9,86.7-86.7c0.1-19.5-6.6-38.7-18.8-53.9c-1.1-1.3-1.6-3-1.4-4.8
+			c0.2-1.8,1.1-3.4,2.5-4.5c1.3-1.1,3-1.6,4.8-1.4c1.8,0.2,3.4,1.1,4.5,2.5C192.4,55.4,200.1,77.5,200,100z"/>
+	</g>
+	<g>
+		<path class="st0" d="M152.9,87.6c0,1.7-0.7,3.4-2,4.6c-1.2,1.2-2.9,1.9-4.7,1.9H47.1c-3.7,0-6.6-3-6.6-6.6s3-6.6,6.6-6.6h83.2
+			l-12.7-12.7c-1.3-1.4-1.9-3.1-1.9-4.9c0.1-1.7,0.8-3.3,2.1-4.5c2.5-2.5,6.5-2.5,9.1,0l24,24C152.2,84.1,152.9,85.8,152.9,87.6z"/>
+		<path class="st0" d="M152.7,112.4c0,3.7-3,6.6-6.6,6.6H63l12.7,12.7c1.3,1.3,2,3,2,4.8s-0.7,3.4-2,4.6c-1.2,1.2-2.8,1.8-4.7,1.8
+			c-1.8,0-3.5-0.7-4.6-1.9l-24-24c-1.3-1.3-2-3-2-4.8c0-1.7,0.7-3.4,2-4.6c1.2-1.2,2.9-1.9,4.6-1.9h99.1
+			C149.8,105.8,152.7,108.7,152.7,112.4z"/>
+	</g>
+</g>
+</svg>

+ 27 - 0
src/assets/pdfExport/dachengshijian.svg

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F0B357;}
+</style>
+<title>日历备份</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="日历备份">
+		<path id="形状" class="st0" d="M172.5,200h-145C12.5,200,0,187.5,0,172.5V40c0-15,12.5-27.5,27.5-27.5h10c3.8,0,6.2,2.5,6.2,6.2
+			v18.8c0,7.5,5,12.5,12.5,12.5s12.5-5,12.5-12.5V18.7c-1.2-3.7,2.5-6.2,5-6.2h50c3.8,0,6.3,2.5,6.3,6.2v18.8
+			c0,7.5,5,12.5,12.5,12.5S155,45,155,37.5V18.7c0-3.7,2.5-6.2,6.2-6.2h11.2c15,0,27.5,12.5,27.5,27.5v133.8
+			C200,187.5,187.5,200,172.5,200z M27.5,25c-8.8,0-15,6.2-15,15v133.8c0,7.5,6.2,13.8,15,13.8h146.2c7.5,0,15-6.2,15-15V40
+			c-1.2-8.8-7.5-15-16.2-15h-5v12.5c0,13.8-11.2,25-25,25s-25-11.2-25-25V25H80v12.5c0,13.8-11.2,25-25,25s-25-11.2-25-25V25H27.5z"
+			/>
+		<path id="路径" class="st0" d="M88.8,159.7L88.8,159.7L88.8,159.7c1.4,1.3,3.2,2,5.3,2c2,0,3.9-0.8,5.3-2h0l0,0
+			c0.2-0.2,0.4-0.4,0.6-0.6l58.2-58.2c3.1-3.1,3.1-8.1,0-11.1c-3.1-3.1-8.1-3.1-11.1,0l-52.9,52.9l-30.6-30.6
+			c-3.1-3.1-8.1-3.1-11.1,0c-3.1,3.1-3.1,8.1,0,11.1l35.9,35.9C88.4,159.3,88.6,159.5,88.8,159.7z"/>
+		<path id="路径_1_" class="st0" d="M55,43.7c-2.5,0-6.2-2.5-6.2-6.2V6.2C48.8,2.5,52.5,0,55,0c2.5,0,6.2,2.5,6.2,6.2v31.2
+			C61.2,41.2,58.7,43.7,55,43.7z"/>
+		<path id="路径_2_" class="st0" d="M142.5,43.7c-3.8,0-6.2-2.5-6.2-6.2V6.2c0-3.7,2.5-6.2,6.2-6.2s6.2,2.5,6.2,6.2v31.2
+			C148.8,41.2,146.2,43.7,142.5,43.7z"/>
+	</g>
+</g>
+</svg>

+ 34 - 0
src/assets/pdfExport/dachengtianshu.svg

@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#58CBA8;}
+</style>
+<title>分期-出行天数备份</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="分期_xFF0D_出行天数备份">
+		<path id="形状" class="st0" d="M172.5,200h-145C12.5,200,0,187.5,0,172.5V40c0-15,12.5-27.5,27.5-27.5h10c3.8,0,6.2,2.5,6.2,6.2
+			v18.8c0,7.5,5,12.5,12.5,12.5s12.5-5,12.5-12.5V18.7c-1.2-3.7,2.5-6.2,5-6.2h50c3.8,0,6.3,2.5,6.3,6.2v18.8
+			c0,7.5,5,12.5,12.5,12.5S155,45,155,37.5V18.7c0-3.7,2.5-6.2,6.2-6.2h11.2c15,0,27.5,12.5,27.5,27.5v133.8
+			C200,187.5,187.5,200,172.5,200z M27.5,25c-8.8,0-15,6.2-15,15v133.8c0,7.5,6.2,13.8,15,13.8h146.2c7.5,0,15-6.2,15-15V40
+			c-1.2-8.8-7.5-15-16.2-15h-5v12.5c0,13.8-11.2,25-25,25s-25-11.2-25-25V25H80v12.5c0,13.8-11.2,25-25,25s-25-11.2-25-25V25H27.5z"
+			/>
+		<path id="路径" class="st0" d="M55,43.7c-2.5,0-6.2-2.5-6.2-6.2V6.2C48.8,2.5,52.5,0,55,0c2.5,0,6.2,2.5,6.2,6.2v31.2
+			C61.2,41.2,58.7,43.7,55,43.7z"/>
+		<path id="路径_1_" class="st0" d="M142.5,43.7c-3.8,0-6.2-2.5-6.2-6.2V6.2c0-3.7,2.5-6.2,6.2-6.2s6.2,2.5,6.2,6.2v31.2
+			C148.8,41.2,146.2,43.7,142.5,43.7z"/>
+		<polygon id="路径_2_" class="st0" points="37.5,81.2 56.2,81.2 56.2,100 37.5,100 		"/>
+		<polygon id="路径_3_" class="st0" points="68.8,81.2 87.5,81.2 87.5,100 68.8,100 		"/>
+		<polygon id="路径_4_" class="st0" points="100,81.2 118.8,81.2 118.8,100 100,100 		"/>
+		<polygon id="路径_5_" class="st0" points="131.2,81.2 150,81.2 150,100 131.2,100 		"/>
+		<polygon id="路径_6_" class="st0" points="37.5,112.5 56.2,112.5 56.2,131.2 37.5,131.2 		"/>
+		<polygon id="路径_7_" class="st0" points="68.8,112.5 87.5,112.5 87.5,131.2 68.8,131.2 		"/>
+		<polygon id="路径_8_" class="st0" points="100,112.5 118.8,112.5 118.8,131.2 100,131.2 		"/>
+		<polygon id="路径_9_" class="st0" points="131.2,112.5 150,112.5 150,131.2 131.2,131.2 		"/>
+		<polygon id="路径_10_" class="st0" points="37.5,143.7 56.2,143.7 56.2,162.5 37.5,162.5 		"/>
+		<polygon id="路径_11_" class="st0" points="68.8,143.7 87.5,143.7 87.5,162.5 68.8,162.5 		"/>
+	</g>
+</g>
+</svg>

+ 1 - 0
src/assets/pdfExport/fangwenliang.svg

@@ -0,0 +1 @@
+<svg class="icon" style="width: 1em;height: 1em;vertical-align: middle;fill: currentColor;overflow: hidden;" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path d="M415.7 587.3c-59.6 0-115.6-23.2-157.7-65.3-42.1-42.1-65.3-98.2-65.3-157.7s23.2-115.6 65.3-157.7 98.2-65.3 157.7-65.3 115.6 23.2 157.7 65.3c42.1 42.1 65.3 98.2 65.3 157.7S615.5 479.9 573.4 522c-42.1 42.1-98.2 65.3-157.7 65.3z m0-386.2c-89.9 0-163.1 73.2-163.1 163.1 0 89.9 73.2 163.1 163.1 163.1 89.9 0 163.1-73.2 163.1-163.1-0.1-89.9-73.2-163.1-163.1-163.1z" fill="#333333" /><path d="M767.5 879.1h-60c0-77.9-30.4-151.2-85.5-206.3s-128.4-85.5-206.3-85.5-151.2 30.4-206.3 85.5-85.5 128.4-85.5 206.3h-60c0-47.5 9.3-93.6 27.7-136.9 17.7-41.9 43.1-79.5 75.4-111.8 32.3-32.3 69.9-57.7 111.8-75.4 43.4-18.4 89.5-27.7 136.9-27.7s93.6 9.3 136.9 27.7c41.9 17.7 79.5 43.1 111.8 75.4 32.3 32.3 57.7 69.9 75.4 111.8 18.4 43.3 27.7 89.4 27.7 136.9z" fill="#333333" /><path d="M714.5 519.9l-26.2-54c51.5-25.1 83.6-72.4 83.6-123.4 0-78-73.2-141.4-163.1-141.4v-60c58.9 0 114.5 20.5 156.4 57.8 43 38.1 66.6 89.2 66.6 143.6 0 74.2-44.9 142.2-117.3 177.4z" fill="#F0C900" /><path d="M960.5 814.7h-60c0-70.4-23.9-138.7-67.2-192.3-42.6-52.6-101.4-88.2-165.7-100l10.9-59C756.9 477.9 828.4 521 880 584.7c51.9 64.2 80.5 145.9 80.5 230z" fill="#F0C900" /></svg>

+ 38 - 0
src/assets/pdfExport/img/NO1.svg

@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F5D968;}
+	.st1{fill:#DB7C2E;}
+</style>
+<g>
+	<path class="st0" d="M102.5,14.7L26.1,58c-1.6,0.9-2.6,2.6-2.6,4.4l-0.7,87.9c0,1.8,0.9,3.5,2.5,4.4l75.7,44.5
+		c1.6,0.9,3.5,0.9,5.1,0l76.4-43.3c1.6-0.9,2.6-2.6,2.6-4.4l0.7-87.9c0-1.8-0.9-3.5-2.5-4.4l-75.7-44.5
+		C106,13.8,104,13.8,102.5,14.7z M162.2,144l-56,31.8c-1.6,0.9-3.5,0.9-5.1,0l-55.5-32.7c-1.6-0.9-2.5-2.6-2.5-4.4l0.5-64.4
+		c0-1.8,1-3.5,2.6-4.4l56-31.8c1.6-0.9,3.5-0.9,5.1,0l55.5,32.7c1.6,0.9,2.5,2.6,2.5,4.4l-0.5,64.4
+		C164.8,141.4,163.8,143.1,162.2,144z"/>
+	<g>
+		<path class="st1" d="M78.4,131.4h19.4V82.8H81.5v-9.5c9-1.5,15.2-3.4,21-6.5h13.3v64.6h16.9v12.4H78.5L78.4,131.4L78.4,131.4z"/>
+	</g>
+	<path class="st1" d="M77.1,1.3L77.1,1.3c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
+		c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+		s-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+		c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2
+		s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0.1,0.2c0,0.1,0,0.1,0.1,0.2
+		c0,0.1,0.1,0.1,0.1,0.2s0,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2
+		s0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2C75.9,8,76,8,76,8c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+		c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+		c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0
+		c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0l0,0L69.6,27L48.1,14c2.4-2.6,2.9-6.5,1.1-9.7
+		c-2.3-4-7.3-5.4-11.3-3.1s-5.4,7.3-3.1,11.3c1.9,3.3,5.7,4.8,9.2,3.9L43.1,42l-21-0.4c0.8-1.3,0.8-2.9,0-4.3l0,0
+		c-1.2-2.1-3.8-2.8-5.9-1.6l0,0c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1
+		c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1c-0.1,0.1-0.2,0.2-0.2,0.3c0,0,0,0,0,0.1c-0.1,0.1-0.1,0.2-0.2,0.3l0,0
+		c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.4l0,0c0,0.1-0.1,0.3-0.1,0.4l0,0c0,0.1-0.1,0.2-0.1,0.4l0,0
+		c0,0.1,0,0.3,0,0.4l0,0c0,0.1,0,0.2,0,0.4l0,0c0,0.1,0,0.2,0,0.4c0,0,0,0,0,0.1s0,0.2,0.1,0.3v0.1c0,0.1,0.1,0.2,0.1,0.3v0.1
+		c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0.1,0.1,0.1c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.1
+		c0,0.1,0.1,0.2,0.1,0.2s0,0,0.1,0.1s0.1,0.2,0.2,0.3l0,0c1,1.2,2.6,1.7,4.1,1.3l0,0c0.1,0,0.3-0.1,0.4-0.1h0.1
+		c0.1,0,0.2-0.1,0.3-0.1s0.1-0.1,0.2-0.1c0.1,0,0.2-0.1,0.2-0.1l0,0l0,0c0,0,0.1,0,0.1-0.1l24.8,27.3l47.1-26.8l-10.9-35
+		c1.8-1.3,2.4-3.7,1.3-5.7l0,0C81.8,0.8,79.2,0.1,77.1,1.3z"/>
+</g>
+</svg>

+ 41 - 0
src/assets/pdfExport/img/NO2.svg

@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#7CBFBF;}
+	.st1{fill:#B1DEE0;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M80.4,135.2C100.9,116.8,113,102.6,113,91c0-7.7-4.2-12.2-11.3-12.2c-5.5,0-10.1,3.6-13.9,7.8l-8.2-8.2
+			c6.9-7.3,13.7-11.4,24-11.4c14.3,0,23.8,9.2,23.8,23.3c0,13.7-11.3,28.4-25.1,41.8c3.8-0.4,8.8-0.8,12.2-0.8H131v12.6H80.4V135.2z
+			"/>
+	</g>
+	<g>
+		<path class="st1" d="M102.7,14.6L26.2,57.9c-1.6,0.9-2.6,2.6-2.6,4.4l-0.7,88c0,1.8,0.9,3.5,2.5,4.4l75.8,44.6
+			c1.6,0.9,3.5,0.9,5.1,0l76.5-43.4c1.6-0.9,2.6-2.6,2.6-4.4l0.7-88c0-1.8-0.9-3.5-2.5-4.4l-75.8-44.6
+			C106.3,13.7,104.3,13.7,102.7,14.6z M162.6,144.1l-56.1,31.8c-1.6,0.9-3.5,0.9-5.1,0l-55.6-32.7c-1.6-0.9-2.5-2.6-2.5-4.4
+			l0.5-64.5c0-1.8,1-3.5,2.6-4.4L102.5,38c1.6-0.9,3.5-0.9,5.1,0l55.6,32.7c1.6,0.9,2.5,2.6,2.5,4.4l-0.5,64.5
+			C165.2,141.5,164.2,143.2,162.6,144.1z"/>
+		<path class="st0" d="M76.9,1.2L76.9,1.2c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1s-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
+			c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+			c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s0,0.1-0.1,0.2
+			c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2
+			s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0.1,0.2c0,0.1,0,0.1,0.1,0.2C75,6.3,75,6.4,75,6.5c0,0.1,0,0.1,0.1,0.2
+			c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2
+			C75.7,8,75.8,8,75.8,8C76,8,76,8,76.1,8.1c0,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1s0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+			c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2,0.1
+			C78,9,78,9,78.1,9.1c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0
+			c-0.1,0.1-0.1,0.1,0,0.1c0.1,0,0.1,0,0.2,0l0,0L69.3,27L47.7,14c2.4-2.6,2.9-6.5,1.1-9.7c-2.3-4-7.3-5.4-11.3-3.1
+			s-5.4,7.3-3.1,11.3c1.9,3.3,5.7,4.8,9.2,3.9l-0.8,25.8l-21-0.4c0.8-1.3,0.8-2.9,0-4.3l0,0c-1.2-2.1-3.8-2.8-5.9-1.6l0,0
+			c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1
+			c-0.1,0.1-0.2,0.2-0.2,0.3c0,0,0,0,0,0.1c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.4
+			l0,0c0,0.1-0.1,0.3-0.1,0.4l0,0c0,0.1-0.1,0.2-0.1,0.4l0,0c0,0.1,0,0.3,0,0.4l0,0c0,0.1,0,0.2,0,0.4l0,0c0,0.1,0,0.2,0,0.4
+			c0,0,0,0,0,0.1s0,0.2,0.1,0.3v0.1c0,0.1,0.1,0.2,0.1,0.3V41c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0.1,0.1,0.1c0,0.1,0.1,0.1,0.1,0.2
+			c0,0.1,0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.1c0,0.1,0.1,0.2,0.1,0.2s0,0,0.1,0.1c0.1,0.1,0.1,0.2,0.2,0.3l0,0
+			c1,1.2,2.6,1.7,4.1,1.3l0,0c0.1,0,0.3-0.1,0.4-0.1h0.1c0.1,0,0.2-0.1,0.3-0.1c0.1,0,0.1-0.1,0.2-0.1s0.2-0.1,0.2-0.1l0,0l0,0
+			c0,0,0.1,0,0.1-0.1l24.8,27.3l47.2-26.8L81.5,8.5c1.8-1.3,2.4-3.7,1.3-5.7l0,0C81.6,0.7,79,0,76.9,1.2z"/>
+	</g>
+</g>
+</svg>

+ 43 - 0
src/assets/pdfExport/img/NO3.svg

@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#9E5243;}
+	.st1{fill:#ED997C;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M76,134.8l7-9.5c4.5,4.4,10,7.8,16.8,7.8c7.7,0,12.9-3.8,12.9-10.5c0-7.4-4.4-12-20.8-12V99.8
+			c13.9,0,18.4-4.8,18.4-11.5c0-5.9-3.7-9.4-10.1-9.5c-5.4,0.1-9.8,2.7-14.3,6.7l-7.6-9.2c6.5-5.7,13.8-9.3,22.6-9.3
+			c14.6,0,24.5,7.1,24.5,20.1c0,8.2-4.6,14.1-12.6,17.2v0.5c8.6,2.3,15.1,8.7,15.1,18.6c0,13.9-12.1,21.9-26.5,21.9
+			C89.3,145.4,81.3,140.9,76,134.8z"/>
+	</g>
+	<g>
+		<path class="st1" d="M102.7,14.7L26.3,58c-1.6,0.9-2.6,2.6-2.6,4.4L23,150.3c0,1.8,0.9,3.5,2.5,4.4l75.7,44.5
+			c1.6,0.9,3.5,0.9,5.1,0l76.4-43.3c1.6-0.9,2.6-2.6,2.6-4.4l0.7-87.9c0-1.8-0.9-3.5-2.5-4.4l-75.7-44.5
+			C106.2,13.8,104.3,13.8,102.7,14.7z M162.5,144l-56,31.8c-1.6,0.9-3.5,0.9-5.1,0l-55.5-32.7c-1.6-0.9-2.5-2.6-2.5-4.4l0.5-64.4
+			c0-1.8,1-3.5,2.6-4.4l56-31.9c1.6-0.9,3.5-0.9,5.1,0l55.5,32.7c1.6,0.9,2.5,2.6,2.5,4.4l-0.5,64.4
+			C165.1,141.4,164.1,143.1,162.5,144z"/>
+		<path class="st0" d="M77.1,1.3L77.1,1.3c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1
+			c-0.1,0-0.1,0.1-0.2,0.1s-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2
+			c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2c0,0.1-0.1,0.1-0.1,0.2s-0.1,0.1-0.1,0.2
+			c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1-0.1,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2
+			s0,0.1,0,0.2c0,0.1,0,0.1,0,0.2s0,0.1,0,0.2s0,0.1,0,0.2c0,0.1,0,0.1,0.1,0.2c0,0.1,0,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2
+			c0,0.1,0,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2s0.1,0.1,0.1,0.2
+			c0,0.1,0.1,0.1,0.1,0.2C75.9,8,76,8,76,8c0.1,0.1,0.1,0.1,0.2,0.2c0.1,0.1,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+			c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0.1,0.2,0.1
+			c0.1,0,0.1,0.1,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0.1c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0
+			c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0c0.1,0,0.1,0,0.2,0l0,0L69.6,27L48,14c2.4-2.6,2.9-6.5,1.1-9.7
+			c-2.3-4-7.3-5.4-11.3-3.1s-5.4,7.3-3.1,11.3c1.9,3.3,5.7,4.8,9.2,3.9l-1,25.9l-21-0.4c0.8-1.3,0.8-2.9,0-4.3l0,0
+			c-1.2-2.1-3.8-2.8-5.9-1.6l0,0c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0-0.1,0.1-0.2,0.1c-0.1,0.1-0.1,0.1-0.2,0.2l-0.1,0.1
+			c-0.1,0.1-0.1,0.1-0.2,0.2L15,36.8c-0.1,0.1-0.2,0.2-0.2,0.3c0,0,0,0,0,0.1c-0.1,0.1-0.1,0.2-0.2,0.3l0,0
+			c-0.1,0.1-0.1,0.2-0.2,0.3l0,0c-0.1,0.1-0.1,0.2-0.2,0.4l0,0c0,0.1-0.1,0.3-0.1,0.4l0,0c0,0.1-0.1,0.2-0.1,0.4l0,0
+			c0,0.1,0,0.3,0,0.4l0,0c0,0.1,0,0.2,0,0.4l0,0c0,0.1,0,0.2,0,0.4c0,0,0,0,0,0.1s0,0.2,0.1,0.3v0.1c0,0.1,0.1,0.2,0.1,0.3v0.1
+			c0,0.1,0.1,0.2,0.1,0.3c0,0,0,0.1,0.1,0.1c0,0.1,0.1,0.1,0.1,0.2c0,0.1,0.1,0.1,0.1,0.2l0,0l0,0c0,0.1,0.1,0.1,0.1,0.1
+			c0,0.1,0.1,0.2,0.1,0.2s0,0,0.1,0.1s0.1,0.2,0.2,0.3l0,0c1,1.2,2.6,1.7,4.1,1.3l0,0c0.1,0,0.3-0.1,0.4-0.1h0.1
+			c0.1,0,0.2-0.1,0.3-0.1s0.1-0.1,0.2-0.1c0.1,0,0.2-0.1,0.2-0.1l0,0l0,0c0,0,0.1,0,0.1-0.1l24.8,27.3l47.1-26.8L81.7,8.6
+			c1.8-1.3,2.4-3.7,1.3-5.7l0,0C81.8,0.8,79.1,0.1,77.1,1.3z"/>
+	</g>
+</g>
+</svg>

BIN
src/assets/pdfExport/img/advich-bg.png


+ 25 - 0
src/assets/pdfExport/img/changweici.svg

@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#58CBA8;}
+</style>
+<title>指定词备份</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="指定词备份">
+		<path id="形状" class="st0" d="M159.9,0.8H40c-14.7,0-26.7,12-26.7,26.9v144.6c0,14.8,12,26.9,26.7,26.9h120
+			c14.7,0,26.7-12,26.7-26.9V27.7C186.6,12.8,174.6,0.8,159.9,0.8z M173.4,172.2c0,7.4-6,13.4-13.3,13.4H40c-7.4,0-13.3-6-13.3-13.4
+			V27.7c0-7.4,6-13.4,13.3-13.4h120c7.4,0,13.3,6,13.3,13.4V172.2z"/>
+		<path id="路径" class="st0" d="M49.3,88.1H124c3.7,0,6.6-2.9,6.6-6.7c0-3.8-3-6.7-6.6-6.7H49.3c-3.7,0-6.6,3-6.6,6.7
+			C42.5,85.1,45.5,88.1,49.3,88.1z"/>
+		<path id="路径_1_" class="st0" d="M150.6,36.1H49.3c-3.7,0-6.6,2.9-6.6,6.7c0,3.8,2.9,6.7,6.6,6.7h101.4c3.7,0,6.6-2.9,6.6-6.7
+			C157.2,39,154.4,36.1,150.6,36.1z"/>
+		<path id="路径_2_" class="st0" d="M137.3,113.2h-88c-3.7,0-6.6,3-6.6,6.7l0,0c0,3.8,2.9,6.7,6.6,6.7h88c3.7,0,6.6-3,6.6-6.7l0,0
+			C143.9,116.2,141,113.2,137.3,113.2z"/>
+		<path id="路径_3_" class="st0" d="M149,151.8H49.3c-3.7,0-6.6,3-6.6,6.7l0,0c0,3.8,2.9,6.7,6.6,6.7H149c3.7,0,6.6-3,6.6-6.7l0,0
+			C155.6,154.7,152.8,151.8,149,151.8z"/>
+	</g>
+</g>
+</svg>

+ 23 - 0
src/assets/pdfExport/img/conversionRate.svg

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#5350E3;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M200,100c0,26.6-10.3,51.7-29.2,70.6s-44,29.4-70.7,29.4C44.9,200,0,155.1,0,100S44.9,0,100,0
+			c11.5,0,22.8,1.9,33.4,5.7c1.7,0.6,3,1.8,3.7,3.5c0.7,1.6,0.8,3.4,0.2,5c-1.2,3.4-4.9,5.1-8.3,4c-9.2-3.3-19-5-29-5
+			c-47.8,0-86.7,38.9-86.7,86.7s38.9,86.7,86.7,86.7s86.7-38.9,86.7-86.7c0.1-19.5-6.6-38.7-18.8-53.9c-1.1-1.3-1.6-3-1.4-4.8
+			c0.2-1.8,1.1-3.4,2.5-4.5c1.3-1.1,3-1.6,4.8-1.4c1.8,0.2,3.4,1.1,4.5,2.5C192.4,55.4,200.1,77.5,200,100z"/>
+	</g>
+	<g>
+		<path class="st0" d="M152.9,87.6c0,1.7-0.7,3.4-2,4.6c-1.2,1.2-2.9,1.9-4.7,1.9H47.1c-3.7,0-6.6-3-6.6-6.6s3-6.6,6.6-6.6h83.2
+			l-12.7-12.7c-1.3-1.4-1.9-3.1-1.9-4.9c0.1-1.7,0.8-3.3,2.1-4.5c2.5-2.5,6.5-2.5,9.1,0l24,24C152.2,84.1,152.9,85.8,152.9,87.6z"/>
+		<path class="st0" d="M152.7,112.4c0,3.7-3,6.6-6.6,6.6H63l12.7,12.7c1.3,1.3,2,3,2,4.8s-0.7,3.4-2,4.6c-1.2,1.2-2.8,1.8-4.7,1.8
+			c-1.8,0-3.5-0.7-4.6-1.9l-24-24c-1.3-1.3-2-3-2-4.8c0-1.7,0.7-3.4,2-4.6c1.2-1.2,2.9-1.9,4.6-1.9h99.1
+			C149.8,105.8,152.7,108.7,152.7,112.4z"/>
+	</g>
+</g>
+</svg>

BIN
src/assets/pdfExport/img/demo.jpg


BIN
src/assets/pdfExport/img/down.png


BIN
src/assets/pdfExport/img/erweima.jpg


BIN
src/assets/pdfExport/img/erweima.png


BIN
src/assets/pdfExport/img/footer-bg.png


+ 1 - 0
src/assets/pdfExport/img/outlink1.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1688720345452" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2328" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M72.704 48.64h385.097143a36.132571 36.132571 0 0 1 3.510857 72.045714l-3.510857 0.146286H108.763429v794.331429h794.404571V566.272a36.132571 36.132571 0 0 1 72.045714-3.510857l0.146286 3.510857v385.097143a36.132571 36.132571 0 0 1-32.621714 35.986286l-3.437715 0.146285H72.704a36.132571 36.132571 0 0 1-35.986286-32.621714L36.571429 951.296V84.699429C36.571429 66.121143 50.688 50.541714 69.193143 48.786286L72.704 48.64zM951.296 36.571429c19.968 0 36.132571 16.164571 36.132571 36.132571v252.708571a36.132571 36.132571 0 0 1-72.192 0V156.525714L602.843429 448.146286a36.132571 36.132571 0 0 1-48.420572 0.731428l-2.633143-2.486857a36.132571 36.132571 0 0 1-0.731428-48.420571l2.486857-2.633143 306.980571-286.573714H698.587429a36.132571 36.132571 0 0 1 0-72.192h252.708571z" fill="#006CB7" p-id="2329"></path></svg>

+ 1 - 0
src/assets/pdfExport/img/outlink2.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1688720411801" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5316" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M512 985.6c-185.6 0-358.4-108.8-435.2-281.6-6.4-12.8 0-32 12.8-38.4 12.8-6.4 32 0 38.4 12.8 64 153.6 217.6 249.6 377.6 249.6 166.4 0 313.6-96 377.6-249.6 6.4-12.8 25.6-19.2 38.4-12.8 12.8 6.4 19.2 25.6 12.8 38.4-64 172.8-236.8 281.6-422.4 281.6zM102.4 371.2h-12.8c-12.8-12.8-19.2-25.6-12.8-44.8C147.2 153.6 320 38.4 512 38.4s358.4 115.2 435.2 288c6.4 12.8 0 32-12.8 38.4-12.8 6.4-32 0-38.4-12.8-64-153.6-217.6-249.6-384-249.6s-313.6 102.4-384 256c0 6.4-12.8 12.8-25.6 12.8z" fill="#F4C32D" p-id="5317"></path><path d="M70.4 627.2L0 364.8h38.4l38.4 172.8c0 19.2 6.4 38.4 6.4 51.2 6.4-25.6 12.8-44.8 12.8-51.2l51.2-179.2H192l38.4 134.4c6.4 32 19.2 64 19.2 89.6 0-6.4 6.4-25.6 12.8-51.2l38.4-166.4h32L262.4 627.2h-32l-57.6-198.4c0-19.2-6.4-25.6-6.4-32 0 12.8-6.4 19.2-6.4 32l-57.6 198.4h-32zM416 627.2L345.6 364.8H384l38.4 172.8c0 19.2 6.4 38.4 6.4 51.2 6.4-25.6 12.8-44.8 12.8-51.2l51.2-179.2h44.8L576 492.8c6.4 32 19.2 64 19.2 89.6 0-6.4 6.4-25.6 6.4-51.2l38.4-166.4h32l-64 262.4H576l-57.6-198.4c0-19.2-6.4-25.6-6.4-32 0 12.8-6.4 19.2-6.4 32L448 627.2h-32zM755.2 627.2l-70.4-262.4h38.4l38.4 172.8c6.4 19.2 12.8 38.4 12.8 51.2 6.4-25.6 12.8-44.8 12.8-51.2l51.2-179.2h44.8l38.4 134.4c6.4 32 19.2 64 19.2 89.6 6.4-19.2 6.4-38.4 12.8-57.6l38.4-166.4h32l-70.4 262.4h-32l-57.6-198.4c-6.4-19.2-6.4-25.6-6.4-32 0 12.8-6.4 19.2-6.4 32l-57.6 198.4h-38.4z" fill="#F4C32D" p-id="5318"></path></svg>

+ 1 - 0
src/assets/pdfExport/img/outlink3.svg

@@ -0,0 +1 @@
+<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1688720376101" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="4273" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><path d="M832 128H128v768h256v64H64V64h832v256h-64V128zM256 320h448v64H256v-64z m448 256H256v-64h448v64z m-256 128l246.176 147.712L896 448l63.68 58.688L768 896l-37.12 63.776L384 768z" fill="#0590DF" p-id="4274"></path></svg>

+ 1 - 0
src/assets/pdfExport/img/pingjun.svg

@@ -0,0 +1 @@
+<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><defs><style>.cls-1{fill:#f05f50;}.cls-1,.cls-2,.cls-3,.cls-4{fill-rule:evenodd;}.cls-2{fill:#fbd462;}.cls-3{fill:#ffbf5c;}.cls-4{fill:#ebf0f2;}.cls-5{fill:#464748;}</style></defs><title>SEO关键词icon</title><path class="cls-1" d="M8.07,103.89A92,92,0,1,1,100,196a91.88,91.88,0,0,1-91.93-92.1"/><path class="cls-2" d="M189,15.11a32.34,32.34,0,0,0-25-11.1c-9,0-18,3-24,8.08,11,5,23,11.1,32,20.19l17-17.17"/><path class="cls-3" d="M192,63.92c5-6,8-15,8-24,0-10-4-19-10.94-25L172.15,32c8.95,9,14.92,21,19.89,32"/><path class="cls-2" d="M28.27,32,11.11,15A32.3,32.3,0,0,0,0,40c0,9,3,18,8.08,24,5-11,11.1-23,20.19-32"/><path class="cls-3" d="M59.92,12.09c-6-5-15-8.08-24-8.08a32.32,32.32,0,0,0-25,11.1L28,32.28c9-9.09,21-15.15,32-20.19"/><path class="cls-4" d="M23.87,103.89A76,76,0,1,1,100,180a76.19,76.19,0,0,1-76.13-76.07"/><rect class="cls-5" x="96.37" y="155.74" width="7.7" height="16.2"/><rect class="cls-5" x="31.97" y="100.24" width="16.2" height="8.1"/><rect class="cls-5" x="96.37" y="36.24" width="7.7" height="15.8"/><rect class="cls-5" x="85.56" y="67.56" width="7.7" height="43.78" rx="3.85" transform="translate(-34.9 66.16) rotate(-34.4)"/><rect class="cls-5" x="151.86" y="100.24" width="16.2" height="8.1"/><rect class="cls-5" x="96.2" y="100.24" width="29.47" height="8.1" rx="4.05"/></svg>

+ 14 - 0
src/assets/pdfExport/img/pvicon.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#58CBA8;}
+</style>
+<path class="st0" d="M100,19.2c-27.8,0-53,11.7-72.8,31C11,66,0,85.8,0,98.5v3.1c0,12.7,11,32.5,27.2,48.2c19.8,19.3,45,31,72.8,31
+	c27.9,0,53-11.5,72.7-30.6c16.2-15.7,27.2-35.5,27.3-48.5v-3.1c-0.1-13.1-11.1-32.9-27.3-48.6C153,30.8,127.9,19.2,100,19.2z
+	 M100,34.6c23.6,0,45,9.8,62,26.3c13.5,13.1,22.5,29.3,22.6,37.6v3c-0.1,8.2-9.1,24.5-22.6,37.5c-17,16.5-38.5,26.3-62,26.3
+	c-23.5,0-45-10-62.1-26.6c-13.5-13.1-22.5-29.4-22.5-37.2v-3.1c0-7.8,9.1-24.1,22.5-37.2C55,44.6,76.5,34.6,100,34.6z"/>
+<path class="st0" d="M100,61.5c-21.2,0-38.5,17.2-38.5,38.5s17.2,38.5,38.5,38.5s38.5-17.2,38.5-38.5S121.2,61.5,100,61.5z
+	 M100,76.9c12.7,0,23.1,10.3,23.1,23.1s-10.3,23.1-23.1,23.1c-12.7,0-23.1-10.3-23.1-23.1C76.9,87.3,87.3,76.9,100,76.9z"/>
+</svg>

BIN
src/assets/pdfExport/img/shang.png


BIN
src/assets/pdfExport/img/title-dot.png


BIN
src/assets/pdfExport/img/title-left-bg.png


BIN
src/assets/pdfExport/img/title-right-bg.png


BIN
src/assets/pdfExport/img/top.png


BIN
src/assets/pdfExport/img/top_bg.png


+ 31 - 0
src/assets/pdfExport/img/unReadEnquiryNum.svg

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#7BC8AA;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M151.9,191.4c-1.1,0-2.3-0.4-3.2-1.2l-32.8-27.4H4.9c-2.7,0-4.9-2.2-4.9-4.9V28.1c0-2.7,2.2-4.9,4.9-4.9
+			h176.8c2.7,0,4.9,2.2,4.9,4.9v129.8c0,2.7-2.2,4.9-4.9,4.9h-21.4l-3.6,24.4c-0.3,1.8-1.5,3.3-3.1,3.9
+			C153,191.2,152.4,191.4,151.9,191.4z M9.9,152.9h107.8c1.2,0,2.3,0.4,3.2,1.2l27.4,22.9l3-19.9c0.4-2.4,2.4-4.2,4.9-4.2h20.7V33
+			H9.9V152.9z"/>
+	</g>
+	<g>
+		<g>
+			<path class="st0" d="M50,93.1H28.3c-2.7,0-4.9-2.2-4.9-4.9s2.2-4.9,4.9-4.9H50c2.7,0,4.9,2.2,4.9,4.9C55,90.9,52.8,93.1,50,93.1z
+				"/>
+		</g>
+		<g>
+			<path class="st0" d="M102.1,93.1h-26c-2.7,0-4.9-2.2-4.9-4.9s2.2-4.9,4.9-4.9h26c2.7,0,4.9,2.2,4.9,4.9S104.8,93.1,102.1,93.1z"
+				/>
+		</g>
+		<g>
+			<path class="st0" d="M149.9,93.1h-21.7c-2.7,0-4.9-2.2-4.9-4.9s2.2-4.9,4.9-4.9h21.7c2.7,0,4.9,2.2,4.9,4.9
+				C154.8,90.9,152.6,93.1,149.9,93.1z"/>
+		</g>
+	</g>
+	<circle class="st0" cx="179.8" cy="28.8" r="20.2"/>
+</g>
+</svg>

+ 14 - 0
src/assets/pdfExport/img/uvicon.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F0B357;}
+</style>
+<path class="st0" d="M100,0c55.2,0,100,44.8,100,100s-44.8,100-100,100S0,155.2,0,100S44.8,0,100,0z M123,127.7H77
+	c-13.4,0-26.7,13.3-29.1,30L46.4,168c14.7,11.6,33.4,18.6,53.6,18.6c20.2,0,38.8-6.9,53.6-18.6l-1.5-10.4
+	c-2.3-16.4-15.4-29.7-28.7-29.9L123,127.7z M100,13.4c-47.8,0-86.6,38.8-86.6,86.6c0,21.7,8,41.5,21.1,56.7l0.1-0.4
+	c0-0.2,0.1-0.4,0.1-0.6c3.2-22.6,21.4-41.1,41.7-41.5l0.6,0H123c20.5,0,39.1,18.6,42.3,41.5l0.1,0.9c13.2-15.2,21.1-35,21.1-56.7
+	C186.6,52.2,147.8,13.4,100,13.4z M100,32.6c19.7,0,35.7,16,35.7,35.7S119.7,104,100,104S64.3,88,64.3,68.3S80.3,32.6,100,32.6z
+	 M100,46c-12.3,0-22.3,10-22.3,22.3s10,22.3,22.3,22.3s22.3-10,22.3-22.3S112.3,46,100,46z"/>
+</svg>

BIN
src/assets/pdfExport/img/xiaofei_bg.png


BIN
src/assets/pdfExport/img/yue_bg.png


+ 27 - 0
src/assets/pdfExport/img/zhidingci.svg

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F0B357;}
+</style>
+<title>全部备份</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="全部备份">
+		<path id="形状" class="st0" d="M142,25H35.7C22.6,25,12,35.7,12,48.7v127.2c0,13,10.6,23.7,23.7,23.7H142
+			c13,0,23.7-10.6,23.7-23.7V48.6C165.7,35.6,155.1,25,142,25z M153.9,175.8c0,6.5-5.3,11.8-11.8,11.8H35.7
+			c-6.5,0-11.8-5.3-11.8-11.8V48.6c0-6.5,5.3-11.8,11.8-11.8H142c6.5,0,11.8,5.3,11.8,11.8V175.8z"/>
+		<path id="路径" class="st0" d="M43.9,101.7h66.2c3.3,0,5.9-2.6,5.9-5.9c0-3.3-2.6-5.9-5.9-5.9H43.9c-3.3,0-5.9,2.6-5.9,5.9
+			C38.1,99.2,40.6,101.7,43.9,101.7z"/>
+		<path id="路径_1_" class="st0" d="M86.5,56.1H43.9c-3.3,0-5.9,2.6-5.9,5.9s2.6,5.9,5.9,5.9h42.6c3.3,0,5.9-2.6,5.9-5.9
+			S89.8,56.1,86.5,56.1z"/>
+		<path id="路径_2_" class="st0" d="M43.9,169.1h66.2c3.3,0,5.9-2.6,5.9-5.9c0-3.3-2.6-5.9-5.9-5.9H43.9c-3.3,0-5.9,2.6-5.9,5.9
+			C38.1,166.5,40.6,169.1,43.9,169.1z"/>
+		<path id="路径_3_" class="st0" d="M86.5,123.3H43.9c-3.3,0-5.9,2.6-5.9,5.9c0,3.3,2.6,5.9,5.9,5.9h42.6c3.3,0,5.9-2.6,5.9-5.9
+			C92.4,125.9,89.8,123.3,86.5,123.3z"/>
+		<path id="路径_4_" class="st0" d="M164.4,0.4H58.1C46.3,0.4,36.6,9,34.7,20.2h12.1c1.6-4.6,6-8,11.1-8h106.4
+			c6.5,0,11.8,5.3,11.8,11.8v127.2c0,4.3-2.3,8.1-5.8,10.1v12.7c10-2.7,17.6-11.9,17.6-22.9V24.1C188,11.1,177.4,0.4,164.4,0.4z"/>
+	</g>
+</g>
+</svg>

+ 1 - 0
src/assets/pdfExport/keywordsrank3.svg

@@ -0,0 +1 @@
+<svg id="图层_1" data-name="图层 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200"><defs><style>.cls-1{fill:#f05f50;}.cls-1,.cls-2,.cls-3,.cls-4{fill-rule:evenodd;}.cls-2{fill:#fbd462;}.cls-3{fill:#ffbf5c;}.cls-4{fill:#ebf0f2;}.cls-5{fill:#464748;}</style></defs><title>SEO关键词icon</title><path class="cls-1" d="M8.07,103.89A92,92,0,1,1,100,196a91.88,91.88,0,0,1-91.93-92.1"/><path class="cls-2" d="M189,15.11a32.34,32.34,0,0,0-25-11.1c-9,0-18,3-24,8.08,11,5,23,11.1,32,20.19l17-17.17"/><path class="cls-3" d="M192,63.92c5-6,8-15,8-24,0-10-4-19-10.94-25L172.15,32c8.95,9,14.92,21,19.89,32"/><path class="cls-2" d="M28.27,32,11.11,15A32.3,32.3,0,0,0,0,40c0,9,3,18,8.08,24,5-11,11.1-23,20.19-32"/><path class="cls-3" d="M59.92,12.09c-6-5-15-8.08-24-8.08a32.32,32.32,0,0,0-25,11.1L28,32.28c9-9.09,21-15.15,32-20.19"/><path class="cls-4" d="M23.87,103.89A76,76,0,1,1,100,180a76.19,76.19,0,0,1-76.13-76.07"/><rect class="cls-5" x="96.37" y="155.74" width="7.7" height="16.2"/><rect class="cls-5" x="31.97" y="100.24" width="16.2" height="8.1"/><rect class="cls-5" x="96.37" y="36.24" width="7.7" height="15.8"/><rect class="cls-5" x="85.56" y="67.56" width="7.7" height="43.78" rx="3.85" transform="translate(-34.9 66.16) rotate(-34.4)"/><rect class="cls-5" x="151.86" y="100.24" width="16.2" height="8.1"/><rect class="cls-5" x="96.2" y="100.24" width="29.47" height="8.1" rx="4.05"/></svg>

+ 13 - 0
src/assets/pdfExport/lianjieshu.svg

@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="200px" height="200px" viewBox="0 0 200 200" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+    <!-- Generator: Sketch 63 (92445) - https://sketch.com -->
+    <title>链接数备份 3</title>
+    <desc>Created with Sketch.</desc>
+    <g id="页面-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
+        <g id="链接数备份-3" fill="#ED997C" fill-rule="nonzero">
+            <path d="M196.7,46.3 L153.7,3.3 C149.3,-1.1 142,-1.1 137.6,3.3 L83.9,57 C79.5,61.4 79.5,68.7 83.9,73.1 L83.9,73.1 L92,81.2 C93.5,82.7 95.9,82.7 97.4,81.2 L102.8,75.8 C104.3,74.3 104.3,71.9 102.8,70.4 L97.4,65 L145.7,16.7 L183.3,54.3 L135,102.6 L129.6,97.2 C128.1,95.7 125.7,95.7 124.2,97.2 L118.8,102.6 C117.3,104.1 117.3,106.5 118.8,108 L126.9,116.1 L126.9,116.1 C129.1,118.3 132,119.4 135,119.4 C137.9,119.4 140.8,118.3 143.1,116.1 L196.8,62.4 C201.1,58 201.1,50.7 196.7,46.3 Z" id="路径"></path>
+            <path d="M57,143 C58.5,144.5 60.4,145.2 62.4,145.2 C64.3,145.2 66.3,144.5 67.8,143 L143,67.8 C146,64.8 146,60 143,57.1 C140,54.1 135.2,54.1 132.3,57.1 L57,132.2 C54.1,135.2 54.1,140 57,143 Z" id="路径"></path>
+            <path d="M116.1,126.8 L108,118.7 C106.5,117.2 104.1,117.2 102.6,118.7 L97.2,124.1 C95.7,125.6 95.7,128 97.2,129.5 L102.6,134.9 L54.3,183.2 L16.7,145.6 L65,97.3 L70.4,102.7 C71.9,104.2 74.3,104.2 75.8,102.7 L81.2,97.3 C82.7,95.8 82.7,93.4 81.2,91.9 L73.1,83.8 L73.1,83.8 C68.7,79.4 61.4,79.4 57,83.8 L3.3,137.6 C1.1,139.8 0,142.6 0,145.7 C0,148.7 1.2,151.6 3.3,153.7 L46.3,196.7 C48.5,198.9 51.3,200 54.4,200 L54.4,200 C57.4,200 60.3,198.8 62.5,196.7 L116.2,143 C120.6,138.5 120.6,131.3 116.1,126.8 Z" id="路径"></path>
+        </g>
+    </g>
+</svg>

+ 14 - 0
src/assets/pdfExport/pvicon.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#58CBA8;}
+</style>
+<path class="st0" d="M100,19.2c-27.8,0-53,11.7-72.8,31C11,66,0,85.8,0,98.5v3.1c0,12.7,11,32.5,27.2,48.2c19.8,19.3,45,31,72.8,31
+	c27.9,0,53-11.5,72.7-30.6c16.2-15.7,27.2-35.5,27.3-48.5v-3.1c-0.1-13.1-11.1-32.9-27.3-48.6C153,30.8,127.9,19.2,100,19.2z
+	 M100,34.6c23.6,0,45,9.8,62,26.3c13.5,13.1,22.5,29.3,22.6,37.6v3c-0.1,8.2-9.1,24.5-22.6,37.5c-17,16.5-38.5,26.3-62,26.3
+	c-23.5,0-45-10-62.1-26.6c-13.5-13.1-22.5-29.4-22.5-37.2v-3.1c0-7.8,9.1-24.1,22.5-37.2C55,44.6,76.5,34.6,100,34.6z"/>
+<path class="st0" d="M100,61.5c-21.2,0-38.5,17.2-38.5,38.5s17.2,38.5,38.5,38.5s38.5-17.2,38.5-38.5S121.2,61.5,100,61.5z
+	 M100,76.9c12.7,0,23.1,10.3,23.1,23.1s-10.3,23.1-23.1,23.1c-12.7,0-23.1-10.3-23.1-23.1C76.9,87.3,87.3,76.9,100,76.9z"/>
+</svg>

+ 29 - 0
src/assets/pdfExport/shengyufuwutianshu.svg

@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#7C98FC;}
+</style>
+<title>日期 (1)备份</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="日期-_x28_1_x29_备份">
+		<path id="形状" class="st0" d="M145,200c-29,0-52.5-23.5-52.5-52.5c0-29,23.5-52.5,52.5-52.5c29,0,52.5,23.5,52.5,52.5
+			C197.5,176.5,174,200,145,200z M145,105c-23.5,0-42.5,19-42.5,42.5s19,42.5,42.5,42.5s42.5-19,42.5-42.5S168.5,105,145,105z
+			 M166.4,164.8l-25.9-10.1c0,0,0,0,0,0c-0.3-0.1-0.5-0.3-0.7-0.5c-0.3-0.2-0.6-0.3-0.8-0.5c-0.6-0.6-1-1.4-1.2-2.2
+			c-0.1-0.4-0.2-0.8-0.2-1.2v-25.3c0-2.7,2.2-4.8,4.8-4.8h0.4c2.7,0,4.8,2.2,4.8,4.8v22.1l22,8.6c2.4,0.9,3.6,3.8,2.7,6.3
+			C171.4,164.4,168.8,165.7,166.4,164.8z M152.5,35c0-5.5-4.5-10-10-10h-10V15h10c11,0,20,9,20,20v52.5c-3.2-0.9-6.6-1.6-10-2V35z
+			 M122.7,40h-0.4c-2.7,0-4.8-2.2-4.8-4.8V4.8c0-2.7,2.2-4.8,4.8-4.8h0.4c2.7,0,4.8,2.2,4.8,4.8v30.4C127.5,37.9,125.4,40,122.7,40z
+			 M52.5,15h60v10h-60V15z M42.7,40h-0.4c-2.7,0-4.8-2.2-4.8-4.8V4.8c0-2.7,2.2-4.8,4.8-4.8h0.4c2.7,0,4.8,2.2,4.8,4.8v30.4
+			C47.5,37.9,45.4,40,42.7,40z M42.5,69.8v0.5c0,2.6-2.1,4.7-4.7,4.7h-0.5c-2.6,0-4.7-2.1-4.7-4.7v-0.5c0-2.6,2.1-4.7,4.7-4.7h0.5
+			C40.4,65,42.5,67.1,42.5,69.8z M37.8,105h-0.5c-2.6,0-4.7-2.1-4.7-4.7v-0.5c0-2.6,2.1-4.7,4.7-4.7h0.5c2.6,0,4.7,2.1,4.7,4.7v0.5
+			C42.5,102.9,40.4,105,37.8,105z M42.5,130.3c0,2.6-2.1,4.7-4.7,4.7h-0.5c-2.6,0-4.7-2.1-4.7-4.7v-0.5c0-2.6,2.1-4.7,4.7-4.7h0.5
+			c2.6,0,4.7,2.1,4.7,4.7V130.3z M57.3,125h29.4c-1.2,3.2-2.3,6.5-3,10H57.3c-2.7,0-4.8-2.2-4.8-4.8v-0.4
+			C52.5,127.2,54.7,125,57.3,125z M52.5,70.3v-0.6c0-2.6,2.1-4.7,4.7-4.7h75.7c2.6,0,4.7,2.1,4.7,4.7v0.6c0,2.6-2.1,4.7-4.7,4.7
+			H57.2C54.6,75,52.5,72.9,52.5,70.3z M57.3,105c-2.7,0-4.8-2.2-4.8-4.8v-0.4c0-2.7,2.2-4.8,4.8-4.8h53.9c-4.4,2.8-8.4,6.2-11.9,10
+			L57.3,105L57.3,105z M12.5,35v130c0,5.5,4.5,10,10,10h66.4c1.7,3.6,3.8,6.9,6.2,10.1H22.5c-11,0-20-9-20-20V35c0-11,9-20,20-20h10
+			v10h-10C17,25,12.5,29.4,12.5,35z"/>
+	</g>
+</g>
+</svg>

+ 669 - 0
src/assets/pdfExport/style/index.less

@@ -0,0 +1,669 @@
+body{
+  background: #f7faff!important;
+  -webkit-print-color-adjust: exact;
+}
+.wrap{
+  width: 1200px;
+  margin: 0 auto;
+  overflow: hidden;
+}
+
+.bg-advich{
+  background: url("../img/advich-bg.png") no-repeat!important;
+  background-position: 60% 50%!important;
+  -webkit-print-color-adjust: exact;
+}
+
+.top{
+  background: url('../img/top_bg.png')!important;
+  height: 324px;
+  background-repeat: no-repeat;
+  p{
+    color: #fff!important;
+    text-align: center;
+    padding-top: 60px;
+    font-size: 30px;
+	&.time{
+		font-size: 14px;
+		padding-top: 0;
+	}
+  }
+}
+
+
+.tip{
+  color: #333;
+  margin-bottom: 10px;
+  text-indent: 28px;
+  line-height: 1.8;
+}
+
+.top-info{
+  color: #333;
+  h2{
+    margin-bottom: 10px;
+  }
+  p{
+    line-height: 1.7;
+    text-indent: 28px;
+  }
+}
+
+.remark{
+  color: #333;
+  padding: 20px 0;
+}
+
+.r1{
+  margin-top: -20px;
+  .item{
+    padding: 34px 20px;
+    line-height: 1.6;
+    width: 320px;
+    height: 146px;
+    float: left;
+    &.t1{
+      background: url('../img/yue_bg.png') #fff !important;
+      background-repeat: no-repeat!important;
+      background-position: bottom right!important;
+      margin-right: 10px;
+    }
+    &.t2{
+      background: url('../img/xiaofei_bg.png') #fff !important;
+      background-repeat: no-repeat!important;
+      background-position: bottom right!important;
+    }
+    &.t3{
+      line-height: 20px;
+      float: right;
+      padding: 64px 0 0px 0;
+      width: auto;
+      font-size: 14px;
+      color: #666;
+      letter-spacing: 1px;
+    }
+    .money{
+      color: #4385F4;
+      font-size: 24px;
+      font-weight: 500;
+    }
+    .title{
+      color: #000;
+      font-size: 14px;
+    }
+  }
+}
+.chart-wrap-row{
+	.chart-wrap{
+		background: rgba(255, 255, 255, 0.8) !important;
+		width: 100%;
+		padding: 20px;
+		position: relative;
+	}
+
+}
+.r2{
+  height: 137px;
+  background: rgba(255,255,255,.8) !important;
+ -webkit-print-color-adjust: exact;
+  margin-top: 10px;
+  display: flex;
+  align-items: center;
+  position: relative;
+      justify-content: space-between;
+  .item{
+    width: 100%;
+    padding: 5px 25px;
+    border-right: 2px solid;
+    z-index: 2;
+	display: flex;
+	flex-direction: row;
+	align-items: center;
+	justify-content: center;
+    color: #333;
+	&.cpcNum{
+		border-right: none;
+	}
+	&.center{
+		text-align: center;
+	}
+    img{
+	  margin-right: 25px;
+	  width: 50px;
+    }
+    .date{
+      font-size: 18px;
+      font-weight: 500;
+      .up{
+        margin-right: 15px;
+        float: left;
+        width: 9px;
+        height: 17px;
+        display: block;
+        background: url("../img/top.png") no-repeat !important;
+        + span{
+          color: #4385F4!important;
+        }
+      }
+      .down{
+        margin-right: 15px;
+        float: left;
+        width: 9px;
+        height: 17px;
+        display: block;
+        background: url("../img/down.png") no-repeat !important;
+        + span{
+          color: red!important;
+        }
+      }
+    }
+    .title{
+      font-weight: 400;
+      color: #666666;
+      font-size: 14px;
+    }
+  }
+  .right_bg_img{
+    position: absolute;
+    right: 0;
+    z-index: -1;
+  }
+}
+
+
+.table-row{
+  margin-top: 10px;
+  background: rgba(255,255,255,.8) !important;
+  padding: 20px;
+  p{
+    color: #333;
+    line-height: 1.8;
+    text-indent: 28px;
+  }
+  .table{
+    margin-bottom: 0;
+    thead{
+      background: #ECF2FD!important;
+      th{
+        border: none;
+        font-size: 14px;
+        background: #ECF2FD!important;
+        color: #333;
+        height: 46px;
+        line-height: 46px;
+        font-weight: 500;
+        padding: 8px 0;
+      }
+    }
+    tbody{
+        tr{
+          border-bottom: 1px solid #ECF2FD!important;
+          td{
+            font-size: 14px;
+            color: #333!important;;
+            height: 35px;
+            line-height: 35px;
+            padding: 8px 0;
+            .green-tag{
+              color: #22C179!important;;
+              font-size: 12px;
+              background: rgba(34, 193, 121, 0.1)!important;
+              border-radius: 3px;
+              padding: 5px 10px;
+            }
+            .red-tag{
+              color: #c18294!important;;
+              font-size: 12px;
+              background: rgba(193, 130, 148, 0.1)!important;
+              border-radius: 3px;
+              padding: 5px 10px;
+            }
+            .up{
+              margin-right: 15px;
+              float: left;
+              width: 9px;
+              height: 17px;
+              display: block;
+              background: url("../img/top.png") no-repeat !important;
+              top: 10px;
+              position: relative;
+              & + span{
+                color: #4385f4!important;
+              }
+            }
+            .down{
+              margin-right: 15px;
+              float: left;
+              width: 9px;
+              height: 17px;
+              display: block;
+              background: url("../img/down.png") no-repeat !important;
+              top: 10px;
+              position: relative;
+              & + span{
+                color: red!important;
+              }
+            }
+          }
+          &.heji{
+            td{
+              color: #4385F4!important;
+              font-weight: 500;
+            }
+          }
+        }
+    }
+  }
+}
+
+.title-row{
+  padding: 35px 0 5px;
+  position: relative;
+  overflow: hidden;
+  .left-bg{
+    position: absolute;
+    left: -5px;
+    z-index: -1;
+    top: 50px;
+  }
+  .right-bg{
+    position: absolute;
+    right: -10px;
+    z-index: -1;
+    top: 60px;
+  }
+  .title{
+    font-size: 22px;
+    color: #4385F4;
+    font-weight: 500;
+    img{
+      margin-right: 15px;
+    }
+  }
+
+}
+
+.outlink-row{
+	    background: rgba(255, 255, 255, 0.8);
+		.content{
+			    padding: 12px 10px;
+			    border: 1px solid #ECF2FD;
+			    color: #333;
+			    font-size: 14px;
+			    line-height: 1.7;
+				margin: 15px 0 20px;
+		}
+  .img-title{
+    color: #333;
+    margin-bottom: 15px;
+    margin-top: 15px;
+    border-left: 5px solid #4385F4;
+    line-height: 1;
+    padding: 3px 0 0px 10px;
+  }
+  .img-wrap-outlink {
+    width: 100%;
+    height: 230px;
+    border: 1px solid #ddeded;
+    padding: 10px;
+    img{
+      width: 100%;
+      height: 100%;
+      object-fit: contain;
+    }
+  }
+
+}
+
+  .s3{
+	  background: rgba(255, 255, 255, 0.8);
+    padding: 20px 10px 0;
+    .item{
+      padding: 20px;
+      height: 100%;
+      border-radius: 10px;
+      text-align: center;
+      img{
+        width: 80px;
+        margin: 20px auto;
+
+      }
+      p{
+        text-align: center;
+        //font-size: 15px;
+		//color: #333;
+      }
+    }
+    .wrap {
+      padding: 20px;
+	  width: auto;
+      border-radius: 10px;
+
+      .t1 {
+        color: #000;
+        font-size: 14px;
+        font-weight: 500;
+      }
+
+      .content {
+        display: block;
+        overflow: hidden;
+        line-height: 1;
+        border-bottom: 1px solid #ddd;
+        padding: 15px 0;
+
+        &:last-child {
+          border-bottom: none;
+          padding-bottom: 0;
+        }
+
+        .d1 {
+          float: left;
+          width: 50%;
+          line-height: 25px;
+          color: #000;
+
+          img {
+            width: 15px;
+            margin: -4px 5px 0 0;
+          }
+        }
+
+        .d2 {
+          float: right;
+          width: 50%;
+          text-align: right;
+		  //color: #333;
+          &.d3 {
+            span {
+              color: #000;
+            }
+          }
+
+          a {
+            font-size: 25px;
+            font-weight: 500;
+          }
+        }
+      }
+    }
+
+    .flex-row{
+      display: flex;
+      flex-direction: row;
+      width: 100%;
+      .item1{
+        flex: 0 0 200px;
+      }
+      .item2{
+        flex: auto;
+      }
+    }
+  }
+.r5{
+  margin-top: 10px;
+  .item{
+    background: rgba(255,255,255,.8) !important;
+    width: 580px;
+    float: left;
+    padding: 20px;
+    height: 445px;
+    position: relative;
+    &:last-child{
+      float: right;
+    }
+    .title{
+      font-size: 16px;
+      color: #333;
+      font-weight: 500;
+      margin-bottom: 10px;
+    }
+    .date{
+      color: #999;
+      font-size: 14px;
+    }
+  }
+}
+
+.r6{
+  margin-top: 10px;
+  padding: 20px;
+  background: rgba(255,255,255,.8) !important;
+  .content{
+    padding: 12px 10px;
+    border: 1px solid #ECF2FD;
+    color: #333;
+    font-size: 14px;
+    line-height: 1.7;
+    min-height: 150px;
+  }
+}
+
+
+.r7{
+  background: rgba(255,255,255,.8) !important;
+  padding: 20px;
+  margin-top: 10px;
+  position: relative;
+  .title{
+    font-size: 16px;
+    color: #333;
+    font-weight: 500;
+  }
+  .table-row{
+    padding: 0;
+    margin-top: 0;
+  }
+}
+
+.r8{
+  background: #fff!important;
+  padding: 20px;
+  margin-top: 10px;
+  .title{
+    font-size: 16px;
+    color: #333;
+    font-weight: 500;
+  }
+  .chart-wrap{
+    width: 33.33%;
+    float: left;
+    position: relative;
+    >div{
+      min-height: 300px;
+    }
+    .title{
+      text-align: center;
+      font-size: 14px;
+      color: #666;
+    }
+  }
+}
+
+
+.footer{
+  background: url('../img/footer-bg.png') no-repeat!important;
+  height: 318px;
+  background-size: cover;
+  position: relative;
+  margin-top: 20px;
+  .footer-content{
+    display: flex;
+    justify-content: center;
+    align-items: center;
+    position: absolute;
+    bottom: 60px;
+    left: 0;
+    right: 0;
+    .img-wrap{
+      margin-right: 30px;
+      img{
+        width: 110px;
+      }
+    }
+    .content-wrap{
+      p{
+        color: #333;
+        font-size: 14px;
+        line-height: 1.7;
+      }
+      .title{
+        font-size: 18px;
+        font-weight: 500;
+        margin-bottom: 10px;
+      }
+    }
+  }
+}
+
+.copyright{
+  height: 50px;
+  background: #000000!important;
+  margin: 0 -15px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  p{
+    font-size: 14px;
+    color: #fff!important;;
+  }
+}
+
+
+#wordsTag{
+  display: flex;
+  justify-content: center;
+  min-height: 300px;
+}
+
+
+.ball-grid-pulse {
+  width: 57px; }
+.ball-grid-pulse > div:nth-child(1) {
+  -webkit-animation-delay: -0.06s;
+  animation-delay: -0.06s;
+  -webkit-animation-duration: 0.72s;
+  animation-duration: 0.72s; }
+.ball-grid-pulse > div:nth-child(2) {
+  -webkit-animation-delay: 0.25s;
+  animation-delay: 0.25s;
+  -webkit-animation-duration: 1.02s;
+  animation-duration: 1.02s; }
+.ball-grid-pulse > div:nth-child(3) {
+  -webkit-animation-delay: -0.17s;
+  animation-delay: -0.17s;
+  -webkit-animation-duration: 1.28s;
+  animation-duration: 1.28s; }
+.ball-grid-pulse > div:nth-child(4) {
+  -webkit-animation-delay: 0.48s;
+  animation-delay: 0.48s;
+  -webkit-animation-duration: 1.42s;
+  animation-duration: 1.42s; }
+.ball-grid-pulse > div:nth-child(5) {
+  -webkit-animation-delay: 0.31s;
+  animation-delay: 0.31s;
+  -webkit-animation-duration: 1.45s;
+  animation-duration: 1.45s; }
+.ball-grid-pulse > div:nth-child(6) {
+  -webkit-animation-delay: 0.03s;
+  animation-delay: 0.03s;
+  -webkit-animation-duration: 1.18s;
+  animation-duration: 1.18s; }
+.ball-grid-pulse > div:nth-child(7) {
+  -webkit-animation-delay: 0.46s;
+  animation-delay: 0.46s;
+  -webkit-animation-duration: 0.87s;
+  animation-duration: 0.87s; }
+.ball-grid-pulse > div:nth-child(8) {
+  -webkit-animation-delay: 0.78s;
+  animation-delay: 0.78s;
+  -webkit-animation-duration: 1.45s;
+  animation-duration: 1.45s; }
+.ball-grid-pulse > div:nth-child(9) {
+  -webkit-animation-delay: 0.45s;
+  animation-delay: 0.45s;
+  -webkit-animation-duration: 1.06s;
+  animation-duration: 1.06s; }
+.ball-grid-pulse > div {
+  background-color: #4385F4;
+  width: 15px;
+  height: 15px;
+  border-radius: 100%;
+  margin: 2px;
+  -webkit-animation-fill-mode: both;
+  animation-fill-mode: both;
+  display: inline-block;
+  float: left;
+  -webkit-animation-name: ball-grid-pulse;
+  animation-name: ball-grid-pulse;
+  -webkit-animation-iteration-count: infinite;
+  animation-iteration-count: infinite;
+  -webkit-animation-delay: 0;
+  animation-delay: 0; }
+
+@-webkit-keyframes ball-grid-pulse {
+  0% {
+    -webkit-transform: scale(1);
+    transform: scale(1); }
+
+  50% {
+    -webkit-transform: scale(0.5);
+    transform: scale(0.5);
+    opacity: 0.7; }
+
+  100% {
+    -webkit-transform: scale(1);
+    transform: scale(1);
+    opacity: 1; } }
+
+@keyframes ball-grid-pulse {
+  0% {
+    -webkit-transform: scale(1);
+    transform: scale(1); }
+
+  50% {
+    -webkit-transform: scale(0.5);
+    transform: scale(0.5);
+    opacity: 0.7; }
+
+  100% {
+    -webkit-transform: scale(1);
+    transform: scale(1);
+    opacity: 1; } }
+
+.loader{
+  min-height: 140px;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+
+}
+
+.empty{
+  color: #333;
+  font-size: 18px;
+}
+
+.mb-10{
+  margin-bottom: 10px;
+}
+
+.mb-5{
+  margin-bottom: 5px;
+}
+
+.fb{
+  font-weight: bold;
+}
+
+.theme-color{
+  color: #4385F4;
+}
+
+.mt-10{
+  margin-top: 10px;
+}
+
+.font-size-24{
+  font-size: 24px;
+}

+ 185 - 0
src/assets/pdfExport/style/reset.less

@@ -0,0 +1,185 @@
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+div,
+p,
+ul,
+ol,
+span,
+section,
+a,
+i,
+b,
+label,
+img,
+em,
+strong,
+body {
+  margin: 0;
+  padding: 0;
+}
+
+h2 {
+  font-size: 26px;
+}
+h3 {
+  font-size: 24px;
+}
+h4 {
+  font-size: 22px;
+}
+h5 {
+  font-size: 18px;
+}
+h6 {
+  font-size: 16px;
+}
+body {
+  color: #888;
+  background: #FFF;
+  font-size: 14px;
+}
+img {
+  max-width: 100%;
+  height: auto;
+}
+a,
+a:hover,
+a:link {
+  text-decoration: none;
+  color: #333;
+  outline-style: none;
+  -moz-outline-style: none;
+}
+li {
+  list-style: none;
+}
+em,
+i,
+label {
+  font-style: normal;
+  font-weight: normal;
+}
+input,
+button {
+  border: none;
+  outline: none;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+  padding: 0;
+}
+textarea {
+  resize: vertical;
+  border: 0;
+}
+table {
+  border-collapse: collapse;
+}
+input::-webkit-input-placeholder {
+  color: #C0C4CC;
+  font-size: 13px;
+}
+input::-moz-placeholder {
+  color: #C0C4CC;
+  font-size: 13px;
+}
+input::-moz-placeholder {
+  color: #C0C4CC;
+  font-size: 13px;
+}
+input:-ms-input-placeholder {
+  color: #C0C4CC;
+  font-size: 13px;
+}
+dl {
+  margin-bottom: 0;
+}
+[v-cloak]{ display: none;}
+.fl {
+  float: left;
+}
+
+.fr {
+  float: right
+}
+
+.clearfix:before, .clearfix:after {
+  content: "";
+  display: block;
+  clear: both;
+}
+
+.clearfix {
+  zoom: 1;
+}
+/*文字超出省略号*/
+.ellipsis {
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+  -o-text-overflow: ellipsis;
+  -icab-text-overflow: ellipsis;
+  -khtml-text-overflow: ellipsis;
+  -moz-text-overflow: ellipsis;
+  -webkit-text-overflow: ellipsis;
+}
+/*处理遮罩下面的元素无法触发点击事件*/
+.pointer-events {
+  pointer-events: none;
+}
+/*兼容IE,未知高度文字垂直居中*/
+.vertical-box {
+  display: table;
+  height: 100%;
+  /*必需给最外层设置高度*/
+  *position: relative;
+  /*针对IE的hack*/
+}
+.vertical-box .vertical-box-sub {
+  display: table-cell;
+  vertical-align: middle;
+  *position: absolute;
+  /*针对IE的hack*/
+  *top: 50%;
+}
+.vertical-box .vertical-box-container {
+  *position: relative;
+  /*针对IE的hack*/
+  *top: -50%;
+  margin: 0 auto;
+}
+/* Let's get this party started */
+.scroll-style::-webkit-scrollbar {
+  width: 6px;
+  background-color: #fff;
+}
+/* Track */
+.scroll-style::-webkit-scrollbar-track {
+  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
+  -webkit-border-radius: 8px;
+  border-radius: 8px;
+}
+/* Handle */
+.scroll-style::-webkit-scrollbar-thumb {
+  -webkit-border-radius: 8px;
+  border-radius: 8px;
+  background: #ccd5df;
+  -webkit-box-shadow: inset 0 0 6px rgba(0, 0, 0, .3);
+}
+.scroll-style::-webkit-scrollbar-thumb:window-inactive {
+  background: #ccd5df;
+}
+
+//md
+//@media screen and (max-width: 992px) {
+//   .aside-box{
+//     display: none;
+//   }
+//
+//  .el-main{ padding: 20px 0;}
+//}
+
+
+

+ 31 - 0
src/assets/pdfExport/unReadEnquiryNum.svg

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#7BC8AA;}
+</style>
+<g>
+	<g>
+		<path class="st0" d="M151.9,191.4c-1.1,0-2.3-0.4-3.2-1.2l-32.8-27.4H4.9c-2.7,0-4.9-2.2-4.9-4.9V28.1c0-2.7,2.2-4.9,4.9-4.9
+			h176.8c2.7,0,4.9,2.2,4.9,4.9v129.8c0,2.7-2.2,4.9-4.9,4.9h-21.4l-3.6,24.4c-0.3,1.8-1.5,3.3-3.1,3.9
+			C153,191.2,152.4,191.4,151.9,191.4z M9.9,152.9h107.8c1.2,0,2.3,0.4,3.2,1.2l27.4,22.9l3-19.9c0.4-2.4,2.4-4.2,4.9-4.2h20.7V33
+			H9.9V152.9z"/>
+	</g>
+	<g>
+		<g>
+			<path class="st0" d="M50,93.1H28.3c-2.7,0-4.9-2.2-4.9-4.9s2.2-4.9,4.9-4.9H50c2.7,0,4.9,2.2,4.9,4.9C55,90.9,52.8,93.1,50,93.1z
+				"/>
+		</g>
+		<g>
+			<path class="st0" d="M102.1,93.1h-26c-2.7,0-4.9-2.2-4.9-4.9s2.2-4.9,4.9-4.9h26c2.7,0,4.9,2.2,4.9,4.9S104.8,93.1,102.1,93.1z"
+				/>
+		</g>
+		<g>
+			<path class="st0" d="M149.9,93.1h-21.7c-2.7,0-4.9-2.2-4.9-4.9s2.2-4.9,4.9-4.9h21.7c2.7,0,4.9,2.2,4.9,4.9
+				C154.8,90.9,152.6,93.1,149.9,93.1z"/>
+		</g>
+	</g>
+	<circle class="st0" cx="179.8" cy="28.8" r="20.2"/>
+</g>
+</svg>

+ 14 - 0
src/assets/pdfExport/uvicon.svg

@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F0B357;}
+</style>
+<path class="st0" d="M100,0c55.2,0,100,44.8,100,100s-44.8,100-100,100S0,155.2,0,100S44.8,0,100,0z M123,127.7H77
+	c-13.4,0-26.7,13.3-29.1,30L46.4,168c14.7,11.6,33.4,18.6,53.6,18.6c20.2,0,38.8-6.9,53.6-18.6l-1.5-10.4
+	c-2.3-16.4-15.4-29.7-28.7-29.9L123,127.7z M100,13.4c-47.8,0-86.6,38.8-86.6,86.6c0,21.7,8,41.5,21.1,56.7l0.1-0.4
+	c0-0.2,0.1-0.4,0.1-0.6c3.2-22.6,21.4-41.1,41.7-41.5l0.6,0H123c20.5,0,39.1,18.6,42.3,41.5l0.1,0.9c13.2-15.2,21.1-35,21.1-56.7
+	C186.6,52.2,147.8,13.4,100,13.4z M100,32.6c19.7,0,35.7,16,35.7,35.7S119.7,104,100,104S64.3,88,64.3,68.3S80.3,32.6,100,32.6z
+	 M100,46c-12.3,0-22.3,10-22.3,22.3s10,22.3,22.3,22.3s22.3-10,22.3-22.3S112.3,46,100,46z"/>
+</svg>

+ 21 - 0
src/assets/pdfExport/wenzhangshu.svg

@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#71B1EC;}
+</style>
+<title>文章数备份 5</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="文章数备份-5">
+		<path id="形状" class="st0" d="M32.2,154.8h110.3v6.4c0,14.6,3.5,21.2,10.6,22.4c6.2-1,10.8-6.4,10.8-12.7V36.8
+			c-0.4-19.3,7.8-30.6,23.8-30.6v12.9c-7.8,0-11.2,4.7-10.9,17.6V171c0,12.8-9.4,23.7-22,25.5v0.3h-129C11.5,196.8,0,185.2,0,171
+			v-16.1h19.4V29c0-14.3,11.5-25.8,25.8-25.8h131c15.4,0,23.8,10.1,23.8,27.5v30.5h-29.6V48.3h16.7V30.7c0-10.7-3.2-14.6-10.9-14.6
+			h-131c-7.1,0-12.9,5.8-12.9,12.9L32.2,154.8L32.2,154.8z M58.8,183.9H134c-2.2-4.4-3.6-9.8-4.1-16.1h-117v3.2
+			c0,7.1,5.8,12.9,12.9,12.9H58.8z M54.2,69.4c-3.6,0-6.4-2.9-6.4-6.4s2.9-6.4,6.4-6.4h87.1c3.6,0,6.4,2.9,6.4,6.4s-2.9,6.4-6.4,6.4
+			H54.2z M54.3,104.9c-3.6,0-6.4-2.9-6.4-6.4s2.9-6.4,6.4-6.4h44.1c3.6,0,6.4,2.9,6.4,6.4s-2.9,6.4-6.4,6.4
+			C98.3,104.9,54.3,104.9,54.3,104.9z"/>
+	</g>
+</g>
+</svg>

+ 23 - 0
src/assets/pdfExport/xunpanshu.svg

@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#7C98FC;}
+</style>
+<title>询盘数</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="询盘数">
+		<path id="形状" class="st0" d="M181.4,173.1H59c-10.2,0-18.3-8.3-18.3-18.3V83.5c0-10.2,8.3-18.3,18.3-18.3h122.4
+			c10.2,0,18.3,8.3,18.3,18.3v71.3C199.7,164.7,191.6,173.1,181.4,173.1z M59,75.4c-4.3,0-7.8,3.5-7.8,7.8v71.3
+			c0,4.3,3.5,7.8,7.8,7.8h122.4c4.3,0,7.8-3.5,7.8-7.8v-71c0-4.3-3.5-7.8-7.8-7.8H59V75.4z"/>
+		<path id="路径" class="st0" d="M120.3,124.4c-1.1,0-1.9-0.3-2.7-0.8L69.2,92.6c-2.4-1.6-3.2-4.8-1.6-7.3
+			c1.6-2.4,4.8-3.2,7.3-1.6l45.5,29.1l45.5-29.1c2.4-1.6,5.7-0.8,7.3,1.6c1.6,2.4,0.8,5.7-1.6,7.3L123,123.5
+			C122.2,124.1,121.1,124.4,120.3,124.4L120.3,124.4z"/>
+		<path id="路径_1_" class="st0" d="M18.9,134.8c-10.2,0-18.6-8.3-18.6-18.3V45.2c0-10.2,8.3-18.3,18.3-18.3H141
+			c10.2,0,18.3,8.3,18.3,18.3c0,3-2.4,5.4-5.4,5.4s-5.4-2.4-5.4-5.4c0-4.3-3.5-7.8-7.8-7.8H18.9c-4.3,0-7.8,3.5-7.8,7.8v71.3
+			c0,4.3,3.5,7.8,7.8,7.8c3,0,5.4,2.4,5.4,5.4S21.8,134.8,18.9,134.8z"/>
+	</g>
+</g>
+</svg>

+ 27 - 0
src/assets/pdfExport/zhidingci.svg

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Generator: Adobe Illustrator 24.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0)  -->
+<svg version="1.1" id="图层_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+	 viewBox="0 0 200 200" style="enable-background:new 0 0 200 200;" xml:space="preserve">
+<style type="text/css">
+	.st0{fill:#F0B357;}
+</style>
+<title>全部备份</title>
+<desc>Created with Sketch.</desc>
+<g id="页面-1">
+	<g id="全部备份">
+		<path id="形状" class="st0" d="M142,25H35.7C22.6,25,12,35.7,12,48.7v127.2c0,13,10.6,23.7,23.7,23.7H142
+			c13,0,23.7-10.6,23.7-23.7V48.6C165.7,35.6,155.1,25,142,25z M153.9,175.8c0,6.5-5.3,11.8-11.8,11.8H35.7
+			c-6.5,0-11.8-5.3-11.8-11.8V48.6c0-6.5,5.3-11.8,11.8-11.8H142c6.5,0,11.8,5.3,11.8,11.8V175.8z"/>
+		<path id="路径" class="st0" d="M43.9,101.7h66.2c3.3,0,5.9-2.6,5.9-5.9c0-3.3-2.6-5.9-5.9-5.9H43.9c-3.3,0-5.9,2.6-5.9,5.9
+			C38.1,99.2,40.6,101.7,43.9,101.7z"/>
+		<path id="路径_1_" class="st0" d="M86.5,56.1H43.9c-3.3,0-5.9,2.6-5.9,5.9s2.6,5.9,5.9,5.9h42.6c3.3,0,5.9-2.6,5.9-5.9
+			S89.8,56.1,86.5,56.1z"/>
+		<path id="路径_2_" class="st0" d="M43.9,169.1h66.2c3.3,0,5.9-2.6,5.9-5.9c0-3.3-2.6-5.9-5.9-5.9H43.9c-3.3,0-5.9,2.6-5.9,5.9
+			C38.1,166.5,40.6,169.1,43.9,169.1z"/>
+		<path id="路径_3_" class="st0" d="M86.5,123.3H43.9c-3.3,0-5.9,2.6-5.9,5.9c0,3.3,2.6,5.9,5.9,5.9h42.6c3.3,0,5.9-2.6,5.9-5.9
+			C92.4,125.9,89.8,123.3,86.5,123.3z"/>
+		<path id="路径_4_" class="st0" d="M164.4,0.4H58.1C46.3,0.4,36.6,9,34.7,20.2h12.1c1.6-4.6,6-8,11.1-8h106.4
+			c6.5,0,11.8,5.3,11.8,11.8v127.2c0,4.3-2.3,8.1-5.8,10.1v12.7c10-2.7,17.6-11.9,17.6-22.9V24.1C188,11.1,177.4,0.4,164.4,0.4z"/>
+	</g>
+</g>
+</svg>

+ 10 - 1
src/router/routes/index.ts

@@ -39,6 +39,15 @@ export const LoginRoute: AppRouteRecordRaw = {
   },
 };
 
+export const PDFRoute: AppRouteRecordRaw = {
+  path: '/seo/pdf',
+  name: 'Pdf',
+  component: () => import('/@/views/adweb/seo/Pdf.vue'),
+  meta: {
+    title: "PDF",
+  },
+};
+
 //update-begin---author:wangshuai ---date:20220629  for:auth2登录页面路由------------
 export const Oauth2LoginRoute: AppRouteRecordRaw = {
   path: '/oauth2-app/login',
@@ -65,4 +74,4 @@ export const TokenLoginRoute: AppRouteRecordRaw = {
   },
 };
 // Basic routing without permission
-export const basicRoutes = [LoginRoute, RootRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE, TokenLoginRoute, Oauth2LoginRoute];
+export const basicRoutes = [LoginRoute, RootRoute,PDFRoute, ...mainOutRoutes, REDIRECT_ROUTE, PAGE_NOT_FOUND_ROUTE, TokenLoginRoute, Oauth2LoginRoute];

+ 420 - 0
src/views/adweb/seo/Pdf.vue

@@ -0,0 +1,420 @@
+<template>
+  <div class="wrap container">
+    <!-- 页头 -->
+    <div class="top row">
+      <p id="companyName">{{ customerName }} - SEO月度报告</p>
+      <p class="time" style="color: #fff!important;">日期:<span id="startTime"
+                                                                style="color: #fff!important;">{{ monthFirstDayStr
+        }}</span>-<span id="endTime" style="color: #fff!important;">{{ monthEndDayStr }}</span></p>
+    </div>
+    <!-- 数据模块 -->
+    <section style="padding: 0 30px">
+      <section class="row top-info">
+        <p class="mb-5">尊敬的【{{ customerName }}】:</p>
+        <p>我非常高兴向您呈上{{ monthStr }}
+          的SEO月报,为您提供网站在SEO中的详尽数据和分析。作为您的SEO团队,我们一直努力追求卓越的结果,以确保您的在线业务能够获得更大的曝光度和持续增长。</p>
+        <p>
+          在过去的一个月里,我们积极地致力于提升您的网站的可见性和排名,并进行了一系列优化策略的实施。具体细节请参考以下报告细节。</p>
+      </section>
+
+      <!-- 当月优化总结 -->
+      <section class="row title-row">
+        <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+        <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />当月优化总结</p>
+        <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+      </section>
+      <section class="row r6">
+        <div class="tip">
+          在过去的1个月里,我们致力于为您的网站进行全面的SEO优化工作。通过对关键词排名、网站结构、内容优化以及用户体验等方面的深入分析和优化,以下是我们的SEO优化总结:
+        </div>
+        <div class="content" id="dangyue">
+          <div>{{ fromEdit.monthSummary }}</div>
+        </div>
+      </section>
+
+      <!-- 下月优化计划 -->
+      <section class="row title-row">
+        <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+        <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />下月优化计划</p>
+        <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+      </section>
+      <section class="row r6">
+        <div class="tip">
+          感谢您对我们的SEO优化工作的信任。在下个月,我们计划继续改进和优化您的网站,以进一步提升其在搜索引擎中的表现。以下是我们的下月优化计划:
+        </div>
+        <div class="content" id="xiayue">
+          <div>{{ fromEdit.nextMonthPlan }}</div>
+        </div>
+        <div class="tip" style="margin-top: 10px;">
+          我们将按照以上优化计划,不断努力提升您的网站在搜索引擎中的表现。如果您有任何疑问或需要进一步讨论,请随时与我们联系。感谢您的合作,我们期待着实现更大的SEO成功!
+        </div>
+      </section>
+
+      <!-- 网站流量 -->
+      <section class="row title-row">
+        <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+        <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />网站流量</p>
+        <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+      </section>
+      <section class="row chart-wrap-row">
+        <div class="chart-wrap">
+          <p class="tip">
+            在本月的SEO月报中,我们会向您展示关于网站流量数据及其他相关的数据,如页面浏览量、跳出率、平均访问时长等,以帮助您更全面地了解网站流量情况和用户行为。这些数据将以图表、表格或其他可视化方式呈现,以便您更直观地理解和分析。
+          </p>
+          <p class="tip">
+            以下是一些关键的流量指标和相应的数据展示:
+          </p>
+          <div id="seoliuliang" style="height: 440px;width: 1140px;"></div>
+          <div class="loader loader1" style="display: none;">
+            <p class="empty">暂无数据</p>
+          </div>
+        </div>
+      </section>
+      <section class="row r2">
+        <div class="item impressionsNum" style="border-color: #E3EDFE">
+          <img src="@/assets/pdfExport/img/uvicon.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">1000</span></p>
+            <p class="title"> 访客数(UV)</p>
+          </div>
+        </div>
+        <div class="item" style="border-color: #C6DAFB">
+          <img src="@/assets/pdfExport/img/pvicon.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">2000</span></p>
+            <p class="title"> 浏览量(PV)</p>
+          </div>
+        </div>
+        <div class="item" style="border-color: #AAC8FA">
+          <img src="@/assets/pdfExport/img/unReadEnquiryNum.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">123123</span></p>
+            <p class="title"> 日均访问量</p>
+          </div>
+        </div>
+        <div class="item" style="border-color: #98BCF9">
+          <img src="@/assets/pdfExport/img/pingjun.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">123</span>
+            </p>
+            <p class="title"> 平均访问时长</p>
+          </div>
+        </div>
+        <div class="item" style="border: none">
+          <img src="@/assets/pdfExport/img/conversionRate.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">234234</span>
+            </p>
+            <p class="title"> 平均访问页面数</p>
+          </div>
+        </div>
+        <img class="right_bg_img" src="@/assets/pdfExport/img/shang.png" />
+      </section>
+      <!--最多访问-->
+      <section class="row title-row">
+        <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+        <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />最多访问TOP10</p>
+        <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+      </section>
+      <section class="row table-row">
+        <table class="table">
+          <thead>
+          <th>来源</th>
+          <th>浏览量(PV)</th>
+          <th>浏览量占比</th>
+          </thead>
+          <tbody id="tableBody1">
+          <tr>
+            <td> 123</td>
+            <td> 333</td>
+            <td> 312</td>
+          </tr>
+          </tbody>
+        </table>
+        <div class="loader loader1">
+          <p class="empty">暂无数据</p>
+        </div>
+      </section>
+      <!--网站排名-->
+      <div class="bg-advich">
+        <section class="row title-row">
+          <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+          <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />网站排名</p>
+          <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+        </section>
+        <section class="row s3">
+          <div class="col-sm-12">
+            <p class="tip">
+              在本月的SEO月报中,我们向您展示关于您网站排名的部分数据。因关键词排名数据量较大且实时变化,这边仅展示前50个关键词排名细节,您可登录后台查看全部数据。以下是一些的排名指标和相应的数据展示:</p>
+          </div>
+          <div class="col-sm-12">
+            <div class="loader loader1">
+              <p class="empty">暂无数据</p>
+            </div>
+          </div>
+          <div class="col-sm-12 flex-row">
+            <div class="item1">
+              <div class="item">
+                <img src="@/assets/pdfExport/img/zhidingci.svg" />
+                <p>指定词</p>
+                <p class="fb theme-color font-size-24"
+                   style="color: #4385F4!important;">1111</p>
+              </div>
+            </div>
+            <div class="item2">
+              <div class="wrap">
+                <p class="t1">指定词排名</p>
+                <div class="content">
+                  <div class="d1"><img src="@/assets/pdfExport/img/NO1.svg" />1-10位
+                  </div>
+                  <div class="d2 fb theme-color font-size-24"
+                       style="color: #4385F4!important;">2 个
+                  </div>
+                </div>
+                <div class="content">
+                  <div class="d1"><img src="@/assets/pdfExport/img/NO2.svg" />11-30位
+                  </div>
+                  <div class="d2 fb theme-color font-size-24"
+                       style="color: #4385F4!important;">3 个
+                  </div>
+                </div>
+                <div class="content">
+                  <div class="d1"><img src="@/assets/pdfExport/img/NO3.svg" />31-100位
+                  </div>
+                  <div class="d2 fb theme-color font-size-24"
+                       style="color: #4385F4!important;">10个
+                  </div>
+                </div>
+              </div>
+            </div>
+            <div class="item1">
+              <div class="item">
+                <img src="@/assets/pdfExport/img/changweici.svg" />
+                <p>关键词</p>
+                <p class="fb theme-color font-size-24"
+                   style="color: #4385F4!important;">22</p>
+              </div>
+            </div>
+            <div class="item2">
+              <div class="wrap">
+                <p class="t1">关键词排名</p>
+                <div class="content">
+                  <div class="d1"><img src="@/assets/pdfExport/img/NO1.svg" />1-10位
+                  </div>
+                  <div class="d2 fb theme-color font-size-24"
+                       style="color: #4385F4!important;">3 个
+                  </div>
+                </div>
+                <div class="content">
+                  <div class="d1"><img src="@/assets/pdfExport/img/NO2.svg" />11-30位
+                  </div>
+                  <div class="d2 fb theme-color font-size-24"
+                       style="color: #4385F4!important;">40 个
+                  </div>
+                </div>
+                <div class="content">
+                  <div class="d1"><img src="@/assets/pdfExport/img/NO3.svg" />31-100位
+                  </div>
+                  <div class="d2 fb theme-color font-size-24"
+                       style="color: #4385F4!important;">20 个
+                  </div>
+                </div>
+              </div>
+            </div>
+          </div>
+        </section>
+      </div>
+    </section>
+
+    <section class="row title-row">
+      <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+      <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />指定词排名列表</p>
+      <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+    </section>
+    <section class="row table-row">
+      <table class="table">
+        <thead>
+        <th style="min-width: 80px;text-align: center">序号</th>
+        <th>关键词</th>
+        <th style="min-width: 120px">排名</th>
+        </thead>
+        <tbody id="tableBody2">
+        <tr>
+          <td style="text-align: center">1</td>
+          <td style="text-align: left"><a href="www">www</a></td>
+          <td style="text-align: center">1</td>
+        </tr>
+        </tbody>
+      </table>
+    </section>
+
+    <section class="row title-row">
+      <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+      <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />关键词排名列表</p>
+      <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+    </section>
+    <section class="row table-row">
+      <table class="table">
+        <thead>
+        <th style="min-width: 80px;text-align: center">序号</th>
+        <th>关键词</th>
+        <th style="min-width: 120px">排名</th>
+        </thead>
+        <tbody id="tableBody3">
+        <tr>
+          <td style="text-align: center">1</td>
+          <td style="text-align: left"><a href="www">www</a></td>
+          <td style="text-align: center">1</td>
+        </tr>
+        </tbody>
+      </table>
+    </section>
+    <!--网站外链-->
+    <div class="bg-advich">
+      <section class="row title-row">
+        <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+        <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />网站外链</p>
+        <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+      </section>
+      <section class="row table-row">
+        <p>
+          在本月的SEO月报中,我们向您展示关于您网站外链的数据。这有助于您直观地了解外链的增长和变化情况,并评估外链优化策略的效果。以下是一些关键的外链指标和相应的数据展示:</p>
+      </section>
+      <section class="row r2">
+        <div class="item" style="border-color: #e3edfe">
+          <img src="@/assets/pdfExport/img/outlink1.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">-</span>
+            </p>
+            <p class="title">外链总数</p>
+          </div>
+        </div>
+        <div class="item" style="border-color: #C6DAFB">
+          <img src="@/assets/pdfExport/img/outlink2.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">-</span>
+            </p>
+            <p class="title">外链域</p>
+          </div>
+        </div>
+        <div class="item" style="border:none">
+          <img src="@/assets/pdfExport/img/outlink3.svg" />
+          <div>
+            <p class="date"><span class="fb theme-color font-size-24"
+                                  style="color: #4385F4!important;">-</span>
+            </p>
+            <p class="title">外链发布数</p>
+          </div>
+        </div>
+
+      </section>
+      <section class="row outlink-row">
+        <div class="col-sm-6">
+          <p class="img-title">外链总数趋势</p>
+          <div class="img-wrap-outlink">
+            <img src="" />
+          </div>
+
+          <div class="content" id="miaoshu1">
+            <p>
+              weer
+            </p>
+          </div>
+        </div>
+        <div class="col-sm-6">
+          <p class="img-title">外链变化趋势</p>
+          <div class="img-wrap-outlink">
+            <img src="" />
+          </div>
+          <div class="content" id="miaoshu2">
+            <p>
+              werer
+            </p>
+          </div>
+        </div>
+      </section>
+    </div>
+    <div class="bg-advich">
+      <section class="row title-row">
+        <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png" />
+        <p class="title"><img src="@/assets/pdfExport/img/title-dot.png" />网站外链</p>
+        <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png" />
+      </section>
+      <section class="row table-row">
+        <p>
+          目前,我们还未开始进行外链优化,通常情况下,外链优化的最佳时间是在关键词优化后的4-6个月。这段时间内,我们专注于确保网站在关键词排名方面取得显著的进展。</p>
+        <p>
+          在外链优化开始后,我们将在未来的报告中提供更多关于外链优化工作的详细信息和结果。我们期待着与您共同努力,以实现网站在搜索引擎中的最佳表现。如有任何疑问或需要进一步的解释,请随时向我们提问。</p>
+      </section>
+    </div>
+    <!--结语-->
+    <div class="bg-advich">
+      <section class="row title-row">
+        <img class="left-bg" src="@/assets/pdfExport/img/title-left-bg.png"/>
+        <p class="title"><img src="@/assets/pdfExport/img/title-dot.png"/>结语</p>
+        <img class="right-bg" src="@/assets/pdfExport/img/title-right-bg.png"/>
+      </section>
+      <section class="row table-row">
+        <p>我们深知SEO是一个持续的过程,需要不断地监测、调整和改进。通过本月报告,我们与您分享我们的工作成果,并提供专业的建议和策略,以进一步提升您的网站在搜索引擎中的表现。</p>
+        <p>我们期待帮助您更好地理解和利用SEO对您的业务带来的巨大潜力。如果您对报告中的任何内容有疑问或需要进一步的解释,我们将随时为您提供支持和指导。</p>
+        <p>感谢您对我们的信任和合作。我们将继续竭尽全力,为您的网站取得更大的成功。</p>
+        <p>祝您生意兴隆!</p>
+        <p style="text-align: right;">诚挚的问候</p>
+        <p style="text-align: right">SEO团队</p>
+      </section>
+      <section class="row remark">
+        <p><span style="font-weight:bold">注:</span>本次报告的SEO数据仅反映一段时间内的网站表现,但要注意数据的可变性和动态性,建议结合长期趋势和综合指标来评估网站SEO的整体表现。
+        </p>
+      </section>
+    </div>
+  </div>
+</template>
+
+<script>
+import "@/assets/pdfExport/style/index.less";
+import "@/assets/pdfExport/style/reset.less";
+
+export default {
+  data() {
+    return {
+      customerName: "",
+      monthStr: "",
+      monthFirstDayStr: "",
+      monthEndDayStr: "",
+      fromEdit: {},
+      fromGA: {}
+    };
+  },
+  mounted() {
+    // 在这里获取数据并赋值给组件的data属性
+    // 例如,可以通过API请求获取数据
+    // 然后使用this.$set来更新数据
+    this.customerName = "Your Customer Name";
+    this.monthStr = "Month Year";
+    this.monthFirstDayStr = "Start Date";
+    this.monthEndDayStr = "End Date";
+    this.fromEdit = {
+      monthSummary: "Monthly Summary Content",
+      nextMonthPlan: "Next Month Plan Content"
+    };
+    this.fromGA = {
+      accessData: {
+        uv: "1000",
+        pv: "5000",
+        unReadEnquiryNum: "10"
+      }
+    };
+  }
+};
+</script>
+
+<style scoped lang="less">
+
+</style>

+ 0 - 587
src/views/adweb/seo/SeoKeywordsRankListCopy.vue

@@ -1,587 +0,0 @@
-<template>
-  <div>
-    <a-row class="r1" style="margin: 20px">
-      <a-col :span="24">
-        <span class="t1">{{ siteinfo.length > 1 ? '请选择站点:' : '套餐:' }}</span>
-        <select-site v-if="siteinfo.length > 1" @com-methods="changeSite" selectWidth="300px" />
-        <span style="margin-left: 16px" class="t1"
-          >{{ selectSiteInfo.planName && selectSiteInfo.planType !== 'STATIONCONSTRUCTION' ? selectSiteInfo.planName : '暂无SEO推广套餐~' }}
-          <a-popover placement="bottom" v-show="selectSiteInfo.planName && selectSiteInfo.planType !== 'STATIONCONSTRUCTION'">
-            <template #content>
-              <span> 指定词数:{{ last(comprehenInfo.specifyKeywordNum) }}&nbsp; </span>
-              <span> 关键词数:{{ last(comprehenInfo.longTailKeywordNum) }}&nbsp; </span>
-              <span> 外链数:{{ last(comprehenInfo.outerLinkNum) }}&nbsp; </span>
-              <span> 文章数:{{ last(comprehenInfo.articleNum) }} </span>
-            </template>
-            <img
-              src="https://cutomer-static-bucket.s3.cn-northwest-1.amazonaws.com.cn/public/material/220803883dfy/document/changjianwenti_1676606434975.png"
-              alt="issue"
-              width="25px"
-              height="25px"
-            />
-          </a-popover>
-        </span>
-      </a-col>
-    </a-row>
-    <a-row class="r2" type="flex" justify="center" align="middle">
-      <a-col :span="6">
-        <p class="t1"><img src="../../../assets/seo/zhidingci.svg" />指定词</p>
-        <p class="t2" v-if="comprehenInfo.specifyKeywordNum == null"> - </p>
-        <p class="t2" v-else>
-          <span>{{ comprehenInfo.specifyKeywordNum }}</span>
-        </p>
-      </a-col>
-      <a-col :span="6">
-        <p class="t1"><img src="../../../assets/seo/changweici.svg" />关键词</p>
-        <p class="t2" v-if="comprehenInfo.longTailKeywordNum == null"> - </p>
-        <p class="t2" v-else>
-          <span>{{ comprehenInfo.longTailKeywordNum }}</span>
-        </p>
-      </a-col>
-      <a-col :span="6">
-        <p class="t1"><img src="../../../assets/seo/lianjieshu.svg" />外链数</p>
-        <p class="t2" v-if="comprehenInfo.outerLinkNum == null"> - </p>
-        <p class="t2">
-          <span>{{ comprehenInfo.outerLinkNum }}</span>
-        </p>
-      </a-col>
-      <a-col :span="6">
-        <p class="t1"><img src="../../../assets/seo/wenzhangshu.svg" />文章数</p>
-        <p class="t2" v-if="comprehenInfo.articleNum == null"> - </p>
-        <p class="t2">
-          <span>{{ comprehenInfo.articleNum }}</span>
-        </p>
-      </a-col>
-    </a-row>
-    <a-row class="r3" type="flex" :gutter="16">
-      <a-col :span="12">
-        <div class="wrap">
-          <p class="t1">指定词排名</p>
-          <div class="content">
-            <div class="d1"><img src="../../../assets/seo/NO1.svg" />1-10位</div>
-            <div class="d2"
-              ><a @click="getTableInfoRank(3, 1)">{{ filtr_null(rankInfo.appointKeyword.firstNum) }}</a
-              >个
-            </div>
-          </div>
-          <div class="content">
-            <div class="d1"><img src="../../../assets/seo/NO2.svg" />11-30位</div>
-            <div class="d2"
-              ><a @click="getTableInfoRank(7, 1)">{{ filtr_null(rankInfo.appointKeyword.secondNum) }}</a
-              >个
-            </div>
-          </div>
-          <div class="content">
-            <div class="d1"><img src="../../../assets/seo/NO3.svg" />31-100位</div>
-            <div class="d2"
-              ><a @click="getTableInfoRank(8, 1)">{{ filtr_null(rankInfo.appointKeyword.thirdType) }}</a
-              >个
-            </div>
-          </div>
-        </div>
-      </a-col>
-      <a-col :span="12">
-        <div class="wrap">
-          <p class="t1">关键词排名</p>
-          <div class="content">
-            <div class="d1"><img src="../../../assets/seo/NO1.svg" />1-10位</div>
-            <div class="d2">
-              <a @click="longGetTableInfoRank(3)">{{ filtr_null(rankInfo.longTailKeyword.firstNum) }}</a
-              >个
-            </div>
-          </div>
-          <div class="content">
-            <div class="d1"><img src="../../../assets/seo/NO2.svg" />11-30位</div>
-            <div class="d2"
-              ><a @click="longGetTableInfoRank(7)">{{ filtr_null(rankInfo.longTailKeyword.secondNum) }}</a
-              >个
-            </div>
-          </div>
-          <div class="content">
-            <div class="d1"><img src="../../../assets/seo/NO3.svg" />31-100位</div>
-            <div class="d2"
-              ><a @click="longGetTableInfoRank(8)">{{ filtr_null(rankInfo.longTailKeyword.thirdType) }}</a
-              >个
-            </div>
-          </div>
-        </div>
-      </a-col>
-    </a-row>
-    <!--引用表格-->
-    <BasicTable @register="registerTable" :rowSelection="rowSelection">
-      <!--插槽:table标题-->
-      <template #tableTitle>
-        <a-button type="primary" preIcon="ant-design:export-outlined" @click="onExportXls"> 导出</a-button>
-      </template>
-      <!--操作栏-->
-      <template #action="{ record }">
-        <TableAction :actions="getTableAction(record)" :dropDownActions="getDropDownAction(record)" />
-      </template>
-      <!--字段回显插槽-->
-      <template #bodyCell="{ column, record, index, text }"> </template>
-    </BasicTable>
-    <!-- 表单区域 -->
-    <SeoKpiStatisticsModal @register="registerModal" @success="handleSuccess" />
-  </div>
-</template>
-
-<script lang="ts" name="serp-seoKpiStatistics" setup>
-  import { ref, reactive, computed, unref, onMounted } from 'vue';
-  import { BasicTable, useTable, TableAction } from '/src/components/Table';
-  import { useModal } from '/src/components/Modal';
-  import { useListPage } from '/src/hooks/system/useListPage';
-  import { columns, searchFormSchema, superQuerySchema } from './SeoKeywordsRank.data';
-  import { list, deleteOne, batchDelete, getImportUrl, getExportUrl, getAllSites } from './SeoKeywordsRank.api';
-  import { downloadFile } from '/src/utils/common/renderUtils';
-  import { useUserStore } from '/src/store/modules/user';
-  import selectSite from '@/components/Adweb/selectSite.vue';
-  import { getAction } from '@/api/manage/manage';
-  const queryParam = reactive<any>({});
-  const checkedKeys = ref<Array<string | number>>([]);
-  const userStore = useUserStore();
-  //注册model
-  const [registerModal, { openModal }] = useModal();
-  //注册table数据
-  const { prefixCls, tableContext, onExportXls, onImportXls } = useListPage({
-    tableProps: {
-      title: 'seo_keywords_rank',
-      api: list,
-      columns,
-      canResize: false,
-      formConfig: {
-        //labelWidth: 120,
-        schemas: searchFormSchema,
-        autoSubmitOnEnter: true,
-        showAdvancedButton: true,
-        fieldMapToNumber: [],
-        fieldMapToTime: [],
-      },
-      actionColumn: {
-        width: 120,
-        fixed: 'right',
-      },
-      beforeFetch: (params) => {
-        return Object.assign(params, queryParam);
-      },
-    },
-    exportConfig: {
-      name: 'seo_keywords_rank',
-      url: getExportUrl,
-      params: queryParam,
-    },
-    importConfig: {
-      url: getImportUrl,
-      success: handleSuccess,
-    },
-  });
-
-  const [registerTable, { reload }, { rowSelection, selectedRowKeys }] = tableContext;
-
-  // 高级查询配置
-  const superQueryConfig = reactive(superQuerySchema);
-
-  const siteinfo = ref([]);
-  const selectSiteInfo = ref({ planId: '', planName: '', planType: '', subscriptionId: '' });
-  const siteCode = ref('');
-  let comprehenInfo = ref({ specifyKeywordNum: 0, longTailKeywordNum: 0, outerLinkNum: 0, articleNum: 0 });
-  const keywords = ref('');
-  const rankInfo = ref({
-    appointKeyword: { firstNum: 0, secondNum: 0, thirdType: '' },
-    longTailKeyword: { firstNum: 0, secondNum: 0, thirdType: '' },
-  });
-  const dataSource = ref([]);
-  const ipagination = ref({ current: 1, total: 0 });
-  const longDataSource = ref([]);
-  const longIpagination = ref({ current: 1, total: 0 });
-  const show = ref();
-  const keywordType = ref();
-  const longShow = ref();
-  // const loading = ref(false);
-
-  /**
-   * 高级查询事件
-   */
-  function handleSuperQuery(params) {
-    Object.keys(params).map((k) => {
-      queryParam[k] = params[k];
-    });
-    reload();
-  }
-  /**
-   * 新增事件
-   */
-  function handleAdd() {
-    openModal(true, {
-      isUpdate: false,
-      showFooter: true,
-    });
-  }
-  /**
-   * 编辑事件
-   */
-  function handleEdit(record: Recordable) {
-    openModal(true, {
-      record,
-      isUpdate: true,
-      showFooter: true,
-    });
-  }
-  /**
-   * 详情
-   */
-  function handleDetail(record: Recordable) {
-    openModal(true, {
-      record,
-      isUpdate: true,
-      showFooter: false,
-    });
-  }
-  /**
-   * 删除事件
-   */
-  async function handleDelete(record) {
-    await deleteOne({ id: record.id }, handleSuccess);
-  }
-  /**
-   * 批量删除事件
-   */
-  async function batchHandleDelete() {
-    await batchDelete({ ids: selectedRowKeys.value }, handleSuccess);
-  }
-  /**
-   * 成功回调
-   */
-  function handleSuccess() {
-    (selectedRowKeys.value = []) && reload();
-  }
-  /**
-   * 操作栏
-   */
-  function getTableAction(record) {
-    return [
-      {
-        label: '去查询',
-        onClick: handleEdit.bind(null, record),
-      },
-    ];
-  }
-
-  //切换站点
-  function changeSite(value, e) {
-    getSiteInfo();
-    selectSiteInfo.value = e.info;
-    siteCode.value = value;
-    queryParam.reachStandard = undefined;
-    keywords.value = '';
-    localStorage.setItem('siteCode', value);
-    resetAllInfo();
-    getAllInfo();
-  }
-  //先执行获取site信息,只有在获取到siteCode之后,才能执行以下方法
-  function getSiteInfo() {
-    getAllSites().then((res) => {
-      siteinfo.value = res;
-      if (res.length > 0) {
-        let isInSite = false;
-        for (let i in res) {
-          if (localStorage.getItem('siteCode') !== null && res[i].code === localStorage.getItem('siteCode')) {
-            isInSite = true;
-            selectSiteInfo.value = res[i];
-          }
-        }
-        if (localStorage.getItem('siteCode') !== null && isInSite) {
-          siteCode.value = localStorage.getItem('siteCode');
-        } else {
-          siteCode.value = res[0].code;
-          selectSiteInfo.value = res[0];
-          localStorage.setItem('siteCode', res[0].code);
-        }
-      }
-      resetAllInfo();
-      getAllInfo();
-    });
-  }
-
-  function resetAllInfo() {
-    comprehenInfo.value = { specifyKeywordNum: 0, longTailKeywordNum: 0, outerLinkNum: 0, articleNum: 0 };
-    rankInfo.value = { appointKeyword: {}, longTailKeyword: {} };
-    dataSource.value = [];
-    ipagination.value = { current: 1, total: 0 };
-    longDataSource.value = [];
-    longIpagination.value = { current: 1, total: 0 };
-  }
-
-  function getAllInfo() {
-    let d = {
-      siteCode: siteCode.value,
-      subscriptionId: selectSiteInfo.value.subscriptionId ?? '',
-    };
-    getAction('/seo/seoKeywordsRank/comprehensiveInfo', d)
-      .then((res) => {
-        if (res.code == 200) {
-          comprehenInfo.value = res.result;
-        }
-      })
-      .finally(() => {
-        getRankInfo();
-        setTableQuery();
-        // longSetTableQuery()
-      });
-  }
-  function first(value) {
-    if (value && value != null) {
-      let a = value.split('/');
-      return a[0];
-    } else {
-      return '- ';
-    }
-  }
-  function last(value) {
-    if (value && value != null) {
-      let a = value.split('/');
-      return a[1];
-    } else {
-      return ' -';
-    }
-  }
-  function filtr_null(value) {
-    if (value != null) {
-      return value;
-    } else {
-      return '- ';
-    }
-  }
-  //点击排名数量事件
-  function getTableInfoRank(d, keywordType) {
-    show.value = d;
-    queryParam.reachStandard = undefined;
-    if (keywordType) {
-      keywordType.value = keywordType;
-    }
-    setTableQuery();
-  }
-  //由于页面的业务关联很多,故将所有的查询条件封装
-  function setTableQuery() {
-    queryParam.siteCode = siteCode.value;
-    if (show.value == 3) {
-      queryParam.rankStart = '1';
-      queryParam.rankEnd = '10';
-    } else if (show.value == 4) {
-      queryParam.rankStart = '1';
-      queryParam.rankEnd = '30';
-    } else if (show.value == 5) {
-      queryParam.rankStart = '1';
-      queryParam.rankEnd = '50';
-    } else if (show.value == 6) {
-      queryParam.rankStart = '1';
-      queryParam.rankEnd = '100';
-    } else if (show.value == 7) {
-      queryParam.rankStart = '11';
-      queryParam.rankEnd = '30';
-    } else if (show.value == 8) {
-      queryParam.rankStart = '31';
-      queryParam.rankEnd = '100';
-    } else {
-      queryParam.rankStart = undefined;
-      queryParam.rankEnd = undefined;
-    }
-    queryParam.keywordType = keywordType.value;
-    queryParam.keywords = keywords.value;
-    // loadData(1)
-  }
-  // function loadData(arg) {
-  //   let a = []
-  //   if (arg === 1) {
-  //     ipagination.value.current = 1
-  //   }
-  //   var params = getQueryParams()//查询条件
-  //   params.subscriptionId = selectSiteInfo.value.subscriptionId;
-  //   params.keywordType = 1;
-  //   loading.value = true
-  //   getAction(url.list, params).then((res) => {
-  //     if (res.success) {
-  //       let alldata  = res.result.records
-  //       if(alldata.length > 0){
-  //         for(let i in alldata){
-  //           let rankInfo = alldata[i].rankInfo;
-  //           a.push({
-  //             id:alldata[i].id,
-  //             keywords:alldata[i].keywords,
-  //             keywordType:alldata[i].keywordType,
-  //             keywordsLength:alldata[i].keywordsLength,
-  //             rankInfo:rankInfo,
-  //             ...rankInfo
-  //           })
-  //         }
-  //         dataSource = a;
-  //         getTableColums()
-  //         ipagination.total = res.result.total
-  //       }else{
-  //         dataSource = a;
-  //         ipagination.total = 0
-  //       }
-  //
-  //     }
-  //     if (res.code === 510) {
-  //       $message.warning(res.message)
-  //     }
-  //     loading = false
-  //   })
-  // },
-  //点击排名数量事件
-  function longGetTableInfoRank(d) {
-    longShow.value = d;
-    // longQueryParam.reachStandard = undefined
-    // longSetTableQuery()
-  }
-  //获取排行榜数据
-  function getRankInfo() {
-    let d = {
-      siteCode: siteCode.value,
-      subscriptionId: selectSiteInfo.value.subscriptionId ? selectSiteInfo.value.subscriptionId : '',
-    };
-    getAction('/seo/seoKeywordsRank/getRankInfo', d).then((res) => {
-      console.log(res.code == 200);
-      if (res.code == 200) {
-        rankInfo.value.appointKeyword = res.result.appointKeyword;
-        rankInfo.value.longTailKeyword = res.result.longTailKeyword;
-        console.log(rankInfo.value.a);
-      }
-    });
-  }
-  //动态处理表格列
-  function getTableColums() {
-    that.columns = [
-      {
-        title: '序号',
-        dataIndex: 'rowIndex',
-        key: 'rowIndex',
-        width: 40,
-        align: 'center',
-        fixed: 'left',
-        scopedSlots: { customRender: 'dataNo' },
-      },
-      {
-        title: '关键词',
-        dataIndex: 'keywords',
-        key: 'keywords',
-        fixed: 'left',
-        scopedSlots: { customRender: 'keywords' },
-        width: 350,
-      },
-    ];
-    let obj = that.dataSource[0].rankInfo;
-    let dateInfo = Object.keys(obj);
-    dateInfo.sort().reverse();
-    for (let i in dateInfo) {
-      that.columns.push({
-        title: dateInfo[i],
-        dataIndex: dateInfo[i],
-        key: dateInfo[i],
-        scopedSlots: { customRender: 'tag' },
-        align: 'center',
-      });
-    }
-    that.columns.push({
-      title: '操作',
-      dataIndex: 'action',
-      key: 'action',
-      align: 'center',
-      scopedSlots: { customRender: 'action' },
-      fixed: 'right',
-      width: 50,
-    });
-  }
-  onMounted(() => {
-    getSiteInfo();
-  });
-</script>
-
-<style scoped>
-  :deep(.ant-picker),
-  :deep(.ant-input-number) {
-    width: 100%;
-  }
-  .r2 {
-    background: #fff;
-    padding: 30px;
-    margin: 10px;
-
-    .ant-col {
-      text-align: center;
-      color: #000;
-
-      img {
-        width: 13px;
-        margin: -3px 5px 0 0;
-      }
-
-      .t1 {
-        font-size: 14px;
-      }
-
-      .t2 {
-        font-size: 27px;
-        margin-bottom: 0;
-        font-weight: 500;
-      }
-    }
-  }
-  .r3 {
-    padding-left: 10px;
-    padding-right: 10px;
-    .wrap {
-      padding: 20px;
-      background: #fff;
-      margin-bottom: 10px;
-
-      .t1 {
-        color: #000;
-        font-size: 14px;
-        font-weight: 500;
-      }
-
-      .content {
-        display: block;
-        overflow: hidden;
-        line-height: 1;
-        border-bottom: 1px solid #ddd;
-        padding: 20px 0;
-
-        &:last-child {
-          border-bottom: none;
-          padding-bottom: 0;
-        }
-
-        .d1 {
-          float: left;
-          width: 50%;
-          line-height: 25px;
-          color: #000;
-
-          img {
-            width: 15px;
-            margin: -4px 5px 0 0;
-          }
-        }
-
-        .d2 {
-          float: right;
-          width: 50%;
-          text-align: right;
-
-          &.d3 {
-            span {
-              color: #000;
-            }
-          }
-
-          a {
-            font-size: 25px;
-            font-weight: 500;
-          }
-        }
-      }
-    }
-  }
-</style>

+ 13 - 0
src/views/adweb/seo/SeoPdfExport.api.ts

@@ -0,0 +1,13 @@
+import {defHttp} from '/@/utils/http/axios';
+
+enum Api {
+  edit='/seo/seoMonthPdf/editSeoMonthPlan',
+}
+
+/**
+ * 保存或者更新
+ * @param params
+ */
+export const saveOrUpdate = (params) => {
+  return defHttp.put({url: Api.edit, params});
+}

+ 34 - 0
src/views/adweb/seo/SeoPdfExport.data.ts

@@ -0,0 +1,34 @@
+import { FormSchema } from "/@/components/Table";
+
+//表单数据
+export const formSchema: FormSchema[] = [
+  {
+    label: "当月优化话术",
+    field: "keywordType",
+    component: "InputTextArea",
+    dynamicRules: ({ model, schema }) => {
+      return [
+        { required: true, message: "请输入当月优化话术!" },
+        { max: 1000, message: "长度不能超过1000个字!"},
+      ];
+    }
+  },
+  {
+    label: "下月优化话术",
+    field: "keywords",
+    component: "InputTextArea",
+    dynamicRules: ({ model, schema }) => {
+      return [
+        { required: true, message: "请输入下月优化话术!" },
+        { max: 1000, message: "长度不能超过1000个字!"}
+      ];
+    },
+  },
+  // TODO 主键隐藏字段,目前写死为ID
+  {
+    label: "",
+    field: "id",
+    component: "Input",
+    show: false
+  }
+];

+ 1093 - 0
src/views/adweb/seo/SeoPdfExport.vue

@@ -0,0 +1,1093 @@
+<template>
+  <div class="content">
+    <a-card :bordered="false" :body-style="{padding:0}">
+      <div class="step1" v-if="flag">
+        <a-divider>SEO月报生成及下载</a-divider>
+        <a-form
+          ref="formRef"
+          :model="formState"
+          :rules="rules"
+          :label-col="labelCol"
+          :wrapper-col="wrapperCol"
+          style="width: 80%"
+        >
+          <a-button type="primary" @click="handleEdit" preIcon="ant-design:edit-outlined"
+                    class="btn3">修改话术
+          </a-button>
+          <SeoPdfExportModal @register="registerModal" @success="handleSuccess"></SeoPdfExportModal>
+          <a-form-item label="站点名称" name="siteName">
+            <a-select
+              label-in-value
+              v-model:value="formState.siteName"
+              placeholder="请选择站点"
+              showSearch
+              style="width: 100%"
+              :options="siteOptions"
+              :filter-option="filterOption"
+              @change="handleChange"
+              :field-names="{ label: 'name', value: 'code' }"
+            ></a-select>
+          </a-form-item>
+          <a-form-item label="客户名称" name="customerName">
+            <a-input placeholder="请输入客户名称" v-model:value="formState.customerName"
+                     allowClear></a-input>
+          </a-form-item>
+          <a-form-item label="查询时间" name="range">
+            <a-date-picker v-model:value="formState.range"
+                           :disabled-date="disabledDate"
+                           placeholder="请选择月份"
+                           style="width: 100%;"
+                           format="YYYY-MM"
+                           picker="month" />
+          </a-form-item>
+          <a-form-item style="text-align: center" :wrapper-col="{ span: 20, offset: 4 }">
+            <a-button @click="onSubmit" type="primary" preIcon="ant-design:search-outlined">查询
+            </a-button>
+            <a-button @click="resetForm" type="default" preIcon="ant-design:reload-outlined"
+                      style="margin-left: 8px">
+              重置
+            </a-button>
+          </a-form-item>
+        </a-form>
+      </div>
+      <div class="step2" v-if="!flag">
+        <a-spin :spinning="infoLoading">
+          <section class="top">
+            <h1>{{ formState.customerName }} - SEO月度报告
+              <a-button type="default" @click="handleEdit" preIcon="ant-design:edit-outlined"
+                        class="btn6">修改话术
+              </a-button>
+              <a-button type="primary" preIcon="ant-design:file-pdf" @click="exportPDF"
+                        class="btn1">导出pdf
+              </a-button>
+              <a-button type="default" preIcon="ant-design:reload" @click="goBack" class="btn2">
+                返回
+              </a-button>
+            </h1>
+            <p style='margin-top: 15px'>
+              生成周期:{{ moment(formState.range.format("YYYY-MM")).startOf("month").format("YYYY-MM-DD")
+              }}至{{ moment(formState.range.format("YYYY-MM")).endOf("month").format("YYYY-MM-DD")
+              }}</p>
+          </section>
+          <section class="s1">
+            <p class="p1" style="font-size: 15px;margin-top: 15px">
+              尊敬的【{{ formState.siteName.label
+              }}】:</p>
+            <p class="p1" style="text-indent: 28px">
+              我非常高兴向您呈上{{ moment(formState.range).format("YYYY-MM")
+              }}月的SEO月报,为您提供网站在SEO中的详尽数据和分析。作为您的SEO团队,一直努力追求卓越的结果,以确保您的在线业务能够获得更大的曝光度和持续增长.</p>
+            <p class="p1" style="text-indent: 28px">
+              在过去的一个月里,我们积极地致力于提升您的网站的可见性和排名,并进行了一系列优化策略的实施。具体细节请参考以下报告细节。</p>
+            <h2 class="title mb">当月优化总结<span class="red">*</span></h2>
+            <p class="tips" style="margin: -10px 0 10px;">
+              在过去的1个月里,我们致力于为您的网站进行全面的SEO优化工作。通过对关键词排名、网站结构、内容优化以及用户体验等方面的深入分析和优化,以下是我们的SEO优化总结:</p>
+            <div class="num-suffix">
+              <a-textarea :style="detailInfo.thisMonth.length > 1000 ? 'border-color:red':''"
+                          auto-size placeholder="请输入"
+                          v-model:value="detailInfo.thisMonth"></a-textarea>
+              <span :style="detailInfo.thisMonth.length > 1000 ? 'color:red':''"
+                    class="suffix-self">
+                  {{ detailInfo.thisMonth.length }}/1000
+              </span>
+            </div>
+            <h2 class="title mb">下月优化计划<span class="red">*</span></h2>
+            <p class="tips" style="margin: -10px 0 10px;">
+              感谢您对我们的SEO优化工作的信任。在下个月,我们计划继续改进和优化您的网站,以进一步提升其在搜索引擎中的表现。以下是我们的下月优化计划:</p>
+            <div class="num-suffix">
+              <a-textarea :style="detailInfo.nextMonth.length > 1000 ? 'border-color:red':''"
+                          auto-size placeholder="请输入"
+                          v-model:value="detailInfo.nextMonth"></a-textarea>
+              <span :style="detailInfo.nextMonth.length > 1000 ? 'color:red':''"
+                    class="suffix-self">
+                  {{ detailInfo.nextMonth.length }}/1000
+              </span>
+            </div>
+            <p class="tips" style="margin: 10px 0 10px;">
+              我们将按照以上优化计划,不断努力提升您的网站在搜索引擎中的表现。如果您有任何疑问或需要进一步讨论,请随时与我们联系。感谢您的合作,我们期待着实现更大的SEO成功!</p>
+          </section>
+          <section class="s2">
+            <h2 class="title mb">网站流量</h2>
+            <p class="tips" style="margin: -5px 0 5px;">
+              在本月的SEO月报中,我们会向您展示关于网站流量数据及其他相关的数据,如页面浏览量、跳出率、平均访问时长等,以帮助您更全面地了解网站流量情况和用户行为。这些数据将以图表、表格或其他可视化方式呈现,以便您更直观地理解和分析。</p>
+            <p class="tips">以下是一些关键的流量指标和相应的数据展示:</p>
+            <a-row class="r5-1">
+              <a-col :span="24">
+                <div class="fr" v-if="coreDataChart.x.length > 0">
+                  <span><i style="background: #544BEB;"></i>访客数(UV)</span>
+                  <span><i style="background: #F0B358;"></i>浏览量(PV)</span>
+                  <span><i style="background: #58CCA8;"></i>询盘数</span>
+                </div>
+                <area-chart v-if="coreDataChart.x.length > 0"
+                            :dataSource="coreDataChart"></area-chart>
+                <a-empty v-else style="float: right;width: 100%;margin-top: 110px;"></a-empty>
+              </a-col>
+              <a-col :span="24">
+                <div class="item">
+                  <p><img src="@/assets/pdfExport/uvicon.svg" />访客数(UV)</p>
+                  <p>{{ statistics.averageVisit }}</p>
+                </div>
+                <div class="item">
+                  <p><img src="@/assets/pdfExport/pvicon.svg" />浏览量(PV)</p>
+                  <p>{{ 0 }}</p>
+                </div>
+                <div class="item">
+                  <p><img src="@/assets/pdfExport/unReadEnquiryNum.svg" />日均访问量</p>
+                  <p>{{ statistics.averageVisit }}</p>
+                </div>
+                <div class="item">
+                  <p><img src="@/assets/pdfExport/keywordsrank3.svg" />平均访问时长</p>
+                  <p>{{ statistics.averageVisitDuration }}</p>
+                </div>
+                <div class="item">
+                  <p><img src="@/assets/pdfExport/conversionRate.svg" />平均访问页面数</p>
+                  <p>{{ statistics.averageVisitPage }}</p>
+                </div>
+              </a-col>
+            </a-row>
+            <h2 class="title mb">最多访问TOP10</h2>
+            <a-row>
+              <a-col :span="24">
+                <a-table
+                  :columns="mostAccessColumns"
+                  :data-source="mostAccessDatasource"
+                  size="middle"
+                  :pagination="false">
+                  <template #bodyCell="{ column, text }">
+                    <template v-if="column.key ==='pagePathSlot' ">
+                      <a-popover>
+                        <template slot="content">
+                          {{ text }}
+                        </template>
+                        <a :href="text" target="_blank">
+                          <div
+                            style="width: 700px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis">
+                            {{ text }}
+                          </div>
+                        </a>
+                      </a-popover>
+                    </template>
+                    <template v-if="column.key ==='centerSlot' ">
+                      <span style="margin-left: 20px;">{{ text }}</span>
+                    </template>
+                    <template v-if="column.key ==='avgTimeOnPageSlot' ">
+                      <span style="margin-left: 30px;">{{ text }} s</span>
+                    </template>
+                  </template>
+                </a-table>
+              </a-col>
+            </a-row>
+          </section>
+          <section class="s3">
+            <h2 class="title mb">网站排名</h2>
+            <p class="tips" style="margin: -5px 0 5px;">
+              在本月的SEO月报中,我们向您展示关于您网站排名的部分数据。因关键词排名数据量较大且实时变化,这边仅展示前50个关键词排名细节,您可登录后台查看全部数据。以下是一些的排名指标和相应的数据展示:</p>
+            <a-row
+              v-if="appointKeywordNum == null && longTailKeywordNum == null">
+              <a-col>
+                <a-empty style="padding-top: 50px" />
+              </a-col>
+            </a-row>
+            <a-row type="flex">
+              <a-col :span="3" v-if="appointKeywordNum">
+                <div class="item">
+                  <img src="@/assets/pdfExport/zhidingci.svg" />
+                  <p>指定词</p>
+                  <p>{{ appointKeywordNum }}</p>
+                </div>
+              </a-col>
+              <a-col :span="longTailKeywordNum ? 9 : 21"
+                     v-if="appointKeywordNum">
+                <div class="wrap">
+                  <p class="t1">指定词排名</p>
+                  <div class="content">
+                    <div class="d1"><img src="@/assets/pdfExport/NO1.svg" />1-10位</div>
+                    <div class="d2">{{ rankInfo.appointKeyword.firstNum }}个
+                    </div>
+                  </div>
+                  <div class="content">
+                    <div class="d1"><img src="@/assets/pdfExport/NO2.svg" />11-30位</div>
+                    <div class="d2">{{ rankInfo.appointKeyword.secondNum }}个
+                    </div>
+                  </div>
+                  <div class="content">
+                    <div class="d1"><img src="@/assets/pdfExport/NO3.svg" />31-100位</div>
+                    <div class="d2">{{ rankInfo.appointKeyword.thirdType }}个
+                    </div>
+                  </div>
+                </div>
+              </a-col>
+              <a-col :span="3" v-if="longTailKeywordNum">
+                <div class="item">
+                  <img src="@/assets/pdfExport/changweici.svg" />
+                  <p>关键词</p>
+                  <p>{{ longTailKeywordNum }}</p>
+                </div>
+              </a-col>
+              <a-col :span="appointKeywordNum ? 9 : 21" v-if="rankInfo.longTailKeyword">
+                <div class="wrap">
+                  <p class="t1">关键词排名</p>
+                  <div class="content">
+                    <div class="d1"><img src="../../../assets/seo/NO1.svg" />1-10位</div>
+                    <div class="d2">{{ rankInfo.longTailKeyword.firstNum }}个
+                    </div>
+                  </div>
+                  <div class="content">
+                    <div class="d1"><img src="@/assets/pdfExport/NO2.svg" />11-30位</div>
+                    <div class="d2">{{ rankInfo.longTailKeyword.secondNum }}个
+                    </div>
+                  </div>
+                  <div class="content">
+                    <div class="d1"><img src="@/assets/pdfExport/NO3.svg" />31-100位</div>
+                    <div class="d2">{{ rankInfo.longTailKeyword.thirdType }}个
+                    </div>
+                  </div>
+                </div>
+              </a-col>
+              <a-col :span="24" v-if="appointKeywordsList.length > 0">
+                <h2 class="title mb">指定词排名列表</h2>
+                <a-table
+                  ref="table"
+                  size="middle"
+                  :scroll="{x:true}"
+                  :columns="appointKeywordPageListColumns"
+                  :pagination="ipagination"
+                  :dataSource="appointKeywordsList"
+                >
+                  <template #bodyCell="{ column, record, index, text }">
+                    <template v-if="column.key === 'rowIndex'">
+                      {{ index + 1 }}
+                    </template>
+
+                    <template class="tag" v-if="column.key === 'lastRank'">
+                      {{ record.lastRank }}
+                    </template>
+
+                    <template v-if="column.key === 'positionUrl'">
+                      <a :href="text" target="_blank">{{ text }}</a>
+                    </template>
+                  </template>
+                </a-table>
+              </a-col>
+              <a-col :span="24" v-if="longTailKeywordsList.length > 0">
+                <h2 class="title mb">关键词排名列表</h2>
+                <a-table
+                  ref="table"
+                  size="middle"
+                  :scroll="{x:true}"
+                  :columns="longTailPageListColumns"
+                  :pagination="ipagination"
+                  :dataSource="longTailKeywordsList"
+                >
+                  <template #bodyCell="{ column, record, index, text }">
+                    <template v-if="column.key ==='rowIndex'">
+                      {{ index + 1 }}
+                    </template>
+                    <template class="tag" v-if="column.key ==='lastRank'">
+                      {{ record.lastRank }}
+                    </template>
+                    <template v-if="column.key ==='positionUrl'">
+                      <a :href="text" target="_blank">{{ text }}</a>
+                    </template>
+                  </template>
+                </a-table>
+              </a-col>
+
+            </a-row>
+          </section>
+          <section class="s4">
+            <h2 class="title mb">网站外链</h2>
+            <a-row>
+              <a-col :span="24">
+                <div class="item">
+                  <p>外链总数</p>
+                  <a-input placeholder="请输入" v-model="detailInfo.outlink1" />
+                </div>
+                <div class="item">
+                  <p>外链域</p>
+                  <a-input placeholder="请输入" v-model="detailInfo.outlink2" />
+                </div>
+                <div class="item">
+                  <p>外链发布数</p>
+                  <a-input placeholder="请输入" v-model="detailInfo.outlink3" />
+                </div>
+              </a-col>
+            </a-row>
+
+            <a-row :gutter="12">
+              <a-col :span="12">
+                <p class="sub-title">外链总数趋势</p>
+                <a-col :span="24" style="margin: 10px 0px">
+                  <j-upload bizPath="seopdf/image" :multiple="false" :returnUrl="false" v-model:file-list="detailInfo.outLinkImg"/>
+                </a-col>
+                <div class="img-wrap">
+                  <template v-if="detailInfo.outLinkImg.length > 0">
+                    <img class="img" :src="detailInfo.outLinkImg[0].url "/>
+                  </template>
+                  <a-empty v-else>
+                    <span slot="description">请上传图片</span>
+                  </a-empty>
+                </div>
+                <div v-if="detailInfo.outLinkImg.length > 0">
+                  <a-textarea
+                    :style="detailInfo.outLinkImgDetail1.length > 1000 ? 'border-color:red':''"
+                    auto-size placeholder="请输入"
+                    v-model="detailInfo.outLinkImgDetail1"></a-textarea>
+                  <span :style="detailInfo.outLinkImgDetail1.length > 1000 ? 'color:red':''"
+                        class="suffix-self">
+                    {{ detailInfo.outLinkImgDetail1.length }}/1000
+                  </span>
+                </div>
+              </a-col>
+              <a-col :span="12">
+                <p class="sub-title">外链变化趋势</p>
+                <a-col :span="24" style="margin: 10px 0px">
+                  <j-upload bizPath="seopdf/image" :returnUrl="true" :multiple="false"   v-model:file-list="detailInfo.outLinkImg2"/>
+                </a-col>
+                <div class="img-wrap">
+                  <template v-if="detailInfo.outLinkImg2.length > 0">
+                    <img class="img" :src="detailInfo.outLinkImg2[0].url" />
+                  </template>
+                  <a-empty v-else>
+                    <span slot="description">请上传图片</span>
+                  </a-empty>
+                </div>
+                <div v-if="detailInfo.outLinkImg2.length > 0">
+                  <a-textarea
+                    :style="detailInfo.outLinkImgDetail2.length > 1000 ? 'border-color:red':''"
+                    auto-size placeholder="请输入"
+                    v-model="detailInfo.outLinkImgDetail2"></a-textarea>
+                  <span :style="detailInfo.outLinkImgDetail2.length > 1000 ? 'color:red':''"
+                        class="suffix-self">
+                    {{ detailInfo.outLinkImgDetail2.length }}/1000
+                  </span>
+                </div>
+              </a-col>
+            </a-row>
+          </section>
+
+          <section class="s5">
+            <h2 class="title mb">结语</h2>
+            <p style="text-indent: 28px">
+              我们深知SEO是一个持续的过程,需要不断地监测、调整和改进。通过本月报告,我们与您分享我们的工作成果,并提供专业的建议和策略,以进一步提升您的网站在搜索引擎中的表现。</p>
+            <p style="text-indent: 28px">
+              我们期待帮助您更好地理解和利用SEO对您的业务带来的巨大潜力。如果您对报告中的任何内容有疑问或需要进一步的解释,我们将随时为您提供支持和指导。</p>
+            <p style="text-indent: 28px">
+              感谢您对我们的信任和合作。我们将继续竭尽全力,为您的网站取得更大的成功。</p>
+            <p style="text-indent: 28px">祝您生意兴隆!</p>
+            <p class="right">诚挚的问候</p>
+            <p class="right">SEO团队</p>
+            <p class="tips">
+              注:本次报告的SEO数据仅反映一段时间内的网站表现,但要注意数据的可变性和动态性,建议结合长期趋势和综合指标来评估网站SEO的整体表现。</p>
+          </section>
+        </a-spin>
+      </div>
+    </a-card>
+  </div>
+</template>
+<script setup lang="ts">
+
+import { onMounted, reactive, ref } from "vue";
+import { getAction, postAction } from "/@/api/manage/manage";
+import moment from "moment";
+import SeoPdfExportModal from "@/views/adweb/seo/components/SeoPdfExportModal.vue";
+import { useModal } from "@/components/Modal";
+//注册model
+const [registerModal, { openModal }] = useModal();
+import { useMessage } from "@/hooks/web/useMessage";
+import AreaChart from "@/views/adweb/data/chart/areaChart.vue";
+import { JUpload } from "@/components/Form/src/jeecg/components/JUpload";
+import { PageEnum } from "@/enums/pageEnum";
+import { router } from "@/router";
+
+const fileList = ref([]);
+const appointKeywordPageListColumns = ref([
+  {
+    title: "序号",
+    dataIndex: "rowIndex",
+    key: "rowIndex",
+    width: 100,
+    align: "center",
+    fixed: "left",
+
+  },
+  {
+    title: "关键词",
+    dataIndex: "keywords",
+    key: "keywords",
+    fixed: "left",
+    width: 300
+  },
+  {
+    title: "网址",
+    dataIndex: "positionUrl",
+    key: "positionUrl",
+    fixed: "left",
+    width: 600
+  },
+  {
+    title: "排名",
+    dataIndex: "lastRank",
+    key: "lastRank",
+    width: 100,
+  }
+]);
+const longTailPageListColumns = ref([
+  {
+    title: "序号",
+    dataIndex: "rowIndex",
+    key: "rowIndex",
+    width: 100,
+    align: "center",
+    fixed: "left",
+  },
+  {
+    title: "关键词",
+    dataIndex: "keywords",
+    key: "keywords",
+    fixed: "left",
+    width: 300
+  },
+  {
+    title: "网址",
+    dataIndex: "positionUrl",
+    key: "positionUrl",
+    fixed: "left",
+    width: 600
+  },
+  {
+    title: "排名",
+    dataIndex: "lastRank",
+    key: "lastRank",
+    width: 100,
+  }
+]);
+
+const { createMessage } = useMessage();
+
+/**
+ * 编辑事件
+ */
+function handleEdit(record: Recordable) {
+  openModal(true, {
+    record,
+    isUpdate: true,
+    showFooter: true
+  });
+}
+
+/**
+ * 成功回调
+ */
+function handleSuccess() {
+}
+
+const formState = reactive({
+  siteName: ref(undefined),
+  customerName: ref(undefined),
+  range: ref(undefined)
+});
+const formRef = ref();
+const rules = ref({
+  siteName: [
+    { required: true, message: "请选择站点", trigger: "change" }
+  ],
+  customerName: [
+    { required: true, message: "请输入客户名称", trigger: "blur" }
+  ],
+  range: [
+    { required: true, message: "请选择查询时间范围", trigger: "change" }
+  ]
+});
+const labelCol = ref({ span: 6 });
+const wrapperCol = ref({ span: 18 });
+const flag = ref(true);
+const siteOptions = ref([]);
+
+const handleChange = (value: string) => {
+  formState.customerName = value.label;
+};
+
+const filterOption = (input: string, option: any) => {
+  return option.name.toLowerCase().indexOf(input.toLowerCase()) >= 0;
+};
+
+const getSiteOption = () => {
+  getAction("/adweb/adwebSite/getSiteListByUid", {}).then(function(res) {
+    if (res.code == 200) {
+      siteOptions.value = res.result;
+    }
+  });
+};
+const disabledDate = (current) => {
+  return current > moment().subtract(1, "months");
+};
+const onSubmit = () => {
+  formRef.value.validate().then(() => {
+    flag.value = false;
+    getInfo();
+    getMostAccessList();
+    getComprehenInfo();
+    getRankInfo();
+    getSeoMonthPlanContent();
+  }).catch(error => {
+    return false;
+  });
+};
+const infoLoading = ref(false);
+const coreDataChart = ref({
+  x: [],
+  pv: [],
+  uv: [],
+  enquiry: []
+});
+const statistics = ref({
+  uv: 0,
+  pv: 0,
+  averageVisit: 0,
+  averageVisitDuration: 0,
+  averageVisitPage: 0,
+  bounceRate: "0%",
+  conversionRate: "0%"
+});
+const mostAccessDatasource = ref([]);
+const appointKeywordsList = ref([]);
+const longTailKeywordsList = ref([]);
+const ipagination = ref({
+  pageSize: 50
+});
+const getInfo = () => {
+  let queryParam = {
+    siteCode: formState.siteName.value,
+    start: moment(formState.range.format("YYYY-MM")).startOf("month").format("YYYY-MM-DD"),
+    end: moment(formState.range.format("YYYY-MM")).endOf("month").format("YYYY-MM-DD")
+  };
+  infoLoading.value = true;
+  try {
+    getAction("/dmp-data/site-overview/stats", queryParam).then(function(res) {
+      if (!res.result) {
+        coreDataChart.value = {
+          x: [],
+          uv: [],
+          pv: [],
+          enquiry: []
+        };
+        statistics.value = {
+          uv: 0,
+          pv: 0,
+          averageVisit: 0,
+          averageVisitDuration: 0,
+          averageVisitPage: 0,
+          bounceRate: "0%",
+          conversionRate: "0%"
+        };
+        infoLoading.value = false;
+        return;
+      }
+
+      const r = res.result.dailyStats;
+      const x = [], pv = [], uv = [], enquiry = [];
+      if (r != null && r.length > 0) {
+        for (let item of r) {
+          x.push(item.date);
+          pv.push(item.pageViews);
+          uv.push(item.totalUsers);
+          enquiry.push(item.enquires);
+        }
+      }
+      coreDataChart.value.x = x;
+      coreDataChart.value.pv = pv;
+      coreDataChart.value.uv = uv;
+      coreDataChart.value.enquiry = enquiry;
+
+      statistics.value.uv = res.result.totalUsers;
+      statistics.value.pv = res.result.pageViews;
+      statistics.value.averageVisit = res.result.dailyTotalUsers;
+      statistics.value.averageVisitDuration = res.result.avgTimeOnPage;
+      statistics.value.averageVisitPage = res.result.pageViewsPerSession;
+      statistics.value.bounceRate = res.result.bounceRate;
+      statistics.value.conversionRate = res.result.enquiryConversionRate;
+      infoLoading.value = false;
+    });
+
+  } catch (error) {
+    console.error(error);
+  }
+};
+
+// 最多访问TOP10列表
+const mostAccessColumns = ref([
+  {
+    title: "来源",
+    dataIndex: "pagePath",
+    scopedSlots: {
+      customRender: "pagePathSlot"
+    }
+  },
+  {
+    title: "浏览量(PV)",
+    dataIndex: "pageViews",
+    defaultSortOrder: "descend",
+    sorter: (a, b) => a.pageViews - b.pageViews,
+    width: 160,
+    scopedSlots: {
+      customRender: "centerSlot"
+    }
+  },
+  {
+    title: "浏览量占比",
+    dataIndex: "pvProportion",
+    width: 160,
+    scopedSlots: {
+      customRender: "centerSlot"
+    }
+  }
+]);
+const getMostAccessList = async () => {
+  try {
+    let queryParam = {
+      siteCode: formState.siteName.value,
+      limit: 10,
+      start: moment(formState.range.format("YYYY-MM")).startOf("month").format("YYYY-MM-DD"),
+      end: moment(formState.range.format("YYYY-MM")).endOf("month").format("YYYY-MM-DD")
+    };
+    const res = await getAction("/dmp-data/page-path/stats", queryParam);
+    if (res.code == 200) {
+      mostAccessDatasource.value = res.result;
+    } else {
+      mostAccessDatasource.value = [];
+    }
+  } catch (error) {
+    console.error(error);
+  }
+};
+const appointKeywordNum = ref(null);
+const longTailKeywordNum = ref(null);
+const getComprehenInfo = async () => {
+  let d = {
+    siteCode: formState.siteName.value
+  };
+  await getAction("/seo/seoKeywordsRank/comprehensiveInfo", d).then(res => {
+    if (res.code == 200) {
+      appointKeywordNum.value = res.result.appointKeywordNum;
+      longTailKeywordNum.value = res.result.longTailKeywordNum;
+    }
+  });
+};
+const detailInfo = ref({
+  thisMonth: "",
+  nextMonth: "",
+  outlink1: "",
+  outlink2: "",
+  outlink3: "",
+  outLinkImg: [],
+  outLinkImg2: [],
+  outLinkImgDetail1: "",
+  outLinkImgDetail2: ""
+});
+const rankInfo = ref({
+  appointKeyword: ref({}),
+  longTailKeyword: ref({})
+});
+//获取三个list的数据
+const getRankInfo = () => {
+  let d = {
+    siteCode: formState.siteName.value
+  };
+  getAction("/seo/seoKeywordsRank/getRankInfo", d).then(res => {
+    if (res.code == 200) {
+      rankInfo.value.appointKeyword = res.result.appointKeyword;
+      rankInfo.value.longTailKeyword = res.result.longTailKeyword;
+    }
+  });
+  let d2 = {
+    siteCode: formState.siteName.value,
+    exportMonth: formState.range.format("YYYY-MM")
+  };
+  getAction("seo/seoMonthPdf/getSeoKeywordsRank", d2).then(res => {
+    if (res.code == 200) {
+      appointKeywordsList.value = res.result.appointKeywordsInfoList;
+      longTailKeywordsList.value = res.result.longTailKeywordsInfoList;
+    }
+  });
+};
+const getSeoMonthPlanContent = () => {
+  getAction("/seo/seoMonthPdf/getSeoMonthPlanContent", {}).then(function(res) {
+    detailInfo.value.thisMonth = res.result.currentMonthPlan;
+    detailInfo.value.nextMonth = res.result.nextMonthPlan;
+  });
+};
+
+function exportPDF() {
+  // 假设你有一个生成 PDF 的 URL
+  const pdfUrl = "/pdf";
+
+  // 使用 window.open 打开新窗口
+  window.open(pdfUrl, '_blank');
+}
+
+function goBack() {
+  flag.value = true;
+  coreDataChart.value.x = [];
+  coreDataChart.value.pv = [];
+  coreDataChart.value.uv = [];
+  detailInfo.value.thisMonth = '';
+  detailInfo.value.nextMonth = '';
+  detailInfo.value.outlink1 = '';
+  detailInfo.value.outlink2 = '';
+  detailInfo.value.outlink3 = '';
+  detailInfo.value.outLinkImg = [];
+  detailInfo.value.outLinkImg2 = [];
+  detailInfo.value.outLinkImgDetail1 = '';
+  detailInfo.value.outLinkImgDetail2 = '';
+  formState.siteName = undefined;
+  formState.customerName = '';
+  appointKeywordsList.value = [];
+  longTailKeywordsList.value = [];
+  formState.range = moment().subtract(1, "months");
+}
+
+const resetForm = () => {
+  formRef.value.resetFields();
+};
+onMounted(() => {
+  getSiteOption();
+});
+</script>
+<style scoped lang="less">
+.content {
+  /deep/ .ant-table-pagination.ant-pagination {
+    display: none;
+  }
+
+  .tip {
+    color: #666;
+  }
+
+  .ant-card {
+    /deep/ .ant-card-body {
+
+      .step1 {
+        min-height: 90vh;
+        display: flex;
+        justify-content: center;
+        align-items: center;
+        width: 720px;
+        margin: 0 auto;
+        flex-direction: column;
+
+        .ant-form-item {
+          margin-bottom: 15px;
+        }
+      }
+    }
+  }
+
+  .btn3 {
+    position: fixed;
+    right: 100px;
+    top: 180px;
+    z-index: 999;
+  }
+
+  .step2 {
+    padding: 24px;
+
+  }
+
+  .top {
+    text-align: center;
+
+    h1 {
+      font-size: 27px;
+      font-weight: 500;
+      line-height: 1;
+      margin: 0;
+    }
+
+    p {
+      font-size: 14px;
+      color: #333;
+    }
+
+    .btn1 {
+      position: fixed;
+      right: 150px;
+      top: 180px;
+      z-index: 999;
+    }
+
+    .btn2 {
+      position: fixed;
+      right: 50px;
+      top: 180px;
+      z-index: 999;
+    }
+
+    .btn4 {
+      position: fixed;
+      right: 265px;
+      top: 180px;
+      z-index: 999;
+    }
+
+    .btn6 {
+      position: fixed;
+      right: 265px;
+      top: 180px;
+      z-index: 999;
+    }
+  }
+
+  .title {
+    border-left: 4px solid #544beb;
+    line-height: 1;
+    padding-left: 5px;
+    margin: 40px 0 0;
+
+    &.mb {
+      margin-bottom: 20px;
+    }
+
+    .red {
+      color: red;
+      position: relative;
+      top: 4px;
+      left: 4px;
+    }
+  }
+
+  .s1 {
+    .p1 {
+      color: #333;
+      font-size: 15px;
+    }
+
+    textarea {
+      min-height: 170px;
+    }
+
+    .num-suffix {
+      position: relative;
+
+      .suffix-self {
+        position: absolute;
+        right: 10px;
+        bottom: 10px;
+      }
+    }
+  }
+
+  .s2 {
+    .r5-1 {
+      .item {
+        width: 18%;
+        margin: 40px 1% 0;
+        float: left;
+        padding: 20px;
+        box-shadow: 3px 2px 10px -6px #544beb;
+        border-radius: 10px;
+
+        p {
+          text-align: center;
+          font-size: 15px;
+
+          &:nth-child(2) {
+            font-size: 20px;
+            font-weight: 600;
+          }
+
+          img {
+            width: 20px;
+            margin-top: -5px;
+            margin-right: 10px;
+          }
+        }
+      }
+
+      .fr {
+        float: right;
+        line-height: 2;
+
+        span {
+          margin-right: 30px;
+
+          i {
+            display: inline-block;
+            width: 25px;
+            height: 3px;
+            background: #544BEB;
+            position: relative;
+            top: -4px;
+            margin-right: 20px;
+          }
+
+          &:last-child i {
+            background: #F0B358;
+          }
+        }
+      }
+    }
+  }
+
+  .s3 {
+    .item {
+      padding: 20px;
+      height: 100%;
+      border-radius: 10px;
+      text-align: center;
+
+      img {
+        width: 80px;
+        margin: 20px auto;
+
+      }
+
+      p {
+        text-align: center;
+        font-size: 15px;
+
+      }
+    }
+
+    .wrap {
+      padding: 20px;
+      background: #fff;
+      border-radius: 10px;
+      margin-bottom: 10px;
+
+      .t1 {
+        color: #000;
+        font-size: 14px;
+        font-weight: 500;
+      }
+
+      .content {
+        display: block;
+        overflow: hidden;
+        line-height: 1;
+        border-bottom: 1px solid #ddd;
+        padding: 20px 0;
+
+        &:last-child {
+          border-bottom: none;
+          padding-bottom: 0;
+        }
+
+        .d1 {
+          float: left;
+          width: 50%;
+          line-height: 25px;
+          color: #000;
+
+          img {
+            width: 15px;
+            margin: -4px 5px 0 0;
+          }
+        }
+
+        .d2 {
+          float: right;
+          width: 50%;
+          text-align: right;
+
+          &.d3 {
+            span {
+              color: #000;
+            }
+          }
+
+          a {
+            font-size: 25px;
+            font-weight: 500;
+          }
+        }
+      }
+    }
+  }
+
+  .s4 {
+    .item {
+      width: 32.33%;
+      margin: 0 0.5%;
+      border: 1px solid #e6e6e6;
+      float: left;
+      padding: 10px;
+      border-radius: 10px;
+
+      p {
+        font-weight: 600;
+        font-size: 15px;
+        text-align: center;
+        margin-bottom: 5px;
+      }
+
+      input {
+        border: none;
+        border-bottom: 1px solid #d9d9d9;
+        border-radius: 0;
+        text-align: center;
+
+        &:focus {
+          box-shadow: none;
+        }
+      }
+    }
+
+    .sub-title {
+      font-size: 19px;
+      color: #333;
+      padding: 0 0 0 10px;
+      border-left: 4px solid #544beb;
+      line-height: 1;
+      padding-left: 5px;
+      margin: 20px 0 5px 0;
+    }
+
+    .img-wrap {
+      height: 340px;
+      display: flex;
+      flex-direction: column;
+      justify-content: center;
+      border: 1px solid #d9d9d9;
+      border-radius: 5px;
+
+      .img {
+        width: 100%;
+        height: 100%;
+        object-fit: contain;
+      }
+
+    }
+
+    textarea.ant-input {
+      margin: 10px 0 0;
+      min-height: 80px;
+    }
+
+    .suffix-self {
+      position: absolute;
+      right: 10px;
+      bottom: 10px;
+    }
+
+  }
+
+  .s5 {
+    p {
+      font-size: 15px;
+      color: #333;
+
+      &.right {
+        text-align: right;
+        padding-right: 50px;
+      }
+
+      &.tips {
+        color: #999;
+      }
+    }
+  }
+}
+
+</style>
+

+ 167 - 0
src/views/adweb/seo/components/SeoPdfExportModal.vue

@@ -0,0 +1,167 @@
+<template>
+  <BasicModal v-bind="$attrs" @register="registerModal" destroyOnClose :title="title" :width="800"
+              @ok="handleSubmit">
+    <a-card :bordered="false" :body-style="{padding:0}" style="width:100%;min-height:60vh">
+      <div class="tip">
+        <section class="top">
+          <h1>SEO月报模板优化话术</h1>
+        </section>
+        <a-col>
+          <h2 class="title mb">当月优化话术</h2>
+          <div class="num-suffix">
+            <a-textarea :maxlength="1000" showCount :rows="10" placeholder="请输入"
+                        v-model:value="currentMonthPlanText"
+            ></a-textarea>
+          </div>
+        </a-col>
+        <a-col>
+          <h2 class="title mb">下月优化话术</h2>
+          <div class="num-suffix">
+            <a-textarea :maxlength="1000" showCount :rows="10" placeholder="请输入"
+                        v-model:value="nextMonthPlanText"
+            ></a-textarea>
+          </div>
+        </a-col>
+      </div>
+      <!--    <div style="background-color: white;height:100vh;z-index: -1;"></div>-->
+    </a-card>
+  </BasicModal>
+</template>
+
+<script lang="ts" setup>
+import { ref, computed, unref, onMounted } from "vue";
+import { BasicModal, useModalInner } from "/@/components/Modal";
+import { BasicForm, useForm } from "/@/components/Form/index";
+import { formSchema } from "../SeoPdfExport.data";
+import { saveOrUpdate } from "../SeoPdfExport.api";
+import { getAction } from "@/api/manage/manage";
+// Emits声明
+const emit = defineEmits(["register", "success"]);
+const isUpdate = ref(true);
+const isDetail = ref(false);
+//表单配置
+const [registerForm, { setProps, resetFields, setFieldsValue, validate }] = useForm({
+  //labelWidth: 150,
+  schemas: formSchema,
+  showActionButtonGroup: false,
+  baseColProps: { span: 24 }
+});
+//表单赋值
+const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
+  //重置表单
+  await resetFields();
+  setModalProps({
+    confirmLoading: false,
+    showCancelBtn: !!data?.showFooter,
+    showOkBtn: !!data?.showFooter
+  });
+  isUpdate.value = !!data?.isUpdate;
+  isDetail.value = !!data?.showFooter;
+  if (unref(isUpdate)) {
+    //表单赋值
+    await setFieldsValue({
+      ...data.record
+    });
+  }
+  // 隐藏底部时禁用整个表单
+  setProps({ disabled: !data?.showFooter });
+});
+//设置标题
+const title = computed(() => (!unref(isUpdate) ? "新增" : !unref(isDetail) ? "详情" : "编辑"));
+
+//表单提交事件
+async function handleSubmit(v) {
+  try {
+    let param = {
+      itemText:'seo_current_month_report',
+      itemValue:currentMonthPlanText.value,
+    }
+    setModalProps({ confirmLoading: true });
+    //提交表单
+    await saveOrUpdate(param);
+    let param2 = {
+      itemText:'seo_next_month_report',
+      itemValue:nextMonthPlanText.value,
+    }
+    await saveOrUpdate(param2);
+    //关闭弹窗
+    closeModal();
+    //刷新列表
+    emit("success");
+  } finally {
+    setModalProps({ confirmLoading: false });
+  }
+}
+
+const currentMonthPlanText = ref("");
+const nextMonthPlanText = ref("");
+const getSeoMonthPlanContent = () => {
+  getAction("/seo/seoMonthPdf/getSeoMonthPlanContent", {}).then(function(res) {
+    currentMonthPlanText.value = res.result.currentMonthPlan;
+    nextMonthPlanText.value = res.result.nextMonthPlan;
+  });
+};
+onMounted(() => {
+  getSeoMonthPlanContent();
+});
+</script>
+
+<style lang="less" scoped>
+/** 时间和数字输入框样式 */
+:deep(.ant-input-number) {
+  width: 100%;
+}
+
+:deep(.ant-calendar-picker) {
+  width: 100%;
+}
+</style>
+<style scoped lang="less">
+.title {
+  border-left: 4px solid #018FFB;
+  line-height: 1;
+  padding-left: 5px;
+  margin: 40px 0 0;
+
+  &.mb {
+    margin-bottom: 20px;
+  }
+}
+
+.tips {
+  position: absolute;
+  bottom: 0;
+  right: 5px;
+  line-height: 1;
+  color: #999;
+}
+
+.tip {
+  padding: 24px;
+}
+
+a-textarea {
+  min-height: 170px;
+}
+
+.num-suffix {
+  position: relative;
+
+  .suffix-self {
+    position: absolute;
+    right: 10px;
+    bottom: 10px;
+  }
+}
+
+.top {
+  text-align: center;
+
+  h1 {
+    font-size: 27px;
+    font-weight: 500;
+    line-height: 1;
+    margin: 0;
+  }
+}
+</style>

Some files were not shown because too many files changed in this diff