207 lines
5.1 KiB
Vue
207 lines
5.1 KiB
Vue
|
|
<template>
|
|||
|
|
<div class="lum-dialog-mask">
|
|||
|
|
<el-container
|
|||
|
|
class="lum-dialog-box animated bounceInDown"
|
|||
|
|
v-outside="close"
|
|||
|
|
>
|
|||
|
|
<el-header height="60px" class="header no-select">
|
|||
|
|
<p>近 30 天删除的附件({{ tableData.length }})</p>
|
|||
|
|
<p class="tools">
|
|||
|
|
<i class="el-icon-close" @click="close" />
|
|||
|
|
</p>
|
|||
|
|
</el-header>
|
|||
|
|
<el-main class="main lum-scrollbar">
|
|||
|
|
<el-table :data="tableData" size="mini">
|
|||
|
|
<div slot="empty">暂无相关数据</div>
|
|||
|
|
<el-table-column
|
|||
|
|
prop="original_name"
|
|||
|
|
label="附件名称"
|
|||
|
|
width="180"
|
|||
|
|
:show-overflow-tooltip="true"
|
|||
|
|
>
|
|||
|
|
<template slot-scope="scope">
|
|||
|
|
<el-button type="text" @click="downloadAnnex(scope.row.id)">{{
|
|||
|
|
scope.row.original_name
|
|||
|
|
}}</el-button>
|
|||
|
|
</template>
|
|||
|
|
</el-table-column>
|
|||
|
|
<el-table-column
|
|||
|
|
prop="title"
|
|||
|
|
label="所属笔记"
|
|||
|
|
:show-overflow-tooltip="true"
|
|||
|
|
>
|
|||
|
|
</el-table-column>
|
|||
|
|
<el-table-column
|
|||
|
|
prop="day"
|
|||
|
|
label="剩余天数"
|
|||
|
|
align="center"
|
|||
|
|
width="80"
|
|||
|
|
>
|
|||
|
|
</el-table-column>
|
|||
|
|
<el-table-column
|
|||
|
|
fixed="right"
|
|||
|
|
label="操作"
|
|||
|
|
width="100"
|
|||
|
|
align="center"
|
|||
|
|
>
|
|||
|
|
<template slot-scope="scope">
|
|||
|
|
<el-button
|
|||
|
|
type="text"
|
|||
|
|
size="small"
|
|||
|
|
@click="recoverAnnex(scope.row)"
|
|||
|
|
>恢复</el-button
|
|||
|
|
>
|
|||
|
|
<el-popover
|
|||
|
|
placement="top"
|
|||
|
|
@hide="lock(false)"
|
|||
|
|
@show="lock(true)"
|
|||
|
|
:ref="`popover-${scope.$index}`"
|
|||
|
|
>
|
|||
|
|
<p style="margin-bottom: 10px">
|
|||
|
|
【{{
|
|||
|
|
scope.row.original_name
|
|||
|
|
}}】附件您确定要永久删除吗?<br />
|
|||
|
|
</p>
|
|||
|
|
<div style="text-align: right; margin: 0">
|
|||
|
|
<el-button
|
|||
|
|
size="mini"
|
|||
|
|
type="text"
|
|||
|
|
@click="
|
|||
|
|
scope._self.$refs[`popover-${scope.$index}`].doClose()
|
|||
|
|
"
|
|||
|
|
>
|
|||
|
|
取消</el-button
|
|||
|
|
>
|
|||
|
|
<el-button
|
|||
|
|
type="primary"
|
|||
|
|
size="mini"
|
|||
|
|
@click="deleteAnnex(scope.row, scope.$index)"
|
|||
|
|
>确定</el-button
|
|||
|
|
>
|
|||
|
|
</div>
|
|||
|
|
<el-button
|
|||
|
|
slot="reference"
|
|||
|
|
type="text"
|
|||
|
|
size="small"
|
|||
|
|
style="color: #ec5252; margin-left: 5px"
|
|||
|
|
>删除</el-button
|
|||
|
|
>
|
|||
|
|
</el-popover>
|
|||
|
|
</template>
|
|||
|
|
</el-table-column>
|
|||
|
|
</el-table>
|
|||
|
|
</el-main>
|
|||
|
|
<el-footer class="footer" height="30px">
|
|||
|
|
<p class="footer-tip">移动至回收站的附件和笔记,将在 30 天后自动清除</p>
|
|||
|
|
</el-footer>
|
|||
|
|
</el-container>
|
|||
|
|
</div>
|
|||
|
|
</template>
|
|||
|
|
<script>
|
|||
|
|
import Vue from 'vue'
|
|||
|
|
import { Table, TableColumn } from 'element-ui'
|
|||
|
|
Vue.use(Table)
|
|||
|
|
Vue.use(TableColumn)
|
|||
|
|
|
|||
|
|
import {
|
|||
|
|
ServeGetRecoverAnnexList,
|
|||
|
|
ServeRecoverArticleAnnex,
|
|||
|
|
ServeDownloadAnnex,
|
|||
|
|
ServeForeverDeleteAnnex,
|
|||
|
|
} from '@/api/article'
|
|||
|
|
|
|||
|
|
export default {
|
|||
|
|
name: 'NoteAnnexRecycle',
|
|||
|
|
data() {
|
|||
|
|
return {
|
|||
|
|
tableData: [],
|
|||
|
|
closeLock: false,
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
created() {
|
|||
|
|
this.loadList()
|
|||
|
|
},
|
|||
|
|
methods: {
|
|||
|
|
loadList() {
|
|||
|
|
ServeGetRecoverAnnexList().then(res => {
|
|||
|
|
if (res.code == 200) {
|
|||
|
|
this.tableData = res.data.rows
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 关闭当前窗口
|
|||
|
|
close() {
|
|||
|
|
if (!this.closeLock) this.$emit('close')
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 给遮罩层加锁
|
|||
|
|
lock(value) {
|
|||
|
|
this.closeLock = value
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
// 恢复附件
|
|||
|
|
recoverAnnex(data, index) {
|
|||
|
|
ServeRecoverArticleAnnex({
|
|||
|
|
annex_id: data.id,
|
|||
|
|
}).then(res => {
|
|||
|
|
if (res.code == 200) {
|
|||
|
|
this.tableData.splice(index, 1)
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//永久删除附件
|
|||
|
|
deleteAnnex(data, index) {
|
|||
|
|
ServeForeverDeleteAnnex({
|
|||
|
|
annex_id: data.id,
|
|||
|
|
})
|
|||
|
|
.then(res => {
|
|||
|
|
this.$refs[`popover-${index}`].doClose()
|
|||
|
|
this.lock(false)
|
|||
|
|
if (res.code == 200) {
|
|||
|
|
this.tableData.splice(index, 1)
|
|||
|
|
} else {
|
|||
|
|
this.$notify({
|
|||
|
|
message: '附件删除失败...',
|
|||
|
|
})
|
|||
|
|
}
|
|||
|
|
})
|
|||
|
|
.catch(() => {
|
|||
|
|
this.$refs[`popover-${index}`].doClose()
|
|||
|
|
this.lock(false)
|
|||
|
|
})
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
//下载笔记附件
|
|||
|
|
downloadAnnex: ServeDownloadAnnex,
|
|||
|
|
},
|
|||
|
|
}
|
|||
|
|
</script>
|
|||
|
|
<style lang="less" scoped>
|
|||
|
|
.lum-dialog-box {
|
|||
|
|
width: 700px;
|
|||
|
|
height: 80%;
|
|||
|
|
max-width: 700px;
|
|||
|
|
|
|||
|
|
.main {
|
|||
|
|
padding-top: 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.footer {
|
|||
|
|
.footer-tip {
|
|||
|
|
color: #a7afbc;
|
|||
|
|
font-size: 12px;
|
|||
|
|
font-weight: 400;
|
|||
|
|
line-height: 1.6;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/deep/ .tab-header-row .cell {
|
|||
|
|
font-size: 14px;
|
|||
|
|
font-weight: 400;
|
|||
|
|
color: rgb(172, 167, 167);
|
|||
|
|
}
|
|||
|
|
</style>
|