From fcf7563f696678ef6a4edae0c94ffc0284cd0823 Mon Sep 17 00:00:00 2001 From: h30830569 <30830569@qq.com> Date: Thu, 2 Jun 2022 14:24:10 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=B4=BB=E5=8A=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../user_order/conponents/order-item.vue | 2 +- .../components/almost-lottery/changelog.md | 200 ++++ .../almost-lottery/almost-lottery.vue | 1014 +++++++++++++++++ .../components/almost-lottery/package.json | 82 ++ src/pageB/components/almost-lottery/readme.md | 160 +++ .../almost-lottery/almost-lottery__action.png | Bin 0 -> 4234 bytes .../almost-lottery__action2x.png | Bin 0 -> 9276 bytes .../almost-lottery__action3x.png | Bin 0 -> 17324 bytes .../almost-lottery/almost-lottery__bg.png | Bin 0 -> 3398 bytes .../almost-lottery/almost-lottery__bg2x.png | Bin 0 -> 7375 bytes .../almost-lottery/almost-lottery__bg3x.png | Bin 0 -> 12991 bytes .../almost-lottery/utils/almost-utils.js | 316 +++++ src/pageB/lucky/index.vue | 422 +++++++ src/pages.json | 7 + src/pages/index/index.vue | 2 +- src/pages/order_details/index.vue | 2 +- src/pages/product_details/index.vue | 27 +- 17 files changed, 2230 insertions(+), 4 deletions(-) create mode 100644 src/pageB/components/almost-lottery/changelog.md create mode 100644 src/pageB/components/almost-lottery/components/almost-lottery/almost-lottery.vue create mode 100644 src/pageB/components/almost-lottery/package.json create mode 100644 src/pageB/components/almost-lottery/readme.md create mode 100644 src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__action.png create mode 100644 src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__action2x.png create mode 100644 src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__action3x.png create mode 100644 src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__bg.png create mode 100644 src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__bg2x.png create mode 100644 src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__bg3x.png create mode 100644 src/pageB/components/almost-lottery/utils/almost-utils.js create mode 100644 src/pageB/lucky/index.vue diff --git a/src/pageA/user_order/conponents/order-item.vue b/src/pageA/user_order/conponents/order-item.vue index bfe64cc..8b3c58b 100644 --- a/src/pageA/user_order/conponents/order-item.vue +++ b/src/pageA/user_order/conponents/order-item.vue @@ -44,7 +44,7 @@ + content="是否确认收货?"> + + diff --git a/src/pageB/components/almost-lottery/package.json b/src/pageB/components/almost-lottery/package.json new file mode 100644 index 0000000..ae08d49 --- /dev/null +++ b/src/pageB/components/almost-lottery/package.json @@ -0,0 +1,82 @@ +{ + "id": "almost-lottery", + "displayName": "Almost-Lottery抽奖转盘", + "version": "1.8.27", + "description": "【荣获2021插件大赛三等奖】提供奇数、缓存等众多配置项,更有抽奖概率、抽奖次数、付费抽奖等功能内置于示例项目中,完美支持APP、各平台小程序、H5、PC,同时提供 uniCloud 云端版本", + "keywords": [ + "转盘", + "抽奖", + "大转盘抽奖" +], + "repository": "https://github.com/ialmost/almost-components_uniapp", + "engines": { + "HBuilderX": "^3.1.22" + }, + "dcloudext": { + "category": [ + "前端组件", + "通用组件" + ], + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y" + }, + "client": { + "App": { + "app-vue": "y", + "app-nvue": "n" + }, + "H5-mobile": { + "Safari": "y", + "Android Browser": "y", + "微信浏览器(Android)": "y", + "QQ浏览器(Android)": "y" + }, + "H5-pc": { + "Chrome": "y", + "IE": "y", + "Edge": "y", + "Firefox": "y", + "Safari": "y" + }, + "小程序": { + "微信": "y", + "阿里": "y", + "百度": "y", + "字节跳动": "y", + "QQ": "y" + }, + "快应用": { + "华为": "u", + "联盟": "u" + }, + "Vue": { + "vue2": "y", + "vue3": "n" + } + } + } + } +} \ No newline at end of file diff --git a/src/pageB/components/almost-lottery/readme.md b/src/pageB/components/almost-lottery/readme.md new file mode 100644 index 0000000..dc5dfce --- /dev/null +++ b/src/pageB/components/almost-lottery/readme.md @@ -0,0 +1,160 @@ +# almost-lottery +*使用 Canvas 绘制的抽奖转盘,提供奇数、缓存等众多配置项,更有抽奖概率、抽奖次数、付费抽奖等功能内置于示例项目中* + + +>
+> +> 如果用着还行,请支持一下 +> - 前往 [GitHub](https://github.com/ialmost/almost-components_uniapp) 给个 Star +> - 前往 [UniApp](https://ext.dcloud.net.cn/plugin?id=1030) 给个五星 +> - 使用中遇到问题时,可以添加 **QQ群 20441313** +> +>
+ + +## 基于 uniCloud 开发的云端 Almost-Lottery 抽奖转盘,欢迎尝试体验 +- [Almost-Lottery抽奖转盘的云端一体页面](https://ext.dcloud.net.cn/plugin?id=5763) +- [Almost-Lottery抽奖转盘的配置中心](https://ext.dcloud.net.cn/plugin?id=5762) + + +## 高能预警 +- 本插件仅支持 `uni_modules` 模式,强烈推荐使用该模式,**非 `uni_modules` 模式不再维护** +- 在使用本插件之前,强烈建议使用 `HBuilderX` 导入示例项目验证可用性并参照修改 + +## 功能概要 +- [x] 可配置奖品文字 **支持横向/竖向展示** +- [x] 可配置每个奖品区块的背景颜色 +- [x] 可配置每个奖品区块的奖品文字颜色 +- [x] 可配置奖品区块是否开启描边以及边框的颜色,默认不开启 +- [x] 可配置转盘外环和抽奖按钮图 +- [x] 可配置每个奖品区块的奖品图片,**当图片是网络地址时,小程序端需要配置白名单,H5端需要允许跨域,奖品文字为竖向时不支持展示奖品图片** +- [x] 奖品列表支持奇数,**奇数时需尽量能被 `360` 除尽** +- [x] 可配置内圈与外圈的间距 +- [x] 可配置轮盘旋转或指针旋转 +- [x] 可配置画板是否缓存,默认不开启 +- [x] 更多配置请查看API说明 + +## 示例项目附加功能 +- [x] 中奖概率,**强烈推荐中奖概率应由后端控制** +- [x] 抽奖次数 +- [x] 付费抽奖 + + +## 注意事项 + +- 编译到小程序端时,请务必勾选ES6转ES5 + +- `@reset-index="prizeIndex = -1"` 必须默认写入到 `template` 中,不可删除 + +- 每个奖品区块的奖品图片尺寸不宜过大,图片越大,绘制的过程越慢,尽量将图片尺寸控制在 `100*100` 以内,且图片大小控制在 `40KB` 以内 + +- 关于中奖概率的配置,请下载示例项目,参照 `pages/index/index.vue` 中的代码进行配置 + +- 组件本身不涉及任何业务逻辑,与业务相关的代码建议都放在 `pages/index/index.vue` 中 + + +## 代码演示 +#### 基础用法 +``` +// template +// @reset-index="prizeIndex = -1" 必须默认写入到 template 中,不可删除 + + +// script +import AlmostLottery from '@/uni_modules/almost-lottery/components/almost-lottery/almost-lottery.vue' +export default { + components: { + AlmostLottery + }, + data () { + return { + // 以下是奖品配置数据 + // 奖品数据 + prizeList: [], + // 中奖下标 + prizeIndex: -1 + } + }, + methods: { + // 本次抽奖开始 + handleDrawStart () { + // 这里需要处理你的中奖逻辑,并得出 prizeIndex + // 请查看示例项目中的代码 + }, + // 本次抽奖结束 + handleDrawEnd () { + // 完成抽奖后,这里处理你拿到结果后的逻辑 + // 请查看示例项目中的代码 + }, + // 抽奖转盘绘制完成 + handleDrawFinish (res) { + // 抽奖转盘准备就绪后,这里处理你的逻辑 + // 请查看示例项目中的代码 + // console.log('抽奖转盘绘制完成', res) + } + } +} +``` + +## API +#### Props +参数 | 说明 | 类型 | 默认值 +:---|:---|:---|:--- +pixelRatio | 移动端设计稿的像素比基准值,**涉及到 `rpx` 的适配问题** | *`Number`* | `2` +canvasId | Canvas的标识,**多画板情况下需要配置不同的标识** | *`String`* | `'almostLottery'` +lotterySize | 抽奖转盘的整体尺寸,单位 `rpx` | *`Number`* | `600` +actionSize | 抽奖按钮的尺寸,单位 `rpx` | *`Number`* | `200` +canvasMarginOutside | Canvas边缘距离转盘边缘的距离,单位`rpx` | *`Number`* | `90` +prizeIndex | 获奖奖品在奖品列表中的序号,**每次抽奖结束后会自动重置为 `-1`** | *`Number`* | `-1` +prizeList | 奖品列表,支持奇数(尽量能被 `360` 除尽),**为奇数时需要重设 `colors` 参数** | *`Array`* | - +lotteryBg | 转盘外环图片 | `String` | `默认内置的本地图片` +actionBg | 抽奖按钮图片 | `String` | `默认内置的本地图片` +colors | 奖品区块对应的背景颜色,默认 2 个颜色相互交替,**也可以对每个区块设置不同颜色** | *`Array`* | `['#FFFFFF', '#FFBF05']` +prizeNameDrawed | 是否绘制奖品名称 | *`Boolean`* | `true` +stroked | 是否开启奖品区块描边 | *`Boolean`* | `false` +strDirection | 奖品名称展示方向,可选值 `'horizontal'` => 横向 `'vertical'` => 竖向 | *`String`* | `'horizontal'` +strokeColor | 奖品区块边框颜色 | *`String`* | `'#FFBF05'` +rotateType | 旋转的类型,可选值 `'roulette'` => 轮盘旋转 `'pointer'` => 指针旋转 | *`String`* | `'roulette'` +duration | 转盘旋转的动画时长,单位:秒 | *`Number`* | `8` +ringCount | 旋转的圈数 | *`Number`* | `8` +pointerPosition | 点击抽奖按钮指针的位置,可选值 `'edge'` => 指向边界 `'middle'` => 指向中间 | *`String`* | `'edge'` +strFontColors | 奖品文字颜色,默认 2 个颜色相互交替,**也可以对每个区块的文字设置不同颜色,或仅设置一个颜色** | *`Array`* | `['#FFBF05', '#FFFFFF']` +strFontSize | 奖品名称的字号,单位 `rpx` | *`Number`* | `24` +strLineHeight | 奖品名称多行情况下的行高 | *`Number`* | `1.2` +strMaxLen | 奖品名称长度限制,**文字竖向时不生效** | *`Number`* | `12` +strLineLen | 奖品名称在多行情况下第一行文字的长度,**文字竖向时不生效** | *`Number`* | `6` +strMarginOutside | 奖品文字相对轮盘边缘的距离,单位 `rpx` | *`Number`* | `strFontSize 的一半` +imgMarginStr | 奖品图片相对奖品文字的距离,单位 `rpx` | *`Number`* | `60` +imgWidth | 奖品图片的宽度,单位 `rpx` | *`Number`* | `50` +imgHeight | 奖品图片的高度,单位 `rpx` | *`Number`* | `50` +imgDrawed | 是否绘制奖品图片,默认绘制 | *`Boolean`* | `true` +imgCircled | 奖品图片是否裁切为圆形,默认不裁切 | *`Boolean`* | `false` +successMsg | 转盘绘制成功的提示 | *`String`* | `'奖品准备就绪,快来参与抽奖吧'` +failMsg | 转盘绘制失败的提示 | *`String`* | `'奖品仍在准备中,请稍后再来...'` +canvasCached | 是否开启缓存,避免在数据不变的情况下重复绘制,建议在生产环境中开启 | *`Boolean`* | `false` + +#### Events +事件名 | 说明 | 回调参数 +:---|:---|:--- +@reset-index | 每次抽奖结束后重置获奖的序号为 `-1`,**该事件必须默认写入到 `template` 中,不可删除** | - +@draw-start | 转盘旋转开始时触发 | - +@draw-end | 转盘旋转结束时触发 | - +@finish | Canvas转盘绘制完成时触发 | `{ ok: 绘制是否成功, data: 转盘的图片, msg: 绘制结果的提示 }` + +#### prizeList 数据结构 +*请按如下数据字段对你的奖品列表数据结构进行调整* +键名 | 说明 | 类型 +:---|:---|:--- +prizeId | 奖品对应 `ID` | *`Number`* +prizeName | 奖品名称 | *`String`* +prizeStock | 奖品库存 | *`Number`* +prizeWeight | 奖品权重 | *`Number`* +prizeImage | 奖品图片地址,网络图片仅支持`http`和`https`协议 | *`String`* \ No newline at end of file diff --git a/src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__action.png b/src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__action.png new file mode 100644 index 0000000000000000000000000000000000000000..2e221a4b957d156001da5ce190067e07b29cc885 GIT binary patch literal 4234 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 Xzu^TP&<}3U00000NkvXXu0mjfwQ_~l literal 0 HcmV?d00001 diff --git a/src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__bg.png b/src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__bg.png new file mode 100644 index 0000000000000000000000000000000000000000..be3936730215d4a9f3bfc1aeaefe66767e582a73 GIT binary patch literal 3398 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 c5#FbOf9Xu4Ffdo8^I%D|* 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 B5;Fh* literal 0 HcmV?d00001 diff --git a/src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__bg3x.png b/src/pageB/components/almost-lottery/static/almost-lottery/almost-lottery__bg3x.png new file mode 100644 index 0000000000000000000000000000000000000000..bcd70e1b44aa640499c93bb5f8d870db1089f5ac GIT binary patch literal 12991 zcmV;wGC<9VP)00T$_0{{R356RN#0000gP)t-s00030 zz61Zh1pmGR|GotOz6Afi1OL7R|NsC0u>$sH0{V>t|L45_%VCWdoss|m00(qZPE!CJ z;Jau+keq%|WB>p%JxN4CRCwC#oy(HaKoo}4Rm8REz+TYFRzb;DaV}dg=vti-_ZiE! z9bL-;*Rcm(TfzfazypX?vev0`-o-=)8|d^Ufsk~QugXhlm8G6Jf1m#QoP(h}AfL|{ z9_{QktJPA;vY>}mDwV3$=Hbqx``&LF8A$>Pjh*H}wNipioN~3++}XW<(a1=E!rpS%7#gRxn~C3gC^VW?3r57LHg~g(iW$(T5Q&ROsl1z=P_dEU z5{aC=@ZHIDF9txPS%E90e3<3aiUE%+(n*96cBRs({5%WO$^iMj5Hg3|>33qB!+aK} zRRF@3+xTqMYPH9wuI%ZQsowHz5uK9(y>0!YjiDq?`HqpX1YqkK49DlzIb#<}vz@s{ z(FyM>px>=2r*J|hdU0YtBOwZzNIoB27y@Veo{?q*_o69&~#+a*)Ji#w!mwgQ3&)=`)KvQr<;nJ1ZcVJhY$$ z$K45Td_jWFEh8g{f}~G3=uYUx5G2BOR^|oJ5LOH%k$S^HU@FOS2t%D1D1wICT6-e-lXF&8&Wy!=$B-qjuP*+x;rOC-ILpH

&G;A0mNMA9Y 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 B>Z$+$ literal 0 HcmV?d00001 diff --git a/src/pageB/components/almost-lottery/utils/almost-utils.js b/src/pageB/components/almost-lottery/utils/almost-utils.js new file mode 100644 index 0000000..5db2cff --- /dev/null +++ b/src/pageB/components/almost-lottery/utils/almost-utils.js @@ -0,0 +1,316 @@ +/** + * 存储 localStorage 数据 + * @param {String} name - 缓存数据的标识 + * @param {any} content - 缓存的数据内容 + */ +export const setStore = (name, content) => { + if (!name) return + if (typeof content !== 'string') { + content = JSON.stringify(content) + } + uni.setStorageSync(name, content) +} + +/** + * 获取 localStorage 数据 + * @param {String} name - 缓存数据的标识 + */ +export const getStore = (name) => { + if (!name) return + return uni.getStorageSync(name) +} + +/** + * 清除 localStorage 数据 + * @param {String} name - 缓存数据的标识 + */ +export const clearStore = (name) => { + if (name) { + uni.removeStorageSync(name) + } else { + console.log('清理本地全部缓存') + uni.clearStorageSync() + } +} + +/** + * 绘制圆形 + * @param {String} ctx - 图片网络地址 + * @param {String} img - 图片地址 + * @param {String} x - x 轴偏移量 + * @param {String} y - y 轴偏移量 + * @param {String} w - 宽 + * @param {String} h - 高 +*/ +export const circleImg = (ctx, img, x, y, w, h) => { + let r = Math.floor(w/2) + let cx = x + r + let cy = y + r + + ctx.save() + ctx.beginPath() + ctx.arc(cx, cy, r, 0, Math.PI * 2) + ctx.fill() + ctx.clip() + ctx.drawImage(img, x, y, w, h) + ctx.restore() +} + +/** + * 计算文本的长度 + * @param {String} text - 文本内容 + */ +export const clacTextLen = (text) => { + if (!text) return { byteLen: 0, realLen: 0 } + text += '' + let clacLen = 0 + for (let i = 0; i < text.length; i++) { + if ((text.charCodeAt(i) < 0) || (text.charCodeAt(i) > 255)) { + clacLen += 2 + } else { + clacLen += 1 + } + } + // console.log(`当前文本 ${text} 的长度为 ${clacLen / 2}`) + return { + byteLen: clacLen, + realLen: clacLen / 2 + } +} + +/** + * 下载文件,并返回临时路径 + * @return {String} 临时路径 + * @param {String} fileUrl - 网络地址 +*/ +export const downloadFile = (fileUrl) => { + return new Promise((resolve) => { + + // #ifdef MP-WEIXIN + let extName = fileUrl.split('.').pop() + let fileName = Date.now() + '.' + extName + // #endif + + uni.downloadFile({ + url: fileUrl, + // #ifdef MP-WEIXIN + filePath: wx.env.USER_DATA_PATH + '/' + fileName, + // #endif + success: (res) => { + // #ifdef MP-WEIXIN + resolve({ + ok: true, + data: res.errMsg, + tempFilePath: res.filePath + }) + // #endif + // #ifndef MP-WEIXIN + resolve({ + ok: true, + data: res.errMsg, + tempFilePath: res.tempFilePath + }) + // #endif + }, + fail: (err) => { + resolve({ + ok: false, + data: err.errMsg, + msg: '图片下载失败' + }) + } + }) + }) +} + +/** + * 清理应用已缓存的文件 +*/ +export const clearCacheFile = () => { + // #ifndef H5 + uni.getSavedFileList({ + success: (res) => { + let fileList = res.fileList + if (fileList.length) { + for (let i = 0; i < fileList.length; i++) { + uni.removeSavedFile({ + filePath: fileList[i].filePath, + complete: () => { + console.log('清除缓存已完成') + } + }) + } + } + }, + fail: (err) => { + console.log('getSavedFileList Fail') + } + }) + // #endif +} + + + +// 图像转换工具,可用于图像和base64的转换 +// https://ext.dcloud.net.cn/plugin?id=123 +const getLocalFilePath = (path) => { + if ( + path.indexOf('_www') === 0 || + path.indexOf('_doc') === 0 || + path.indexOf('_documents') === 0 || + path.indexOf('_downloads') === 0 + ) return path + + if (path.indexOf('/storage/emulated/0/') === 0) return path + + if (path.indexOf('/storage/sdcard0/') === 0) return path + + if (path.indexOf('/var/mobile/') === 0) return path + + if (path.indexOf('file://') === 0) return path + + if (path.indexOf('/') === 0) { + // ios 无法获取本地路径 + let localFilePath = plus.os.name === 'iOS' ? path : plus.io.convertLocalFileSystemURL(path) + if (localFilePath !== path) { + return localFilePath + } else { + path = path.substring(1) + } + } + + return '_www/' + path +} + +export const pathToBase64 = (path) => { + return new Promise((resolve, reject) => { + if (typeof window === 'object' && 'document' in window) { + if (typeof FileReader === 'function') { + let xhr = new XMLHttpRequest() + xhr.open('GET', path, true) + xhr.responseType = 'blob' + xhr.onload = function() { + if (this.status === 200) { + let fileReader = new FileReader() + fileReader.onload = function(e) { + resolve(e.target.result) + } + fileReader.onerror = reject + fileReader.readAsDataURL(this.response) + } + } + xhr.onerror = reject + xhr.send() + return + } + let canvas = document.createElement('canvas') + let c2x = canvas.getContext('2d') + let img = new Image + img.onload = function() { + canvas.width = img.width + canvas.height = img.height + c2x.drawImage(img, 0, 0) + resolve(canvas.toDataURL()) + canvas.height = canvas.width = 0 + } + img.onerror = reject + img.src = path + return + } + + if (typeof plus === 'object') { + let tempPath = getLocalFilePath(path) + plus.io.resolveLocalFileSystemURL(tempPath, (entry) => { + entry.file((file) => { + let fileReader = new plus.io.FileReader() + fileReader.onload = function(data) { + resolve(data.target.result) + } + fileReader.onerror = function(error) { + console.log(error) + reject(error) + } + fileReader.readAsDataURL(file) + }, (error) => { + reject(error) + }) + }, (error) => { + reject(error) + }) + return + } + + if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { + wx.getFileSystemManager().readFile({ + filePath: path, + encoding: 'base64', + success: (res) => { + resolve('data:image/png;base64,' + res.data) + }, + fail: (error) => { + reject(error) + } + }) + return + } + reject(new Error('not support')) + }) +} + +export const base64ToPath = (base64) => { + return new Promise((resolve, reject) => { + if (typeof window === 'object' && 'document' in window) { + base64 = base64.split(',') + let type = base64[0].match(/:(.*?);/)[1] + let str = atob(base64[1]) + let n = str.length + let array = new Uint8Array(n) + while (n--) { + array[n] = str.charCodeAt(n) + } + return resolve((window.URL || window.webkitURL).createObjectURL(new Blob([array], { + type: type + }))) + } + let extName = base64.match(/data\:\S+\/(\S+);/) + if (extName) { + extName = extName[1] + } else { + reject(new Error('base64 error')) + } + let fileName = Date.now() + '.' + extName + if (typeof plus === 'object') { + let bitmap = new plus.nativeObj.Bitmap('bitmap' + Date.now()) + bitmap.loadBase64Data(base64, () => { + let filePath = '_doc/uniapp_temp/' + fileName + bitmap.save(filePath, {}, () => { + bitmap.clear() + resolve(filePath) + }, (error) => { + bitmap.clear() + reject(error) + }) + }, (error) => { + bitmap.clear() + reject(error) + }) + return + } + if (typeof wx === 'object' && wx.canIUse('getFileSystemManager')) { + let filePath = wx.env.USER_DATA_PATH + '/' + fileName + wx.getFileSystemManager().writeFile({ + filePath: filePath, + data: base64.replace(/^data:\S+\/\S+;base64,/, ''), + encoding: 'base64', + success: () => { + resolve(filePath) + }, + fail: (error) => { + reject(error) + } + }) + return + } + reject(new Error('not support')) + }) +} diff --git a/src/pageB/lucky/index.vue b/src/pageB/lucky/index.vue new file mode 100644 index 0000000..5e4912d --- /dev/null +++ b/src/pageB/lucky/index.vue @@ -0,0 +1,422 @@ + + + + + + diff --git a/src/pages.json b/src/pages.json index 1eafedf..c693451 100644 --- a/src/pages.json +++ b/src/pages.json @@ -593,6 +593,13 @@ "enablePullDownRefresh": false, "navigationStyle": "default" } + }, + { + "path": "lucky/index", + "style": { + "navigationBarTitleText": "活动", + "enablePullDownRefresh": false + } } ] } diff --git a/src/pages/index/index.vue b/src/pages/index/index.vue index 2076a4c..42a8816 100644 --- a/src/pages/index/index.vue +++ b/src/pages/index/index.vue @@ -553,7 +553,7 @@ export default { return this.bannerList[key] ?? []; }, jumpByOption(e) { - const whiteRouter = ['/pages/user_sign/index', '/pageA/user_sign/index','/pages/points/swap']; + const whiteRouter = ['/pages/user_sign/index', '/pageA/user_sign/index','/pages/points/swap','/pageB/lucky/index']; const tabRouter = ['/pages/sort/index', '/pages/shop_cart/index', '/pages/healthy/index', '/pages/me/me']; if (!!e.jump_link) { if (e.jump_type == 1) { diff --git a/src/pages/order_details/index.vue b/src/pages/order_details/index.vue index 9db4c2d..c02c22a 100644 --- a/src/pages/order_details/index.vue +++ b/src/pages/order_details/index.vue @@ -206,7 +206,7 @@ @confirm="receiptConfirm" confirm-color="#378264" show-cancel-button - content="确认收货后不能享受7天无理由退还货,是否确认收货?" + content="是否确认收货?" > diff --git a/src/pages/product_details/index.vue b/src/pages/product_details/index.vue index 5bb2e71..5513611 100644 --- a/src/pages/product_details/index.vue +++ b/src/pages/product_details/index.vue @@ -641,8 +641,33 @@ export default { //sku改变 onChangeSku(e) { this.skuId = e.sku_id; - this.getProducts(); + this.getProdutsku(); }, + //、 + async getProdutsku() { + try { + this.loading = true; + const resData = await this.$api.get(`/v1/product/sku/${this.skuId}`); + this.products = resData; + + if (resData?.sku?.is_bargaing) { + this.bargainOrderLog(); + } + //动态修改导航栏 + this.getTitle(resData.sku.name); + //保存图片到本地 + this.getLocal(resData.sku.cover); + } catch (error) { + if (error != 404) { + this.isNull = true; + } + // console.log(error); + } finally { + this.loading = false; + this.isFirstLoading = false; + } + }, + //、 //收藏 onCollection() { this.$u.throttle(async () => {