Authored by htoooth

fix

... ... @@ -4,7 +4,7 @@
"pages/account/chooseArea",
"pages/account/bindMobile",
"pages/product/detail/detail",
"pages/share/share"
"pages/snapshootShare/snapshootShare"
],
"window": {
"backgroundTextStyle": "dark",
... ...
... ... @@ -22,6 +22,7 @@ Page(Object.assign({
price: '',
defaultImage: '',
productDesc: [],
snapData: {},
actionSheet: {
componentId: 'shareActionSheet',
... ... @@ -97,7 +98,7 @@ Page(Object.assign({
if (index === 1) {
//生成页面给
router.go('snapShare');
router.go('snapShare', this.snapData);
}
},
productInfo: function() {
... ... @@ -122,11 +123,10 @@ Page(Object.assign({
}
let default_image = defaultImage;
let product_qrCode = config.domains.api + '/wechat/miniapp/img-check.jpg?param=' + res.data.product_skn; // eslint-disable-line
let product_qrCode = config.domains.api + `/wechat/miniapp/img-check.jpg?param=${res.data.product_skn}&uid=${app.getUid()}&limitProductCode=${this.data.limitProductCode}`; // eslint-disable-line
let snapData = {
product_name: res.data.product_name,
product_price: '¥' + res.data.price,
default_image,
product_qrCode,
product_skn: this.data.productSkn
... ... @@ -140,6 +140,7 @@ Page(Object.assign({
reminderNum: res.data.reminderNum,
defaultImage,
productDesc,
snapData
});
}
});
... ...
... ... @@ -150,7 +150,7 @@
</view>
</yoho-alert> -->
<yoho-alert>
<!-- <yoho-alert>
<view class="modal-content">
<view class="modal-title">
<view class="sub-title">重复助力</view>
... ... @@ -170,6 +170,6 @@
</view>
</view>
</view>
</yoho-alert>
</yoho-alert> -->
<template is="zan-actionsheet" data="{{...actionSheet}}" />
\ No newline at end of file
... ...
Page({});
\ No newline at end of file
{
"navigationBarTitleText": "分享到朋友圈",
"enablePullDownRefresh": false,
"usingComponents": {
}
}
\ No newline at end of file
<view>你的好友邀你为ta助力,购买限定商</view>
\ No newline at end of file
let app = getApp();
const windowWidth = app.globalData.systemInfo.windowWidth;
const windowHeight = app.globalData.systemInfo.windowHeight;
const screenHeight = app.globalData.systemInfo.screenHeight;
const scale = windowWidth / 375;
var Point = function(x, y) {
return {
x: x,
y: y
};
};
Page({
/**
* 组件的初始数据
*/
data: {
screenHeight,
windowWidth,
windowHeight,
scale,
},
onLoad(options) {
},
saveToAlbum() {
let that = this;
if (wx.getSetting) {
wx.getSetting({
success(res) {
if (!res.authSetting['scope.writePhotosAlbum']) {
wx.authorize({
scope: 'scope.writePhotosAlbum',
success: function() {
that.saveSnapShoot();
},
fail: function(error) {
if (res.authSetting['scope.writePhotosAlbum'] === false) {
wx.showModal({
title: '',
content: '需要打开小程序的设置,重新授权访问您的系统相册',
confirmText: '去开启',
confirmColor: '#000000',
success: function(r) {
if (r.confirm) {
wx.openSetting({
success: function() {}
});
}
}
});
}
},
});
} else {
that.saveSnapShoot();
}
}
});
} else {
wx.showModal({
title: '提示',
content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
});
}
},
saveSnapShoot() {
var that = this;
var canvasId = 'productDetailCanvas';
wx.canvasToTempFilePath({
x: 0,
y: 0,
width: windowWidth,
height: screenHeight,
destWidth: windowWidth * 2,
destHeight: screenHeight * 2,
quality: 1.0,
canvasId: canvasId,
success: function(result) {
wx.saveImageToPhotosAlbum({
filePath: result.tempFilePath,
success(res) {
wx.showToast({
title: '保存成功',
icon: 'success',
duration: 2000
});
that.hidden();
},
fail: function() {
that.hidden();
}
});
},
fail: function(error) {
that.hidden();
},
complete: function(res) {
that.hidden();
}
}, this);
},
creatProductDetailSnapShoot() {
let that = this;
let product = that.properties.shareData;
let pCtx = wx.createCanvasContext('productDetailCanvas', this);
pCtx.setFillStyle('white');
pCtx.fillRect(0, 0, windowWidth, screenHeight);
pCtx.drawImage('./images/snapshoot_share_bg@2x.png', 0, 0, windowWidth, 186 * scale);
pCtx.setFillStyle('white');
pCtx.setShadow(-5, -2, 40, 'darkgray');
pCtx.fillRect(27 * scale, 60 * scale, 320 * scale, 430 * scale);
let defaultImage = product.default_image;
if (defaultImage && defaultImage.indexOf('https://') === -1) {
defaultImage = defaultImage.replace('http://', 'https://');
}
wx.getImageInfo({
src: defaultImage,
success: function(res) {
pCtx.drawImage(res.path, 27 * scale, 60 * scale, 320 * scale, 430 * scale);
pCtx.setFillStyle('rgba(0,0,0,0.8)');
pCtx.fillRect(27 * scale, 370 * scale, 320 * scale, 120 * scale);
pCtx.setFillStyle('white');
that.drawLongText(product.product_name, pCtx, 187.5 * scale, 402 * scale, 'white', 14, 20);
pCtx.setTextAlign('center');
pCtx.setFontSize(18 * scale);
pCtx.fillText(product.product_price, 187.5 * scale, 458.5 * scale);
pCtx.draw(true);
}
});
pCtx.setShadow(0, 0, 0, 'white');
pCtx.drawImage('./images/share-logo@2x.png', 132 * scale, 505 * scale, 111 * scale, 20 * scale);
wx.getImageInfo({
src: product.product_qrCode,
success: function(res) {
pCtx.drawImage(res.path, 148.5 * scale, 539.5 * scale, 78 * scale, 78 * scale);
pCtx.draw(true);
}
});
pCtx.setFillStyle('black');
pCtx.setTextAlign('center');
pCtx.setFontSize(11);
pCtx.fillText('长按扫码查看详情', 187.5 * scale, 632.5 * scale);
pCtx.drawImage('./images/snapshoot_tip_ic@2x.png', 127 * scale, 645.5 * scale, 9 * scale, 9 * scale);
pCtx.setFillStyle('#b0b0b0');
pCtx.setFontSize(9);
pCtx.fillText('实际价格以页面展示为准', 187.5 * scale, 652.5 * scale);
pCtx.draw();
},
drawRoundedRect: function(rect, r, ctx) {
var ptA = Point(rect.x + r, rect.y);
var ptB = Point(rect.x + rect.width, rect.y);
var ptC = Point(rect.x + rect.width, rect.y + rect.height);
var ptD = Point(rect.x, rect.y + rect.height);
var ptE = Point(rect.x, rect.y);
ctx.setStrokeStyle('rgba(0,0,0,0)');
ctx.beginPath();
ctx.moveTo(ptA.x, ptA.y);
ctx.arcTo(ptB.x, ptB.y, ptC.x, ptC.y, r);
ctx.arcTo(ptC.x, ptC.y, ptD.x, ptD.y, r);
ctx.arcTo(ptD.x, ptD.y, ptE.x, ptE.y, r);
ctx.arcTo(ptE.x, ptE.y, ptA.x, ptA.y, r);
ctx.stroke();
},
Rect: function(x, y, w, h) {
return {
x: x,
y: y,
width: w,
height: h
};
},
drawLongText(longtext, cxt, begin_width, begin_height, color, fontSize, numsForLine) {
var linelenght = 20 * scale; //行间距
var numberOfLine = 2;
var text = '';
var count = 0;
var lineNumber = 1;
var stringLenght = longtext.length;
var newtext = longtext.split('');
cxt.setFillStyle(color);
cxt.setFontSize(fontSize * scale);
cxt.setTextAlign('center');
for (let i = 0; i <= stringLenght; i++) {
if (count === numsForLine) {
if (lineNumber === numberOfLine) {
let t = text + '...';
cxt.fillText(t, begin_width, begin_height);
} else {
cxt.fillText(text, begin_width, begin_height);
}
begin_height = begin_height + linelenght;
text = '';
count = 0;
lineNumber++;
}
if (i === stringLenght) {
cxt.fillText(text, begin_width, begin_height);
}
text = text + newtext[0];
count++;
newtext.shift();
if (lineNumber > numberOfLine) {
break;
}
}
}
});
... ...
{
"navigationBarTitleText": "拼团详情",
"usingComponents": {}
}
\ No newline at end of file
... ...
<!--pages/snapshootShare/snapshootShare.wxml-->
<view class="snapshoot-container" >
<view class="snapshoot-container">
<view class="snapshoot-content">
<view class="snapshoot">
<image class="product-img-bg" src="./images/snapshoot_share_bg@2x.png"></image>
<view>你的好友邀你为ta助力,购买限定商品</view>
<view class="snapshoot-productinfo">
<image class="product-defaultImage" src="{{default_image}}"> </image>
<view class="product-info-content">
<text class="product-name">{{product_name}}</text>
</view>
</view>
<view class="product-miniqr">
<image class="yoho-logo" src="./images/share-logo@2x.png"></image>
<image class="product-qrcode" src="{{product_qrCode}}"></image>
<text class="snapshoot-tips">长按扫码查看详情</text>
<view class='product-tips'>
<image class="product-tips-img" src="./images/snapshoot_tip_ic@2x.png"></image>
<text class="product-tips-text">或者在各大应用市场搜索 Yoho!Buy有货 下载App</text>
</view>
</view>
</view>
</view>
<!--底部按钮 -->
<view class="snapshoot-bottom">
<view class="snapshoot-save" bindtap="saveToAlbum">
<!-- <image class="img" src="./images/down@2x.png"></image> -->
<text class="text">保存到相册</text>
</view>
<view class="snapshoot-cancel" bindtap="hidden">
<text class="cancel-text">取消</text>
</view>
</view>
</view>
<view class="snapshoot-canvas" style="width: {{windowWidth}}px;height:{{screenHeight}}px; background-color: white; margin-top: {{screenHeight}}px" >
<canvas canvas-id="productDetailCanvas" style="width: {{windowWidth}}px;height:{{screenHeight}}px;background-color: white"></canvas>
</view>
</view>
... ...
/* pages/snapshootShare/snapshootShare.wxss */
.snapshoot-container {
position: fixed;
left: 0rpx;
top: 0rpx;
width: 750rpx;
height: 1206rpx;
background-color: rgba(0, 0, 0, 0.5);
flex-direction: column;
z-index: 9999;
}
.snapshoot-container .snapshoot-content {
margin-top: 58rpx;
margin-left: 105rpx;
width: 540rpx;
height: 960rpx;
background-color: white;
flex-direction: column;
}
.snapshoot-container .snapshoot-content .snapshoot {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
}
.snapshoot-container .snapshoot-content .snapshoot .img-bg {
width: 100%;
height: 168rpx;
}
.snapshoot-container .snapshoot-content .snapshoot .snapshoot-shopinfo {
margin-top: -50rpx;
width: 460rpx;
height: 460rpx;
background-color: white;
box-shadow:5px 5px 3px lightgray;
border: 0.5rpx solid #e5e5e5;
display: flex;
flex-direction: column;
align-items: center;
}
.snapshoot-container .snapshoot-content .snapshoot .snapshoot-shopinfo .img-logo {
margin-top: 30rpx;
width: 172rpx;
height: 172rpx;
}
.snapshoot-container .snapshoot-content .snapshoot .snapshoot-shopinfo .shop-name {
margin-top: 36rpx;
font-size: 28rpx;
font-weight: bold;
text-align: center;
}
.snapshoot-container .snapshoot-content .snapshoot .snapshoot-shopinfo .shop-intro {
margin-top: 61rpx;
font-size: 20rpx;
font-weight: bold;
text-align: left;
width: 401rpx;
height: 60rpx;
line-height:30rpx;
display: -webkit-box;
overflow: hidden;
text-overflow:ellipsis;
white-space: pre-wrap;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.snapshoot .shop-miniqr {
display: flex;
flex-direction: column;
align-items: center;
}
.yoho-logo {
width: 160rpx;
height: 29rpx;
margin-top: 21rpx;
}
.snapshoot .shop-miniqr .shop-qrcode {
width: 130rpx;
height: 130rpx;
margin-top: 90rpx;
}
.product-qrcode {
width: 130rpx;
height: 130rpx;
margin-top: 21rpx;
}
.snapshoot-container .snapshoot-save {
width: 260rpx;
height: 88rpx;
background-color: red;
border-radius: 10rpx;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.snapshoot-container .snapshoot-cancel {
margin-left: 20rpx;
width: 260rpx;
height: 88rpx;
background-color: white;
border-radius: 10rpx;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center
}
.img {
width: 41rpx;
height: 38rpx;
}
.text {
font: 28rpx;
color: white;
text-align: center;
}
.cancel-text {
font: 28rpx;
color: black;
text-align: center;
}
.snapshoot-tips {
margin-top: 16rpx;
font-size: 16rpx;
color: #444444;
}
/*商品 */
.product-img-bg {
width: 100%;
height: 268rpx;
}
.snapshoot-productinfo {
margin-top: -220rpx;
width: 460rpx;
height: 620rpx;
background-color: white;
box-shadow:5px 5px 3px rgba(0, 0, 0, 0.05);
border: 0.5rpx solid #e5e5e5;
display: flex;
flex-direction: column;
align-items: center;
}
.snapshoot-union {
margin-top: -220rpx;
width: 460rpx;
height: 620rpx;
background-color: white;
box-shadow:5px 5px 3px rgba(0, 0, 0, 0.05);
display: flex;
flex-direction: column;
align-items: center;
}
.product-defaultImage {
width: 100%;
height: 100%
}
.product-info-content {
width: 100%;
height: 172rpx;
margin-top: -172rpx;
background-color: rgba(0, 0, 0, 0.5);
display: flex;
flex-direction: column;
align-items: center;
}
.product-name {
width: 80%;
margin-top: 30rpx;
color: white;
text-align: center;
font-size: 26rpx;
margin-bottom: 20rpx;
line-height: 32rpx;
display: -webkit-box;
overflow: hidden;
text-overflow:ellipsis;
white-space: pre-wrap;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.product-price {
color: white;
text-align: center;
font-size: 34rpx;
}
.product-tips {
display: flex;
flex-direction: row;
justify-content: center;
align-items: center;
margin-top: 10rpx;
}
.product-tips-img {
width: 18rpx;
height: 18rpx;
}
.product-tips-text {
font-size: 16rpx;
color: #b0b0b0;
margin-left: 10rpx;
}
.product-miniqr {
/* margin-top: -20; */
display: flex;
flex-direction: column;
align-items: center;
}
.snapshoot-bottom {
margin-left: 105rpx;
margin-top: 50rpx;
width: 540rpx;
height: 88rpx;
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
align-items: center;
}
.list-title {
width: 80%;
height: 70rpx;
margin-top: 30rpx;
color: white;
text-align: center;
font-size: 26rpx;
line-height: 35rpx;
display: -webkit-box;
overflow: hidden;
text-overflow:ellipsis;
white-space: pre-wrap;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.list-content {
margin-top: 20rpx;
color: white;
text-align: center;
font-size: 14rpx;
}
/* .snapshoot-container .snapshoot-content .snapshoot-canvas {
width: 750rpx;
height: 1206rpx;
background-color: white;
} */
\ No newline at end of file
... ...
... ... @@ -33,7 +33,7 @@
"list": []
},
"miniprogram": {
"current": 1,
"current": 2,
"list": [
{
"id": 0,
... ... @@ -48,9 +48,9 @@
"query": "limitProductCode=2018030117484051"
},
{
"id": -1,
"id": 2,
"name": "分享页",
"pathName": "pages/share/share",
"pathName": "pages/snapshootShare/snapshootShare",
"query": ""
}
]
... ...
... ... @@ -3,5 +3,5 @@ import jump from './jump';
export default {
home: {path: '/pages/index/index'},
productDetail: {path: '/pages/product/detail/detail'},
snapShare: {path: '/pages/share/share'},
snapShare: {path: '/pages/snapshootShare/snapshootShare'},
};
... ...