Browse Source

Merge branch 'master' into prod

scorpio 3 years ago
parent
commit
292370e82e

+ 3 - 0
src/api/project/index.js

@@ -38,6 +38,9 @@ export default {
   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)
   },

+ 6 - 4
src/views/home/component/dash.vue

@@ -8,10 +8,10 @@
         <span class="ml-5">项目总投资额<span
             class="main-color bold">{{ Number.parseFloat(num).toLocaleString() }}</span>万元</span>
       </div>
-      <div class="flex ml-20 hide-scrollbar" style="overflow-x: scroll;width: 86vw">
+      <div class="flex ml-20 hide-scrollbar" style="overflow-x: scroll;width: 86vw" v-show='stage.length > 0'>
         <div v-for="(item,index) in stage" :key='item.id' :class="active === index ? 'total-s' : 'total'"
              class="flex flex-col  flex-center mt-20 bold font-16 pointer"
-             @click="switchTab(item,index)">
+             >
           <span class=" sp">{{ item.name }}</span>
           <span class=" sp1 mt-5">{{ item.projectNumber }}<span class="grey font-14 ml-5">个</span></span>
         </div>
@@ -236,7 +236,6 @@ export default {
     }
   },
   created () {
-    this.getStageList()
     this.getTypeList()
     this.$bus.on('serach', (res) => {
       this.onLoad(res)
@@ -271,6 +270,7 @@ export default {
           this.page.total = res.data.numberOfElements
           this.loading = false
         }
+        this.getStageList()
       })
     },
     beforeOpen (done, type) {
@@ -291,12 +291,14 @@ export default {
     },
     currentChange (currentPage) {
       this.page.currentPage = currentPage
+      // this.refreshChange()
     },
     sizeChange (pageSize) {
       this.page.pageSize = pageSize
+      // this.refreshChange()
     },
     refreshChange () {
-      this.onLoad(this.page, this.query)
+      this.onLoad(this.query)
     },
     rowDel (row) {
       this.$confirm('确定删除选择的项目?', {

+ 72 - 11
src/views/home/component/folder_info.vue

@@ -2,24 +2,32 @@
   <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>
     <!------tab------>
     <div class="flex flex-center mt-15">
-      <div class="flex flex-center" style="flex: 3.9">
+      <div class="flex flex-center" style="flex: 3.8">
         <div v-for="(item,index) in folderType" :key='item.id' class="flex flex-center tab">
           <el-badge :value='item.fileChildrenNumber' :hidden='item.fileChildrenNumber === 0'>
             <div :class="active === index ? 'tab-active' : ''"
@@ -72,6 +80,11 @@
         </div>
       </div>
     </el-dialog>
+    <el-image-viewer
+        v-if='showImage'
+        :url-list="imgList"
+        @close='viewerClose'
+    />
   </div>
 </template>
 
@@ -107,6 +120,9 @@ export default {
   },
   data () {
     return {
+      loading: false,
+      showImage: false,
+      imgList: [],
       addShow: false,
       folderInfo: {
         title: '',
@@ -124,9 +140,13 @@ export default {
       page: {
         current: 1,
         size: 10
-      }
+      },
+      findData: []
     }
   },
+  created () {
+    this.getFolderList()
+  },
   methods: {
     getDict () {
       this.$api.project.folderType({ projectStageId: this.projectStageId }).then(res => {
@@ -158,6 +178,46 @@ export default {
         }
       })
     },
+    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 => {
+                const 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
@@ -173,6 +233,7 @@ export default {
       })
     },
     changePage (page) {
+      console.log(page)
       this.page.current = page
       this.getFolderList()
     }

+ 11 - 12
src/views/home/component/owner_serach.vue

@@ -36,35 +36,34 @@
   </div>
 </template>
 
-
 <script>
-import baseButton from "../../../components/base-button.vue";
+import baseButton from '../../../components/base-button.vue'
 
 export default {
-  name: "owner_serach",
-  components: {baseButton},
-  data() {
+  name: 'owner_serach',
+  components: { baseButton },
+  data () {
     return {
       form: {
-        name: '',//项目名称
-        projectType: '',//项目分类
+        name: '', // 项目名称
+        projectType: ''// 项目分类
       },
-      typeList: [],
+      typeList: []
     }
   },
-  created() {
+  created () {
     this.getTypeList()
   },
   methods: {
-    getTypeList() {
+    getTypeList () {
       this.$api.project.typeList().then(res => {
         this.typeList = res.data.records
       })
     },
-    sure() {
+    sure () {
       this.$bus.emit('serach', this.form)
     },
-    clear() {
+    clear () {
       this.form.projectType = ''
       this.form.name = ''
       this.$bus.emit('serach', this.form)

+ 23 - 23
src/views/home/component/top_serach.vue

@@ -138,53 +138,53 @@ import baseButton from '../../../components/base-button.vue'
 
 export default {
   name: 'top-serach',
-  components: {baseButton},
-  data() {
+  components: { baseButton },
+  data () {
     return {
       form: {
-        name: '',//项目名称
-        startDate: '',//项目建设期
+        name: '', // 项目名称
+        startDate: '', // 项目建设期
         endDate: '',
-        createDept: '',//业主部门
-        dictName: '',//项目领域
-        operationStartDate: '',//项目运营期
+        createDept: '', // 业主部门
+        dictName: '', // 项目领域
+        operationStartDate: '', // 项目运营期
         operationEndDate: '',
-        issueYear: '',//发行日期
-        projectType: '',//项目类型
+        issueYear: '', // 发行日期
+        projectType: ''// 项目类型
       },
       typeList: [],
       deptFields: []
     }
   },
-  created() {
+  created () {
     this.getTypeList()
     this.getDict()
   },
   methods: {
-    sure() {
+    sure () {
       this.$bus.emit('serach', this.form)
     },
-    getTypeList() {
+    getTypeList () {
       this.$api.project.typeList().then(res => {
         this.typeList = res.data.records
       })
     },
-    clear() {
+    clear () {
       this.form = {
-        name: '',//项目名称
-        startDate: '',//项目建设期
+        name: '', // 项目名称
+        startDate: '', // 项目建设期
         endDate: '',
-        createDept: '',//业主部门
-        dictName: '',//项目领域
-        operationStartDate: '',//项目运营期
+        createDept: '', // 业主部门
+        dictName: '', // 项目领域
+        operationStartDate: '', // 项目运营期
         operationEndDate: '',
-        issueDate: '',//发行日期
-        projectType: '',//项目类型
+        issueDate: '', // 发行日期
+        projectType: ''// 项目类型
       }
       this.$bus.emit('serach', this.form)
     },
-    getDict() {
-      this.$api.common.dicList({'code': 'pc-debt-type'}).then(res => {
+    getDict () {
+      this.$api.common.dicList({ code: 'pc-debt-type' }).then(res => {
         if (res.code === 200) {
           this.deptFields = res.data.map(sub => {
             sub.checked = false
@@ -192,7 +192,7 @@ export default {
           })
         }
       })
-    },
+    }
   }
 }
 </script>