// packagecard/marketing/marketingposter.js const app = getApp() Page({ /** * 页面的初始数据 */ data: { posterTempleteList: [], posterHistoryList: [], currentIndex: 0, currentPage: 1, totalPage: 0, isShowSel: false, tabList: [{ name: '营销模板', }, { name: '发布历史' }], isRefreshing: false, //是否刷新中 isLoadMore: false, //是否在加载中 hasMore: true, imgUrl: app.urls.baseImgUrl, isRefresh: false, currentTypeIndex: 0, //当前选择的类型索引 optionsList: [], //类型 curTypeId: '', isShowOptions: false, //是否显示选项 curItemIndex: -1, //点击分享按钮弹出的 curTypeName: '全部' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var _self = this //获取类型 _self.getOptionsList() }, //获取类型 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() } var allItem = { dataName: '全部', dataId: '2' } var tempItem = { dataName: '我的收藏', dataId: '1' } _self.data.optionsList.unshift(allItem) _self.data.optionsList.push(tempItem) _self.setData({ curTypeId: res.data[0].dataId, 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 var name = e.currentTarget.dataset.name _self.setData({ currentTypeIndex: idx, curTypeId: id, curTypeName:name , 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 if (type && type == '2') { //转发个人动态 } else { var param = '/pages/index/index?posterId=' + img; 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: { templateType: _self.data.curTypeId == '2' ? '' : _self.data.curTypeId } }) .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', templateType: _self.data.curTypeId == '2' ? '' : _self.data.curTypeId } }) .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 // } })