Browse Source

还未接收到数据

preview
tianq 2 years ago
parent
commit
cbf6173bc4
  1. 277
      epmet-oper-web/src/views/modules/customer/customize/menuDataCustomer.vue

277
epmet-oper-web/src/views/modules/customer/customize/menuDataCustomer.vue

@ -17,7 +17,19 @@
<el-button type="primary" @click="open('')">开启</el-button>
<el-button type="primary" @click="close('')">关闭</el-button>
</div>
<el-table v-loading="dataListLoading" :data="dataList" row-key="id" border style="width: 100%;" ref="form" @selection-change="handleSelectionChange">
<!-- @selection-change="handleSelectionChange" -->
<el-table
v-loading="dataListLoading"
:data="dataList"
row-key="id"
:row-class-name="rowClassNameFun"
@select="selectFun"
@select-all="selectAllFun"
:header-row-class-name="headerRowClassName"
border
style="width: 100%;"
ref="form"
>
<el-table-column type="selection" fixed="left" align="center" width="50" />
<el-table-column label="序号" fixed="left" type="index" align="center" width="50" />
<el-table-column prop="name" :label="$t('menu.name')" header-align="center" min-width="150"></el-table-column>
@ -84,7 +96,178 @@ export default {
AddOrUpdate
},
created() {},
mounted() {},
methods: {
initData(customerId, customerName) {
this.customerId = customerId;
this.customerName = customerName;
// if (this.mixinViewModuleOptions.createdIsNeed) {
// console.log(this.customerId+"22222");
this.query();
console.log(this.dataList);
this.initData2(this.dataList);
},
initData2(data) {
data.forEach(item => {
item.isSelect = false; //
if (item.children && item.children.length) {
this.initData2(item.children);
}
});
},
getData(data) {
console.log("getData",data)
data.forEach(item => {
console.log(item.name,item.isSelect)
if (item.isSelect) {
this.multipleSelection.push(item.id);
}
if (item.children) {
this.getData(item.children);
}
});
},
selectFun(selection, row) {
this.setRowIsSelect(row);
},
checkIsAllSelect() {
this.oneProductIsSelect = [];
this.dataList.forEach(item => {
this.oneProductIsSelect.push(item.isSelect);
});
//.true
let isAllSelect = this.oneProductIsSelect.every(selectStatusItem => {
return true == selectStatusItem;
});
return isAllSelect;
},
selectAllFun(selection) {
let isAllSelect = this.checkIsAllSelect();
this.dataList.forEach(item => {
item.isSelect = isAllSelect;
this.$refs.form.toggleRowSelection(item, !isAllSelect);
this.selectFun(selection, item);
});
},
rowClassNameFun({ row }) {
if (row.isSelect === '') {
return 'indeterminate';
}
},
headerRowClassName({ row }) {
let oneProductIsSelect = [];
this.dataList.forEach(item => {
oneProductIsSelect.push(item.isSelect);
});
if (oneProductIsSelect.includes('')) {
return 'indeterminate';
}
return '';
},
setRowIsSelect(row) {
//false
if (row.isSelect === '') {
row.isSelect = false;
this.$refs.form.toggleRowSelection(row, true);
}
row.isSelect = !row.isSelect;
let that = this;
function selectAllChildrens(data) {
data.forEach(item => {
item.isSelect = row.isSelect;
that.$refs.form.toggleRowSelection(item, row.isSelect);
if (item.children && item.children.length) {
selectAllChildrens(item.children);
}
});
}
function getSelectStatus(selectStatuaArr, data) {
data.forEach(childrenItem => {
selectStatuaArr.push(childrenItem.isSelect);
if (childrenItem.children && childrenItem.children.length) {
getSelectStatus(selectStatuaArr, childrenItem.children);
}
});
return selectStatuaArr;
}
function getLevelStatus(row) {
//parantId =0 1
//parantId !=0 3
if (row.pid == '0') {
if (row.children && row.children.length) {
return 1;
} else {
return 4;
}
} else {
if (!row.children || !row.children.length) {
return 3;
} else {
return 2;
}
}
}
let result = {};
//
function getExplicitNode(data, parentId) {
data.forEach(item => {
if (item.id == parentId) {
result = item;
}
if (item.children && item.children.length) {
getExplicitNode(item.children, parentId);
}
});
return result;
}
function operateLastLeve(row) {
// 1 2
let selectStatuaArr = [];
let item = getExplicitNode(that.dataList, row.pid);
selectStatuaArr = getSelectStatus(selectStatuaArr, item.children);
if (
selectStatuaArr.every(selectItem => {
return true == selectItem;
})
) {
item.isSelect = true;
that.$refs.form.toggleRowSelection(item, true);
} else if (
selectStatuaArr.every(selectItem => {
return false == selectItem;
})
) {
item.isSelect = false;
that.$refs.form.toggleRowSelection(item, false);
} else {
item.isSelect = '';
}
//
if (item.pid != '0') {
operateLastLeve(item);
}
}
//
//1 2 3
let levelSataus = getLevelStatus(row);
if (levelSataus == 1) {
selectAllChildrens(row.children);
} else if (levelSataus == 2) {
selectAllChildrens(row.children);
operateLastLeve(row);
} else if (levelSataus == 3) {
operateLastLeve(row);
}
},
search() {
if (this.menuName != '') {
let saveList = [];
@ -118,6 +301,9 @@ export default {
open(id) {
let menuIds = [];
this.multipleSelection = [];
this.getData(this.dataList);
if (id != '') {
menuIds = [id];
} else {
@ -174,6 +360,16 @@ export default {
this.query();
},
query() {
function deleteChildren(arr) {
arr.forEach(item => {
if (item.children.length > 0) {
deleteChildren(item.children);
} else {
delete item.children;
}
});
return arr;
}
this.dataListLoading = true;
this.$http
.post('/gov/access/menu/customerMenuList', {
@ -187,29 +383,34 @@ export default {
this.total = 0;
return this.$message.error(res.msg);
}
this.dataList = res.data;
let data = res.data;
console.log(data);
this.dataList = deleteChildren(data);
console.log(this.dataList);
})
.catch(() => {
this.dataListLoading = false;
});
},
initData(customerId, customerName) {
this.customerId = customerId;
this.customerName = customerName;
// if (this.mixinViewModuleOptions.createdIsNeed) {
// console.log(this.customerId+"22222");
this.query();
// }
},
// initData(customerId, customerName) {
// this.customerId = customerId;
// this.customerName = customerName;
// // if (this.mixinViewModuleOptions.createdIsNeed) {
// // console.log(this.customerId+"22222");
// this.query();
// // }
// },
handleSelectionChange(val) {
this.multipleSelection = [];
val.forEach(element => {
this.multipleSelection.push(element.id);
});
console.log(this.multipleSelection);
},
// handleSelectionChange(val) {
// this.multipleSelection = [];
// val.forEach(element => {
// this.multipleSelection.push(element.id);
// });
// console.log(this.multipleSelection);
// },
//
diaCancel() {
this.$emit('cancleBack');
@ -227,4 +428,46 @@ export default {
line-height: 50px;
margin-bottom: 20px;
}
.indeterminate .el-checkbox__input .el-checkbox__inner {
background-color: #409eff !important;
border-color: #409eff !important;
color: #fff !important;
}
.indeterminate .el-checkbox__input.is-checked .el-checkbox__inner::after {
transform: scale(0.5);
}
.indeterminate .el-checkbox__input .el-checkbox__inner {
background-color: #f2f6fc;
border-color: #dcdfe6;
}
.indeterminate .el-checkbox__input .el-checkbox__inner::after {
border-color: #c0c4cc !important;
background-color: #c0c4cc;
}
.form-show th .el-checkbox__inner {
display: none !important;
}
.indeterminate .el-checkbox__input .el-checkbox__inner::after {
content: '';
position: absolute;
display: block;
background-color: #fff;
height: 2px;
transform: scale(0.5);
left: 0;
right: 0;
top: 5px;
width: auto !important;
}
.form-show .el-checkbox__inner {
display: block !important;
}
.form-show .el-checkbox {
display: block !important;
}
</style>

Loading…
Cancel
Save