From db06bf2b2956472ecbd745f861a7713bd76f3bec Mon Sep 17 00:00:00 2001 From: gaoshp <291585735@qq.com> Date: 星期二, 14 五月 2024 20:46:39 +0800 Subject: [PATCH] update --- src/views/console/tooling/Tray.vue | 198 ++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 176 insertions(+), 22 deletions(-) diff --git a/src/views/console/tooling/Tray.vue b/src/views/console/tooling/Tray.vue index f1766d7..0771200 100644 --- a/src/views/console/tooling/Tray.vue +++ b/src/views/console/tooling/Tray.vue @@ -1,7 +1,7 @@ <!-- * @Date: 2024-05-12 20:02:31 * @LastEditors: Sneed - * @LastEditTime: 2024-05-13 22:35:52 + * @LastEditTime: 2024-05-13 23:27:37 * @FilePath: /belleson-frontend/Users/mache/Documents/demo/cps-web/src/views/console/tooling/Tray.vue --> <template> @@ -14,15 +14,26 @@ disabled: 'isGroup' }" @node-click="nodeClick"> <template #default="{ node, data }"> - <span :class="data.isGroup ? 'active' : ''" class="custom-tree-node"> - <span>{{ - node.label || data.code }}</span> - </span> + <div :class="data.isGroup ? 'active' : ''" class="custom-tree-node"> + <span>{{ node.label || data.code }}</span> + <el-icon class="icon" @click.stop="renameArea(data)" v-if="data.id > 200" + style="margin-left: auto;margin-right: 4px;"> + <ElIconEditPen /> + </el-icon> + <el-popconfirm title="纭畾鍒犻櫎鍚楋紵" @confirm="delArea(data)"> + <template #reference> + <el-icon class="icon" v-if="data.id > 200"> + <ElIconDelete /> + </el-icon> + </template> + </el-popconfirm> + + </div> </template> </el-tree> </el-main> <el-footer> - <el-button>娣诲姞鎵樼洏缁�</el-button> + <el-button type="primary" @click="addTrayGroup">娣诲姞鎵樼洏缁�</el-button> </el-footer> </el-container> </el-aside> @@ -60,7 +71,7 @@ </el-table-column> </scTable> </el-col> - <el-col :span="14"> + <el-col :span="14" v-loading="showLoading"> <h2>鎵樼洏淇℃伅</h2> <div class="tuopan-info"> <el-row> @@ -97,22 +108,21 @@ </el-row> </div> - <h2 style="margin-top: 14px;">鎵樼洏闈㈠垪琛�</h2> + <h2 style="margin:14px 0;">鎵樼洏闈㈠垪琛�</h2> <div> - <el-button type="primary">鏂板缓鎵樼洏闈�</el-button> + <el-button type="primary" size="small" @click="addTray">鏂板缓鎵樼洏闈�</el-button> </div> - <el-table :data="infoList" style="width: 100%"> + <el-table :data="infoList" style="width: 100%" stripe> <el-table-column label="鎵樼洏闈㈢紪鍙�" prop="code"></el-table-column> <el-table-column label="鎵樼洏闈㈠悕绉�" prop="name"></el-table-column> - <el-table-column label="鍏宠仈澶瑰叿" prop="type"></el-table-column> - <el-table-column label="渚垮疁绋嬪簭缂栧彿" prop="type"></el-table-column> - <el-table-column label="渚垮疁绋嬪簭缂栧彿" prop="type"></el-table-column> + <el-table-column label="鍏宠仈澶瑰叿" prop="fixtureNum"></el-table-column> + <el-table-column label="鍋忕Щ绋嬪簭缂栧彿" prop="programCode"></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_edit1(scope.row, scope.$index)">缂栬緫</el-button> - <el-popconfirm title="纭畾鍒犻櫎鍚楋紵" @confirm="table_del1([scope.row], '0')"> + <el-popconfirm title="纭畾鍒犻櫎鍚楋紵" @confirm="table_del1(scope.row, '0')"> <template #reference> <el-button text type="primary" size="small">鍒犻櫎</el-button> </template> @@ -125,7 +135,44 @@ </el-row> </el-main> </el-container> - <!-- </el-main> --> + <el-dialog v-model="visible" title="鎵樼洏闈�" width="500"> + <el-form :model="form" :rules="rules" ref="dialogForm" label-width="120px" label-position="center"> + <el-form-item label="鎵樼洏闈㈢紪鍙�" prop="code"> + <el-input :disabled="form.id" v-model="form.code" /> + </el-form-item> + <el-form-item label="鎵樼洏闈㈠悕绉�" prop="name"> + <el-input v-model="form.name" /> + </el-form-item> + <el-form-item label="鍋忕Щ绋嬪簭缂栧彿" prop="programCode"> + <el-input :disabled="form.id" v-model="form.programCode" /> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="saveTray"> + 纭畾 + </el-button> + </div> + </template> + </el-dialog> + <el-dialog v-model="visibleGroup" title="鎵樼洏缁�" width="500"> + <el-form :model="formGroup" :rules="rulesGroup" ref="dialogForm" label-width="120px" + label-position="center"> + <el-form-item v-if="!formGroup.id" label="涓婄骇鐩綍"> + <el-input disabled v-model="selectNode.name" /> + </el-form-item> + <el-form-item label="鎵樼洏缁勫悕绉�"> + <el-input v-model="formGroup.name" /> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="saveGroup"> + 纭畾 + </el-button> + </div> + </template> + </el-dialog> </el-container> </template> @@ -138,6 +185,13 @@ data() { return { treeData: [], + visibleGroup: false, + formGroup: {}, + rulesGroup: { + name: [ + { required: true, message: '蹇呭~' } + ], + }, params: { keyword: '' }, @@ -155,16 +209,29 @@ }) } }, + showLoading: false, + visible: false, + form: {}, + rules: { + code: [ + { required: true, message: '蹇呭~' } + ], + name: [ + { required: true, message: '蹇呭~' } + ], + programCode: [ + { required: true, message: '蹇呭~' } + ], + }, } }, watch: { 'selectNode.id': { handler(val) { + this.info = {} + this.infoList = [] if (val) { this.queryInfo() - } else { - this.info = {} - this.infoList = [] } } } @@ -173,6 +240,46 @@ this.init() }, methods: { + addTrayGroup() { + console.log(this.selectNode) + this.formGroup = {} + this.visibleGroup = true + }, + renameArea(data) { + this.formGroup = { + ...data + } + this.visibleGroup = true + }, + delArea(data) { + this.$HTTP.delete(`/api/blade-cps/tray/remove-tree?id=${data.id}`).then(res => { + this.init() + }) + }, + saveGroup() { + if (!this.formGroup.id) { + this.$HTTP.post(`/api/blade-cps/group`, { + groupCategory: 1, + groupType: "group_tray", + parentId: this.selectNode.id, + ...this.formGroup + }).then(res => { + this.visibleGroup = false + this.init() + }) + } else { + this.$HTTP.put(`/api/blade-cps/group`, { + groupCategory: 1, + groupType: "group_tray", + parentId: this.selectNode.id, + ...this.formGroup + }).then(res => { + this.visibleGroup = false + this.init() + }) + } + + }, search() { this.$refs.table.reload(this.params) }, @@ -196,23 +303,55 @@ // }) }, dataChange(res, data) { - this.rowClick(data?.[0]) + data?.[0] && this.rowClick(data?.[0]) }, rowClick(row) { console.log(row.id) this.queryChildInfo(row.id) }, - queryChildInfo(id) { + async queryChildInfo(id) { if (!id) return - this.$HTTP.get(`/api/blade-cps/tray/${id}`).then(res => { + this.showLoading = true + await this.$HTTP.get(`/api/blade-cps/tray/${id}`).then(res => { this.info = res.data }) - this.$HTTP.get(`/api/blade-cps/tray-surface/list/${id}`).then(res => { + await this.$HTTP.get(`/api/blade-cps/tray-surface/list/${id}`).then(res => { this.infoList = res.data }) + this.showLoading = false }, nodeClick(node) { this.selectNode = node + }, + addTray() { + this.form = { + trayId: this.info.id + } + this.visible = true + }, + table_edit1(row) { + this.form = { + ...row + } + this.visible = true + }, + table_del1(row) { + this.$HTTP.delete(`/api/blade-cps/tray-surface/remove-face/${this.info.id}?faceId=${row.id}`).then(res => { + this.$message.success('鎿嶄綔鎴愬姛') + this.queryChildInfo(this.info.id) + }) + }, + saveTray() { + if (this.form.id) { + return this.$HTTP.put(`/api/blade-cps/tray-surface/update`, this.form).then(res => { + this.visible = false + this.queryChildInfo(this.info.id) + }) + } + this.$HTTP.post(`/api/blade-cps/tray-surface/save`, this.form).then(res => { + this.visible = false + this.queryChildInfo(this.info.id) + }) } } } @@ -223,6 +362,21 @@ color: #ccc; } +.custom-tree-node { + width: 100%; + display: flex; + + .icon { + visibility: hidden; + } +} + +.custom-tree-node:hover { + .icon { + visibility: visible; + } +} + .empty { justify-content: center; } -- Gitblit v1.9.3