From ee75969fba77f14685c8e114a298066a18554936 Mon Sep 17 00:00:00 2001
From: gaoshp <291585735@qq.com>
Date: 星期日, 19 五月 2024 19:28:02 +0800
Subject: [PATCH] update

---
 src/views/dnc/document/index.vue |  123 +++++++++++++++++++++++++++++++++++-----
 1 files changed, 107 insertions(+), 16 deletions(-)

diff --git a/src/views/dnc/document/index.vue b/src/views/dnc/document/index.vue
index d638315..925cdf2 100644
--- a/src/views/dnc/document/index.vue
+++ b/src/views/dnc/document/index.vue
@@ -1,7 +1,7 @@
 <!--
  * @Date: 2024-05-16 22:40:01
  * @LastEditors: Sneed
- * @LastEditTime: 2024-05-18 21:35:42
+ * @LastEditTime: 2024-05-19 19:26:43
  * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/dnc/document/index.vue
 -->
 <template>
@@ -42,42 +42,66 @@
                             </template>
                         </el-dropdown>
                         <el-button type="primary" style="margin-left: 8px;">涓婁紶鏂囦欢</el-button>
-                        <el-dropdown style="margin-left: 8px;">
+                        <el-dropdown style="margin-left: 8px;" :disabled="selection.length == 0">
                             <el-button type="primary">
                                 鏇村鎿嶄綔<el-icon class="el-icon--right"><el-icon-arrow-down /></el-icon>
                             </el-button>
                             <template #dropdown>
                                 <el-dropdown-menu>
-                                    <el-dropdown-item>澶嶅埗</el-dropdown-item>
-                                    <el-dropdown-item>绉诲姩</el-dropdown-item>
+                                    <el-dropdown-item @click="copy">澶嶅埗</el-dropdown-item>
+                                    <el-dropdown-item @click="move">绉诲姩</el-dropdown-item>
                                 </el-dropdown-menu>
                             </template>
                         </el-dropdown>
-                        <el-button style="margin-left: 8px;" type="danger" plain>鍒犻櫎</el-button>
+                        <el-button style="margin-left: 8px;" type="danger" plain
+                            :disabled="selection.length == 0">鍒犻櫎</el-button>
                         <el-button-group style="margin-left: auto;">
-                            <el-button type="primary">
+                            <el-button :type="type === 'list' ? 'primary' : ''" @click="type = 'list'">
                                 <el-icon>
                                     <el-icon-fold />
                                 </el-icon>
                             </el-button>
-                            <el-button type="primary">
+                            <el-button :type="type !== 'list' ? 'primary' : ''" @click="type = 'card'">
                                 <el-icon>
                                     <el-icon-grid />
                                 </el-icon>
                             </el-button>
                         </el-button-group>
-                        <el-input v-model="input3" style="margin-left: 8px;max-width: 240px" placeholder="璇疯緭鍏ュ叧閿瘝"
-                            class="input-with-select">
+                        <el-input v-model="params.searchKey" style="margin-left: 8px;max-width: 240px"
+                            placeholder="璇疯緭鍏ュ叧閿瘝" class="input-with-select">
                             <template #append>
                                 <el-button type="primary" class="header-search" @click="search">
                                     <el-icon>
                                         <el-icon-search />
                                     </el-icon>
                                 </el-button>
-
                             </template>
                         </el-input>
                     </el-header>
+                    <el-main>
+                        <scTable highlight-current-row @dataChange="dataChange" @row-click="rowClick" ref="table"
+                            :params="params" :apiObj="apiObj" @selection-change="selectionChange" stripe>
+                            <el-table-column type="selection" width="50"></el-table-column>
+                            <el-table-column label="鏂囦欢鍚嶇О" prop="name"></el-table-column>
+                            <el-table-column label="鏂囦欢璺緞" prop="allPathName"></el-table-column>
+                            <el-table-column label="澶у皬" prop="contentLength"></el-table-column>
+                            <el-table-column label="鏂囦欢绫诲瀷" prop="suffix"></el-table-column>
+                            <el-table-column label="鏇存柊鏃堕棿" prop="updateTime"></el-table-column>
+                            <el-table-column label="鎿嶄綔" fixed="right" align="right" width="160">
+                                <template #default="scope">
+                                    <el-button-group>
+                                        <el-button text type="primary" size="small"
+                                            @click="table_edit(scope.row, scope.$index)">缂栬緫</el-button>
+                                        <el-popconfirm title="纭畾鍒犻櫎鍚楋紵" @confirm="table_del([scope.row], '0')">
+                                            <template #reference>
+                                                <el-button text type="primary" size="small">鍒犻櫎</el-button>
+                                            </template>
+                                        </el-popconfirm>
+                                    </el-button-group>
+                                </template>
+                            </el-table-column>
+                        </scTable>
+                    </el-main>
                 </el-container>
             </el-container>
         </el-card>
@@ -110,10 +134,32 @@
                 name: [{
                     required: true, message: '蹇呭~'
                 }]
-            }
+            },
+            params: {
+                searchKey: '',
+            },
+            apiObj: {
+                get: async (data) => {
+                    let params = {
+                        ...data,
+                        parent: this.selectNode.id,
+                        ...this.params
+                    }
+                    return await this.$HTTP.get(`/api/blade-dnc/folder/page`, {}, { params }).then(res => {
+                        return res
+                    })
+                }
+            },
+            selection: [],
+            type: 'list'
         }
     },
-    created() {
+    watch: {
+        'selectNode.id': function () {
+            this.search()
+        }
+    },
+    mounted() {
         this.init()
     },
     methods: {
@@ -136,16 +182,61 @@
             this.selectNode = node
         },
         search() {
-            alert(1)
+            this.$refs?.table.reload()
         },
         // 鏂板鏂囦欢澶�
         addFolder() {
             this.visible = true
-            this.form = {}
+            this.form = { isNewFile: false }
         },
         saveFolder() {
-            console.log(this.form)
-            this.$HTTP
+            let data = {
+                ...this.form,
+                parent: this.selectNode.id
+            }
+            try {
+                Reflect.deleteProperty(data, 'isNewFile')
+            } catch (error) {
+
+            }
+            this.$HTTP.post(`/api/blade-dnc/folder`, data).then(res => {
+                this.init()
+            })
+        },
+        selectionChange(selection) {
+            this.selection = selection
+        },
+        action() {
+
+        },
+        copy() {
+            this.$HTTP.post(`/api/blade-dnc/file/copy`, { parentId: this.formFile.parentId, sourceIdList: this.selection.map(v => v.id) })
+        },
+        move() {
+            this.$HTTP.post(`/api/blade-dnc/file/move`, { parentId: this.formFile.parentId, sourceIdList: this.selection.map(v => v.id) })
+        },
+        async del() {
+            let confirm = await this.$HTTP.post(`/api/blade-dnc/file/exists-file`).then(res => {
+                if (res.data) {
+                    return res.data
+                }
+            })
+            let delFlag = true
+            if (confirm) {
+                delFlag = await this.$confirm(`姝ゆ搷浣滀細灏嗗綋鍓嶆枃浠跺す涓嬬殑鎵�鏈夋枃浠跺垹闄わ紝鏄惁缁х画??`, '鎻愮ず', {
+                    type: 'warning',
+                }).then(() => {
+                    return true
+                }).catch(() => {
+                    return false
+                })
+            }
+            if (!delFlag) {
+                return
+            }
+            this.$HTTP.post(`/api/blade-dnc/file`, { sourceIdList: this.selection.map(v => v.id) }).then(res => {
+                this.init()
+            })
         }
     }
 }

--
Gitblit v1.9.3