389 lines
9.2 KiB
JavaScript
389 lines
9.2 KiB
JavaScript
|
// pages/new-page/index.js
|
||
|
var urlPath = require('../../config.js');
|
||
|
|
||
|
Page({
|
||
|
bindDateChange: function(e) {
|
||
|
this.setData({
|
||
|
[e.mark.type + '_date']: e.detail.value
|
||
|
})
|
||
|
},
|
||
|
getStatus: function(e) {
|
||
|
let block = this.data.newList[this.data.currentIndex].activity_list[e.mark.cindex]
|
||
|
block.isOpen = !block.isOpen
|
||
|
this.setData({
|
||
|
newList: this.data.newList
|
||
|
})
|
||
|
},
|
||
|
goIndex() {
|
||
|
wx.reLaunch({
|
||
|
url: '../index/index'
|
||
|
});
|
||
|
},
|
||
|
/**
|
||
|
* 页面的初始数据
|
||
|
*/
|
||
|
data: {
|
||
|
host: urlPath.host,
|
||
|
icon: "/img/nav/menu1.png",
|
||
|
capsuleParam: {},
|
||
|
id: '',
|
||
|
start_date: '',// '开始时间',
|
||
|
end_date: '',// '结束时间',
|
||
|
activeName: '',
|
||
|
newList: [
|
||
|
// {
|
||
|
// id:2,
|
||
|
// icon:'/img/nav/huaindex.png',
|
||
|
// iconActive:'/img/nav/hua.png',
|
||
|
// text:'低碳婚礼',
|
||
|
// },
|
||
|
// {
|
||
|
// id:1,
|
||
|
// icon:'/img/nav/cheindex.png',
|
||
|
// iconActive:'/img/nav/che.png',
|
||
|
// text:'地毯旅游',
|
||
|
// },
|
||
|
// {
|
||
|
// id:3,
|
||
|
// icon:'',
|
||
|
// icon:'/img/nav/huaindex.png',
|
||
|
// iconActive:'/img/nav/hua.png',
|
||
|
// text:'低碳居家',
|
||
|
// },
|
||
|
],
|
||
|
currentIndex: 0,
|
||
|
templateId: '', //当前选择碳中和计算模板Id
|
||
|
|
||
|
primaryn_total_carbon: 0, //原总排放
|
||
|
actual_total_carbon: 0, //实际总排放
|
||
|
difference_carbon: 0, //总排放差值
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面加载
|
||
|
*/
|
||
|
onLoad: function(options) {
|
||
|
this.getNewsData()
|
||
|
// this.setData({
|
||
|
// capsuleParam: getApp().globalData
|
||
|
// })
|
||
|
},
|
||
|
getNewsData: function() {
|
||
|
var that = this
|
||
|
wx.request({
|
||
|
url: urlPath.getTemplate,
|
||
|
// header: {
|
||
|
// 'openid': wx.getStorageSync('openid')
|
||
|
// },
|
||
|
header: {
|
||
|
'content-type': 'application/x-www-form-urlencoded'
|
||
|
},
|
||
|
method:"post",
|
||
|
dataType: 'json', // 添加这个配置
|
||
|
data: {
|
||
|
appkey:urlPath.appkey
|
||
|
// m:'dxtc',
|
||
|
// f:'apiCarbonArticles',
|
||
|
// page:'1',
|
||
|
// size:'10'
|
||
|
},
|
||
|
success(res) {
|
||
|
if (res.data.result == 'success') {
|
||
|
|
||
|
let list = JSON.parse(res.data.data)
|
||
|
list.forEach(function(item) {
|
||
|
item.activity_list.forEach(function(itema, index) {
|
||
|
if (index == 0) {
|
||
|
itema.isOpen = true
|
||
|
}
|
||
|
})
|
||
|
})
|
||
|
that.setData({
|
||
|
newList: list,
|
||
|
templateId: JSON.parse(res.data.data)[that.data.currentIndex].id,
|
||
|
icon: that.data.host + list[0].icon_img,
|
||
|
activeName: JSON.parse(res.data.data)[that.data.currentIndex].name
|
||
|
})
|
||
|
|
||
|
} else {
|
||
|
console.log(res.data.msg); //失败
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
/**
|
||
|
* 生命周期函数--监听页面初次渲染完成
|
||
|
*/
|
||
|
onReady: function() {
|
||
|
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面显示
|
||
|
*/
|
||
|
onShow: function() {
|
||
|
if (typeof this.getTabBar === 'function' &&
|
||
|
this.getTabBar()) {
|
||
|
this.getTabBar().setData({
|
||
|
selected: 2
|
||
|
})
|
||
|
}
|
||
|
|
||
|
|
||
|
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面隐藏
|
||
|
*/
|
||
|
onHide: function() {
|
||
|
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面卸载
|
||
|
*/
|
||
|
onUnload: function() {
|
||
|
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 页面相关事件处理函数--监听用户下拉动作
|
||
|
*/
|
||
|
onPullDownRefresh: function() {
|
||
|
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 页面上拉触底事件的处理函数
|
||
|
*/
|
||
|
onReachBottom: function() {
|
||
|
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 用户点击右上角分享
|
||
|
*/
|
||
|
onShareAppMessage: function() {
|
||
|
|
||
|
},
|
||
|
titleClick(e) {
|
||
|
var that = this
|
||
|
|
||
|
that.setData({
|
||
|
//拿到当前索引并动态改变
|
||
|
currentIndex: e.mark.index,
|
||
|
id: 'm' + e.mark.index,
|
||
|
templateId: e.mark.id,
|
||
|
icon: that.data.host + that.data.newList[e.mark.index].icon_img,
|
||
|
activeName: that.data.newList[e.mark.index].name
|
||
|
})
|
||
|
|
||
|
wx.nextTick(() => {
|
||
|
that.calculation();
|
||
|
})
|
||
|
},
|
||
|
formSubmit(e) {
|
||
|
let values = e.detail.value
|
||
|
let type = e.detail.target.dataset.type
|
||
|
let ids = [],
|
||
|
list = []
|
||
|
Object.keys(values).forEach(function(item) { //获取所有活动id
|
||
|
let id = item.split('_')[0]
|
||
|
if (ids.indexOf(id) == -1) {
|
||
|
ids.push(id)
|
||
|
}
|
||
|
})
|
||
|
var flag = false;
|
||
|
ids.forEach(function(item) { //获取所有所填选项数据
|
||
|
if (values[item + '_planned'] == 0 && values[item + '_actual'] == 0) return
|
||
|
let active = {
|
||
|
calculator_id: item,
|
||
|
planned_amount: values[item + '_planned'],
|
||
|
actual_amount: values[item + '_actual'],
|
||
|
}
|
||
|
|
||
|
if ((active.planned_amount != "" && active.actual_amount != "") && active.planned_amount >=
|
||
|
0 && active.actual_amount >= 0) {
|
||
|
list.push(active)
|
||
|
} else {
|
||
|
|
||
|
flag = true;
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
})
|
||
|
if (flag) {
|
||
|
wx.showToast({
|
||
|
title: "请填写消费数据",
|
||
|
icon: 'none',
|
||
|
duration: 2000
|
||
|
})
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
if (list.length <= 0) {
|
||
|
wx.showToast({
|
||
|
title: "请填写消费数据",
|
||
|
icon: 'none',
|
||
|
duration: 2000
|
||
|
})
|
||
|
return false;
|
||
|
}
|
||
|
|
||
|
this.setResult(list, type)
|
||
|
// wx.request({
|
||
|
// url: urlPath.postResult,
|
||
|
// header: {
|
||
|
// 'content-type': 'application/x-www-form-urlencoded',
|
||
|
// 'openid': wx.getStorageSync('openid')
|
||
|
// },
|
||
|
// method: 'post',
|
||
|
// dataType: 'json', // 添加这个配置
|
||
|
// data: {
|
||
|
// operate: true,
|
||
|
// template_id: this.data.templateId,
|
||
|
// start_date: this.data.start_date,
|
||
|
// end_date: this.data.end_date,
|
||
|
// items: JSON.parse(list)
|
||
|
// },
|
||
|
// success(res) {
|
||
|
// console.log(res)
|
||
|
// }
|
||
|
// });
|
||
|
|
||
|
},
|
||
|
setResult: function(list, type, operate = 'normal') {
|
||
|
var that = this
|
||
|
wx.request({
|
||
|
url: urlPath.postResult,
|
||
|
header: {
|
||
|
'content-type': 'application/x-www-form-urlencoded',
|
||
|
},
|
||
|
method: 'post',
|
||
|
// dataType: 'json', // 添加这个配置
|
||
|
data: {
|
||
|
'openid': wx.getStorageSync('openid'),
|
||
|
operate: operate,
|
||
|
template_id: this.data.templateId,
|
||
|
start_date: this.data.start_date,
|
||
|
end_date: this.data.end_date,
|
||
|
items: JSON.stringify(list)
|
||
|
},
|
||
|
success(res) {
|
||
|
if (res.data.result == 'success') {
|
||
|
// var neutralization = JSON.parse(res.data.data).neutralization
|
||
|
// if (!!neutralization) {
|
||
|
// wx.navigateTo({
|
||
|
// url: '/pages/footprint/footprint',
|
||
|
// })
|
||
|
// return
|
||
|
// }
|
||
|
if (type == '1') {
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/footprint/footprint?',
|
||
|
})
|
||
|
} else {
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/gproduct/gproduct?id=' + JSON.parse(res.data.data)
|
||
|
.id + "&&carbon=" + that.data.actual_total_carbon +
|
||
|
"&&icon=" + that.data.icon,
|
||
|
})
|
||
|
}
|
||
|
} else {
|
||
|
if (res.data.code_str == 'replace') {
|
||
|
wx.showModal({
|
||
|
title: '提示',
|
||
|
content: res.data.message != undefined ? res.data.message :
|
||
|
"错误",
|
||
|
success(item) {
|
||
|
if (item.confirm) {
|
||
|
that.setResult(list, type, 'replace')
|
||
|
} else if (item.cancel) {}
|
||
|
}
|
||
|
})
|
||
|
} else {
|
||
|
wx.showToast({
|
||
|
title: res.data.message != undefined ? res.data.message : "错误",
|
||
|
icon: 'none',
|
||
|
duration: 2000
|
||
|
})
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
|
||
|
setPrimarynNmber: function(e) {
|
||
|
var that = this;
|
||
|
// console.log(e.currentTarget.dataset.activity_list_key)
|
||
|
// console.log(e.currentTarget.dataset.factor_list_key)
|
||
|
var currentIndex = that.data.currentIndex;
|
||
|
var activity_list_key = e.currentTarget.dataset.activity_list_key;
|
||
|
var factor_list_key = e.currentTarget.dataset.factor_list_key;
|
||
|
var list = that.data.newList;
|
||
|
list[currentIndex]["activity_list"][activity_list_key]["factor_list"][factor_list_key].primaryn = e
|
||
|
.detail
|
||
|
.value
|
||
|
// console.log(list[currentIndex]["activity_list"][activity_list_key]["factor_list"][factor_list_key]);
|
||
|
//console.log(that.data.currentIndex)
|
||
|
that.setData({
|
||
|
newList: list
|
||
|
});
|
||
|
wx.nextTick(() => {
|
||
|
that.calculation();
|
||
|
})
|
||
|
|
||
|
},
|
||
|
setActualNmber: function(e) {
|
||
|
var that = this;
|
||
|
// console.log(e.currentTarget.dataset.activity_list_key)
|
||
|
// console.log(e.currentTarget.dataset.factor_list_key)
|
||
|
var currentIndex = that.data.currentIndex;
|
||
|
var activity_list_key = e.currentTarget.dataset.activity_list_key;
|
||
|
var factor_list_key = e.currentTarget.dataset.factor_list_key;
|
||
|
var list = that.data.newList;
|
||
|
list[currentIndex]["activity_list"][activity_list_key]["factor_list"][factor_list_key].actual = e
|
||
|
.detail
|
||
|
.value;
|
||
|
|
||
|
that.setData({
|
||
|
newList: list
|
||
|
});
|
||
|
wx.nextTick(() => {
|
||
|
that.calculation();
|
||
|
})
|
||
|
},
|
||
|
//计算
|
||
|
calculation: function() {
|
||
|
var that = this;
|
||
|
var list = that.data.newList[that.data.currentIndex];
|
||
|
var primaryn_total_carbon = 0; //原总排放
|
||
|
var actual_total_carbon = 0; //实际总排放
|
||
|
var difference_carbon = 0; //总排放差值
|
||
|
//console.log(list);
|
||
|
for (var aa = 0; aa < list.activity_list.length; aa++) {
|
||
|
for (var bb = 0; bb < list.activity_list[aa].factor_list.length; bb++) {
|
||
|
if (list.activity_list[aa].factor_list[bb].primaryn != undefined &&
|
||
|
list.activity_list[aa].factor_list[bb].actual != undefined) {
|
||
|
var primaryn = list.activity_list[aa].factor_list[bb].primaryn;
|
||
|
var actual = list.activity_list[aa].factor_list[bb].actual;
|
||
|
|
||
|
primaryn_total_carbon += (list.activity_list[aa].factor_list[bb].factor_modulus *
|
||
|
primaryn); //原总排放
|
||
|
actual_total_carbon += (list.activity_list[aa].factor_list[bb].factor_modulus *
|
||
|
actual); //实际总排放
|
||
|
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
that.setData({
|
||
|
primaryn_total_carbon: Math.round(primaryn_total_carbon * 100, 2) / 100, //原总排放
|
||
|
actual_total_carbon: Math.round(actual_total_carbon * 100, 2) / 100, //实际总排放
|
||
|
difference_carbon: Math.round((primaryn_total_carbon - actual_total_carbon) * 100, 2) /
|
||
|
100, //总排放差值
|
||
|
})
|
||
|
}
|
||
|
})
|