scorpioyq 3 gadi atpakaļ
vecāks
revīzija
5848221103
2 mainītis faili ar 158 papildinājumiem un 96 dzēšanām
  1. 76 73
      src/api/project/index.js
  2. 82 23
      src/views/home/component/folder_info.vue

+ 76 - 73
src/api/project/index.js

@@ -1,92 +1,95 @@
 import fetch from '../fetch.js'
 
 export default {
-  /**
+    /**
      * 项目相关借口
      * @returns {Promise<unknown>}
      */
-  projectList (params) { // 项目列表
-    return fetch('/blade-project-manage/project/v1/page', params)
-  },
-  projectAdd (params) { // 新增项目
-    return fetch('/blade-project-manage/project/v1/save', params, 'post', 'json')
-  },
-  projectRemove (params) { // 删除项目
-    return fetch('/blade-project-manage/project/v1/remove', params, 'post')
-  },
-  typeList () { // 项目分类列表
-    return fetch('/blade-project-manage/projecttype/v1/list')
-  },
-  projectInfo (id) { // 项目详细信息
-    return fetch('/blade-project-manage/project/v1/detail/' + id)
-  },
-  proUpdate (params) { // 项目信息更新
-    return fetch('/blade-project-manage/project/v1/update', params, 'post', 'json')
-  },
-  issuanceDetail (params) { // 项目发行明细
-    return fetch('/blade-project-manage/projectdetail/v1/list', params)
-  },
-  issueAdd (params) { // 新增发行明细
-    return fetch('/blade-project-manage/projectdetail/v1/save', params, 'post', 'json')
-  },
-  userStageList () { // 统计用户阶段项目数
-    return fetch('/blade-project-manage/stage/v1/countProjectStagelist')
-  },
-  includeStage (params) { // 单个项目包含阶段
-    return fetch('/blade-project-manage/projectstage/v1/getProjectStageList', params)
-  },
-  folderList (params) { // 阶段包含文件夹列表
-    return fetch('/blade-project-manage/projectstagefilefolder/v1/getProjectStageFileList', params)
-  },
-  folderListAll (params) { // 历史数据文件夹列表
-    return fetch('/blade-project-manage/filefolder/v1/list', params)
-  },
-  folderRemove (params) { // 删除文件夹
-    return fetch('/blade-project-manage/filefolder/v1/remove', params, 'post')
-  },
-  folderAdd (params) { // 添加文件夹
-    return fetch('/blade-project-manage/filefolder/v1/save', params, 'post', 'json')
-  },
-  folderUpdate (params) { // 文件夹更新
-    return fetch('/blade-project-manage/filefolder/v1/update', params, 'post', 'json')
-  },
-  fileList (params) { // 文件夹里包含文件列表
-    return fetch('/blade-project-manage/bladefile/v1/getListByFolderId', params)
-  },
-  fileDetail (id) {
-    return fetch('/wutong-library/library/detail/' + id)
-  },
-  articleDetailByFile (id) {
-    return fetch('/wutong-library/library/detail/file/' + id)
-  },
-  fileAdd (params) { // 上传(新增)文件
-    return fetch('/blade-project-manage/bladefile/v1/save', params, 'post', 'json')
-  },
-  fileRemove (params) { // 删除文件
-    return fetch('/blade-project-manage/bladefile/v1/remove', params, 'post')
-  },
-  /**
+    projectList(params) { // 项目列表
+        return fetch('/blade-project-manage/project/v1/page', params)
+    },
+    projectAdd(params) { // 新增项目
+        return fetch('/blade-project-manage/project/v1/save', params, 'post', 'json')
+    },
+    projectRemove(params) { // 删除项目
+        return fetch('/blade-project-manage/project/v1/remove', params, 'post')
+    },
+    typeList() { // 项目分类列表
+        return fetch('/blade-project-manage/projecttype/v1/list')
+    },
+    projectInfo(id) { // 项目详细信息
+        return fetch('/blade-project-manage/project/v1/detail/' + id)
+    },
+    proUpdate(params) { // 项目信息更新
+        return fetch('/blade-project-manage/project/v1/update', params, 'post', 'json')
+    },
+    issuanceDetail(params) { // 项目发行明细
+        return fetch('/blade-project-manage/projectdetail/v1/list', params)
+    },
+    issueAdd(params) { // 新增发行明细
+        return fetch('/blade-project-manage/projectdetail/v1/save', params, 'post', 'json')
+    },
+    userStageList() { // 统计用户阶段项目数
+        return fetch('/blade-project-manage/stage/v1/countProjectStagelist')
+    },
+    includeStage(params) { // 单个项目包含阶段
+        return fetch('/blade-project-manage/projectstage/v1/getProjectStageList', params)
+    },
+    folderList(params) { // 阶段包含文件夹列表
+        return fetch('/blade-project-manage/projectstagefilefolder/v1/getProjectStageFileList', params)
+    },
+    findFiles(params) { // 文件搜索
+        return fetch('/blade-project-manage/bladefile/v1/findFileList', params)
+    },
+    folderListAll(params) { // 历史数据文件夹列表
+        return fetch('/blade-project-manage/filefolder/v1/list', params)
+    },
+    folderRemove(params) { // 删除文件夹
+        return fetch('/blade-project-manage/filefolder/v1/remove', params, 'post')
+    },
+    folderAdd(params) { // 添加文件夹
+        return fetch('/blade-project-manage/filefolder/v1/save', params, 'post', 'json')
+    },
+    folderUpdate(params) { // 文件夹更新
+        return fetch('/blade-project-manage/filefolder/v1/update', params, 'post', 'json')
+    },
+    fileList(params) { // 文件夹里包含文件列表
+        return fetch('/blade-project-manage/bladefile/v1/getListByFolderId', params)
+    },
+    fileDetail(id) {
+        return fetch('/wutong-library/library/detail/' + id)
+    },
+    articleDetailByFile(id) {
+        return fetch('/wutong-library/library/detail/file/' + id)
+    },
+    fileAdd(params) { // 上传(新增)文件
+        return fetch('/blade-project-manage/bladefile/v1/save', params, 'post', 'json')
+    },
+    fileRemove(params) { // 删除文件
+        return fetch('/blade-project-manage/bladefile/v1/remove', params, 'post')
+    },
+    /**
      * 业主主动授权
      * @param params
      * @returns {Promise | Promise<unknown>}
      */
-  initCode (params) {
-    return fetch('/blade-project-manage/qrcode/v1/getGrantQrcode', params, 'post', 'json')
-  },
-  /**
+    initCode(params) {
+        return fetch('/blade-project-manage/qrcode/v1/getGrantQrcode', params, 'post', 'json')
+    },
+    /**
      * 服务商触发消息发送
      * @param params
      * @returns {Promise | Promise<unknown>}
      */
-  send (params) {
-    return fetch('/blade-project-manage/frontMessage/v1/sendMessage', params)
-  },
-  /**
+    send(params) {
+        return fetch('/blade-project-manage/frontMessage/v1/sendMessage', params)
+    },
+    /**
      * 服务商主动申请文件授权
      * @param params
      * @returns {Promise<unknown>}
      */
-  apply (params) {
-    return fetch('/blade-project-manage/grant/v1/applyGrant', params, 'post', 'json')
-  }
+    apply(params) {
+        return fetch('/blade-project-manage/grant/v1/applyGrant', params, 'post', 'json')
+    }
 }

+ 82 - 23
src/views/home/component/folder_info.vue

@@ -2,18 +2,26 @@
   <div class="flex flex-col white-bg">
     <div class="flex flex-center ml-20 mb-20 mt-10">
       <div class="flex flex-center" style="flex: 3">
-        <span class="grey-6 font-18 bold nowrap mr-10">搜索</span>
-        <el-input
-            v-model="keyWords"
+        <span class="grey-6 bold nowrap mr-10">文件搜索</span>
+        <el-select
+            v-model="keyWords" remote filterable clearable
             placeholder="输入关键字"
-            prefix-icon="Search"
-            size="large"
+            :remote-method="remoteMethod"
+            :loading="loading"
             style="width: 100%"
-        />
+            @change="result"
+        >
+          <el-option
+              v-for="item in findData"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value">
+          </el-option>
+        </el-select>
       </div>
-      <div class="flex flex-center ml-10" style="flex: 1">
-        <base-button icon="Delete" title="清空" type="0" @click="clear"/>
-        <base-button class="ml-10" @click="getFolderList"/>
+      <div class="flex flex-center ml-10" style="flex: 0.01">
+        <!--              <base-button icon="Delete" title="清空" type="0" @click="clear"/>-->
+        <!--              <base-button class="ml-10" @click="filesFind"/>-->
       </div>
     </div>
     <div style="background-color: #E4E4E4;height: 10px;width: 100%;margin-left: -10px"></div>
@@ -70,6 +78,11 @@
         </div>
       </div>
     </el-dialog>
+    <el-image-viewer
+        v-if='showImage'
+        :url-list="imgList"
+        @close='viewerClose'
+    />
   </div>
 </template>
 
@@ -80,7 +93,7 @@ import permissionStore from '@/store/permission.js'
 
 export default {
   name: 'right2',
-  components: { baseButton, folderList },
+  components: {baseButton, folderList},
   props: {
     data: {
       type: Object,
@@ -91,7 +104,7 @@ export default {
   },
   watch: {
     projectStageId: {
-      handler (val) {
+      handler(val) {
         if (val) {
           this.getDict()
         }
@@ -99,12 +112,15 @@ export default {
       immediate: true
     }
   },
-  setup () {
+  setup() {
     const permissions = permissionStore()
-    return { permissions }
+    return {permissions}
   },
-  data () {
+  data() {
     return {
+      loading: false,
+      showImage: false,
+      imgList: [],
       addShow: false,
       folderInfo: {
         title: '',
@@ -122,31 +138,34 @@ export default {
       page: {
         current: 1,
         size: 10
-      }
+      },
+      findData: [],
     }
   },
+  created() {
+    this.getFolderList()
+  },
   methods: {
-    getDict () {
-      this.$api.common.dicList({ code: 'pc-folder-type' }).then(res => {
+    getDict() {
+      this.$api.common.dicList({code: 'pc-folder-type'}).then(res => {
         if (res.code === 200) {
           this.folderType = res.data
           this.change(0, this.folderType[0].dictKey)
         }
       })
     },
-    change (index, key) {
+    change(index, key) {
       this.active = index
       this.dictKey = key
       this.getFolderList()
     },
-    clear () {
+    clear() {
       this.keyWords = ''
       this.getFolderList()
     },
-    getFolderList () {
+    getFolderList() {
       const data = {
         projectStageId: this.projectStageId,
-        folderName: this.keyWords,
         dictKey: this.dictKey
       }
       this.$api.project.folderList(Object.assign(data, this.page)).then(res => {
@@ -156,7 +175,47 @@ export default {
         }
       })
     },
-    folderAdd () {
+    remoteMethod(query) {
+      if (query !== '') {
+        this.loading = true;
+        setTimeout(() => {
+          const data = {
+            projectId: this.id,
+            keyWord: this.keyWords,
+          }
+          this.$api.project.findFiles(Object.assign(data, this.page)).then(res => {
+            if (res.code === 200) {
+              this.findData = res.data.records.map(sub => {
+                let dataItem = {}
+                dataItem.label = sub.title
+                if (['png', 'jpg', 'jpeg'].includes(sub.suffix)) {
+                  dataItem.value = sub.url
+                } else {
+                  dataItem.value = sub.fileId
+                }
+                return dataItem
+              })
+            }
+            this.loading = false;
+          });
+        }, 200);
+      } else {
+        this.findData = [];
+      }
+    },
+    result(res) {
+      if (res.indexOf('http') > -1) {
+        this.showImage = true
+        this.imgList.push(res)
+      } else {
+        this.$router.push('/home/file_detail?id=' + res)
+      }
+    },
+    viewerClose() {
+      this.showImage = false
+      this.imgList = []
+    },
+    folderAdd() {
       this.folderInfo.projectId = this.id
       this.folderInfo.projectStageId = this.projectStageId
       this.folderInfo.dictKey = this.dictKey
@@ -170,7 +229,7 @@ export default {
         }
       })
     },
-    changePage (page) {
+    changePage(page) {
       console.log(page)
       this.page.current = page
       this.getFolderList()