yuminge-app/yun-min-program-plugin-master/packageB/conference/activity/activity.js

768 lines
21 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// pages/activity/activity.js
// var WxParse = require('../../../wxParse/wxParse.js');
var app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
startDate: new Date('1900-01-01'),
uploadUrl: 'upload.uploadPic',
activity_id: '',
types: {
"88": 'diyusername',
"99": 'diypassword',
"0": 'diyinput',
"1": 'diytextarea',
"3": 'diycheckbox',
"4": 'diyradio',
"2": 'diyselect',
"7": 'diydate',
"9": 'diycity',
"5": 'diyimage',
},
thumb: "",
conference: {},
form_id: '',
diyform: {},
diydata: [],
intro: false,
//地区
provinceData: [],
cityData: [],
districtData: [],
pickerValue: [0, 0, 0],
selectAddressData: [],
currentDate: new Date().getTime(),
isValidation: true,
nosubmit: true,
is_enrol:0
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let scene = decodeURIComponent(options.scene);
// 扫码进入
if (scene) {
let info_arr = [];
info_arr = scene.split(',');
for (let i = 0; i < info_arr.length; i++) {
let chil_arr = [];
chil_arr = info_arr[i].split('=');
if (chil_arr[0] == 'id') {
this.setData({
activity_id: chil_arr[1]
});
}
}
}
// 点击进入
if (options.id) {
this.setData({
activity_id: options.id
});
}
if (!this.data.activity_id) {
wx.showToast({
title: '活动不存在!',
icon: 'none',
duration: 1500,
success: function () {
setTimeout(function () {
//要延时执行的代码
wx.redirectTo({
url: '/packageA/member/conferenceList/conferenceList'
});
}, 1500); //延迟时间
},
});
}
//加载地址数据初始化
this._initAddressInfo();
this.getActivity();
},
onRead_1(e) {
try {
let diydata = this.data.diydata;
let index = e.currentTarget.dataset.idex;
if (diydata[index].type == "diyimage") {
if (diydata[index].imgUrls.length >= diydata[index].data.tp_max) {
wx.showToast({
title: `最多只能上传${diydata[index].data.tp_max}`,
icon: 'none',
duration: 1000
});
return;
}
}
// for (var i = 0; i < diydata.length; i++){
// if(diydata[i].type == "diyimage"){
// if(diydata[i].imgUrls.length >= diydata[i].data.tp_max){
// wx.showToast({
// title: `最多只能上传${diydata[i].data.tp_max}张`,
// icon:'none',
// duration:1000
// })
// return
// }
// }
// }
// console.log(this.data.diydata)
} catch (err) {
console.log(err);
}
let name = e.currentTarget.dataset.name;
this.setData({
setname: name
});
let that = this;
let urlStr = app.getNetAddresss(this.data.uploadUrl);
wx.chooseImage({
count: 1,
sizeType: ['original', 'compressed'],
sourceType: ['album', 'camera'],
success(res) {
const tempFilePaths = res.tempFilePaths;
wx.compressImage({
src: tempFilePaths[0], // 图片路径
quality: 60, // 压缩质量
success(e) {
// console.log(e)
let photourl = e.tempFilePath;
wx.uploadFile({
url: urlStr,
filePath: photourl,
name: 'file',
formData: {
attach: that.data.setname
},
success(resdata) {
var res = JSON.parse(resdata.data);
console.log(res);
if (res.result == 1) {
let diydata = that.data.diydata;
console.log(res);
for (var i = 0; i < diydata.length; i++) {
if (diydata[i].name == res.data.attach) {
diydata[i].imgUrls.push(res.data.img_url);
}
}
that.setData({
diydata: diydata
});
console.log(that.data.diydata);
} else {
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
}
}
});
},
fail(e) {
console.log(e);
},
complete(e) {
}
});
}
});
},
removeImg: function (e) {
let delIndex = e.currentTarget.dataset.indexc;
let index_1 = e.currentTarget.dataset.index;
let diydata = this.data.diydata;
diydata[index_1].imgUrls.splice(delIndex, 1);
this.setData({
diydata: diydata
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
return{
title:this.data.conference.title ? this.data.conference.title : '活动',
path:"/packageB/conference/activity/activity?id="+this.data.activity_id
};
},
getActivity() {
let that = this;
let urlStr = app.getNetAddresss("plugin.conference.api.conference-activity.get-activity-detail");
urlStr += '&id=' + this.data.activity_id;
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
if (res.data.is_end == 1) {
wx.showToast({
title: '来晚了,活动已结束!',
icon: 'none',
duration: 1500,
success: function () {
setTimeout(function () {
//要延时执行的代码
wx.redirectTo({
url: '/packageA/member/conferenceList/conferenceList'
});
}, 1500); //延迟时间
},
});
return;
}
that.setData({
thumb: res.data.thumb,
conference: res.data,
form_id: res.data.form_id,
});
wx.setNavigationBarTitle({
title: that.data.conference.title ? that.data.conference.title : '活动'
});
// let article = that.data.conference.content;
/**
* WxParse.wxParse(bindName , type, data, target,imagePadding)
* 1.bindName绑定的数据名(必填)
* 2.type可以为html或者md(必填)
* 3.data为传入的具体数据(必填)
* 4.target为Page对象,一般为this(必填)
* 5.imagePadding为当图片自适应是左右的单一padding(默认为0,可选)
*/
// try {
// WxParse.wxParse('article', 'html', article, that);
// } catch (e) {
// //TODO handle the exception
// }
that.getForm();
if(res.data.is_enrol == 1){
that.setData({
is_enrol:res.data.is_enrol
});
wx.showToast({
title: '您已报名该活动!',
icon:'none'
});
return;
}
} else {
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
}
},
fail: function (res) {
console.log(res);
}
});
},
goDetail(){
wx.navigateTo({
url: '/packageB/conference/myActivityInfo/myActivityInfo?id='+this.data.activity_id,
});
},
getForm() {
let that = this;
let urlStr = app.getNetAddresss("plugin.diyform.api.diy-form.get-diy-form-by-id");
urlStr += '&form_id=' + this.data.form_id;
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
var f = {};
if (res.result == 1) {
that.setData({
diyform: res.data
});
let fields = that.data.diyform.fields;
let diydata = that.data.diydata;
for (var field in fields) {
if (that.data.types[fields[field].data_type] == 'diycheckbox') {
f = {
name: field,
data: fields[field],
value: [],
type: that.data.types[fields[field].data_type],
};
} else if (that.data.types[fields[field].data_type] == 'diydate') {
f = {
name: field,
data: fields[field],
value: '',
type: that.data.types[fields[field].data_type],
};
} else if (that.data.types[fields[field].data_type] == 'diyselect') {
let tp_textArr = [];
for (let i = 0; i < fields[field].tp_text.length; i++) {
tp_textArr.push({
name: fields[field].tp_text[i]
});
}
f = {
name: field,
data: fields[field],
value: '',
type: that.data.types[fields[field].data_type],
diysishow: false,
sitem: tp_textArr
};
} else if (that.data.types[fields[field].data_type] == 'diycity') {
f = {
name: field,
data: fields[field],
value: '',
type: that.data.types[fields[field].data_type],
showAdd: false
};
} else if (that.data.types[fields[field].data_type] == 'diyimage') {
f = {
name: field,
data: fields[field],
imgUrls: fields[field].value ? fields[field].value : [],
isPhoto: false,
type: that.data.types[fields[field].data_type],
};
} else {
f = {
name: field,
data: fields[field],
value: '',
type: that.data.types[fields[field].data_type],
};
}
diydata.push(f);
that.setData({
diydata: diydata
});
console.log(that.data.diydata);
}
}
},
fail: function (res) {
console.log(res);
}
});
},
showIntro() {
this.setData({
intro: true
});
},
showIntroClose() {
this.setData({
intro: false
});
},
//自定义表单值绑定
tpnameinp(e) {
let val = e.detail.value;
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].value"]: val
});
},
diytextareainp(e) {
let val = e.detail.value;
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].value"]: val
});
},
checkboxinp(e) {
let val = e.detail;
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].value"]: val
});
},
diyselectBtn(e) {
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].diysishow"]: true
});
},
sitemClose(e) {
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].diysishow"]: false
});
},
sitemSelectBtn(e) {
let idx = e.currentTarget.dataset.idex;
let val = e.detail.name;
this.setData({
["diydata[" + idx + "].value"]: val,
["diydata[" + idx + "].diysishow"]: false
});
},
raidinp(e) {
let val = e.detail;
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].value"]: val
});
},
// 关闭选择收货地址
_closeDateLw: function (e) {
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].showAdd"]: false
});
},
//地址选择器数据初始化
_initAddressInfo: function () {
var that = this;
var _keyName = 'provinceData';
wx.getStorage({
key: _keyName,
success: function (res) {
console.log("地址信息准备就绪");
that._getProvinceData();
},
fail: function (res) {
console.log("省fail");
app._getNetWork({
url: app.getNetAddresss("member.member-address.address"),
success: function (res) {
var response = res.data;
var province = response.data.province;
var city = response.data.city;
var district = response.data.district;
wx.setStorage({
key: 'provinceData',
data: province
});
wx.setStorage({
key: 'cityData',
data: city
});
wx.setStorage({
key: 'districtData',
data: district
});
that._initAddressInfo();
},
fail: function (res) {},
state: true
});
}
});
},
// 读取省key
_getProvinceData: function () {
var that = this;
var _keyName = 'provinceData';
wx.getStorage({
key: _keyName,
success: function (res) {
console.log("省读取成功", res.data);
that.setData({
provinceData: res.data
});
that.setData({
"selectAddressData[0].name": res.data[that.data.pickerValue[0]].areaname,
"selectAddressData[0].id": res.data[that.data.pickerValue[0]].id,
"selectAddressData[0].index": that.data.pickerValue[0]
});
that._getCityData();
}
});
},
// 读取城市key筛选城市data
_getCityData: function () {
var _data = this.data.selectAddressData[0];
console.log("城市", "_data", _data);
var that = this;
var _keyName = 'cityData';
wx.getStorage({
key: _keyName,
success: function (res) {
console.log("城市读取成功", res);
var _json = [];
for (var i = 0; i < res.data.length; i++) {
if (res.data[i].parentid == _data.id) {
_json.push(res.data[i]);
}
}
console.log("城市数据筛选", _json);
that.setData({
cityData: _json
});
that.setData({
"selectAddressData[1].name": _json[that.data.pickerValue[1]].areaname,
"selectAddressData[1].id": _json[that.data.pickerValue[1]].id,
"selectAddressData[1].index": that.data.pickerValue[1]
});
that._getDistrictData();
}
});
},
// 读取地区key筛选地区data
_getDistrictData: function () {
var _data = this.data.selectAddressData[1];
console.log("地区", "_data", _data);
console.log(_data);
var that = this;
var _keyName = 'districtData';
wx.getStorage({
key: _keyName,
success: function (res) {
console.log("地区读取成功");
var _json = [];
for (var i = 0; i < res.data.length; i++) {
if (res.data[i].parentid == _data.id) {
_json.push(res.data[i]);
}
}
console.log("地区数据筛选", _json);
that.setData({
districtData: _json
});
console.log("districtData", _json);
that.setData({
"selectAddressData[2].name": _json[that.data.pickerValue[2]].areaname,
"selectAddressData[2].id": _json[that.data.pickerValue[2]].id,
"selectAddressData[2].index": that.data.pickerValue[2]
});
console.log("over", that.data.selectAddressData);
}
});
},
// 收货地址滚动事件
bindChange: function (e) {
var val = e.detail.value;
if (this.data.pickerValue[0] != val[0]) {
val[1] = 0;
val[2] = 0;
}
if (this.data.pickerValue[1] != val[1]) {
val[2] = 0;
}
this.setData({
"pickerValue[0]": val[0],
"pickerValue[1]": val[1],
"pickerValue[2]": val[2]
});
this._initAddressInfo();
},
//城市结果
resultAdd: function (e) {
let idx = e.currentTarget.dataset.idex;
let seleData = this.data.selectAddressData;
let retCity = seleData[0].name + ' ' + seleData[1].name + ' ' + seleData[2].name;
this.setData({
["diydata[" + idx + "].value"]: retCity,
["diydata[" + idx + "].showAdd"]: false
});
},
//自定义日期选择
openPicker(e) {
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].timeShow"]: true
});
},
PickerClose(e) {
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].timeShow"]: false
});
},
PickerChange(event) {
let idx = event.currentTarget.dataset.idex;
let time = event.detail;
this.setData({
["diydata[" + idx + "].currentDate"]: time
});
},
birthdayconfirm(e) {
let idx = e.currentTarget.dataset.idex;
let time = e.detail;
let changtime = this.timestampToTime(time);
this.setData({
["diydata[" + idx + "].value"]: changtime,
["diydata[" + idx + "].timeShow"]: false
});
},
timestampToTime(timestamp) {
var date = new Date(timestamp); //时间戳为10位需*1000时间戳为13位的话不需乘1000
var Y = date.getFullYear() + '-';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var D = date.getDate();
return Y + M + D;
},
submit() {
let refs = this.selectComponent('.diyfrom');
refs.submit();
},
dfsave(e) {
this.setData({
formData: e.detail
});
this.submitConference();
},
submitConference() {
let that = this;
let urlStr = app.getNetAddresss("plugin.conference.api.conference-activity.save-enrol");
urlStr += '&conference_id=' + this.data.activity_id;
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
var enrol_id = res.data.enrol_id;
that.submitForm(enrol_id);
} else {
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
wx.redirectTo({
url: '/packageA/member/conferenceList/conferenceList'
});
}
},
fail: function (res) {
console.log(res);
}
});
},
submitForm(enrol_id) {
let that = this;
let formData = [];
let formObject = {};
this.data.diydata.forEach(item => {
if (item.type == 'diyimage') {
formObject[item.name] = item.imgUrls;
} else {
formObject[item.name] = item.value;
}
});
console.log(formObject, this.data.diydata);
formData.push(formObject);
let json = {
form_data: this.data.formData,
form_id: this.data.form_id,
};
let urlStr = app.getNetAddresss("plugin.diyform.api.diy-form.save-diy-form-data");
app._postNetWork({
url: urlStr,
showToastIn: false,
data: json,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
var form_data_id = res.data.form_data_id;
that.submitEnro(enrol_id, form_data_id);
} else {
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
}
},
fail: function (res) {}
});
},
submitEnro(enrol_id, form_data_id) {
let urlStr = app.getNetAddresss("plugin.conference.api.conference-activity.save-enrol-end");
let json = {
enrol_id: enrol_id,
form_data_id: form_data_id,
};
app._postNetWork({
url: urlStr,
showToastIn: false,
data: json,
success: (resdata) => {
var res = resdata.data;
if (res.result == 1) {
wx.showToast({
title: '报名成功',
icon: 'none',
duration: 1500,
success: function () {
setTimeout(function () {
//要延时执行的代码
wx.redirectTo({
url: '/packageA/member/conferenceList/conferenceList'
});
}, 1500); //延迟时间
},
});
}
},
fail: function (res) {}
});
},
//自定义日期选择
showAddBtn(e) {
let idx = e.currentTarget.dataset.idex;
this.setData({
["diydata[" + idx + "].showAdd"]: true
});
},
});