diff --git a/api/index/index.js b/api/index/index.js index c391b41..7ba9259 100644 --- a/api/index/index.js +++ b/api/index/index.js @@ -61,3 +61,17 @@ export const drawCount = (data) => { data }) } +// 获取记录 +export const selectDiscSpinningRecord = (data) => { + return http.request({ + url: '/discSpinningRecord/selectDiscSpinningRecord', + data + }) +} +// 兑换记录 +export const userPrizeExchange = (data) => { + return http.request({ + url: '/userPrizeExchange/page', + data + }) +} \ No newline at end of file diff --git a/api/me/withdraw.js b/api/me/withdraw.js index 425201a..22d3884 100644 --- a/api/me/withdraw.js +++ b/api/me/withdraw.js @@ -40,6 +40,18 @@ export const updateUser = (data) => { }) } +/** + * 实名认证 + */ +export const realNameAuth = (data) => { + return http.request({ + url: '/user/realNameAuth/v2', + method: 'POST', + data: data + }) +} + + /** * 获取看广告状态 */ diff --git a/pages.json b/pages.json index 5340a1b..c0c8e7a 100644 --- a/pages.json +++ b/pages.json @@ -197,10 +197,10 @@ } }, { - "path" : "pages/me/prizeDraw", + "path" : "pages/index/prizeDraw/LotteryRecords", "style" : { - "navigationBarTitleText" : "" + "navigationBarTitleText" : "我的奖励" } } ], diff --git a/pages/index/index.vue b/pages/index/index.vue index 65564dc..23c75b5 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -122,12 +122,14 @@ }) onReady(() => { if(!uni.getStorageSync('ruleShow')){ - datas.ruleShow = true announcement({ type: 0 }).then(res => { - datas.ruleList = res - ruleInit() + if (res) { + datas.ruleShow = true + datas.ruleList = res + ruleInit() + } }) } @@ -235,11 +237,8 @@ // 跳转公告链接 function goMsg(url) { - // uni.navigateTo({ - // url: '/pages/index/prizeDraw/kevy-luckydraw' - // }); uni.navigateTo({ - url: '/pages/me/prizeDraw' + url: '/pages/index/prizeDraw/kevy-luckydraw' }); } diff --git a/pages/index/prizeDraw/LotteryRecords.vue b/pages/index/prizeDraw/LotteryRecords.vue new file mode 100644 index 0000000..fbfe23a --- /dev/null +++ b/pages/index/prizeDraw/LotteryRecords.vue @@ -0,0 +1,180 @@ + + + + + + \ No newline at end of file diff --git a/pages/index/prizeDraw/choujiangcanvas.vue b/pages/index/prizeDraw/choujiangcanvas.vue deleted file mode 100644 index 058486e..0000000 --- a/pages/index/prizeDraw/choujiangcanvas.vue +++ /dev/null @@ -1,138 +0,0 @@ - - - - \ No newline at end of file diff --git a/pages/index/prizeDraw/kevy-luckydraw.vue b/pages/index/prizeDraw/kevy-luckydraw.vue index 69b0a21..9f8f7cb 100644 --- a/pages/index/prizeDraw/kevy-luckydraw.vue +++ b/pages/index/prizeDraw/kevy-luckydraw.vue @@ -3,22 +3,22 @@ - - + + - + 剩余免费抽奖{{luckDrawTimes}}次 - 红包  {{totalMoney}} - + 红包 +  {{totalMoney}} + 活动规则 @@ -32,24 +32,23 @@ - - + + + + - - 某某公司提供的能量动力 - {{drawIdx==5?"探亲礼包":(drawIdx==4?"加油卡":(drawIdx==3?"鸡腿":(drawIdx==2?"方便面":"矿泉水")))}},同等价值{{drawIdx==5?"888":(drawIdx==4?"100":(drawIdx==3?"10":(drawIdx==2?"5":"2")))}}元现金已到账微信零钱 + + + {{selectData.name}}  {{selectData.number}} - - {{drawIdx > 0?"领取":"确定"}} + + 确定 @@ -64,7 +63,6 @@ selectDiscSpinning, discSpinningdraw } from '@/api/index/index.js'; - import choujiangcanvas from './choujiangcanvas.vue' var animation = uni.createAnimation({ duration: 4000, timingFunction: 'ease-out' @@ -73,7 +71,6 @@ export default { components: { kevyMask, - choujiangcanvas }, data() { return { @@ -85,7 +82,8 @@ drawIdx: null, //抽到的奖品下标,用于指定中奖奖品并旋转转盘到对应奖品处。例如共5个奖品,下标3代表第4个奖品,下标从0开始 // 每天免费抽奖次数 freeNumDay: 0, - list: [] + list: [], + selectData: "", } }, onLoad() { @@ -94,30 +92,37 @@ this.getPrizeList(); }, methods: { - goUrl(url){ + goUrl(url) { uni.navigateTo({ url }) }, - async onReadyStart() { - // 后台处理获得开奖数据 - const res = await discSpinningdraw({ - source: 1 - }); - console.log(res, 'debug') - this.wIndex = 2 - // this.$refs.lucky.o n S t a r t() - this.$refs.lucky.onStart() // 官方大大把这个过滤掉了o.n.S.t.a.r.t() + onDone(index) { + this.selectData.img = this.list[index].img + this.isShowAwd = true }, - getLotterData(data) { - console.log(data, 'debugger') + + async onClick() { + if (this.luckDrawTimes) { + const res = await discSpinningdraw({ + source: 1 + }); + let indexs = -1 + this.list.forEach((ele, index) => { + if (ele.id == res.discSpinningId) { + indexs = index + this.selectData = res + } + }) + // 奖品的索引 + this.$refs.dialer.run(indexs) + } }, // 抽奖次数 async getCount() { const res = await drawCount({ source: 1 }); - // this.luckDrawTimes = 10; this.luckDrawTimes = res.count || 0; this.freeNumDay = res.sum || 0; }, @@ -131,6 +136,9 @@ const res = await selectDiscSpinning({ source: 1 }); + res.records.forEach(res => { + res.img = res.url + }) this.list = res.records }, @@ -140,7 +148,8 @@ toConfirmAwd() { //这里中奖信息关闭弹框 this.isShowAwd = false; - + this.getRedPack(); + this.getCount(); } } } @@ -153,7 +162,7 @@ } .t-bg { - background-image:url('./luck/DZP_BJ.png'); + background-image: url('./luck/DZP_BJ.png'); width: 100%; box-sizing: border-box; background-size: 100% 100%; @@ -207,6 +216,7 @@ background-repeat: no-repeat; margin: 0rpx auto; position: relative; + background-image:url('./luck/BJ.png') } .t-zp { @@ -232,6 +242,7 @@ background-repeat: no-repeat; font-size: 40rpx; color: #980100; + background-image: url('./luck/anniu.png') } .t-fuhuo-text { @@ -359,6 +370,7 @@ width: 100%; height: 528rpx; background-size: 100% 100%; + background-image: url('./luck/tankuang.png') } .t-tk-btn { @@ -372,6 +384,7 @@ line-height: 120rpx; text-align: center; background-size: 100% 100%; + background-image: url('./luck/xiaoanniu.png') } .t-flex-row { @@ -511,9 +524,9 @@ } .t-zj-jp-desc { - font-size: 24rpx; + font-size: 36rpx; color: #D93637; - text-align: justify; + text-align: center; width: 420rpx; } diff --git a/pages/index/prizeDraw/luck/1.png b/pages/index/prizeDraw/luck/1.png deleted file mode 100644 index 374ee43..0000000 Binary files a/pages/index/prizeDraw/luck/1.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/2.png b/pages/index/prizeDraw/luck/2.png deleted file mode 100644 index bdf0f34..0000000 Binary files a/pages/index/prizeDraw/luck/2.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/3.png b/pages/index/prizeDraw/luck/3.png deleted file mode 100644 index 178cd16..0000000 Binary files a/pages/index/prizeDraw/luck/3.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/4.png b/pages/index/prizeDraw/luck/4.png deleted file mode 100644 index 2c328ee..0000000 Binary files a/pages/index/prizeDraw/luck/4.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/5.png b/pages/index/prizeDraw/luck/5.png deleted file mode 100644 index 43a8703..0000000 Binary files a/pages/index/prizeDraw/luck/5.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/close_dzp.png b/pages/index/prizeDraw/luck/close_dzp.png deleted file mode 100644 index 9b46cda..0000000 Binary files a/pages/index/prizeDraw/luck/close_dzp.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/jiangpin.png b/pages/index/prizeDraw/luck/jiangpin.png deleted file mode 100644 index 1b6d38f..0000000 Binary files a/pages/index/prizeDraw/luck/jiangpin.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/play_dzp.png b/pages/index/prizeDraw/luck/play_dzp.png deleted file mode 100644 index 48c7a5c..0000000 Binary files a/pages/index/prizeDraw/luck/play_dzp.png and /dev/null differ diff --git a/pages/index/prizeDraw/luck/start.png b/pages/index/prizeDraw/luck/start.png deleted file mode 100644 index d9a75b9..0000000 Binary files a/pages/index/prizeDraw/luck/start.png and /dev/null differ diff --git a/pages/me/prizeDraw.vue b/pages/me/prizeDraw.vue deleted file mode 100644 index 3268ce1..0000000 --- a/pages/me/prizeDraw.vue +++ /dev/null @@ -1,765 +0,0 @@ - - - - - diff --git a/pages/me/withdraw/realName.vue b/pages/me/withdraw/realName.vue index 38e3065..b66058e 100644 --- a/pages/me/withdraw/realName.vue +++ b/pages/me/withdraw/realName.vue @@ -27,7 +27,7 @@ + \ No newline at end of file diff --git a/uni_modules/lime-dialer/components/l-dialer/l-dialer.vue b/uni_modules/lime-dialer/components/l-dialer/l-dialer.vue new file mode 100644 index 0000000..dabeec8 --- /dev/null +++ b/uni_modules/lime-dialer/components/l-dialer/l-dialer.vue @@ -0,0 +1,176 @@ + + + diff --git a/uni_modules/lime-dialer/components/lime-dialer/lime-dialer.uvue b/uni_modules/lime-dialer/components/lime-dialer/lime-dialer.uvue new file mode 100644 index 0000000..2642811 --- /dev/null +++ b/uni_modules/lime-dialer/components/lime-dialer/lime-dialer.uvue @@ -0,0 +1,97 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/lime-dialer/components/lime-dialer/lime-dialer.vue b/uni_modules/lime-dialer/components/lime-dialer/lime-dialer.vue new file mode 100644 index 0000000..2c0a664 --- /dev/null +++ b/uni_modules/lime-dialer/components/lime-dialer/lime-dialer.vue @@ -0,0 +1,93 @@ + + + + + \ No newline at end of file diff --git a/uni_modules/lime-dialer/package.json b/uni_modules/lime-dialer/package.json new file mode 100644 index 0000000..c2ffd97 --- /dev/null +++ b/uni_modules/lime-dialer/package.json @@ -0,0 +1,82 @@ +{ + "id": "lime-dialer", + "displayName": "幸运转盘", + "version": "0.2.5", + "description": "幸运转盘 抽奖 抽奖转盘,兼容uniapp/uniappX(h5,ios,安卓)", + "keywords": [ + "转盘", + "抽奖", + "抽奖转盘" + ], + "repository": "", + "engines": { + "HBuilderX": "^3.4.12" + }, + "dcloudext": { + "sale": { + "regular": { + "price": "0.00" + }, + "sourcecode": { + "price": "0.00" + } + }, + "contact": { + "qq": "" + }, + "declaration": { + "ads": "无", + "data": "无", + "permissions": "无" + }, + "npmurl": "", + "type": "component-vue" + }, + "uni_modules": { + "dependencies": [], + "encrypt": [], + "platforms": { + "cloud": { + "tcb": "y", + "aliyun": "y", + "alipay": "n" + }, + "client": { + "Vue": { + "vue2": "y", + "vue3": "y" + }, + "App": { + "app-vue": "y", + "app-nvue": "n", + "app-uvue": "y", + "app-harmony": "u" + }, + "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" + }, + "快应用": { + "华为": "y", + "联盟": "y" + } + } + } + } +} \ No newline at end of file diff --git a/uni_modules/lime-dialer/readme.md b/uni_modules/lime-dialer/readme.md new file mode 100644 index 0000000..1137a1f --- /dev/null +++ b/uni_modules/lime-dialer/readme.md @@ -0,0 +1,176 @@ +# Dialer 转盘抽奖 +> 营销活动类组件 +> [查看更多](https://limeui.qcoon.cn/#/dialer)
+ + + +### 平台兼容 +| H5 | 微信小程序 | 支付宝小程序 | 百度小程序 | 头条小程序 | QQ小程序 | App | +|-----------|-----------|-----------|-----------|-----------|-----------|-----------| +| √ | √ | √ | √ | √ | √ | √ | + + +### 代码演示 +#### 基础用法 + +```html + +``` +```js +export default { + data() { + return { + // 奖品列表, + prizeList: [ + { + id: 'coupon88', + name: '8.8折', + img: 'https://img11.360buyimg.com/pop/jfs/t1/175718/35/12595/5477/60b660c6Eb850717b/a1cfe750dcdb5b78.png', + }, + { + id: 'coupon900', + Color: 'rgb(251, 219, 216)', + name: '900', + img: 'https://img11.360buyimg.com/pop/jfs/t1/190845/9/6092/4489/60b65fe8Ebb8f8284/955da889f6d1c13e.png', + }, + { + id: 'coupon1', + name: '1元', + img: 'https://img11.360buyimg.com/pop/jfs/t1/189927/14/6092/4174/60b66173E23c472ea/44af15a151defca1.png', + }, + { + id: 'apple', + Color: 'rgba(246, 142, 46, 0.5)', + name: '苹果手机', + img: 'https://img11.360buyimg.com/pop/jfs/t1/177670/26/4591/2514/60a25874Ee0e5332a/99c7bdfede732ae4.png' + }, + { + id: 'coupon210', + name: '210元', + img: 'https://img11.360buyimg.com/pop/jfs/t1/124578/12/20170/4429/60b635d8E7089ebb0/7a47d76a2a260cc0.png' + }, + { + id: 'jd100', + name: '100京豆', + img: 'https://img11.360buyimg.com/pop/jfs/t1/162790/37/15087/28046/6062a49aE8f2c10f2/5591ff0ff38a45e2.png', + }, + { + id: 'coupon400', + name: '400元', + img: 'https://img11.360buyimg.com/pop/jfs/t1/177090/2/7001/4535/60b6607aEe9c1db2a/76c67675f547db3f.png' + }, + { + id: 'thanks', + name: '谢谢参与', + img: 'https://storage.jd.com/cdn-upload/dialTemplateHeart.png', + } + ] + }; + }, + methods: { + onDone(index) { + const prize = this.prizeList[index] + uni.showModal({ + title: prize.id == 'thanks' ? '很遗憾': '恭喜您', + content: (prize.id !== 'thanks' ? `获得`:'') + prize.name + }) + }, + onClick() { + // 奖品的索引 + this.$refs.dialer.run(5) + } + } +} +``` + +#### 表框 +- 1、通过设置`dial-style`设置背景的方式设置,必须是网络图片 +- 2、通过插槽`border`设置 + +```html +// 方式1 + + +// 方式2 + + + +``` + +#### 指针 +- 1、可通过`pointer-style`设置背景的方式设置,但必须为网络图片 +- 2、可通过插槽`pointer`设置 +- 3、因为插件是能过获取内部方法实现抽奖,只要获取方法,任何元素都是指针按钮 + +```html +// 方式1 + +// 方式2 + + + +``` + +#### 奖品插槽 +- 默认会按奖品列表渲染,但想更个性可通过插槽`prize`设置 +- 微信小程序最好使用HX3.7.12+并且在`manifest.json`设置`slotMultipleInstance` +```json +"mp-weixin" : { + "slotMultipleInstance" : true +} +``` + +```html + + + +``` + + +### 查看示例 +- 导入后直接使用这个标签查看演示效果 + +```html + + +``` + + +### 插件标签 +- 默认 l-dialer 为 component +- 默认 lime-dialer 为 demo + + + +### API +#### Props + +| 参数 | 说明 | 类型 | 默认值 | 版本 | +| --- | --- | --- | --- | --- | +| size | 转盘直径,默认单位为 `rpx` | Number | `300` | - | +| prizeList | 奖品列表 | Array | [] | - | +| turns | 旋转圈数 | Number | `10` | - | +| duration | 旋转过程时间,单位为 `s` | Number | `3` | - | +| styleOpt | 转盘中的样式,包括每个扇区的背景颜色(在每条数据中页可单独设置prizeColor),扇区的边框颜色 | Object | {prizeBgColors: [],borderColor: ''} | - | +| customStyle | 外容器的自定义样式 | String | | - | +| dialStyle | 转盘自定义样式 | String | | - | +| pointerStyle | 指针自定义样式 | String | `width:30%` | - | + +#### Event + +| 名称 | 说明 | +| ---- | ---------------------------------------------------------- | +| run(index) | 旋转到指定索引,该事件是通过`ref`获取插件实例的内部方法 | +| done | 旋转结束,该事件是通过标签接收的方法 | +| click | 点击指针,该事件是通过标签接收的方法 | + + +#### Slots + +| 名称 | 说明 | +| ---- | ---------------------------------------------------------- | +| border | 边框插槽 | +| prize | 奖品插槽 | +| pointer | 指针插槽 | diff --git a/uni_modules/lime-dialer/static/lottery-bg-.png b/uni_modules/lime-dialer/static/lottery-bg-.png new file mode 100644 index 0000000..79f3039 Binary files /dev/null and b/uni_modules/lime-dialer/static/lottery-bg-.png differ diff --git a/uni_modules/lime-dialer/static/turnable_btn.png b/uni_modules/lime-dialer/static/turnable_btn.png new file mode 100644 index 0000000..15999ff Binary files /dev/null and b/uni_modules/lime-dialer/static/turnable_btn.png differ