作者 郑喜程

增加明码扫码业务、福利页面、不同金额奖卷弹窗。

@@ -13,8 +13,8 @@ @@ -13,8 +13,8 @@
13 ], 13 ],
14 "subPackages": [{ 14 "subPackages": [{
15 "root": "scanGroup", 15 "root": "scanGroup",
16 - "pages": ["index/index", "dahaoda/index/index", "dahaoda/record/index", "jyScan/index/index",  
17 - "jyScan/record/index" 16 + "pages": ["index/index", "dahaoda/index/index", "dahaoda/record/index", "jyScan/index/index", "jyScan/welfare/index",
  17 + "jyScan/record/index","jyScan/openCodeLottery/index"
18 ] 18 ]
19 }, 19 },
20 { 20 {
@@ -87,6 +87,20 @@ Page({ @@ -87,6 +87,20 @@ Page({
87 }) 87 })
88 }, 88 },
89 89
  90 + goOpenCode(){
  91 + if(getApp().globalData.userInfo?.token || app.utils.getToken()){
  92 + wx.navigateTo({
  93 + url: `/scanGroup/jyScan/openCodeLottery/index`,
  94 + })
  95 + }
  96 + else{
  97 + // wx.navigateTo({
  98 + // url: `/scanGroup/jyScan/openCodeLottery/index`,
  99 + // })
  100 + app.utils.needLogin('scan')
  101 + }
  102 + },
  103 +
90 /** 104 /**
91 * 生命周期函数--监听页面隐藏 105 * 生命周期函数--监听页面隐藏
92 */ 106 */
@@ -15,6 +15,10 @@ @@ -15,6 +15,10 @@
15 <view class="mt_down">活动</view> 15 <view class="mt_down">活动</view>
16 <view>规则</view> 16 <view>规则</view>
17 </view> --> 17 </view> -->
  18 + <view class="fixed_btn btn_1" bindtap="goOpenCode">
  19 + <view class="mt_down">明码</view>
  20 + <view>开奖</view>
  21 + </view>
18 <!-- 二维码本地文件地址:junyao-miniprogram-master\images\erweima\erweima.jpg --> 22 <!-- 二维码本地文件地址:junyao-miniprogram-master\images\erweima\erweima.jpg -->
19 <view class="saoyisao">开发时先拿个任意的二维码扫</view> 23 <view class="saoyisao">开发时先拿个任意的二维码扫</view>
20 <!-- 二维码本地文件地址:junyao-miniprogram-master\images\erweima\erweima.jpg --> 24 <!-- 二维码本地文件地址:junyao-miniprogram-master\images\erweima\erweima.jpg -->
@@ -130,18 +130,32 @@ Page({ @@ -130,18 +130,32 @@ Page({
130 app.getCode() 130 app.getCode()
131 const memberInfo = await app.getUserInfo() 131 const memberInfo = await app.getUserInfo()
132 if (this.type === 'scan') { 132 if (this.type === 'scan') {
133 - app.updateUserInfoScan(app.globalData.code, memberInfo).then(res => {  
134 - wx.hideLoading()  
135 - 133 + this.login()
  134 + // app.updateUserInfoScan(app.globalData.code, memberInfo).then(res => {
  135 + // wx.hideLoading()
  136 + // // wx.reLaunch({
  137 + // // url: this.myrouter ? decodeURIComponent(this.myrouter) : '/pages/index/index'
  138 + // // })
136 // wx.reLaunch({ 139 // wx.reLaunch({
137 - // url: this.myrouter ? decodeURIComponent(this.myrouter) : '/pages/index/index' 140 + // url: this.myrouter ? decodeURIComponent(this.myrouter) :
  141 + // '/custom-pages/custom-index/index'
  142 + // })
138 // }) 143 // })
139 - wx.reLaunch({  
140 - url: this.myrouter ? decodeURIComponent(this.myrouter) :  
141 - '/custom-pages/custom-index/index'  
142 - })  
143 - })  
144 } else { 144 } else {
  145 + this.login()
  146 + // app.updateUserInfo(app.globalData.code, memberInfo).then(res => {
  147 + // console.log(res,"res");
  148 + // wx.hideLoading()
  149 + // // wx.reLaunch({
  150 + // // url: this.myrouter ? decodeURIComponent(this.myrouter) : '/pages/index/index'
  151 + // // })
  152 + // wx.reLaunch({
  153 + // url: this.myrouter ? decodeURIComponent(this.myrouter) : '/custom-pages/custom-index/index'
  154 + // })
  155 + // })
  156 + }
  157 + },
  158 + login(){
145 const apiBase = config.dataServer 159 const apiBase = config.dataServer
146 wx.login({ 160 wx.login({
147 success: (res) => { 161 success: (res) => {
@@ -197,17 +211,6 @@ Page({ @@ -197,17 +211,6 @@ Page({
197 } 211 }
198 } 212 }
199 }) 213 })
200 - // app.updateUserInfo(app.globalData.code, memberInfo).then(res => {  
201 - // console.log(res,"res");  
202 - // wx.hideLoading()  
203 - // // wx.reLaunch({  
204 - // // url: this.myrouter ? decodeURIComponent(this.myrouter) : '/pages/index/index'  
205 - // // })  
206 - // wx.reLaunch({  
207 - // url: this.myrouter ? decodeURIComponent(this.myrouter) : '/custom-pages/custom-index/index'  
208 - // })  
209 - // })  
210 - }  
211 }, 214 },
212 // getUserProfile() { 215 // getUserProfile() {
213 // // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认 216 // // 推荐使用wx.getUserProfile获取用户信息,开发者每次通过该接口获取用户个人信息均需用户确认
@@ -38,7 +38,10 @@ Page({ @@ -38,7 +38,10 @@ Page({
38 excitationRedPack: false, //激励红包 38 excitationRedPack: false, //激励红包
39 groupRule: '<p style="text-align:center;">\n\t消费者声明及活动详细规则\n</p>\n<p>\n\t请在参与本活动前仔细阅读本活动的各项条款,如果您参加了本活动,则活动主办方认为您已充分理解并同意该规则中的各条款:\n</p>\n<ol>\n\t<li>\n\t\t活动主办方及其联系方式:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t均瑶集团上海食品有限公司(以下简称“主办方”)\n</p>\n<p style="text-indent:24px;">\n\t联系电话:021-60251969(话费自理,工作日:9:00-12:00,13:30-18:00)\n</p>\n<ol>\n\t<li>\n\t\t活动期间及兑奖时间:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t即日起至2026年4月30日23:59:59截止。\n</p>\n<p style="text-indent:24px;">\n\t为充分保障中奖者权益,兑奖时间为即日起至2026年5月1日23:59:59截止,逾期视为自动放弃兑奖。\n</p>\n<ol>\n\t<li>\n\t\t活动区域:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t仅限中国大陆地区(不含港、澳、台)\n</p>\n<ol>\n\t<li>\n\t\t活动参与条件及参与方式:\n\t</li>\n</ol>\n<p style="text-indent:28px;">\n\t即日起,凡购买“扫码赢红包”味动力AD钙奶饮品(2个口味),揭开活动产品包装上活动标签(因其包装设计二维码于瓶盖内,故为揭开瓶盖,敬请谅解),微信扫描其内二维码,进入活动小程序,根据提示完成授权或登陆即可参与活动。参与活动的消费者有机会赢取666元微信红包一份、1.8元微信红包一份或0.6元微信红包一份;同时,还有机会获得复购奖励“1.8元复购红包”,获得复购奖励后再买一瓶活动产品并扫描再次购买的活动产品瓶盖内二维码后即可解锁领取1.8元现金红包,复购奖励数量有限,发完即止。\n</p>\n<ol>\n\t<li>\n\t\t开奖方式与开奖时间:\n\t</li>\n</ol>\n<p>\n\t&nbsp;&nbsp;&nbsp;&nbsp;参与活动后,根据微信平台活动小程序页面提示,手机扫码即时开奖,若显示中奖,则线上即时领取红包即可。\n</p>\n<ol>\n\t<li>\n\t\t奖项种类设置:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t本活动奖项种类分为常规抽奖与复购奖励。\n</p>\n<ol>\n\t<li>\n\t\t其中常规抽奖设立奖品价格、奖品品名、奖品种类、奖品数量及中奖概率如下:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t一等奖:666元微信现金红包一份,价值人民币六百六十六元,本活动共设18份;中奖概率约为0.0039%\n</p>\n<p style="text-indent:24px;">\n\t二等奖:1.8元微信现金红包一份,价值人民币一元八角,本活动共设6,000份;中奖概率约为1.33%\n</p>\n<p style="text-indent:24px;">\n\t三等奖:0.6元微信现金红包一份,价值人民币八角,本活动共设80,000份;中奖概率约为17.78%\n</p>\n<p style="text-indent:24px;">\n\t其余未中奖将出现“谢谢惠顾”字样。\n</p>\n<p style="text-indent:24px;">\n\t*各奖项中奖率无法整除,谨请谅解。\n</p>\n<ol>\n\t<li>\n\t\t复购奖励设立奖品价格、奖品品名、奖品种类、奖品数量如下:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t复购奖励:人民币1.8元微信现金红包一份,价值人民币壹元捌角,共30,000份,数量有限,先到先得,发完即止。\n</p>\n<ol>\n\t<li>\n\t\t兑奖条件、兑奖方式及奖品交付方式:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t微信扫描活动产品包装上活动标签后,按手机页面提示操作进行兑奖。\n</p>\n<ol>\n\t<li>\n\t\t常规抽奖兑换方式、兑奖方式及奖品交付方式如下:\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t如若抽中一等奖666元,需要完善中奖者姓名、身份证、手机号信息并确认提交即可兑奖。提请注意:因微信平台对商家转账到零钱的单笔提现金额上限至200元,即该奖项到账微信钱包时会自动拆分成4笔同时到中奖者微信账户余额;\n\t</li>\n\t<li>\n\t\t如若抽中二等奖1.8元/三等奖0.8元,点击领取即可兑奖,不需要完善中奖者信息;所得现金红包将存入本人微信账户,可在历史中奖记录中查看。\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t复购奖励兑换方式、兑奖方式及奖品交付方式如下:\n\t</li>\n</ol>\n<p>\n\t&nbsp;&nbsp;&nbsp;&nbsp;如若抽中复购奖励,复购奖励中奖者再买一瓶活动产品并点击活动页面中的“扫码激活”扫描再次购买的活动产品瓶盖内二维码后点击领取即可兑奖,不需要完善中奖者信息;所得现金红包将自动存入本人微信账户,可在历史中奖记录中查看。\n</p>\n<p style="text-indent:24px;">\n\t红包提现需遵守腾讯公司微信红包提现规则,由系统自动发放,转账延时属正常情况。本次活动所产生的个人所得税由均瑶集团上海食品有限公司依法代扣代缴,现金红包均为税后所得。\n</p>\n<ol>\n\t<li>\n\t\t活动声明、弃奖条件及注意事项:\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t均瑶集团上海食品有限公司对活动产品真实性及有效性具有鉴定及确认权。\n\t</li>\n\t<li>\n\t\t本次活动产品总计投入2,250,000份,每个活动产品二维码只可参与一次抽奖活动,重复扫码无效。\n\t</li>\n\t<li>\n\t\t为保证活动参与体验,主办方将检测活动消费者所提交的相关数据以确保真实性。若检测出消费者有恶意或者虚假刷单行为,主办方有权取消其参加本次活动资格。提请注意:每个微信OpenID活动期间日参与次数限6次,超过参与次数后限制参与,并提示微信号参与已达日上限。消费者可以次日零点后再扫码参与。\n\t</li>\n\t<li>\n\t\t现金红包须在兑奖截止日期前(如需完善相关信息应当在兑换有效期内完善并正确)完成兑奖,过期视为弃奖,主办方不予补发。\n\t</li>\n\t<li>\n\t\t复购奖励中奖者,若未在中奖后72小时内再次购买活动产品并扫描再次购买的活动产品瓶盖内二维码的,视为弃奖。\n\t</li>\n\t<li>\n\t\t消费者应当在活动期间内参与活动并在兑奖期间内完成兑奖,否则视为弃奖。\n\t</li>\n\t<li>\n\t\t活动主办方不对因网络传输原因而导致消费者提交的信息错误或延误承担任何责任。\n\t</li>\n\t<li>\n\t\t消费者领奖过程中所发生的个人费用(包含但不限于上网费、手机流量费、短信费、咨询客服电话费)需自理,主办方不做任何形式的补偿。本活动对象为以消费为目的的消费者,禁止非真实活动参与者的刷单行为,活动参与者不遵守活动规则的,主办方有权根据法律法规及活动规则不予兑换/追回已兑换活动奖品,并且主办方保留追究无参与资格者一切法律责任的权力。\n\t</li>\n\t<li>\n\t\t若因消费者个人原因造成账号、密码遗失,并导致参与活动兑奖的消费者无法提交个人信息的情况,活动主办方不承担责任。\n\t</li>\n\t<li>\n\t\t如发现消费者恶意刷奖行为,包括但不限于:入侵本次活动所使用的网络服务器、使用技术手段获取活动后台信息或篡改活动后台中奖规则、参与记录不符合活动的最低参与要求、盗用他人信息参与活动、冒充他人获得红包等不正当行为,主办方有权取消其活动参与权和收回其所得红包。同时保留依法追究其法律责任的权利。\n\t</li>\n\t<li>\n\t\t活动过程中出现“不可抗力”事件或计算机系统故障直接或间接地造成活动主办方无法履行其全部或部分义务,则活动主办方将免予履行该义务,并无需承担相应的责任。“不可抗力”事件包括但不限于,地震、台风、火灾、水灾、战争、法律法规调整、政府命令禁止、因黑客攻击、计算机病毒影响、系统崩溃、数据丢失或其他人为原因造成计算机系统故障,及其他自然或人为灾害等导致活动无法继续开展的,且活动主办方不可预见、无法避免并无法控制的事件。\n\t</li>\n\t<li>\n\t\t活动过程中,如因政府法律法规调整或行政命令要求,活动主办方有权根据上述调整或要求随时调整活动内容及规则。活动内容及规则调整时,活动主办方将另行向活动参与者公告通知相关的调整,但无需征得活动参与者的同意。主办方有权根据法律法规、司法或行政命令的要求以及活动的实际情况,在法律允许的范围内随时取消、中止或终止此次活动。\n\t</li>\n\t<li>\n\t\t本次活动奖品所涉之相关服务由第三方服务提供商提供,使用服务的相关限制及注意事项以具体服务提供商的要求为准。对于消费者在领取和使用奖品过程中发生的任何伤害和损失,如该伤害和损失非由主办方之过错导致,主办方不承担任何责任。\n\t</li>\n\t<li>\n\t\t消费者需就因其违反本条款及细则的任何规定、侵犯他人权利或其他任何违法的行为而引起的所有索偿、责任、损失、损害、费用和开支对主办方做出补偿。\n\t</li>\n\t<li>\n\t\t本活动适用中华人民共和国法律。因本活动引起的或本活动有关的任何争议,由争议双方友好协商解决。如任何争议不能通过双方友好协商解决的,可通过其他有效法律途径征求最终解决方式。\n\t</li>\n\t<li>\n\t\t活动主办方、本促销活动的代理公司、广告公司、印刷商和相关合作企业之员工、家属,不可参加此次促销活动,&nbsp;以示公允。\n\t</li>\n\t<li>\n\t\t个人信息:\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t用户向活动主办方提供的个人微信资料数据只会用作本次活动用途,及会被保密处理。\n\t</li>\n\t<li>\n\t\t用户必须授权使用个人微信账号登陆进行互动;若未能及时提供,将不能参加本次活动。\n\t</li>\n\t<li>\n\t\t用户进入本活动时,需要点击同意并授权个人的基本资料给活动主办方使用。本活动将通过微信收集用户基本信息,包括:微信信息资料。以上信息将被主办方委托的第三方用于本活动的奖品派发、活动数据分析等。活动主办方将采取适当的规范手段以保护个人信息安全,防止资料丢失、被盗用或遭篡改。\n\t</li>\n\t<li>\n\t\t用户在使用互联网时对个人信息的运用需进行监管和负责,如有通过公告版等形式自愿提供及公开的个人资料被他人使用或传播,与本活动无关。\n\t</li>\n\t<li>\n\t\t如用户本人主动将微信账号与密码共享,或因各种不可抗力因素所导致的个人资料泄露、丢失、被盗用或被篡改,主办方不承担任何责任。\n\t</li>\n\t<li>\n\t\t如经得用户同意,主办方可使用有关个人资料数据作直接商品促销用途;否则,主办方将不能使用其个人资料作前述直接促销用途。用户须确保所提供的个人资料属实及有效。\n\t</li>\n</ol>', 39 groupRule: '<p style="text-align:center;">\n\t消费者声明及活动详细规则\n</p>\n<p>\n\t请在参与本活动前仔细阅读本活动的各项条款,如果您参加了本活动,则活动主办方认为您已充分理解并同意该规则中的各条款:\n</p>\n<ol>\n\t<li>\n\t\t活动主办方及其联系方式:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t均瑶集团上海食品有限公司(以下简称“主办方”)\n</p>\n<p style="text-indent:24px;">\n\t联系电话:021-60251969(话费自理,工作日:9:00-12:00,13:30-18:00)\n</p>\n<ol>\n\t<li>\n\t\t活动期间及兑奖时间:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t即日起至2026年4月30日23:59:59截止。\n</p>\n<p style="text-indent:24px;">\n\t为充分保障中奖者权益,兑奖时间为即日起至2026年5月1日23:59:59截止,逾期视为自动放弃兑奖。\n</p>\n<ol>\n\t<li>\n\t\t活动区域:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t仅限中国大陆地区(不含港、澳、台)\n</p>\n<ol>\n\t<li>\n\t\t活动参与条件及参与方式:\n\t</li>\n</ol>\n<p style="text-indent:28px;">\n\t即日起,凡购买“扫码赢红包”味动力AD钙奶饮品(2个口味),揭开活动产品包装上活动标签(因其包装设计二维码于瓶盖内,故为揭开瓶盖,敬请谅解),微信扫描其内二维码,进入活动小程序,根据提示完成授权或登陆即可参与活动。参与活动的消费者有机会赢取666元微信红包一份、1.8元微信红包一份或0.6元微信红包一份;同时,还有机会获得复购奖励“1.8元复购红包”,获得复购奖励后再买一瓶活动产品并扫描再次购买的活动产品瓶盖内二维码后即可解锁领取1.8元现金红包,复购奖励数量有限,发完即止。\n</p>\n<ol>\n\t<li>\n\t\t开奖方式与开奖时间:\n\t</li>\n</ol>\n<p>\n\t&nbsp;&nbsp;&nbsp;&nbsp;参与活动后,根据微信平台活动小程序页面提示,手机扫码即时开奖,若显示中奖,则线上即时领取红包即可。\n</p>\n<ol>\n\t<li>\n\t\t奖项种类设置:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t本活动奖项种类分为常规抽奖与复购奖励。\n</p>\n<ol>\n\t<li>\n\t\t其中常规抽奖设立奖品价格、奖品品名、奖品种类、奖品数量及中奖概率如下:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t一等奖:666元微信现金红包一份,价值人民币六百六十六元,本活动共设18份;中奖概率约为0.0039%\n</p>\n<p style="text-indent:24px;">\n\t二等奖:1.8元微信现金红包一份,价值人民币一元八角,本活动共设6,000份;中奖概率约为1.33%\n</p>\n<p style="text-indent:24px;">\n\t三等奖:0.6元微信现金红包一份,价值人民币八角,本活动共设80,000份;中奖概率约为17.78%\n</p>\n<p style="text-indent:24px;">\n\t其余未中奖将出现“谢谢惠顾”字样。\n</p>\n<p style="text-indent:24px;">\n\t*各奖项中奖率无法整除,谨请谅解。\n</p>\n<ol>\n\t<li>\n\t\t复购奖励设立奖品价格、奖品品名、奖品种类、奖品数量如下:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t复购奖励:人民币1.8元微信现金红包一份,价值人民币壹元捌角,共30,000份,数量有限,先到先得,发完即止。\n</p>\n<ol>\n\t<li>\n\t\t兑奖条件、兑奖方式及奖品交付方式:\n\t</li>\n</ol>\n<p style="text-indent:24px;">\n\t微信扫描活动产品包装上活动标签后,按手机页面提示操作进行兑奖。\n</p>\n<ol>\n\t<li>\n\t\t常规抽奖兑换方式、兑奖方式及奖品交付方式如下:\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t如若抽中一等奖666元,需要完善中奖者姓名、身份证、手机号信息并确认提交即可兑奖。提请注意:因微信平台对商家转账到零钱的单笔提现金额上限至200元,即该奖项到账微信钱包时会自动拆分成4笔同时到中奖者微信账户余额;\n\t</li>\n\t<li>\n\t\t如若抽中二等奖1.8元/三等奖0.8元,点击领取即可兑奖,不需要完善中奖者信息;所得现金红包将存入本人微信账户,可在历史中奖记录中查看。\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t复购奖励兑换方式、兑奖方式及奖品交付方式如下:\n\t</li>\n</ol>\n<p>\n\t&nbsp;&nbsp;&nbsp;&nbsp;如若抽中复购奖励,复购奖励中奖者再买一瓶活动产品并点击活动页面中的“扫码激活”扫描再次购买的活动产品瓶盖内二维码后点击领取即可兑奖,不需要完善中奖者信息;所得现金红包将自动存入本人微信账户,可在历史中奖记录中查看。\n</p>\n<p style="text-indent:24px;">\n\t红包提现需遵守腾讯公司微信红包提现规则,由系统自动发放,转账延时属正常情况。本次活动所产生的个人所得税由均瑶集团上海食品有限公司依法代扣代缴,现金红包均为税后所得。\n</p>\n<ol>\n\t<li>\n\t\t活动声明、弃奖条件及注意事项:\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t均瑶集团上海食品有限公司对活动产品真实性及有效性具有鉴定及确认权。\n\t</li>\n\t<li>\n\t\t本次活动产品总计投入2,250,000份,每个活动产品二维码只可参与一次抽奖活动,重复扫码无效。\n\t</li>\n\t<li>\n\t\t为保证活动参与体验,主办方将检测活动消费者所提交的相关数据以确保真实性。若检测出消费者有恶意或者虚假刷单行为,主办方有权取消其参加本次活动资格。提请注意:每个微信OpenID活动期间日参与次数限6次,超过参与次数后限制参与,并提示微信号参与已达日上限。消费者可以次日零点后再扫码参与。\n\t</li>\n\t<li>\n\t\t现金红包须在兑奖截止日期前(如需完善相关信息应当在兑换有效期内完善并正确)完成兑奖,过期视为弃奖,主办方不予补发。\n\t</li>\n\t<li>\n\t\t复购奖励中奖者,若未在中奖后72小时内再次购买活动产品并扫描再次购买的活动产品瓶盖内二维码的,视为弃奖。\n\t</li>\n\t<li>\n\t\t消费者应当在活动期间内参与活动并在兑奖期间内完成兑奖,否则视为弃奖。\n\t</li>\n\t<li>\n\t\t活动主办方不对因网络传输原因而导致消费者提交的信息错误或延误承担任何责任。\n\t</li>\n\t<li>\n\t\t消费者领奖过程中所发生的个人费用(包含但不限于上网费、手机流量费、短信费、咨询客服电话费)需自理,主办方不做任何形式的补偿。本活动对象为以消费为目的的消费者,禁止非真实活动参与者的刷单行为,活动参与者不遵守活动规则的,主办方有权根据法律法规及活动规则不予兑换/追回已兑换活动奖品,并且主办方保留追究无参与资格者一切法律责任的权力。\n\t</li>\n\t<li>\n\t\t若因消费者个人原因造成账号、密码遗失,并导致参与活动兑奖的消费者无法提交个人信息的情况,活动主办方不承担责任。\n\t</li>\n\t<li>\n\t\t如发现消费者恶意刷奖行为,包括但不限于:入侵本次活动所使用的网络服务器、使用技术手段获取活动后台信息或篡改活动后台中奖规则、参与记录不符合活动的最低参与要求、盗用他人信息参与活动、冒充他人获得红包等不正当行为,主办方有权取消其活动参与权和收回其所得红包。同时保留依法追究其法律责任的权利。\n\t</li>\n\t<li>\n\t\t活动过程中出现“不可抗力”事件或计算机系统故障直接或间接地造成活动主办方无法履行其全部或部分义务,则活动主办方将免予履行该义务,并无需承担相应的责任。“不可抗力”事件包括但不限于,地震、台风、火灾、水灾、战争、法律法规调整、政府命令禁止、因黑客攻击、计算机病毒影响、系统崩溃、数据丢失或其他人为原因造成计算机系统故障,及其他自然或人为灾害等导致活动无法继续开展的,且活动主办方不可预见、无法避免并无法控制的事件。\n\t</li>\n\t<li>\n\t\t活动过程中,如因政府法律法规调整或行政命令要求,活动主办方有权根据上述调整或要求随时调整活动内容及规则。活动内容及规则调整时,活动主办方将另行向活动参与者公告通知相关的调整,但无需征得活动参与者的同意。主办方有权根据法律法规、司法或行政命令的要求以及活动的实际情况,在法律允许的范围内随时取消、中止或终止此次活动。\n\t</li>\n\t<li>\n\t\t本次活动奖品所涉之相关服务由第三方服务提供商提供,使用服务的相关限制及注意事项以具体服务提供商的要求为准。对于消费者在领取和使用奖品过程中发生的任何伤害和损失,如该伤害和损失非由主办方之过错导致,主办方不承担任何责任。\n\t</li>\n\t<li>\n\t\t消费者需就因其违反本条款及细则的任何规定、侵犯他人权利或其他任何违法的行为而引起的所有索偿、责任、损失、损害、费用和开支对主办方做出补偿。\n\t</li>\n\t<li>\n\t\t本活动适用中华人民共和国法律。因本活动引起的或本活动有关的任何争议,由争议双方友好协商解决。如任何争议不能通过双方友好协商解决的,可通过其他有效法律途径征求最终解决方式。\n\t</li>\n\t<li>\n\t\t活动主办方、本促销活动的代理公司、广告公司、印刷商和相关合作企业之员工、家属,不可参加此次促销活动,&nbsp;以示公允。\n\t</li>\n\t<li>\n\t\t个人信息:\n\t</li>\n</ol>\n<ol>\n\t<li>\n\t\t用户向活动主办方提供的个人微信资料数据只会用作本次活动用途,及会被保密处理。\n\t</li>\n\t<li>\n\t\t用户必须授权使用个人微信账号登陆进行互动;若未能及时提供,将不能参加本次活动。\n\t</li>\n\t<li>\n\t\t用户进入本活动时,需要点击同意并授权个人的基本资料给活动主办方使用。本活动将通过微信收集用户基本信息,包括:微信信息资料。以上信息将被主办方委托的第三方用于本活动的奖品派发、活动数据分析等。活动主办方将采取适当的规范手段以保护个人信息安全,防止资料丢失、被盗用或遭篡改。\n\t</li>\n\t<li>\n\t\t用户在使用互联网时对个人信息的运用需进行监管和负责,如有通过公告版等形式自愿提供及公开的个人资料被他人使用或传播,与本活动无关。\n\t</li>\n\t<li>\n\t\t如用户本人主动将微信账号与密码共享,或因各种不可抗力因素所导致的个人资料泄露、丢失、被盗用或被篡改,主办方不承担任何责任。\n\t</li>\n\t<li>\n\t\t如经得用户同意,主办方可使用有关个人资料数据作直接商品促销用途;否则,主办方将不能使用其个人资料作前述直接促销用途。用户须确保所提供的个人资料属实及有效。\n\t</li>\n</ol>',
40 locate: '', 40 locate: '',
41 - received: false 41 + received: false,
  42 + showWelfare: false,
  43 + juanSrc: "",
  44 + showjuan: false,
42 }, 45 },
43 46
44 /** 47 /**
@@ -51,7 +54,10 @@ Page({ @@ -51,7 +54,10 @@ Page({
51 locate: res 54 locate: res
52 }) 55 })
53 }) 56 })
54 - const pageData = JSON.parse(decodeURIComponent(options.pageData)) 57 + let pageData = {}
  58 + if(options?.pageData){
  59 + pageData = JSON.parse(decodeURIComponent(options?.pageData))
  60 + }
55 let userId = wx.getStorageSync('nick')?.userId 61 let userId = wx.getStorageSync('nick')?.userId
56 if (!userId) { 62 if (!userId) {
57 // userId = getApp().globalData.userInfo?.openId 63 // userId = getApp().globalData.userInfo?.openId
@@ -60,10 +66,28 @@ Page({ @@ -60,10 +66,28 @@ Page({
60 userId, 66 userId,
61 pageData 67 pageData
62 }) 68 })
63 - console.log(pageData, 'pageData', userId, 'userId'); 69 + console.log(pageData, 'pageData11111', userId, 'userId');
  70 + if(options.tag){
  71 + console.log(options.tag,"options.tag");
  72 + //明码抽奖
  73 + let {code,uri} = app.utils.getCodeAndUri(options.tag)
  74 + console.log(code,uri,"code,uri");
  75 + let pageData ={
  76 + ...pageData,
  77 + qrCode:code,
  78 + qrUri:uri
  79 + }
  80 + this.setData({
  81 + pageData
  82 + })
  83 + this.doActivity()
  84 + }
  85 + else{
  86 + console.log(pageData,111111);
64 this.getPromotion(pageData) //junyao 查询二维码信息和活动信息 87 this.getPromotion(pageData) //junyao 查询二维码信息和活动信息
  88 + }
65 // this.getMarquee() 89 // this.getMarquee()
66 - } else if (!app.utils.getToken()) { 90 + } else {
67 app.utils.needLogin() 91 app.utils.needLogin()
68 } 92 }
69 // if (!app.utils.getToken()) { 93 // if (!app.utils.getToken()) {
@@ -213,15 +237,17 @@ Page({ @@ -213,15 +237,17 @@ Page({
213 wx.openSetting({}) 237 wx.openSetting({})
214 }, 238 },
215 async doActivity() { 239 async doActivity() {
  240 + console.log(this.data.pageData,"this.data.pageData");
216 await this.getLocation().then(res => { 241 await this.getLocation().then(res => {
217 this.setData({ 242 this.setData({
218 locate: res 243 locate: res
219 }) 244 })
220 }) 245 })
221 const apiBase = config.dataServer 246 const apiBase = config.dataServer
222 - // 抽奖 247 + console.log(this.data.locate,"this.data.locate");
  248 + // 抽奖/明码进来自动抽奖
223 wx.request({ 249 wx.request({
224 - url: apiBase + "/lottery/v2/tag?longitude=&latitude=", 250 + url: apiBase + `/lottery/v2/tag?longitude=${this.data.locate.split(",")[0]}&latitude=${this.data.locate.split(",")[1]}`,
225 header: { 251 header: {
226 'Authorization': `Bearer ${getApp().globalData.userInfo?.token}`, 252 'Authorization': `Bearer ${getApp().globalData.userInfo?.token}`,
227 'serialId': getApp().userInfo?.serialId 253 'serialId': getApp().userInfo?.serialId
@@ -239,8 +265,11 @@ Page({ @@ -239,8 +265,11 @@ Page({
239 timeout: 30 * 1000, 265 timeout: 30 * 1000,
240 success: (res) => { 266 success: (res) => {
241 console.log(res, "res"); //抽奖后返回的结果 新接口 267 console.log(res, "res"); //抽奖后返回的结果 新接口
  268 + let type = "5"
  269 + switch (type) {
242 //弹出中奖结果 270 //弹出中奖结果
243 - //1.showRedPack 271 + case "1":
  272 + //showRedPack
244 this.setData({ 273 this.setData({
245 scanRewardVO: (res.data?.prizes && res.data?.prizes[0]) || { 274 scanRewardVO: (res.data?.prizes && res.data?.prizes[0]) || {
246 amount: 1 275 amount: 1
@@ -248,90 +277,112 @@ Page({ @@ -248,90 +277,112 @@ Page({
248 showRedPack: true, 277 showRedPack: true,
249 excitationRedPack: true 278 excitationRedPack: true
250 }) 279 })
251 - //2.完善个人信息  
252 - // this.setData({  
253 - // showCouponComMess: true,  
254 - // isOneReward:true //手机授权/填写身份信息  
255 - // })  
256 - // 3.receiveVis  
257 - // this.setData({  
258 - // receiveVis: true,  
259 - // isNoAward:true // 获奖/谢谢参与  
260 - // })  
261 - // 4.领取成功,继续扫码  
262 - // this.setData({  
263 - // showSecondRedPack: true,  
264 - // })  
265 - },  
266 - fail: (res) => {  
267 - const [title, info] = res.data.errorMsg.split('|')  
268 - this.setData({  
269 - alertShow: true,  
270 - alertInfo: title || '',  
271 - alertText: info || '',  
272 - })  
273 - },  
274 - complete: () => {  
275 - // wx.hideNavigationBarLoading()  
276 - // if (showLoading) {  
277 - // wx.hideLoading()  
278 - // }  
279 - }  
280 - })  
281 return 280 return
282 - app.utils.doPost({  
283 - url: '/activity/doActivityWithLocate.json',  
284 - params: {  
285 - locate: this.data.locate,  
286 - qrCode: this.data.pageData.qrCode  
287 - }  
288 - }).then(res => {  
289 - if (res.data.scanRewardVO) {  
290 - res.data.scanRewardVO.brandId = res.data.brandId  
291 - // let subGoodsVOS = Array.isArray(res.data.subGoodsVOS) ? res.data.subGoodsVOS : ['激励红包'] //null  
292 - let subGoodsVOS = res.data.subGoodsVOS  
293 - this.setData({  
294 - scanRewardVO: res.data.scanRewardVO,  
295 - // subGoodsVOS:Array.isArray(res.data.subGoodsVOS) ? res.data.subGoodsVOS : ['激励红包'] //null  
296 - subGoodsVOS: res.data.subGoodsVOS  
297 - }, () => {  
298 - if (this.data.scanRewardVO.presentType == 9 && Array.isArray(  
299 - subGoodsVOS) && subGoodsVOS.length) { //谢谢惠顾 281 + case "2":
  282 + //完善个人信息
300 this.setData({ 283 this.setData({
301 - showSecondRedPack: true,  
302 - secondRedPackBg: 'https://hbrand.oss-cn-hangzhou.aliyuncs.com/cpp/jyScan/second_bg2.png' 284 + showCouponComMess: true,
  285 + isOneReward: true //手机授权/填写身份信息
303 }) 286 })
304 - } else if (this.data.scanRewardVO.presentType == 9 && Array.isArray(  
305 - subGoodsVOS) && !subGoodsVOS.length) { //待解锁库存没有了 287 + return
  288 + case "3":
  289 + // receiveVis
306 this.setData({ 290 this.setData({
307 receiveVis: true, 291 receiveVis: true,
308 - isNoAward: true 292 + isNoAward: true // 获奖/谢谢参与
309 }) 293 })
310 - } else if (this.data.scanRewardVO.presentType == 2 && Array.isArray(  
311 - subGoodsVOS)) { 294 + return
  295 + case "4":
  296 + // 领取成功,继续扫码
312 this.setData({ 297 this.setData({
313 - showRedPack: true 298 + showSecondRedPack: true,
314 }) 299 })
315 - } else if (this.data.scanRewardVO.presentType == 2 && !Array.isArray(  
316 - subGoodsVOS)) { 300 + return
  301 + case "5":
  302 + let price = "5" // 5 50 10 100
  303 + let juanSrc = `/images/junyao/juan${price}.png`
  304 + // 领取成功,继续扫码
317 this.setData({ 305 this.setData({
318 - showRedPack: true,  
319 - excitationRedPack: true 306 + juanSrc,
  307 + showjuan: true
320 }) 308 })
  309 + return
321 } 310 }
322 - })  
323 - } else {  
324 - const [title, info, time] = res.data.errorMsg.split('|') 311 + },
  312 + fail: (res) => {
  313 + const [title, info] = res.data.errorMsg.split('|')
325 this.setData({ 314 this.setData({
326 alertShow: true, 315 alertShow: true,
327 alertInfo: title || '', 316 alertInfo: title || '',
328 alertText: info || '', 317 alertText: info || '',
329 - alertTime: time || ''  
330 }) 318 })
  319 + },
  320 + complete: () => {
  321 + // wx.hideNavigationBarLoading()
  322 + // if (showLoading) {
  323 + // wx.hideLoading()
  324 + // }
331 } 325 }
332 - this.setData({  
333 - received: true  
334 }) 326 })
  327 + return
  328 + // app.utils.doPost({
  329 + // url: '/activity/doActivityWithLocate.json',
  330 + // params: {
  331 + // locate: this.data.locate,
  332 + // qrCode: this.data.pageData.qrCode
  333 + // }
  334 + // }).then(res => {
  335 + // if (res.data.scanRewardVO) {
  336 + // res.data.scanRewardVO.brandId = res.data.brandId
  337 + // // let subGoodsVOS = Array.isArray(res.data.subGoodsVOS) ? res.data.subGoodsVOS : ['激励红包'] //null
  338 + // let subGoodsVOS = res.data.subGoodsVOS
  339 + // this.setData({
  340 + // scanRewardVO: res.data.scanRewardVO,
  341 + // // subGoodsVOS:Array.isArray(res.data.subGoodsVOS) ? res.data.subGoodsVOS : ['激励红包'] //null
  342 + // subGoodsVOS: res.data.subGoodsVOS
  343 + // }, () => {
  344 + // if (this.data.scanRewardVO.presentType == 9 && Array.isArray(
  345 + // subGoodsVOS) && subGoodsVOS.length) { //谢谢惠顾
  346 + // this.setData({
  347 + // showSecondRedPack: true,
  348 + // secondRedPackBg: 'https://hbrand.oss-cn-hangzhou.aliyuncs.com/cpp/jyScan/second_bg2.png'
  349 + // })
  350 + // } else if (this.data.scanRewardVO.presentType == 9 && Array.isArray(
  351 + // subGoodsVOS) && !subGoodsVOS.length) { //待解锁库存没有了
  352 + // this.setData({
  353 + // receiveVis: true,
  354 + // isNoAward: true
  355 + // })
  356 + // } else if (this.data.scanRewardVO.presentType == 2 && Array.isArray(
  357 + // subGoodsVOS)) {
  358 + // this.setData({
  359 + // showRedPack: true
  360 + // })
  361 + // } else if (this.data.scanRewardVO.presentType == 2 && !Array.isArray(
  362 + // subGoodsVOS)) {
  363 + // this.setData({
  364 + // showRedPack: true,
  365 + // excitationRedPack: true
  366 + // })
  367 + // }
  368 + // })
  369 + // } else {
  370 + // const [title, info, time] = res.data.errorMsg.split('|')
  371 + // this.setData({
  372 + // alertShow: true,
  373 + // alertInfo: title || '',
  374 + // alertText: info || '',
  375 + // alertTime: time || ''
  376 + // })
  377 + // }
  378 + // this.setData({
  379 + // received: true
  380 + // })
  381 + // })
  382 + },
  383 + closeJuan(){
  384 + this.setData({
  385 + showjuan: false
335 }) 386 })
336 }, 387 },
337 // 领取红包 388 // 领取红包
@@ -534,6 +585,11 @@ Page({ @@ -534,6 +585,11 @@ Page({
534 }, 585 },
535 }) 586 })
536 }, 587 },
  588 + welfareBoxClose() {
  589 + this.setData({
  590 + showWelfare: false,
  591 + })
  592 + },
537 // 校验数据是否填写完整 593 // 校验数据是否填写完整
538 checkIsFilled() { 594 checkIsFilled() {
539 if (this.data.isOneReward) { 595 if (this.data.isOneReward) {
@@ -679,6 +735,11 @@ Page({ @@ -679,6 +735,11 @@ Page({
679 url: `/scanGroup/jyScan/record/index?groupId=${this.data.pageData?.id}&voucherNo=${this.data.scanRewardVO?.voucherNo}`, 735 url: `/scanGroup/jyScan/record/index?groupId=${this.data.pageData?.id}&voucherNo=${this.data.scanRewardVO?.voucherNo}`,
680 }) 736 })
681 }, 737 },
  738 + goWelfare() {
  739 + wx.navigateTo({
  740 + url: `/scanGroup/jyScan/welfare/index`,
  741 + })
  742 + },
682 goIndex() { 743 goIndex() {
683 wx.switchTab({ 744 wx.switchTab({
684 url: '/custom-pages/custom-index/index', 745 url: '/custom-pages/custom-index/index',
@@ -5,7 +5,7 @@ @@ -5,7 +5,7 @@
5 <image class="index_img product" src="/images/junyao/product.png" mode="widthFix"/> 5 <image class="index_img product" src="/images/junyao/product.png" mode="widthFix"/>
6 <image class="drink_power" src="/images/junyao/drinkPower.png" mode="widthFix"/> 6 <image class="drink_power" src="/images/junyao/drinkPower.png" mode="widthFix"/>
7 <image class="index_img myPrize" bindtap="goRecord" src="/images/junyao/myPrize.png" mode="widthFix"/> 7 <image class="index_img myPrize" bindtap="goRecord" src="/images/junyao/myPrize.png" mode="widthFix"/>
8 - <image class="index_img welfareOfficer" src="/images/junyao/welfareOfficer.png" mode="widthFix"/> 8 + <image class="index_img welfareOfficer" bindtap="goWelfare" src="/images/junyao/welfareOfficer.png" mode="widthFix"/>
9 <view bindtap="doActivity"> 9 <view bindtap="doActivity">
10 <image class="draw_now" src="/images/junyao/drawNow.png" mode="widthFix"/> 10 <image class="draw_now" src="/images/junyao/drawNow.png" mode="widthFix"/>
11 </view> 11 </view>
@@ -112,6 +112,20 @@ @@ -112,6 +112,20 @@
112 </view> 112 </view>
113 </v-popup> 113 </v-popup>
114 114
  115 + <v-popup showPopup="{{showjuan}}" >
  116 + <image class="index_img packet" src="/images/junyao/packet.png" mode="widthFix"/>
  117 + <view class="index_img packet juanBox">
  118 + <image class="index_img juan" src="{{juanSrc}}" mode="widthFix"/>
  119 + </view>
  120 + <view class="redpack_poup">
  121 + <!-- <view class="red_amount">{{scanRewardVO.amount}}<text style="font-size: 90rpx;vertical-align: middle;">元</text></view> -->
  122 + <!-- <view class="red_text">{{excitationRedPack ? '激励红包' : '现金红包'}}</view> -->
  123 + <view class="red_btn secondRed_btn myprice" bindtap="goRecord">我的奖品</view>
  124 + <view class="red_btn secondRed_btn openShop" bindtap="goReceive">前往商城使用</view>
  125 + <view class="red_close_poup" bindtap="closeJuan"></view>
  126 + </view>
  127 + </v-popup>
  128 +
115 <!-- 完善信息 showCouponComMess --> 129 <!-- 完善信息 showCouponComMess -->
116 <v-popup showPopup="{{showCouponComMess}}"> 130 <v-popup showPopup="{{showCouponComMess}}">
117 <image class="index_img packet" src="/images/junyao/frame.png" mode="widthFix"/> 131 <image class="index_img packet" src="/images/junyao/frame.png" mode="widthFix"/>
@@ -204,4 +218,12 @@ @@ -204,4 +218,12 @@
204 <view class="secondRed_close_poup" bindtap="closeSecondRedPack"></view> 218 <view class="secondRed_close_poup" bindtap="closeSecondRedPack"></view>
205 </view> 219 </view>
206 </v-popup> 220 </v-popup>
  221 + <!-- <v-popup showPopup="{{showWelfare}}">
  222 + <image class="index_img packet" src="/images/junyao/fulicontent.png" mode="widthFix"/>
  223 + <view class="{{isOneReward ? 'comMessBox' : 'comMessBox height_little'}}">
  224 + <view class="messTitle"></view>
  225 + <view class="messBoxClose" bindtap="welfareBoxClose"></view>
  226 + </view>
  227 + </v-popup> -->
207 </view> 228 </view>
  229 +
@@ -117,6 +117,19 @@ page { @@ -117,6 +117,19 @@ page {
117 margin: auto; 117 margin: auto;
118 } 118 }
119 119
  120 +.juanBox {
  121 + display: flex;
  122 + align-items: center;
  123 + justify-content: center;
  124 + width: 100%;
  125 + height: 60%;
  126 +}
  127 +
  128 +.juan {
  129 + width:50%;
  130 + transform: translateY(-50%);
  131 +}
  132 +
120 /* 弹幕消息 */ 133 /* 弹幕消息 */
121 134
122 .wl-msg { 135 .wl-msg {
@@ -513,7 +526,8 @@ page { @@ -513,7 +526,8 @@ page {
513 margin-top: -160rpx; 526 margin-top: -160rpx;
514 position: relative; 527 position: relative;
515 } 528 }
516 -.receive_poup_content{ 529 +
  530 +.receive_poup_content {
517 position: absolute; 531 position: absolute;
518 top: 10%; 532 top: 10%;
519 left: 0; 533 left: 0;
@@ -533,9 +547,11 @@ page { @@ -533,9 +547,11 @@ page {
533 color: #333333; 547 color: #333333;
534 text-align: center; 548 text-align: center;
535 } 549 }
536 -.textTip{ 550 +
  551 +.textTip {
537 color: #D96531; 552 color: #D96531;
538 } 553 }
  554 +
539 .coninue_scan { 555 .coninue_scan {
540 width: 434rpx; 556 width: 434rpx;
541 height: 94rpx; 557 height: 94rpx;
@@ -655,6 +671,7 @@ page { @@ -655,6 +671,7 @@ page {
655 color: #F90000; 671 color: #F90000;
656 font-weight: bold; 672 font-weight: bold;
657 } 673 }
  674 +
658 .packTips { 675 .packTips {
659 font-size: 50rpx; 676 font-size: 50rpx;
660 color: #F90000; 677 color: #F90000;
@@ -687,7 +704,6 @@ page { @@ -687,7 +704,6 @@ page {
687 color: #fff; 704 color: #fff;
688 margin: auto 705 margin: auto
689 } 706 }
690 -  
691 .secondRed_btn { 707 .secondRed_btn {
692 width: 434rpx; 708 width: 434rpx;
693 height: 94rpx; 709 height: 94rpx;
@@ -707,6 +723,19 @@ page { @@ -707,6 +723,19 @@ page {
707 line-height: 94rpx; 723 line-height: 94rpx;
708 } 724 }
709 725
  726 +.openShop {
  727 + position: absolute;
  728 + bottom: 100rpx;
  729 +}
  730 +.myprice{
  731 + position: absolute;
  732 + bottom: 220rpx;
  733 + background: #FF2222;
  734 + color: #fff;
  735 + border: 1px solid #fff;
  736 + border-radius: 50rpx;
  737 + width: 400rpx;
  738 +}
710 .secondRed_close_poup { 739 .secondRed_close_poup {
711 width: 60rpx; 740 width: 60rpx;
712 height: 60rpx; 741 height: 60rpx;
  1 +import config from "../../../utils/config.js"
  2 +Page({
  3 + data: {
  4 + code: 'QJ234W85' // 这里是二维码下方的变量文本
  5 + },
  6 + onInputChange(e) {
  7 + this.setData({ code: e.detail.value });
  8 + },
  9 + onOpenReward() {
  10 + if (!this.data.code.trim()) {
  11 + wx.showToast({
  12 + title: '请输入明码',
  13 + icon: 'none'
  14 + });
  15 + return;
  16 + }
  17 +
  18 + wx.showToast({
  19 + title: '正在验证...',
  20 + icon: 'loading'
  21 + });
  22 +
  23 + // 请求服务器验证明码
  24 + setTimeout(() => {
  25 + // let latitude = getApp().globalData.userInfo.latitude
  26 + // let longitude = getApp().globalData.userInfo.longitude
  27 + const apiBase = config.dataServer
  28 + wx.request({
  29 + url: apiBase + `/junyao/${this.data.code}`,
  30 + header: {
  31 + 'Authorization': `Bearer ${getApp().globalData.userInfo?.token}`,
  32 + 'serialId': getApp().userInfo?.serialId
  33 + },
  34 + method: "POST",
  35 + data: {},
  36 + timeout: 30 * 1000,
  37 + success: (res) => {
  38 + let tag = res.data.tag
  39 + wx.navigateTo({
  40 + url: `/scanGroup/jyScan/index/index?tag=${tag}`,
  41 + })
  42 + },
  43 + fail: (res) => {
  44 + console.log(res)
  45 + // const msg = await getErrortxt()
  46 + // wx.showModal({
  47 + // title: '提示',
  48 + // content: msg,
  49 + // showCancel: false,
  50 + // confirmText: '知道了',
  51 + // confirmColor: '#fe8600'
  52 + // })
  53 + },
  54 + complete: () => {
  55 + // wx.hideNavigationBarLoading()
  56 + // if (showLoading) {
  57 + // wx.hideLoading()
  58 + // }
  59 + }
  60 + })
  61 + // wx.showToast({
  62 + // title: '奖励已领取!',
  63 + // icon: 'success'
  64 + // });
  65 + }, 2000);
  66 + }
  67 +});
  1 +{
  2 + "navigationBarTitleText": "明码开奖",
  3 + "usingComponents": {}
  4 +}
  1 +<view class="container">
  2 + <view class="codeBox1">
  3 + <image class="banner" src="/assets/banner.png" mode="widthFix"></image>
  4 +
  5 + <view class="input-section">
  6 + <input class="code-input" placeholder="请输入二维码下方的明码字符" bindinput="onInputChange"/>
  7 + <button class="open-btn" bindtap="onOpenReward">明码开奖</button>
  8 + </view>
  9 + </view>
  10 + <view class="codeBox2">
  11 + <view class="guide-title">明码领取指引</view>
  12 + <view class="qrBox">
  13 +
  14 + <view class="qr-section">
  15 + <image class="qr-code" src="/images/erweima/erweima.jpg" mode="widthFix"></image>
  16 + <view class="code-box">
  17 + <text class="code-text">{{code}}</text>
  18 + </view>
  19 + </view>
  20 +
  21 +
  22 + <view class="code-display">
  23 + <view class="dashed-line"></view>
  24 + <text class="label">明码:</text>
  25 + <text class="code-value">{{code}}</text>
  26 + </view>
  27 +
  28 + <view class="instruction">
  29 + <view>如瓶盖码/瓶贴码无法清晰</view>
  30 + <view>识别,可输入二维码下方</view>
  31 + <view>的明码进行开奖</view>
  32 + </view>
  33 + </view>
  34 + <view class="steps">
  35 + <text class="stepsTxt">步骤:</text>
  36 + <text>(1) 查找瓶盖/瓶底的明码;</text>
  37 + <text>(2) 输入明码并点击按钮;</text>
  38 + <text>(3) 获取奖励信息。</text>
  39 + </view>
  40 + </view>
  41 +</view>
  1 +page{
  2 + width: 100%;
  3 + height: 100%;
  4 +}
  5 +.container{
  6 + background-color: rgb(247,247,249);
  7 + padding: 20rpx;
  8 + box-sizing: border-box;
  9 + width: 100%;
  10 + height: 100%;
  11 +}
  12 +.codeBox1{
  13 + position: relative;
  14 + background-color: #fff;
  15 +}
  16 +.codeBox2{
  17 + position: relative;
  18 + background-color: #fff;
  19 + margin-top: 20rpx;
  20 +}
  21 +.qrBox {
  22 + display: flex;
  23 + /* flex-direction: column; */
  24 + align-items: flex-end;
  25 + padding: 20rpx;
  26 + position: relative;
  27 +}
  28 +
  29 +.qr-section {
  30 + position: relative;
  31 + display: flex;
  32 + flex-direction: column;
  33 + align-items: center;
  34 +}
  35 +
  36 +.qr-code {
  37 + width: 300rpx;
  38 + height: 300rpx;
  39 +}
  40 +
  41 +.code-box {
  42 + position: absolute;
  43 + bottom: -30rpx;
  44 + background-color: white;
  45 + border: 2rpx solid red;
  46 + padding: 5rpx 15rpx;
  47 + border-radius: 8rpx;
  48 +}
  49 +
  50 +.code-text {
  51 + font-size: 28rpx;
  52 + color: #333;
  53 + font-weight: bold;
  54 +}
  55 +
  56 +.dashed-line {
  57 + width: 28vw;
  58 + height: 2rpx;
  59 + border-bottom: 2rpx dashed red;
  60 + /* position: relative; */
  61 + /* top: 20rpx; */
  62 +}
  63 +
  64 +.code-display {
  65 + display: flex;
  66 + align-items: center;
  67 + /* margin-top: 20rpx; */
  68 + transform: translateY(20rpx);
  69 + z-index: 8;
  70 + position: absolute;
  71 + right: 10px;
  72 + /* justify-content: center; */
  73 +}
  74 +
  75 +.label {
  76 + font-size: 30rpx;
  77 + font-weight: bold;
  78 + color: #333;
  79 +}
  80 +
  81 +.code-value {
  82 + font-size: 30rpx;
  83 + color: red;
  84 + font-weight: bold;
  85 +}
  86 +
  87 +.instruction {
  88 + margin-top: 20rpx;
  89 + font-size: 26rpx;
  90 + color: #666;
  91 + text-align: center;
  92 + position: absolute;
  93 + top: 0;
  94 + right: 0;
  95 + text-align: left;
  96 + width: 50%;
  97 +}
  98 +
  99 +.guide-title {
  100 + font-size: 32rpx;
  101 + font-weight: bold;
  102 + margin-bottom: 20rpx;
  103 + padding-top: 40rpx;
  104 + text-align: center;
  105 +}
  106 +.steps {
  107 + margin-top: 20rpx;
  108 + font-size: 30rpx;
  109 + color: #666;
  110 + display: flex;
  111 + flex-direction: column;
  112 + align-items: flex-start;
  113 + line-height: 50rpx;
  114 + padding-left: 50rpx;
  115 +}
  116 +.stepsTxt{
  117 + font-weight: bold;
  118 + font-size: 36rpx;
  119 + color: #000;
  120 +}
  121 +.banner {
  122 + width: 100%;
  123 +}
  124 +.input-section {
  125 + margin-top: 40rpx;
  126 + display: flex;
  127 + flex-direction: column;
  128 + align-items: center;
  129 +}
  130 +.code-input {
  131 + width: 80%;
  132 + height: 80rpx;
  133 + border: 1px solid #ddd;
  134 + border-radius: 10rpx;
  135 + padding: 0 20rpx;
  136 + font-size: 28rpx;
  137 +}
  138 +.open-btn {
  139 + width: 80%;
  140 + height: 80rpx;
  141 + background-color: #007aff;
  142 + color: white;
  143 + text-align: center;
  144 + line-height: 80rpx;
  145 + font-size: 30rpx;
  146 + border-radius: 10rpx;
  147 + margin-top: 20rpx;
  148 +}
  1 +// scanGroup/jyScan/index/index.js
  2 +import config from "../../../utils/config.js"
  3 +const app = getApp()
  4 +Page({
  5 +
  6 + /**
  7 + * 页面的初始数据
  8 + */
  9 + data: {
  10 + },
  11 +
  12 + /**
  13 + * 生命周期函数--监听页面加载
  14 + */
  15 + async onLoad(options) {
  16 + },
  17 +
  18 + /**
  19 + * 生命周期函数--监听页面初次渲染完成
  20 + */
  21 + onReady() {
  22 +
  23 + },
  24 +
  25 + /**
  26 + * 生命周期函数--监听页面显示
  27 + */
  28 + async onShow() {
  29 +
  30 + },
  31 +
  32 + /**
  33 + * 生命周期函数--监听页面隐藏
  34 + */
  35 + onHide() {
  36 +
  37 + },
  38 +
  39 + /**
  40 + * 生命周期函数--监听页面卸载
  41 + */
  42 + onUnload() {
  43 +
  44 + },
  45 +
  46 + /**
  47 + * 页面相关事件处理函数--监听用户下拉动作
  48 + */
  49 + onPullDownRefresh() {
  50 +
  51 + },
  52 +
  53 + /**
  54 + * 页面上拉触底事件的处理函数
  55 + */
  56 + onReachBottom() {
  57 +
  58 + },
  59 +
  60 + /**
  61 + * 用户点击右上角分享
  62 + */
  63 + onShareAppMessage() {
  64 +
  65 + }
  66 +})
  1 +{
  2 + "usingComponents": {
  3 + "alert": "../component/alert/alert",
  4 + "popup": "../component/popup/popup"
  5 + },
  6 + "navigationBarTitleText": "胃动力扫码赢红包"
  7 +}
  1 +<!--scanGroup/jyScan/index/index.wxml-->
  2 +<view class="container">
  3 + <image class="add" src="/images/junyao/add.png" mode="widthFix"/>
  4 + <image class="fulicontent" src="/images/junyao/fulicontent.png" mode="widthFix"/>
  5 + <image class="bgimg" src="/images/junyao/bgimg.png" mode="scaleToFill"/>
  6 + <image class="fuli" src="/images/junyao/fuli.png" mode="widthFix"/>
  7 + <image class="ma" src="/images/junyao/ma.png" mode="widthFix"/>
  8 + <view class="{{isOneReward ? 'comMessBox' : 'comMessBox height_little'}}">
  9 + <view class="messTitle"></view>
  10 + <view class="messBoxClose" bindtap="welfareBoxClose"></view>
  11 + </view>
  12 +</view>
  1 +.container{
  2 + width: 100%;
  3 +}
  4 +.fulicontent{
  5 + position: absolute;
  6 + width: 95%;
  7 + left: 0;
  8 + right: 0;
  9 + top: 0;
  10 + bottom: 0;
  11 + transform: translateY(-10%);
  12 + margin: auto;
  13 +}
  14 +.add{
  15 + position: absolute;
  16 + left: 0;
  17 + right: 0;
  18 + top: 5%;
  19 + margin: auto;
  20 +}
  21 +.bgimg{
  22 + width: 100%;
  23 + height: 100vh;
  24 + position: absolute;
  25 + z-index: -1;
  26 +}
  27 +.fuli{
  28 + position: absolute;
  29 + left: 0;
  30 + right: 0;
  31 + bottom: 100rpx;
  32 + width: 300rpx;
  33 + margin: auto;
  34 +}
  35 +.ma{
  36 + position: absolute;
  37 + z-index: -1;
  38 + left: 0;
  39 + right: 0;
  40 + bottom: 100rpx;
  41 + width: 500rpx;
  42 + margin: auto;
  43 + transform: translateX(50rpx) translateY(50rpx);
  44 +}