zhongping-miniprogram/miniprogram/pages/card/card.ts

326 lines
7.4 KiB
TypeScript

// pages/card/card.ts
// import { card } from '../../utils/painter'
import { info } from "../../apis/phone";
import { businessCard } from "../../apis/card";
Page({
/**
* 页面的初始数据
*/
data: {
cardPainter: {},
isEdit: false,
companyName: "",
consumerId: "",
email: "",
introduction: "",
name: "",
office: "",
phone: "",
businessCard: null,
labelOptions: [],
dialogExplain: false,
type: 0,
info: {},
dialogDetail: false,
detailInfo: '',
detailTitle: ''
},
// saveImage() {
// let screenWidth = wx.getSystemInfoSync().screenWidth;
// let screenHeight = wx.getSystemInfoSync().screenHeight;
// let canvasContext = wx.createCanvasContext('myCanvas');
// wx.createSelectorQuery().select('#saveArea').boundingClientRect(function (rect) {
// let top = rect.top;
// let left = rect.left;
// let width = rect.width;
// let height = rect.height;
// console.log(top, left, width, height);
// canvasContext.drawImage('../../assets/images/card/card_bg.png', 0, 100, screenWidth, screenHeight);
// // 将第二个绘制操作放在canvasContext.draw()方法中
// canvasContext.draw(false, () => {
// // 在回调函数中调用wx.canvasToTempFilePath()方法进行保存图片
// wx.canvasToTempFilePath({
// canvasId: 'myCanvas',
// x: left,
// y: top,
// width: width,
// height: height,
// destWidth: screenWidth * 2,
// destHeight: screenHeight * 2,
// success: function (res) {
// wx.saveImageToPhotosAlbum({
// filePath: res.tempFilePath,
// success: function () {
// wx.showToast({
// title: '保存成功'
// });
// },
// fail: function () {
// wx.showToast({
// title: '保存失败'
// });
// }
// });
// }
// });
// });
// }).exec();
// },
handleEdit() {
console.log('handleEdit');
const { isEdit } = this.data
this.setData({
isEdit: !isEdit
})
// if (isEdit) {
// const { companyName, email, introduction, office, phone } = this.data
// const payload = {
// companyName, email, introduction, office, phone
// }
// businessCard(payload).then(res => {
// console.log(res);
// this.getInfo(phone)
// })
// }
// },
},
handleCancelEdit() {
console.log('handleCancelEdit');
this.setData({
isEdit: false
})
},
handleSearch(){
wx.navigateTo({
url:`/pages/searchResult/searchResult?phone=${this.data.phone}`
})
},
handleSave() {
const { companyName, email, introduction, office, phone } = this.data
const payload = {
companyName, email, introduction, office, phone
}
businessCard(payload).then((res: any) => {
console.log(res);
if (res.c === 200) {
wx.showToast({
icon: 'none',
title: '保存成功'
})
this.getInfo(phone)
this.setData({
isEdit: false
})
}
})
},
handleSaveContract() {
const info = this.data.info.businessCard
wx.addPhoneContact({
firstName: info.name,
email: info.email,
organization: info.companyName,
title: info.office,
mobilePhoneNumber:this.data.phone
})
},
handleDetail() {
const { phone } = this.data
wx.navigateTo({
url: `/pages/searchResult/searchResult?phone=${phone}`
})
},
closeDetail() {
this.setData({
dialogDetail: false
})
},
showExplain() {
this.setData({
dialogExplain: true
})
},
closeExplain() {
this.setData({
dialogExplain: false
})
},
// onImgOK(e: WechatMiniprogram.CustomEvent) {
// const { path } = e.detail
// this.setData({
// shareImg: path
// })
// // wx.showShareImageMenu({ //分享给朋友
// // path,
// // success: (res) => {
// // console.log("分享成功:", res);
// // },
// // fail: (err) => {
// // console.log("分享失败:", err);
// // wx.showToast({
// // title: "分享失败",
// // duration: 2000
// // })
// // },
// // })
// },
handleDialogDetail(e: WechatMiniprogram.BaseEvent) {
console.log(e);
const { title, info } = e.currentTarget.dataset
if (info) {
this.setData({
dialogDetail: true,
detailInfo: info,
detailTitle: title
})
}
},
getInfo(phone: string) {
const { type } = this.data
info({ phone, type, businessCard: true }).then((res: any) => {
let { labelVoList } = res.d
if (res.d.businessCard) {
const { companyName, email, introduction, office } = res.d.businessCard
if(labelVoList){
labelVoList = labelVoList.slice(0, 1)
}
this.setData({
businessCard: res.d.businessCard,
companyName,
email,
introduction,
office,
labelOptions: labelVoList,
info: res.d
})
} else {
this.setData({
info: res.d,
labelOptions: labelVoList,
})
}
// this.setData({
// businessCard: res.d.businessCard,
// companyName,
// email,
// introduction,
// office,
// labelOptions: res.d.labelVoList.slice(0, 2),
// info: res.d
// })
})
// this.downLoadCard()
},
phoneCall() {
wx.makePhoneCall({
phoneNumber: this.data.phone,
})
},
// async downLoadCard() {
// console.log('downLoadCard');
// const cardPainter = await card()
// this.setData({
// cardPainter
// })
// },
handleCopy(e) {
const { email } = e.currentTarget.dataset
wx.setClipboardData({
data: email,
success(res) {
wx.showToast({
title: '复制成功',
icon: 'none'
})
// wx.getClipboardData({
// success(res) {
// console.log(res.data) // data
// }
// })
}
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options);
const { type, phone } = options
this.setData({
type: Number(type),
phone
})
this.getInfo(phone)
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
const promise = new Promise(resolve => {
setTimeout(() => {
resolve({
title: '您好,这是我的口碑名片,请收下',
imageUrl: this.data.shareImg,
path: `/pages/card/card?phone=${this.data.phone}&type=1`,
})
})
})
return {
title: '您好,这是我的口碑名片,请收下',
path: '/pages/card/card',
promise
}
}
})