tsteam-business-card-card-mini/packagecard/marketing/posteredit.js
2024-02-22 11:04:15 +08:00

318 lines
8.6 KiB
JavaScript
Executable File

const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
preview: '',
showHide: false,
isLoading: false,
isMain: '',
cardPersonId: '',
choose_index: 0,
active: 0,
cardUrl: app.urls.baseImgUrl,
areaList: [],
cardInfo: {},
bgImg: '',
fontFamilyList: [],
useFontFamily: '',
cardId: '',
cardHeight: '',
shareTicket: '',
encryptedData: '',
iv: '',
isFromOut: false,
token: '',
oldToken: '',
imgTempSrc: '',
currentIndex: 0,
windowWidth: app.globalData.windowWidth
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var self = this
this.setData({
cardId: options.id,
token: app.globalData.token
})
this.getPosterDetail()
},
onShow(e) {
if (this.data.imgTempSrc != '') {
this.doUploadImg(this.data.imgTempSrc)
}
},
// 删除海报
deleteCard() {
var self = this
wx.showModal({
cancelColor: '#000',
title: '提示',
content: '确定要删除该海报吗?',
success: function (res) {
if (res.confirm) {
wx.showLoading({
title: '删除中...',
})
app.http.delete(app.urls.deleteCard.format({
ids: self.data.cardId
}), {
header: {
token: self.data.token
}
}).then(res => {
wx.hideLoading({})
if (res.statusCode == '200') {
wx.showToast({
title: '删除成功',
icon: 'success',
success() {
setTimeout(() => {
let arr = getCurrentPages()
let lastPage = (arr.length >= 2) ? arr[arr.length - 2] : undefined
var isDel = self.data.cardInfo.cardTemplateUseDefault == '1'
lastPage.setData({
isRefresh: true,
isDelPage: isDel
})
wx.navigateBack({})
}, 500);
}
})
}
}).catch(res => {
})
}
}
})
},
// 更新海报
updateCard(e) {
wx.showLoading({
title: '修改中...',
})
var self = this
var area = []
for (let i = 0; i < self.data.areaList.length; i++) {
var info = {
cardTemplateUseId: self.data.areaList[i].cardTemplateUseId,
cardTemplateUseAreaId: self.data.areaList[i].cardTemplateUseAreaId,
templateAreaFile: self.data.areaList[i].templateAreaFile,
templateAreaFontValue: self.data.areaList[i].templateAreaFontValue
}
area.push(info)
}
var postInfo = {
cardTemplateUseAreaList: area,
cardTemplateUseDefault: self.data.cardInfo.cardTemplateUseDefault,
cardTemplateUsePassword: self.data.cardInfo.cardTemplateUsePassword,
cardTemplateUseSwitch: self.data.cardInfo.cardTemplateUseSwitch,
cardTemplateUseId: self.data.cardInfo.cardTemplateUseId
}
app.http.put(app.urls.updateMyCard.format({
cardTemplateUseId: self.data.cardId
}), {
header: {
token: app.globalData.token
},
data: postInfo
}).then(res => {
wx.hideLoading({})
if (res.statusCode == '200') {
wx.showToast({
title: '修改成功',
icon: 'success',
success() {
setTimeout(() => {
let arr = getCurrentPages()
let lastPage = (arr.length >= 2) ? arr[arr.length - 2] : undefined
lastPage.setData({
isRefresh: true
})
wx.navigateBack({})
}, 500)
}
})
}
})
.catch(err => {
})
},
//输入框失去焦点
inputBlur(e) {
var _self = this
// templateAreaFontLength
var value = e.detail.value
var index = e.currentTarget.dataset.num
var item = e.currentTarget.dataset.item
//计算限制长度
//最大长度
var maxLength = item.templateAreaFontLength
if (value != '' && maxLength > 0) {
value = value.substr(0, maxLength)
//重新设置
_self.data.areaList[index].templateAreaFontValue = value
_self.data.areaList[index].focus = false
_self.setData({
areaList: _self.data.areaList
})
}
//生成二维码图片
if (item.templateAreaServerLink != '1') {
_self.getFileId(index)
}
},
// 选择图片
choosePhoto: function (e) {
var self = this
var cur = e.currentTarget.dataset.cur
var item = e.currentTarget.dataset.item
self.setData({
currentIndex: cur
})
//宽高比
var scale = item.templateAreaWidth / item.templateAreaHeight
wx.chooseImage({
count: 1,
sourceType: ['album', 'camera'],
success: function (res) {
wx.navigateTo({
url: '/packagecard/common/corpperimg/cropperimg?imgSrc=' + res.tempFiles[0].path + '&scale=' + scale,
})
}
})
},
doUploadImg(path) {
var _self = this
wx.showLoading({
title: '上传中...',
})
app.http.upload(app.urls.doUploadImg, {
path: path,
name: 'image',
header: {
token: app.globalData.token
}
}).then(res => {
wx.hideLoading({})
res = JSON.parse(res)
var change = 'areaList[' + _self.data.currentIndex + '].templateAreaFile'
_self.setData({
[change]: res.data
})
wx.showToast({
title: '上传成功',
duration: 1500
})
_self.setData({
imgTempSrc: '',
currentIndex: 0
})
}).catch(res => {
_self.setData({
imgTempSrc: '',
currentIndex: 0
})
})
},
// 获取海报信息
getPosterDetail() {
var self = this;
app.http.get(app.urls.getMyCardDetail.format({
cardTemplateUseId: self.data.cardId
}), {
header: {
token: app.globalData.token
},
data: {}
}).then(res => {
var area = res.data.areaList
var scale = res.data.cardTemplateUseWidth / self.data.windowWidth
res.data.cardTemplateUseWidth = res.data.cardTemplateUseWidth / scale
res.data.cardTemplateUseHeight = res.data.cardTemplateUseHeight / scale
for (let i = 0; i < area.length; i++) {
area[i].templateAreaFontSize = area[i].templateAreaFontSize / scale + 'px'
area[i].templateAreaHeight = area[i].templateAreaHeight / scale
area[i].templateAreaWidth = area[i].templateAreaWidth / scale
area[i].templateAreaDown = area[i].templateAreaDown / scale
area[i].templateAreaTop = area[i].templateAreaTop / scale
area[i].templateAreaRight = area[i].templateAreaRight / scale
area[i].templateAreaLeft = area[i].templateAreaLeft / scale
if (area[i].templateAreaFontCenter == '1') {
area[i].templateAreaFontCenter = 'left'
} else if (area[i].templateAreaFontCenter == '2') {
area[i].templateAreaFontCenter = 'center'
} else {
area[i].templateAreaFontCenter = 'right'
}
if (area[i].templateAreaFontBold == '0') {
area[i].templateAreaFontBold = 'normal'
} else if (area[i].templateAreaFontBold == '1') {
area[i].templateAreaFontBold = 'bold'
} else {
area[i]['templateAreaFontStyle'] = 'italic'
}
}
self.setData({
cardInfo: res.data,
areaList: area
})
})
.catch(err => {
})
},
// 编辑信息
editInfo: function (e) {
var cur = e.currentTarget.dataset.num
var text = e.detail.value
var item = 'areaList[' + cur + '].templateAreaFontValue'
this.setData({
[item]: text
})
},
// 点击内容区域获取input焦点
giveFocus(e) {
var cur = e.currentTarget.dataset.cur
var item = 'areaList[' + cur + '].focus'
this.setData({
[item]: true
})
},
// 非文字、图片区域换取fileid
getFileId(index) {
var self = this
var cur = index
var content = self.data.areaList[cur].templateAreaFontValue
var areaId = self.data.areaList[cur].picturesTemplateAreaId
app.http.get(app.urls.getFileId.format({
picturesTemplateAreaId: areaId
}), {
header: {
token: app.globalData.token
},
data: {
content: content
}
}).then(res => {
console.log(res.data)
var change = 'areaList[' + cur + '].templateAreaFile'
self.setData({
[change]: res.data.data
})
})
.catch(err => {
})
},
})