| | |
| | | :expand-on-click-node="false" |
| | | :default-expanded-keys="expandData" |
| | | @node-click="handleNodeClick" |
| | | @node-contextmenu="openTreeMenu" |
| | | > |
| | | </el-tree> |
| | | <div |
| | | class="right_menu box_divm" |
| | | id="menu" |
| | | v-show="showRightMenu" |
| | | > |
| | | <ul> |
| | | <li @click="setMenuDataCopy">复制</li> |
| | | <li @click="setMenuDataPaste">粘贴</li> |
| | | </ul> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="cataLog_rightContent right subpage_Div"> |
| | |
| | | >{{ $t("common.preservation") }}</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <iframe |
| | | id="Iframe1" |
| | | src="" |
| | | style="display: none; border: 0; padding: 0; height: 0; width: 0" |
| | | ></iframe> |
| | | <div |
| | | class="loadBox" |
| | | v-if="loadDialogVisible" |
| | | > |
| | | <div style="widht:100%; margin:20px; color:white"> |
| | | <div style="margin-left:99%"> |
| | | <!-- <el-link |
| | | @click="setloadDialogVisible()" |
| | | style="color:white" |
| | | > X</el-link> --> |
| | | </div> |
| | | </div> |
| | | <div |
| | | v-loading="true" |
| | | element-loading-background="rgba(0, 0, 0, 0.0) " |
| | | element-loading-text="目录上传中,请等待..." |
| | | style="margin: 0px 20px;widht:100%;height:calc(100% - 80px); " |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | |
| | | ], |
| | | currentData: null, |
| | | showRightMenu: false, |
| | | checksData: null, |
| | | checksCopyData: null, |
| | | loadDialogVisible: false |
| | | }; |
| | | }, |
| | | methods: { |
| | | // 复制 |
| | | setMenuDataCopy() { |
| | | this.checksCopyData = this.checksData; |
| | | }, |
| | | //粘贴 |
| | | setMenuDataPaste() { |
| | | if (!this.checksCopyData) { |
| | | return this.$message('未选中要复制的节点'); |
| | | } |
| | | var val = this.$refs.tree.getNode(this.checksCopyData).data; |
| | | |
| | | var level = this.$refs.tree.getNode(this.checksData).data.level + 1; |
| | | this.setInsertCopyData([val], this.checksData, level); |
| | | }, |
| | | setInsertCopyData(val, pid, level) { |
| | | for (var i in val) { |
| | | var data = val[i]; |
| | | var pchildNodes = []; |
| | | |
| | | if (this.$refs.tree.getNode(pid) && this.$refs.tree.getNode(pid).childNodes) { |
| | | pchildNodes = this.$refs.tree.getNode(pid).childNodes |
| | | } |
| | | var orderNum = this.getMaxOrderNum(pchildNodes); |
| | | var obj = { |
| | | bak: data.bak, |
| | | level: level, |
| | | orderNum: orderNum + 1, |
| | | pid: pid, |
| | | checks: data.checks, |
| | | name: data.name, |
| | | descr: data.descr, |
| | | exts: data.exts, |
| | | } |
| | | insertDir(obj).then((res) => { |
| | | if (res.code == 200) { |
| | | this.getDirTree(); |
| | | if (data.children && data.children.length > 0) { |
| | | |
| | | this.setInsertCopyData(data.children, res.result, level + 1) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | handleNodeClick(data, node) { |
| | | this.showRightMenu = false; |
| | | document.removeEventListener('click', this.closeRightMenu) |
| | | this.layerFormInline(data) |
| | | |
| | | }, |
| | | //右键菜单 |
| | | openTreeMenu(event, data, node, obj) { |
| | | this.showRightMenu = true; |
| | | let menu = document.getElementById('menu') |
| | | menu.style.left = event.clientX + 20 + 'px' |
| | | menu.style.top = event.clientY + 'px' |
| | | document.addEventListener('click', this.closeRightMenu) |
| | | this.checksData = data.id; |
| | | console.log(this.checksData) |
| | | }, |
| | | closeRightMenu() { |
| | | this.showRightMenu = false; |
| | | document.removeEventListener('click', this.closeRightMenu) |
| | | |
| | | }, |
| | | setTemplateDownload() { |
| | | var url = window.location.href; |
| | | var testurl = window.location.origin + "/"; |
| | |
| | | } |
| | | |
| | | this.tableData = arr; |
| | | |
| | | this.setInsertData(this.tableData); |
| | | |
| | | |
| | | }, |
| | | getNameAndPname(res, result, flag) { |
| | | var chLevel = null; |
| | |
| | | } |
| | | }, |
| | | setInsertData(res) { |
| | | |
| | | var list = this.excelData(res); |
| | | |
| | | if (list.length != 0) { |
| | | if (list[0].pname != null) { |
| | | return this.$message.error("上传数据错误,第一条数据不为空"); |
| | | } |
| | | |
| | | this.getAllNodeId(res); |
| | | } |
| | | }, |
| | | async getAllNodeId(res) { |
| | | this.loadDialogVisible = true; |
| | | for (let i = 0; i < res.length; i++) { |
| | | var val = res[i]; |
| | | |
| | | if (val.pname == null) { |
| | | val.orderNum = this.dirList[this.dirList.length - 1].orderNum + 1; |
| | | val.pid = 0; |
| | | } else { |
| | | |
| | | this.tableData.filter((child) => { |
| | | if (child.tid == val.sid) { |
| | | val.pid = child.id; |
| | |
| | | |
| | | const data = await insertDir(val); |
| | | if (data.code != 200) { |
| | | this.$message.error("目录上传失败" + data.msg); |
| | | this.loadDialogVisible = false; |
| | | break; |
| | | } |
| | | |
| | | this.tableData.filter((child) => { |
| | |
| | | } |
| | | }); |
| | | this.itemaName = data.result; |
| | | this.getDirTree(); |
| | | // this.getDirTree(); |
| | | |
| | | // if (res[i].children) { |
| | | // this.getAllNodeId(res[i].children); |
| | | // } |
| | | } |
| | | this.getDirTree(); |
| | | this.loadDialogVisible = false; |
| | | |
| | | }, |
| | | excelData(source) { |
| | | let cloneData = JSON.parse(JSON.stringify(source)); // 对源数据深度克隆 |
| | |
| | | var val = this.$refs.tree.getNode(data.id).data; |
| | | this.itemdetail = val; |
| | | this.currentData = JSON.stringify(data) |
| | | debugger |
| | | |
| | | var checks = []; |
| | | if (val.checks) { |
| | | if (val.checks.indexOf(',') > -1) { |
| | |
| | | } |
| | | }, |
| | | |
| | | handleNodeClick(data, node) { |
| | | this.layerFormInline(data) |
| | | // console.log(data); |
| | | |
| | | |
| | | }, |
| | | async updCata(formName) { |
| | | this.fullscreenLoading = true; |
| | | var val = JSON.parse(JSON.stringify(this.itemdetail)); |
| | |
| | | // var val = this.itemdetail |
| | | // var value = this.itemdetail.checks.toString() |
| | | // val.checks = value; |
| | | // debugger |
| | | // |
| | | // let res = JSON.parse(JSON.stringify(this.itemdetail)); |
| | | // this.itemdetail = res; |
| | | // |
| | |
| | | } |
| | | } |
| | | } |
| | | .right_menu { |
| | | position: fixed; |
| | | display: block; |
| | | z-index: 10000; |
| | | padding: 10px; |
| | | border: 1px solid #ebeef5; |
| | | border-radius: 4px; |
| | | box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1); |
| | | ul { |
| | | width: 100%; |
| | | height: 100%; |
| | | list-style: none; |
| | | margin: 0; |
| | | padding: 0; |
| | | border-radius: 2%; |
| | | li { |
| | | margin: 0 0 1px 0; |
| | | color: rgb(77, 77, 73); |
| | | text-align: center; |
| | | font-size: 14px; |
| | | padding: 4%; |
| | | width: 100%; |
| | | height: 9.7%; |
| | | float: left; |
| | | } |
| | | li:hover { |
| | | color: #409eff !important; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .loadBox { |
| | | z-index: 2002; |
| | | background: rgba(0, 0, 0, 0.2); |
| | | width: 100%; |
| | | height: 100%; |
| | | top: 0; |
| | | left: 0; |
| | | position: absolute; |
| | | .el-loading-mask { |
| | | background: transparent !important; |
| | | } |
| | | } |
| | | .btnBox { |
| | | position: absolute; |