<!--
|
* @Date: 2024-05-21 22:46:05
|
* @LastEditors: Sneed
|
* @LastEditTime: 2024-06-16 16:19:19
|
* @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/dnc/file/catalog/index.vue
|
-->
|
<template>
|
<el-main style="height: 100%;">
|
<el-card shadow="never" style="height: 100%;" body-style="height: 100%">
|
<el-container>
|
<el-aside width="200px">
|
<el-tree :expand-on-click-node="false" ref="group" node-key="id" :props="{
|
label: 'name',
|
hasChildren: 'id'
|
}" @node-click="nodeClick" highlight-current :current-node-key="selectNode.id" :load="loadNode"
|
lazy></el-tree>
|
</el-aside>
|
<el-container>
|
<el-header>
|
<el-button type="primary" @click="addNext">新增下级</el-button>
|
<el-button type="primary" :disabled="!selectNode.id || selectNode.id === 0"
|
@click="edit">编辑</el-button>
|
<el-button style="margin-left: 8px;margin-right: auto;" type="danger" plain
|
:disabled="!selectNode.id || selectNode.id === 0" @click="del">删除</el-button>
|
</el-header>
|
<el-main>
|
<el-row>
|
<el-col :span="12">
|
<el-form :model="selectNode" label-width="120px" label-position="center">
|
<el-form-item label="上级目录">
|
<el-input disabled v-model="selectNode.parentName" />
|
</el-form-item>
|
<el-form-item label="目录名称" prop="name">
|
<el-input disabled v-model="selectNode.name" />
|
</el-form-item>
|
</el-form>
|
</el-col>
|
</el-row>
|
|
</el-main>
|
</el-container>
|
</el-container>
|
</el-card>
|
<el-dialog v-model="visible" title="新建文件夹" width="500">
|
<el-form :model="formEdit" :rules="rulesEdit" ref="dialogForm" label-width="120px" label-position="center">
|
<el-form-item label="上级目录">
|
<el-input disabled v-model="formEdit.parentName" />
|
</el-form-item>
|
<el-form-item label="目录名称" prop="name">
|
<el-input v-model="formEdit.name" />
|
</el-form-item>
|
<el-col :span="24">
|
<el-form-item>
|
<slot>
|
<el-button type="primary" @click="submit">提交</el-button>
|
</slot>
|
</el-form-item>
|
</el-col>
|
</el-form>
|
</el-dialog>
|
</el-main>
|
</template>
|
|
<script>
|
export default {
|
data() {
|
return {
|
treeData: [],
|
selection: [],
|
selectNode: {
|
id: 0
|
},
|
visible: false,
|
formEdit: {
|
parentId: '',
|
parentName: '',
|
name: ''
|
},
|
rulesEdit: {
|
name: [
|
{ required: true, message: '必填' }
|
]
|
},
|
}
|
},
|
created() {
|
},
|
methods: {
|
loadNode(node, resolve) {
|
console.log(node, '>>>>>>')
|
let id = node.level === 0 ? '' : node.data.id
|
this.$HTTP.get(`/api/blade-dnc/dnc-archive-directory/list?parentId=${id}`).then(res => {
|
if (node.level === 0) {
|
this.$nextTick(() => {
|
this.nodeClick(res.data[0])
|
})
|
}
|
resolve(res.data)
|
})
|
},
|
addNext() {
|
console.log('------')
|
this.formEdit = {
|
parentId: this.selectNode.id,
|
parentName: this.selectNode.name,
|
}
|
this.visible = true
|
},
|
edit() {
|
console.log(this.selectNode)
|
this.formEdit = {
|
directoryId: this.selectNode.id,
|
parentId: this.selectNode.parentId,
|
parentName: this.selectNode.parentName,
|
name: this.selectNode.name,
|
|
}
|
this.visible = true
|
},
|
submit() {
|
if (this.formEdit.directoryId) {
|
return this.$HTTP.put(`/api/blade-dnc/dnc-archive-directory/update`, { ...this.formEdit }).then(res => {
|
this.$message.success("操作成功");
|
this.$refs.group.remove({
|
...res.data
|
})
|
this.$refs.group.append({
|
...res.data
|
}, this.selectNode.parentId)
|
this.visible = false
|
})
|
}
|
this.$HTTP.post(`/api/blade-dnc/dnc-archive-directory/insert`, { ...this.formEdit }).then(res => {
|
this.$message.success("操作成功");
|
this.$refs.group.append({
|
...res.data
|
}, this.selectNode.id)
|
this.visible = false
|
})
|
},
|
del() {
|
this.$HTTP.delete(`/api/blade-dnc/dnc-archive-directory/remove`, {}, { data: [this.selectNode.id] }).then(res => {
|
this.$message.success("操作成功");
|
})
|
},
|
nodeClick(node, treeNode) {
|
console.log(node, treeNode)
|
this.selectNode = {
|
...node,
|
parentName: treeNode?.parent?.data?.name || '-'
|
}
|
}
|
}
|
}
|
</script>
|
|
<style lang="scss" scoped></style>
|