Browse Source

物料发布调整

qymljy 1 năm trước cách đây
mục cha
commit
70ae43c8a3

+ 26 - 0
package-lock.json

@@ -29,8 +29,10 @@
         "nprogress": "^0.2.0",
         "print-js": "^1.6.0",
         "script-loader": "^0.7.2",
+        "viewerjs": "^1.11.6",
         "vue": "^2.6.14",
         "vue-countupjs": "^1.0.0",
+        "vue-image-viewer": "^1.1.8",
         "vue-router": "^3.5.1",
         "vuex": "^3.6.2",
         "xlsx": "^0.18.5"
@@ -14123,6 +14125,11 @@
         "node": ">= 0.8"
       }
     },
+    "node_modules/viewerjs": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.11.6.tgz",
+      "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw=="
+    },
     "node_modules/vite": {
       "version": "2.0.5",
       "resolved": "https://registry.npmmirror.com/vite/-/vite-2.0.5.tgz",
@@ -15138,6 +15145,14 @@
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },
+    "node_modules/vue-image-viewer": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmmirror.com/vue-image-viewer/-/vue-image-viewer-1.1.8.tgz",
+      "integrity": "sha512-pjMf8MbH8yBBrlbALo9xDDBCsMB4qh/sS8UB4OfpPk6bJbvenB6ejZgaJG+EGTcFNbFHLQnnXq8pMHuVyghOzA==",
+      "peerDependencies": {
+        "vue": "^2.5.17"
+      }
+    },
     "node_modules/vue-loader": {
       "version": "17.0.0",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.0.0.tgz",
@@ -27234,6 +27249,11 @@
       "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
       "dev": true
     },
+    "viewerjs": {
+      "version": "1.11.6",
+      "resolved": "https://registry.npmmirror.com/viewerjs/-/viewerjs-1.11.6.tgz",
+      "integrity": "sha512-TlhdSp2oEOLFXvEp4psKaeTjR5zBjTRcM/sHUN8PkV1UWuY8HKC8n7GaVdW5Xqnwdr/F1OmzLik1QwDjI4w/nw=="
+    },
     "vite": {
       "version": "2.0.5",
       "resolved": "https://registry.npmmirror.com/vite/-/vite-2.0.5.tgz",
@@ -28036,6 +28056,12 @@
       "integrity": "sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==",
       "dev": true
     },
+    "vue-image-viewer": {
+      "version": "1.1.8",
+      "resolved": "https://registry.npmmirror.com/vue-image-viewer/-/vue-image-viewer-1.1.8.tgz",
+      "integrity": "sha512-pjMf8MbH8yBBrlbALo9xDDBCsMB4qh/sS8UB4OfpPk6bJbvenB6ejZgaJG+EGTcFNbFHLQnnXq8pMHuVyghOzA==",
+      "requires": {}
+    },
     "vue-loader": {
       "version": "17.0.0",
       "resolved": "https://registry.npmmirror.com/vue-loader/-/vue-loader-17.0.0.tgz",

+ 2 - 0
package.json

@@ -30,8 +30,10 @@
     "nprogress": "^0.2.0",
     "print-js": "^1.6.0",
     "script-loader": "^0.7.2",
+    "viewerjs": "^1.11.6",
     "vue": "^2.6.14",
     "vue-countupjs": "^1.0.0",
+    "vue-image-viewer": "^1.1.8",
     "vue-router": "^3.5.1",
     "vuex": "^3.6.2",
     "xlsx": "^0.18.5"

+ 54 - 2
src/HManagement/archvies_mag/modules/list.vue

@@ -20,7 +20,7 @@
       <el-row :gutter="10" >
         <el-col :span="2" v-for="folder in list" :key="folder.id">
 
-            <div @dblclick.stop="folderDetails(folder)" class="folder-items" :class="folder.ischeck ? 'checked' : ''">
+            <div @dblclick.stop="folderDetails(folder)" class="folder-items" :class="folder.ischeck ? 'checked' : ''" @click="onSelect(folder)" v-if="folder.url == ''">
               <el-checkbox class="folder-checkbox" v-model="folder.ischeck" @change="onChange(folder)"></el-checkbox>
               <div class="img-panel">
                 <img v-if="folder.postfix === 'DOC' || folder.postfix === 'DOCX'"
@@ -46,6 +46,32 @@
               </el-tooltip>
             </div>
 
+          <div @dblclick="folderDblclick(folder)" class="folder-items" :class="folder.ischeck ? 'checked' : ''" @click="onSelect(folder)" v-else>
+            <el-checkbox class="folder-checkbox" v-model="folder.ischeck" @change="onChange(folder)"></el-checkbox>
+            <div class="img-panel" >
+              <img v-if="folder.postfix === 'DOC' || folder.postfix === 'DOCX'"
+                   src="../../../assets/file_icons/word.png" alt="">
+              <img v-else-if="folder.postfix === 'PDF'" src="../../../assets/file_icons/PDF.png" alt="">
+              <img v-else-if="folder.postfix === 'MP4' || folder.postfix === 'AVI'"
+                   src="../../../assets/file_icons/video.png" alt="">
+              <img v-else-if="folder.postfix === 'XLS' || folder.postfix === 'XLSX'"
+                   src="../../../assets/file_icons/excel.png" alt="">
+              <img v-else-if="folder.postfix === 'PNG' || folder.postfix === 'JPG' || folder.postfix === 'JPEG'"
+                   src="../../../assets/file_icons/image.png" alt="">
+              <img v-else-if="folder.postfix === 'PPT' || folder.postfix === 'PPTX'"
+                   src="../../../assets/file_icons/PPT.png" alt="">
+              <img v-else-if="folder.postfix === 'FOLDER'" src="../../../assets/file_icons/folder.png" alt="">
+              <img v-else src="../../../assets/file_icons/unknow.png" alt="">
+            </div>
+            <el-tooltip class="item" effect="dark" :content="folder.document" placement="top">
+              <input v-if="folder.newfolder" type="text" v-model="folder.document" autofocus size="mini"
+                     @blur="changeFolderName(folder)">
+              <!-- <p v-else>{{folder.document}}</p> -->
+
+              <p v-else>{{ folder.document }}</p>
+            </el-tooltip>
+          </div>
+
         </el-col>
       </el-row>
       <div v-if="list.length === 0" class="flex-align-center"
@@ -59,13 +85,15 @@
         :total="total">
       </el-pagination>
     </div>
+    <SeeFile ref="seeFile" :fileData="seeFileData"></SeeFile>
   </div>
 </template>
 
 <script>
 import BreadCrumbs from '@/components/bread-crumbs/BreadCrumbs'
+import SeeFile from '@/components/file-block/components/SeeFile1'
 export default {
-  components:{BreadCrumbs},
+  components:{BreadCrumbs,SeeFile},
   data() {
     return {
       params: {
@@ -95,6 +123,7 @@ export default {
         filename: '文件',
         id: null,
       }],
+      seeFileData:''
     }
   },
   methods: {
@@ -139,6 +168,29 @@ export default {
       })
       this.$emit('folderChecked', checkArray)
     },
+    onSelect(folder){
+      console.log(folder,'folder')
+      /*this.list[folder.rowindex -1].ischeck = this.list[folder.rowindex -1].ischeck == true ? false : true*/
+    },
+    folderDblclick(folder){
+      this.seeFileData = folder
+      if (folder.postfix == 'png' || folder.postfix == 'PNG' || folder.postfix == 'jpg' || folder.postfix == 'JPG' || folder.postfix == 'bmp' || folder.postfix == 'BMP'
+          || folder.postfix == 'gif' || folder.postfix == 'GIG' || folder.postfix == 'WEBP' || folder.postfix == 'webp' || folder.postfix == 'svg' || folder.postfix == 'SVG'
+          || folder.postfix == 'TIFF' || folder.postfix == 'tiff' || folder.postfix == 'MP4' || folder.postfix == 'mp4' || folder.postfix == 'ogg' || folder.postfix == 'webm' ){
+        this.$refs.seeFile.dialogVisible = true
+      }else if (folder.postfix == 'doc' || folder.postfix == 'docx' || folder.postfix == 'DOC' || folder.postfix == 'DOCX' || folder.postfix == 'XLS' || folder.postfix == 'XLSX'
+          || folder.postfix == 'xls' || folder.postfix == 'xlsx' || folder.postfix == 'ppt' || folder.postfix == 'pptx'
+          || folder.postfix == 'PPT' || folder.postfix == 'PPTX'  || folder.postfix == 'PDF' || folder.postfix == 'pdf'){
+        window.open(folder.url,'_blank')
+      }else {
+        this.$notify({
+          title:'提示',
+          message:'该文件暂不支持',
+          type:'warning'
+        })
+      }
+
+    },
     folderDetails(folder) {
       if (folder.postfix === 'FOLDER') {
         this.$router.push({ path: '/archvies_mag', query: { id: folder.attachmentid } })

+ 60 - 0
src/components/file-block/components/SeeFile1.vue

@@ -0,0 +1,60 @@
+<template>
+  <el-dialog
+    append-to-body
+    title="预览"
+    :visible.sync="dialogVisible"
+    :before-close="handleClose"
+    v-if="fileData">
+    <video :src="fileData.url" controls v-if="fileData.postfix == 'MP4' || fileData.postfix == 'mp4' || fileData.postfix == 'ogg' || fileData.postfix == 'webm'"></video>
+    <el-image
+      :src="fileData.url"
+      v-if="fileData.postfix == 'png' || fileData.postfix == 'PNG' || fileData.postfix == 'jpg' || fileData.postfix == 'JPG' || fileData.postfix == 'bmp' || fileData.postfix == 'BMP'
+|| fileData.postfix == 'gif' || fileData.postfix == 'GIG' || fileData.postfix == 'WEBP' || fileData.postfix == 'webp' || fileData.postfix == 'svg' || fileData.postfix == 'SVG'
+|| fileData.postfix == 'TIFF' || fileData.postfix == 'tiff'">
+    </el-image>
+  </el-dialog>
+</template>
+
+<script>
+export default {
+  name: '',
+  data() {
+    return {
+      dialogVisible:false
+    };
+  },
+  props:['fileData'],
+  computed:{
+  },
+  watch:{
+    'fileData':function (val){
+      console.log(val,'fileData111')
+    }
+  },
+  created() {
+
+  },
+  methods: {
+    handleClose() {
+      this.dialogVisible = false
+    }
+  },
+};
+</script>
+
+<style scoped>
+  video {
+    width: 100%;
+  }
+  img {
+    width: 100%;
+  }
+  /deep/.el-dialog__body {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+  }
+  /deep/.el-dialog {
+    z-index: 9999;
+  }
+</style>

+ 3 - 0
src/main.js

@@ -27,6 +27,9 @@ import tagPanl from '@/components/tagPanl/tagPanl'
 
 import sort from './components/sort'
 import '@/style/theme/font-icon/iconfont.css'
+
+
+
 // import {hiPrintPlugin} from './index'
 // Vue.use(hiPrintPlugin)
 Vue.prototype.$api = api

+ 2 - 2
vue.config.js

@@ -14,8 +14,8 @@ module.exports = {
       port: 8000,
       proxy: {
         '/apis': {
-          // target: 'http://61.164.207.46:8000',  // target host*/
-          target: 'http://192.168.3.13:8080',  // target host*!
+          target: 'http://61.164.207.46:8000',  // target host*/
+          // target: 'http://192.168.3.13:8080',  // target host*!
           // target: 'http://192.168.3.9:8090',  // target host*!
           // target: 'https://oms.idcgroup.com.cn:8079/',  // target host
           // target: 'localhost:8080',  // target host