| | |
| | | @row-update="rowUpdate" |
| | | @row-click="rowClick" |
| | | > |
| | | <template #menu-left> |
| | | <el-button :size="size" type="primary" @click="showAdd()">新增节点</el-button> |
| | | </template> |
| | | <template #name="{ row }"> |
| | | <span>{{row.name}}</span> |
| | | <el-button :size="size" text icon="el-icon-setting" type="primary" placeholder="修改" @click="showEdit(row)" title="修改"></el-button> |
| | | <el-button :size="size" text v-if="row.nodeType != 70" icon="el-icon-setting" type="primary" placeholder="修改" @click="showEdit(row)" title="修改"></el-button> |
| | | <el-button :size="size" text icon="el-icon-delete" type="primary" @click="showDel(row)" placeholder="删除" title="删除"></el-button> |
| | | <el-button :size="size" text v-if="row.nodeType < 60" icon="el-icon-document-add" type="primary" @click="showAdd(row)" placeholder="新增子级" title="新增子级"></el-button> |
| | | <el-button :size="size" text v-if="row.nodeType == 60" icon="el-icon-upload" type="primary" @click="showUpload(row)" placeholder="文件上传" title="文件上传"></el-button> |
| | |
| | | <el-button :size="size" text v-if="row.nodeType == 60 && !isSM" icon="el-icon-position" type="primary" @click="downsend(row)" placeholder="下发" title="下发"></el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <!-- 新增节点 --> |
| | | <el-dialog :title="modalTitle" append-to-body v-model="modalBox"> |
| | | <avue-form :option="modalOption" v-model="modalForm" @submit="modalSubmit" @reset-change="modalCancel"/> |
| | | </el-dialog> |
| | |
| | | <avue-form v-if="tabsType == 'tab1'" :option="tabsFormOption" v-model="tabsForm"></avue-form> |
| | | <span v-else-if="tabsType == 'tab2'">版本信息</span> |
| | | <template v-else-if="tabsType == 'tab3'"> |
| | | <div v-for="item in fileList" v-if="fileList.length > 0" class="fileListStyle"> |
| | | 文件内容 |
| | | <!-- <div v-for="item in fileList" v-if="fileList.length > 0" class="fileListStyle"> |
| | | <span>{{item.name}}</span> |
| | | <span class="delFile" @click="delFile(item)">X</span> |
| | | </div> |
| | | </div> --> |
| | | </template> |
| | | </basic-container> |
| | | </template> |
| | |
| | | |
| | | }, |
| | | uploadAfter() { |
| | | this.getFile(this.id); |
| | | |
| | | }, |
| | | upgrade(row) { //升级 |
| | | this.loading = true; |
| | |
| | | this.tabsForm.nodeTypeName = item.dictValue; |
| | | } |
| | | }) |
| | | if(this.tabsForm.nodeType < 60) { |
| | | if(this.tabsForm.nodeType < 70) { |
| | | this.tabsOption = this.tabsOption1; |
| | | }else { |
| | | this.tabsOption = this.tabsOption2; |
| | |
| | | this.uploadmodalForm = row; |
| | | this.uploadmodalBox = true; |
| | | }, |
| | | getFile(id) { |
| | | var obj = {nodeId: id} |
| | | getFile(id) { //查看文件内容 |
| | | this.loading = true; |
| | | axios({ |
| | | url: '/blade-mdm/program/ncfile/list-by-node', |
| | | url: '/blade-mdm/program/ncfile/content', |
| | | method: 'get', |
| | | params: obj, |
| | | params: {id}, |
| | | }).then( |
| | | resp => { |
| | | this.fileList = resp.data.data; |
| | | res => { |
| | | this.loading = true; |
| | | console.log(res.data,123) |
| | | } |
| | | ); |
| | | }, |
| | | uploadmodalSubmit(row,done) { |
| | | this.uploadmodalBox = false; |
| | | this.addLocalTreeNode(row.parentId); //重新加载下一级 |
| | | done(); |
| | | }, |
| | | rowDel(row, index, done) { |
| | |
| | | }) |
| | | }, |
| | | showAdd (row) { //新增子节点 |
| | | if(row.nodeType == 60) { |
| | | return; |
| | | if(!row) { |
| | | this.modalTitle = "新增节点"; |
| | | this.modalForm.nodeType = "10"; |
| | | this.modalForm.parentId = 0; |
| | | }else { |
| | | if(row.nodeType == 60) { |
| | | return; |
| | | } |
| | | this.modalTitle = "新增子节点"; |
| | | this.selectedColumn.nodeType = String(Number(row.nodeType) + 10); |
| | | this.selectedColumn.parentId = row.id; |
| | | this.selectedColumn.name = ""; |
| | | this.selectedColumn.id = ""; |
| | | this.modalForm = this.selectedColumn; |
| | | } |
| | | this.modalTitle = "新增子节点"; |
| | | this.selectedColumn.nodeType = String(Number(row.nodeType) + 10); |
| | | this.selectedColumn.parentId = row.id; |
| | | this.selectedColumn.name = ""; |
| | | this.selectedColumn.id = ""; |
| | | this.modalForm = this.selectedColumn; |
| | | this.modalBox = true; |
| | | }, |
| | | modalSubmit(row,done) { //新增子节点保存/修改 |
| | |
| | | this.updateLocalTreeNode(this.modalForm); |
| | | }else { |
| | | // 如果是新增操作,可能需要重新加载数据 |
| | | this.$refs.crud.refreshTable(); |
| | | //this.$refs.crud.refreshTable(); |
| | | //this.onLoad(); |
| | | //新增,更新本地数据 |
| | | this.addLocalTreeNode(row.parentId); |
| | | } |
| | | this.loading = false; |
| | | done(row); |
| | | } |
| | | ); |
| | | }, |
| | | updateLocalTreeNode(nodeData) { |
| | | addLocalTreeNode(parentId) { |
| | | this.loading = true; |
| | | var obj = {parentId: parentId} |
| | | axios({ |
| | | url: '/blade-mdm/program/node/lazy-list', |
| | | method: 'get', |
| | | params: obj, |
| | | }).then( |
| | | res => { |
| | | var children = res.data.data || []; |
| | | this.updateParentNodeChildren(parentId, children); |
| | | this.loading = false; |
| | | } |
| | | ); |
| | | }, |
| | | updateParentNodeChildren(parentId, newChildren) { //新增的方法 |
| | | const updateTree = (nodes) => { |
| | | for (let i = 0; i < nodes.length; i++) { |
| | | if (nodes[i].id === parentId) { |
| | | // 更新节点数据 |
| | | nodes[i].children = [...newChildren]; |
| | | this.data = [...this.data]; // 替换顶层引用 |
| | | return true; |
| | | } |
| | | if (Array.isArray(nodes[i].children) && nodes[i].children.length > 0) { |
| | | if (updateTree(nodes[i].children)) { |
| | | return true; |
| | | } |
| | | } |
| | | } |
| | | return false; |
| | | }; |
| | | updateTree(this.data); |
| | | // 强制刷新 |
| | | this.$nextTick(() => { |
| | | this.$refs.crud?.refreshTable(); |
| | | //this.$refs.crud.toggleRowExpansion('0', true); |
| | | console.log(this.data,222) |
| | | }); |
| | | }, |
| | | updateLocalTreeNode(nodeData) { //修改的方法 |
| | | const updateNode = (nodes) => { |
| | | for (let i = 0; i < nodes.length; i++) { |
| | | if (nodes[i].id === nodeData.id) { |
| | |
| | | } |
| | | } |
| | | ); |
| | | //查看内容 |
| | | // this.loading = true; |
| | | // var obj = {id: "1940982493963415554"} |
| | | // axios({ |
| | | // url: '/blade-mdm/program/ncfile/content', |
| | | // method: 'get', |
| | | // params: obj, |
| | | // }).then( |
| | | // res => { |
| | | |
| | | // } |
| | | // ); |
| | | } |
| | | }; |
| | | </script> |