From fbee7228e2f6e43b417d4c3f03020704831261cd Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期日, 23 六月 2024 01:31:47 +0800 Subject: [PATCH] update --- src/views/dnc/setting/FTP.vue | 190 ++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 179 insertions(+), 11 deletions(-) diff --git a/src/views/dnc/setting/FTP.vue b/src/views/dnc/setting/FTP.vue index 1084c48..0043cc2 100644 --- a/src/views/dnc/setting/FTP.vue +++ b/src/views/dnc/setting/FTP.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-05-26 22:26:35 * @LastEditors: Sneed - * @LastEditTime: 2024-06-02 19:17:45 + * @LastEditTime: 2024-06-16 16:19:27 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/dnc/setting/FTP.vue --> <template> @@ -13,7 +13,7 @@ label: 'title', }" node-key="id"> - <template #prefix>宸ヤ綅鐩綍</template> + <template #prefix><span style="margin-right: 6px;">宸ヤ綅鐩綍</span></template> </el-tree-select> <el-input v-model="params.name" style="width: 240px;margin-left: 8px;" placeholder="" clearable> <template #prefix>鐩綍鍚嶇О</template> @@ -23,7 +23,7 @@ <el-main> <el-row :gutter="20" style="width: 100%;"> <el-col :span="12"> - <el-table :data="tableData" style="width: 100%"> + <el-table :data="tableData" style="width: 100%" @row-click="rowClick"> <el-table-column label="鐩綍鍚嶇О" prop="name" width=""></el-table-column> <el-table-column label="鍏宠仈宸ヤ綅" prop="" width=""> <template #default="scope"> @@ -34,7 +34,7 @@ <template #default="scope"> <el-button-group> <el-button text type="primary" size="small" - @click="table_edit(scope.row, scope.$index)">鍏宠仈宸ヤ綅</el-button> + @click.stop="table_edit(scope.row, scope.$index)">鍏宠仈宸ヤ綅</el-button> <el-popconfirm width="220" title="纭畾灏嗛�夋嫨鐨勬暟鎹垹闄�" @confirm="table_del(scope.row)"> <template #reference> <el-button text type="primary" size="small">鍒犻櫎</el-button> @@ -46,14 +46,52 @@ </el-table> </el-col> <el-col :span="12"> - <h2>FTP鐩綍</h2> - <div>509</div> + <h2 style="background-color: var(--el-color-primary);color: #fff;padding: 4px 20px;">FTP鐩綍</h2> + <div class="directorName"> + <span>{{ directorName }}</span> + <div class="hover"> + <el-icon> + <el-icon-plus @click="addDirect" /> + </el-icon> + <!-- <el-icon> + <el-icon-edit /> + </el-icon> + <el-icon> + <el-icon-delete /> + </el-icon> --> + </div> + </div> + <el-tree :expand-on-click-node="false" v-if="rootNodeId && showTree" ref="group" node-key="id" + :props="{ + label: 'name', + hasChildren: 'id' + }" @node-click="nodeClick" highlight-current :current-node-key="selectNode.id" :load="loadNode" + lazy> + <template #default="{ node, data }"> + <div class="custom-tree-node"> + <span>{{ + node.label }}</span> + <el-icon style="margin-left: 100px;"> + <el-icon-plus @click="addDirect(node)" /> + </el-icon> + <el-icon> + <el-icon-edit @click="editDirect(node)" /> + </el-icon> + <el-icon> + <el-icon-delete @click="delDirect(node)" /> + </el-icon> + </div> + </template> + </el-tree> </el-col> </el-row> </el-main> - <scDialog v-model="showAdd"> + <scDialog v-model="showAdd" style="width: 600px"> <scForm :config="config" :rules="rules" v-model="form" @submit="submit"> - + </scForm> + </scDialog> + <scDialog v-model="showdireactor" style="width: 600px"> + <scForm :config="config1" :rules="rules1" v-model="form1" @submit="submit1"> </scForm> </scDialog> </el-container> @@ -102,7 +140,35 @@ } } ] - } + }, + workstationId: '', + rootNodeId: '', + selectNode: {}, + showTree: false, + showdireactor: false, + form1: { + + }, + rules1: { + name: [ + { required: true, message: '璇疯緭鍏ュ鍚�' } + ] + }, + config1: { + labelWidth: 120, + formItems: [ + { + component: 'input', + label: '鍚嶇О', + name: 'name', + options: { + placeholder: '', + maxlength: 100, + } + }, + ] + }, + parentId: '' } }, created() { @@ -142,6 +208,9 @@ search() { this.$HTTP.post(`/api/blade-dnc/ftp-director/ftp-workstation-list`, this.params).then(res => { this.tableData = res.data + if (res?.data?.[0]) { + this.rowClick(res.data[0]) + } }) }, addFtp() { @@ -214,9 +283,108 @@ this.$HTTP.get(`/api/blade-dnc/ftp-director/del-director?id=${row.id}`).then(res => { this.search() }) - } + }, + rowClick(row) { + this.showTree = false + this.directoryId = row.id + this.$HTTP.get(`/api/blade-dnc/dnc-fixed-space/tree-root-id?workstationId=${row.workstationDTOS[0].id}`).then(res => { + this.rootNodeId = res.data.rootNodeId + this.directorName = res.data.name + this.workstationId = row.workstationDTOS[0].id + this.showTree = true + }) + }, + loadNode(node, resolve) { + console.log(node) + if (!this.rootNodeId) return + let nodeId = node.level === 0 ? this.rootNodeId : node.data.id + this.$HTTP.get(`/api/blade-dnc/dnc-fixed-space/tree-fix-space?nodeId=${nodeId}&workstationId=${this.workstationId}`).then(res => { + if (node.level === 0) { + this.showTree = res.data.length > 0 + // // this.$nextTick(() => { + // this.nodeClick(res.data[0]) + // // }) + } + resolve(res.data) + }) + }, + nodeClick(node) { + this.selectNode = node + }, + addDirect(node) { + this.form1 = {} + this.parentId = node?.data?.id || this.rootNodeId + this.showdireactor = true + }, + submit1(form) { + if (form.id) { + return this.$HTTP.post(`/api/blade-dnc/dnc-fixed-space/update-fix-space`, { directoryId: this.directoryId, name: form.name, id: form.id }).then(res => { + this.showdireactor = false + this.rowClick(this.tableData.find(v => v.id === this.directoryId)) + }) + } + this.$HTTP.post(`/api/blade-dnc/dnc-fixed-space/add-fix-space`, { directoryId: this.directoryId, name: form.name, parentId: this.parentId }).then(res => { + this.showdireactor = false + this.rowClick(this.tableData.find(v => v.id === this.directoryId)) + }) + }, + editDirect(node) { + this.form1 = { + id: node.data.id, + name: node.data.name + } + this.parentId = node?.data?.id || this.rootNodeId + this.showdireactor = true + }, + delDirect(node) { + console.log(node) + this.$HTTP.get(`/api/blade-dnc/dnc-fixed-space/del-fix-space?id=${node.data.id}`).then(res => { + this.rowClick(this.tableData.find(v => v.id === this.directoryId)) + }) + }, }, } </script> -<style lang="scss" scoped></style> \ No newline at end of file +<style lang="scss" scoped> +.directorName { + margin-top: 10px; + background-color: var(--el-color-primary); + color: #fff; + padding: 10px 30px; + display: flex; + justify-content: space-between; + + .hover { + // visibility: hidden; + display: flex; + + .el-icon { + margin: 0 4px; + cursor: pointer; + } + } +} + +.directorName:hover { + .hover { + visibility: visible; + } +} + +.custom-tree-node { + display: flex; + align-items: center; + + .el-icon { + margin: 0 10px; + visibility: hidden; + } +} + +.custom-tree-node:hover { + .el-icon { + visibility: visible; + } +} +</style> \ No newline at end of file -- Gitblit v1.9.3