Browse Source

- (2020/04/12) [+] 小程序首页 热门榜单 首发新品 标题有遮挡

- (2020/04/12) [+] 首页榜单进去提示登陆,页面空白:,还有这种总数操作也会就跳转到授权页面,应该是又问题的这快
- (2020/04/12) [+] 全部商品,右边有错误截图如下
- (2020/04/12) [+] 秒杀列表数据不显示;公众号15点的就有数据,但是小程序没有
- (2020/04/12) [+] 7、砍价可以改下,看下最新H5代码,首次进来不自动砍价,自己点击才砍价一次,而且里面详情是乱的
- (2020/04/12) [+] 为啥我也没退出,就取截个图,再进来,点击商品详情,又让登陆,登陆失效怎么这么快,mpvue小程序就没这个问题,这个问题非常严重,一会让让跳转到授权页面登陆!!
- (2020/04/12) [+] 1、商品购买选择规格,这个开始进去点可以,点到后面花色的规格点不动了
- (2020/04/12) [+] 2、拼团客服隐藏掉,下面按钮太那个了,把商品详情那个收藏功能放进来,他们收藏功能都是一样的
- (2020/04/12) [+] 商品详情海报一直海报生成中
- (2020/04/12) [+] 砍价弹窗修改
- (2020/04/11) [+] 1、购买选择规格属性点不了
- (2020/04/11) [+] 12、拼团详情客服功能隐藏去掉,其他地方有客服功能的都去掉
- (2020/04/11) [+] 11、分类点击 会分类Tab页分类一级比一级低
- (2020/04/11) [+] 10、我的推广,里面样式有问题,点击海报里面空白
- (2020/04/11) [+] 9、小程序订单核销没上 你那边先根据路径判断隐藏下
- (2020/04/11) [+] 8、订单点击评价没反应
- (2020/04/11) [+] 6、个人中心我的余额点进去点击账单记录一直正在加载中,点击下全部就出来了,应该你没带默认参数
- (2020/04/11) [+] 5、添加地址选择地区无效
- (2020/04/11) [+] 4、待收货 列表查看物流点击没反应,详情查看物流可以点
- (2020/04/11) [+] 3、下单点击积分抵扣没反应
- (2020/04/11) [+] 2、购物车列表点击管理 点击收藏功能去掉
master
Gao xiaosong 5 years ago
parent
commit
09941a8236
  1. 2
      api/store.js
  2. 2
      assets/css/style.css
  3. 2
      assets/css/style.css.map
  4. 21
      assets/css/style.less
  5. 12
      components/StorePoster.vue
  6. 10
      main.js
  7. 4
      pages/activity/DargainDetails/index.vue
  8. 113
      pages/activity/GoodsSeckill/index.vue
  9. 33
      pages/activity/GroupDetails/index.vue
  10. 8
      pages/home/index.vue
  11. 3
      pages/shop/GoodsCon/index.vue
  12. 2
      pages/shop/HotNewGoods/index.vue
  13. 22
      utils/index.js

2
api/store.js

@ -69,7 +69,7 @@ export function getHostProducts(page, limit) {
* */ * */
export function getGroomList(type) { export function getGroomList(type) {
return request.get("/groom/list/" + type, {}, { return request.get("/groom/list/" + type, {}, {
login: false login: true
}); });
} }

2
assets/css/style.css

File diff suppressed because one or more lines are too long

2
assets/css/style.css.map

File diff suppressed because one or more lines are too long

21
assets/css/style.less

@ -1739,18 +1739,21 @@ flex: 0 2.4*100rpx;
width: 100%; width: 100%;
height: 0.86*100rpx; height: 0.86*100rpx;
padding-left: 0.23*100rpx; padding-left: 0.23*100rpx;
padding-right: 0.23*100rpx;
position: fixed; position: fixed;
left: 0; left: 0;
top: 0; top: 0;
z-index: 5; z-index: 5;
box-sizing: border-box;
} }
.productList .search .input { .productList .search .input {
width: 6.4*100rpx; flex:1;
height: 0.6*100rpx; height: 0.6*100rpx;
background-color: #fff; background-color: #fff;
border-radius: 0.5*100rpx; border-radius: 0.5*100rpx;
padding: 0 0.2*100rpx; padding: 0 0.2*100rpx;
margin-right: 0.23*100rpx;
} }
.productList .search .input input { .productList .search .input input {
@ -2548,7 +2551,7 @@ flex: 0 2.4*100rpx;
width: 100%; width: 100%;
} }
.product-con .product-intro .conter image{ .product-con .product-intro .conter *{
width: 100% !important; width: 100% !important;
display: block !important; display: block !important;
} }
@ -8425,3 +8428,17 @@ flex: 0 2.4*100rpx;
} }
.swiper-wrapper {} .swiper-wrapper {}
.posterCanvasWarp{
position: relative;
width:0;
height:0;
overflow: hidden;
.posterCanvas{
position: absolute;
left:0;
top:0;
width:747px !important;
height:1326px !important;
}
}

12
components/StorePoster.vue

@ -1,6 +1,8 @@
<template> <template>
<view v-if="posterImageStatus" class="poster-first"> <view v-if="posterImageStatus" class="poster-first">
<canvas style="width:747px;height:1326px" canvas-id="myCanvas"></canvas> <div class="posterCanvasWarp">
<canvas class="posterCanvas" canvas-id="myCanvas"></canvas>
</div>
<!-- <view class="poster-pop" v-show="!canvasStatus"> <!-- <view class="poster-pop" v-show="!canvasStatus">
<image <image
src="@/static/images/poster-close.png" src="@/static/images/poster-close.png"
@ -33,7 +35,13 @@
@click="posterImageClose" @click="posterImageClose"
mode="widthFix" mode="widthFix"
/> />
<image :src="posterImage" alt="tp" class="poster-image" show-menu-by-longpress mode="widthFix" /> <image
:src="posterImage"
alt="tp"
class="poster-image"
show-menu-by-longpress
mode="widthFix"
/>
<view class="keep">长按图片可以保存到手机</view> <view class="keep">长按图片可以保存到手机</view>
</view> </view>
<view class="mask"></view> <view class="mask"></view>

10
main.js

@ -31,12 +31,12 @@ Vue.prototype.$validator = function(rule) {
return new schema(rule); return new schema(rule);
}; };
const CACHE_KEY = "clear_0.0.1"; // const CACHE_KEY = "clear_0.0.1";
if (!cookie.has(CACHE_KEY)) { // if (!cookie.has(CACHE_KEY)) {
cookie.clearAll(); // cookie.clearAll();
cookie.set(CACHE_KEY, 1); // cookie.set(CACHE_KEY, 1);
} // }
Vue.config.productionTip = false Vue.config.productionTip = false

4
pages/activity/DargainDetails/index.vue

@ -142,10 +142,10 @@
<view class="conter" v-html="bargain.rule"></view> <view class="conter" v-html="bargain.rule"></view>
</view> </view>
<view class="bargainTip" :class="active === true ? 'on' : ''"> <view class="bargainTip" :class="active === true ? 'on' : ''">
<view class="pictrue"> <!-- <view class="pictrue">
<image src="@/static/images/bargainBg.jpg" /> <image src="@/static/images/bargainBg.jpg" />
<view class="iconfont icon-guanbi" @click="close"></view> <view class="iconfont icon-guanbi" @click="close"></view>
</view> </view> -->
<view class="cutOff" v-if="bargainPartake === userInfo.uid"> <view class="cutOff" v-if="bargainPartake === userInfo.uid">
您已砍掉 您已砍掉
<text class="font-color-red" v-text="bargainHelpPrice"></text>听说分享次数越多砍价成功的机会越大哦 <text class="font-color-red" v-text="bargainHelpPrice"></text>听说分享次数越多砍价成功的机会越大哦

113
pages/activity/GoodsSeckill/index.vue

@ -5,24 +5,36 @@
</view> </view>
<scroll-view scroll-y="false" scroll-x="true"> <scroll-view scroll-y="false" scroll-x="true">
<view class="timeScroll"> <view class="timeScroll">
<view class="" v-for="(item, index) in timeList" :key="index"> <view class v-for="(item, index) in timeList" :key="index">
<view :class="{'timeItem':true,'active':active==index}" @click="changeTime(index)"> <view :class="{'timeItem':true,'active':active==index}" @click="setTime(index)">
<view class="time">{{ item.time }}</view> <view class="time">{{ item.time }}</view>
<view class="state">{{ item.state }}</view> <view class="state">{{ item.state }}</view>
</view> </view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
<view class="" v-for="(item, index) in timeList" :key="index"> <view class v-for="(item, index) in timeList" :key="index">
<view v-if="active == index"> <view v-if="active == index">
<view class="countDown font-color-red acea-row row-center-wrapper"> <view class="countDown font-color-red acea-row row-center-wrapper">
<view v-if="item.status === 0" class="activity">活动已结束</view> <view v-if="item.status === 0" class="activity">活动已结束</view>
<count-down :is-day="false" :tip-text="'距结束仅剩 '" :day-text="''" :hour-text="' : '" :minute-text="' : '" <count-down
:second-text="''" :datatime="datatime" v-if="item.status === 1"></count-down> :is-day="false"
:tip-text="'距结束仅剩 '"
:day-text="''"
:hour-text="' : '"
:minute-text="' : '"
:second-text="''"
:datatime="datatime"
v-if="item.status === 1"
></count-down>
<view v-if="item.status === 2" class="activity">活动即将开始</view> <view v-if="item.status === 2" class="activity">活动即将开始</view>
</view> </view>
<view class="list"> <view class="list">
<view class="item acea-row row-between-wrapper" v-for="(itemSeckill, indexSeckill) in seckillList" :key="indexSeckill"> <view
class="item acea-row row-between-wrapper"
v-for="(itemSeckill, indexSeckill) in seckillList"
:key="indexSeckill"
>
<view class="pictrue"> <view class="pictrue">
<image :src="itemSeckill.image" /> <image :src="itemSeckill.image" />
</view> </view>
@ -37,13 +49,21 @@
<view class="piece font-color-red" v-text="'仅剩' + itemSeckill.stock + '件'"></view> <view class="piece font-color-red" v-text="'仅剩' + itemSeckill.stock + '件'"></view>
</view> </view>
</view> </view>
<view class="grab bg-color-red" v-if="item.status === 1 && itemSeckill.stock > 0" @click="goDetail(itemSeckill.id)">马上抢</view> <view
class="grab bg-color-red"
v-if="item.status === 1 && itemSeckill.stock > 0"
@click="goDetail(itemSeckill.id)"
>马上抢</view>
<view class="grab" v-if="item.status === 1 && itemSeckill.stock <= 0">已售磬</view> <view class="grab" v-if="item.status === 1 && itemSeckill.stock <= 0">已售磬</view>
<view class="grab bg-color-red" v-if="item.status === 2">即将开始</view> <view class="grab bg-color-red" v-if="item.status === 2">即将开始</view>
<view class="grab bg-color-red" v-if="item.status === 0">已结束</view> <view class="grab bg-color-red" v-if="item.status === 0">已结束</view>
</view> </view>
</view> </view>
<view class="noCommodity" style="background-color: #fff;" v-if="seckillList.length === 0 && page > 1"> <view
class="noCommodity"
style="background-color: #fff;"
v-if="seckillList.length === 0 && page > 1"
>
<view class="noPictrue"> <view class="noPictrue">
<image src="@/static/images/noGood.png" class="image" /> <image src="@/static/images/noGood.png" class="image" />
</view> </view>
@ -59,23 +79,20 @@
</view> </view>
</template> </template>
<script> <script>
import { import { getSeckillConfig, getSeckillList } from "@/api/activity";
getSeckillConfig, import CountDown from "@/components/CountDown";
getSeckillList
} from '@/api/activity';
import CountDown from '@/components/CountDown';
// import { Tab, Tabs } from "vant-weapp"; // import { Tab, Tabs } from "vant-weapp";
import Loading from '@/components/Loading'; import Loading from "@/components/Loading";
export default { export default {
name: 'GoodsSeckill', name: "GoodsSeckill",
components: { components: {
CountDown CountDown
}, },
props: {}, props: {},
data: function() { data: function() {
return { return {
headerImg: '', headerImg: "",
timeList: [], timeList: [],
sticky: false, sticky: false,
loading: false, loading: false,
@ -86,7 +103,7 @@
loadingList: false, // false true loadingList: false, // false true
page: 1, // page: 1, //
limit: 5, // limit: 5, //
title: [], title: []
}; };
}, },
mounted: function() { mounted: function() {
@ -97,47 +114,54 @@
}, },
methods: { methods: {
changeTime: function(index) { changeTime: function(index) {
this.active = index console.log(index);
this.active = index;
this.getSeckillList();
}, },
mountedStart: function() { mountedStart: function() {
var that = this; var that = this;
uni.showLoading(); uni.showLoading();
getSeckillConfig().then(res => { getSeckillConfig().then(res => {
that.$set(that, 'headerImg', res.data.lovely); that.$set(that, "headerImg", res.data.lovely);
that.$set(that, 'timeList', res.data.seckillTime); that.$set(that, "timeList", res.data.seckillTime);
that.$set(that, 'active', res.data.seckillTimeIndex); that.$set(that, "active", res.data.seckillTimeIndex);
let title = []; let title = [];
title = res.data.seckillTime.map((item, index) => { title = res.data.seckillTime.map((item, index) => {
return { return {
name: 'div', name: "div",
attrs: { attrs: {
class: 'timeItem' class: "timeItem"
}, },
children: [{ children: [
name: 'div', {
name: "div",
attrs: { attrs: {
class: 'time' class: "time"
}, },
children: [{ children: [
type: 'text', {
type: "text",
text: item.time text: item.time
}] }
]
}, },
{ {
name: 'div', name: "div",
attrs: { attrs: {
class: 'state' class: "state"
}, },
children: [{ children: [
type: 'text', {
type: "text",
text: item.state text: item.state
}] }
]
} }
] ]
}; };
}); });
that.$set(that, 'title', title); that.$set(that, "title", title);
that.datatime = that.timeList[that.active].stop; that.datatime = that.timeList[that.active].stop;
that.getSeckillList(); that.getSeckillList();
that.$nextTick(function() { that.$nextTick(function() {
@ -146,9 +170,12 @@
}); });
}); });
}, },
setTime: function(event) { setTime: function(index) {
var that = this; var that = this;
that.active = event.mp.detail.index; that.page = 1;
that.loadingList = false;
that.status = false;
that.active = index;
that.datatime = that.timeList[that.active].stop; that.datatime = that.timeList[that.active].stop;
that.getSeckillList(); that.getSeckillList();
}, },
@ -171,7 +198,7 @@
var that = this; var that = this;
var time = that.timeList[that.active].stop; var time = that.timeList[that.active].stop;
this.$yrouter.push({ this.$yrouter.push({
path: '/pages/activity/SeckillDetails/index', path: "/pages/activity/SeckillDetails/index",
query: { query: {
id, id,
time time
@ -197,9 +224,8 @@
background-color: none; background-color: none;
&.active { &.active {
.time { .time {
color: #00c17b color: #00c17b;
} }
.state { .state {
@ -207,12 +233,11 @@
color: #fff; color: #fff;
opacity: 1; opacity: 1;
border-radius: 30rpx; border-radius: 30rpx;
padding: 0 .2*100rpx; padding: 0 0.2 * 100rpx;
font-weight: 800; font-weight: 800;
height: .3*100rpx; height: 0.37 * 100rpx;
line-height: .3*100rpx; line-height: 0.37 * 100rpx;
} }
} }
} }

33
pages/activity/GroupDetails/index.vue

@ -104,6 +104,7 @@
<view class="product-intro"> <view class="product-intro">
<view class="title">产品介绍</view> <view class="title">产品介绍</view>
<view class="conter" v-html="storeInfo.description"></view> <view class="conter" v-html="storeInfo.description"></view>
<!-- <view class="conter" v-html=""></view> -->
</view> </view>
<view style="height:100rpx;"></view> <view style="height:100rpx;"></view>
<view class="footer-group acea-row row-between-wrapper"> <view class="footer-group acea-row row-between-wrapper">
@ -111,6 +112,10 @@
<view class="iconfont icon-kefu"></view> <view class="iconfont icon-kefu"></view>
<view>客服</view> <view>客服</view>
</view>--> </view>-->
<view class="customerSer acea-row row-center-wrapper row-column" @click="setCollect">
<view class="iconfont" :class="userCollect ? 'icon-shoucang1' : 'icon-shoucang'"></view>
<text>收藏</text>
</view>
<view class="bnt bg-color-violet" @click="openAlone">单独购买</view> <view class="bnt bg-color-violet" @click="openAlone">单独购买</view>
<view class="bnt bg-color-red" @click="openTeam">立即开团</view> <view class="bnt bg-color-red" @click="openTeam">立即开团</view>
</view> </view>
@ -134,6 +139,12 @@ import StorePoster from "@/components/StorePoster";
import { getCombinationDetail } from "@/api/activity"; import { getCombinationDetail } from "@/api/activity";
import { postCartAdd } from "@/api/store"; import { postCartAdd } from "@/api/store";
import { imageBase64 } from "@/api/public"; import { imageBase64 } from "@/api/public";
import {
getCoupon,
getCollectAdd,
getCollectDel,
getUserInfo
} from "@/api/user";
const NAME = "GroupDetails"; const NAME = "GroupDetails";
export default { export default {
@ -188,7 +199,8 @@ export default {
cart_num: 1 cart_num: 1
} }
}, },
cartNum: 1 cartNum: 1,
userCollect: false
}; };
}, },
watch: { watch: {
@ -206,11 +218,27 @@ export default {
openAlone: function() { openAlone: function() {
this.$yrouter.replace({ path: "/detail/" + this.storeInfo.productId }); this.$yrouter.replace({ path: "/detail/" + this.storeInfo.productId });
}, },
//
setCollect: function() {
let that = this,
id = that.storeInfo.id,
category = "product";
if (that.userCollect) {
getCollectDel(id, category).then(function() {
that.userCollect = !that.userCollect;
});
} else {
getCollectAdd(id, category).then(function() {
that.userCollect = !that.userCollect;
});
}
},
mountedStart: function() { mountedStart: function() {
var that = this; var that = this;
console.log(that) console.log(that);
let id = that.$yroute.query.id; let id = that.$yroute.query.id;
getCombinationDetail(id).then(res => { getCombinationDetail(id).then(res => {
that.userCollect = res.data.userCollect;
that.$set(that, "storeInfo", res.data.storeInfo); that.$set(that, "storeInfo", res.data.storeInfo);
that.$set(that, "imgUrls", res.data.storeInfo.sliderImageArr); that.$set(that, "imgUrls", res.data.storeInfo.sliderImageArr);
that.$set(that, "itemNew", res.data.pinkOkList); that.$set(that, "itemNew", res.data.pinkOkList);
@ -330,6 +358,7 @@ export default {
overflow: hidden; overflow: hidden;
} }
.product-con .footer-group .bnt { .product-con .footer-group .bnt {
// flex:1;
width: 43%; width: 43%;
} }
.product-con .footer-group .bnt.bg-color-violet { .product-con .footer-group .bnt.bg-color-violet {

8
pages/home/index.vue

@ -43,7 +43,7 @@
<image class="bg" src="../../static/images/index-bg.png" mode="widthFix"></image> <image class="bg" src="../../static/images/index-bg.png" mode="widthFix"></image>
<view class="title acea-row row-between-wrapper"> <view class="title acea-row row-between-wrapper">
<view class="text"><view class="name line1">热门榜单</view></view> <view class="text"><view class="name line1">热门榜单</view></view>
<view @click="goHotNewGoods()" class="more"> <view @click="goHotNewGoods(2)" class="more">
更多 更多
<text class="iconfont icon-jiantou"></text> <text class="iconfont icon-jiantou"></text>
</view> </view>
@ -53,8 +53,8 @@
<view class="newProductsScroll"> <view class="newProductsScroll">
<view @click="goGoodsCon(item)" class="newProductsItem" v-for="(item, likeInfoIndex) in likeInfo" :key="likeInfoIndex"> <view @click="goGoodsCon(item)" class="newProductsItem" v-for="(item, likeInfoIndex) in likeInfo" :key="likeInfoIndex">
<view class="img-box"><image :src="item.image" /></view> <view class="img-box"><image :src="item.image" /></view>
<view class="pro-info line1">{{ item.storeName }}</view> <view class="pro-info line1"><text>{{ item.storeName }}</text></view>
<view class="money font-color-red">{{ item.price }}</view> <view class="money font-color-red"><text>{{ item.price }}</text></view>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
@ -99,7 +99,7 @@
<view class="wrapper" v-if="benefit.length > 0"> <view class="wrapper" v-if="benefit.length > 0">
<view class="title acea-row row-between-wrapper"> <view class="title acea-row row-between-wrapper">
<view class="text"><view class="name line1">促销单品</view></view> <view class="text"><view class="name line1">促销单品</view></view>
<view @click="goGoodsPromotion()" class="more"> <view @click="goGoodsPromotion(4)" class="more">
更多 更多
<text class="iconfont icon-jiantou"></text> <text class="iconfont icon-jiantou"></text>
</view> </view>

3
pages/shop/GoodsCon/index.vue

@ -157,6 +157,9 @@
:src="'https://apis.map.qq.com/uri/v1/geocoder?coord=' +system_store.latitude +',' +system_store.longitude +'&referer=' +mapKey" :src="'https://apis.map.qq.com/uri/v1/geocoder?coord=' +system_store.latitude +',' +system_store.longitude +'&referer=' +mapKey"
></iframe> ></iframe>
</view> </view>
<div class="posterCanvasWarp">
<canvas class="posterCanvas" canvas-id="myCanvas"></canvas>
</div>
</view> </view>
</template> </template>

2
pages/shop/HotNewGoods/index.vue

@ -56,7 +56,7 @@ export default {
} else if (type === "2") { } else if (type === "2") {
this.name = "热门榜单"; this.name = "热门榜单";
this.icon = "icon-remen"; this.icon = "icon-remen";
document.title = "热门榜单"; // document.title = "";
} else if (type === "3") { } else if (type === "3") {
this.name = "首发新品"; this.name = "首发新品";
this.icon = "icon-xinpin"; this.icon = "icon-xinpin";

22
utils/index.js

@ -122,6 +122,8 @@ export const replaceLogin = (msg) => {
console.log(uni, 989) console.log(uni, 989)
if (Vue.prototype.$deviceType == 'weixin') { if (Vue.prototype.$deviceType == 'weixin') {
// 如果是微信小程序,跳转到授权页 // 如果是微信小程序,跳转到授权页
login({
fail: () => {
replace({ replace({
path: '/pages/authorization/index', path: '/pages/authorization/index',
query: { query: {
@ -129,6 +131,9 @@ export const replaceLogin = (msg) => {
...parseQuery() ...parseQuery()
} }
}) })
}
})
} else { } else {
// 如果不是小程序跳转到登录页 // 如果不是小程序跳转到登录页
push({ push({
@ -297,10 +302,17 @@ export const handleGetUserInfo = () => {
path: url, path: url,
query query
}) })
if (url == '/pages/home/index' || url == '/pages/shop/GoodsClass/index' || url == '/pages/shop/ShoppingCart/index' || url == '/pages/user/User/index') {
switchTab({ switchTab({
path: `${url}`, path: `${url}`,
query query
}); });
} else {
push({
path: `${url}`,
query
})
}
}) })
} }
@ -550,15 +562,16 @@ export const PosterCanvas = (store, successCallBack) => {
mask: true mask: true
}); });
getImageInfo([store.image, store.code]).then(res => { getImageInfo([store.image, store.code]).then(res => {
console.log(res)
let contentHh = 48 * 1.3 let contentHh = 48 * 1.3
const ctx = uni.createCanvasContext('myCanvas'); const ctx = uni.createCanvasContext('myCanvas')
ctx.clearRect(0, 0, 0, 0); ctx.clearRect(0, 0, 0, 0);
const WIDTH = 747 const WIDTH = 747
const HEIGHT = 1326; const HEIGHT = 1326;
ctx.fillStyle = "#FFFFFF"; ctx.fillStyle = "#FFFFFF";
ctx.fillRect(0, 0, WIDTH, HEIGHT); ctx.fillRect(0, 0, WIDTH, HEIGHT);
ctx.drawImage(res[1].path, 40, 1064, 200, 200);
ctx.drawImage(res[0].path, 0, 0, WIDTH, WIDTH); ctx.drawImage(res[0].path, 0, 0, WIDTH, WIDTH);
ctx.drawImage(res[1].path, 40, 1064, 200, 200);
ctx.save(); ctx.save();
let r = 90; let r = 90;
let d = r * 2; let d = r * 2;
@ -578,10 +591,10 @@ export const PosterCanvas = (store, successCallBack) => {
ctx.setTextAlign('center') ctx.setTextAlign('center')
ctx.setFontSize(22); ctx.setFontSize(22);
ctx.setFillStyle('#333333'); ctx.setFillStyle('#333333');
console.log('长按识别二维码立即购买')
ctx.fillText('长按识别二维码立即购买', WIDTH / 2, 1167); ctx.fillText('长按识别二维码立即购买', WIDTH / 2, 1167);
// ctx.drawImage(store.code, 199, 1064, 200, 200);
ctx.save(); ctx.save();
ctx.draw(true, function (oi) { ctx.draw(true, () => {
uni.canvasToTempFilePath({ uni.canvasToTempFilePath({
canvasId: 'myCanvas', canvasId: 'myCanvas',
fileType: 'png', fileType: 'png',
@ -597,6 +610,7 @@ export const PosterCanvas = (store, successCallBack) => {
}) })
}); });
}) })
// uni.getImageInfo({ // uni.getImageInfo({

Loading…
Cancel
Save