card-mini/packagecard/marketing/marketingposter.js

481 lines
14 KiB
JavaScript
Raw Normal View History

2021-09-01 16:55:20 +08:00
// packagecard/marketing/marketingposter.js
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
posterTempleteList: [],
posterHistoryList: [],
currentIndex: 0,
currentPage: 1,
totalPage: 0,
isShowSel: false,
tabList: [{
name: '营销模板',
}, {
name: '我的海报'
2021-09-01 16:55:20 +08:00
}],
isRefreshing: false, //是否刷新中
isLoadMore: false, //是否在加载中
hasMore: true,
imgUrl: app.urls.baseImgUrl,
isRefresh: false,
currentTypeIndex: 0, //当前选择的类型索引
optionsList: [], //类型
curTypeId: '',
isShowOptions: false, //是否显示选项
curItemIndex: -1, //点击分享按钮弹出的
curTypeName: '全部',
contentHeight: 550, //内容区域的高度
2021-09-01 16:55:20 +08:00
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var _self = this
//获取类型
_self.getOptionsList()
this.setData({
contentHeight: app.globalData.windowHeight
})
2021-09-01 16:55:20 +08:00
},
//获取类型
getOptionsList() {
var _self = this
wx.showLoading({
title: '加载中...',
})
app.http.get(app.urls.getDictionaryList.format({
dataParentId: '4bf68c60-eac5-480d-b5e1-15203d0282f9'
}), {
header: {
token: app.globalData.token
}
})
.then(res => {
wx.hideLoading({})
if (res.data.length > 0) {
_self.setData({
optionsList: res.data,
})
//根据第一条获取数据
_self.getTempleteList()
}
2021-09-03 15:03:38 +08:00
var allItem = {
dataName: '全部',
dataId: '2'
}
2021-09-01 16:55:20 +08:00
var tempItem = {
dataName: '我的收藏',
dataId: '1'
}
2021-09-03 15:03:38 +08:00
_self.data.optionsList.unshift(allItem)
2021-09-01 16:55:20 +08:00
_self.data.optionsList.push(tempItem)
_self.setData({
2021-09-03 15:03:38 +08:00
curTypeId: res.data[0].dataId,
2021-09-01 16:55:20 +08:00
optionsList: _self.data.optionsList
})
})
.catch(err => {
console.log(err)
})
},
//显示类型选项
showType() {
this.setData({
isShowOptions: !this.data.isShowOptions
})
},
//选择类型
chooseType(e) {
var _self = this
var id = e.currentTarget.dataset.id
var idx = e.currentTarget.dataset.idx
2021-09-03 15:03:38 +08:00
var name = e.currentTarget.dataset.name
2021-09-01 16:55:20 +08:00
_self.setData({
currentTypeIndex: idx,
curTypeId: id,
curTypeName: name,
2021-09-01 16:55:20 +08:00
posterHistoryList: [],
posterTempleteList: [],
isShowOptions: false
})
if (_self.data.currentIndex == 0) {
if (_self.data.curTypeId == '1') {
_self.getFavorList()
} else {
_self.getTempleteList()
}
} else {
_self.getHistoryList()
}
},
//收藏
doFavor(e) {
var _self = this
var idx = e.currentTarget.dataset.idx
var id = e.currentTarget.dataset.id
var favor = e.currentTarget.dataset.favor
var msg = ''
if (favor) {
msg = '取消收藏...'
} else {
msg = '收藏中...'
}
wx.showLoading({
title: msg,
})
app.http.post(app.urls.doSaveCollect, {
header: {
token: app.globalData.token
},
data: {
businessId: id,
projectId: 'poster'
}
})
.then(res => {
wx.hideLoading({})
_self.data.posterTempleteList[idx].cardCollect = !favor
_self.setData({
posterTempleteList: _self.data.posterTempleteList
})
})
.catch(err => {})
},
//是否需要刷新
onShow() {
var _self = this
if (_self.data.isRefresh) {
_self.dorefreshList()
}
},
doShare(e) {
var _self = this
var idx = e.currentTarget.dataset.idx
_self.setData({
curItemIndex: idx,
isShowSel: true
})
},
//分享
onShareAppMessage(res) {
var _self = this
_self.setData({
isShowSel: false
})
wx.showShareMenu({
withShareTicket: true,
success: function (res) {
console.log(res)
}
})
var type = res.target.dataset.sharetype
var img = _self.data.imgUrl + _self.data.posterHistoryList[_self.data.curItemIndex].cardTemplateUsePhotoUrl
var id = _self.data.posterHistoryList[_self.data.curItemIndex].cardTemplateUseId
2021-09-01 16:55:20 +08:00
if (type && type == '2') {
//转发个人动态
} else {
var param = '/pages/index/index?cardTemplateUseId=' + id;
2021-09-01 16:55:20 +08:00
return {
title: '活动',
path: param,
imageUrl: img
}
}
},
//预览图片
toImg() {
var _self = this
_self.setData({
isShowSel: false
})
var img = _self.data.imgUrl + _self.data.posterHistoryList[_self.data.curItemIndex].cardTemplateUsePhotoUrl
wx.previewImage({
urls: [img],
})
},
//保存图片到相册
toAlbum() {
var _self = this
_self.setData({
isShowSel: false
})
var img = _self.data.imgUrl + _self.data.posterHistoryList[_self.data.curItemIndex].cardTemplateUsePhotoUrl
wx.getSetting({
success(res) {
if (res.authSetting['scope.writePhotosAlbum']) {
//已经授权相册权限
_self.saveToAlbum(img)
} else if (res.authSetting['scope.writePhotosAlbum'] == undefined) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success(res) {
_self.saveToAlbum(img)
},
fail() {
wx.showToast({
title: '您没有授权,无法保存',
icon: 'none'
})
}
})
} else {
wx.openSetting({
success(res) {
if (res.authSetting['scope.writePhotosAlbum']) {
_self.saveToAlbum(img)
} else {
wx.showToast({
title: '您没有授权,无法保存',
icon: 'none'
})
}
}
})
}
}
})
},
//保存图片到相册
saveToAlbum(url) {
wx.showLoading({
title: '保存中...',
})
wx.downloadFile({
url: url,
success(res) {
if (res.statusCode == 200) {
var path = res.tempFilePath
wx.saveImageToPhotosAlbum({
filePath: path,
success(res) {
wx.hideLoading({})
if (res.errMsg == 'saveImageToPhotosAlbum:ok') {
wx.showToast({
title: '保存成功',
icon: 'success'
})
}
},
fail(err) {
wx.hideLoading({})
wx.showToast({
title: '保存失败,稍后重试',
icon: 'error'
})
}
})
}
},
fail(err) {
wx.hideLoading({})
wx.showToast({
title: '保存失败,稍后重试',
icon: 'error'
})
}
})
},
loadMore() {
var _self = this
if (_self.data.hasMore) {
if (_self.data.isLoadMore) {
return
}
this.setData({
isLoadMore: true
})
}
},
dorefreshList() {
var _self = this
_self.setData({
posterHistoryList: [],
posterTempleteList: [],
isRefreshing: true,
isLoadMore: false,
hasMore: true,
isRefresh: false
})
if (_self.data.currentIndex == 0) {
//获取模板
if (_self.data.curTypeId == '1') {
_self.getFavorList()
} else {
_self.getTempleteList()
}
} else {
_self.getHistoryList()
}
},
//获取模板列表
getTempleteList() {
var _self = this
wx.showLoading({
title: '加载中...',
})
app.http.get(app.urls.getPosterTempleteList, {
header: {
token: app.globalData.token
},
data: {
2021-09-03 15:03:38 +08:00
templateType: _self.data.curTypeId == '2' ? '' : _self.data.curTypeId
2021-09-01 16:55:20 +08:00
}
})
.then(res => {
wx.hideLoading({})
res.data.forEach(it => {
if (it.picturesTemplateNumber < 100) {
//小于100次显示数值
} else {
//大于100次
if (it.picturesTemplateNumber > 100 && it.picturesTemplateNumber < 999) {
it.number = '一百+'
}
}
})
_self.setData({
isRefreshing: false,
isLoadMore: false,
posterTempleteList: res.data
})
})
.catch(err => {
console.log(err)
_self.setData({
isRefreshing: false,
isLoadMore: false
})
})
},
//获取收藏的列表
getFavorList() {
var _self = this
_self.setData({
posterTempleteList: []
})
wx.showLoading({
title: '加载中...',
})
app.http.get(app.urls.getPosterFavorList, {
header: {
token: app.globalData.token
}
})
.then(res => {
wx.hideLoading({})
_self.setData({
isRefreshing: false,
isLoadMore: false,
posterTempleteList: res.data
})
})
.catch(err => {
_self.setData({
isRefreshing: false,
isLoadMore: false
})
})
},
//获取历史发布列表
getHistoryList() {
var _self = this
wx.showLoading({
title: '加载中...',
})
app.http.get(app.urls.getPosterHistory, {
header: {
token: app.globalData.token
},
data: {
mode: '2',
2021-09-03 15:03:38 +08:00
templateType: _self.data.curTypeId == '2' ? '' : _self.data.curTypeId
2021-09-01 16:55:20 +08:00
}
})
.then(res => {
wx.hideLoading({})
_self.setData({
posterHistoryList: res.data,
isRefreshing: false,
isLoadMore: false
})
})
.catch(err => {
_self.setData({
isLoadMore: false,
isRefreshing: false
})
console.log(err)
})
},
onReachBottom() {
// this.loadMore()
},
onChange(e) {
var _self = this
if (_self.data.currentIndex != 0) {
var tempItem = {
dataName: '我的收藏',
dataId: '1'
}
_self.data.optionsList.push(tempItem)
} else {
_self.data.optionsList.splice(_self.data.optionsList.length - 1, 1)
}
_self.setData({
optionsList: _self.data.optionsList
})
_self.setData({
currentIndex: e.detail.index
})
//重置所有数据重新加载
_self.dorefreshList()
},
//去创建海报
toCreate(e) {
var id = e.currentTarget.dataset.id
wx.navigateTo({
url: '/packagecard/marketing/marketingpublish?posterId=' + id
})
},
//编辑海报
toEdit(e) {
var id = e.currentTarget.dataset.id
wx.navigateTo({
url: '/packagecard/marketing/posteredit?id=' + id,
})
},
// 生成随机id
buildId: function () {
var chars = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
var nums = "";
for (var i = 0; i < 36; i++) {
var id = parseInt(Math.random() * 61);
nums += chars[id];
}
return nums
},
//隐藏弹框
onClose(e) {
this.setData({
isShowSel: false
})
}
//分享到朋友圈
// onShareTimeline(options) {
// var params = {}
// params['title'] = '分享朋友圈'
// params['imageUrl'] = 'https://img2.baidu.com/it/u=2645096297,1507428582&fm=26&fmt=auto&gp=0.jpg'
// return params
// }
})