css 溢出隐藏
.ellipsis {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
关于 el-date-picker 时间范围的 yyyy-MM-dd 与 yyyy/MM/dd 时间范围是不同的,前者会多一天,所以范围的时候要减去一天的毫秒数,看时间格式改变,不要直接复制以前的
yyyy/MM/dd
pickerOptions0: {
disabledDate: (time) => {
if (this.queryForm.createTimeEnd) {
return time.getTime() > new Date(this.queryForm.createTimeEnd).getTime()
}
},
},
pickerOptions1: {
disabledDate: (time) => {
if (this.queryForm.createTimeStart) {
return time.getTime() < new Date(this.queryForm.createTimeStart).getTime()
}
},
},
yyyy-MM-dd
pickerOptions0: {
disabledDate: time => {
if (this.queryForm.operateTimeEnd) {
return time.getTime() > new Date(this.queryForm.operateTimeEnd).getTime()
}
}
},
pickerOptions1: {
disabledDate: time => {
if (this.queryForm.operateTimeBegin) {
return (
time.getTime() <
new Date(this.queryForm.operateTimeBegin).getTime() - 86400000
)
}
}
},
对象数组去重 js
- 使用Set可以实现对数组对象的去重,Set会根据元素的唯一性自动删除重复的元素。
let arr = [
{
"name": "张三",
"age": 18
},
{
"name": "李四",
"age": 20
},
{
"name": "张三",
"age": 18
},
{
"name": "王五",
"age": 22
}
];
let result = Array.from(new Set(arr.map(JSON.stringify)))
.map(JSON.parse);
console.log(result);
- 使用reduce()方法
let arr = [
{
"name": "张三",
"age": 18
},
{
"name": "李四",
"age": 20
},
{
"name": "张三",
"age": 18
},
{
"name": "王五",
"age": 22
}
];
let result = arr.reduce((prev, cur) => {
if (!prev.find(item => item.name === cur.name && item.age === cur.age)) {
prev.push(cur);
}
return prev;
}, []);
console.log(result);
AICODE 优化的代码
const tree = (resp.rows || []).filter(item => item.productCode == 'PRODUCT_SBED' || item.productCode == 'PRODUCT_NED')
const arr = tree.map(item => item.children)
const newArr = _.flattenDepth(arr, 1)
console.log(newArr, 'newArr');
const newArr2 = newArr.map(item => {
item.isParentGroup = true
return item
}).filter(res => res.groupName != '通用关联')
console.log(newArr2, 'newArr2');
this.groupTree = (filterAsyncArr(newArr2) || []).reduce((prev, cur) => {
if (!prev.find(item => item.name === cur.name && item.age === cur.age)) {
prev.push(cur);
}
return prev;
}, []);
console.log(this.groupTree, 'newArr2==>>this.groupTree');
这段代码的功能是获取resp.rows中productCode属性为"PRODUCT_SBED"或"PRODUCT_NED"的元素,然后将它们的children属性取出来扁平化为新的数组,再将数组中每个元素的isParentGroup属性设置为true,并且过滤掉groupName属性为"通用关联"的元素,最后对新数组去重并赋值给this.groupTree属性。
以下是对代码进行纠错与优化后的代码:
const tree = (resp.rows || [])
.filter(item => item.productCode === 'PRODUCT_SBED' || item.productCode === 'PRODUCT_NED')
.flatMap(item => item.children);
const uniqueArr = Array.from(new Set(tree.map(JSON.stringify)))
.map(JSON.parse)
.map(item => {
item.isParentGroup = true;
return item;
})
.filter(res => res.groupName !== '通用关联');
this.groupTree = uniqueArr;
console.log(this.groupTree, 'this.groupTree');
代码优化
const spouseCheck = res.spouseCheck || ''
const twoElemConsistent = res.twoElemConsistent || ''
let text = ''
if (spouseCheck == '1' && twoElemConsistent == '1') {
text = '(配偶数据一致,二要素一致)'
} else if (spouseCheck == '2' && twoElemConsistent == '1') {
text = text + '(配偶数据不一致,二要素一致)'
} else if (spouseCheck == '1' && twoElemConsistent == '2') {
text = '(配偶数据一致,二要素不一致)'
} else if (spouseCheck == '2' && twoElemConsistent == '2') {
text = '(配偶数据不一致,二要素不一致)'
} else if (spouseCheck == '' && twoElemConsistent == '1') {
text = '(二要素一致)'
} else if (spouseCheck == '' && twoElemConsistent == '2') {
text = '(二要素不一致)'
} else if (spouseCheck == '1' && twoElemConsistent == '') {
text = '(配偶数据一致)'
} else if (spouseCheck == '2' && twoElemConsistent == '') {
text = '(配偶数据不一致)'
} else if (spouseCheck == '' && twoElemConsistent == '') {
text = ''
}
优化后:
const spouseCheck = res.spouseCheck ?? '';
const twoElemConsistent = res.twoElemConsistent ?? '';
let text = '';
switch(`${spouseCheck}${twoElemConsistent}`) {
case '11':
text = '(配偶数据一致,二要素一致)';
break;
case '21':
text = '(配偶数据不一致,二要素一致)';
break;
case '12':
text = '(配偶数据一致,二要素不一致)';
break;
case '22':
text = '(配偶数据不一致,二要素不一致)';
break;
case '01':
text = '(二要素一致)';
break;
case '02':
text = '(二要素不一致)';
break;
case '10':
text = '(配偶数据一致)';
break;
case '20':
text = '(配偶数据不一致)';
break;
default:
text = '';
}