From 2538e4e22efd313c8ccfd950331a5f25a805f30c Mon Sep 17 00:00:00 2001 From: mo-bai <1873032855@qq.com> Date: Wed, 23 Feb 2022 15:31:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=86=E4=BA=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- enums/index.js | 57 ++++--- manifest.json | 15 +- pages/mall/index.vue | 203 ++++++++++------------ pages/paper-detail/index.vue | 225 ++++++++++++++++++------- static/imgs/general/wx-circle-icon.png | Bin 0 -> 10864 bytes static/imgs/general/wx-icon.png | Bin 0 -> 9616 bytes utils/hook.js | 74 ++++++-- 7 files changed, 351 insertions(+), 223 deletions(-) create mode 100644 static/imgs/general/wx-circle-icon.png create mode 100644 static/imgs/general/wx-icon.png diff --git a/enums/index.js b/enums/index.js index 99bbe53..049ae48 100644 --- a/enums/index.js +++ b/enums/index.js @@ -3,6 +3,11 @@ const urlEnv = env === 'production' ? '' : `-${env}` export const XAPPID = '503258978847966403' +export const H5_URL = `http://shopkeeper${env === 'production' ? '' : '.' + env}.qniao.cn` + +export const H5_URL_STORE = `${H5_URL}/#/pages/store/index?share=true&` +export const H5_URL_PAPER = `${H5_URL}/#/pages/paper-details/index?share=true&` + /** * 账号类型 */ @@ -11,7 +16,7 @@ export const accountType = { PHONE: 2, EMAIL: 3, APPLEID: 4, - CUSTOM: 5 + CUSTOM: 5, } /** @@ -22,7 +27,7 @@ export const codePurpose = { RESET_LOGIN_PASSWORD: 2, RESET_PHONE: 3, BIND_BANK_CARD: 4, - RESET_CREDIT_PASSWORD: 5 + RESET_CREDIT_PASSWORD: 5, } /** @@ -30,7 +35,7 @@ export const codePurpose = { */ export const verificationType = { PHONE: 1, - EMAIL: 2 + EMAIL: 2, } /** * 法大大企业认证状态 1:未认证 2:认证中 3:已认证 4:认证失败 @@ -39,14 +44,14 @@ export const fddEnterpriseStatus = { UNCERTIFIED: 1, CERTIFIED_ING: 2, CERTIFIED_SUCCESS: 3, - CERTIFIED_FAIL: 4 + CERTIFIED_FAIL: 4, } /** * 上传地址 */ export const uploadUrl = { image: `https://api-client-yyt${urlEnv}.qniao.cn/yyt-uec/file-uploading/upload/image`, - file: `https://api-client-yyt${urlEnv}.qniao.cn/yyt-uec/file-uploading/upload/file` + file: `https://api-client-yyt${urlEnv}.qniao.cn/yyt-uec/file-uploading/upload/file`, } /** * 结算周期:1:月结30(飞算1期),2:月结45,3:月结60(飞算2期),4:月结75,5:月结90(飞算3期) @@ -54,24 +59,24 @@ export const uploadUrl = { export const settlementPeriodEnum = [ { value: 1, - label: '月结30' + label: '月结30', }, { value: 2, - label: '月结45' + label: '月结45', }, { value: 3, - label: '月结60' + label: '月结60', }, { value: 4, - label: '月结75' + label: '月结75', }, { value: 5, - label: '月结90' - } + label: '月结90', + }, ] /** * 结算周期:1:1期,2:2期,3:3期 @@ -79,16 +84,16 @@ export const settlementPeriodEnum = [ export const fsSettlementPeriodEnum = [ { value: 1, - label: '1期' + label: '1期', }, { value: 2, - label: '2期' + label: '2期', }, { value: 3, - label: '3期' - } + label: '3期', + }, ] /** * 飞算结算方式: 1: 先息后本 @@ -96,8 +101,8 @@ export const fsSettlementPeriodEnum = [ export const fsSettlementMethodEnum = [ { value: 1, - label: '先息后本' - } + label: '先息后本', + }, ] /** @@ -107,7 +112,7 @@ export const fsAuditStatus = { WAIT_APPLY: 0, AUDITING: 1, PASS: 2, - REJECT: 3 + REJECT: 3, } /** @@ -125,7 +130,7 @@ export const supplierOrderStatusEnum = { FINISHED: 30213, WAIT_CLIENT_REPAY: 30217, REPAYING: 30216, - CANCELED: 30212 + CANCELED: 30212, } /** * 供应商订单状态 待客户确认订单/30202,待供应商确认订单/30205,待发货/30106,已发货/30107 ,待客户借款/30207,支付中/30208,待客户支付/30214,付款失败/30211,已完成/30213,待客户还款/30217,已取消/30212,还款中/30216 @@ -142,7 +147,7 @@ export const supplierOrderStatusMap = { [supplierOrderStatusEnum.FINISHED]: '已完成', [supplierOrderStatusEnum.WAIT_CLIENT_REPAY]: '待客户还款', [supplierOrderStatusEnum.REPAYING]: '还款中', - [supplierOrderStatusEnum.CANCELED]: '已取消' + [supplierOrderStatusEnum.CANCELED]: '已取消', } /** @@ -151,13 +156,13 @@ export const supplierOrderStatusMap = { export const paymentMethodEnum = { WECHAT_PAY: 1, MONTHLY_PAY: 2, - FLY_PAY: 4 + FLY_PAY: 4, } export const paymentMethodMap = { [paymentMethodEnum.WECHAT_PAY]: '微信支付', [paymentMethodEnum.MONTHLY_PAY]: '月结支付', - [paymentMethodEnum.FLY_PAY]: '飞算支付' + [paymentMethodEnum.FLY_PAY]: '飞算支付', } /** @@ -167,7 +172,7 @@ export const financeStatusEnum = { WAIT_CLIENT_LOAN: 30181, WAIT_FINANCE: 30182, FINISHED: 30183, - FAILED: 30184 + FAILED: 30184, } /** @@ -177,7 +182,7 @@ export const financeStatusMap = { [financeStatusEnum.WAIT_CLIENT_LOAN]: '待客户借款', [financeStatusEnum.WAIT_FINANCE]: '待融资', [financeStatusEnum.FINISHED]: '已融资', - [financeStatusEnum.FAILED]: '融资失败' + [financeStatusEnum.FAILED]: '融资失败', } /** @@ -185,10 +190,10 @@ export const financeStatusMap = { */ export const contractTypeEnum = { ORDER_CONTRACT: 1, - GUARANTEE_CONTRACT: 2 + GUARANTEE_CONTRACT: 2, } export const contractTypeMap = { [contractTypeEnum.ORDER_CONTRACT]: '订单合同', - [contractTypeEnum.GUARANTEE_CONTRACT]: '担保合同' + [contractTypeEnum.GUARANTEE_CONTRACT]: '担保合同', } diff --git a/manifest.json b/manifest.json index 29b7a43..da9387c 100644 --- a/manifest.json +++ b/manifest.json @@ -28,7 +28,9 @@ "Geolocation" : {}, "FaceID" : {}, "iBeacon" : {}, - "Push" : {} + "Push" : {}, + "Share" : {}, + "Payment" : {} }, /* 应用发布信息 */ "distribute" : { @@ -80,8 +82,8 @@ "payment" : { "weixin" : { "__platform__" : [ "ios", "android" ], - "appid" : "", - "UniversalLinks" : "" + "appid" : "wxbdd9c878b33e451d", + "UniversalLinks" : "https://apple-app-yyt-shopkeeper.qniao.cn/" } }, "ad" : {}, @@ -92,7 +94,12 @@ "appkey_android" : "877848546f7f3717101a17c33e1d4df3" } }, - "share" : {}, + "share" : { + "weixin" : { + "appid" : "wxbdd9c878b33e451d", + "UniversalLinks" : "https://apple-app-yyt-shopkeeper.qniao.cn/" + } + }, "push" : { "unipush" : {} } diff --git a/pages/mall/index.vue b/pages/mall/index.vue index 04e6ad2..2ef0312 100644 --- a/pages/mall/index.vue +++ b/pages/mall/index.vue @@ -75,53 +75,35 @@ - - - 下载海报 - 下载二维码 - 分享 + + 下载海报 + 分享 - - + @@ -509,58 +514,6 @@ export default { height: 100rpx; } } -.share-area { - width: 750rpx; - height: 100vh; - background: #888888; - position: fixed; - z-index: 998; - top: 0; - left: 0; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - .share-content { - width: 750rpx; - background-color: #fff; - border-radius: 20rpx; - padding: 64rpx 34rpx 70rpx; - position: relative; - .bg { - position: absolute; - top: 0; - left: 0; - width: 750rpx; - height: 944rpx; - } - .code { - position: relative; - z-index: 10; - background-color: #fff; - width: 680rpx; - border-radius: 20rpx; - box-shadow: 0px 3rpx 13rpx 0px rgba(0, 0, 0, 0.1); - padding: 40rpx 70rpx 64rpx; - .border { - width: 540rpx; - height: 540rpx; - background: url('https://qncloud.oss-cn-shenzhen.aliyuncs.com/paper_shopkeeper/qrCode-border.png') no-repeat center/cover; - } - } - .down-button { - width: 540rpx; - height: 90rpx; - margin: 40rpx 0 76rpx; - background-image: linear-gradient(180deg, #6092ec 0%, #225dd4 100%); - border-radius: 45rpx; - .text { - font-size: 48rpx; - color: #ffffff; - } - } - } -} .section_4 { z-index: 100; padding: 252rpx 36rpx 403rpx 95rpx; @@ -628,11 +581,9 @@ export default { } .bottom-group { padding: 0 32rpx; - .text_18 { - margin-left: 83rpx; - } .text_19 { margin-left: 83rpx; + margin-right: 62rpx; } } .view_3 { @@ -644,9 +595,39 @@ export default { white-space: nowrap; } } -#posters { - margin-top: 15px; - padding: 60rpx 0; - border-radius: 20rpx; +.section_8 { + position: fixed; + z-index: 999; + bottom: 0; + left: 0; + right: 0; + margin-top: 213rpx; + padding: 32rpx 0 52rpx; + color: rgb(0, 0, 0); + font-size: 24rpx; + line-height: 33rpx; + white-space: nowrap; + background-color: rgb(255, 255, 255); + border-radius: 20rpx 20rpx 0px 0px; + .group_20 { + margin: 0 32rpx; + .group_22 { + margin-left: 36rpx; + flex: 1 1 auto; + .image_15 { + margin-left: 4rpx; + } + .text_34 { + margin-top: 10rpx; + } + } + .text_33 { + margin-top: 10rpx; + } + .image_13 { + width: 64rpx; + height: 64rpx; + } + } } diff --git a/pages/paper-detail/index.vue b/pages/paper-detail/index.vue index fcc57be..8ca4bc6 100644 --- a/pages/paper-detail/index.vue +++ b/pages/paper-detail/index.vue @@ -81,18 +81,23 @@ {{ form.otherNote }} - - - - - - - - - 下载二维码 - - {{ shareInfo.storeName }} - {{ shareInfo.paperName }} + + + + + 下载海报 + 分享 + + + + + + + 微信 + + + + 朋友圈 @@ -100,25 +105,27 @@ @@ -245,68 +276,132 @@ export default { background: #f7f8fa; } .paper-list-view { - line-height: 40rpx; + padding: 0rpx 32rpx 32rpx; } .paper-datail-list-image { width: 120rpx; height: 120rpx; - padding: 32rpx 32rpx; + margin-right: 24rpx; } } .paper-bottom-border { border-bottom: 2rpx solid #d8d8d8; } } -.share-area { - width: 750rpx; - height: 100vh; - background: #888888; - position: fixed; - z-index: 998; +.section_4 { + z-index: 100; + padding: 252rpx 36rpx 403rpx 95rpx; + background-color: rgba(0, 0, 0, 0.5); top: 0; + right: 0; + bottom: 0; left: 0; - display: flex; - flex-direction: column; - justify-content: center; - align-items: center; - .share-content { - width: 750rpx; - background-color: #fff; + position: absolute; + .image_9 { + align-self: flex-end; + width: 62rpx; + height: 62rpx; + } + .section_5 { + margin-top: 30rpx; + padding: 60rpx 0; border-radius: 20rpx; - padding: 64rpx 34rpx 70rpx; - position: relative; - .bg { - position: absolute; - top: 0; - left: 0; - width: 750rpx; - height: 944rpx; - } - .code { - position: relative; - z-index: 10; - background-color: #fff; - width: 680rpx; - border-radius: 20rpx; - box-shadow: 0px 3rpx 13rpx 0px rgba(0, 0, 0, 0.1); - padding: 40rpx 70rpx 64rpx; - .border { - width: 540rpx; - height: 540rpx; - background: url('https://qncloud.oss-cn-shenzhen.aliyuncs.com/paper_shopkeeper/qrCode-border.png') no-repeat center/cover; + background-image: url('/static/imgs/mall/qrCode-bg.png'); + background-size: 100% 100%; + background-repeat: no-repeat; + width: 560rpx; + .section_6 { + margin: 0 32rpx; + padding: 50rpx 56rpx 0; + background-color: rgb(255, 255, 255); + box-shadow: 0px 2rpx 10rpx 0px rgba(0, 0, 0, 0.1); + border-radius: 16rpx; + width: 496rpx; + .group_13 { + margin: 0 12rpx; + position: relative; + .image_10 { + width: 360rpx; + height: 360rpx; + } + .image_11 { + width: 330rpx; + height: 330rpx; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + } + } + .group_14 { + padding: 40rpx 0 56rpx; + .text_15 { + color: rgb(51, 51, 51); + font-size: 30rpx; + font-weight: 500; + line-height: 42rpx; + white-space: nowrap; + } + .text_16 { + margin-top: 10rpx; + color: rgb(136, 136, 136); + font-size: 24rpx; + font-weight: 500; + line-height: 33rpx; + white-space: nowrap; + } } } - .down-button { - width: 540rpx; - height: 90rpx; - margin: 40rpx 0 76rpx; - background-image: linear-gradient(180deg, #6092ec 0%, #225dd4 100%); - border-radius: 45rpx; - .text { - font-size: 48rpx; - color: #ffffff; + } + .bottom-group { + padding: 0 32rpx; + .text_19 { + margin-left: 83rpx; + margin-right: 62rpx; + } + } + .view_3 { + margin-top: 40rpx; + color: rgb(255, 255, 255); + font-size: 30rpx; + font-weight: 500; + line-height: 42rpx; + white-space: nowrap; + } +} +.section_8 { + position: fixed; + z-index: 999; + bottom: 0; + left: 0; + right: 0; + margin-top: 213rpx; + padding: 32rpx 0 52rpx; + color: rgb(0, 0, 0); + font-size: 24rpx; + line-height: 33rpx; + white-space: nowrap; + background-color: rgb(255, 255, 255); + border-radius: 20rpx 20rpx 0px 0px; + .group_20 { + margin: 0 32rpx; + .group_22 { + margin-left: 36rpx; + flex: 1 1 auto; + .image_15 { + margin-left: 4rpx; + } + .text_34 { + margin-top: 10rpx; } } + .text_33 { + margin-top: 10rpx; + } + .image_13 { + width: 64rpx; + height: 64rpx; + } } } diff --git a/static/imgs/general/wx-circle-icon.png b/static/imgs/general/wx-circle-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cdd2f3b27cc18a95eaf4a0d3d58d4270b23a81d5 GIT binary patch literal 10864 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 { + saveImageToPhotosAlbum(url) + }) +} + +/** + * 将base64保存为临时文件,并返回文件路径 + * @param {string} base64 + * @returns + */ +export function saveBase64ToTempFile(base64) { + return new Promise((resolve, reject) => { + const bitmap = new plus.nativeObj.Bitmap('img') + bitmap.loadBase64Data(base64, () => { + const url = '_doc/' + new Date().getTime() + '.png' + bitmap.save( + url, + { + overwrite: true, + }, + () => { + bitmap.clear() + resolve(url) + }, + (e) => { + reject(e) + } + ) + }) + }) +} + +/** + * 保存图片到相册 + * @param {string} path 图片路径 + */ +export function saveImageToPhotosAlbum(path) { + return new Promise((resolve, reject) => { + uni.saveImageToPhotosAlbum({ + filePath: path, + success: (res) => { + uni.showToast({ + title: '保存图片成功', + mask: false, + duration: 1500, + }) + resolve() + }, + fail: (err) => { + uni.showToast({ + title: '保存图片失败,请手动截图', + mask: false, + duration: 1500, + }) + resolve() + }, + }) }) }