Commit d6b0044e by 曾经

分享朋友圈支持

旧版本小程序打开游戏兼容
parent 88a09528
......@@ -3,7 +3,7 @@
<canvas id="canvas" class="img-canvas" width="560" height="996"></canvas>
<div class="content">
<img class="box-img" mode="widthFix" id="shareImage" />
<div class="tips">长按保存至相册,打开朋友圈选取海报转发</div>
<div class="tips">长按保存至相册,分享好友或分享朋友圈</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
......
......@@ -17,10 +17,14 @@
<img src="../images/wx_icon.png" mode="aspectFit"/>
<div class="share-type-name">微信</div>
</div>
<div class="share-type-item" @click="sharePyq">
<div class="share-type-item" @click="shareTimeline" v-if="isSupportShareTimeline">
<img src="../images/pyq_icon.png" mode="aspectFit"/>
<div class="share-type-name">朋友圈</div>
</div>
<div class="share-type-item" @click="sharePoster">
<img src="../images/fenxianghaibao_icon.png" mode="aspectFit"/>
<div class="share-type-name">分享海报</div>
</div>
</div>
</div>
</div>
......@@ -42,6 +46,7 @@
<script>
import { gameRequestApi } from "@/api/common.js";
import { isSupportShareTimeline } from '../../../version';
const {
getReportRecord,
} = gameRequestApi;
......@@ -66,10 +71,11 @@ export default {
pageSize: 20,
currentPage: 1,
list: [],
isSupportShareTimeline: false,
};
},
created(){
this.isSupportShareTimeline = isSupportShareTimeline()
},
methods: {
reloadData(){
......@@ -113,8 +119,11 @@ export default {
shareWx(){
this.$emit("shareWx",this.conditionObj);
},
sharePyq(){
this.$emit("sharePyq",this.conditionObj);
sharePoster(){
this.$emit("sharePoster",this.conditionObj);
},
shareTimeline(){
this.$emit("shareTimeline",this.conditionObj);
}
},
filters:{
......@@ -126,7 +135,6 @@ export default {
},
watch:{
show(n){
console.log("show---------->",n);
if(n){
this.reloadData();
}
......
<template>
<div class="dialog-bg" v-if="show" @click="close">
<img src="../images/shareTip.png">
</div>
</template>
<script>
export default {
props: {
show: Boolean,
},
data() {
return {};
},
created() {},
methods: {
close() {
this.$emit("update:show", false);
},
}
};
</script>
<style scoped>
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 100;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg img{
width: 100%;
height: 180px;
}
</style>
......@@ -152,15 +152,18 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
<alert-dialog v-bind.sync="alertOptions"></alert-dialog>
</div>
</template>
......@@ -173,8 +176,6 @@ const {
getGamePlayBarrage,
getIntegral,
getGameRule,
saveGameShare,
getGameShareQrCodeUrl,
shareEvent,
} = gameRequestApi;
......@@ -191,7 +192,7 @@ import RewardFailDialog from "./components/reward-fail.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import AlertDialog from "./components/alert.vue";
import ShareTipMask from './components/share-tip-mask.vue';
export default {
components: {
OpenBoxDialog,
......@@ -202,10 +203,13 @@ export default {
ShareSelectDialog,
ShareImgDialog,
AlertDialog,
ShareTipMask,
},
data() {
return {
clickIndex: -1,
posterOptions:{},
showShareTipMask: false,
animationEnd: false,
isOpening: false,
showOpenBoxDialog: false,
......@@ -442,50 +446,6 @@ export default {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareWx() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data);
}).then((result)=>{
let linkId = result.linkId;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
sharePyq() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: options.type == 12 ? 2 : 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data)
}).then((result)=>{
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
clickAdImg() {
window.wx.miniProgram.navigateTo({
url: "/" + this.game.gameExt.adsLinkUrl,
......
......@@ -64,14 +64,17 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
</div>
</template>
......@@ -81,7 +84,6 @@ const {
getHelpDetail,
getGameReward,
getGameInfo,
saveGameShare,
getGameShareQrCodeUrl,
getGameRule,
} = gameRequestApi;
......@@ -89,7 +91,7 @@ import AlertDialog from "./components/alert.vue";
import FwhQrcodeDialog from "./components/fwh-qrcode.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import ShareTipMask from './components/share-tip-mask.vue';
import { Manager } from "../../manager";
export default {
......@@ -98,9 +100,11 @@ export default {
ShareSelectDialog,
ShareImgDialog,
FwhQrcodeDialog,
ShareTipMask,
},
data() {
return {
showShareTipMask: false,
alertOptions: {},
game: {},
helpDetail: {},
......@@ -111,7 +115,7 @@ export default {
gameReward: [],
showShareSelectDialog: false,
showShareImgDialog: false,
pyqOptions: {},
posterOptions:{},
memberId: "",
enterpriseId: "",
gameId: "",
......@@ -195,54 +199,6 @@ export default {
support() {
this.manager.support();
},
async shareWx() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: 1,
};
await saveGameShare(data).catch(()=>{});
getGameShareQrCodeUrl(data).then((result) => {
let linkId = result.linkId;
this.showShareSelectDialog = false;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
}).catch((err) => {
this.manager.showTips(err.message);
});
},
async sharePyq() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: options.type == 12 ? 2 : 1,
};
await saveGameShare(data).catch(()=>{});
getGameShareQrCodeUrl(data).then((result) => {
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
}).catch((err) => {
this.manager.showTips(err.message);
});
},
async clickShareBtn() {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareFwh() {
let query = this.$route.query;
getGameShareQrCodeUrl({
......
......@@ -3,7 +3,7 @@
<canvas id="canvas" class="img-canvas" width="560" height="996"></canvas>
<div class="content">
<img class="box-img" mode="widthFix" id="shareImage" />
<div class="tips">长按保存至相册,打开朋友圈选取海报转发</div>
<div class="tips">长按保存至相册,分享好友或分享朋友圈</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
......
......@@ -17,10 +17,14 @@
<img src="../images/wx_icon.png" mode="aspectFit"/>
<div class="share-type-name">微信</div>
</div>
<div class="share-type-item" @click="sharePyq">
<div class="share-type-item" @click="shareTimeline" v-if="isSupportShareTimeline">
<img src="../images/pyq_icon.png" mode="aspectFit"/>
<div class="share-type-name">朋友圈</div>
</div>
<div class="share-type-item" @click="sharePoster">
<img src="../images/fenxianghaibao_icon.png" mode="aspectFit"/>
<div class="share-type-name">分享海报</div>
</div>
</div>
</div>
</div>
......@@ -42,6 +46,7 @@
<script>
import { gameRequestApi } from "@/api/common.js";
import { isSupportShareTimeline } from '../../../version';
const {
getReportRecord,
} = gameRequestApi;
......@@ -66,10 +71,11 @@ export default {
pageSize: 20,
currentPage: 1,
list: [],
isSupportShareTimeline: false,
};
},
created(){
this.loadData();
this.isSupportShareTimeline = isSupportShareTimeline();
},
methods: {
reloadData(){
......@@ -114,8 +120,11 @@ export default {
shareWx(){
this.$emit("shareWx",this.conditionObj);
},
sharePyq(){
this.$emit("sharePyq",this.conditionObj);
sharePoster(){
this.$emit("sharePoster",this.conditionObj);
},
shareTimeline(){
this.$emit("shareTimeline",this.conditionObj);
}
},
filters:{
......@@ -125,6 +134,13 @@ export default {
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
}
},
watch:{
show(n){
if(n){
this.reloadData();
}
},
}
};
</script>
......
<template>
<div class="dialog-bg" v-if="show" @click="close">
<img src="../images/shareTip.png">
</div>
</template>
<script>
export default {
props: {
show: Boolean,
},
data() {
return {};
},
created() {},
methods: {
close() {
this.$emit("update:show", false);
},
}
};
</script>
<style scoped>
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 100;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg img{
width: 100%;
height: 180px;
}
</style>
......@@ -139,15 +139,18 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
<alert-dialog v-bind.sync="alertOptions"></alert-dialog>
</div>
</template>
......@@ -160,8 +163,6 @@ const {
getGamePlayBarrage,
getIntegral,
getGameRule,
saveGameShare,
getGameShareQrCodeUrl,
shareEvent,
} = gameRequestApi;
......@@ -178,6 +179,7 @@ import RewardFailDialog from "./components/reward-fail.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import AlertDialog from "./components/alert.vue";
import ShareTipMask from './components/share-tip-mask.vue';
export default {
components: {
OpenBoxDialog,
......@@ -188,10 +190,13 @@ export default {
ShareSelectDialog,
ShareImgDialog,
AlertDialog,
ShareTipMask,
},
data() {
return {
clickIndex: -1,
posterOptions:{},
showShareTipMask: false,
animationEnd: false,
isOpening: false,
showOpenBoxDialog: false,
......@@ -427,50 +432,6 @@ export default {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareWx() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data);
}).then((result)=>{
let linkId = result.linkId;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
sharePyq() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: options.type == 12 ? 2 : 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data)
}).then((result)=>{
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
clickAdImg() {
window.wx.miniProgram.navigateTo({
url: "/" + this.game.gameExt.adsLinkUrl,
......
......@@ -64,14 +64,17 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
</div>
</template>
......@@ -81,7 +84,6 @@ const {
getHelpDetail,
getGameReward,
getGameInfo,
saveGameShare,
getGameShareQrCodeUrl,
getGameRule,
} = gameRequestApi;
......@@ -89,7 +91,7 @@ import AlertDialog from "./components/alert.vue";
import FwhQrcodeDialog from "./components/fwh-qrcode.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import ShareTipMask from './components/share-tip-mask.vue';
import { Manager } from "../../manager";
export default {
......@@ -98,9 +100,11 @@ export default {
ShareSelectDialog,
ShareImgDialog,
FwhQrcodeDialog,
ShareTipMask,
},
data() {
return {
showShareTipMask: false,
alertOptions: {},
game: {},
helpDetail: {},
......@@ -111,7 +115,7 @@ export default {
gameReward: [],
showShareSelectDialog: false,
showShareImgDialog: false,
pyqOptions: {},
posterOptions:{},
memberId: "",
enterpriseId: "",
gameId: "",
......@@ -195,58 +199,6 @@ export default {
support() {
this.manager.support();
},
async shareWx() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: 1,
};
await saveGameShare(data).catch(() => {});
getGameShareQrCodeUrl(data)
.then((result) => {
let linkId = result.linkId;
this.showShareSelectDialog = false;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
})
.catch((err) => {
this.manager.showTips(err.message);
});
},
async sharePyq() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: options.type == 12 ? 2 : 1,
};
await saveGameShare(data).catch(() => {});
getGameShareQrCodeUrl(data)
.then((result) => {
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
})
.catch((err) => {
this.manager.showTips(err.message);
});
},
async clickShareBtn() {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareFwh() {
let query = this.$route.query;
getGameShareQrCodeUrl({
......
......@@ -3,7 +3,7 @@
<canvas id="canvas" class="img-canvas" width="560" height="996"></canvas>
<div class="content">
<img class="box-img" mode="widthFix" id="shareImage" />
<div class="tips">长按保存至相册,打开朋友圈选取海报转发</div>
<div class="tips">长按保存至相册,分享好友或分享朋友圈</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
......
......@@ -17,10 +17,14 @@
<img src="../images/wx_icon.png" mode="aspectFit"/>
<div class="share-type-name">微信</div>
</div>
<div class="share-type-item" @click="sharePyq">
<div class="share-type-item" @click="shareTimeline" v-if="isSupportShareTimeline">
<img src="../images/pyq_icon.png" mode="aspectFit"/>
<div class="share-type-name">朋友圈</div>
</div>
<div class="share-type-item" @click="sharePoster">
<img src="../images/fenxianghaibao_icon.png" mode="aspectFit"/>
<div class="share-type-name">分享海报</div>
</div>
</div>
</div>
</div>
......@@ -42,6 +46,7 @@
<script>
import { gameRequestApi } from "@/api/common.js";
import { isSupportShareTimeline } from '../../../version';
const {
getReportRecord,
} = gameRequestApi;
......@@ -66,10 +71,11 @@ export default {
pageSize: 20,
currentPage: 1,
list: [],
isSupportShareTimeline: false,
};
},
created(){
this.loadData();
this.isSupportShareTimeline = isSupportShareTimeline()
},
methods: {
reloadData(){
......@@ -114,8 +120,11 @@ export default {
shareWx(){
this.$emit("shareWx",this.conditionObj);
},
sharePyq(){
this.$emit("sharePyq",this.conditionObj);
sharePoster(){
this.$emit("sharePoster",this.conditionObj);
},
shareTimeline(){
this.$emit("shareTimeline",this.conditionObj);
}
},
filters:{
......@@ -124,6 +133,13 @@ export default {
let date = new Date(value);
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
}
},
watch:{
show(n){
if(n){
this.reloadData();
}
},
}
};
</script>
......
<template>
<div class="dialog-bg" v-if="show" @click="close">
<img src="../images/shareTip.png">
</div>
</template>
<script>
export default {
props: {
show: Boolean,
},
data() {
return {};
},
created() {},
methods: {
close() {
this.$emit("update:show", false);
},
}
};
</script>
<style scoped>
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 100;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg img{
width: 100%;
height: 180px;
}
</style>
......@@ -139,15 +139,18 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
<alert-dialog v-bind.sync="alertOptions"></alert-dialog>
</div>
</template>
......@@ -160,8 +163,6 @@ const {
getGamePlayBarrage,
getIntegral,
getGameRule,
saveGameShare,
getGameShareQrCodeUrl,
shareEvent,
} = gameRequestApi;
......@@ -178,6 +179,7 @@ import RewardFailDialog from "./components/reward-fail.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import AlertDialog from "./components/alert.vue";
import ShareTipMask from './components/share-tip-mask.vue';
export default {
components: {
OpenBoxDialog,
......@@ -188,10 +190,13 @@ export default {
ShareSelectDialog,
ShareImgDialog,
AlertDialog,
ShareTipMask,
},
data() {
return {
clickIndex: -1,
posterOptions:{},
showShareTipMask: false,
animationEnd: false,
isOpening: false,
showOpenBoxDialog: false,
......@@ -414,50 +419,6 @@ export default {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareWx() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data);
}).then((result)=>{
let linkId = result.linkId;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
sharePyq() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: options.type == 12 ? 2 : 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data)
}).then((result)=>{
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
clickAdImg() {
window.wx.miniProgram.navigateTo({
url: "/" + this.game.gameExt.adsLinkUrl,
......
......@@ -66,14 +66,17 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
</div>
</template>
......@@ -83,7 +86,6 @@ const {
getHelpDetail,
getGameReward,
getGameInfo,
saveGameShare,
getGameShareQrCodeUrl,
getGameRule,
} = gameRequestApi;
......@@ -91,7 +93,7 @@ import AlertDialog from "./components/alert.vue";
import FwhQrcodeDialog from "./components/fwh-qrcode.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import ShareTipMask from './components/share-tip-mask.vue';
import { Manager } from "../../manager";
export default {
......@@ -99,10 +101,12 @@ export default {
AlertDialog,
ShareSelectDialog,
ShareImgDialog,
FwhQrcodeDialog
FwhQrcodeDialog,
ShareTipMask,
},
data() {
return {
showShareTipMask: false,
alertOptions:{},
game:{},
helpDetail: {},
......@@ -113,7 +117,7 @@ export default {
gameReward: [],
showShareSelectDialog: false,
showShareImgDialog: false,
pyqOptions:{},
posterOptions:{},
memberId:"",
enterpriseId: '',
gameId: '',
......@@ -196,54 +200,6 @@ export default {
support(){
this.manager.support();
},
async shareWx() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: 1,
};
await saveGameShare(data).catch(()=>{});
getGameShareQrCodeUrl(data).then((result) => {
let linkId = result.linkId;
this.showShareSelectDialog = false;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
}).catch((err) => {
this.manager.showTips(err.message);
});
},
async sharePyq() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: options.type == 12 ? 2 : 1,
};
await saveGameShare(data).catch(()=>{});
getGameShareQrCodeUrl(data).then((result) => {
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
}).catch((err) => {
this.manager.showTips(err.message);
});
},
async clickShareBtn() {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareFwh() {
let query = this.$route.query;
getGameShareQrCodeUrl({
......
......@@ -3,7 +3,7 @@
<canvas id="canvas" class="img-canvas" width="560" height="996"></canvas>
<div class="content">
<img class="box-img" mode="widthFix" id="shareImage" />
<div class="tips">长按保存至相册,打开朋友圈选取海报转发</div>
<div class="tips">长按保存至相册,分享好友或分享朋友圈</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
......
......@@ -17,10 +17,14 @@
<img src="../images/wx_icon.png" mode="aspectFit"/>
<div class="share-type-name">微信</div>
</div>
<div class="share-type-item" @click="sharePyq">
<div class="share-type-item" @click="shareTimeline" v-if="isSupportShareTimeline">
<img src="../images/pyq_icon.png" mode="aspectFit"/>
<div class="share-type-name">朋友圈</div>
</div>
<div class="share-type-item" @click="sharePoster">
<img src="../images/fenxianghaibao_icon.png" mode="aspectFit"/>
<div class="share-type-name">分享海报</div>
</div>
</div>
</div>
</div>
......@@ -42,6 +46,7 @@
<script>
import { gameRequestApi } from "@/api/common.js";
import { isSupportShareTimeline } from '../../../version';
const {
getReportRecord,
} = gameRequestApi;
......@@ -66,10 +71,11 @@ export default {
pageSize: 20,
currentPage: 1,
list: [],
isSupportShareTimeline: false,
};
},
created(){
this.loadData();
this.isSupportShareTimeline = isSupportShareTimeline()
},
methods: {
reloadData(){
......@@ -114,8 +120,11 @@ export default {
shareWx(){
this.$emit("shareWx",this.conditionObj);
},
sharePyq(){
this.$emit("sharePyq",this.conditionObj);
sharePoster(){
this.$emit("sharePoster",this.conditionObj);
},
shareTimeline(){
this.$emit("shareTimeline",this.conditionObj);
}
},
filters:{
......@@ -124,6 +133,13 @@ export default {
let date = new Date(value);
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
}
},
watch:{
show(n){
if(n){
this.reloadData();
}
},
}
};
</script>
......
<template>
<div class="dialog-bg" v-if="show" @click="close">
<img src="../images/shareTip.png">
</div>
</template>
<script>
export default {
props: {
show: Boolean,
},
data() {
return {};
},
created() {},
methods: {
close() {
this.$emit("update:show", false);
},
}
};
</script>
<style scoped>
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 100;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg img{
width: 100%;
height: 180px;
}
</style>
......@@ -139,15 +139,18 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
<alert-dialog v-bind.sync="alertOptions"></alert-dialog>
</div>
</template>
......@@ -160,8 +163,6 @@ const {
getGamePlayBarrage,
getIntegral,
getGameRule,
saveGameShare,
getGameShareQrCodeUrl,
shareEvent,
} = gameRequestApi;
......@@ -178,6 +179,7 @@ import RewardFailDialog from "./components/reward-fail.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import AlertDialog from "./components/alert.vue";
import ShareTipMask from './components/share-tip-mask.vue';
export default {
components: {
OpenBoxDialog,
......@@ -188,10 +190,13 @@ export default {
ShareSelectDialog,
ShareImgDialog,
AlertDialog,
ShareTipMask,
},
data() {
return {
clickIndex: -1,
posterOptions:{},
showShareTipMask: false,
animationEnd: false,
isOpening: false,
showOpenBoxDialog: false,
......@@ -427,50 +432,6 @@ export default {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareWx() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data);
}).then((result)=>{
let linkId = result.linkId;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
sharePyq() {
let options = this.shareConditionObj;
let data = {
gameId: this.gameId,
enterpriseId: this.enterpriseId,
memberId: this.memberId,
shareType: options.type == 12 ? 2 : 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data)
}).then((result)=>{
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
}).catch((err)=>{
this.manager.showTips(err.message);
})
},
clickAdImg() {
window.wx.miniProgram.navigateTo({
url: "/" + this.game.gameExt.adsLinkUrl,
......
......@@ -66,14 +66,17 @@
:enterpriseId="enterpriseId"
:gameId="gameId"
:shareConditionObj="shareConditionObj"
@shareWx="shareWx"
@sharePyq="sharePyq"
@shareWx="manager.shareWx()"
@shareTimeline="manager.shareTimeline()"
@sharePoster="manager.sharePoster()"
></share-select-dialog>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
v-bind="posterOptions"
></share-img-dialog>
<share-tip-mask :show.sync="showShareTipMask"/>
</div>
</template>
......@@ -83,7 +86,6 @@ const {
getHelpDetail,
getGameReward,
getGameInfo,
saveGameShare,
getGameShareQrCodeUrl,
getGameRule,
} = gameRequestApi;
......@@ -91,7 +93,7 @@ import AlertDialog from "./components/alert.vue";
import FwhQrcodeDialog from "./components/fwh-qrcode.vue";
import ShareSelectDialog from "./components/share-select-dialog.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import ShareTipMask from './components/share-tip-mask.vue';
import { Manager } from "../../manager";
export default {
......@@ -99,10 +101,12 @@ export default {
AlertDialog,
ShareSelectDialog,
ShareImgDialog,
FwhQrcodeDialog
FwhQrcodeDialog,
ShareTipMask,
},
data() {
return {
showShareTipMask: false,
alertOptions:{},
game:{},
helpDetail: {},
......@@ -113,7 +117,7 @@ export default {
gameReward: [],
showShareSelectDialog: false,
showShareImgDialog: false,
pyqOptions:{},
posterOptions:{},
memberId:"",
enterpriseId: '',
gameId: '',
......@@ -196,54 +200,6 @@ export default {
support(){
this.manager.support();
},
async shareWx() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: 1,
};
await saveGameShare(data).catch(()=>{});
getGameShareQrCodeUrl(data).then((result) => {
let linkId = result.linkId;
this.showShareSelectDialog = false;
this.manager.shareWx({
title: options.shareTitle,
imageUrl: options.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
});
}).catch((err) => {
this.manager.showTips(err.message);
});
},
async sharePyq() {
let options = this.shareConditionObj;
let query = this.$route.query;
let data = {
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId,
shareType: options.type == 12 ? 2 : 1,
};
await saveGameShare(data).catch(()=>{});
getGameShareQrCodeUrl(data).then((result) => {
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareSelectDialog = false;
this.showShareImgDialog = true;
}).catch((err) => {
this.manager.showTips(err.message);
});
},
async clickShareBtn() {
await this.manager.checkPlay();
this.showShareSelectDialog = true;
},
shareFwh() {
let query = this.$route.query;
getGameShareQrCodeUrl({
......
......@@ -4,6 +4,7 @@
<script>
import { gameRequestApi } from "@/api/common.js";
import { setVersion } from "./version";
const { getGameInfo } = gameRequestApi;
export default {
......@@ -18,6 +19,7 @@ export default {
methods: {
loadData() {
let query = this.$route.query;
setVersion(query.version);
getGameInfo({
gameId: query.gameId,
enterpriseId: query.enterpriseId,
......
import { gameRequestApi } from "@/api/common.js";
import { isShareIsEqualSupport, isSupportShareTimeline } from "./version";
const {
// getPlayCount,
validGame,
getGameRule,
gamePlay,
getGameNumberPolling
getGameNumberPolling,
saveGameShare,
getGameShareQrCodeUrl
} = gameRequestApi;
const GameHomePath = "/pages/game/game-h5";
......@@ -12,9 +15,9 @@ const OpenCardPath = "/pages/open-card/open-card/open-card";
const ShareWxaPath = "/pages/access-2-h5/h5-share/h5-share";
const IntegralDetailPath = "/pages/points-mall/points-detail/points-detail";
const CouponListPath = "/pages/member-center/coupon/coupon-list/coupon-list";
const ShareTimeLinePath = "/pages/game/share-timeline";
export function Manager(component) {
let _component;
if (component) {
_component = component;
......@@ -169,15 +172,26 @@ export function Manager(component) {
text: "分享好友",
click: () => {
hiddenAlert();
_component.shareWx();
},
}, {
text: "分享朋友圈",
click: () => {
hiddenAlert();
_component.sharePyq();
this.shareWx()
},
}];
if(isSupportShareTimeline()){
buttonList.push({
text: "分享朋友圈",
click: () => {
hiddenAlert();
this.shareTimeline()
},
})
}else{
buttonList.push({
text: "分享海报",
click: () => {
hiddenAlert();
this.sharePoster()
},
})
}
break;
case 2006:
// 用户积分不足
......@@ -316,18 +330,7 @@ export function Manager(component) {
const toBack = ()=>{
window.wx.miniProgram.navigateBack();
}
this.shareWx = (shareOptions) => {
// let shareOptions = {
// title: '',
// path: '',
// imageUrl: '',
// };
let url = `${ShareWxaPath}?shareOptions=${encodeURIComponent(JSON.stringify(shareOptions))}&content=立即分享邀请好友助力&confirmText=立即分享`;
window.wx.miniProgram.navigateTo({
url,
});
}
this.getConditionObj = function () {
return new Promise((resolve, reject) => {
......@@ -354,6 +357,7 @@ export function Manager(component) {
})
}
// 点击助力
this.support = async () => {
let query = _component.$route.query;
......@@ -364,11 +368,10 @@ export function Manager(component) {
buttonList: [
{
text: "邀请好友助力",
click: () => {
click: async () => {
hiddenAlert();
// window.wx.miniProgram
// TODO
_component.clickShareBtn();
await this.checkPlay();
_component.showShareSelectDialog = true;
},
},
],
......@@ -473,8 +476,6 @@ export function Manager(component) {
clearInterval(pollingTimer);
}
this.toIntegralDetail = function () {
window.wx.miniProgram.navigateTo({
url: IntegralDetailPath,
......@@ -487,5 +488,77 @@ export function Manager(component) {
})
}
// 点击分享微信
this.shareWx = async () => {
let conditionObj = await this.getConditionObj();
let data = {
gameId: _component.gameId,
enterpriseId: _component.enterpriseId,
memberId: _component.memberId,
shareType: 1,
};
saveGameShare(data).then(()=>{
if(isShareIsEqualSupport()){
_component.showShareTipMask = true;
}else{
getGameShareQrCodeUrl(data).then((result) => {
let linkId = result.linkId;
this.showShareSelectDialog = false;
let shareOptions = {
title: conditionObj.shareTitle,
imageUrl: conditionObj.shareCard,
path: `/pages/page-transit/page-transit-qy?scene=${linkId}`,
};
let url = `${ShareWxaPath}?shareOptions=${encodeURIComponent(JSON.stringify(shareOptions))}&content=立即分享邀请好友助力&confirmText=立即分享`;
window.wx.miniProgram.navigateTo({
url,
});
}).catch((err) => {
this.showTips(err.message);
});
}
}).catch((err)=>{
this.showTips(err.message);
})
}
// 点击分享朋友圈
this.shareTimeline = function (){
let query = _component.$route.query;
let data = {
gameId: _component.gameId,
enterpriseId: _component.enterpriseId,
memberId: _component.memberId,
shareType: 1,
};
saveGameShare(data).then(()=>{
window.wx.miniProgram.navigateTo({
url: `${ ShareTimeLinePath }?gameId=${query.gameId}&from=game`,
})
})
}
// 分享海报
this.sharePoster = async ()=>{
let conditionObj = await this.getConditionObj();
let data = {
gameId: _component.gameId,
enterpriseId: _component.enterpriseId,
memberId: _component.memberId,
shareType: conditionObj.type == 12 ? 2 : 1,
};
saveGameShare(data).then(()=>{
return getGameShareQrCodeUrl(data)
}).then((result)=>{
_component.posterOptions = {
bgImage: conditionObj.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
_component.showShareSelectDialog = false;
_component.showShareImgDialog = true;
}).catch((err)=>{
this.showTips(err.message);
})
}
return this;
}
/***
* 游戏-小程序版本
*/
let version = 0;
export function setVersion(v){
version = v ? +v : 0;
}
export function getVersion(){
return version;
}
/*** 是否支持分享朋友圈 */
export function isSupportShareTimeline(){
return getVersion() > 0;
}
/** 是否所有的分享都触发助力 */
export function isShareIsEqualSupport(){
return getVersion() > 0;
}
\ No newline at end of file
......@@ -11,7 +11,7 @@ module.exports = {
devServer: {
proxy: {
'/': {
target: 'http://gicdev.demogic.com/',
target: 'http://www.gicdev.com/',
changeOrigin: true,
cookieDomainRewrite: {
'*': 'localhost',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment