|
@@ -3,7 +3,7 @@
|
|
|
<div class="flex flex-col">
|
|
<div class="flex flex-col">
|
|
|
<div class="flex flex-align-center padding border-bottom bold title-sp">
|
|
<div class="flex flex-align-center padding border-bottom bold title-sp">
|
|
|
<span class="flex-1"></span>
|
|
<span class="flex-1"></span>
|
|
|
- <span style="flex: 2">文件/文件夹名称</span>
|
|
|
|
|
|
|
+ <span style="flex: 2;text-align: left">文件/文件夹名称</span>
|
|
|
<span style="flex: 1">更新(上传)时间</span>
|
|
<span style="flex: 1">更新(上传)时间</span>
|
|
|
<span class="flex-1">文件大小</span>
|
|
<span class="flex-1">文件大小</span>
|
|
|
<span class="flex-1">是否同步</span>
|
|
<span class="flex-1">是否同步</span>
|
|
@@ -19,12 +19,12 @@
|
|
|
<img v-else class="icon" src="../../../assets/svg/folder/other.svg">
|
|
<img v-else class="icon" src="../../../assets/svg/folder/other.svg">
|
|
|
</div>
|
|
</div>
|
|
|
<div v-else class="flex-1">
|
|
<div v-else class="flex-1">
|
|
|
- <img src="../../../assets/svg/folder/see.svg" style="width: 50px;height: 46px">
|
|
|
|
|
- <!-- <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">-->
|
|
|
|
|
- <!-- <img v-else class="icon" src="../../../assets/svg/folder/other.svg">-->
|
|
|
|
|
|
|
+ <img v-if="item.IsAccess === '1'" src="../../../assets/svg/folder/see.svg" style="width: 50px;height: 46px">
|
|
|
|
|
+ <img v-if="item.IsAccess === '2'" src="../../../assets/svg/folder/edit.svg" style="width: 50px;height: 46px">
|
|
|
|
|
+ <img v-if="item.IsAccess === '3'" src="../../../assets/svg/folder/invisible.svg"
|
|
|
|
|
+ style="width: 50px;height: 46px">
|
|
|
</div>
|
|
</div>
|
|
|
- <span style="flex: 2">{{ item.title }}</span>
|
|
|
|
|
|
|
+ <span style="flex: 2;text-align: left">{{ item.title }}</span>
|
|
|
<span style="flex: 1">{{ item.createTime.substring(0, 10) }}</span>
|
|
<span style="flex: 1">{{ item.createTime.substring(0, 10) }}</span>
|
|
|
<span v-if="item.type === '1'" class="flex-1">{{ item.size }}</span>
|
|
<span v-if="item.type === '1'" class="flex-1">{{ item.size }}</span>
|
|
|
<span v-if="item.type === '2'" class="flex-1">-</span>
|
|
<span v-if="item.type === '2'" class="flex-1">-</span>
|
|
@@ -35,8 +35,11 @@
|
|
|
<div class="flex flex-center" style="flex: 3">
|
|
<div class="flex flex-center" style="flex: 3">
|
|
|
<main-button icon="View" title="详情" width="85" @click="View(item)"/>
|
|
<main-button icon="View" title="详情" width="85" @click="View(item)"/>
|
|
|
<main-button v-if="item.type === '1'" icon="Download" title="下载" width="85" @click="downFile(item)"/>
|
|
<main-button v-if="item.type === '1'" icon="Download" title="下载" width="85" @click="downFile(item)"/>
|
|
|
- <main-button v-if="item.type === '2'" icon="Upload" title="上传文件" width="85" @click="upload(item)"/>
|
|
|
|
|
- <main-button v-if='item.del' icon="Delete" title="删除" width="85" @click="removeFile(item)"/>
|
|
|
|
|
|
|
+ <main-button v-else-if="item.type === '2' && item.IsAccess === '2'" icon="Upload" title="上传文件" width="85"
|
|
|
|
|
+ @click="upload(item)"/>
|
|
|
|
|
+ <main-button v-else-if="item.type === '2' && item.IsAccess === '3'" icon="Position"
|
|
|
|
|
+ title="授权申请" width="85" @click="folderApply(item)"/>
|
|
|
|
|
+ <main-button v-else='item.del' icon="Delete" title="删除" width="85" @click="removeFile(item)"/>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
@@ -59,25 +62,49 @@
|
|
|
@close='show = false'
|
|
@close='show = false'
|
|
|
@success='success'/>
|
|
@success='success'/>
|
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
+ <!-- 申请授权-->
|
|
|
|
|
+ <el-dialog title='申请授权' v-model='applyShow' width='35%'>
|
|
|
|
|
+ <div class='full-width flex flex-center flex-col'>
|
|
|
|
|
+ <text class='full-width black text-left font-14 bold'>确认向业主申请{{ currentFolder.folderName }}的管理权限?
|
|
|
|
|
+ </text>
|
|
|
|
|
+ <div class='full-width flex flex-align-center mt-20'>
|
|
|
|
|
+ <span class='font-14 bold'>授权时长</span>
|
|
|
|
|
+ <el-date-picker
|
|
|
|
|
+ v-model="applyTime"
|
|
|
|
|
+ class='ml-20'
|
|
|
|
|
+ end-placeholder="截止日期"
|
|
|
|
|
+ range-separator="至"
|
|
|
|
|
+ start-placeholder="开始日期"
|
|
|
|
|
+ type="daterange"
|
|
|
|
|
+ value-format='YYYY-MM-DD'
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <el-divider/>
|
|
|
|
|
+ <div class='full-width flex flex-center'>
|
|
|
|
|
+ <el-button type='danger' plain @click="applyShow = false">取 消</el-button>
|
|
|
|
|
+ <el-button type='primary' @click='submit'>确 定</el-button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </el-dialog>
|
|
|
</div>
|
|
</div>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
import mainButton from '../../../components/main-button.vue'
|
|
import mainButton from '../../../components/main-button.vue'
|
|
|
-import { bytesToSize } from '@/utils/tools.js'
|
|
|
|
|
-import { useStore } from '@/store/user.js'
|
|
|
|
|
|
|
+import {bytesToSize} from '@/utils/tools.js'
|
|
|
|
|
+import {useStore} from '@/store/user.js'
|
|
|
import permissionStore from '@/store/permission.js'
|
|
import permissionStore from '@/store/permission.js'
|
|
|
import uploadFile from '../../../components/upload-file.vue'
|
|
import uploadFile from '../../../components/upload-file.vue'
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
name: 'files_list',
|
|
name: 'files_list',
|
|
|
- components: { mainButton, uploadFile },
|
|
|
|
|
|
|
+ components: {mainButton, uploadFile},
|
|
|
props: {
|
|
props: {
|
|
|
data: Object
|
|
data: Object
|
|
|
},
|
|
},
|
|
|
watch: {
|
|
watch: {
|
|
|
data: {
|
|
data: {
|
|
|
- handler (val) {
|
|
|
|
|
|
|
+ handler(val) {
|
|
|
if (val === '' || val === null) {
|
|
if (val === '' || val === null) {
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
@@ -104,14 +131,15 @@ export default {
|
|
|
immediate: true
|
|
immediate: true
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- setup () {
|
|
|
|
|
|
|
+ setup() {
|
|
|
const user = useStore()
|
|
const user = useStore()
|
|
|
const permission = permissionStore()
|
|
const permission = permissionStore()
|
|
|
- return { user, permission }
|
|
|
|
|
|
|
+ return {user, permission}
|
|
|
},
|
|
},
|
|
|
- data () {
|
|
|
|
|
|
|
+ data() {
|
|
|
return {
|
|
return {
|
|
|
show: false,
|
|
show: false,
|
|
|
|
|
+ applyShow: false,
|
|
|
files: [],
|
|
files: [],
|
|
|
showImage: false,
|
|
showImage: false,
|
|
|
imgList: [],
|
|
imgList: [],
|
|
@@ -124,14 +152,16 @@ export default {
|
|
|
ids: '',
|
|
ids: '',
|
|
|
ownerId: '',
|
|
ownerId: '',
|
|
|
projectId: ''
|
|
projectId: ''
|
|
|
- }
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ currentFolder: null,
|
|
|
|
|
+ applyTime: [],
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- created () {
|
|
|
|
|
|
|
+ created() {
|
|
|
this.query = this.$route.query
|
|
this.query = this.$route.query
|
|
|
},
|
|
},
|
|
|
methods: {
|
|
methods: {
|
|
|
- View (item) {
|
|
|
|
|
|
|
+ View(item) {
|
|
|
if (item.type === '1') {
|
|
if (item.type === '1') {
|
|
|
if (['png', 'jpg'].includes(item.suffix)) {
|
|
if (['png', 'jpg'].includes(item.suffix)) {
|
|
|
this.showImage = true
|
|
this.showImage = true
|
|
@@ -153,13 +183,13 @@ export default {
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
- upload (item) {
|
|
|
|
|
|
|
+ upload(item) {
|
|
|
this.show = true
|
|
this.show = true
|
|
|
console.log(item)
|
|
console.log(item)
|
|
|
this.fileFolderId = item.id
|
|
this.fileFolderId = item.id
|
|
|
console.log(this.fileFolderId)
|
|
console.log(this.fileFolderId)
|
|
|
},
|
|
},
|
|
|
- success (res) {
|
|
|
|
|
|
|
+ success(res) {
|
|
|
console.log(this.fileFolderId)
|
|
console.log(this.fileFolderId)
|
|
|
this.fileList = res.fileList.map(res => {
|
|
this.fileList = res.fileList.map(res => {
|
|
|
const item = {}
|
|
const item = {}
|
|
@@ -182,8 +212,8 @@ export default {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
- saveLibrary (sub) {
|
|
|
|
|
- const data = { category: 4, content: '' }
|
|
|
|
|
|
|
+ saveLibrary(sub) {
|
|
|
|
|
+ const data = {category: 4, content: ''}
|
|
|
this.$api.common.submit(Object.assign(sub, data)).then(res => {
|
|
this.$api.common.submit(Object.assign(sub, data)).then(res => {
|
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
|
this.saveCount++
|
|
this.saveCount++
|
|
@@ -193,7 +223,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
- addFile () {
|
|
|
|
|
|
|
+ addFile() {
|
|
|
this.$api.project.fileAdd(this.fileList).then(res => {
|
|
this.$api.project.fileAdd(this.fileList).then(res => {
|
|
|
if (res.code === 200) {
|
|
if (res.code === 200) {
|
|
|
this.show = false
|
|
this.show = false
|
|
@@ -205,9 +235,9 @@ export default {
|
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
|
})
|
|
})
|
|
|
- .then(() => {
|
|
|
|
|
- this.SendMsg()
|
|
|
|
|
- })
|
|
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ this.SendMsg()
|
|
|
|
|
+ })
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
this.show = false
|
|
this.show = false
|
|
@@ -215,7 +245,7 @@ export default {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
- SendMsg () {
|
|
|
|
|
|
|
+ SendMsg() {
|
|
|
this.sendParams.ids = this.fileList.map(e => e.fileId).join(',')
|
|
this.sendParams.ids = this.fileList.map(e => e.fileId).join(',')
|
|
|
this.sendParams.projectId = this.projectId
|
|
this.sendParams.projectId = this.projectId
|
|
|
this.$api.project.send(this.sendParams).then(res => {
|
|
this.$api.project.send(this.sendParams).then(res => {
|
|
@@ -228,48 +258,73 @@ export default {
|
|
|
}
|
|
}
|
|
|
})
|
|
})
|
|
|
},
|
|
},
|
|
|
- downFile (item) {
|
|
|
|
|
|
|
+ downFile(item) {
|
|
|
window.open(item.url, '')
|
|
window.open(item.url, '')
|
|
|
},
|
|
},
|
|
|
- viewerClose () {
|
|
|
|
|
|
|
+ viewerClose() {
|
|
|
this.showImage = false
|
|
this.showImage = false
|
|
|
this.imgList = []
|
|
this.imgList = []
|
|
|
},
|
|
},
|
|
|
- removeFile (item) {
|
|
|
|
|
|
|
+ removeFile(item) {
|
|
|
if (item.type === '1') {
|
|
if (item.type === '1') {
|
|
|
this.$confirm('确认是否删除所选文件/文件夹?', {
|
|
this.$confirm('确认是否删除所选文件/文件夹?', {
|
|
|
confirmButtonText: '确定',
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
|
})
|
|
})
|
|
|
- .then(() => {
|
|
|
|
|
- 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)
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ 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)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
})
|
|
})
|
|
|
- })
|
|
|
|
|
} else if (item.type === '2') {
|
|
} else if (item.type === '2') {
|
|
|
this.$confirm('确认是否删除所选文件/文件夹?', {
|
|
this.$confirm('确认是否删除所选文件/文件夹?', {
|
|
|
confirmButtonText: '确定',
|
|
confirmButtonText: '确定',
|
|
|
cancelButtonText: '取消',
|
|
cancelButtonText: '取消',
|
|
|
type: 'warning'
|
|
type: 'warning'
|
|
|
})
|
|
})
|
|
|
- .then(() => {
|
|
|
|
|
- this.$api.project.folderRemove({ ids: item.id }).then(res => {
|
|
|
|
|
- if (res.code === 200) {
|
|
|
|
|
- this.$message.success(res.msg)
|
|
|
|
|
- this.$bus.emit('delete')
|
|
|
|
|
- } else {
|
|
|
|
|
- this.$message.error(res.msg)
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ .then(() => {
|
|
|
|
|
+ this.$api.project.folderRemove({ids: item.id}).then(res => {
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ this.$message.success(res.msg)
|
|
|
|
|
+ this.$bus.emit('delete')
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$message.error(res.msg)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
})
|
|
})
|
|
|
- })
|
|
|
|
|
}
|
|
}
|
|
|
- }
|
|
|
|
|
|
|
+ },
|
|
|
|
|
+ folderApply(item) {
|
|
|
|
|
+ this.currentFolder = item
|
|
|
|
|
+ this.applyShow = true
|
|
|
|
|
+ },
|
|
|
|
|
+ submit() {
|
|
|
|
|
+ if (this.applyTime.length !== 2) {
|
|
|
|
|
+ this.$message.error('请选择授权时间')
|
|
|
|
|
+ return
|
|
|
|
|
+ }
|
|
|
|
|
+ const tmp = {projectId: this.projectId, ownerId: this.ownerId}
|
|
|
|
|
+ const item = {startTime: this.applyTime[0], endTime: this.applyTime[1], folderId: this.currentFolder.fileFolderId}
|
|
|
|
|
+ const list = [item]
|
|
|
|
|
+ this.$api.project.apply(Object.assign(tmp, {folders: list})).then(res => {
|
|
|
|
|
+ if (res.code === 200) {
|
|
|
|
|
+ this.applyShow = false
|
|
|
|
|
+ this.$confirm(res.data, {
|
|
|
|
|
+ confirmButtonText: '确定',
|
|
|
|
|
+ cancelButtonText: '取消',
|
|
|
|
|
+ type: 'warning'
|
|
|
|
|
+ })
|
|
|
|
|
+ } else {
|
|
|
|
|
+ this.$message.error(res.msg)
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|