scorpioyq 3 éve
szülő
commit
302fa2f390

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

@@ -8,6 +8,15 @@ export default {
     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)
     },
@@ -29,6 +38,12 @@ export default {
     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')
     },

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 0 - 0
src/assets/svg/folder/xls.svg


+ 6 - 7
src/views/home/component/current.vue

@@ -2,7 +2,7 @@
   <div class="flex flex-col padding">
     <div class="flex flex-center mt-20">
       <div class="bold font-16 grey flex-child-average text-left" style="margin-left: 50px">
-        <span>当前数据({{ total }})</span>
+        <span>当前数据({{ data.total }})</span>
       </div>
       <div class="flex flex-center flex-child-average flex-justify-end" style="margin-right: 50px">
         <base-button class="mr-20" icon="User" title="授权查看" type="0"/>
@@ -27,20 +27,19 @@ import uploadFile from '../../../components/upload-file.vue'
 
 export default {
   name: 'current',
-  components: { files_list, baseButton, uploadFile },
+  components: {files_list, baseButton, uploadFile},
   props: {
     id: String,
-    data: Array,
-    total: String
+    data: Object,
   },
-  data () {
+  data() {
     return {
       show: false,
       fileList: []
     }
   },
   methods: {
-    success (res) {
+    success(res) {
       this.fileList = res.fileList.map(res => {
         const item = {}
         item.title = res.response.data.originalFileName
@@ -52,7 +51,7 @@ export default {
       })
       this.addFile()
     },
-    addFile () {
+    addFile() {
       if (this.fileList.length === 0) {
         this.$message.error('请先上传相关文件')
         return

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

@@ -14,6 +14,7 @@
           <span class="ml-15 sp1 mt-5">{{ item.projectNumber }}<span class="grey font-14 ml-5">个</span></span>
         </div>
       </div>
+      <base-button class="ml-20 mt-20" icon="Plus" title="新增" @click="showAdd = true"/>
     </div>
     <avue-crud ref="crud"
                v-model="form"
@@ -22,20 +23,87 @@
                :option="option"
                :page.sync="page"
                :table-loading="loading"
+               class="curd"
                @row-del="rowDel"
                @current-change="currentChange"
                @size-change="sizeChange"
                @refresh-change="refreshChange"
                @on-load="onLoad">
     </avue-crud>
+    <el-dialog v-model="showAdd"
+               append-to-body
+               center
+               title="新增项目"
+               width="35%">
+      <div>
+        <el-form v-model="projectForm" class="lab mt-20" label-width="100px">
+          <div class="flex flex-center flex-col mr-20">
+            <el-form-item class="full-width" label="项目名称">
+              <el-input
+                  v-model="projectForm.name"
+                  clearable
+                  placeholder="输入项目名称"
+              />
+            </el-form-item>
+            <el-form-item class="full-width" label="项目总投">
+              <el-input
+                  v-model="projectForm.totalAmount"
+                  clearable
+                  placeholder="输入项目总投"
+              />
+            </el-form-item>
+            <el-form-item class="full-width" label="项目类型">
+              <el-select
+                  v-model="projectForm.projectType"
+                  clearable
+                  placeholder="选择项目类型"
+                  style="width: 100%"
+              >
+                <el-option
+                    v-for="item in typeList"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id"
+                />
+              </el-select>
+            </el-form-item>
+            <el-form-item class="full-width" label="项目标签">
+              <el-select
+                  v-model="projectForm.tags"
+                  clearable
+                  placeholder="选择项目标签"
+                  style="width: 100%"
+              />
+            </el-form-item>
+            <el-form-item class="full-width" label="建设内容">
+              <el-input
+                  v-model="projectForm.introduction"
+                  :rows="6"
+                  clearable
+                  placeholder="输入项目建设内容"
+                  type="textarea"
+              />
+            </el-form-item>
+            <div class="flex flex-center mt-10">
+              <base-button class="mr-20" icon="Close" title="取消" type="0" @click="showAdd = false"/>
+              <base-button icon="Check" title="保存" @click="projectSave"/>
+            </div>
+          </div>
+        </el-form>
+      </div>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import BaseButton from "../../../components/base-button.vue";
+
 export default {
   name: 'dash',
+  components: {BaseButton},
   data() {
     return {
+      showAdd: false,
       active: 0,
       loading: false,
       data: [],
@@ -48,7 +116,7 @@ export default {
         searchShow: true,
         editBtn: true,
         addBtn: false,
-        delBtn: false,
+        delBtn: true,
         border: true,
         index: true,
         align: 'center',
@@ -96,18 +164,31 @@ export default {
         current: 1,
         total: 0
       },
-      stage: []
+      stage: [],
+      typeList: [],
+      projectForm: {
+        name: '',
+        totalAmount: '',
+        projectType: '',
+        tags: '',
+        introduction: '',
+      }
     }
   },
   created() {
     this.getStageList()
+    this.getTypeList()
+    this.$bus.on('serach', (res) => {
+      this.onLoad(res)
+    })
   },
   methods: {
     choise(index) {
       this.active = index
     },
-    onLoad() {
-      this.$api.project.projectList(this.page).then(res => {
+    onLoad(query = {}) {
+      let data = {...query, ...this.page}
+      this.$api.project.projectList(data).then(res => {
         if (res.code === 200) {
           this.data = res.data.content
           this.page.total = res.data.numberOfElements
@@ -140,13 +221,13 @@ export default {
       })
     },
     rowDel(row) {
-      this.$confirm("确定将选择数据删除?", {
+      this.$confirm("确定删除选择的项目?", {
         confirmButtonText: "确定",
         cancelButtonText: "取消",
         type: "warning"
       })
           .then(() => {
-            this.$api.knowledge.removeList({ids: row.id}).then(res => {
+            this.$api.project.projectRemove({ids: row.id}).then(res => {
               if (res.code === 200) {
                 this.$message.success(res.msg)
                 this.onLoad()
@@ -156,6 +237,23 @@ export default {
             })
           })
     },
+    getTypeList() {
+      this.$api.project.typeList().then(res => {
+        this.typeList = res.data.records
+      })
+    },
+    projectSave() {
+      this.$api.project.projectAdd(this.projectForm).then(res => {
+        if (res.code === 200) {
+          this.showAdd = false
+          this.$message.success(res.msg)
+          this.onLoad()
+        } else {
+          this.showAdd = false
+          this.$message.error(res.msg)
+        }
+      })
+    },
     go() {
       this.$router.push('/home/details')
     },
@@ -212,4 +310,9 @@ export default {
   }
 }
 
+.curd {
+  :deep(.avue-crud__menu) {
+    min-height: 10px;
+  }
+}
 </style>

+ 38 - 26
src/views/home/component/files_list.vue

@@ -2,20 +2,23 @@
   <div class="full-width full-height mb-10">
     <div class="flex flex-col">
       <div class="flex flex-align-center padding border-bottom bold">
-        <span style="flex: 0.6"></span>
-        <span style="flex: 1.4">文件/文件夹名称</span>
+        <span style="flex: 0.5"></span>
+        <span style="flex: 1.5;color: #596A8A">文件/文件夹名称</span>
         <span class="title">更新(上传)时间</span>
         <span class="title">文件大小</span>
         <span class="title">是否同步</span>
         <span class="title">上传人</span>
-        <span style="flex: 2;color: #596A8A;">操作</span>
+        <span style="flex: 2;color: #596A8A">操作</span>
       </div>
-      <div v-for="item in data" class="flex flex-center border-bottom padding">
-        <div style="flex: 0.6">
+      <!--      <el-empty v-if="data.length === 0" description="暂无数据"/>-->
+
+      <div v-for="item in files" class="flex flex-center border-bottom padding">
+        <div style="flex: 0.5">
           <img v-if="item.suffix === 'docx'" class="icon" src="../../../assets/svg/folder/doc.svg">
           <img v-else-if="item.suffix === 'pdf'" class="icon" src="../../../assets/svg/folder/pdf.svg">
+          <img v-else-if="item.suffix === 'xlsx'" class="icon" src="../../../assets/svg/folder/xls.svg">
         </div>
-        <span style="flex: 1.4;color: #707070;">{{ item.title }}</span>
+        <span style="flex: 1.5;color: #707070;">{{ item.title }}</span>
         <span class="title-x">{{ item.updateTime }}</span>
         <span class="title-x">{{ item.size }}</span>
         <span class="title-x">{{ item.status }}</span>
@@ -30,49 +33,58 @@
     </div>
     <!-------分页----->
     <div class="mt-20 flex flex-center flex-justify-end" style="margin-right: 50px">
-      <span class="mr-20">共100条</span>
-      <el-pagination :total="1000" background layout="prev, pager, next"/>
+      <span class="mr-20">共{{ data.total }}条</span>
+      <el-pagination :total="data.total" background layout="prev, pager, next"/>
     </div>
   </div>
 </template>
 
 <script>
 import mainButton from '../../../components/main-button.vue'
-import { bytesToSize } from '../../../utils/tools.js'
+import {bytesToSize} from '../../../utils/tools.js'
 
 export default {
   name: 'files_list',
-  components: { mainButton },
+  components: {mainButton},
   props: {
-    data: Array
+    data: Object
   },
   watch: {
-    data () {
-      this.data.map(e => {
-        if (e.volume === '') {
-          e.size = 0
+    data: {
+      handler(val) {
+        if (val === '' || val === null) {
           return
         }
-        e.size = bytesToSize(e.volume)
-        return e
-      })
+        console.log(val)
+        this.files = val.records
+        this.files.map(e => {
+          if (e.volume === '') {
+            e.size = 0
+            return
+          }
+          e.size = bytesToSize(e.volume)
+          return e
+        })
+      },
+      immediate: true
     }
   },
-  data () {
-    return {}
+  data() {
+    return {
+      files: []
+    }
   },
   methods: {
-    View () {
+    View() {
       // this.$router.push('/home/files')
     },
-    downFile (item) {
+    downFile(item) {
       window.open('/api/wutong-file/minio/file/downFile/' + item.dowloadFileId, '')
     },
-    removeFile (item) {
-      this.$bus.emit('delete', item)
-      return
-      this.$api.project.fileRemove({ ids: item.id }).then(res => {
+    removeFile(item) {
+      this.$api.project.fileRemove({ids: item.id}).then(res => {
         if (res.code === 200) {
+          this.$bus.emit('delete')
           this.$message.success(res.msg)
         } else {
           this.$message.error(res.msg)

+ 9 - 4
src/views/home/component/folder_info.vue

@@ -33,7 +33,7 @@
       </div>
     </div>
     <div class="mt-20">
-      <folder_list :folder="folderList"/>
+      <folder_list :folder="folderList" :total="total" @delFolder="getFolderList"/>
     </div>
     <el-dialog v-model='addShow' append-to-body width='40%'>
       <div class="flex flex-col">
@@ -76,8 +76,11 @@ export default {
     id: String
   },
   watch: {
-    projectStageId() {
-      this.getFolderList()
+    projectStageId: {
+      handler(val) {
+        this.getFolderList()
+      },
+      immediate: true
     }
   },
   data() {
@@ -105,7 +108,8 @@ export default {
           name: '其他文件'
         }
       ],
-      folderList: []
+      folderList: [],
+      total: ''
     }
   },
   methods: {
@@ -116,6 +120,7 @@ export default {
       this.$api.project.folderList({projectStageId: this.projectStageId}).then(res => {
         if (res.code === 200) {
           this.folderList = res.data.records
+          this.total = res.data.total
         }
       })
     },

+ 89 - 19
src/views/home/component/folder_list.vue

@@ -2,52 +2,122 @@
   <div class="full-width full-height mb-10">
     <div class="flex flex-col">
       <div class="flex flex-align-center padding border-bottom bold">
-        <span class="title-s">谋划阶段</span>
-        <span class="title">文件/文件夹名称</span>
+        <span v-if="type === 0" class="title-s">谋划阶段</span>
+        <span v-else class="title-s"></span>
+        <span style="color: #596A8A;flex: 1.5">文件/文件夹名称</span>
         <span class="title">更新(上传)时间</span>
-        <span style="color: #707070;flex: 2">文件数量</span>
-        <span style="flex: 1.5;color: #596A8A;">操作</span>
+        <span class="title">文件数量</span>
+        <span class="title"></span>
+        <span class="title"></span>
+        <span style="flex: 2;color: #596A8A">操作</span>
       </div>
       <!--      <el-empty v-if="folder.length === 0" description="暂无数据"/>-->
       <div v-for="item in folder" class="flex flex-center border-bottom padding">
         <img class="icon" src="../../../assets/svg/folder/see.svg">
-        {{ folder.name }}
-        <span class="title-x">{{ item.folderName }}</span>
+        <span style="color: #707070;flex: 1.5">{{ item.folderName }}</span>
         <span class="title-x">{{ item.updateTime }}</span>
-        <span style="color: #707070;flex: 2">{{ item.fileNumber }}</span>
-        <div class="flex flex-center" style="flex: 1.5">
+        <span class="title-x">{{ item.fileNumber }}</span>
+        <span class="title-x"></span>
+        <span class="title-x"></span>
+        <div class="flex flex-center" style="flex: 2">
           <main-button icon="View" title="详情" width="85" @click="fileView(item)"/>
-          <main-button icon="Upload" title="上传文件" width="85"/>
-          <main-button icon="Pointer" title="授权操作" width="85"/>
-          <main-button icon="Delete" title="删除" width="85"/>
+          <main-button icon="Upload" title="上传文件" width="85" @click="uploadFiles(item)"/>
+          <main-button v-if="type === 0" icon="Pointer" title="授权操作" width="85"/>
+          <main-button icon="Delete" title="删除" width="85" @click="folderRemove(item)"/>
         </div>
       </div>
     </div>
     <!-------分页----->
     <div class="mt-20 flex flex-center flex-justify-end" style="margin-right: 50px">
-      <span class="mr-20">共10条</span>
-      <el-pagination :total="1000" background layout="prev, pager, next"/>
+      <span class="mr-20">共{{ total }}条</span>
+      <el-pagination :total="total" background layout="prev, pager, next"/>
     </div>
+    <el-dialog v-model="show"
+               append-to-body
+               center
+               title="附件上传(可批量)">
+      <uploadFile :max='20' accept=".pdf,.doc,.docx,.xls,.xlsx,.ppt,.ppt,.wps" @close='show = false'
+                  @success='success'/>
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import mainButton from '../../../components/main-button.vue'
+import uploadFile from '../../../components/upload-file.vue'
 
 export default {
   name: 'file_list',
-  components: {mainButton},
+  components: {mainButton, uploadFile},
   props: {
-    folder: Array
+    folder: Array,
+    total: String,
+    type: {
+      type: Number,
+      default: 0
+    }
   },
   data() {
-    return {}
+    return {
+      show: false,
+      currentRow: null
+    }
   },
   methods: {
     fileView(item) {
       this.$router.push({
         path: '/home/files',
-        query: {id: item.id}
+        query: {id: item.fileFolderId}
+      })
+    },
+    uploadFiles(item) {
+      this.currentRow = item
+      console.log(this.currentRow.fileFolderId)
+      this.show = true
+    },
+    folderRemove(item) {
+      this.$confirm("确认是否删除该文件夹及所包含的文件?", {
+        confirmButtonText: "确定",
+        cancelButtonText: "取消",
+        type: "warning"
+      })
+          .then(() => {
+            this.$api.project.folderRemove({ids: item.fileFolderId}).then(res => {
+              if (res.code === 200) {
+                this.$message.success(res.msg)
+                this.$emit('delFolder')
+              } else {
+                this.$message.error(res.msg)
+              }
+            })
+          })
+    },
+    success(res) {
+      this.fileList = res.fileList.map(res => {
+        const item = {}
+        item.title = res.response.data.originalFileName
+        item.suffix = res.response.data.suffix
+        item.volume = res.response.data.volume
+        item.fileId = res.response.data.id
+        item.fileFolderId = this.currentRow.fileFolderId
+        return item
+      })
+      this.addFile()
+    },
+    addFile() {
+      if (this.fileList.length === 0) {
+        this.$message.error('请先上传相关文件')
+        return
+      }
+      this.$api.project.fileAdd(this.fileList).then(res => {
+        if (res.code === 200) {
+          this.show = false
+          this.$emit('reFolder')
+          this.$message.success(res.msg)
+        } else {
+          this.show = false
+          this.$message.error(res.msg)
+        }
       })
     }
   }
@@ -72,7 +142,7 @@ export default {
 
 .icon {
   flex: 0.5;
-  width: 60px;
-  height: 56px;
+  width: 50px;
+  height: 46px;
 }
 </style>

+ 7 - 3
src/views/home/component/historical.vue

@@ -2,14 +2,14 @@
   <div class="flex flex-col padding">
     <div class="flex flex-center mt-20">
       <div class="bold font-16 grey flex-child-average text-left" style="margin-left: 50px">
-        <span>历史数据(2004)</span>
+        <span>历史数据({{ total }})</span>
       </div>
       <div class="flex flex-center flex-child-average flex-justify-end" style="margin-right: 50px">
         <base-button class="mr-20" icon="User" title="授权查看" type="0"/>
         <base-button icon="Upload" title="上传文件"/>
       </div>
     </div>
-    <folder_list class="mt-20"/>
+    <folder_list :folder="folderList" :type="1" class="mt-20"/>
   </div>
 </template>
 
@@ -18,7 +18,11 @@ import folder_list from './folder_list.vue'
 
 export default {
   name: "historical",
-  components: {folder_list}
+  components: {folder_list},
+  props: {
+    folderList: Array,
+    total: String
+  }
 }
 </script>
 

+ 5 - 2
src/views/home/component/left_bar.vue

@@ -2,13 +2,13 @@
   <div>
     <div class="top">
       <div class="flex flex-col padding mt-20 ml-10">
-        <main-button :width="200" type="0"/>
+        <main-button :width="200" type="0" @click="proInfo"/>
         <el-divider></el-divider>
       </div>
       <div class='full-height' style="margin-left: 20px;text-align: left;">
         <span class="title">项目阶段-文件管理</span>
         <div class='mt-20 full-height' style='overflow-y: scroll;margin-bottom: 200px'>
-          <basic-step :steps='stage' @change="change"/>
+          <basic-step :active="-1" :steps='stage' @change="change"/>
         </div>
       </div>
     </div>
@@ -42,6 +42,9 @@ export default {
   methods: {
     change(index) {
       this.$emit('change', index)
+    },
+    proInfo() {
+      this.$emit('typeChange')
     }
   }
 }

+ 83 - 0
src/views/home/component/owner_serach.vue

@@ -0,0 +1,83 @@
+<template>
+  <div class="flex flex-col flex-justify-between padding white-bg">
+    <el-form v-model="form" class="lab mt-20" label-width="120px">
+      <div class="flex flex-center">
+        <el-form-item class="full-width" label="项目名称">
+          <el-input
+              v-model="form.name"
+              clearable
+              placeholder="输入项目关键字"
+              prefix-icon="Search"
+          />
+        </el-form-item>
+        <el-form-item class="full-width" label="分类筛选">
+          <el-select
+              v-model="form.projectType"
+              clearable
+              placeholder="选择项目分类"
+              style="width: 100%">
+            <el-option
+                v-for="item in typeList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
+        <div class="flex flex-center flex-justify-end"
+             style="margin-bottom: 18px;width: 82%;margin-left: 120px">
+          <div class="flex flex-center">
+            <base-button class="pointer mr-20" icon="Delete" title="清空" type="0" @click="clear"/>
+            <base-button class="pointer" @click="sure"/>
+          </div>
+        </div>
+      </div>
+    </el-form>
+  </div>
+</template>
+
+
+<script>
+import baseButton from "../../../components/base-button.vue";
+
+export default {
+  name: "owner_serach",
+  components: {baseButton},
+  data() {
+    return {
+      form: {
+        name: '',//项目名称
+        projectType: '',//项目分类
+      },
+      typeList: [],
+    }
+  },
+  created() {
+    this.getTypeList()
+  },
+  methods: {
+    getTypeList() {
+      this.$api.project.typeList().then(res => {
+        this.typeList = res.data.records
+      })
+    },
+    sure() {
+      this.$bus.emit('serach', this.form)
+    },
+    clear() {
+      this.form.projectType = ''
+      this.form.name = ''
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.lab {
+  :deep(.el-form-item__label) {
+    color: #707070;
+    font-size: 15px;
+    font-weight: 500;
+  }
+}
+</style>

+ 62 - 38
src/views/home/component/top_serach.vue

@@ -1,10 +1,10 @@
 <template>
   <div class="flex flex-col flex-justify-between padding white-bg">
-    <el-form  v-model="form" label-width="120px" class="lab mt-20">
+    <el-form v-model="form" class="lab mt-20" label-width="120px">
       <div class="flex flex-center">
-        <el-form-item class="full-width" label="关键字">
+        <el-form-item class="full-width" label="项目名称">
           <el-input
-              v-model="form.keyWords"
+              v-model="form.name"
               clearable
               placeholder="输入项目关键字"
               prefix-icon="Search"
@@ -12,18 +12,18 @@
         </el-form-item>
         <el-form-item class="full-width" label="业主部门">
           <el-input
-              v-model="form.keyWords"
+              v-model="form.createDept"
               clearable
-              placeholder="输入项目关键字"
+              placeholder="输入业主部门"
               prefix-icon="Search"
           />
         </el-form-item>
         <el-form-item class="full-width" label="项目类型">
           <el-select
-              v-model="form.keyWords"
+              v-model="form.projectType"
               clearable
+              placeholder="选择项目类型"
               style="width: 100%"
-              placeholder="输入项目关键字"
           />
         </el-form-item>
       </div>
@@ -31,12 +31,13 @@
         <!----时间区间间选择---->
         <el-form-item class="full-width" label="项目建设期">
           <el-col :span="11">
-            <el-form-item prop="date1">
+            <el-form-item>
               <el-date-picker
-                  v-model="form.date1"
-                  type="date"
+                  v-model="form.startDate"
                   placeholder="开始日期"
                   style="width: 100%"
+                  type="date"
+                  valueFormat="YYYY-MM-DD"
               />
             </el-form-item>
           </el-col>
@@ -44,23 +45,24 @@
             <span class="grey-6">至</span>
           </el-col>
           <el-col :span="11">
-            <el-form-item prop="date1">
+            <el-form-item>
               <el-date-picker
-                  v-model="form.date1"
-                  type="date"
+                  v-model="form.endDate"
                   placeholder="结束日期"
                   style="width: 100%"
+                  type="date"
+                  valueFormat="YYYY-MM-DD"
               />
             </el-form-item>
           </el-col>
         </el-form-item>
         <!------领域------>
-        <el-form-item class="full-width" style="color: #707070" label="项目领域">
+        <el-form-item class="full-width" label="项目领域">
           <el-select
-              v-model="form.keyWords"
+              v-model="form.dictName"
               clearable
+              placeholder="输入项目领域"
               style="width: 100%"
-              placeholder="输入项目关键字"
           />
         </el-form-item>
       </el-col>
@@ -69,12 +71,13 @@
           <!----时间区间间选择---->
           <el-form-item class="full-width" label="项目运营期">
             <el-col :span="11">
-              <el-form-item prop="date1">
+              <el-form-item>
                 <el-date-picker
-                    v-model="form.date1"
-                    type="date"
+                    v-model="form.operationStartDate"
                     placeholder="开始日期"
                     style="width: 100%"
+                    type="date"
+                    valueFormat="YYYY-MM-DD"
                 />
               </el-form-item>
             </el-col>
@@ -82,29 +85,35 @@
               <span class="grey-6">至</span>
             </el-col>
             <el-col :span="11">
-              <el-form-item prop="date1">
+              <el-form-item>
                 <el-date-picker
-                    v-model="form.date1"
-                    type="date"
+                    v-model="form.operationEndDate"
                     placeholder="结束日期"
                     style="width: 100%"
+                    type="date"
+                    valueFormat="YYYY-MM-DD"
                 />
               </el-form-item>
             </el-col>
           </el-form-item>
           <el-form-item class="full-width" label="发债年份">
-            <el-select
-                v-model="form.keyWords"
-                placeholder="输入项目关键字"
+            <el-date-picker
+                v-model="form.issueDate"
+                placeholder="选择发债年份"
                 style="width: 100%"
+                type="date"
+                valueFormat="YYYY"
             />
           </el-form-item>
         </el-col>
         <el-col :span="8">
-          <div class="flex flex-center flex-justify-between" style="margin-bottom: 18px;width: 80%;margin-left: 120px">
-            <base-button class="pointer" type="0" title="添加文件夹" icon="Plus"/>
-            <base-button class="pointer" type="0" title="清空" icon="Delete"/>
-            <base-button class="pointer"/>
+          <div class="flex flex-center flex-justify-end"
+               style="margin-bottom: 18px;width: 82%;margin-left: 120px">
+            <!--            <base-button class="pointer" type="0" title="添加文件夹" icon="Plus"/>-->
+            <div class="flex flex-center">
+              <base-button class="pointer mr-20" icon="Delete" title="清空" type="0" @click="clear"/>
+              <base-button class="pointer" @click="sure"/>
+            </div>
           </div>
         </el-col>
       </div>
@@ -117,24 +126,39 @@ import baseButton from '../../../components/base-button.vue'
 
 export default {
   name: 'top-serach',
-  components: { baseButton },
-  data () {
+  components: {baseButton},
+  data() {
     return {
       form: {
-        keyWords: '',
-        name: '',
-        date1: '',
-        date2: ''
+        name: '',//项目名称
+        startDate: '',//项目建设期
+        endDate: '',
+        createDept: '',//业主部门
+        dictName: '',//项目领域
+        operationStartDate: '',//项目运营期
+        operationEndDate: '',
+        issueDate: '',//发行日期
+        projectType: '',//项目类型
       }
     }
+  },
+  methods: {
+    sure() {
+
+    },
+    clear() {
+      this.form = ''
+    }
   }
 }
 </script>
 
 <style lang="scss" scoped>
-.lab{
-  :deep(.el-form-item__label){
-    color: #707070; font-size: 15px;font-weight: 500;
+.lab {
+  :deep(.el-form-item__label) {
+    color: #707070;
+    font-size: 15px;
+    font-weight: 500;
   }
 }
 </style>

+ 7 - 4
src/views/home/details.vue

@@ -1,10 +1,10 @@
 <template>
   <div class='flex flex-justify-start full-height'>
     <div class="full-height">
-      <left-bar :data="data" :stage="stage" @change="change"/>
+      <left-bar :data="data" :stage="stage" @change="change" @typeChange="typeChange"/>
     </div>
     <div class="full-height full-width white-bg padding-left padding-top" style="margin-left: 300px">
-      <proinfo v-if="type === 1" :data="data" :issue="list" @refInfo="proInfo" @refresh="issueList"/>
+      <proinfo v-if="type === 0" :data="data" :issue="list" @refInfo="proInfo" @refresh="issueList"/>
       <folder_info v-else :id="id" :projectStageId="projectStageId"/>
     </div>
   </div>
@@ -41,6 +41,9 @@ export default {
     this.getStage()
   },
   methods: {
+    typeChange() {
+      this.type = 0
+    },
     proInfo() {
       this.$api.project.projectInfo(this.id).then(res => {
         if (res.code === 200) {
@@ -63,14 +66,14 @@ export default {
             let newItem = {}
             newItem.title = e.stageName
             newItem.count = e.fileNumber
-            newItem.id = e.stageId
+            newItem.id = e.id
             return newItem
           })
         }
       })
     },
     change(res) {
-      console.log(this.stage[res].id)
+      this.type = 1
       this.projectStageId = this.stage[res].id
     },
   }

+ 27 - 11
src/views/home/files.vue

@@ -1,10 +1,10 @@
 <template>
   <div class='flex flex-col full-height'>
     <div class="full-height white-bg">
-      <current :id="id" :data="fileList" :total="total" @reFolder="getFileList"/>
+      <current :id="id" :data="fileData" :total="total" @reFolder="getFileList"/>
     </div>
     <div class="full-height full-width white-bg mt-10">
-      <historical/>
+      <historical :folderList="historyFolder" :total="total"/>
     </div>
   </div>
 </template>
@@ -21,26 +21,42 @@ import historical from './component/historical.vue'
 
 export default {
   name: 'files',
-  components: { current, historical },
-  data () {
+  components: {current, historical},
+  data() {
     return {
       id: '',
-      fileList: [],
+      fileData: '',
+      historyFolder: [],
       total: ''
+
     }
   },
-  created () {
+  created() {
     this.id = this.$route.query.id
     this.getFileList()
-    this.$bus.on('delete', (res) => {
-      console.log(res)
+    this.getFolderAll()
+    this.$bus.on('delete', () => {
+      this.getFileList()
     })
   },
   methods: {
-    getFileList () {
-      this.$api.project.fileList({ folderId: this.id }).then(res => {
+    getFileList() {
+      this.$api.project.fileList({folderId: this.id}).then(res => {
+        if (res.code === 200) {
+          this.fileData = res.data
+        } else {
+          this.$message.error(res.msg)
+        }
+      })
+    },
+    getFolderAll() {
+      this.$api.project.folderListAll({parentId: this.id}).then(res => {
         if (res.code === 200) {
-          this.fileList = res.data.records
+          this.historyFolder = res.data.records.map(e => {
+            e.folderName = e.title
+            e.fileNumber = e.childrenNumber
+            return e
+          })
           this.total = res.data.total
         }
       })

+ 16 - 8
src/views/home/index.vue

@@ -1,6 +1,7 @@
 <template>
   <div class="flex flex-col full-height">
-    <top-serach/>
+    <top-serach v-if="type === 0"/>
+    <owner_serach v-else-if="type === 1"/>
     <div class="full-width full-height mt-10">
       <dash/>
     </div>
@@ -16,22 +17,29 @@ name: '项目库',
 
 <script>
 import topSerach from './component/top_serach.vue'
+import owner_serach from './component/owner_serach.vue'
 import dash from './component/dash.vue'
-import { useStore } from '../../store/user.js'
+import {useStore} from '../../store/user.js'
 import tokenStore from '../../store/token.js'
 
 export default {
-  components: { topSerach, dash },
-  setup () {
+  components: {topSerach, dash, owner_serach},
+  setup() {
     const store = useStore()
     const token = tokenStore()
-    return { store, token }
+    return {store, token}
   },
-  created () {
+  data() {
+    return {
+      type: 0
+    }
+  },
+  created() {
+
   },
   methods: {
-    push () {
-      this.$router.push({ path: '/setting', query: { id: 12, type: 'test' } })
+    push() {
+      this.$router.push({path: '/setting', query: {id: 12, type: 'test'}})
     }
   }
 }

Nem az összes módosított fájl került megjelenítésre, mert túl sok fájl változott