1.一维数组通过仓库跟日期变成二维
var data = [
{
issuingTime: '2022-06-28',
warehouseName: '测试28-1',
a: 1
},
{
issuingTime: '2022-06-28',
warehouseName: '测试28-1',
a:2
},
{
issuingTime: '2022-06-27',
warehouseName: '测试27-1',
a: 3
},
{
issuingTime: '2022-06-27',
warehouseName: '测试27-1',
a: 4
},
{
issuingTime: '2022-06-28',
warehouseName: '测试28-2',
a: 5
},
{
issuingTime: '2022-06-28',
warehouseName: '测试28-2',
a: 6
},
{
issuingTime: '2022-06-21',
warehouseName: '测试28-2',
a: 7
},
]
// 你要先判断这个 data 这个数组是否有元素, 没有元素直接退出
const processedData = [
{
...data[0],
data: []
}
]
//判断当前数组数据是不是有数据
while (data.length > 0) {
//删除第一条数据会返回那条被删除的第一条数据
//(push和unshift都是有返回值的,返回值就是数组的长度,pop和shift也有返回值,返回值就是删除的那一项。)
const item = data.shift()
//判断二维数组里一维有没有跟被删除的第一条数组日期跟仓库数据一样
const fItem = processedData.find(pItem => pItem.issuingTime === item.issuingTime && pItem.warehouseName === item.warehouseName)
if (fItem) {
//如果有一样添加到那个一样的二维数组里的data里
fItem.data.push(item)
} else {
//不一样则给二维数组里添加一条
processedData.push({
...item,
data:[item]
})
}
}
二.vue项目localhost可以启动,ip不可以
原因是因为html请求头中使用了content="upgrade-insecure-requests",HTTP Upgrade-Insecure-Requests 请求头向服务器发送一个客户端对HTTPS加密和认证响应良好,并且可以成功处理的信号,可以请求所属网站所有的HTTPS资源。
在https页面中,如果调用了http资源,那么浏览器就会抛出一些错误。,那么浏览器就会抛出一些错误。为了改变成这一状况,chrome(谷歌浏览器)会在http请求中加入 ‘Upgrade-Insecure-Requests: 1’ ,服务器收到请求后会返回 “Content-Security-Policy: upgrade-insecure-requests” 头,告诉浏览器,可以把所属本站的所有 http 连接升级为 https 连接。
注意:升级后的链接在服务器端必须有对应的资源,只会升级网站内部的链接,对于不属于网站同部的链接,则保持默认状态,并不是所以的浏览器兼容此 HTTP 请求头
三,uni-app实现点击原生tab页面滚动切换到其他页面再切换回滚动的页面第一次不返回顶部,第二次点击返回顶部
思路一:使用plus.nativeObj.view绘制一个图层点击其他tab页的时候盖住之前的返回顶部的图标,然后给这个图层添加点击事件的时候跳转到之前的页面,触发其他tab页的ohHide事件,关闭掉图层,但是感觉有点麻烦,于是我选择了思路二
思路二:因为返回顶部的实现是点击tabItem触发onTabItemTap事件实现的,然后我加了一个状态,onTabItemTap对这个状态进行自增,切换其他tab会触发onHide事件,在这个事件中把状态置为初始值0,然后判断当前值是不是大于1,大于1并且当前页面滚动的距离大于1200的话触发返回顶部
四.picker-view-column串行问题
原因:引用页面类名与组件内类名相同