648540858
3 years ago
20 changed files with 606 additions and 350 deletions
@ -0,0 +1,161 @@ |
|||||
|
<template> |
||||
|
<div id="getCatalog" > |
||||
|
|
||||
|
<el-dialog title="选择要添加到的节点" v-if="showDialog" width="50%" :append-to-body="true" :close-on-click-modal="false" :visible.sync="showDialog" :destroy-on-close="true" @close="close()" center> |
||||
|
<div> |
||||
|
<el-tree class="el-scrollbar" |
||||
|
ref="tree" |
||||
|
id="catalogTree" |
||||
|
empty-text="未知节点" |
||||
|
node-key="id" |
||||
|
default-expand-all |
||||
|
:highlight-current="false" |
||||
|
:expand-on-click-node="false" |
||||
|
:props="props" |
||||
|
:load="loadNode" |
||||
|
@node-click="nodeClickHandler" |
||||
|
lazy> |
||||
|
<span class="custom-tree-node" slot-scope="{ node, data }" style="width: 100%"> |
||||
|
<el-radio v-if="node.data.type === 0 || node.data.type === -1" style="margin-right: 0" v-model="chooseId" :label="node.data.id">{{''}}</el-radio> |
||||
|
<span v-if="node.data.type === -1 && node.level === 1" style="font-size: 12px" class="iconfont icon-ziyuan"></span> |
||||
|
<span v-if="node.data.type === 0 && node.level === 1" class="el-icon-s-home"></span> |
||||
|
<span v-if="node.data.type === 0 && node.level > 1" class="el-icon-folder-opened"></span> |
||||
|
<span v-if="node.data.type === 1" class="iconfont icon-shexiangtou"></span> |
||||
|
<span v-if="node.data.type === 2" class="iconfont icon-zhibo"></span> |
||||
|
<span style=" padding-left: 1px">{{ node.label }}</span> |
||||
|
<span> |
||||
|
<i style="margin-left: 5rem; color: #9d9d9d; padding-right: 20px" v-if="node.data.id === defaultCatalogIdSign">默认</i> |
||||
|
</span> |
||||
|
</span> |
||||
|
</el-tree> |
||||
|
</div> |
||||
|
<div style="float: right; height: 13rem"> |
||||
|
<el-button type="primary" size="mini" @click="submit()" >确认</el-button> |
||||
|
<el-button @click="close()" size="mini">取消</el-button> |
||||
|
</div> |
||||
|
</el-dialog> |
||||
|
|
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
|
||||
|
<script> |
||||
|
|
||||
|
export default { |
||||
|
name: 'getCatalog', |
||||
|
beforeCreate(){ |
||||
|
|
||||
|
}, |
||||
|
created() { |
||||
|
this.chooseId = this.defaultCatalogId; |
||||
|
this.defaultCatalogIdSign = this.defaultCatalogId; |
||||
|
this.initData(); |
||||
|
setTimeout(()=>{ |
||||
|
if (this.catalogIdChange)this.catalogIdChange(this.defaultCatalogId); |
||||
|
}, 100) |
||||
|
|
||||
|
}, |
||||
|
props: ['platformId'], |
||||
|
data() { |
||||
|
return { |
||||
|
props: { |
||||
|
label: 'name', |
||||
|
children: 'children', |
||||
|
isLeaf: 'leaf' |
||||
|
}, |
||||
|
platformName: null, |
||||
|
defaultCatalogId: null, |
||||
|
catalogIdResult: null, |
||||
|
showDialog: false, |
||||
|
defaultCatalogIdSign: null, |
||||
|
chooseNode: null, |
||||
|
chooseId: "", |
||||
|
catalogTree: null, |
||||
|
contextmenuShow: false, |
||||
|
|
||||
|
}; |
||||
|
}, |
||||
|
methods: { |
||||
|
openDialog(catalogIdResult) { |
||||
|
this.showDialog = true |
||||
|
this.catalogIdResult = catalogIdResult |
||||
|
}, |
||||
|
initData: function () { |
||||
|
this.getCatalog(); |
||||
|
}, |
||||
|
|
||||
|
getCatalog: function(parentId, callback) { |
||||
|
let that = this; |
||||
|
this.$axios({ |
||||
|
method:"get", |
||||
|
url:`/api/platform/catalog`, |
||||
|
params: { |
||||
|
platformId: that.platformId, |
||||
|
parentId: parentId |
||||
|
} |
||||
|
}) |
||||
|
.then((res)=> { |
||||
|
if (res.data.code === 0) { |
||||
|
if (typeof(callback) === 'function') { |
||||
|
callback(res.data.data) |
||||
|
} |
||||
|
} |
||||
|
}) |
||||
|
.catch(function (error) { |
||||
|
console.log(error); |
||||
|
}); |
||||
|
|
||||
|
}, |
||||
|
loadNode: function(node, resolve){ |
||||
|
|
||||
|
|
||||
|
|
||||
|
if (node.level === 0) { |
||||
|
this.$axios({ |
||||
|
method:"get", |
||||
|
url:`/api/platform/info/` + this.platformId, |
||||
|
}) |
||||
|
.then((res)=> { |
||||
|
if (res.data.code === 0) { |
||||
|
this.platformName = res.data.data.name; |
||||
|
this.defaultCatalogId = res.data.data.catalogId; |
||||
|
resolve([ |
||||
|
{ |
||||
|
name: "未分配", |
||||
|
id: null, |
||||
|
type: -1 |
||||
|
},{ |
||||
|
name: this.platformName, |
||||
|
id: this.platformId, |
||||
|
type: 0 |
||||
|
} |
||||
|
]); |
||||
|
} |
||||
|
}) |
||||
|
.catch(function (error) { |
||||
|
console.log(error); |
||||
|
}); |
||||
|
} |
||||
|
if (node.level >= 1){ |
||||
|
this.getCatalog(node.data.id, resolve) |
||||
|
} |
||||
|
}, |
||||
|
nodeClickHandler: function (data, node, tree){ |
||||
|
this.chooseId = data.id; |
||||
|
}, |
||||
|
close: function() { |
||||
|
this.showDialog = false; |
||||
|
}, |
||||
|
submit: function() { |
||||
|
if (this.catalogIdResult)this.catalogIdResult(this.chooseId) |
||||
|
this.showDialog = false; |
||||
|
}, |
||||
|
} |
||||
|
}; |
||||
|
</script> |
||||
|
|
||||
|
<style> |
||||
|
#catalogTree{ |
||||
|
display: inline-block; |
||||
|
} |
||||
|
</style> |
Binary file not shown.
After Width: | Height: | Size: 9.7 KiB |
Loading…
Reference in new issue