silu/创旅丝路/resources/wechatapp-master/pages/index/date/four/four.js

271 lines
8.0 KiB
JavaScript
Raw Permalink Normal View History

2025-10-14 00:45:23 +08:00
var wxCharts = require('../../../../utils/wxcharts.js');
var lineChart = null;
Page({
/**
* 页面的初始数据
*/
data: {
business:
[
{ businesser: 1, time: 6, num: null }, { businesser: 1, time: 7, num: null },
{ businesser: 1, time: 8, num: null }, { businesser: 1, time: 9, num: null },
{ businesser: 1, time: 10, num: null }, { businesser: 1, time: 11, num: null },
{ businesser: 1, time: 12, num: null }, { businesser: 1, time: 13, num: null },
{ businesser: 1, time: 14, num: null }, { businesser: 1, time: 15, num: null },
{ businesser: 1, time: 16, num: null }, { businesser: 1, time: 17, num: null },
{ businesser: 1, time: 18, num: null }, { businesser: 1, time: 19, num: null },
{ businesser: 1, time: 20, num: null }, { businesser: 1, time: 21, num: null },
{ businesser: 1, time: 22, num: null },
{ businesser: 2, time: 6, num: null }, { businesser: 2, time: 7, num: null },
{ businesser: 2, time: 8, num: null }, { businesser: 2, time: 9, num: null },
{ businesser: 2, time: 10, num: null }, { businesser: 2, time: 11, num: null },
{ businesser: 2, time: 12, num: null }, { businesser: 2, time: 13, num: null },
{ businesser: 2, time: 14, num: null }, { businesser: 2, time: 15, num: null },
{ businesser: 2, time: 16, num: null }, { businesser: 2, time: 17, num: null },
{ businesser: 2, time: 18, num: null }, { businesser: 2, time: 19, num: null },
{ businesser: 2, time: 20, num: null }, { businesser: 2, time: 21, num: null },
{ businesser: 2, time: 22, num: null },
{ businesser: 3, time: 6, num: null }, { businesser: 3, time: 7, num: null },
{ businesser: 3, time: 8, num: null }, { businesser: 3, time: 9, num: null },
{ businesser: 3, time: 10, num: null }, { businesser: 3, time: 11, num: null },
{ businesser: 3, time: 12, num: null }, { businesser: 3, time: 13, num: null },
{ businesser: 3, time: 14, num: null }, { businesser: 3, time: 15, num: null },
{ businesser: 3, time: 16, num: null }, { businesser: 3, time: 17, num: null },
{ businesser: 3, time: 18, num: null }, { businesser: 3, time: 19, num: null },
{ businesser: 3, time: 20, num: null }, { businesser: 3, time: 21, num: null },
{ businesser: 3, time: 22, num: null }
],
predict:
[
{ time: 6, num: null }, { time: 7, num: null },
{ time: 8, num: null }, { time: 9, num: null },
{ time: 10, num: null }, { time: 11, num: null },
{ time: 12, num: null }, { time: 13, num: null },
{ time: 14, num: null }, { time: 15, num: null },
{ time: 16, num: null }, { time: 17, num: null },
{ time: 18, num: null }, { time: 19, num: null },
{ time: 20, num: null }, { time: 21, num: null },
{ time: 22, num: null }
],
area:
[
{ time: 6, num: null }, { time: 7, num: null },
{ time: 8, num: null }, { time: 9, num: null },
{ time: 10, num: null }, { time: 11, num: null },
{ time: 12, num: null }, { time: 13, num: null },
{ time: 14, num: null }, { time: 15, num: null },
{ time: 16, num: null }, { time: 17, num: null },
{ time: 18, num: null }, { time: 19, num: null },
{ time: 20, num: null }, { time: 21, num: null },
{ time: 22, num: null }
]
},
createSimulationData: function () {
var categories = [];
var data = [];
var predictdata = [];
for (var i = 0; i < 17; i++) {
categories.push("time:" + (i + 6));
data.push(this.data.area[i].num);
predictdata.push(this.data.predict[i].num);
}
// data[4] = null;
return {
categories: categories,
data: data,
predictdata: predictdata
}
},
touchHandler: function (e) {
console.log(lineChart.getCurrentDataIndex(e));
lineChart.showToolTip(e, {
// background: '#7cb5ec',
format: function (item, category) {
return category + ' ' + item.name + ':' + item.data
}
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function () {
this.getbusinessnum();
this.getareanum();
this.predicrtnum();
var windowWidth = 200;
try {
var res = wx.getSystemInfoSync();
windowWidth = res.windowWidth;
} catch (e) {
console.error('getSystemInfoSync failed!');
}
var simulationData = this.createSimulationData();
lineChart = new wxCharts({
canvasId: 'lineCanvas',
type: 'line',
categories: simulationData.categories,
animation: true,
// background: '#f5f5f5',
series: [{
name: '实时数据',
data: simulationData.data,
format: function (val, name) {
return val.toFixed(2) + '人';
}
}, {
name: '预测数据',
data: simulationData.predictdata,
format: function (val, name) {
return val.toFixed(2) + '人';
}
}],
xAxis: {
disableGrid: true
},
yAxis: {
title: '游客人数 (人)',
format: function (val) {
return val.toFixed(2);
},
min: 0
},
width: 310,
height: 150,
dataLabel: false,
dataPointShape: true,
extra: {
lineStyle: 'curve'
}
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
getbusinessnum: function (e) {
for (var i = 0; i < 51; i++) {
if (this.data.business[i].time < 11) {
var random = Math.ceil(Math.random() * 20);
var str = "business[" + i + "].num";
this.setData({ [str]: random });
}
else if (this.data.business[i].time < 14) {
random = Math.ceil(Math.random() * 100);
str = "business[" + i + "].num";
this.setData({ [str]: random })
if (this.data.business[i].num < 50)
i--;
}
else if (this.data.business[i].time < 18) {
random = Math.ceil(Math.random() * 60);
str = "business[" + i + "].num";
this.setData({ [str]: random })
if (this.data.business[i].num < 30)
i--;
}
else if (this.data.business[i].time < 20) {
random = Math.ceil(Math.random() * 100);
str = "business[" + i + "].num";
this.setData({ [str]: random })
if (this.data.business[i].num < 50)
i--;
}
else {
random = Math.ceil(Math.random() * 20);
str = "business[" + i + "].num";
this.setData({ [str]: random })
}
}
}
,
getareanum: function (e) {
for (var i = 0; i < this.data.area.length; i++) {
var str = "area[" + i + "].num";
this.setData({ [str]: Math.ceil((this.data.business[i].num + this.data.business[i + 17].num + this.data.business[i + 34].num) / 3) })
}
},
predicrtnum: function () {
var avenum = 0
var avetime = 0
var powtime = 0
var timenum = 0
var a = 0
var b = 0
for (var i = 0; i < 17; i++) {
if (this.data.predict[i].time < 11) {
for (var j = 0; j < this.data.predict[i].time - 5; j++)
{ this.data.predict[i].num += this.data.area[j].num }
this.data.predict[i].num = Math.ceil(this.data.predict[i].num / (this.data.predict[i].time - 5))
}
else if (this.data.predict[i].time == 11)
this.data.predict[i].num = Math.ceil(this.data.area[i - 1].num * 8);
else {
this.data.predict[i].num = Math.ceil(this.data.area[i - 1].num * 0.9 + this.data.area[i - 2].num * 0.05 + this.data.area[i - 3].num * 0.05);
}
}
}
})