436 lines
11 KiB
TypeScript
436 lines
11 KiB
TypeScript
// pages/reportPreview/reportPreview.ts
|
|
// import drawQrcode = require('../../utils/weapp-qrcode')
|
|
// import QRCode from '../../utils/weapp-qrcode.js'
|
|
let qrcode = require("../../utils/weapp-qrcode.js");
|
|
const app = getApp<IAppOption>()
|
|
import { reportPreview, visitReport, reportSave, certificateDetail, certificateDetail2, reportCreateDate } from "../../apis/report";
|
|
import { baseUrl } from '../../utils/request'
|
|
import { card, certifivate } from '../../utils/painter'
|
|
import { querystrToObj } from '../../utils/util'
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
id: '',
|
|
active: 1, // 1:证书,2:报告,3:二维码报告
|
|
switch: false,
|
|
toggles: {
|
|
基础信息: true,
|
|
学历教育: true,
|
|
非学历教育: true,
|
|
职业经历: true,
|
|
社会活动经历: true
|
|
},
|
|
type: 0, // 0:预览,
|
|
report: {},
|
|
isSourceShow: true,
|
|
cardQr: '',
|
|
myQrcode: '',
|
|
certificateInfo: {},
|
|
cardPainter: {},
|
|
certifivatePainter: {},
|
|
// reportCreateDate: ''
|
|
},
|
|
getReport(payload: any) {
|
|
reportPreview(payload).then((res: any) => {
|
|
let temp = res.d
|
|
// console.log(temp);
|
|
|
|
Object.keys(temp).forEach(key1 => {
|
|
if (key1 !== '基础信息') {
|
|
temp[key1].map((tempData: any) => {
|
|
if (tempData['附件']) {
|
|
let temps = this.strToArr(tempData['附件'].dataValue)
|
|
temps.map((item: any, index: number) => {
|
|
// console.log('###',item);
|
|
temps[index] = item//.slice(0,item.lastIndexOf(':')+1)+'附件_'+item.slice(item.lastIndexOf(':')+1)
|
|
})
|
|
tempData['附件'].dataValue = temps
|
|
}
|
|
if (tempData['事件/活动记录']) {
|
|
tempData['事件/活动记录'].map((item: any, index: any) => {
|
|
if (item['附件']) {
|
|
let temps = this.strToArr(item['附件'].dataValue || '')
|
|
tempData['事件/活动记录'][index]['附件'].dataValue = temps
|
|
}
|
|
})
|
|
}
|
|
|
|
if (tempData['岗位记录']) {
|
|
tempData['岗位记录'].map((item: any, index: number) => {
|
|
if (item['附件']) {
|
|
let temps = this.strToArr(item['附件'].dataValue || '')
|
|
tempData['岗位记录'][index]['附件'].dataValue = temps
|
|
}
|
|
})
|
|
}
|
|
})
|
|
}
|
|
})
|
|
|
|
this.setData({
|
|
report: temp
|
|
})
|
|
})
|
|
},
|
|
strToArr(str: string) {
|
|
return (str || '').split(',')
|
|
},
|
|
getVisitReport(id: string) {
|
|
visitReport(id).then((res: any) => {
|
|
this.setData({
|
|
report: res.d
|
|
})
|
|
})
|
|
},
|
|
getVisitReport2(id: string) {
|
|
certificateDetail2(id).then((res: any) => {
|
|
this.setData({
|
|
report: res.d
|
|
})
|
|
})
|
|
},
|
|
setQrcode() {
|
|
const { type } = this.data
|
|
// const path = encodeURIComponent('/pages/reportPreview/reportPreview')
|
|
let url = `${baseUrl}/consumer/wechatshare/getUrlLink`
|
|
const query = encodeURIComponent(`type=2&active=3&source=2&id=${this.data.id}`)
|
|
// &env_version=${__wxConfig.envVersion}
|
|
// @ts-ignore
|
|
if (type !== 0) {
|
|
url = `${url}?b=2&query=${query}`
|
|
} else {
|
|
url = 'https://www.chrivc.com'
|
|
}
|
|
// console.log(url)
|
|
qrcode({
|
|
width: 105,
|
|
height: 105,
|
|
canvasId: 'myQrcode',
|
|
text: url,
|
|
callback: (response: any) => {
|
|
// 生成二维码的临时文件
|
|
console.log(response)
|
|
setTimeout(() => {
|
|
wx.canvasToTempFilePath({
|
|
canvasId: 'myQrcode',
|
|
success: (res) => {
|
|
console.log(res)
|
|
// resolve(res.tempFilePath)
|
|
this.setData({
|
|
myQrcode: res.tempFilePath
|
|
})
|
|
},
|
|
fail: (err) => {
|
|
console.log(err)
|
|
}
|
|
}, this)
|
|
}, 500)
|
|
}
|
|
})
|
|
|
|
qrcode({
|
|
width: 253,
|
|
height: 253,
|
|
canvasId: 'cardQr',
|
|
text: url,
|
|
image: {
|
|
imageResource: '/assets/images/logo.png',
|
|
dx: 89.5,
|
|
dy: 89.5,
|
|
dWidth: 74,
|
|
dHeight: 74
|
|
},
|
|
callback: (response: any) => {
|
|
// 生成二维码的临时文件
|
|
console.log(response)
|
|
setTimeout(() => {
|
|
wx.canvasToTempFilePath({
|
|
canvasId: 'cardQr',
|
|
success: (res) => {
|
|
console.log(res)
|
|
// resolve(res.tempFilePath)
|
|
this.setData({
|
|
cardQr: res.tempFilePath
|
|
})
|
|
},
|
|
fail: (err) => {
|
|
console.log(err)
|
|
}
|
|
}, this)
|
|
}, 500)
|
|
}
|
|
})
|
|
console.log('setqr');
|
|
|
|
},
|
|
handleTabChange(e: WechatMiniprogram.BaseEvent) {
|
|
console.log('handleTab', e);
|
|
console.log(e.currentTarget.dataset.active);
|
|
|
|
|
|
this.setData({
|
|
active: e.currentTarget.dataset.active
|
|
})
|
|
},
|
|
handleSwitch() {
|
|
this.setData({
|
|
switch: !this.data.switch
|
|
})
|
|
},
|
|
handleToggle(e: WechatMiniprogram.BaseEvent) {
|
|
console.log(e);
|
|
|
|
const { toggled, key } = e.currentTarget.dataset
|
|
// if (show) {
|
|
// const { toggles } = this.data
|
|
// toggles[key] = !toggled
|
|
this.setData({
|
|
// toggles: toggles
|
|
[`toggles.${key}`]: !toggled
|
|
})
|
|
// }
|
|
},
|
|
// openpreviewImg() {
|
|
// this.selectComponent("#previewComponent").showPreview();
|
|
// },
|
|
toggleAll() {
|
|
this.setData({
|
|
toggles: {
|
|
基础信息: false,
|
|
学历教育: false,
|
|
非学历教育: false,
|
|
职业经历: false,
|
|
社会活动经历: false
|
|
},
|
|
})
|
|
},
|
|
goTop() {
|
|
wx.pageScrollTo({
|
|
scrollTop: 0
|
|
})
|
|
},
|
|
|
|
async downLoadCard() {
|
|
const { cardQr } = this.data
|
|
if (!cardQr) {
|
|
wx.showToast({
|
|
icon: 'error',
|
|
title: '二维码生成中...'
|
|
})
|
|
return
|
|
}
|
|
const cardPainter = await card(this.data.cardQr)
|
|
this.setData({
|
|
cardPainter
|
|
})
|
|
},
|
|
async downLoadCertifivate() {
|
|
const { myQrcode } = this.data
|
|
if (!myQrcode) {
|
|
wx.showToast({
|
|
icon: 'error',
|
|
title: '二维码生成中...'
|
|
})
|
|
return
|
|
}
|
|
wx.showLoading({
|
|
title: '请稍等...'
|
|
})
|
|
const cardPainter = await certifivate(this.data.myQrcode, this.data.certificateInfo, false)
|
|
this.setData({
|
|
cardPainter
|
|
})
|
|
},
|
|
async downLoadCertifivateNoIdCard() {
|
|
const { myQrcode } = this.data
|
|
if (!myQrcode) {
|
|
wx.showToast({
|
|
icon: 'error',
|
|
title: '二维码生成中...'
|
|
})
|
|
return
|
|
}
|
|
wx.showLoading({
|
|
title: '请稍等...'
|
|
})
|
|
const cardPainter = await certifivate(this.data.myQrcode, this.data.certificateInfo, true)
|
|
this.setData({
|
|
cardPainter
|
|
})
|
|
},
|
|
onImgOK(e: WechatMiniprogram.CustomEvent) {
|
|
const { path } = e.detail
|
|
console.log('path', path);
|
|
|
|
// wx.saveImageToPhotosAlbum({
|
|
// filePath: path,
|
|
// success: () => {
|
|
// wx.showToast({
|
|
// title: '保存成功',
|
|
// duration: 1500
|
|
// })
|
|
// },
|
|
// fail: (err) => {
|
|
// console.log(err)
|
|
// wx.showToast({
|
|
// icon: 'error',
|
|
// title: '保存失败!',
|
|
// duration: 1500
|
|
// })
|
|
// },
|
|
// complete: () => {
|
|
// wx.hideLoading()
|
|
// }
|
|
// })
|
|
wx.showShareImageMenu({ //分享给朋友
|
|
path,
|
|
success: (res) => {
|
|
console.log("分享成功:", res);
|
|
},
|
|
fail: (err) => {
|
|
console.log("分享失败:", err);
|
|
wx.showToast({
|
|
title: "分享失败",
|
|
duration: 2000
|
|
})
|
|
},
|
|
})
|
|
},
|
|
getReportCreateDate(id: any) {
|
|
reportCreateDate(id).then((res: any) => {
|
|
this.setData({
|
|
reportCreateDate: res.d
|
|
})
|
|
})
|
|
},
|
|
myInformation() {
|
|
wx.reLaunch({
|
|
url: '/pages/information/information'
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad(options) {
|
|
if (!app.globalData.ready) return
|
|
let { active, type, id, q } = options
|
|
if (q) {
|
|
q = decodeURIComponent(q)
|
|
const queryStr = q.split('?')[1]
|
|
const query = querystrToObj(decodeURIComponent(querystrToObj(queryStr).query))
|
|
id = query.id
|
|
type = query.type
|
|
active = query.active
|
|
}
|
|
this.setData({
|
|
active: Number(active),
|
|
id: id,
|
|
type: Number(type),
|
|
certificateInfo: {
|
|
id: '',
|
|
username: app.globalData.userInfo?.name,
|
|
idCard: app.globalData.userInfo?.idCard,
|
|
createDate: Math.floor(new Date().getTime() / 1000),
|
|
blockchain: new Array(64).fill('x')
|
|
},
|
|
reportCreateDate: wx.getStorageSync('reportCreateDate')
|
|
})
|
|
},
|
|
createReport() {
|
|
wx.navigateTo({
|
|
url: '/pages/createReport/createReport'
|
|
})
|
|
},
|
|
getCertificate(id: string) {
|
|
certificateDetail(id).then((res: any) => {
|
|
this.setData({
|
|
certificateInfo: res.d
|
|
})
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow() {
|
|
this.setQrcode()
|
|
if (this.data.type === 1) {
|
|
this.getReport({ id: this.data.id })
|
|
this.getReportCreateDate(this.data.id)
|
|
} else if (this.data.type === 2) {
|
|
if (this.data.active == 1) {
|
|
this.getCertificate(this.data.id)
|
|
this.getReportCreateDate(this.data.id)
|
|
} else if (this.data.active == 2) {
|
|
this.getVisitReport(this.data.id)
|
|
this.getReportCreateDate(this.data.id)
|
|
} else {
|
|
this.getVisitReport2(this.data.id)
|
|
this.getReportCreateDate(this.data.id)
|
|
}
|
|
} else {
|
|
this.getReport({ dataIds: wx.getStorageSync('reportIds') })
|
|
this.setData({
|
|
reportCreateDate: new Date().getTime()
|
|
})
|
|
}
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom() {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage() {
|
|
return {
|
|
title: '溯源优才个人信息报告',
|
|
path: `/pages/reportPreview/reportPreview?id=${this.data.id}&type=2&active=3`,
|
|
imageUrl: 'https://chrivc.obs.cn-north-4.myhuaweicloud.com/6c3f23310db6439db7872a38ef753097:附件_1659085634.png'
|
|
}
|
|
},
|
|
getPaper() {
|
|
console.log('getPaper');
|
|
|
|
wx.showToast({
|
|
icon: 'none',
|
|
title: '暂未开通,敬请等待'
|
|
})
|
|
}
|
|
}) |