gaoshp
2024-05-21 41d35798b9cd3e61b0c5c6945562ba28252c148f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
<!--
 * @Date: 2024-05-21 22:46:05
 * @LastEditors: Sneed
 * @LastEditTime: 2024-05-21 23:55:40
 * @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 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>