|
|
// pages/home/xyc/index.js
|
|
|
import FormData from './../../../utils/formdata/index'
|
|
|
import Toast from 'tdesign-miniprogram/toast/index';
|
|
|
import Wxml2Canvas from 'wxml2canvas';
|
|
|
const app = getApp();//新建页面时 默认引入
|
|
|
const req = app.xzjlReq();//初始化一个的request() 实例
|
|
|
Page({
|
|
|
|
|
|
/**
|
|
|
* 页面的初始数据
|
|
|
*/
|
|
|
data: {
|
|
|
xyLink:'',
|
|
|
xyContent:'',
|
|
|
imgUrl:'',
|
|
|
fileList: [],//图片list
|
|
|
form:{
|
|
|
content:"",
|
|
|
deadline:'',
|
|
|
link:'',
|
|
|
img:''
|
|
|
},
|
|
|
minDate:new Date().getTime() + 24 * 60 * 60 * 1000,
|
|
|
cvisible: false,
|
|
|
note: '',
|
|
|
xyForm:{},
|
|
|
visible:false,//弹窗
|
|
|
single:true,
|
|
|
xzInfo:{},
|
|
|
userInfo:{},
|
|
|
xyNfc:true,
|
|
|
xyInfo:{},
|
|
|
showXyz:false, //显示许愿中弹层
|
|
|
showDetail:false, //许愿成功回显弹层
|
|
|
shareVisible:false, //显示分享页面
|
|
|
showToast:false, //显示提示弹层
|
|
|
showCanvas:false
|
|
|
},
|
|
|
// 添加图片
|
|
|
handleAdd(e){
|
|
|
// 上传图片显示loading
|
|
|
wx.showLoading({
|
|
|
title: '图片上传中',
|
|
|
mask: true
|
|
|
})
|
|
|
this.uploadFile(e.detail.files[0])
|
|
|
},
|
|
|
handleRemove(e){/**删除图片 */
|
|
|
const { index } = e.detail;
|
|
|
const { fileList } = this.data;
|
|
|
|
|
|
fileList.splice(index, 1);
|
|
|
this.setData({
|
|
|
fileList,
|
|
|
});
|
|
|
},
|
|
|
uploadFile(file) {/**执行 */
|
|
|
wx.uploadFile({
|
|
|
url: 'https://xzjl-api.windymuse.cn/api/resource',
|
|
|
filePath: file.url,
|
|
|
name: 'file',
|
|
|
header: {
|
|
|
'Authorization': wx.getStorageSync('token'),
|
|
|
'Content-Type': 'multipart/form-data'
|
|
|
},
|
|
|
formData: {
|
|
|
type: 'poster'
|
|
|
},
|
|
|
success: res => {
|
|
|
let data = JSON.parse(res.data);
|
|
|
if (data.code === 200) {
|
|
|
this.setData({
|
|
|
imgUrl: data.data.abUrl,
|
|
|
fileList: [file]
|
|
|
})
|
|
|
wx.hideLoading()
|
|
|
}
|
|
|
},
|
|
|
fail(res) {
|
|
|
showToast('图片上传失败');
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
go2MyYw(){
|
|
|
wx.navigateTo({
|
|
|
url: '/pages/home/xyc/wdyw/wdyw'
|
|
|
})
|
|
|
},
|
|
|
go2TaYw(){
|
|
|
wx.navigateTo({
|
|
|
url: '/pages/home/xyc/tdyw/tdyw'
|
|
|
})
|
|
|
},
|
|
|
doXzTime(){
|
|
|
this.setData({ cvisible: true });
|
|
|
},
|
|
|
// 显示提示
|
|
|
showToast(){
|
|
|
console.log('11');
|
|
|
this.setData({showToast: !this.data.showToast})
|
|
|
},
|
|
|
handleConfirm(e) {
|
|
|
console.log(e,'111');
|
|
|
const { value } = e.detail;
|
|
|
const format = (val) => {
|
|
|
const date = new Date(val);
|
|
|
const year = date.getFullYear();
|
|
|
const month = (date.getMonth() + 1).toString().padStart(2, '0');
|
|
|
const day = date.getDate().toString().padStart(2, '0');
|
|
|
return `${year}-${month}-${day}`;
|
|
|
};
|
|
|
|
|
|
this.setData({
|
|
|
note: format(value)
|
|
|
});
|
|
|
},
|
|
|
onClose({ detail }) {
|
|
|
console.log(detail.trigger);
|
|
|
},
|
|
|
doXyPop(){/**弹出许愿弹窗 */
|
|
|
console.log('执行力。。。。。')
|
|
|
this.setData({visible:true})
|
|
|
|
|
|
},
|
|
|
onVisibleChange(e) {
|
|
|
this.setData({
|
|
|
visible: e.detail.visible,
|
|
|
});
|
|
|
},
|
|
|
doCancelXy(){/**取消许愿 */
|
|
|
this.setData({
|
|
|
visible: false,
|
|
|
xyContent: '',
|
|
|
note: '',
|
|
|
xyLink: '',
|
|
|
fileList: []
|
|
|
});
|
|
|
|
|
|
},
|
|
|
doFinishXy(e){/**许愿 */
|
|
|
if(!this.data.xyContent){
|
|
|
wx.showToast({
|
|
|
title:'许愿内容不能为空!',
|
|
|
icon: 'none',
|
|
|
duration: 5000
|
|
|
})
|
|
|
}else if(!this.data.note){
|
|
|
wx.showToast({
|
|
|
title:'期望事件不能为空!',
|
|
|
icon: 'none',
|
|
|
duration: 5000
|
|
|
})
|
|
|
}else if(!this.data.imgUrl){
|
|
|
wx.showToast({
|
|
|
title:'许愿图片不能为空!',
|
|
|
icon: 'none',
|
|
|
duration: 5000
|
|
|
})
|
|
|
}else{
|
|
|
// 判断是否修改数据
|
|
|
if (this.data.id) {
|
|
|
return req.patchRequest(`/api/user/curt/wish/${this.data.id}`,{
|
|
|
content:this.data.xyContent,
|
|
|
deadline:this.data.note,
|
|
|
img:this.data.imgUrl,
|
|
|
link:this.data.xyLink}).then(res => {
|
|
|
console.log(res);
|
|
|
if (res.data.code === 200) {
|
|
|
this.setData({
|
|
|
visible: false,
|
|
|
xyContent:'',
|
|
|
xyLink:'',
|
|
|
note:'',
|
|
|
imgUrl:'',
|
|
|
fileList:[]
|
|
|
})
|
|
|
wx.showToast({
|
|
|
title: '修改愿望成功',
|
|
|
icon: 'success'
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
|
|
|
req.postRequest('/api/user/curt/wish',{
|
|
|
content:this.data.xyContent,
|
|
|
deadline:this.data.note,
|
|
|
img:this.data.imgUrl,
|
|
|
link:this.data.xyLink
|
|
|
}).then((res)=>{
|
|
|
if(res.data.code === 200){
|
|
|
this.setData({
|
|
|
visible: false,
|
|
|
});
|
|
|
this.setData({userInfo:res.data.data})
|
|
|
if(res.data.data&&res.data.data.loverId&&res.data.data.loverId!=null){
|
|
|
this.setData({single:false})
|
|
|
}
|
|
|
this.setData({xyContent:'',xyLink:'',note:'',imgUrl:'',fileList:[],showXyz:true})
|
|
|
setTimeout(()=>{
|
|
|
this.setData({
|
|
|
showXyz:false,
|
|
|
showDetail:true,
|
|
|
item:res.data.data
|
|
|
})
|
|
|
wx.hideTabBar()
|
|
|
},2000)
|
|
|
this.initXy()
|
|
|
}else{
|
|
|
wx.showToast({
|
|
|
title:res.data.msg,
|
|
|
icon: 'none',
|
|
|
duration: 5000
|
|
|
})
|
|
|
}
|
|
|
}).catch((err)=>{
|
|
|
wx.showToast({
|
|
|
title:'出错了:'+err.data.msg,
|
|
|
icon: 'none',
|
|
|
duration: 5000
|
|
|
})
|
|
|
})
|
|
|
}
|
|
|
|
|
|
|
|
|
},
|
|
|
initXy(){
|
|
|
req.getRequest('/api/user/curt',{}).then((res)=>{
|
|
|
console.log(res)
|
|
|
if(res.data.code==200){
|
|
|
this.setData({userInfo:res.data.data})
|
|
|
if(res.data.data&&res.data.data.loverId&&res.data.data.loverId!=null){
|
|
|
this.setData({single:false})
|
|
|
}
|
|
|
}
|
|
|
}).catch((err)=>{
|
|
|
console.log(err);
|
|
|
})
|
|
|
this.setData({xyInfo:wx.getStorageSync('nfc')})
|
|
|
},
|
|
|
// 关闭回显
|
|
|
closeDetail(){
|
|
|
this.setData({
|
|
|
showDetail: false,
|
|
|
showCanvas: false
|
|
|
})
|
|
|
wx.showTabBar()
|
|
|
},
|
|
|
// 分享
|
|
|
openShare(event){
|
|
|
this.setData({
|
|
|
shareVisible:!this.data.shareVisible
|
|
|
})
|
|
|
wx.hideTabBar()
|
|
|
},
|
|
|
shareQQ(){
|
|
|
console.log('分享到qq')
|
|
|
},
|
|
|
downLoad(){
|
|
|
console.log('下载图片');
|
|
|
wx.downloadFile({
|
|
|
url: 'https://res.wx.qq.com/wxdoc/dist/assets/img/demo.ef5c5bef.jpg',
|
|
|
success: (res) => {
|
|
|
wx.showShareImageMenu({
|
|
|
path: res.tempFilePath
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
|
|
|
gitImg(){
|
|
|
console.log('获取图片');
|
|
|
this.drawMyCanvas()
|
|
|
this.setData({showCanvas: true,shareVisible: false})
|
|
|
},
|
|
|
|
|
|
|
|
|
drawMyCanvas() {
|
|
|
wx.showLoading({
|
|
|
title: '图片生成中'
|
|
|
})
|
|
|
const that = this
|
|
|
const query = wx.createSelectorQuery().in(this);
|
|
|
query.select('#my-canvas').fields({ // 选择需要生成canvas的范围
|
|
|
size: true,
|
|
|
scrollOffset: true
|
|
|
}, data => {
|
|
|
let width = data.width;
|
|
|
let height = data.height;
|
|
|
that.setData({
|
|
|
width,
|
|
|
height
|
|
|
})
|
|
|
setTimeout(() => {
|
|
|
that.startDraw()
|
|
|
}, 1500);
|
|
|
}).exec()
|
|
|
},
|
|
|
startDraw() {
|
|
|
let that = this
|
|
|
|
|
|
// 创建wxml2canvas对象
|
|
|
let drawMyImage = new Wxml2Canvas({
|
|
|
element: 'myCanvas', // canvas的id,
|
|
|
obj: that, // 传入当前组件的this
|
|
|
width: that.data.width ,
|
|
|
height: that.data.height,
|
|
|
background: '#fff', // 生成图片的背景色
|
|
|
progress(percent) { // 进度
|
|
|
// console.log(percent);
|
|
|
},
|
|
|
finish(url) { // 生成的图片
|
|
|
wx.hideLoading()
|
|
|
console.log(url);
|
|
|
that.savePoster(url)
|
|
|
},
|
|
|
error(res) { // 失败原因
|
|
|
console.log(res);
|
|
|
wx.hideLoading()
|
|
|
}
|
|
|
}, this);
|
|
|
let data = {
|
|
|
// 获取wxml数据
|
|
|
list: [{
|
|
|
type: 'wxml',
|
|
|
class: '.my_canvas .my_draw_canvas', // my_canvas要绘制的wxml元素根类名, my_draw_canvas单个元素的类名(所有要绘制的单个元素都要添加该类名)
|
|
|
limit: '.my_canvas', // 要绘制的wxml元素根类名
|
|
|
x: 0,
|
|
|
y: 0
|
|
|
}]
|
|
|
}
|
|
|
// 绘制canvas
|
|
|
drawMyImage.draw(data, this);
|
|
|
},
|
|
|
savePoster(url) {
|
|
|
const that = this
|
|
|
wx.saveImageToPhotosAlbum({
|
|
|
filePath: url,
|
|
|
success: () => {
|
|
|
wx.showToast({
|
|
|
title: '保存成功',
|
|
|
icon: 'none',
|
|
|
duration: 1500
|
|
|
});
|
|
|
this.setData({showCanvas: false})
|
|
|
},
|
|
|
fail(err) {
|
|
|
if (err.errMsg === "saveImageToPhotosAlbum:fail:auth denied" || err.errMsg === "saveImageToPhotosAlbum:fail auth deny" || err.errMsg === "saveImageToPhotosAlbum:fail authorize no response") {
|
|
|
wx.showModal({
|
|
|
title: '提示',
|
|
|
content: '需要您授权保存相册',
|
|
|
showCancel: false,
|
|
|
success: modalSuccess => {
|
|
|
wx.openSetting({
|
|
|
success(settingdata) {
|
|
|
if (settingdata.authSetting['scope.writePhotosAlbum']) {
|
|
|
wx.saveImageToPhotosAlbum({
|
|
|
filePath: url,
|
|
|
success: function () {
|
|
|
wx.showToast({
|
|
|
title: '保存成功',
|
|
|
icon: 'success',
|
|
|
duration: 2000
|
|
|
})
|
|
|
},
|
|
|
})
|
|
|
} else {
|
|
|
wx.showToast({
|
|
|
title: '授权失败,请稍后重新获取',
|
|
|
icon: 'none',
|
|
|
duration: 1500
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
}
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
|
|
|
|
|
|
// 获取我的许愿
|
|
|
getMyWish(){
|
|
|
req.getRequest('/api/user/curt/wish',{limit: '-1'}).then((res)=>{
|
|
|
if(res.data.code==200){
|
|
|
this.setData({wishes:res.data.data.records})
|
|
|
}
|
|
|
}).catch((err)=>{
|
|
|
console.log(err);
|
|
|
})
|
|
|
req.getRequest('/api/user/curt/lover/wish',{limit: '-1'}).then((res)=>{
|
|
|
if(res.data.code==200){
|
|
|
this.setData({LoveWishes:res.data.data.records})
|
|
|
}
|
|
|
}).catch((err)=>{
|
|
|
console.log(err);
|
|
|
})
|
|
|
},
|
|
|
|
|
|
// 获取愿望详情 修改愿望
|
|
|
getWishDetaile(id){
|
|
|
req.getRequest(`/api/user/curt/wish/${id}`,{}).then(res => {
|
|
|
console.log(res,'22222');
|
|
|
if (res.data.code === 200) {
|
|
|
const data = res.data.data
|
|
|
const list = [{
|
|
|
url: data.img,
|
|
|
type: 'image'
|
|
|
}]
|
|
|
this.setData({
|
|
|
visible: true,
|
|
|
xyContent: data.content,
|
|
|
note: data.deadline,
|
|
|
xyLink: data.link,
|
|
|
fileList: list,
|
|
|
imgUrl: data.img,
|
|
|
id: data.id
|
|
|
})
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面加载
|
|
|
*/
|
|
|
onLoad(options) {
|
|
|
this.initXy()
|
|
|
this.getMyWish()
|
|
|
|
|
|
// 修改愿望
|
|
|
if (options.id) {
|
|
|
this.getWishDetaile(options.id)
|
|
|
}
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
*/
|
|
|
onReady() {
|
|
|
this.initXy()
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面显示
|
|
|
*/
|
|
|
onShow() {
|
|
|
this.getMyWish()
|
|
|
this.initXy()
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
*/
|
|
|
onHide() {
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
*/
|
|
|
onUnload() {
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
*/
|
|
|
onPullDownRefresh() {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
*/
|
|
|
onReachBottom() {
|
|
|
|
|
|
},
|
|
|
|
|
|
/**
|
|
|
* 用户点击右上角分享
|
|
|
*/
|
|
|
onShareAppMessage() {
|
|
|
},
|
|
|
|
|
|
// 分享到朋友圈
|
|
|
onShareTimeline(){}
|
|
|
}) |