From 8fb281df7bb93d918c2bf75f29405fa9ce53bad8 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 26 Nov 2021 16:36:23 +0800
Subject: [PATCH] +pdf预览插件

---
 src/page/index/top/userSManual.vue |  239 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 236 insertions(+), 3 deletions(-)

diff --git a/src/page/index/top/userSManual.vue b/src/page/index/top/userSManual.vue
index 35554eb..be0ecc0 100644
--- a/src/page/index/top/userSManual.vue
+++ b/src/page/index/top/userSManual.vue
@@ -1,10 +1,243 @@
 <template>
-  <div>用户手册</div>
+  <div class="userSManual">
+    <!-- {{ form.link }} -->
+    <basic-container id="PDFmain">
+      <!-- <embed :src="form.link" type="application/pdf" width="800" height="800" /> -->
+      <!-- <object
+        :data="form.link"
+        type="application/pdf"
+        width="800"
+        height="800"
+      ></object> -->
+      <iframe
+        id="PDFmainIFRAM"
+        src="/pfd/build/generic/web/viewer.html"
+        width="100%"
+        height="100%"
+      >
+      </iframe>
+    </basic-container>
+    <div class="userSManual_upBut" :style="{ display: userSManual_upBut }">
+      <el-button type="primary" round @click="openUps">上传用户手册</el-button>
+    </div>
+    <el-dialog
+      title="上传用户手册"
+      append-to-body
+      :visible.sync="openUp"
+      width="70%"
+    >
+      <avue-form
+        :option="option"
+        v-model="form"
+        @submit="handleSubmit"
+        :upload-before="uploadBefore"
+        :upload-after="uploadAfter"
+      ></avue-form>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-export default {};
+import { mapGetters } from "vuex";
+import { add, getDetails } from "@/api/resource/attach";
+export default {
+  data() {
+    return {
+      openUp: false,
+      userSManual_upBut: "none",
+      index: 0,
+      link: "",
+      option: {
+        tabs: true,
+        tabsActive: 1,
+        group: [
+          {
+            label: "保安服务企业技术交流群二维码信息",
+            prop: "info",
+            column: [
+              {
+                label: "用户手册",
+                type: "upload",
+                // listType: "picture-img",
+                propsHttp: {
+                  res: "data",
+                  url: "link",
+                },
+                // canvasOption: {
+                //   text: " ",
+                //   ratio: 0.1,
+                // },
+                action: "/api/blade-resource/oss/endpoint/put-file",
+                // action: "/api/blade-resource/oss/endpoint/put-file-attach",
+                // tip: "只能上传jpg/png用户头像,且不超过500kb",
+                span: 24,
+                row: true,
+                prop: "link",
+                labelWidth: 180,
+              },
+              {
+                label: "首次上传时间",
+                span: 24,
+                row: true,
+                prop: "createTime",
+                labelWidth: 180,
+                type: "datetime",
+                disabled: true,
+                format: "yyyy-MM-dd HH:mm:ss",
+                valueFormat: "yyyy-MM-dd HH:mm:ss",
+              },
+              {
+                label: "上次更新时间",
+                span: 24,
+                row: true,
+                prop: "updateTime",
+                labelWidth: 180,
+                type: "datetime",
+                disabled: true,
+                format: "yyyy-MM-dd HH:mm:ss",
+                valueFormat: "yyyy-MM-dd HH:mm:ss",
+              },
+            ],
+          },
+        ],
+      },
+      form: {},
+      intime: "",
+    };
+  },
+  computed: {
+    ...mapGetters(["userInfo"]),
+  },
+  created() {
+    this.handleWitch();
+    if (this.userInfo.role_name == "administrator") {
+      this.userSManual_upBut = "block";
+    } else {
+      this.userSManual_upBut = "none";
+    }
+  },
+  methods: {
+    openUps() {
+      this.openUp = true;
+    },
+    uploadBefore(file, done, loading, column) {
+      this.link = "";
+      this.form = {};
+      done();
+    },
+    uploadAfter(res, done, loading, column) {
+      this.link = res.link;
+      done();
+    },
+    handleSubmit(form, done) {
+      if (!this.link) {
+        this.$message({
+          message: "请上传后提交",
+          type: "warning",
+        });
+        done();
+        return;
+      }
+      if (this.index === 0) {
+        form["type"] = 10;
+        form["link"] = this.link;
+        // console.log(form);
+        // return;
+        add(form).then(
+          (res) => {
+            if (res.data.success) {
+              this.handleWitch();
+              this.$message({
+                type: "success",
+                message: "用户手册上传成功!",
+              });
+            } else {
+              this.$message({
+                type: "error",
+                message: res.data.msg,
+              });
+            }
+            done();
+            this.link = "";
+            this.form = {};
+            this.openUp = false;
+          },
+          (error) => {
+            window.console.log(error);
+            done();
+          }
+        );
+      }
+    },
+    havepdf() {
+      var pdf = document.getElementById("PDFmainIFRAM").contentWindow;
+      if (pdf.setUrl) {
+        return pdf;
+      } else {
+        return false;
+      }
+    },
+    setUrl(url) {
+      this.intime = setInterval(() => {
+        let havePdf = this.havepdf();
+        if (havePdf) {
+          //   console.log("已加载完");
+          havePdf.setUrl(url);
+          //   console.log(this.intime, 1);
+          clearInterval(this.intime);
+          //   console.log(this.intime, 2);
+          this.intime = "";
+          //   console.log(this.intime, 3);
+        } else {
+          //   console.log("没加载玩");
+        }
+        // var pdf = document.getElementById("PDFmainIFRAM").contentWindow;
+        // pdf.setUrl(url);
+      }, 500);
+    },
+    handleWitch() {
+      if (this.index === 0) {
+        getDetails(10).then((res) => {
+          const att = res.data.data;
+          if (this.intime) {
+            clearInterval(this.intime);
+            this.setUrl(att.link);
+          } else {
+            this.setUrl(att.link);
+          }
+          this.form = {
+            id: att.id,
+            link: att.link,
+            createTime: att.createTime,
+            updateTime: att.updateTime,
+          };
+        });
+      }
+    },
+  },
+};
 </script>
 
-<style>
+<style lang="scss" scoped>
+.userSManual {
+  width: 100%;
+  height: 97%;
+  //   border: 1px solid red;
+  box-sizing: border-box;
+  position: relative;
+  .userSManual_upBut {
+    position: absolute;
+    right: 56px;
+    top: 58px;
+  }
+  #PDFmain {
+    width: 100%;
+    height: 100%;
+    // border: 1px solid red;
+  }
+  .el-card.basic-container__card.is-always-shadow {
+    width: 100%;
+    height: 100%;
+  }
+}
 </style>
\ No newline at end of file

--
Gitblit v1.9.3