|
|
export default {
|
|
|
name: 'cmdbdatasync',
|
|
|
template: '',
|
|
|
components: {
|
|
|
'cmdbdatasyncEdit': Vue.defineAsyncComponent(
|
|
|
() => myImport('views/cmdbdatasync/cmdbdatasyncEdit/index')
|
|
|
)
|
|
|
},
|
|
|
props: [],
|
|
|
setup(props, {attrs, slots, emit}) {
|
|
|
const {proxy} = Vue.getCurrentInstance();
|
|
|
let height = Vue.ref(window.innerHeight);
|
|
|
let treeData=Vue.ref([
|
|
|
{
|
|
|
label: '计算机设备计算机设备计算机设备计算机设备计算机设备',
|
|
|
id:1,
|
|
|
children: [
|
|
|
{
|
|
|
label: '小型机分区',
|
|
|
id:"1-1",
|
|
|
},
|
|
|
{
|
|
|
label: 'PC服务器',
|
|
|
id:'1-2',
|
|
|
children:[]
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
label: '虚拟化',
|
|
|
id:2,
|
|
|
children: [
|
|
|
{
|
|
|
label: 'VMWARE',
|
|
|
id:'2-1',
|
|
|
children: [
|
|
|
{
|
|
|
label: 'vm资源池',
|
|
|
id:"2-1-1",
|
|
|
children: []
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
label: '虚拟机',
|
|
|
id:"2-2",
|
|
|
},
|
|
|
],
|
|
|
},
|
|
|
{
|
|
|
label: '存储设备',
|
|
|
id:'3',
|
|
|
children: [
|
|
|
{
|
|
|
label: '共享存储',
|
|
|
id:'3-1',
|
|
|
},
|
|
|
|
|
|
],
|
|
|
}]) // 所有的树结点
|
|
|
let handleNodeClick=(data,node)=>{
|
|
|
//点击树节点,根据某个字段获取列表 todo
|
|
|
getDataList();
|
|
|
}
|
|
|
|
|
|
let search = Vue.ref({
|
|
|
keyword: '',
|
|
|
pageNum: 1,
|
|
|
pageSize: 20,
|
|
|
});
|
|
|
//表格字段
|
|
|
let tableData = Vue.ref({
|
|
|
count:0,
|
|
|
dataList: [{
|
|
|
resName:'资源一'
|
|
|
},{
|
|
|
resName:'资源34'
|
|
|
}],
|
|
|
columns: [
|
|
|
{
|
|
|
prop: 'resName',
|
|
|
label: '资源名称',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '250'
|
|
|
},
|
|
|
{
|
|
|
prop: 'resTypeName',
|
|
|
label: '资源类型',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
}, {
|
|
|
prop: 'host',
|
|
|
label: 'IP地址',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
}, {
|
|
|
prop: 'type',
|
|
|
label: '日志来源',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
},
|
|
|
{
|
|
|
prop: 'program',
|
|
|
label: '日志类型',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
width: '200'
|
|
|
},
|
|
|
{
|
|
|
prop: 'message',
|
|
|
label: '日志内容',
|
|
|
sortable: true,
|
|
|
align: 'center',
|
|
|
},
|
|
|
]
|
|
|
})
|
|
|
let dialog = Vue.ref({
|
|
|
title : "编辑",
|
|
|
show:false,
|
|
|
tableData : {}
|
|
|
});
|
|
|
let loaddata = ({page, limit}) => {
|
|
|
search.value.pageNum = page;
|
|
|
search.value.pageSize = limit;
|
|
|
}
|
|
|
let hideDialog = (flg) => {
|
|
|
dialog.value.show = flg;
|
|
|
}
|
|
|
//全选事件
|
|
|
let selectionData=Vue.ref([]);//选择的数据
|
|
|
let selectionChange= (val) =>{
|
|
|
selectionData.value=val;
|
|
|
}
|
|
|
// 处理弹框
|
|
|
let handle = (row) =>{
|
|
|
hideDialog(true);
|
|
|
dialog.value.tableData.dataList= row;
|
|
|
dialog.value.tableData.columns=tableData.value.columns;
|
|
|
}
|
|
|
//编辑
|
|
|
let handleEdit = (flag,row) =>{
|
|
|
if(flag==1){
|
|
|
handle([row]);
|
|
|
}else{
|
|
|
if(selectionData.value.length>0){
|
|
|
handle(selectionData.value);
|
|
|
}else{
|
|
|
proxy.$global.showMsg('请选择数据','warning')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//同步 todo
|
|
|
let handleRefresh = (flag,row) =>{
|
|
|
if(flag==1){
|
|
|
//单个同步 row-->对象
|
|
|
}else{
|
|
|
//多选同步 selectionData.value-->数组
|
|
|
if(selectionData.value.length>0){
|
|
|
//...
|
|
|
}else{
|
|
|
proxy.$global.showMsg('请选择数据','warning')
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
//编辑返回数据
|
|
|
let callbackedit=(obj)=>{
|
|
|
console.log("***",obj.editTbaleData,obj.visibility)
|
|
|
hideDialog(obj.visibility)
|
|
|
|
|
|
//obj.editTbaleData编辑后的数据,todo
|
|
|
// getDataList();//获取列表数据
|
|
|
}
|
|
|
//查看资源详情
|
|
|
let goResDetail=(resId,resName,resType)=>{
|
|
|
proxy.$global.openDetail(resId, resType, proxy);
|
|
|
|
|
|
}
|
|
|
//获取资源树数据 todo
|
|
|
let getResData=()=>{
|
|
|
proxy.$http.post(`/api-web/`, {}, function (res) {
|
|
|
if (res && res.data) {
|
|
|
treeData.value = res.data;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
// 获取列表 todo
|
|
|
let getDataList = () => {
|
|
|
let params={
|
|
|
pageNum: search.value.pageNum,
|
|
|
pageSize: search.value.pageSize,
|
|
|
keyword:search.value.keyword
|
|
|
}
|
|
|
proxy.$http.post(`/api-web/`, params, function (res) {
|
|
|
if (res && res.object) {
|
|
|
tableData.value.dataList = res.object;
|
|
|
tableData.value.count = parseInt(res.object.total);
|
|
|
} else {
|
|
|
tableData.value.dataList = [];
|
|
|
tableData.value.count = 0;
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 挂载完
|
|
|
Vue.onMounted(() => {
|
|
|
// getDataList();//获取列表数据
|
|
|
// getResData();//获取资源树数据
|
|
|
})
|
|
|
|
|
|
|
|
|
return {
|
|
|
treeData,
|
|
|
handleNodeClick,
|
|
|
getResData,
|
|
|
height,
|
|
|
search,
|
|
|
dialog,
|
|
|
hideDialog,
|
|
|
selectionChange,
|
|
|
selectionData,
|
|
|
handle,
|
|
|
loaddata,
|
|
|
tableData,
|
|
|
getDataList,
|
|
|
handleEdit,
|
|
|
handleRefresh,
|
|
|
callbackedit,
|
|
|
goResDetail,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|