|
|
@@ -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>
|