Bladeren bron

资产台账:
1,附件上传无数量限制,目前是只准许上传两个
2,显示重复的上传文件名称,并且文件长度少于20个字节不显示文件名称。
3,文件上传,将原本的传的数组改为数组对象形式,其中(包含Key,Name,SystemId,CreateTime,Type)
4,上传图片添加CreateTime参数
5,iframe统一转换为小写,其中(包含name,key,type)
6,修改上传图片的名称,向后台传输正确的Name

shaun-sheep 5 jaren geleden
bovenliggende
commit
e809e1826d

+ 48 - 35
src/components/business_space/dialogs/list/filesDialog.vue

@@ -3,50 +3,63 @@
 -->
 
 <template>
-  <el-dialog title="上传文件" :visible.sync="dialog.uploadFiles" width="500px">
+  <el-dialog
+      title="上传文件"
+      :visible.sync="dialog.uploadFiles"
+      width="500px"
+  >
     <div class='max-height: 500px; overflow-y: auto;'>
-        <upload-files :readOnly="read" :keysArr="keysArr" @change="changeItem" max="2"></upload-files>
+      <upload-files
+          :readOnly="read"
+          :keysArr="keysArr"
+          :show-file-list="false"
+          @change="changeItem"
+          max="2"
+      />
     </div>
   </el-dialog>
 </template>
 <script>
-import uploadFiles from "@/components/business_space/lib/uploadFiles";
-export default {
-  components: {
-    uploadFiles
-  },
-  props: {
-    dialog: {
-      type: Object,
-      default: function () {
-        return {
-          uploadFiles: false
-        };
+  import uploadFiles from "@/components/business_space/lib/uploadFiles";
+
+  export default {
+    components: {
+      uploadFiles
+    },
+    props: {
+      dialog: {
+        type: Object,
+        default: function () {
+          return {
+            uploadFiles: false
+          };
+        }
+      },
+      keysArr: {
+        type: Array,
+        default: function () {
+          return []
+        }
+      },
+      read: {
+        type: Boolean,
+        default: false
       }
     },
-    keysArr: {
-      type: Array,
-      default: function () {
-        return []
+    data() {
+      return {};
+    },
+    created() {
+    },
+    mounted() {
+    },
+    methods: {
+      changeItem(file) {
+        console.log(file)
+        this.$emit("changeFile", file)
       }
     },
-    read: {
-      type: Boolean,
-      default: false
-    }
-  },
-  data() {
-    return {};
-  },
-  created() { },
-  mounted() { },
-  methods: {
-    changeItem(file) {
-      console.log(file)
-      this.$emit("changeFile", file)
-    }
-  },
-};
+  };
 </script>
 <style>
 </style>

+ 0 - 2
src/components/business_space/dialogs/list/uploadImgDialog.vue

@@ -43,11 +43,9 @@ export default {
   mounted() { },
   methods: {
     deepcopy(obj) {
-      console.log(obj, "out")
       return JSON.parse(JSON.stringify(obj));
     },
     changeItem(file) {
-      console.log(file, "changed")
       this.$emit("changeFile", file)
     }
   },

+ 6 - 1
src/components/business_space/lib/detailsDia.vue

@@ -41,7 +41,12 @@ export default {
       this.$nextTick(_ => {
         let iframe = document.getElementById(this.id)
         iframe.onload = () => {
-          iframe.contentWindow.postMessage(this.setData, "*")
+          let arr = this.setData.map(i => ({
+            key: i.Key,
+            name: i.Name,
+            type: i.Type
+          }))
+          iframe.contentWindow.postMessage(arr, "*")
         }
       })
     }

+ 181 - 162
src/components/business_space/lib/uploadFiles.vue

@@ -10,25 +10,38 @@
 <template>
   <div id="saga-upload">
     <div id="uploadFile">
-
       <el-upload
-        v-if="filesArr.length < max"
-        class="upload-file"
-        action
-        :http-request="uploadAndSubmit"
-        :show-file-list="false"
-        drag
+          class="upload-file"
+          action
+          :http-request="uploadAndSubmit"
+          :show-file-list="false"
+          drag
       >
-        <el-button size="small" type="primary" v-if="!readOnly">点击上传</el-button>
-        <div slot="tip" class="el-upload__tip" v-if="!readOnly">请上传文件</div>
+        <el-button
+            size="small"
+            type="primary"
+            v-if="!readOnly"
+        >点击上传</el-button>
+        <div
+            slot="tip"
+            class="el-upload__tip"
+            v-if="!readOnly"
+        >请上传文件</div>
       </el-upload>
-            <div v-if="item && filesArr.length" v-for="(item,index) in filesArr">
-        <el-button type="text" @click="download(item)">{{delFile(item)}}</el-button>
+      <div
+          v-if="item && filesArr.length"
+          v-for="(item,index) in filesArr"
+      >
+        <el-button
+            type="text"
+            @click="download(item.Key)"
+        >
+          {{delFile(item.Name)}}</el-button>
         <i
-          v-if="!readOnly"
-          class="el-icon-close delete-icon"
-          style="margin-left:10px; cursor:pointer"
-          @click="deleteFile(index,item)"
+            v-if="!readOnly"
+            class="el-icon-close delete-icon"
+            style="margin-left:10px; cursor:pointer"
+            @click="deleteFile(index,item)"
         ></i>
       </div>
     </div>
@@ -36,173 +49,179 @@
 </template>
 
 <script>
-import tools from "@/utils/scan/tools";
-export default {
-  props: {
-    keysArr: {
-      type: [Array, String],
-      default: function () {
-        return []
-      }
-    },
-    readOnly: {
-      type: Boolean,
-      default: false
-    },
-    max: {
-      type: [Number, String],
-      default: 6
-    },
-    defined: null
-  },
-  data() {
-    return {
-      filesArr: []
-    };
-  },
-  created() {
-    let type = typeof (this.keysArr)
-    this.fileFalg()
-  },
-  methods: {
-    //判断是否为空
-    fileFalg() {
-      let type = typeof (this.keysArr)
-      console.log(this.keysArr, "keysAee")
-      if (type == 'string') {
-        this.filesArr = [this.keysArr]
-      } else {
-        this.filesArr = tools.deepCopy(this.keysArr)
-      }
+  import tools from "@/utils/scan/tools";
 
-      if (!this.keysArr) {
-        this.filesArr = []
-      }
+  export default {
+    props: {
+      keysArr: {
+        type: [Array, String],
+        default: function () {
+          return []
+        }
+      },
+      readOnly: {
+        type: Boolean,
+        default: false
+      },
+      max: {
+        type: [Number, String],
+        default: 6
+      },
+      defined: null
     },
-    //处理地址
-    delFile(name) {
-      console.log(name, "name")
-      return name.length > 20 ? name.substring(0, 20) + "..." : ""
+    data() {
+      return {
+        filesArr: []
+      };
     },
-
-    resetFile() {
-      this.filesArr = []
+    created() {
+      this.fileFalg()
     },
+    methods: {
+      //判断是否为空
+      fileFalg() {
+        let type = typeof (this.keysArr)
+        if (type == 'string') {
+          this.filesArr = [this.keysArr]
+        } else {
+          this.filesArr = tools.deepCopy(this.keysArr)
+        }
 
+        if (!this.keysArr) {
+          this.filesArr = []
+        }
+      },
+      //处理地址
+      delFile(name) {
+        return name.length > 20 ? name.substring(0, 20) + "..." : name
+      },
 
-    //点击下载
-    download(key) {
-      console.log(key)
-      window.open("/image-service/common/file_get/" + key + "?systemId=dataPlatform")
-    },
+      resetFile() {
+        this.filesArr = []
+      },
 
-    //删除图片
-    deleteFile(i, key) {
-      this.filesArr.splice(i, 1);
-      this.$emit("change", this.filesArr, this.defined);
-    },
 
-    //上传
-    uploadAndSubmit(item) {
-      // var form = document.forms["demoForm"];
+      //点击下载
+      download(key) {
+        console.log(key)
+        window.open("/image-service/common/file_get/" + key + "?systemId=dataPlatform")
+      },
 
-      // if (form["file"].files.length > 0) {
-      // 寻找表单域中的 <input type="file" ... /> 标签
-      // var file = form["file"].files[0];
+      //删除图片
+      deleteFile(i, key) {
+        this.filesArr.splice(i, 1);
+        this.$emit("change", this.filesArr, this.defined);
+      },
 
-      let file = item.file;
-      // try sending
-      let reader = new FileReader();
+      //上传
+      uploadAndSubmit(item) {
+        // var form = document.forms["demoForm"];
 
-      let vm = this;
+        // if (form["file"].files.length > 0) {
+        // 寻找表单域中的 <input type="file" ... /> 标签
+        // var file = form["file"].files[0];
 
-      let fileType = file.name.split(".");
-      let type = fileType[fileType.length - 1];
-      let key = "&key=" + fileType[0] + file.uid + "." + type
+        let file = item.file;
+        // try sending
+        let reader = new FileReader();
 
-      reader.onloadstart = function () {
-        // 这个事件在读取开始时触发
-      };
-      reader.onprogress = function (p) {
-        // 这个事件在读取进行中定时触发
-      };
+        let vm = this;
 
-      reader.onload = function () {
-        // 这个事件在读取成功结束后触发
-      };
-      reader.onloadend = function () {
-        // 这个事件在读取结束后,无论成功或者失败都会触发
-        if (reader.error) {
-        } else {
-          // document.getElementById("bytesRead").textContent = file.size;
-          // 构造 XMLHttpRequest 对象,发送文件 Binary 数据
-          var xhr = new XMLHttpRequest();
-          xhr.open(
-            /* method */
-            "POST",
-            /* target url */
-            "/image-service/common/file_upload?systemId=dataPlatform&secret=9e0891a7a8c8e885&overwrite=true" + key
-            /*, async, default to true */
-          );
-          //xhr.overrideMimeType("application/octet-stream");
-          xhr.send(reader.result);
-          xhr.onreadystatechange = function () {
-            if (xhr.readyState == 4) {
-              console.log(xhr)
-              if (xhr.status == 200) {
-                vm.filesArr.push(
-                  key.split("=")[1]
-                );
-                console.log(vm.filesArr)
-                vm.$emit("change", vm.filesArr, vm.defined);
-              } else {
-                this.$message.error(res.data.ResultMsg)
+        let fileType = file.name.split(".");
+        let type = fileType[fileType.length - 1];
+        let key = "&key=" + fileType[0] + file.uid + "." + type
+        let CreateTime = tools.formatDate(new Date(file.lastModified))
+        reader.onloadstart = function () {
+          // 这个事件在读取开始时触发
+        };
+        reader.onprogress = function (p) {
+          // 这个事件在读取进行中定时触发
+        };
+
+        reader.onload = function () {
+          // 这个事件在读取成功结束后触发
+        };
+        reader.onloadend = function () {
+          // 这个事件在读取结束后,无论成功或者失败都会触发
+          if (reader.error) {
+          } else {
+            // document.getElementById("bytesRead").textContent = file.size;
+            // 构造 XMLHttpRequest 对象,发送文件 Binary 数据
+            var xhr = new XMLHttpRequest();
+            xhr.open(
+              /* method */
+              "POST",
+              /* target url */
+              "/image-service/common/file_upload?systemId=dataPlatform&secret=9e0891a7a8c8e885&overwrite=true" + key
+              /*, async, default to true */
+            );
+            //xhr.overrideMimeType("application/octet-stream");
+            xhr.send(reader.result);
+            xhr.onreadystatechange = function () {
+              if (xhr.readyState == 4) {
+                console.log(xhr)
+                if (xhr.status == 200) {
+                  let fileObject = {
+                    Key: key.split("=")[1],
+                    Type: type,
+                    Name: file.name,
+                    CreateTime,
+                    SystemId: 'dataPlatform'
+                  }
+                  vm.filesArr.push(fileObject);
+                  vm.$emit("change", vm.filesArr, vm.defined);
+                } else {
+                  this.$message.error(res.data.ResultMsg)
+                }
               }
-            }
-          };
-        }
-      };
-      reader.readAsArrayBuffer(file);
-    }
-  },
-  watch: {
-    keysArr: function (val) {
-      this.fileFalg()
+            };
+          }
+        };
+        reader.readAsArrayBuffer(file);
+      }
+    },
+    watch: {
+      keysArr: function (val) {
+        this.fileFalg()
+      }
     }
-  }
-};
+  };
 </script>
 
 <style lang="less">
-#saga-upload {
-  .dill-image {
-    position: absolute;
-    right: 0px;
-    top: 0px;
-    font-size: 20px;
-  }
-  .el-upload-dragger {
-    width: 180px;
-    height: 180px;
-  }
-  img {
-    position: absolute;
-    top: 0;
-    bottom: 0;
-    left: 0;
-    right: 0;
-    width: 100%;
-    height: 100%;
-  }
-  #uploadFile {
-    .upload-file {
-      overflow: hidden;
-      .el-upload-dragger {
-        width: inherit;
-        height: inherit;
-        border: none;
+  #saga-upload {
+    .dill-image {
+      position: absolute;
+      right: 0;
+      top: 0;
+      font-size: 20px;
+    }
+
+    .el-upload-dragger {
+      width: 180px;
+      height: 180px;
+    }
+
+    img {
+      position: absolute;
+      top: 0;
+      bottom: 0;
+      left: 0;
+      right: 0;
+      width: 100%;
+      height: 100%;
+    }
+
+    #uploadFile {
+      .upload-file {
+        overflow: hidden;
+
+        .el-upload-dragger {
+          width: inherit;
+          height: inherit;
+          border: none;
+        }
       }
     }
   }
-}
 </style>

+ 26 - 26
src/components/business_space/lib/uploadImgsName.vue

@@ -10,9 +10,9 @@
       <div v-if="type != 'video'" class="point-view" v-for="(item,index) in imagesArr">
         <div class="point-image">
           <i v-if="!readOnly" class="el-icon-delete" @click="delImage(index,item)"></i>
-          <img @click="lookImg" :src="imageGetUrl + '&key=' +item.key" alt v-load>
+          <img @click="lookImg" :src="imageGetUrl + '&key=' +item.Key" alt v-load>
         </div>
-        <form-input :label="''" @change="getName" :keys="index" :value="item.name" :width="10"></form-input>
+        <form-input :label="''" @change="getName" :keys="index" :value="item.Name" :width="10"></form-input>
       </div>
       <div v-if="type == 'video'" class="point-view" v-for="(item,index) in imagesArr">
         <div class="point-image">
@@ -20,13 +20,13 @@
           <video
             width="100%"
             height="100%;"
-            :src="imageGetUrl + '&key=' +item.key"
+            :src="imageGetUrl + '&key=' +item.Key"
             controls="controls"
           >您的浏览器不支持 video 标签。</video>
         </div>
-        <form-input :label="''" @change="getName" :keys="index" :value="item.name" :width="10"></form-input>
+        <form-input :label="''" @change="getName" :keys="index" :value="item.Name" :width="10"></form-input>
       </div>
-      <div v-if="!readOnly && imagesArr.length < max" style="float:left;">
+      <div v-if="!readOnly" style="float:left;">
         <el-upload
           class="avatar-uploader"
           :http-request="uploadAndSubmit"
@@ -34,7 +34,7 @@
           :accept="accept"
           action
           drag
-          style="position: relation"
+          style="position: relative"
         >
           <i class="el-icon-plus avatar-uploader-icon"></i>
         </el-upload>
@@ -99,8 +99,7 @@ export default {
   },
   methods: {
     getName(name, index) {
-      console.log(this.imagesArr, "imagesArr")
-      this.imagesArr[index].name = name
+      this.imagesArr[index].Name = name
       this.$emit("change", this.imagesArr, this.defined, this.videoPicArr);
     },
     //判断是否为空
@@ -155,6 +154,7 @@ export default {
 
       let fileType = file.name.split(".");
       let type = fileType[fileType.length - 1];
+      let CreateTime = tools.formatDate(new Date(file.lastModified))
 
       let uploadKey = file.uid
       if (!!key) {
@@ -191,31 +191,31 @@ export default {
             if (xhr.readyState == 4) {
               if (xhr.status == 200) {
                 if (vm.type == 'image') {
-                  vm.imagesArr.push(
-                    {
-                      name: uploadKey + '',
-                      key: uploadKey + "." + type,
-                      systemId: "dataPlatform",
-                      type: "image"
-                    }
-                  );
+                  vm.imagesArr.push({
+                      Name: uploadKey + '',
+                      Key: uploadKey + "." + type,
+                      SystemId: "dataPlatform",
+                      Type: "image",
+                      CreateTime
+                    });
                 }
                 if (type == 'mp4') {
                   vm.imagesArr.push({
-                    name: uploadKey + '',
-                    key: uploadKey + "." + type,
-                    systemId: "dataPlatform",
-                    type: "video"
-                  }
-                  );
+                      Name: uploadKey + '',
+                      Key: uploadKey + "." + type,
+                      SystemId: "dataPlatform",
+                      Type: "video",
+                      CreateTime
+                  });
                   vm.creatImg(vm.imageGetUrl + "&key=" + uploadKey + "." + type, uploadKey)
                 }
                 if (vm.type == "video" && type == "png") {
                   vm.videoPicArr.push({
-                    name: uploadKey + '',
-                    key: uploadKey + "." + type,
-                    systemId: "dataPlatform",
-                    type: "image_video"
+                    Name: uploadKey + '',
+                    Key: uploadKey + "." + type,
+                    SystemId: "dataPlatform",
+                    Type: "image_video",
+                    CreateTime
                   })
                 }
                 vm.$emit("change", vm.imagesArr, vm.defined, vm.videoPicArr);

+ 2 - 1
src/components/dialogs/list/filesDialog.vue

@@ -13,7 +13,8 @@
                 :keysArr="keysArr"
                 :firmDataType="firmDataType"
                 @change="changeItem"
-                max="2"/>
+                max="2"
+            />
         </div>
     </el-dialog>
 </template>

+ 0 - 1
src/components/dialogs/list/uploadImgDialog.vue

@@ -54,7 +54,6 @@
         },
         methods: {
     deepcopy(obj) {
-      console.log(obj, "out")
       return JSON.parse(JSON.stringify(obj));
     },
     changeItem(file) {

File diff suppressed because it is too large
+ 986 - 938
src/components/ledger/handsontables/assets.vue


+ 9 - 4
src/components/ledger/lib/lookImages.vue

@@ -53,9 +53,9 @@
   </el-dialog>
 </template>
 <script>
-import uploadImgs from "@/components/ledger/lib/uploadImgsName";
-import tools from "@/utils/scan/tools";
-export default {
+  import uploadImgs from "@/components/ledger/lib/uploadImgsName";
+
+  export default {
   components: {
     uploadImgs
   },
@@ -159,7 +159,12 @@ export default {
           console.log(iframe)
           iframe.onload = () => {
             console.log("onload")
-            iframe.contentWindow.postMessage(this.picArrs, "*")
+            let arr = this.picArrs.map(i => ({
+              key: i.Key,
+              name: i.Name,
+              type: i.Type
+            }))
+            iframe.contentWindow.postMessage(arr, "*")
           }
         })
       }

+ 2 - 4
src/components/ledger/lib/uploadFiles.vue

@@ -89,7 +89,6 @@
       };
     },
     created() {
-      // let type = typeof (this.keysArr)
       this.fileFalg()
       // this.resetFile()
     },
@@ -109,7 +108,6 @@
         let type = typeof (this.keysArr)
         if (type == 'string') {
           this.filesArr = [this.keysArr]
-
         } else {
           this.filesArr = tools.deepCopy(this.keysArr)
         }
@@ -219,8 +217,8 @@
   #saga-upload {
     .dill-image {
       position: absolute;
-      right: 0px;
-      top: 0px;
+      right: 0;
+      top: 0;
       font-size: 20px;
     }
 

+ 7 - 1
src/components/ledger/lib/uploadImgs.vue

@@ -198,7 +198,13 @@
                   console.log(vm.type, type)
                   if (vm.type == "video" && type == "png") {
                     console.log("触发时评上传图片回调")
-                    vm.videoPicArr.push(uploadKey + "." + type)
+                    vm.videoPicArr.push({
+                      Name: uploadKey + '',
+                      Key: uploadKey + "." + type,
+                      SystemId: "dataPlatform",
+                      Type: "image_video",
+                      CreateTime
+                    })
                   }
                   vm.$emit("change", vm.imagesArr, vm.defined, vm.videoPicArr);
                 }

+ 1 - 1
src/components/ledger/lib/uploadImgsName.vue

@@ -100,7 +100,7 @@
   },
   methods: {
     getName(name, index) {
-      this.imagesArr[index].name = name
+      this.imagesArr[index].Name = name
       this.$emit("change", this.imagesArr, this.defined, this.videoPicArr);
     },
     //判断是否为空