123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- // +----------------------------------------------------------------------
- // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
- // +----------------------------------------------------------------------
- // | Copyright (c) 2016~2021 https://www.crmeb.com All rights reserved.
- // +----------------------------------------------------------------------
- // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
- // +----------------------------------------------------------------------
- // | Author: CRMEB Team <admin@crmeb.com>
- // +----------------------------------------------------------------------
- import {
- imageBase64
- } from "@/api/public";
- import {
- getProductCode, // 普通商品小程序code
- } from "@/api/store.js";
- import {
- scombinationCode, // 拼团code
- seckillCode // 秒杀
- } from '@/api/activity.js';
- import i18n from '../utils/lang.js';
- let sysHeight = uni.getSystemInfoSync().statusBarHeight + 'px';
- export const sharePoster = {
- data() {
- return {
- //二维码参数
- codeShow: false,
- cid: '1',
- codeVal: "", // 要生成的二维码值
- size: 200, // 二维码大小
- unit: 'upx', // 单位
- background: '#FFF', // 背景色
- foreground: '#000', // 前景色
- pdground: '#000', // 角标色
- codeIcon: '', // 二维码图标
- iconsize: 40, // 二维码图标大小
- lv: 3, // 二维码容错级别 , 一般不用设置,默认就行
- onval: true, // val值变化时自动重新生成二维码
- loadMake: true, // 组件加载完成后自动生成二维码
- base64Show: 0,
- shareQrcode: 0,
- followCode: '',
- selectSku: {},
- currentPage: false,
- sysHeight: sysHeight,
- isShow: 0,
- storeImageBase64: ''
- };
- },
- methods: {
- qrR(res) {
- // #ifdef H5
- if (!this.$wechat.isWeixin() || this.shareQrcode != '1') {
- this.PromotionCode = res;
- this.followCode = ''
- }
- // #endif
- // #ifdef APP-PLUS
- this.PromotionCode = res;
- // #endif
- },
- getImageBase64() {
- let that = this;
- imageBase64(that.storeImage, this.storeInfo.wechat_code)
- .then((res) => {
- that.storeImageBase64 = res.data.image;
- if (this.storeInfo.wechat_code) {
- that.PromotionCode = res.data.code;
- }
- })
- .catch(() => {});
- },
- initPoster(arr2) {
- let that = this;
- uni.getImageInfo({
- src: that.PromotionCode,
- success() {
- if (arr2[2] == "") {
- //海报二维码不存在则从新下载
- that.downloadFilePromotionCode(function(
- msgPromotionCode) {
- arr2[2] = msgPromotionCode;
- if (arr2[2] == "")
- return that.$util.Tips({
- title: i18n.t(
- `海报二维码生成失败`
- ),
- });
- that.$util.PosterCanvas(
- arr2,
- that.storeInfo.store_name,
- that.storeInfo.price,
- that.storeInfo.ot_price,
- function(tempFilePath) {
- that.$set(that,
- "posterImage",
- tempFilePath);
- that.$set(that,
- "posterImageStatus",
- true);
- that.$set(that,
- "canvasStatus",
- false);
- that.$set(that,
- "actionSheetHidden",
- !that
- .actionSheetHidden
- );
- }
- );
- });
- } else {
- //生成推广海报
- that.$nextTick(e => {
- that.$util.PosterCanvas(
- arr2,
- that.storeInfo.store_name,
- that.storeInfo.price,
- that.storeInfo.ot_price,
- function(tempFilePath) {
- that.$set(that,
- "posterImage",
- tempFilePath);
- that.$set(that,
- "posterImageStatus",
- true);
- that.$set(that,
- "canvasStatus",
- false);
- that.$set(that,
- "actionSheetHidden",
- !that
- .actionSheetHidden
- );
- }
- );
- })
- }
- },
- fail: function(res) {
- // #ifdef H5
- return that.$util.Tips({
- title: res,
- });
- // #endif
- // #ifdef MP
- return that.$util.Tips({
- title: i18n.t(`正在下载海报,请稍后再试`),
- });
- // #endif
- },
- });
- },
- /**
- * 生成海报
- */
- async goPoster(type) {
- let that = this;
- that.posters = false;
- that.$set(that, "canvasStatus", true);
- let arr2
- // #ifdef MP
- let met = type === 'scombination' ? scombinationCode(that.id) : type === 'seckill' ? seckillCode(
- that
- .id) : getProductCode(that.id)
- met.then((res) => {
- uni.downloadFile({
- url: that.setDomain(res.data.code),
- success: function(res) {
- that.$set(that, "isDown", false);
- that.$set(that, "PromotionCode", res.tempFilePath)
- if (typeof successFn == "function")
- successFn && successFn(res.tempFilePath);
- arr2 = [that.posterbackgd, that.storeImage, that.PromotionCode];
- that.initPoster(arr2)
- },
- fail: function() {
- that.$set(that, "isDown", false);
- that.$set(that, "PromotionCode", "");
- },
- });
- })
- .catch((err) => {
- that.$set(that, "isDown", false);
- that.$set(that, "PromotionCode", "");
- return that.$util.Tips({
- title: err,
- });
- });
- // #endif
- // #ifdef H5 || APP-PLUS
- arr2 = [that.posterbackgd, that.storeImageBase64, that.PromotionCode];
- if (!that.storeImageBase64)
- return that.$util.Tips({
- title: i18n.t(`正在下载海报,请稍后再试`),
- });
- that.initPoster(arr2)
- // #endif
- },
- //替换安全域名
- setDomain(url) {
- url = url ? url.toString() : "";
- //本地调试打开,生产请注销
- if (url.indexOf("https://") > -1) return url;
- else return url.replace("http://", "https://");
- },
- //获取海报产品图
- downloadFilestoreImage() {
- let that = this;
- uni.downloadFile({
- url: that.setDomain(that.storeInfo.image),
- success: function(res) {
- that.storeImage = res.tempFilePath;
- that.storeImageBase64 = res.tempFilePath;
- },
- fail: function() {
- return that.$util.Tips({
- title: "",
- });
- that.storeImage = "";
- },
- });
- },
- /**
- * 获取产品分销二维码
- * @param function successFn 下载完成回调
- *
- */
- downloadFilePromotionCode(successFn) {
- let that = this;
- // #ifdef MP
- getProductCode(that.id)
- .then((res) => {
- uni.downloadFile({
- url: that.setDomain(res.data.code),
- success: function(res) {
- that.$set(that, "isDown", false);
- that.$set(that, "PromotionCode", res.tempFilePath)
- if (typeof successFn == "function")
- successFn && successFn(res.tempFilePath);
- },
- fail: function() {
- that.$set(that, "isDown", false);
- that.$set(that, "PromotionCode", "");
- },
- });
- })
- .catch((err) => {
- that.$set(that, "isDown", false);
- that.$set(that, "PromotionCode", "");
- return that.$util.Tips({
- title: err,
- });
- });
- // #endif
- // #ifdef APP-PLUS
- uni.downloadFile({
- url: that.setDomain(that.PromotionCode),
- success: function(res) {
- that.$set(that, "isDown", false);
- if (typeof successFn == "function")
- successFn && successFn(res.tempFilePath);
- else that.$set(that, "PromotionCode", res.tempFilePath);
- },
- fail: function() {
- that.$set(that, "isDown", false);
- that.$set(that, "PromotionCode", "");
- },
- });
- // #endif
- },
- }
- };
|