From e3ab7d6f6c122f56d099cac700448d6f85987dd1 Mon Sep 17 00:00:00 2001
From: liuyg <376836862@qq.com>
Date: Fri, 10 Sep 2021 10:56:35 +0800
Subject: [PATCH] 整体更改

---
 src/components/attach/attach.vue |  325 +++++++++++++++++++++++++----------------------------
 1 files changed, 155 insertions(+), 170 deletions(-)

diff --git a/src/components/attach/attach.vue b/src/components/attach/attach.vue
index 6d544bb..360051b 100644
--- a/src/components/attach/attach.vue
+++ b/src/components/attach/attach.vue
@@ -18,47 +18,38 @@
       @refresh-change="refreshChange"
       @on-load="onLoad"
     >
-      <template slot="menuLeft">
+      <template slot="type" slot-scope="{ row }">
+        <el-tag :class="row.type != 2 ? 'red' : ''">{{
+          row.type != 2 ? "未上传" : "已上传"
+        }}</el-tag>
+      </template>
+      <template slot="downtemplate" slot-scope="{ row }">
+        <el-tag
+          @click="downTemplates(row.template)"
+          class="hand"
+          :class="row.template == '' ? 'red' : ''"
+          >{{ row.template == "" ? "无模板" : "下载模板" }}</el-tag
+        >
+      </template>
+      <template slot-scope="{ type, size, row }" slot="menu">
         <el-button
-          type="primary"
-          size="small"
-          plain
           icon="el-icon-upload2"
-          v-if="opens"
-          @click="handleUpload"
-          >上 传
-        </el-button>
+          :size="size"
+          :type="type"
+          @click="upData(row)"
+          >上传</el-button
+        >
         <el-button
-          type="danger"
-          size="small"
-          icon="el-icon-delete"
-          plain
-          v-if="opens"
-          @click="handleDelete"
-          >删 除
-        </el-button>
-      </template>
-      <template slot-scope="scope" slot="menu">
-        <el-button
-          type="text"
           icon="el-icon-download"
-          size="small"
-          @click="handleDownload(scope.row)"
-          >下载
-        </el-button>
-        <el-button
-          type="text"
-          icon="el-icon-picture-outline-round"
-          size="small"
-          v-show="!fileFormat(scope.row)"
-          @click="seeImages(scope.row)"
-          >预览
-        </el-button>
-      </template>
-      <template slot-scope="{ row }" slot="attachSize">
-        <el-tag>{{ `${row.attachSize} KB` }}</el-tag>
+          :size="size"
+          :type="type"
+          :disabled="row.type != 2"
+          @click="dowmData(row)"
+          >下载</el-button
+        >
       </template>
     </avue-crud>
+
     <el-dialog
       title="附件管理"
       append-to-body
@@ -73,24 +64,15 @@
       >
       </avue-form>
     </el-dialog>
-
-    <el-dialog
-      title="预览"
-      append-to-body
-      :visible.sync="imgSee"
-      class="see-img-box"
-    >
-      <div class="imgs" :style="{ background: imgUrl }"></div>
-    </el-dialog>
   </basic-container>
 </template>
 
 <script>
-import { getList, getDetail, remove } from "@/api/resource/attach";
+import { getUseInfor, getTemplate, addUseInfor } from "@/api/resource/attach";
 import { mapGetters } from "vuex";
 
 export default {
-  props: ["type", "opens"],
+  props: ["type", "opens", "enclosure", "ptype"],
   data() {
     var type = this.type;
     var deptid = this.$route.query.deptId;
@@ -108,115 +90,42 @@
       attachBox: false,
       selectionList: [],
       option: {
-        height: "auto",
+        height: 600,
+
         calcHeight: 30,
         tip: false,
         align: "center",
-        searchShow: true,
-        // menu: false,
-        height: 323,
+        searchShow: false,
+        columnBtn: false,
+        menuWidth: 180,
         searchMenuSpan: 6,
         border: false,
         index: true,
+        delBtn: false,
         stripe: true,
         viewBtn: true,
         selection: true,
         dialogClickModal: false,
         column: [
-          // {
-          //   label: "附件地址",
-          //   prop: "link",
-          //   hide: true,
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: "请输入附件地址",
-          //       trigger: "blur",
-          //     },
-          //   ],
-          // },
-          // {
-          //   label: "附件域名",
-          //   prop: "domain",
-          //   hide: true,
-          //   // search: true,
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: "请输入附件域名",
-          //       trigger: "blur",
-          //     },
-          //   ],
-          // },
-          // {
-          //   label: "附件名称",
-          //   prop: "name",
-          //   hide: true,
-          //   search: true,
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: "请输入附件名称",
-          //       trigger: "blur",
-          //     },
-          //   ],
-          // },
           {
             label: "附件名称",
-            prop: "originalName",
-            search: true,
+            prop: "originalname",
             overHidden: true,
-            rules: [
-              {
-                required: true,
-                message: "请输入附件原名",
-                trigger: "blur",
-              },
-            ],
           },
           {
-            label: "附件拓展名",
-            prop: "extension",
-            rules: [
-              {
-                required: true,
-                message: "请输入附件拓展名",
-                trigger: "blur",
-              },
-            ],
-          },
-          {
-            label: "附件大小",
-            prop: "attachSize",
+            label: "附件状态",
+            prop: "type",
+            width: 110,
             slot: true,
-            rules: [
-              {
-                required: true,
-                message: "请输入附件大小",
-                trigger: "blur",
-              },
-            ],
+            overHidden: true,
           },
-          // {
-          //   label: "上传时间",
-          //   prop: "createTime",
-          //   // slot: true,
-          //   // search: true,
-          //   rules: [
-          //     {
-          //       required: true,
-          //       message: "请输入附件大小",
-          //       trigger: "blur",
-          //     },
-          //   ],
-          // },
-          // {
-          //   label: "预览",
-          //   prop: "link",
-          //   slot: true,
-          //   dataType: "string",
-          //   type: "img",
-          // },
+          {
+            label: "示范模板",
+            prop: "downtemplate",
+            width: 110,
+            // overHidden: true,
+            slot: true,
+          },
         ],
       },
       data: [],
@@ -225,23 +134,6 @@
         submitBtn: false,
         emptyBtn: false,
         column: [
-          //   {
-          //     label: "附件上传",
-          //     prop: "attachFile",
-          //     type: "upload",
-          //     drag: true,
-          //     loadText: "模板上传中,请稍等",
-          //     span: 24,
-          //     propsHttp: {
-          //       res: "data",
-          //     },
-          //     action:
-          //     "/api/blade-resource/oss/endpoint/put-file-attach?deptid=&type=0"
-          //     //   "/api/blade-resource/oss/endpoint/put-file-attach?type=" +
-          //     //   type +
-          //     //   "&deptid=" +
-          //     //   deptid,
-          //   },
           {
             label: "拖拽上传",
             prop: "imgUrl5",
@@ -253,6 +145,7 @@
             },
             tip: "只能上传jpg/png文件,且不超过500kb",
             action:
+              // "/api/blade-resource/oss/endpoint/put-file-attach",
               "/api/blade-resource/oss/endpoint/put-file-attach?deptid=&type=" +
               type +
               "&cardid=" +
@@ -262,6 +155,11 @@
       },
       imgSee: false,
       imgUrl: "",
+
+      saveIds: [],
+      saveLinks: [],
+      onceIds: "",
+      onceLinks: "",
     };
   },
   computed: {
@@ -283,6 +181,7 @@
     },
   },
   mounted() {
+    // console.log(this.enclosure, "enclosure");
     var flag = false,
       i = 0,
       ind = null;
@@ -300,13 +199,63 @@
     }
   },
   methods: {
+    upData(val) {
+      console.log(val);
+      this.onceIds = +val.id - 1 + "";
+      this.attachBox = true;
+    },
+    dowmData(val) {
+      console.log(val.down);
+      window.open(val.down);
+      //
+    },
+    downTemplates(val) {
+      // console.log(val);
+      if (val == "") {
+        return;
+      }
+      window.open(val);
+      // window.open(`/api/examScore/export-template`);
+    },
     handleUpload() {
       this.attachBox = true;
     },
     uploadAfter(res, done, loading, column) {
-      // window.console.log(column);
-      this.attachBox = false;
+      window.console.log(res.link);
+      this.onceLinks = res.link;
+      var haveit = null;
+      for (let k in this.saveIds) {
+        if (this.saveIds[k] == this.onceIds) {
+          // this.saveLinks[k] = this.onceLinks;
+          haveit = k;
+          break;
+        }
+      }
+      if (haveit != null) {
+        this.saveLinks[haveit] = this.onceLinks;
+      } else {
+        this.saveIds.push(this.onceIds);
+        this.saveLinks.push(this.onceLinks);
+      }
+      console.log(this.saveIds);
+      console.log(this.saveLinks);
+
+      //  console.log(this.$store.getters.userInfo.Id);
+      var params = {
+        userid: this.$store.getters.userInfo.Id,
+        ptype: this.ptype,
+        templateid: this.saveIds.join(","),
+        links: this.saveLinks.join(","),
+      };
+      addUseInfor(params).then((res) => {
+        // console.log(res);
+        this.$message({
+          type: "success",
+          message: "操作成功!",
+        });
+      });
       this.refreshChange();
+      this.attachBox = false;
       done();
     },
     handleDownload(row) {
@@ -386,20 +335,40 @@
       this.onLoad(this.page, this.query);
     },
     onLoad(page, params = {}) {
-      params.type = this.type;
-      params.deptid = "";
-      params.cardid = this.$store.getters.userInfo.Id;
-      this.loading = true;
-      getList(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params, this.query)
-      ).then((res) => {
-        const data = res.data.data;
-        this.page.total = data.total;
-        this.data = data.records;
-        this.loading = false;
-        this.selectionClear();
+      var that = this;
+      var data = [];
+      console.log(this.$store.getters.userInfo.Id);
+      // this.data = this.enclosure;
+      params["ptype"] = this.ptype;
+      getTemplate(params, 1, 50).then((res) => {
+        data = res.data.data.records;
+        console.log(data, "::template");
+        params["userid"] = this.$store.getters.userInfo.Id;
+        getUseInfor(params).then((res) => {
+          var userInfo = res.data.data.records;
+          console.log(userInfo, "::userInfo");
+          if (userInfo.length == 0) {
+            for (var k in data) {
+              data[k]["type"] = 1;
+            }
+            that.data = data;
+            this.saveIds = [];
+            this.saveLinks = [];
+          } else {
+            this.saveIds = userInfo[0].templateid.split(",");
+            this.saveLinks = userInfo[0].links.split(",");
+            for (let k in data) {
+              for (let i in this.saveIds) {
+                if (+data[k].id - 1 == this.saveIds[i]) {
+                  data[k]["type"] = 2;
+                  data[k]["down"] = this.saveLinks[i];
+                }
+              }
+              // data[k]["type"] = 1;
+            }
+            that.data = data;
+          }
+        });
       });
     },
 
@@ -435,4 +404,20 @@
 </script>
 
 <style lang="scss" scoped>
+.red {
+  border: 1px solid rgba($color: #ff5656, $alpha: 0.3) !important;
+  background-color: rgba($color: #ff5151, $alpha: 0.1) !important;
+  color: rgba($color: #ff5151, $alpha: 1) !important;
+}
+.hand:hover {
+  cursor: pointer;
+}
+// .longbut {
+//   // background-color: red !important;
+//   width: 125px;
+// }
+// .shortbut {
+//   // background-color: green !important;
+//   width: 80px;
+// }
 </style>

--
Gitblit v1.9.3