refactor: 重构PC分享页面,优化布局展示,增加移动端二维码展示

master
Chopper711 2023-09-25 15:02:57 +08:00
parent 4ef2496221
commit f968f3d20d
2 changed files with 117 additions and 37 deletions

View File

@ -19,5 +19,9 @@ module.exports = {
aMapSwitch:false, //是否开启高德定位 aMapSwitch:false, //是否开启高德定位
enableCDN: true, //生产环境 是否启用cdn加载 vue等js enableCDN: true, //生产环境 是否启用cdn加载 vue等js
port: 10000, //端口 port: 10000, //端口
inputMaxLength:'140' //全局输入框默认最大输入长度字 inputMaxLength:'140', //全局输入框默认最大输入长度字
PC_DOMAIN: "https://pc-b2b2c.pickmall.cn", // PC端域名
WAP_DOMAIN: "https://m-b2b2c.pickmall.cn", // WAP端域名
}; };

View File

@ -226,7 +226,23 @@
> >
</Alert> </Alert>
</div> </div>
<!-- 分销资格被清退 -->
<div v-if="status === 4">
<Alert type="error">
您的分销资格已被清退请联系管理员或进行申诉
<Button style="margin-left: 50px;" type="warning" @click="repaying"></Button>
</Alert>
</div>
<!-- 分销申诉审核 -->
<div v-if="status === 5">
<Alert type="success">
您提交的申诉正在审核
<template slot="desc"
>提交认证申请后工作人员将在三个工作日进行核对完成审核</template
>
</Alert>
</div>
<Modal v-model="withdrawApplyModal" width="530"> <Modal v-model="withdrawApplyModal" width="530">
<p slot="header"> <p slot="header">
<Icon type="edit"></Icon> <Icon type="edit"></Icon>
@ -243,21 +259,39 @@
</Modal> </Modal>
<Modal v-model="qrcodeShow" title="分销商品" width="800"> <Modal v-model="qrcodeShow" title="分销商品" width="800">
<Alert type="warning"> 下载二维码或者复制链接分享商品 </Alert> <Alert type="warning"> 下载二维码或者复制链接分享商品 </Alert>
<div style="width: 200px; height: 200px; border: 1px solid #eee"> <div class="qrcode">
<div style="width: 150px; height: 150px; border: 1px solid #eee">
<vue-qr <vue-qr
:text="qrcode" :text="qrcode"
:callback="qrcodeData" :callback="qrcodeData"
:margin="0" :margin="0"
colorDark="#000" colorDark="#000"
colorLight="#fff" colorLight="#fff"
:size="200" :size="150"
></vue-qr> ></vue-qr>
<div class="qrcode-platform">PC端</div>
<Button class="download-btn" type="success" @click="downloadQrcode" <Button class="download-btn" type="success" @click="downloadQrcode"
>下载二维码</Button >下载二维码</Button
> >
</div> </div>
<div class="mt_10"> <div style="width: 150px; height: 150px; border: 1px solid #eee">
商品链接<Input style="width: 400px" v-model="qrcode"></Input> <vue-qr
:text="qrcodeH5"
:callback="qrcodeDataH5"
:margin="0"
colorDark="#000"
colorLight="#fff"
:size="150"
></vue-qr>
<div class="qrcode-platform">移动应用端</div>
<Button class="download-btn" type="success" @click="downloadQrcodeH5"
>下载二维码</Button
>
</div>
</div>
<div class="mt_10" style="margin-top: 100px;">
商品链接<Input style="width: 600px" v-model="qrcode"></Input>
</div> </div>
</Modal> </Modal>
</div> </div>
@ -280,6 +314,7 @@ export default {
components: { vueQr }, components: { vueQr },
data() { data() {
return { return {
config:require('@/config'),
status: 0, // 0 1 2 3 status: 0, // 0 1 2 3
applyForm: {}, // applyForm: {}, //
rules: { rules: {
@ -364,8 +399,10 @@ export default {
order: "desc", order: "desc",
}, },
qrcode: "", // qrcode: "", //
qrcodeH5:"",//H5
qrcodeShow: false, // qrcodeShow: false, //
base64Img: "", // base64 base64Img: "", // base64
base64ImgH5: "", // base64H5
goodsNameCurr: "", // goodsNameCurr: "", //
}; };
}, },
@ -406,6 +443,10 @@ export default {
// base64 // base64
this.base64Img = data64; this.base64Img = data64;
}, },
qrcodeDataH5(data64) {
// H5base64
this.base64ImgH5 = data64;
},
downloadQrcode() { downloadQrcode() {
// //
let a = document.createElement("a"); // a let a = document.createElement("a"); // a
@ -414,6 +455,14 @@ export default {
a.href = this.base64Img; // URLa.href a.href = this.base64Img; // URLa.href
a.dispatchEvent(event); // a a.dispatchEvent(event); // a
}, },
downloadQrcodeH5(){
// H5
let a = document.createElement("a"); // a
let event = new MouseEvent("click"); //
a.download = this.goodsNameCurr || "photo";
a.href = this.base64ImgH5; // URLa.href
a.dispatchEvent(event); // a
},
tabPaneChange(tab) { tabPaneChange(tab) {
// tab // tab
if (tab === "goodsChecked") { if (tab === "goodsChecked") {
@ -453,7 +502,8 @@ export default {
}, },
fenxiao(row) { fenxiao(row) {
// //
this.qrcode = `${location.origin}/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}&distributionId=${this.result.id}`; this.qrcode = `${this.config.PC_DOMAIN}/goodsDetail?skuId=${row.skuId}&goodsId=${row.goodsId}&distributionId=${this.result.id}`;
this.qrcodeH5 = `${this.config.WAP_DOMAIN}/pages/product/goods?skuId=${row.skuId}&goodsId=${row.goodsId}&distributionId=${this.result.id}`;
this.goodsNameCurr = row.goodsName; this.goodsNameCurr = row.goodsName;
this.qrcodeShow = true; this.qrcodeShow = true;
}, },
@ -469,19 +519,32 @@ export default {
if (res.success) this.logData = res.result; if (res.success) this.logData = res.result;
}); });
}, },
//
repaying(){
applyDistribution().then((res) => {
this.applyLoading = false;
if (res.success) {
this.$Message.success("申诉已提交,请等待管理员审核");
// this.status = 1;
}
});
},
distribution() { distribution() {
// //
distribution().then((res) => { distribution().then((res) => {
if (res.result) { if (res.result) {
this.result = res.result; this.result = res.result;
let type = res.result.distributionStatus; let type = res.result.distributionStatus;
if (type === "PASS") { if (type === "PASS") {
this.status = 2; this.status = 2;
this.getGoodsData(); this.getGoodsData();
} else if (type === "RETREAT" || type === "REFUSE") { } else if ( type === "REFUSE") {
this.status = 0; this.status = 0;
} else { } else if (type === "RETREAT") {
this.status = 4;
}else if (type === "APPEAL") {
this.status = 5;
}else {
this.status = 1; this.status = 1;
} }
} else if (!res.data.success && res.data.code === 22000) { } else if (!res.data.success && res.data.code === 22000) {
@ -523,9 +586,11 @@ export default {
} }
} }
.download-btn { .download-btn {
position: relative; // position: relative;
top: -200px; // top: -200px;
left: 200px; // left: 200px;
margin-left: 25px;
margin-top: 5px
} }
/deep/ .ivu-alert-message { /deep/ .ivu-alert-message {
p { p {
@ -540,4 +605,15 @@ export default {
margin: 6px 0; margin: 6px 0;
} }
} }
.qrcode{
display: flex;
justify-content: space-evenly;
padding-top: 10px
}
.qrcode-platform{
text-align: center;
font-size: 14px;
margin: 5px;
}
</style> </style>