tanzhongheY/pages/new-page/index.js

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.reLaunch({
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, //总排放差值
})
}
})