From 41d35798b9cd3e61b0c5c6945562ba28252c148f Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期二, 21 五月 2024 23:57:23 +0800
Subject: [PATCH] 归档目录

---
 src/views/dnc/file/catalog/index.vue |  157 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 157 insertions(+), 0 deletions(-)

diff --git a/src/views/dnc/file/catalog/index.vue b/src/views/dnc/file/catalog/index.vue
new file mode 100644
index 0000000..647c442
--- /dev/null
+++ b/src/views/dnc/file/catalog/index.vue
@@ -0,0 +1,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>
\ No newline at end of file

--
Gitblit v1.9.3