Commit 1595411e by 曾经

Merge branch 'dev' into branchOnline

* dev:
  no message
  分享 中转
  no message
  no message
  no message
  no message
  模板
  no message
  游戏 条件  游戏弹窗
  编译文件
  no message

# Conflicts:
#	dist/index.html
parents d9a4547c a33e444a
...@@ -22,3 +22,10 @@ yarn lint ...@@ -22,3 +22,10 @@ yarn lint
### Customize configuration ### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/). See [Configuration Reference](https://cli.vuejs.org/config/).
https://test.web.demogic.com/wxa-h5-game
https://www.gicdev.com/wxa-h5-game
https://hope.demogic.com/wxa-h5-game
.box[data-v-3f57141c]{position:relative}.page-bg[data-v-3f57141c]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-3f57141c]{width:100%}.content[data-v-3f57141c]{position:relative;z-index:1}.content-cell[data-v-3f57141c]{border-radius:8px;border:1px solid #06b0b2;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box}.cell-top[data-v-3f57141c]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#dff7f4,rgba(223,247,244,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-3f57141c]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-3f57141c]{color:#38bdcd;font-size:15px}.infinite-list[data-v-3f57141c]{overflow:auto;padding:10px 13px;margin-bottom:1px}.reward-item-box[data-v-3f57141c]{padding:5px 0}.reward-item[data-v-3f57141c]{display:flex;padding:12px;background:#f6f6f6;border-radius:4px}.reward-item .reward-img-box[data-v-3f57141c]{width:80px;height:80px;background:#fff;border-radius:2px;position:relative;display:flex;align-items:center;justify-content:center}.reward-item .reward-img-box .reward-img[data-v-3f57141c]{width:66px;height:66px}.reward-item .reward-info[data-v-3f57141c]{padding-left:10px}.reward-info .reward-name[data-v-3f57141c]{color:#21252b;font-size:14px;font-weight:600;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.reward-info .reward-condition[data-v-3f57141c]{padding:3px 0 5px;color:#21252b;font-weight:300;font-size:12px;height:33px}.reward-info .reward-time[data-v-3f57141c]{color:#21252b;font-weight:300;font-size:13px}.empty-box[data-v-3f57141c]{text-align:center;background:#fff}.empty-box .empty-img[data-v-3f57141c]{margin:0 auto;padding:80px 0 20px;width:180px;height:167px}.empty-box .title[data-v-3f57141c]{color:#21252b;font-size:16px;font-weight:600;padding:0 9px}.empty-box .subtitle[data-v-3f57141c]{color:#63666b;font-size:14px;max-width:229px;margin:0 auto}.empty-box .play-btn[data-v-3f57141c]{margin:25px auto 0;width:180px;height:38px;line-height:36px;box-sizing:border-box;border-radius:19px;border:1px solid #12b4bb;text-align:center;color:#12b4bb;font-size:14px;font-weight:600}
\ No newline at end of file
.dialog-bg[data-v-63a1d318]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:99;background:rgba(0,0,0,.85)}.dialog-bg .content[data-v-63a1d318]{position:absolute;z-index:2;left:50%;top:45%;transform:translate(-50%,-50%);text-align:center;width:75%}.dialog-bg .content .content-detail-bg[data-v-63a1d318]{background:#fdfcee;box-sizing:border-box;border-radius:10px;box-shadow:0 1px 2px 0 rgba(0,0,0,.5);padding:8px 10px}.dialog-bg .content .content-detail-bg .content-detail[data-v-63a1d318]{border:2px solid #c9c6ad;border-radius:10px;text-align:center;padding:10px 13px}.dialog-bg .content .content-detail-bg .content-detail .title[data-v-63a1d318]{color:#21252b;font-weight:600;font-size:20px;padding-top:15px}.dialog-bg .content .content-detail-bg .content-detail .subtitle[data-v-63a1d318]{color:#21252b;font-size:15px;padding:20px 0 30px}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box[data-v-63a1d318]{display:flex;padding-bottom:15px;justify-content:center}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box .handle-btn[data-v-63a1d318]{box-sizing:border-box;height:40px;line-height:40px;text-align:center;color:#fff;font-size:16px;font-weight:600;border-radius:20px;background:#000;box-shadow:inset 0 3px 3px 0 hsla(0,0%,100%,.8);flex:1;max-width:165px;margin-right:15px}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box .handle-btn[data-v-63a1d318]:last-child{margin-right:0}.dialog-bg .content .icon-guanbi[data-v-63a1d318]{margin:40px auto 0;color:hsla(0,0%,100%,.8);opacity:.8;padding:15px;font-size:28px;height:28px;width:28px}.img-canvas[data-v-53498be6]{position:fixed;left:100%;top:0;width:560px;height:996px}.dialog-bg[data-v-53498be6]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:99;background:rgba(0,0,0,.85)}.dialog-bg .content[data-v-53498be6]{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:60%}.dialog-bg .content .tips[data-v-53498be6]{color:#fff;font-size:14px;margin-top:20px}.dialog-bg .content .box-img[data-v-53498be6]{width:100%}.dialog-bg .content .icon-guanbi[data-v-53498be6]{margin:20px auto 0;color:#fff;opacity:.8;padding:15px;font-size:28px;height:28px;width:28px}.box[data-v-53b72ff3]{position:relative}.page-bg[data-v-53b72ff3]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-53b72ff3]{width:100%}.content[data-v-53b72ff3]{position:relative;z-index:1}.content-top[data-v-53b72ff3]{text-align:center}.content-top .top-img[data-v-53b72ff3]{width:78%;margin:0 auto;padding:19px 0 10px}.content-top .top-tip-box[data-v-53b72ff3]{display:flex;margin:0 auto;width:206px;height:33px;box-sizing:border-box;border:1px solid #fff;color:hsla(0,0%,100%,.3);align-items:center;border-radius:12px}.content-top .top-tip-box .line[data-v-53b72ff3]{width:11px;height:2px;border-radius:1px;margin:0 7px}.content-top .top-tip-box .line.left[data-v-53b72ff3]{background:linear-gradient(270deg,#38bdcd,rgba(56,189,205,0));margin-right:9px}.content-top .top-tip-box .line.right[data-v-53b72ff3]{background:linear-gradient(270deg,rgba(56,189,205,0),#38bdcd);margin-left:9px}.content-top .top-tip-box .title[data-v-53b72ff3]{color:#21252b;font-size:15px}.content-cell[data-v-53b72ff3]{border-radius:8px;border:1px solid #06b0b2;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box;text-align:center}.header-img-box[data-v-53b72ff3]{padding:40px 0 14px}.header-img[data-v-53b72ff3]{width:60px;height:60px;border-radius:50%;margin:0 auto;overflow:hidden}.friend-name[data-v-53b72ff3]{color:#21252b;font-size:16px;font-weight:600}.tip-text[data-v-53b72ff3]{color:#21252b;font-size:16px;padding-bottom:22px}.handle-btn[data-v-53b72ff3]{width:75%;height:48px;line-height:48px;border-radius:24px;text-align:center;box-shadow:inset 0 3px 3px 0 hsla(0,0%,100%,.8);color:#fff;font-size:16px;font-weight:600;margin:0 auto 19px}.handle-btn[data-v-53b72ff3]:last-child{margin-bottom:23px}.handle-btn.red[data-v-53b72ff3]{background:#fd452d}.handle-btn.blue[data-v-53b72ff3]{background:#12b4bb}.cell-top[data-v-53b72ff3]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#dff7f4,rgba(223,247,244,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-53b72ff3]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-53b72ff3]{color:#38bdcd;font-size:15px}.reward-box[data-v-53b72ff3]{padding:15px 0 6px;display:flex;flex-wrap:wrap}.reward-item-box[data-v-53b72ff3]{width:calc(50% - 19px);padding:0 6px 12px;text-align:left}.reward-item-box[data-v-53b72ff3]:nth-child(odd){padding-left:13px}.reward-item-box[data-v-53b72ff3]:nth-child(2n+2){padding-right:13px}.reward-item-detail[data-v-53b72ff3]{background:#f6f6f6;border-radius:4px;padding:6px}.reward-item-detail .img-box[data-v-53b72ff3]{padding-top:100%;position:relative;background:#fff}.reward-item-detail .img-box .reward-img[data-v-53b72ff3]{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 20px);height:calc(100% - 20px)}.reward-item-detail .reward-name[data-v-53b72ff3]{color:#21252b;font-size:14px;font-weight:500;padding:11px 0 0}.reward-item-detail .reward-des[data-v-53b72ff3]{color:#21252b;font-size:11px;font-weight:300;padding:4px 0 7px}
\ No newline at end of file
.box[data-v-6aa6e834]{position:relative}.page-bg[data-v-6aa6e834]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-6aa6e834]{width:100%}.content[data-v-6aa6e834]{position:relative;z-index:1}.content-cell[data-v-6aa6e834]{border-radius:8px;border:1px solid #21252b;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box}.cell-top[data-v-6aa6e834]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#d9fcf5,rgba(238,247,225,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-6aa6e834]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-6aa6e834]{color:#21252b;font-size:15px}.infinite-list[data-v-6aa6e834]{overflow:auto;padding:10px 13px;margin-bottom:1px}.reward-item-box[data-v-6aa6e834]{padding:5px 0}.reward-item[data-v-6aa6e834]{display:flex;padding:12px;background:#f6f6f6;border-radius:4px}.reward-item .reward-img-box[data-v-6aa6e834]{width:80px;height:80px;background:#fff;border-radius:2px;position:relative;display:flex;align-items:center;justify-content:center}.reward-item .reward-img-box .reward-img[data-v-6aa6e834]{width:66px;height:66px}.reward-item .reward-info[data-v-6aa6e834]{padding-left:10px}.reward-info .reward-name[data-v-6aa6e834]{color:#21252b;font-size:14px;font-weight:600;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.reward-info .reward-condition[data-v-6aa6e834]{padding:3px 0 5px;color:#21252b;font-weight:300;font-size:12px;height:33px}.reward-info .reward-time[data-v-6aa6e834]{color:#21252b;font-weight:300;font-size:13px}.empty-box[data-v-6aa6e834]{text-align:center;background:#fff}.empty-box .empty-img[data-v-6aa6e834]{margin:0 auto;padding:80px 0 20px;width:180px;height:167px}.empty-box .title[data-v-6aa6e834]{color:#21252b;font-size:16px;font-weight:600;padding:0 9px}.empty-box .subtitle[data-v-6aa6e834]{color:#63666b;font-size:14px;max-width:229px;margin:0 auto}.empty-box .play-btn[data-v-6aa6e834]{margin:25px auto 0;width:180px;height:38px;line-height:36px;box-sizing:border-box;border-radius:19px;border:1px solid #12b4bb;text-align:center;color:#12b4bb;font-size:14px;font-weight:600}
\ No newline at end of file
.dialog-bg[data-v-c3a8763e]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:99;background:rgba(0,0,0,.85)}.dialog-bg .content[data-v-c3a8763e]{position:absolute;z-index:2;left:50%;top:45%;transform:translate(-50%,-50%);text-align:center;width:75%}.dialog-bg .content .content-detail-bg[data-v-c3a8763e]{background:#d9fcf5;box-sizing:border-box;border-radius:10px;box-shadow:0 1px 2px 0 rgba(0,0,0,.5);padding:8px 10px}.dialog-bg .content .content-detail-bg .content-detail[data-v-c3a8763e]{border-radius:10px;text-align:center;padding:10px 13px;border:2px solid #adc9c5}.dialog-bg .content .content-detail-bg .content-detail .title[data-v-c3a8763e]{color:#21252b;font-weight:600;font-size:20px;padding-top:15px}.dialog-bg .content .content-detail-bg .content-detail .subtitle[data-v-c3a8763e]{color:#21252b;font-size:15px;padding:20px 0 30px}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box[data-v-c3a8763e]{display:flex;padding-bottom:15px;justify-content:center}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box .handle-btn[data-v-c3a8763e]{box-sizing:border-box;height:40px;line-height:40px;text-align:center;color:#fff;font-size:16px;font-weight:600;border-radius:20px;background:#000;box-shadow:inset 0 1px 1px 0 hsla(0,0%,100%,.8);flex:1;max-width:165px;margin-right:15px}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box .handle-btn[data-v-c3a8763e]:last-child{margin-right:0}.dialog-bg .content .icon-guanbi[data-v-c3a8763e]{margin:40px auto 0;color:#fff;opacity:.8;padding:15px;font-size:28px;height:28px;width:28px}.img-canvas[data-v-bb921d64]{position:fixed;left:100%;top:0;width:560px;height:996px}.dialog-bg[data-v-bb921d64]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:99;background:rgba(0,0,0,.85)}.dialog-bg .content[data-v-bb921d64]{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:60%}.dialog-bg .content .tips[data-v-bb921d64]{color:#fff;font-size:14px;margin-top:20px}.dialog-bg .content .box-img[data-v-bb921d64]{width:100%}.dialog-bg .content .icon-guanbi[data-v-bb921d64]{margin:20px auto 0;color:#fff;opacity:.8;padding:15px;font-size:28px;height:28px;width:28px}.box[data-v-63309235]{position:relative}.page-bg[data-v-63309235]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-63309235]{width:100%}.content[data-v-63309235]{position:relative;z-index:1}.content-top[data-v-63309235]{text-align:center}.content-top .top-img[data-v-63309235]{width:78%;margin:0 auto;padding:19px 0 10px}.content-top .top-tip-box[data-v-63309235]{display:flex;margin:0 auto;width:206px;height:33px;box-sizing:border-box;border:1px solid #fff;color:hsla(0,0%,100%,.3);align-items:center;border-radius:12px}.content-top .top-tip-box .line[data-v-63309235]{width:11px;height:2px;border-radius:1px;margin:0 7px}.content-top .top-tip-box .line.left[data-v-63309235]{background:linear-gradient(270deg,#38bdcd,rgba(56,189,205,0));margin-right:9px}.content-top .top-tip-box .line.right[data-v-63309235]{background:linear-gradient(270deg,rgba(56,189,205,0),#38bdcd);margin-left:9px}.content-top .top-tip-box .title[data-v-63309235]{color:#21252b;font-size:15px}.content-cell[data-v-63309235]{border-radius:8px;border:1px solid #06b0b2;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box;text-align:center}.header-img-box[data-v-63309235]{padding:40px 0 14px}.header-img[data-v-63309235]{width:60px;height:60px;border-radius:50%;margin:0 auto;overflow:hidden}.friend-name[data-v-63309235]{color:#21252b;font-size:16px;font-weight:600}.tip-text[data-v-63309235]{color:#21252b;font-size:16px;padding-bottom:22px}.handle-btn[data-v-63309235]{width:75%;height:48px;line-height:48px;border-radius:24px;text-align:center;box-shadow:inset 0 3px 3px 0 hsla(0,0%,100%,.8);color:#fff;font-size:16px;font-weight:600;margin:0 auto 19px}.handle-btn[data-v-63309235]:last-child{margin-bottom:23px}.handle-btn.red[data-v-63309235]{background:#fd452d}.handle-btn.blue[data-v-63309235]{background:#12b4bb}.cell-top[data-v-63309235]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#dff7f4,rgba(223,247,244,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-63309235]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-63309235]{color:#38bdcd;font-size:15px}.reward-box[data-v-63309235]{padding:15px 0 6px;display:flex;flex-wrap:wrap}.reward-item-box[data-v-63309235]{width:calc(50% - 19px);padding:0 6px 12px;text-align:left}.reward-item-box[data-v-63309235]:nth-child(odd){padding-left:13px}.reward-item-box[data-v-63309235]:nth-child(2n+2){padding-right:13px}.reward-item-detail[data-v-63309235]{background:#f6f6f6;border-radius:4px;padding:6px}.reward-item-detail .img-box[data-v-63309235]{padding-top:100%;position:relative;background:#fff}.reward-item-detail .img-box .reward-img[data-v-63309235]{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 20px);height:calc(100% - 20px)}.reward-item-detail .reward-name[data-v-63309235]{color:#21252b;font-size:14px;font-weight:500;padding:11px 0 0}.reward-item-detail .reward-des[data-v-63309235]{color:#21252b;font-size:11px;font-weight:300;padding:4px 0 7px}
\ No newline at end of file
.box[data-v-5cf39c86]{position:relative}.page-bg[data-v-5cf39c86]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-5cf39c86]{width:100%}.content[data-v-5cf39c86]{position:relative;z-index:1}.content-cell[data-v-5cf39c86]{border-radius:8px;border:1px solid #21252b;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box}.cell-top[data-v-5cf39c86]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#e8fccf,rgba(238,247,225,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-5cf39c86]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-5cf39c86]{color:#21252b;font-size:15px}.reward-box[data-v-5cf39c86]{padding:15px 0 6px;display:flex;flex-wrap:wrap}.reward-item-box[data-v-5cf39c86]{width:calc(50% - 19px);padding:0 6px 12px}.reward-item-box[data-v-5cf39c86]:nth-child(odd){padding-left:13px}.reward-item-box[data-v-5cf39c86]:nth-child(2n+2){padding-right:13px}.reward-item-detail[data-v-5cf39c86]{background:#f6f6f6;border-radius:4px;padding:6px}.reward-item-detail .img-box[data-v-5cf39c86]{padding-top:100%;position:relative;background:#fff}.reward-item-detail .img-box .reward-img[data-v-5cf39c86]{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 20px);height:calc(100% - 20px)}.reward-item-detail .reward-name[data-v-5cf39c86]{color:#21252b;font-size:14px;font-weight:500;padding:11px 0 0}.reward-item-detail .reward-des[data-v-5cf39c86]{color:#21252b;font-size:11px;font-weight:300;padding:4px 0 7px}.rule-item[data-v-5cf39c86]{padding:15px 13px 0}.rule-item[data-v-5cf39c86]:last-child{padding-bottom:16px}.rule-item .title[data-v-5cf39c86]{color:#21252b;font-size:14px;font-weight:600}.rule-item .value[data-v-5cf39c86]{color:#21252b;font-size:13px;margin-top:8px}.rule-item .value.point[data-v-5cf39c86]{padding-left:10px;position:relative}.rule-item .value.point[data-v-5cf39c86]:before{content:" ";position:absolute;width:4px;height:4px;border-radius:50%;background:#38bdcd;top:7px;left:0;z-index:1}
\ No newline at end of file
.dialog-bg[data-v-4c4563e9]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:99;background:rgba(0,0,0,.85)}.dialog-bg .content[data-v-4c4563e9]{position:absolute;z-index:2;left:50%;top:45%;transform:translate(-50%,-50%);text-align:center;width:75%}.dialog-bg .content .content-detail-bg[data-v-4c4563e9]{background:#12b4bb;box-sizing:border-box;border-radius:10px;border:1px solid #54fefe;box-shadow:0 1px 2px 0 rgba(0,0,0,.5);padding:8px 10px}.dialog-bg .content .content-detail-bg .content-detail[data-v-4c4563e9]{background:#fff;border-radius:10px;text-align:center;padding:10px 13px}.dialog-bg .content .content-detail-bg .content-detail .title[data-v-4c4563e9]{color:#27292b;font-weight:600;font-size:20px;padding-top:15px}.dialog-bg .content .content-detail-bg .content-detail .subtitle[data-v-4c4563e9]{color:#27292b;font-size:15px;padding:20px 0 30px}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box[data-v-4c4563e9]{display:flex;padding-bottom:15px;justify-content:center}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box .handle-btn[data-v-4c4563e9]{box-sizing:border-box;height:40px;line-height:40px;text-align:center;color:#fff;font-size:16px;font-weight:600;border-radius:20px;background:#12b4bb;box-shadow:inset 0 3px 3px 0 hsla(0,0%,100%,.8);flex:1;max-width:165px;margin-right:15px}.dialog-bg .content .content-detail-bg .content-detail .handle-btn-box .handle-btn[data-v-4c4563e9]:last-child{margin-right:0}.dialog-bg .content .icon-guanbi[data-v-4c4563e9]{margin:40px auto 0;color:#fff;opacity:.8;padding:15px;font-size:28px;height:28px;width:28px}.img-canvas[data-v-0a7f82cc]{position:fixed;left:100%;top:0;width:560px;height:996px}.dialog-bg[data-v-0a7f82cc]{position:fixed;left:0;top:0;width:100%;height:100%;z-index:99;background:rgba(0,0,0,.85)}.dialog-bg .content[data-v-0a7f82cc]{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);text-align:center;width:60%}.dialog-bg .content .tips[data-v-0a7f82cc]{color:#fff;font-size:14px;margin-top:20px}.dialog-bg .content .box-img[data-v-0a7f82cc]{width:100%}.dialog-bg .content .icon-guanbi[data-v-0a7f82cc]{margin:20px auto 0;color:#fff;opacity:.8;padding:15px;font-size:28px;height:28px;width:28px}.box[data-v-443dcdb1]{position:relative}.page-bg[data-v-443dcdb1]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-443dcdb1]{width:100%}.content[data-v-443dcdb1]{position:relative;z-index:1}.content-top[data-v-443dcdb1]{text-align:center}.content-top .top-img[data-v-443dcdb1]{width:78%;margin:0 auto;padding:19px 0 10px}.content-top .top-tip-box[data-v-443dcdb1]{display:flex;margin:0 auto;width:206px;height:33px;box-sizing:border-box;border:1px solid #fff;color:hsla(0,0%,100%,.3);align-items:center;border-radius:12px}.content-top .top-tip-box .line[data-v-443dcdb1]{width:11px;height:2px;border-radius:1px;margin:0 7px}.content-top .top-tip-box .line.left[data-v-443dcdb1]{background:linear-gradient(270deg,#38bdcd,rgba(56,189,205,0));margin-right:9px}.content-top .top-tip-box .line.right[data-v-443dcdb1]{background:linear-gradient(270deg,rgba(56,189,205,0),#38bdcd);margin-left:9px}.content-top .top-tip-box .title[data-v-443dcdb1]{color:#21252b;font-size:15px}.content-cell[data-v-443dcdb1]{border-radius:8px;border:1px solid #06b0b2;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box;text-align:center}.header-img-box[data-v-443dcdb1]{padding:40px 0 14px}.header-img[data-v-443dcdb1]{width:60px;height:60px;border-radius:50%;margin:0 auto;overflow:hidden}.friend-name[data-v-443dcdb1]{color:#21252b;font-size:16px;font-weight:600}.tip-text[data-v-443dcdb1]{color:#21252b;font-size:16px;padding-bottom:22px}.handle-btn[data-v-443dcdb1]{width:75%;height:48px;line-height:48px;border-radius:24px;text-align:center;box-shadow:inset 0 3px 3px 0 hsla(0,0%,100%,.8);color:#fff;font-size:16px;font-weight:600;margin:0 auto 19px}.handle-btn[data-v-443dcdb1]:last-child{margin-bottom:23px}.handle-btn.red[data-v-443dcdb1]{background:#fd452d}.handle-btn.blue[data-v-443dcdb1]{background:#12b4bb}.cell-top[data-v-443dcdb1]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#dff7f4,rgba(223,247,244,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-443dcdb1]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-443dcdb1]{color:#38bdcd;font-size:15px}.reward-box[data-v-443dcdb1]{padding:15px 0 6px;display:flex;flex-wrap:wrap}.reward-item-box[data-v-443dcdb1]{width:calc(50% - 19px);padding:0 6px 12px;text-align:left}.reward-item-box[data-v-443dcdb1]:nth-child(odd){padding-left:13px}.reward-item-box[data-v-443dcdb1]:nth-child(2n+2){padding-right:13px}.reward-item-detail[data-v-443dcdb1]{background:#f6f6f6;border-radius:4px;padding:6px}.reward-item-detail .img-box[data-v-443dcdb1]{padding-top:100%;position:relative;background:#fff}.reward-item-detail .img-box .reward-img[data-v-443dcdb1]{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 20px);height:calc(100% - 20px)}.reward-item-detail .reward-name[data-v-443dcdb1]{color:#21252b;font-size:14px;font-weight:500;padding:11px 0 0}.reward-item-detail .reward-des[data-v-443dcdb1]{color:#21252b;font-size:11px;font-weight:300;padding:4px 0 7px}
\ No newline at end of file
.box[data-v-91ac0f16]{position:relative}.page-bg[data-v-91ac0f16]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-91ac0f16]{width:100%}.content[data-v-91ac0f16]{position:relative;z-index:1}.content-cell[data-v-91ac0f16]{border-radius:8px;border:1px solid #21252b;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box}.cell-top[data-v-91ac0f16]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#d9fcf5,rgba(238,247,225,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-91ac0f16]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-91ac0f16]{color:#21252b;font-size:15px}.reward-box[data-v-91ac0f16]{padding:15px 0 6px;display:flex;flex-wrap:wrap}.reward-item-box[data-v-91ac0f16]{width:calc(50% - 19px);padding:0 6px 12px}.reward-item-box[data-v-91ac0f16]:nth-child(odd){padding-left:13px}.reward-item-box[data-v-91ac0f16]:nth-child(2n+2){padding-right:13px}.reward-item-detail[data-v-91ac0f16]{background:#f6f6f6;border-radius:4px;padding:6px}.reward-item-detail .img-box[data-v-91ac0f16]{padding-top:100%;position:relative;background:#fff}.reward-item-detail .img-box .reward-img[data-v-91ac0f16]{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 20px);height:calc(100% - 20px)}.reward-item-detail .reward-name[data-v-91ac0f16]{color:#21252b;font-size:14px;font-weight:500;padding:11px 0 0}.reward-item-detail .reward-des[data-v-91ac0f16]{color:#21252b;font-size:11px;font-weight:300;padding:4px 0 7px}.rule-item[data-v-91ac0f16]{padding:15px 13px 0}.rule-item[data-v-91ac0f16]:last-child{padding-bottom:16px}.rule-item .title[data-v-91ac0f16]{color:#21252b;font-size:14px;font-weight:600}.rule-item .value[data-v-91ac0f16]{color:#21252b;font-size:13px;margin-top:8px}.rule-item .value.point[data-v-91ac0f16]{padding-left:10px;position:relative}.rule-item .value.point[data-v-91ac0f16]:before{content:" ";position:absolute;width:4px;height:4px;border-radius:50%;background:#38bdcd;top:7px;left:0;z-index:1}
\ No newline at end of file
.box[data-v-2392b7da]{position:relative}.page-bg[data-v-2392b7da]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-2392b7da]{width:100%}.content[data-v-2392b7da]{position:relative;z-index:1}.content-cell[data-v-2392b7da]{border-radius:8px;border:1px solid #21252b;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box}.cell-top[data-v-2392b7da]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#e8fccf,rgba(238,247,225,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-2392b7da]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-2392b7da]{color:#21252b;font-size:15px}.infinite-list[data-v-2392b7da]{overflow:auto;padding:10px 13px;margin-bottom:1px}.reward-item-box[data-v-2392b7da]{padding:5px 0}.reward-item[data-v-2392b7da]{display:flex;padding:12px;background:#f6f6f6;border-radius:4px}.reward-item .reward-img-box[data-v-2392b7da]{width:80px;height:80px;background:#fff;border-radius:2px;position:relative;display:flex;align-items:center;justify-content:center}.reward-item .reward-img-box .reward-img[data-v-2392b7da]{width:66px;height:66px}.reward-item .reward-info[data-v-2392b7da]{padding-left:10px}.reward-info .reward-name[data-v-2392b7da]{color:#21252b;font-size:14px;font-weight:600;text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.reward-info .reward-condition[data-v-2392b7da]{padding:3px 0 5px;color:#21252b;font-weight:300;font-size:12px;height:33px}.reward-info .reward-time[data-v-2392b7da]{color:#21252b;font-weight:300;font-size:13px}.empty-box[data-v-2392b7da]{text-align:center;background:#fff}.empty-box .empty-img[data-v-2392b7da]{margin:0 auto;padding:80px 0 20px;width:180px;height:167px}.empty-box .title[data-v-2392b7da]{color:#21252b;font-size:16px;font-weight:600;padding:0 9px}.empty-box .subtitle[data-v-2392b7da]{color:#63666b;font-size:14px;max-width:229px;margin:0 auto}.empty-box .play-btn[data-v-2392b7da]{margin:25px auto 0;width:180px;height:38px;line-height:36px;box-sizing:border-box;border-radius:19px;text-align:center;background:#000;color:#fff;font-size:14px;font-weight:600}
\ No newline at end of file
.box[data-v-5de84fc2]{position:relative}.page-bg[data-v-5de84fc2]{position:fixed;z-index:0;left:0;top:0;width:100%;height:100%;background:#addfcd}.page-bg .bg-img[data-v-5de84fc2]{width:100%}.content[data-v-5de84fc2]{position:relative;z-index:1}.content-cell[data-v-5de84fc2]{border-radius:8px;border:1px solid #06b0b2;background:#fff;margin:12px 12px 3px;width:calc(100% - 24px);box-sizing:border-box}.cell-top[data-v-5de84fc2]{display:flex;align-items:center;justify-content:center;height:50px;background:linear-gradient(180deg,#dff7f4,rgba(223,247,244,.3));border-radius:8px 8px 0 0}.cell-top .title[data-v-5de84fc2]{color:#27292b;font-size:17px;padding:0 10px;font-weight:600}.cell-top .iconfont[data-v-5de84fc2]{color:#38bdcd;font-size:15px}.reward-box[data-v-5de84fc2]{padding:15px 0 6px;display:flex;flex-wrap:wrap}.reward-item-box[data-v-5de84fc2]{width:calc(50% - 19px);padding:0 6px 12px}.reward-item-box[data-v-5de84fc2]:nth-child(odd){padding-left:13px}.reward-item-box[data-v-5de84fc2]:nth-child(2n+2){padding-right:13px}.reward-item-detail[data-v-5de84fc2]{background:#f6f6f6;border-radius:4px;padding:6px}.reward-item-detail .img-box[data-v-5de84fc2]{padding-top:100%;position:relative;background:#fff}.reward-item-detail .img-box .reward-img[data-v-5de84fc2]{position:absolute;z-index:1;left:50%;top:50%;transform:translate(-50%,-50%);width:calc(100% - 20px);height:calc(100% - 20px)}.reward-item-detail .reward-name[data-v-5de84fc2]{color:#21252b;font-size:14px;font-weight:500;padding:11px 0 0}.reward-item-detail .reward-des[data-v-5de84fc2]{color:#21252b;font-size:11px;font-weight:300;padding:4px 0 7px}.rule-item[data-v-5de84fc2]{padding:15px 13px 0}.rule-item[data-v-5de84fc2]:last-child{padding-bottom:16px}.rule-item .title[data-v-5de84fc2]{color:#21252b;font-size:14px;font-weight:600}.rule-item .value[data-v-5de84fc2]{color:#21252b;font-size:13px;margin-top:8px}.rule-item .value.point[data-v-5de84fc2]{padding-left:10px;position:relative}.rule-item .value.point[data-v-5de84fc2]:before{content:" ";position:absolute;width:4px;height:4px;border-radius:50%;background:#38bdcd;top:7px;left:0;z-index:1}
\ No newline at end of file
<!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>game-h5</title><link rel="stylesheet" href="//at.alicdn.com/t/font_2844902_uelk5f2sikk.css"><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"><link href="css/chunk-04b3b629.77094b5a.css" rel="prefetch"><link href="css/chunk-61d8d301.92cca16d.css" rel="prefetch"><link href="css/chunk-65c6312e.7c0cab91.css" rel="prefetch"><link href="css/chunk-b538c240.cf8101e3.css" rel="prefetch"><link href="js/chunk-04b3b629.1fac947f.js" rel="prefetch"><link href="js/chunk-0a6bc2c3.adccd8f6.js" rel="prefetch"><link href="js/chunk-0b8f2f23.0efc6225.js" rel="prefetch"><link href="js/chunk-61d8d301.4bc21ba0.js" rel="prefetch"><link href="js/chunk-65c6312e.76ce6720.js" rel="prefetch"><link href="js/chunk-b538c240.ccb698e4.js" rel="prefetch"><link href="js/chunk-cf6f0d08.46122fa1.js" rel="prefetch"><link href="js/app.9df810f5.js" rel="preload" as="script"><link href="js/chunk-vendors.37f2d3ab.js" rel="preload" as="script"></head><body><noscript><strong>We're sorry but game-h5 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js"></script><script src="//web-1251519181.file.myqcloud.com/lib/axios/0.18.0/index.min.js"></script><script src="//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js"></script><script src="https://unpkg.com/element-ui/lib/index.js"></script><script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script><script src="js/chunk-vendors.37f2d3ab.js"></script><script src="js/app.9df810f5.js"></script></body></html> <!DOCTYPE html><html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="favicon.ico"><title>game-h5</title><link rel="stylesheet" href="//at.alicdn.com/t/font_2844902_uelk5f2sikk.css"><link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"><link href="css/chunk-02699ff0.f474007f.css" rel="prefetch"><link href="css/chunk-02af9ba3.9efe9e40.css" rel="prefetch"><link href="css/chunk-06020bd3.6d53863a.css" rel="prefetch"><link href="css/chunk-109d5dec.85b8a6a4.css" rel="prefetch"><link href="css/chunk-27dfcc10.23ca7775.css" rel="prefetch"><link href="css/chunk-33b673b0.767bbfee.css" rel="prefetch"><link href="css/chunk-3608022b.668360ed.css" rel="prefetch"><link href="css/chunk-497026b0.fd6bba20.css" rel="prefetch"><link href="css/chunk-5a091a97.7055b0a4.css" rel="prefetch"><link href="css/chunk-71639305.f21c9ef5.css" rel="prefetch"><link href="css/chunk-7e981379.0ef9b4f4.css" rel="prefetch"><link href="css/chunk-978cfcd0.d87b1781.css" rel="prefetch"><link href="css/chunk-9ddcb942.b38eca06.css" rel="prefetch"><link href="js/chunk-02699ff0.0768b11d.js" rel="prefetch"><link href="js/chunk-02af9ba3.9a46014f.js" rel="prefetch"><link href="js/chunk-06020bd3.cf757ae2.js" rel="prefetch"><link href="js/chunk-109d5dec.cad95bb7.js" rel="prefetch"><link href="js/chunk-27dfcc10.5795e126.js" rel="prefetch"><link href="js/chunk-33b673b0.26d66f23.js" rel="prefetch"><link href="js/chunk-3566c97c.576fe036.js" rel="prefetch"><link href="js/chunk-3608022b.10d4d5ea.js" rel="prefetch"><link href="js/chunk-497026b0.1a121b49.js" rel="prefetch"><link href="js/chunk-4aa552e1.0bdef039.js" rel="prefetch"><link href="js/chunk-5a091a97.8dcc58e7.js" rel="prefetch"><link href="js/chunk-71639305.6c3118a7.js" rel="prefetch"><link href="js/chunk-72be1171.dce6850f.js" rel="prefetch"><link href="js/chunk-7e981379.9dc3793a.js" rel="prefetch"><link href="js/chunk-978cfcd0.1aa29d89.js" rel="prefetch"><link href="js/chunk-9ddcb942.934ea7b5.js" rel="prefetch"><link href="js/app.a3bf01ee.js" rel="preload" as="script"><link href="js/chunk-vendors.37f2d3ab.js" rel="preload" as="script"></head><body><noscript><strong>We're sorry but game-h5 doesn't work properly without JavaScript enabled. Please enable it to continue.</strong></noscript><div id="app"></div><script src="//web-1251519181.file.myqcloud.com/lib/vue/2.6.6/vue.min.js"></script><script src="//web-1251519181.file.myqcloud.com/lib/axios/0.18.0/index.min.js"></script><script src="//web-1251519181.file.myqcloud.com/lib/vue-router/3.0.2/vue-router.min.js"></script><script src="https://unpkg.com/element-ui/lib/index.js"></script><script src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script><script src="js/chunk-vendors.37f2d3ab.js"></script><script src="js/app.a3bf01ee.js"></script></body></html>
\ No newline at end of file \ No newline at end of file
(function(e){function n(n){for(var t,u,o=n[0],h=n[1],i=n[2],l=0,f=[];l<o.length;l++)u=o[l],Object.prototype.hasOwnProperty.call(r,u)&&r[u]&&f.push(r[u][0]),r[u]=0;for(t in h)Object.prototype.hasOwnProperty.call(h,t)&&(e[t]=h[t]);d&&d(n);while(f.length)f.shift()();return a.push.apply(a,i||[]),c()}function c(){for(var e,n=0;n<a.length;n++){for(var c=a[n],t=!0,u=1;u<c.length;u++){var o=c[u];0!==r[o]&&(t=!1)}t&&(a.splice(n--,1),e=h(h.s=c[0]))}return e}var t={},u={app:0},r={app:0},a=[];function o(e){return h.p+"js/"+({}[e]||e)+"."+{"chunk-3566c97c":"576fe036","chunk-4aa552e1":"0bdef039","chunk-72be1171":"dce6850f","chunk-02699ff0":"0768b11d","chunk-02af9ba3":"9a46014f","chunk-109d5dec":"cad95bb7","chunk-27dfcc10":"5795e126","chunk-33b673b0":"26d66f23","chunk-3608022b":"10d4d5ea","chunk-497026b0":"1a121b49","chunk-5a091a97":"8dcc58e7","chunk-71639305":"6c3118a7","chunk-06020bd3":"cf757ae2","chunk-7e981379":"9dc3793a","chunk-9ddcb942":"934ea7b5","chunk-978cfcd0":"1aa29d89"}[e]+".js"}function h(n){if(t[n])return t[n].exports;var c=t[n]={i:n,l:!1,exports:{}};return e[n].call(c.exports,c,c.exports,h),c.l=!0,c.exports}h.e=function(e){var n=[],c={"chunk-02699ff0":1,"chunk-02af9ba3":1,"chunk-109d5dec":1,"chunk-27dfcc10":1,"chunk-33b673b0":1,"chunk-3608022b":1,"chunk-497026b0":1,"chunk-5a091a97":1,"chunk-71639305":1,"chunk-06020bd3":1,"chunk-7e981379":1,"chunk-9ddcb942":1,"chunk-978cfcd0":1};u[e]?n.push(u[e]):0!==u[e]&&c[e]&&n.push(u[e]=new Promise((function(n,c){for(var t="css/"+({}[e]||e)+"."+{"chunk-3566c97c":"31d6cfe0","chunk-4aa552e1":"31d6cfe0","chunk-72be1171":"31d6cfe0","chunk-02699ff0":"f474007f","chunk-02af9ba3":"9efe9e40","chunk-109d5dec":"85b8a6a4","chunk-27dfcc10":"23ca7775","chunk-33b673b0":"767bbfee","chunk-3608022b":"668360ed","chunk-497026b0":"fd6bba20","chunk-5a091a97":"7055b0a4","chunk-71639305":"f21c9ef5","chunk-06020bd3":"6d53863a","chunk-7e981379":"0ef9b4f4","chunk-9ddcb942":"b38eca06","chunk-978cfcd0":"d87b1781"}[e]+".css",r=h.p+t,a=document.getElementsByTagName("link"),o=0;o<a.length;o++){var i=a[o],l=i.getAttribute("data-href")||i.getAttribute("href");if("stylesheet"===i.rel&&(l===t||l===r))return n()}var f=document.getElementsByTagName("style");for(o=0;o<f.length;o++){i=f[o],l=i.getAttribute("data-href");if(l===t||l===r)return n()}var d=document.createElement("link");d.rel="stylesheet",d.type="text/css",d.onload=n,d.onerror=function(n){var t=n&&n.target&&n.target.src||r,a=new Error("Loading CSS chunk "+e+" failed.\n("+t+")");a.code="CSS_CHUNK_LOAD_FAILED",a.request=t,delete u[e],d.parentNode.removeChild(d),c(a)},d.href=r;var b=document.getElementsByTagName("head")[0];b.appendChild(d)})).then((function(){u[e]=0})));var t=r[e];if(0!==t)if(t)n.push(t[2]);else{var a=new Promise((function(n,c){t=r[e]=[n,c]}));n.push(t[2]=a);var i,l=document.createElement("script");l.charset="utf-8",l.timeout=120,h.nc&&l.setAttribute("nonce",h.nc),l.src=o(e);var f=new Error;i=function(n){l.onerror=l.onload=null,clearTimeout(d);var c=r[e];if(0!==c){if(c){var t=n&&("load"===n.type?"missing":n.type),u=n&&n.target&&n.target.src;f.message="Loading chunk "+e+" failed.\n("+t+": "+u+")",f.name="ChunkLoadError",f.type=t,f.request=u,c[1](f)}r[e]=void 0}};var d=setTimeout((function(){i({type:"timeout",target:l})}),12e4);l.onerror=l.onload=i,document.head.appendChild(l)}return Promise.all(n)},h.m=e,h.c=t,h.d=function(e,n,c){h.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:c})},h.r=function(e){"undefined"!==typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},h.t=function(e,n){if(1&n&&(e=h(e)),8&n)return e;if(4&n&&"object"===typeof e&&e&&e.__esModule)return e;var c=Object.create(null);if(h.r(c),Object.defineProperty(c,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var t in e)h.d(c,t,function(n){return e[n]}.bind(null,t));return c},h.n=function(e){var n=e&&e.__esModule?function(){return e["default"]}:function(){return e};return h.d(n,"a",n),n},h.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},h.p="",h.oe=function(e){throw console.error(e),e};var i=window["webpackJsonp"]=window["webpackJsonp"]||[],l=i.push.bind(i);i.push=n,i=i.slice();for(var f=0;f<i.length;f++)n(i[f]);var d=l;a.push([0,"chunk-vendors"]),c()})({0:function(e,n,c){e.exports=c("56d7")},"56d7":function(e,n,c){"use strict";c.r(n);c("e260"),c("e6cf"),c("cca6"),c("a79d");var t=c("8bbf"),u=c.n(t),r=function(){var e=this,n=e.$createElement,c=e._self._c||n;return c("div",{attrs:{id:"app"}},[c("router-view")],1)},a=[],o={name:"App"},h=o,i=c("2877"),l=Object(i["a"])(h,r,a,!1,null,null,null),f=l.exports,d=c("cebe"),b=c.n(d),p=(c("d3b7"),c("3ca3"),c("ddb0"),c("6389")),s=c.n(p);u.a.use(s.a);var k=[{path:"/",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-4aa552e1")]).then(c.bind(null,"6e78"))}},{path:"/cmh/1",name:"猜盲盒",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-71639305"),c.e("chunk-7e981379")]).then(c.bind(null,"28b8"))}},{path:"/cmh/1/rule",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-978cfcd0")]).then(c.bind(null,"e214"))},name:"游戏规则"},{path:"/cmh/1/my-reward",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-02699ff0")]).then(c.bind(null,"393a"))},name:"我的奖品"},{path:"/cmh/1/support",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-3608022b")]).then(c.bind(null,"95c8"))},name:"助力拆盲盒"},{path:"/cmh/2",name:"猜盲盒",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-71639305"),c.e("chunk-06020bd3")]).then(c.bind(null,"a893"))}},{path:"/cmh/2/rule",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-33b673b0")]).then(c.bind(null,"0f3e"))},name:"游戏规则"},{path:"/cmh/2/my-reward",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-5a091a97")]).then(c.bind(null,"415c"))},name:"我的奖品"},{path:"/cmh/2/support",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-02af9ba3")]).then(c.bind(null,"5f60"))},name:"助力拆盲盒"},{path:"/cmh/3",name:"猜盲盒",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-71639305"),c.e("chunk-9ddcb942")]).then(c.bind(null,"c2c8"))}},{path:"/cmh/3/rule",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-497026b0")]).then(c.bind(null,"3b16"))},name:"游戏规则"},{path:"/cmh/3/my-reward",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-109d5dec")]).then(c.bind(null,"14ab"))},name:"我的奖品"},{path:"/cmh/3/support",component:function(){return Promise.all([c.e("chunk-3566c97c"),c.e("chunk-72be1171"),c.e("chunk-27dfcc10")]).then(c.bind(null,"a4fa"))},name:"助力拆盲盒"}],m=new s.a({base:"/",routes:k}),v=m;u.a.config.productionTip=!1,u.a.prototype.axios=b.a,u.a.prototype.axios.defaults.withCredentials=!0,new u.a({router:v,render:function(e){return e(f)}}).$mount("#app")},6389:function(e,n){e.exports=VueRouter},"8bbf":function(e,n){e.exports=Vue},cebe:function(e,n){e.exports=axios}});
\ No newline at end of file
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-4aa552e1"],{"0cb2":function(e,r,t){var a=t("e330"),n=t("7b0b"),c=Math.floor,i=a("".charAt),o=a("".replace),u=a("".slice),d=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,f=/\$([$&'`]|\d{1,2})/g;e.exports=function(e,r,t,a,s,l){var v=t+e.length,h=a.length,p=f;return void 0!==s&&(s=n(s),p=d),o(l,p,(function(n,o){var d;switch(i(o,0)){case"$":return"$";case"&":return e;case"`":return u(r,0,t);case"'":return u(r,v);case"<":d=s[u(o,1,-1)];break;default:var f=+o;if(0===f)return n;if(f>h){var l=c(f/10);return 0===l?n:l<=h?void 0===a[l-1]?i(o,1):a[l-1]+i(o,1):n}d=a[f-1]}return void 0===d?"":d}))}},5319:function(e,r,t){"use strict";var a=t("2ba4"),n=t("c65b"),c=t("e330"),i=t("d784"),o=t("d039"),u=t("825a"),d=t("1626"),f=t("5926"),s=t("50c4"),l=t("577e"),v=t("1d80"),h=t("8aa5"),p=t("dc4a"),b=t("0cb2"),g=t("14c3"),$=t("b622"),m=$("replace"),x=Math.max,w=Math.min,I=c([].concat),k=c([].push),y=c("".indexOf),M=c("".slice),q=function(e){return void 0===e?e:String(e)},A=function(){return"$0"==="a".replace(/./,"$0")}(),C=function(){return!!/./[m]&&""===/./[m]("a","$0")}(),D=!o((function(){var e=/./;return e.exec=function(){var e=[];return e.groups={a:"7"},e},"7"!=="".replace(e,"$<a>")}));i("replace",(function(e,r,t){var c=C?"$":"$0";return[function(e,t){var a=v(this),c=void 0==e?void 0:p(e,m);return c?n(c,e,a,t):n(r,l(a),e,t)},function(e,n){var i=u(this),o=l(e);if("string"==typeof n&&-1===y(n,c)&&-1===y(n,"$<")){var v=t(r,i,o,n);if(v.done)return v.value}var p=d(n);p||(n=l(n));var $=i.global;if($){var m=i.unicode;i.lastIndex=0}var A=[];while(1){var C=g(i,o);if(null===C)break;if(k(A,C),!$)break;var D=l(C[0]);""===D&&(i.lastIndex=h(o,s(i.lastIndex),m))}for(var E="",J=0,O=0;O<A.length;O++){C=A[O];for(var S=l(C[0]),T=x(w(f(C.index),o.length),0),_=[],j=1;j<C.length;j++)k(_,q(C[j]));var G=C.groups;if(p){var z=I([S],_,T,o);void 0!==G&&k(z,G);var B=l(a(n,void 0,z))}else B=b(S,o,T,_,G,n);T>=J&&(E+=M(o,J,T)+B,J=T+S.length)}return E+M(o,J)}]}),!D||!A||C)},"6e78":function(e,r,t){"use strict";t.r(r);var a=function(){var e=this,r=e.$createElement,t=e._self._c||r;return t("div",{staticClass:"box"})},n=[],c=(t("ac1f"),t("5319"),t("99af"),t("2934")),i=c["a"].getGameInfo,o={components:{},data:function(){return{}},created:function(){document.title="游戏",this.loadData()},methods:{loadData:function(){var e=this,r=this.$route.query;i({gameId:r.gameId,enterpriseId:r.enterpriseId}).then((function(t){var a="";switch(+t.templateType){case 1:a="cmh";break;case 2:break;default:break}e.$router.replace({path:"/".concat(a,"/").concat(t.templateId).concat(r.shareMemberId?"/support":""),query:r})}))}}},u=o,d=t("2877"),f=Object(d["a"])(u,a,n,!1,null,"96d7b9a6",null);r["default"]=f.exports},"99af":function(e,r,t){"use strict";var a=t("23e7"),n=t("da84"),c=t("d039"),i=t("e8b5"),o=t("861d"),u=t("7b0b"),d=t("07fa"),f=t("8418"),s=t("65f0"),l=t("1dde"),v=t("b622"),h=t("2d00"),p=v("isConcatSpreadable"),b=9007199254740991,g="Maximum allowed index exceeded",$=n.TypeError,m=h>=51||!c((function(){var e=[];return e[p]=!1,e.concat()[0]!==e})),x=l("concat"),w=function(e){if(!o(e))return!1;var r=e[p];return void 0!==r?!!r:i(e)},I=!m||!x;a({target:"Array",proto:!0,arity:1,forced:I},{concat:function(e){var r,t,a,n,c,i=u(this),o=s(i,0),l=0;for(r=-1,a=arguments.length;r<a;r++)if(c=-1===r?i:arguments[r],w(c)){if(n=d(c),l+n>b)throw $(g);for(t=0;t<n;t++,l++)t in c&&f(o,l,c[t])}else{if(l>=b)throw $(g);f(o,l++,c)}return o.length=l,o}})}}]);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-72be1171"],{"1da1":function(t,r,e){"use strict";e.d(r,"a",(function(){return o}));e("d3b7");function n(t,r,e,n,o,i,a){try{var c=t[i](a),u=c.value}catch(f){return void e(f)}c.done?r(u):Promise.resolve(u).then(n,o)}function o(t){return function(){var r=this,e=arguments;return new Promise((function(o,i){var a=t.apply(r,e);function c(t){n(a,o,i,c,u,"next",t)}function u(t){n(a,o,i,c,u,"throw",t)}c(void 0)}))}}},"96cf":function(t,r,e){var n=function(t){"use strict";var r,e=Object.prototype,n=e.hasOwnProperty,o="function"===typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",a=o.asyncIterator||"@@asyncIterator",c=o.toStringTag||"@@toStringTag";function u(t,r,e){return Object.defineProperty(t,r,{value:e,enumerable:!0,configurable:!0,writable:!0}),t[r]}try{u({},"")}catch(P){u=function(t,r,e){return t[r]=e}}function f(t,r,e,n){var o=r&&r.prototype instanceof v?r:v,i=Object.create(o.prototype),a=new N(n||[]);return i._invoke=_(t,e,a),i}function h(t,r,e){try{return{type:"normal",arg:t.call(r,e)}}catch(P){return{type:"throw",arg:P}}}t.wrap=f;var s="suspendedStart",l="suspendedYield",p="executing",d="completed",y={};function v(){}function g(){}function m(){}var w={};u(w,i,(function(){return this}));var b=Object.getPrototypeOf,x=b&&b(b(S([])));x&&x!==e&&n.call(x,i)&&(w=x);var L=m.prototype=v.prototype=Object.create(w);function E(t){["next","throw","return"].forEach((function(r){u(t,r,(function(t){return this._invoke(r,t)}))}))}function O(t,r){function e(o,i,a,c){var u=h(t[o],t,i);if("throw"!==u.type){var f=u.arg,s=f.value;return s&&"object"===typeof s&&n.call(s,"__await")?r.resolve(s.__await).then((function(t){e("next",t,a,c)}),(function(t){e("throw",t,a,c)})):r.resolve(s).then((function(t){f.value=t,a(f)}),(function(t){return e("throw",t,a,c)}))}c(u.arg)}var o;function i(t,n){function i(){return new r((function(r,o){e(t,n,r,o)}))}return o=o?o.then(i,i):i()}this._invoke=i}function _(t,r,e){var n=s;return function(o,i){if(n===p)throw new Error("Generator is already running");if(n===d){if("throw"===o)throw i;return G()}e.method=o,e.arg=i;while(1){var a=e.delegate;if(a){var c=j(a,e);if(c){if(c===y)continue;return c}}if("next"===e.method)e.sent=e._sent=e.arg;else if("throw"===e.method){if(n===s)throw n=d,e.arg;e.dispatchException(e.arg)}else"return"===e.method&&e.abrupt("return",e.arg);n=p;var u=h(t,r,e);if("normal"===u.type){if(n=e.done?d:l,u.arg===y)continue;return{value:u.arg,done:e.done}}"throw"===u.type&&(n=d,e.method="throw",e.arg=u.arg)}}}function j(t,e){var n=t.iterator[e.method];if(n===r){if(e.delegate=null,"throw"===e.method){if(t.iterator["return"]&&(e.method="return",e.arg=r,j(t,e),"throw"===e.method))return y;e.method="throw",e.arg=new TypeError("The iterator does not provide a 'throw' method")}return y}var o=h(n,t.iterator,e.arg);if("throw"===o.type)return e.method="throw",e.arg=o.arg,e.delegate=null,y;var i=o.arg;return i?i.done?(e[t.resultName]=i.value,e.next=t.nextLoc,"return"!==e.method&&(e.method="next",e.arg=r),e.delegate=null,y):i:(e.method="throw",e.arg=new TypeError("iterator result is not an object"),e.delegate=null,y)}function F(t){var r={tryLoc:t[0]};1 in t&&(r.catchLoc=t[1]),2 in t&&(r.finallyLoc=t[2],r.afterLoc=t[3]),this.tryEntries.push(r)}function k(t){var r=t.completion||{};r.type="normal",delete r.arg,t.completion=r}function N(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(F,this),this.reset(!0)}function S(t){if(t){var e=t[i];if(e)return e.call(t);if("function"===typeof t.next)return t;if(!isNaN(t.length)){var o=-1,a=function e(){while(++o<t.length)if(n.call(t,o))return e.value=t[o],e.done=!1,e;return e.value=r,e.done=!0,e};return a.next=a}}return{next:G}}function G(){return{value:r,done:!0}}return g.prototype=m,u(L,"constructor",m),u(m,"constructor",g),g.displayName=u(m,c,"GeneratorFunction"),t.isGeneratorFunction=function(t){var r="function"===typeof t&&t.constructor;return!!r&&(r===g||"GeneratorFunction"===(r.displayName||r.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,m):(t.__proto__=m,u(t,c,"GeneratorFunction")),t.prototype=Object.create(L),t},t.awrap=function(t){return{__await:t}},E(O.prototype),u(O.prototype,a,(function(){return this})),t.AsyncIterator=O,t.async=function(r,e,n,o,i){void 0===i&&(i=Promise);var a=new O(f(r,e,n,o),i);return t.isGeneratorFunction(e)?a:a.next().then((function(t){return t.done?t.value:a.next()}))},E(L),u(L,c,"Generator"),u(L,i,(function(){return this})),u(L,"toString",(function(){return"[object Generator]"})),t.keys=function(t){var r=[];for(var e in t)r.push(e);return r.reverse(),function e(){while(r.length){var n=r.pop();if(n in t)return e.value=n,e.done=!1,e}return e.done=!0,e}},t.values=S,N.prototype={constructor:N,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=r,this.done=!1,this.delegate=null,this.method="next",this.arg=r,this.tryEntries.forEach(k),!t)for(var e in this)"t"===e.charAt(0)&&n.call(this,e)&&!isNaN(+e.slice(1))&&(this[e]=r)},stop:function(){this.done=!0;var t=this.tryEntries[0],r=t.completion;if("throw"===r.type)throw r.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var e=this;function o(n,o){return c.type="throw",c.arg=t,e.next=n,o&&(e.method="next",e.arg=r),!!o}for(var i=this.tryEntries.length-1;i>=0;--i){var a=this.tryEntries[i],c=a.completion;if("root"===a.tryLoc)return o("end");if(a.tryLoc<=this.prev){var u=n.call(a,"catchLoc"),f=n.call(a,"finallyLoc");if(u&&f){if(this.prev<a.catchLoc)return o(a.catchLoc,!0);if(this.prev<a.finallyLoc)return o(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return o(a.catchLoc,!0)}else{if(!f)throw new Error("try statement without catch or finally");if(this.prev<a.finallyLoc)return o(a.finallyLoc)}}}},abrupt:function(t,r){for(var e=this.tryEntries.length-1;e>=0;--e){var o=this.tryEntries[e];if(o.tryLoc<=this.prev&&n.call(o,"finallyLoc")&&this.prev<o.finallyLoc){var i=o;break}}i&&("break"===t||"continue"===t)&&i.tryLoc<=r&&r<=i.finallyLoc&&(i=null);var a=i?i.completion:{};return a.type=t,a.arg=r,i?(this.method="next",this.next=i.finallyLoc,y):this.complete(a)},complete:function(t,r){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&r&&(this.next=r),y},finish:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),k(e),y}},catch:function(t){for(var r=this.tryEntries.length-1;r>=0;--r){var e=this.tryEntries[r];if(e.tryLoc===t){var n=e.completion;if("throw"===n.type){var o=n.arg;k(e)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(t,e,n){return this.delegate={iterator:S(t),resultName:e,nextLoc:n},"next"===this.method&&(this.arg=r),y}},t}(t.exports);try{regeneratorRuntime=n}catch(o){"object"===typeof globalThis?globalThis.regeneratorRuntime=n:Function("r","regeneratorRuntime = r")(n)}},b727:function(t,r,e){var n=e("0366"),o=e("e330"),i=e("44ad"),a=e("7b0b"),c=e("07fa"),u=e("65f0"),f=o([].push),h=function(t){var r=1==t,e=2==t,o=3==t,h=4==t,s=6==t,l=7==t,p=5==t||s;return function(d,y,v,g){for(var m,w,b=a(d),x=i(b),L=n(y,v),E=c(x),O=0,_=g||u,j=r?_(d,E):e||l?_(d,0):void 0;E>O;O++)if((p||O in x)&&(m=x[O],w=L(m,O,b),t))if(r)j[O]=w;else if(w)switch(t){case 3:return!0;case 5:return m;case 6:return O;case 2:f(j,m)}else switch(t){case 4:return!1;case 7:f(j,m)}return s?-1:o||h?h:j}};t.exports={forEach:h(0),map:h(1),filter:h(2),some:h(3),every:h(4),find:h(5),findIndex:h(6),filterReject:h(7)}},d81d:function(t,r,e){"use strict";var n=e("23e7"),o=e("b727").map,i=e("1dde"),a=i("map");n({target:"Array",proto:!0,forced:!a},{map:function(t){return o(this,t,arguments.length>1?arguments[1]:void 0)}})},e9c4:function(t,r,e){var n=e("23e7"),o=e("d066"),i=e("2ba4"),a=e("c65b"),c=e("e330"),u=e("d039"),f=e("e8b5"),h=e("1626"),s=e("861d"),l=e("d9b5"),p=e("f36a"),d=e("4930"),y=o("JSON","stringify"),v=c(/./.exec),g=c("".charAt),m=c("".charCodeAt),w=c("".replace),b=c(1..toString),x=/[\uD800-\uDFFF]/g,L=/^[\uD800-\uDBFF]$/,E=/^[\uDC00-\uDFFF]$/,O=!d||u((function(){var t=o("Symbol")();return"[null]"!=y([t])||"{}"!=y({a:t})||"{}"!=y(Object(t))})),_=u((function(){return'"\\udf06\\ud834"'!==y("\udf06\ud834")||'"\\udead"'!==y("\udead")})),j=function(t,r){var e=p(arguments),n=r;if((s(r)||void 0!==t)&&!l(t))return f(r)||(r=function(t,r){if(h(n)&&(r=a(n,this,t,r)),!l(r))return r}),e[1]=r,i(y,null,e)},F=function(t,r,e){var n=g(e,r-1),o=g(e,r+1);return v(L,t)&&!v(E,o)||v(E,t)&&!v(L,n)?"\\u"+b(m(t,0),16):t};y&&n({target:"JSON",stat:!0,arity:3,forced:O||_},{stringify:function(t,r,e){var n=p(arguments),o=i(O?j:y,null,n);return _&&"string"==typeof o?w(o,x,F):o}})}}]);
\ No newline at end of file
...@@ -2676,8 +2676,7 @@ ...@@ -2676,8 +2676,7 @@
"version": "2.2.0", "version": "2.2.0",
"resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz", "resolved": "https://registry.npmmirror.com/binary-extensions/-/binary-extensions-2.2.0.tgz",
"integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==",
"dev": true, "dev": true
"optional": true
}, },
"bindings": { "bindings": {
"version": "1.5.0", "version": "1.5.0",
...@@ -3168,7 +3167,6 @@ ...@@ -3168,7 +3167,6 @@
"resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz", "resolved": "https://registry.npmmirror.com/chokidar/-/chokidar-3.5.3.tgz",
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"anymatch": "~3.1.2", "anymatch": "~3.1.2",
"braces": "~3.0.2", "braces": "~3.0.2",
...@@ -3185,7 +3183,6 @@ ...@@ -3185,7 +3183,6 @@
"resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz", "resolved": "https://registry.npmmirror.com/braces/-/braces-3.0.2.tgz",
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"fill-range": "^7.0.1" "fill-range": "^7.0.1"
} }
...@@ -3195,7 +3192,6 @@ ...@@ -3195,7 +3192,6 @@
"resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz", "resolved": "https://registry.npmmirror.com/fill-range/-/fill-range-7.0.1.tgz",
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"to-regex-range": "^5.0.1" "to-regex-range": "^5.0.1"
} }
...@@ -3204,15 +3200,13 @@ ...@@ -3204,15 +3200,13 @@
"version": "7.0.0", "version": "7.0.0",
"resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz", "resolved": "https://registry.npmmirror.com/is-number/-/is-number-7.0.0.tgz",
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
"dev": true, "dev": true
"optional": true
}, },
"to-regex-range": { "to-regex-range": {
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz", "resolved": "https://registry.npmmirror.com/to-regex-range/-/to-regex-range-5.0.1.tgz",
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"is-number": "^7.0.0" "is-number": "^7.0.0"
} }
...@@ -3449,6 +3443,17 @@ ...@@ -3449,6 +3443,17 @@
"integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==",
"dev": true "dev": true
}, },
"clone-deep": {
"version": "4.0.1",
"resolved": "https://registry.npmmirror.com/clone-deep/-/clone-deep-4.0.1.tgz",
"integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==",
"dev": true,
"requires": {
"is-plain-object": "^2.0.4",
"kind-of": "^6.0.2",
"shallow-clone": "^3.0.0"
}
},
"coa": { "coa": {
"version": "2.0.2", "version": "2.0.2",
"resolved": "https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz", "resolved": "https://registry.npmmirror.com/coa/-/coa-2.0.2.tgz",
...@@ -6791,7 +6796,6 @@ ...@@ -6791,7 +6796,6 @@
"resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz", "resolved": "https://registry.npmmirror.com/is-binary-path/-/is-binary-path-2.1.0.tgz",
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"binary-extensions": "^2.0.0" "binary-extensions": "^2.0.0"
} }
...@@ -9369,7 +9373,6 @@ ...@@ -9369,7 +9373,6 @@
"resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz", "resolved": "https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz",
"integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"picomatch": "^2.2.1" "picomatch": "^2.2.1"
} }
...@@ -9772,6 +9775,50 @@ ...@@ -9772,6 +9775,50 @@
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
"dev": true "dev": true
}, },
"sass": {
"version": "1.32.13",
"resolved": "https://registry.npmmirror.com/sass/-/sass-1.32.13.tgz",
"integrity": "sha512-dEgI9nShraqP7cXQH+lEXVf73WOPCse0QlFzSD8k+1TcOxCMwVXfQlr0jtoluZysQOyJGnfr21dLvYKDJq8HkA==",
"dev": true,
"requires": {
"chokidar": ">=3.0.0 <4.0.0"
}
},
"sass-loader": {
"version": "8.0.2",
"resolved": "https://registry.npmmirror.com/sass-loader/-/sass-loader-8.0.2.tgz",
"integrity": "sha512-7o4dbSK8/Ol2KflEmSco4jTjQoV988bM82P9CZdmo9hR3RLnvNc0ufMNdMrB0caq38JQ/FgF4/7RcbcfKzxoFQ==",
"dev": true,
"requires": {
"clone-deep": "^4.0.1",
"loader-utils": "^1.2.3",
"neo-async": "^2.6.1",
"schema-utils": "^2.6.1",
"semver": "^6.3.0"
},
"dependencies": {
"json5": {
"version": "1.0.1",
"resolved": "https://registry.npmmirror.com/json5/-/json5-1.0.1.tgz",
"integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==",
"dev": true,
"requires": {
"minimist": "^1.2.0"
}
},
"loader-utils": {
"version": "1.4.0",
"resolved": "https://registry.npmmirror.com/loader-utils/-/loader-utils-1.4.0.tgz",
"integrity": "sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==",
"dev": true,
"requires": {
"big.js": "^5.2.2",
"emojis-list": "^3.0.0",
"json5": "^1.0.1"
}
}
}
},
"sax": { "sax": {
"version": "1.2.4", "version": "1.2.4",
"resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz", "resolved": "https://registry.npmmirror.com/sax/-/sax-1.2.4.tgz",
...@@ -10002,6 +10049,15 @@ ...@@ -10002,6 +10049,15 @@
"safe-buffer": "^5.0.1" "safe-buffer": "^5.0.1"
} }
}, },
"shallow-clone": {
"version": "3.0.1",
"resolved": "https://registry.npmmirror.com/shallow-clone/-/shallow-clone-3.0.1.tgz",
"integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==",
"dev": true,
"requires": {
"kind-of": "^6.0.2"
}
},
"shebang-command": { "shebang-command": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz", "resolved": "https://registry.npmmirror.com/shebang-command/-/shebang-command-1.2.0.tgz",
......
...@@ -23,6 +23,8 @@ ...@@ -23,6 +23,8 @@
"babel-eslint": "^10.1.0", "babel-eslint": "^10.1.0",
"eslint": "^6.7.2", "eslint": "^6.7.2",
"eslint-plugin-vue": "^6.2.2", "eslint-plugin-vue": "^6.2.2",
"sass": "~1.32.6",
"sass-loader": "^8.0.2",
"vue-template-compiler": "^2.6.11" "vue-template-compiler": "^2.6.11"
}, },
"eslintConfig": { "eslintConfig": {
......
...@@ -47,7 +47,23 @@ const gameApiMap = { ...@@ -47,7 +47,23 @@ const gameApiMap = {
// 校验会员玩游戏权限 // 校验会员玩游戏权限
validGame: '/gic-wx-app/game/valid', validGame: '/gic-wx-app/game/valid',
// 获取已玩次数
getPlayCount: '/gic-wx-app/game/play_count',
// 获取积分 // 获取积分
getIntegral: '/gic-wx-app/common/integral', getIntegral: '/gic-wx-app/common/integral',
// 获取分享码
getGameShareQrCodeUrl: {
type:"post",
url: '/gic-wx-app/game/share'
},
// 获取助力详情
getHelpDetail: '/gic-wx-app/game/help_detail',
// 浏览埋点
shareEvent: '/api-bury-point/share-event',
} }
export const gameRequestApi = getExport(gameApiMap) export const gameRequestApi = getExport(gameApiMap)
\ No newline at end of file
...@@ -12,14 +12,14 @@ service.interceptors.request.use((config) => { ...@@ -12,14 +12,14 @@ service.interceptors.request.use((config) => {
}); });
service.interceptors.response.use((response) => { service.interceptors.response.use((response) => {
const { data, config } = response; const { data } = response;
let err; // let err;
const { errorCode, code } = data; const { errorCode, code } = data;
if( errorCode==0||code==0){ if( errorCode==0||code==0){
return data.result; return data.result;
}else{ }else{
err = new Error(`${data.message}: ${config.url}`); // err = new Error(data.message || '系统异常');
return Promise.reject(err); return Promise.reject(data);
} }
}, (err) => { }, (err) => {
const status = err.response.status; const status = err.response.status;
......
<template>
<div class="dialog-bg" v-if="show && (title || content || (buttonList && buttonList.length))">
<div class="content">
<div class="content-detail-bg">
<div class="content-detail">
<div class="title" v-if="title">{{ title }}</div>
<div class="subtitle" v-if="content">{{ content }}</div>
<div class="handle-btn-box" v-if="buttonList && buttonList.length">
<div
class="handle-btn"
v-for="item in buttonList"
:key="item"
@click="item.click()"
>
{{ item.text }}
</div>
</div>
</div>
</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
show: Boolean,
title:{
type: String,
default: "提示"
},
content:{
type: String,
default: "提示内容"
},
buttonList:{
type: Object,
default(){
return [
{
text: "btn1",
click: function () {
console.log("click1");
},
},
{
text: "btn1",
click: function () {
console.log("click2");
},
},
]
}
},
cancel:{
type: Function,
default(){
console.log("cancel");
}
},
},
data() {
return {};
},
methods: {
close() {
this.$emit("update:show", false);
this.options.cancel();
},
},
};
</script>
<style scoped lang="scss">
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg .content {
position: absolute;
z-index: 2;
left: 50%;
top: 45%;
transform: translate(-50%, -50%);
text-align: center;
width: 75%;
.content-detail-bg {
background: #12b4bb;
box-sizing: border-box;
border-radius: 10px;
border: 1px solid #54fefe;
box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.5);
padding: 8px 10px;
.content-detail {
background: white;
border-radius: 10px;
text-align: center;
padding: 10px 13px;
.title {
color: #27292b;
font-weight: 600;
font-size: 20px;
padding-top: 15px;
}
.subtitle {
color: #27292b;
font-size: 15px;
padding: 20px 0 30px;
}
.handle-btn-box {
display: flex;
padding-bottom: 15px;
justify-content: center;
.handle-btn {
box-sizing: border-box;
height: 40px;
line-height: 40px;
text-align: center;
color: white;
font-size: 16px;
font-weight: 600;
border-radius: 20px;
background: #12b4bb;
box-shadow: inset 0px 3px 3px 0px rgba(255, 255, 255, 0.8);
flex: 1;
max-width: 165px;
margin-right: 15px;
&:last-child {
margin-right: 0px;
}
}
}
}
}
}
.dialog-bg .content .icon-guanbi {
margin: 40px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template> <template>
<div class="dialog-bg" v-if="show"> <div class="dialog-bg" v-if="show">
<img src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_box_bg.png" class="dialog-bg-img"> <img src="../images/mould_01_box_bg.png" class="dialog-bg-img">
<div class="content"> <div class="content">
<div class="title">{{ title }}</div> <div class="title">{{ title }}</div>
<img :src="data.imageSelectUrl" class="box-img" mode="widthFix"> <img :src="data.imageSelectUrl" class="box-img" mode="widthFix">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<div class="title">恭喜获得</div> <div class="title">恭喜获得</div>
<div class="subtitle">{{ reward.prizeName }}</div> <div class="subtitle">{{ reward.prizeName }}</div>
<div class="reward-box"> <div class="reward-box">
<img :src="reward.prizeImageUrl" class="reward-img" mode="widthFix"/> <img :src="reward.prizeImageUrl" class="reward-img"/>
<div class="reward-log-text"> <div class="reward-log-text">
<span>奖品已放置</span> <span>奖品已放置</span>
<span class="color-text">【我的奖品】</span> <span class="color-text">【我的奖品】</span>
...@@ -63,7 +63,7 @@ export default { ...@@ -63,7 +63,7 @@ export default {
position: absolute; position: absolute;
z-index: 2; z-index: 2;
left: 50%; left: 50%;
top: 45%; top: 49%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
text-align: center; text-align: center;
} }
...@@ -89,11 +89,12 @@ export default { ...@@ -89,11 +89,12 @@ export default {
} }
.dialog-bg .content .reward-img{ .dialog-bg .content .reward-img{
margin: 0 auto; margin: 0 auto;
padding: 54px 0 0; padding: 29px 0 0;
width: 150px; width: 150px;
height: 150px;
} }
.dialog-bg .content .reward-log-text{ .dialog-bg .content .reward-log-text{
padding: 36px 0 14px; padding: 11px 0 14px;
font-size: 12px; font-size: 12px;
color: #27292B; color: #27292B;
} }
......
...@@ -47,7 +47,7 @@ export default { ...@@ -47,7 +47,7 @@ export default {
position: absolute; position: absolute;
z-index: 2; z-index: 2;
left: 50%; left: 50%;
top: 45%; top: 49%;
transform: translate(-50%,-50%); transform: translate(-50%,-50%);
text-align: center; text-align: center;
min-width: 224px; min-width: 224px;
...@@ -66,12 +66,12 @@ export default { ...@@ -66,12 +66,12 @@ export default {
} }
.dialog-bg .content .box-img{ .dialog-bg .content .box-img{
width: 300px; width: 180px;
margin: 76px auto 0; margin: 50px auto 0;
} }
.dialog-bg .content .handle-btn{ .dialog-bg .content .handle-btn{
margin: 78px auto 0; margin: 70px auto 0;
width: 180px; width: 180px;
height: 40px; height: 40px;
border-radius: 20px; border-radius: 20px;
......
...@@ -12,14 +12,8 @@ ...@@ -12,14 +12,8 @@
<script> <script>
export default { export default {
props: { props: {
bgImage: { bgImage: String,
type: String, qrcodeUrl: String,
default: "https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/bill_pic.png"
},
qrcodeUrl: {
type: String,
default: "https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_box01.png"
},
show: Boolean, show: Boolean,
}, },
data() { data() {
...@@ -46,7 +40,6 @@ export default { ...@@ -46,7 +40,6 @@ export default {
myImage.height = _h; myImage.height = _h;
myImage.crossOrigin = "Anonymous"; myImage.crossOrigin = "Anonymous";
myImage.src = this.bgImage; //背景图片 你自己本地的图片或者在线图片 myImage.src = this.bgImage; //背景图片 你自己本地的图片或者在线图片
console.log(this.bgImage);
myImage.onload = () => { myImage.onload = () => {
context.drawImage(myImage, 0, 0, _w, _h); context.drawImage(myImage, 0, 0, _w, _h);
...@@ -60,8 +53,6 @@ export default { ...@@ -60,8 +53,6 @@ export default {
context.drawImage(myImage2, 400, 824, 120, 120); context.drawImage(myImage2, 400, 824, 120, 120);
var base64 = canvas.toDataURL("image/png"); //"image/png" 这里注意一下 var base64 = canvas.toDataURL("image/png"); //"image/png" 这里注意一下
var img = document.getElementById("shareImage"); var img = document.getElementById("shareImage");
// document.getElementById('avatar').src = base64;
img.src = base64; img.src = base64;
}; };
}; };
...@@ -110,7 +101,7 @@ export default { ...@@ -110,7 +101,7 @@ export default {
top: 50%; top: 50%;
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
text-align: center; text-align: center;
width: 75%; width: 60%;
} }
.dialog-bg .content .tips { .dialog-bg .content .tips {
...@@ -124,7 +115,7 @@ export default { ...@@ -124,7 +115,7 @@ export default {
} }
.dialog-bg .content .icon-guanbi { .dialog-bg .content .icon-guanbi {
margin: 32px auto 0; margin: 20px auto 0;
color: white; color: white;
opacity: 0.8; opacity: 0.8;
padding: 15px; padding: 15px;
......
<template>
<div class="dialog-bg" :class="show ? 'show' : 'hidden'" @click="close">
<div class="content" @click.stop="tap">
<div class="top">
<div class="title">邀请好友助力</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
<div class="cell">
<div class="iconfont icon-duobianxing"></div>
<div class="info">
<div class="title">分享至微信/朋友圈</div>
<div class="subtitle">
每邀请{{ shareConditionObj.inviteNum }}位好友助力增加{{ shareConditionObj.value }}次,被邀请用户进入分享页{{ shareConditionObj.type == 11 ? '会员注册' : '关注服务号' }}完成助力。
</div>
<div class="share-type-box">
<div class="share-type-item" @click="shareWx">
<img src="../images/wx_icon.png" mode="aspectFit"/>
<div class="share-type-name">微信</div>
</div>
<div class="share-type-item" @click="sharePyq">
<img src="../images/pyq_icon.png" mode="aspectFit"/>
<div class="share-type-name">朋友圈</div>
</div>
</div>
</div>
</div>
<div class="cell" v-if="list && list.length" v-infinite-scroll="loadData">
<div class="iconfont icon-duobianxing"></div>
<div class="info">
<div class="title">助力成功记录</div>
<div class="record-list">
<div class="record-item" v-for="item in list" :key="item">
<div class="time">{{ item.createTime | formatDate }}</div>
<div class="text">{{ item.helpMemberName || item.helpMemberNick }} 助力成功</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { gameRequestApi } from "@/api/common.js";
const {
getReportRecord,
} = gameRequestApi;
export default {
props: {
memberId: String,
enterpriseId: String,
gameId: String,
show: Boolean,
shareConditionObj: {
type: Object,
default:()=> {
return {};
},
},
},
data() {
return {
conditionObj: {},
totalCount: 0,
pageSize: 20,
currentPage: 1,
list: [],
};
},
created(){
},
methods: {
reloadData(){
this.currentPage = 1;
this.totalCount = 0;
this.loadData();
},
async loadData(){
if(this.list.length >= this.totalCount && this.totalCount != 0){
return;
}
let res = await getReportRecord({
memberId: this.memberId || '',
enterpriseId: this.enterpriseId || '',
gameId: this.gameId || '',
currentPage: this.currentPage,
pageSize: this.pageSize
})
this.totalCount = res.totalCount;
let list = this.list || [];
if(this.currentPage == 1){
list = res.result||[];
}else{
list = list.concat(res.result||[])
}
this.currentPage ++;
this.list = list;
},
again() {
this.$emit("again");
this.close();
},
close() {
this.show = false;
setTimeout(() => {
this.$emit("update:show", false);
}, 200);
},
tap() {},
shareWx(){
this.$emit("shareWx",this.conditionObj);
},
sharePyq(){
this.$emit("sharePyq",this.conditionObj);
}
},
filters:{
formatDate(value){
if (!value) return '--';
let date = new Date(value);
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
}
},
watch:{
show(n){
console.log("show---------->",n);
if(n){
this.reloadData();
}
},
}
};
</script>
<style scoped>
@keyframes maskShowAnimation {
0% {
background: rgba(0, 0, 0, 0);
}
100% {
background: rgba(0, 0, 0, 0.85);
}
}
@keyframes maskHiddenAnimation {
0% {
background: rgba(0, 0, 0, 0.85);
}
100% {
background: rgba(0, 0, 0, 0);
}
}
@keyframes contentShowAnimation {
0% {
bottom: -100%;
}
100% {
bottom: 0;
}
}
@keyframes contentHiddenAnimation {
0% {
bottom: 0;
}
100% {
bottom: -100%;
}
}
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 100;
background: rgba(0, 0, 0, 0);
animation-duration: 200ms;
animation-fill-mode: forwards;
animation-iteration-count: 1;
}
.dialog-bg.show {
animation-name: maskShowAnimation;
}
.dialog-bg.hidden {
animation-name: maskHiddenAnimation;
}
.content {
max-height: 80%;
position: absolute;
left: 0;
bottom: 0;
width: 100%;
border-radius: 8px 8px 0 0;
background: #f6f6f6;
overflow: auto;
animation-duration: 200ms;
animation-fill-mode: forwards;
animation-iteration-count: 1;
}
.dialog-bg.show .content{
animation-name: contentShowAnimation;
}
.dialog-bg.hidden .content{
animation-name: contentHiddenAnimation;
}
.content::-webkit-scrollbar {
display: none;
}
.content .top {
position: sticky;
display: flex;
height: 55px;
display: flex;
align-items: center;
justify-content: space-between;
top: 0;
background: #f6f6f6;
z-index: 2;
}
.content .top .title {
color: #21252b;
font-size: 16px;
font-weight: 600;
padding: 0 12px;
}
.content .top .iconfont {
color: #21252b;
font-size: 16px;
padding: 18px 13px;
}
.content .cell {
padding: 14px 12px 16px;
display: flex;
}
.content .cell .info{
flex: 1;
}
.content .cell .icon-duobianxing {
color: #38bdcd;
font-size: 15px;
padding-top: 3px;
padding-right: 3px;
}
.content .cell .info .title {
color: #27292b;
font-size: 14px;
font-weight: 600;
padding-bottom: 5px;
}
.content .cell .info .subtitle {
color: #21252b;
font-size: 12px;
padding-bottom: 15px;
}
.content .cell .info .share-type-box {
display: flex;
}
.share-type-box .share-type-item {
text-align: center;
padding-right: 60px;
}
.share-type-box .share-type-item img {
width: 52px;
height: 52px;
margin: 0 auto;
padding-bottom: 8px;
}
.share-type-box .share-type-item .share-type-name {
color: #242835;
font-size: 12px;
text-align: center;
}
.record-list {
overflow: auto;
}
.record-item {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
padding: 10px 0;
color: #27292b;
font-size: 12px;
}
.record-item::after {
content: " ";
position: absolute;
left: 0;
width: 100%;
bottom: 0;
height: 1px;
transform: scaleY(0.5);
z-index: 1;
background: #e6e6e6;
}
</style>
<template>
<div class="box">
<div class="page-bg">
<img src="./images/rulebg.png" class="bg-img" mode="widthFix" />
</div>
<div class="content">
<div class="content-cell">
<div class="cell-top">
<div class="iconfont icon-duobianxing"></div>
<div class="title">我的奖品</div>
<div class="iconfont icon-duobianxing"></div>
</div>
<div
class="infinite-list"
v-infinite-scroll="loadData"
:style="{ height: windowHeight - 50 - 20 - 34 - 10 + 'px' }"
v-if="list && list.length"
>
<div class="reward-item-box" v-for="item in list" :key="item">
<div class="reward-item" @click="toRewardDetail(item)">
<div class="reward-img-box">
<img
:src="item.prizeImageUrl"
class="reward-img"
mode="scaleToFit"
/>
</div>
<div class="reward-info">
<div class="reward-name">{{ item.prizeName }}</div>
<div class="reward-condition">{{ item.prizeDesc || "" }}</div>
<div class="reward-time">{{ item.prizeTime | formatDate }}</div>
</div>
</div>
</div>
</div>
<div
class="empty-box"
v-else-if="haveLoad"
:style="{ height: windowHeight - 50 - 20 - 34 - 10 + 'px' }"
>
<img
class="empty-img"
src="./images/mould_01_fail_pic.png"
mode="widthFix"
/>
<div class="title">这里空空如也</div>
<div class="subtitle">
还没有获得任何奖品哦~赶紧拆盲盒赢取好礼吧!
</div>
<div class="play-btn" @click="toPlay">去拆盲盒</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { gameRequestApi } from "@/api/common.js";
const { getMyReward } = gameRequestApi;
import { Manager } from "../../manager";
export default {
components: {},
data() {
return {
list: [],
pageSize: 20,
currentPage: 1,
totalCount: 0,
};
},
created() {
document.title = "我的奖品";
this.manager = new Manager(this);
this.windowHeight = window.innerHeight;
this.reloadData();
},
methods: {
reloadData() {
this.currentPage = 1;
this.totalCount = 0;
this.loadData();
},
async loadData() {
if (this.list.length >= this.totalCount && this.totalCount != 0) {
return;
}
let query = this.$route.query;
let res = await getMyReward({
...query,
currentPage: this.currentPage,
pageSize: this.pageSize,
});
this.haveLoad = true;
this.totalCount = res.totalCount;
let list = this.list || [];
if (this.currentPage == 1) {
list = res.result || [];
} else {
list = list.concat(res.result || []);
}
this.currentPage++;
this.list = list;
},
toRewardDetail(item) {
switch (+item.prizeType) {
case 0:
break;
case 1:
this.manager.toIntegralDetail();
break;
case 2:
this.manager.toCouponList();
break;
case 3:
break;
default:
break;
}
},
toPlay() {
this.$router.replace({
path: "/",
query: this.$route.query,
});
},
},
filters: {
formatDate(value) {
if (!value) return "--";
let date = new Date(value);
return (
date.getFullYear() +
"年" +
(date.getMonth() + 1) +
"月" +
date.getDate() +
"日"
);
},
},
};
</script>
<style scoped>
.box {
position: relative;
}
.page-bg {
position: fixed;
z-index: 0;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #addfcd;
}
.page-bg .bg-img {
width: 100%;
}
.content {
position: relative;
z-index: 1;
}
.content-cell {
border-radius: 8px;
border: 1px solid #06b0b2;
background: white;
margin: 12px 12px 3px;
width: calc(100% - 24px);
box-sizing: border-box;
}
.cell-top {
display: flex;
align-items: center;
justify-content: center;
height: 50px;
background: linear-gradient(
180deg,
#dff7f4 0%,
rgba(223, 247, 244, 0.3) 100%
);
border-radius: 8px 8px 0 0;
}
.cell-top .title {
color: #27292b;
font-size: 17px;
padding: 0 10px;
font-weight: 600;
}
.cell-top .iconfont {
color: #38bdcd;
font-size: 15px;
}
.infinite-list {
overflow: auto;
padding: 10px 13px;
margin-bottom: 1px;
}
.reward-item-box {
padding: 5px 0;
}
.reward-item {
display: flex;
padding: 12px;
background: #f6f6f6;
border-radius: 4px;
}
.reward-item .reward-img-box {
width: 80px;
height: 80px;
background: white;
border-radius: 2px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.reward-item .reward-img-box .reward-img {
width: 66px;
height: 66px;
}
.reward-item .reward-info {
padding-left: 10px;
}
.reward-info .reward-name {
color: #21252b;
font-size: 14px;
font-weight: 600;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.reward-info .reward-condition {
padding: 3px 0 5px;
color: #21252b;
font-weight: 300;
font-size: 12px;
height: 33px;
}
.reward-info .reward-time {
color: #21252b;
font-weight: 300;
font-size: 13px;
}
.empty-box {
text-align: center;
background: white;
}
.empty-box .empty-img {
margin: 0 auto;
padding: 80px 0 20px;
width: 180px;
height: 167px;
}
.empty-box .title {
color: #21252b;
font-size: 16px;
font-weight: 600;
padding: 0 9px;
}
.empty-box .subtitle {
color: #63666b;
font-size: 14px;
max-width: 229px;
margin: 0 auto;
}
.empty-box .play-btn {
margin: 25px auto 0;
width: 180px;
height: 38px;
line-height: 36px;
box-sizing: border-box;
border-radius: 19px;
border: 1px solid #12b4bb;
text-align: center;
color: #12b4bb;
font-size: 14px;
font-weight: 600;
}
</style>
<template> <template>
<div class="box"> <div class="box">
<div class="page-bg"> <div class="page-bg">
<img src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_rulebg.png" class="bg-img" mode="widthFix"> <img src="./images/rulebg.png" class="bg-img" mode="widthFix">
</div> </div>
<div class="content"> <div class="content">
<div class="content-cell" v-if="rule && rule.gameId"> <div class="content-cell" v-if="rule && rule.gameId">
......
<template> <template>
<div class="box"> <div class="box">
<div class="page-bg"> <div class="page-bg" v-if="game && game.gameExt && game.gameExt.bgHelpUrl">
<img <img
src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_rulebg.png" :src="game.gameExt.bgHelpUrl"
class="bg-img" class="bg-img"
mode="widthFix" mode="widthFix"
/> />
</div> </div>
<div class="content"> <div class="content">
<div class="content-top"> <div class="content-top">
<img <img v-if="game && game.gameExt && game.gameExt.bgBannerHelpUrl"
src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_helppage_banner.png" :src="game.gameExt.bgBannerHelpUrl"
class="top-img" class="top-img"
mode="widthFix" mode="widthFix"
/> />
...@@ -21,63 +21,130 @@ ...@@ -21,63 +21,130 @@
</div> </div>
</div> </div>
<div class="content-cell"> <div class="content-cell">
<img src="" class="header-img" /> <div class="header-img-box">
<div class="friend-name">你的好友 凌*</div> <img :src="helpDetail.shareMemberImage" class="header-img" />
</div>
<div class="friend-name">你的好友 {{ helpDetail.shareMemberName }}</div>
<div class="tip-text">正在请求您的助力</div> <div class="tip-text">正在请求您的助力</div>
<div class="handle-btn red" @click="support">为好友助力</div> <div class="handle-btn red" @click="support">为好友助力</div>
<div class="handle-btn blue" @click="playGame">我要参加游戏</div> <div class="handle-btn blue" @click="toPlayGame">我要参加游戏</div>
</div> </div>
<div class="content-cell"> <div class="content-cell" v-if="gameReward && gameReward.length">
<div class="cell-top"> <div class="cell-top">
<div class="iconfont icon-duobianxing"></div> <div class="iconfont icon-duobianxing"></div>
<div class="title">游戏奖品</div> <div class="title">游戏奖品</div>
<div class="iconfont icon-duobianxing"></div> <div class="iconfont icon-duobianxing"></div>
</div> </div>
<div class="reward-box"> <div class="reward-box">
<div class="reward-item-box"> <div class="reward-item-box" v-for="item in gameReward" :key="item">
<div class="reward-item-detail"> <div class="reward-item-detail">
<div class="img-box"> <div class="img-box">
<img <img
src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_coupon1.png" :src="item.prizeImageUrl"
class="reward-img" class="reward-img"
mode="scaleToFit" mode="scaleToFit"
/> />
</div> </div>
<div class="reward-name">100元无门槛券</div> <div class="reward-name">{{ item.prizeName }}</div>
<div class="reward-des">线下门店消费满500使用</div> <div class="reward-des">{{ item.prizeDesc }}</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
></share-img-dialog>
<alert-dialog v-bind.sync="alertOptions"></alert-dialog>
</div> </div>
</template> </template>
<script> <script>
import { gameRequestApi } from "@/api/common.js";
const {
getHelpDetail,
getGameReward,
getGameInfo,
getGameShareQrCodeUrl,
} = gameRequestApi;
import AlertDialog from "./components/alert.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import { Manager } from "../../manager";
export default { export default {
components: {}, components: {
ShareImgDialog,
AlertDialog
},
data() { data() {
return {}; return {
alertOptions:{},
showShareImgDialog: false,
game:{},
helpDetail: {},
gameReward: []
};
}, },
created() { created() {
document.title = "游戏助力"; document.title = "游戏助力";
this.manager = new Manager(this);
this.loadData(); this.loadData();
}, },
methods: { methods: {
loadData() { async loadData() {
console.log(this.$route.query); console.log(this.$route.query);
let query = this.$route.query;
this.helpDetail = await getHelpDetail({
enterpriseId: query.enterpriseId,
shareMemberId: query.shareMemberId,
gameId: query.gameId,
helpMemberId: query.memberId || '',
});
this.gameReward = await getGameReward({
enterpriseId: query.enterpriseId,
gameId: query.gameId,
})
this.game = await getGameInfo({
enterpriseId: query.enterpriseId,
gameId: query.gameId,
})
}, },
playGame() { toPlayGame() {
let query = this.$route.query;
this.$router.replace({ this.$router.replace({
path: "/cmh/", path: "/cmh/1",
query: { query: {
gameId: "1121213", gameId: query.gameId,
memberId: query.memberId || '',
enterpriseId: query.enterpriseId,
isAttest: query.isAttest,
}, },
}); });
}, },
support(){ support(){
this.manager.support();
},
async sharePyq(options) {
let query = this.$route.query;
let result = await getGameShareQrCodeUrl({
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId || '',
shareType: options.type == 12 ? 2 : 1,
});
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareImgDialog = true;
}, },
}, },
}; };
...@@ -162,11 +229,13 @@ export default { ...@@ -162,11 +229,13 @@ export default {
} }
/* 好友助力 */ /* 好友助力 */
.header-img-box{
padding: 40px 0 14px;
}
.header-img { .header-img {
width: 60px; width: 60px;
height: 60px; height: 60px;
border-radius: 50%; border-radius: 50%;
padding: 40px 0 14px;
margin: 0 auto; margin: 0 auto;
overflow: hidden; overflow: hidden;
} }
......
<template>
<div class="dialog-bg" v-if="show && (title || content || (buttonList && buttonList.length))">
<div class="content">
<div class="content-detail-bg">
<div class="content-detail">
<div class="title" v-if="title">{{ title }}</div>
<div class="subtitle" v-if="content">{{ content }}</div>
<div class="handle-btn-box" v-if="buttonList && buttonList.length">
<div
class="handle-btn"
v-for="item in buttonList"
:key="item"
@click="item.click()"
>
{{ item.text }}
</div>
</div>
</div>
</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
show: Boolean,
title:{
type: String,
default: "提示"
},
content:{
type: String,
default: "提示内容"
},
buttonList:{
type: Object,
default(){
return [
{
text: "btn1",
click: function () {
console.log("click1");
},
},
{
text: "btn1",
click: function () {
console.log("click2");
},
},
]
}
},
cancel:{
type: Function,
default(){
console.log("cancel");
}
},
},
data() {
return {};
},
methods: {
close() {
this.$emit("update:show", false);
this.options.cancel();
},
},
};
</script>
<style scoped lang="scss">
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg .content {
position: absolute;
z-index: 2;
left: 50%;
top: 45%;
transform: translate(-50%, -50%);
text-align: center;
width: 75%;
.content-detail-bg {
background: #FDFCEE;
box-sizing: border-box;
border-radius: 10px;
box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.5);
padding: 8px 10px;
.content-detail {
border: 2px solid #C9C6AD;
border-radius: 10px;
text-align: center;
padding: 10px 13px;
// box-sizing: border-box;
.title {
color: #21252B;
font-weight: 600;
font-size: 20px;
padding-top: 15px;
}
.subtitle {
color: #21252B;
font-size: 15px;
padding: 20px 0 30px;
}
.handle-btn-box {
display: flex;
padding-bottom: 15px;
justify-content: center;
.handle-btn {
box-sizing: border-box;
height: 40px;
line-height: 40px;
text-align: center;
color: white;
font-size: 16px;
font-weight: 600;
border-radius: 20px;
background: #000000;
box-shadow: inset 0px 3px 3px 0px rgba(255, 255, 255, 0.8);
flex: 1;
max-width: 165px;
margin-right: 15px;
&:last-child {
margin-right: 0px;
}
}
}
}
}
}
.dialog-bg .content .icon-guanbi {
margin: 40px auto 0;
color: rgba(255, 255, 255, 0.8);
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template>
<div class="dialog-bg" v-if="show">
<img src="../images/mould_01_box_bg.png" class="dialog-bg-img">
<div class="content">
<div class="title">{{ title }}</div>
<img :src="data.imageSelectUrl" class="box-img" mode="widthFix">
<div class="handle-btn" @click="open">立即拆开</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
title: String,
data: Object,
show: Boolean
},
data() {
return {};
},
methods: {
open(){
this.$emit('open');
},
close(){
this.$emit('update:show', false);
},
},
};
</script>
<style scoped>
.dialog-bg{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg-img{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.dialog-bg .content{
position: absolute;
z-index: 2;
left: 50%;
top: 45%;
transform: translate(-50%,-50%);
text-align: center;
width: 82%;
}
.dialog-bg .content .title{
color: white;
font-size: 16px;
font-weight: 500;
}
.dialog-bg .content .box-img{
width: 100%;
margin: 0 auto;
height: 320px;
}
.dialog-bg .content .handle-btn{
margin: -12px auto 0;
width: 180px;
height: 40px;
border-radius: 20px;
background: #FFFAB0;
text-align: center;
line-height: 40px;
color: black;
font-size: 20px;
font-weight: 500;
box-shadow: inset 0px 3px 3px 0px rgba(255, 255, 255, 0.8);
font-family: PingFangSC-Medium, PingFang SC;
}
.dialog-bg .content .icon-guanbi{
margin: 40px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template>
<div class="dialog-bg" v-if="show">
<img
src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_box_bg.png"
class="dialog-bg-img"
/>
<div class="content">
<div class="title">恭喜获得</div>
<div class="subtitle">{{ reward.prizeName }}</div>
<div class="reward-box">
<img :src="reward.prizeImageUrl" class="reward-img"/>
<div class="reward-log-text">
<span>奖品已放置</span>
<span class="color-text">【我的奖品】</span>
</div>
</div>
<div class="handle-btn" @click="close">收下</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
reward: Object,
show: Boolean,
},
data() {
return {};
},
methods: {
close() {
this.$emit("update:show", false);
},
},
};
</script>
<style scoped>
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg-img {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.dialog-bg .content {
position: absolute;
z-index: 2;
left: 50%;
top: 49%;
transform: translate(-50%, -50%);
text-align: center;
}
.dialog-bg .content .title {
color: white;
font-size: 24px;
font-weight: 500;
}
.dialog-bg .content .subtitle {
color: white;
font-size: 16px;
font-weight: 500;
}
.dialog-bg .content .reward-box{
width: 218px;
border-radius: 5px;
background: linear-gradient(90deg, #E8FFFD 0%, #FAFFE7 100%);
text-align: center;
margin-top: 38px;
}
.dialog-bg .content .reward-img{
margin: 0 auto;
padding: 29px 0 0;
width: 150px;
height: 150px;
}
.dialog-bg .content .reward-log-text{
padding: 11px 0 14px;
font-size: 12px;
color: #27292B;
}
.dialog-bg .content .reward-log-text .color-text{
color: black;
}
.dialog-bg .content .handle-btn {
margin: 42px auto 0;
width: 180px;
height: 40px;
border-radius: 20px;
background: #FFFAB0;
text-align: center;
line-height: 40px;
color: black;
font-size: 20px;
font-weight: 500;
box-shadow: inset 0px 3px 3px 0px rgba(255, 255, 255, 0.8);
font-family: PingFangSC-Medium, PingFang SC;
}
.dialog-bg .content .icon-guanbi {
margin: 40px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template>
<div class="dialog-bg" v-if="show">
<div class="content">
<div class="title">差一点就中奖了</div>
<div class="subtitle">一定是姿势不对,换个姿势试试</div>
<img src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_fail_pic.png" class="box-img" mode="widthFix">
<div class="handle-btn" @click="again">再抽一个</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
show: Boolean
},
data() {
return {};
},
methods: {
again(){
this.$emit('again');
this.close();
},
close(){
this.$emit('update:show', false);
},
},
};
</script>
<style scoped>
.dialog-bg{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg .content{
position: absolute;
z-index: 2;
left: 50%;
top: 49%;
transform: translate(-50%,-50%);
text-align: center;
min-width: 224px;
}
.dialog-bg .content .title {
color: white;
font-size: 24px;
font-weight: 500;
}
.dialog-bg .content .subtitle {
color: white;
font-size: 16px;
font-weight: 500;
}
.dialog-bg .content .box-img{
width: 180px;
margin: 50px auto 0;
}
.dialog-bg .content .handle-btn{
margin: 70px auto 0;
width: 180px;
height: 40px;
border-radius: 20px;
background: #FFFAB0;
text-align: center;
line-height: 40px;
color: black;
font-size: 20px;
font-weight: 500;
box-shadow: inset 0px 3px 3px 0px rgba(255, 255, 255, 0.8);
font-family: PingFangSC-Medium, PingFang SC;
}
.dialog-bg .content .icon-guanbi{
margin: 40px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template>
<div class="dialog-bg" v-if="show && bgImage && qrcodeUrl">
<canvas id="canvas" class="img-canvas" width="560" height="996"></canvas>
<div class="content">
<img class="box-img" mode="widthFix" id="shareImage" />
<div class="tips">长按保存至相册,打开朋友圈选取海报转发</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
bgImage: String,
qrcodeUrl: String,
show: Boolean,
},
data() {
return {
};
},
created() {},
methods: {
drawImage() {
let _w = 560,
_h = 996;
var canvas = document.createElement("canvas");
canvas.width = _w;
canvas.height = _h;
var context = canvas.getContext("2d");
context.rect(0, 0, canvas.width, canvas.height);
context.fillStyle = "#fff";
context.fill();
var myImage = new Image();
myImage.width = _w;
myImage.height = _h;
myImage.crossOrigin = "Anonymous";
myImage.src = this.bgImage; //背景图片 你自己本地的图片或者在线图片
myImage.onload = () => {
context.drawImage(myImage, 0, 0, _w, _h);
var myImage2 = new Image();
myImage2.src = this.qrcodeUrl; //你自己本地的图片或者在线图片
myImage2.width = 120;
myImage2.height = 120;
myImage2.crossOrigin = "Anonymous";
myImage2.onload = function () {
context.drawImage(myImage2, 400, 824, 120, 120);
var base64 = canvas.toDataURL("image/png"); //"image/png" 这里注意一下
var img = document.getElementById("shareImage");
img.src = base64;
};
};
},
again() {
this.$emit("again");
this.close();
},
close() {
this.$emit("update:show", false);
},
},
watch: {
show(n) {
if (n) {
this.drawImage();
}
},
},
};
</script>
<style scoped>
.img-canvas {
position: fixed;
left: 100%;
top: 0;
width: 560px;
height: 996px;
}
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg .content {
position: absolute;
z-index: 2;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
text-align: center;
width: 60%;
}
.dialog-bg .content .tips {
color: white;
font-size: 14px;
margin-top: 20px;
}
.dialog-bg .content .box-img {
width: 100%;
}
.dialog-bg .content .icon-guanbi {
margin: 20px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template> <template>
<div class="dialog-bg" :class="show ? 'show' : 'hidden'" @click="close"> <div class="dialog-bg" :class="show ? 'show' : 'hidden'" @click="close">
<div class="content" v-infinite-scroll="load" @click.stop="tap"> <div class="content" @click.stop="tap">
<div class="top"> <div class="top">
<div class="title">邀请好友助力</div> <div class="title">邀请好友助力</div>
<div class="iconfont icon-guanbi" @click="close"></div> <div class="iconfont icon-guanbi" @click="close"></div>
...@@ -10,28 +10,28 @@ ...@@ -10,28 +10,28 @@
<div class="info"> <div class="info">
<div class="title">分享至微信/朋友圈</div> <div class="title">分享至微信/朋友圈</div>
<div class="subtitle"> <div class="subtitle">
每邀请2位好友助力增加1次,被邀请用户进入分享页会员注册完成助力。 每邀请{{ shareConditionObj.inviteNum }}位好友助力增加{{ shareConditionObj.value }}次,被邀请用户进入分享页{{ shareConditionObj.type == 11 ? '会员注册' : '关注服务号' }}完成助力。
</div> </div>
<div class="share-type-box"> <div class="share-type-box">
<div class="share-type-item"> <div class="share-type-item" @click="shareWx">
<img src="" /> <img src="../images/wx_icon.png" mode="aspectFit"/>
<div class="share-type-name">微信</div> <div class="share-type-name">微信</div>
</div> </div>
<div class="share-type-item"> <div class="share-type-item" @click="sharePyq">
<img src="" /> <img src="../images/pyq_icon.png" mode="aspectFit"/>
<div class="share-type-name">朋友圈</div> <div class="share-type-name">朋友圈</div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="cell"> <div class="cell" v-if="list && list.length" v-infinite-scroll="loadData">
<div class="iconfont icon-duobianxing"></div> <div class="iconfont icon-duobianxing"></div>
<div class="info"> <div class="info">
<div class="title">助力成功记录</div> <div class="title">助力成功记录</div>
<div class="record-list"> <div class="record-list">
<div class="record-item" v-for="item in count" :key="item"> <div class="record-item" v-for="item in list" :key="item">
<div class="time">2022-05-07</div> <div class="time">{{ item.createTime | formatDate }}</div>
<div class="text">凌* 助力成功</div> <div class="text">{{ item.helpMemberName || item.helpMemberNick }} 助力成功</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -41,16 +41,65 @@ ...@@ -41,16 +41,65 @@
</template> </template>
<script> <script>
import { gameRequestApi } from "@/api/common.js";
const {
getReportRecord,
} = gameRequestApi;
export default { export default {
props: { props: {
memberId: String,
enterpriseId: String,
gameId: String,
show: Boolean, show: Boolean,
shareConditionObj: {
type: Object,
default:()=> {
return {};
},
},
}, },
data() { data() {
return { return {
conditionObj: {},
count: 100, count: 100,
pageSize: 20,
currentPage: 1,
list: [],
}; };
}, },
created(){
this.loadData();
},
methods: { methods: {
reloadData(){
this.currentPage = 1;
this.totalCount = 0;
this.loadData();
this.getGameRule();
},
async loadData(){
if(this.list.length >= this.totalCount && this.totalCount != 0){
return;
}
let res = await getReportRecord({
memberId: this.memberId || '',
enterpriseId: this.enterpriseId || '',
gameId: this.gameId || '',
currentPage: this.currentPage,
pageSize: this.pageSize
})
this.totalCount = res.totalCount;
let list = this.list || [];
if(this.currentPage == 1){
list = res.result||[];
}else{
list = list.concat(res.result||[])
}
this.currentPage ++;
this.list = list;
},
again() { again() {
this.$emit("again"); this.$emit("again");
this.close(); this.close();
...@@ -62,7 +111,19 @@ export default { ...@@ -62,7 +111,19 @@ export default {
}, 200); }, 200);
}, },
tap() {}, tap() {},
load() {}, shareWx(){
this.$emit("shareWx",this.conditionObj);
},
sharePyq(){
this.$emit("sharePyq",this.conditionObj);
}
},
filters:{
formatDate(value){
if (!value) return '--';
let date = new Date(value);
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
}
}, },
}; };
</script> </script>
...@@ -182,6 +243,9 @@ export default { ...@@ -182,6 +243,9 @@ export default {
padding: 14px 12px 16px; padding: 14px 12px 16px;
display: flex; display: flex;
} }
.content .cell .info{
flex: 1;
}
.content .cell .icon-duobianxing { .content .cell .icon-duobianxing {
color: #38bdcd; color: #38bdcd;
font-size: 15px; font-size: 15px;
......
<template>
<div class="box">
<div class="page-bg">
<img
src="./images/rulebg.png"
class="bg-img"
mode="widthFix"
/>
</div>
<div class="content">
<div class="content-cell">
<div class="cell-top">
<div class="iconfont icon-duobianxing"></div>
<div class="title">我的奖品</div>
<div class="iconfont icon-duobianxing"></div>
</div>
<div
class="infinite-list"
v-infinite-scroll="loadData" :style="{height:(windowHeight - 50 - 20 - 34 - 10)+'px'}" v-if="list && list.length">
<div class="reward-item-box" v-for="item in list" :key="item">
<div class="reward-item" @click="toRewardDetail(item)">
<div class="reward-img-box">
<img :src="item.prizeImageUrl" class="reward-img" mode="scaleToFit"/>
</div>
<div class="reward-info">
<div class="reward-name">{{ item.prizeName }}</div>
<div class="reward-condition">{{ item.prizeDesc || '' }}</div>
<div class="reward-time">{{ item.prizeTime | formatDate }}</div>
</div>
</div>
</div>
</div>
<div class="empty-box" v-else-if="haveLoad" :style="{height:(windowHeight - 50 - 20 - 34 - 10)+'px'}">
<img class="empty-img" src="./images/mould_01_fail_pic.png" mode="widthFix">
<div class="title">这里空空如也</div>
<div class="subtitle">还没有获得任何奖品哦~赶紧拆盲盒赢取好礼吧!</div>
<div class="play-btn" @click="toPlay">去拆盲盒</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { gameRequestApi } from "@/api/common.js";
const { getMyReward } = gameRequestApi;
import { Manager } from "../../manager";
export default {
components: {},
data() {
return {
list:[],
pageSize: 20,
currentPage: 1,
totalCount: 0,
};
},
created() {
document.title = "我的奖品";
this.manager = new Manager(this);
this.windowHeight = window.innerHeight;
this.reloadData();
},
methods: {
reloadData(){
this.currentPage = 1;
this.totalCount = 0;
this.loadData();
},
async loadData() {
if(this.list.length >= this.totalCount && this.totalCount != 0){
return;
}
let query = this.$route.query;
let res = await getMyReward({
...query,
currentPage: this.currentPage,
pageSize: this.pageSize
})
this.haveLoad = true;
this.totalCount = res.totalCount;
let list = this.list || [];
if(this.currentPage == 1){
list = res.result||[];
}else{
list = list.concat(res.result||[])
}
this.currentPage ++;
this.list = list;
},
toRewardDetail(item) {
switch (+item.prizeType) {
case 0:
break;
case 1:
this.manager.toIntegralDetail();
break;
case 2:
this.manager.toCouponList();
break;
case 3:
break;
default:
break;
}
},
toPlay(){
this.$router.replace({
path: "/",
query: this.$route.query,
});
},
},
filters:{
formatDate(value){
if (!value) return '--';
let date = new Date(value);
return date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日"
}
}
};
</script>
<style scoped>
.box {
position: relative;
}
.page-bg {
position: fixed;
z-index: 0;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #addfcd;
}
.page-bg .bg-img {
width: 100%;
}
.content {
position: relative;
z-index: 1;
}
.content-cell {
border-radius: 8px;
border: 1px solid #21252B;
background: white;
margin: 12px 12px 3px;
width: calc(100% - 24px);
box-sizing: border-box;
}
.cell-top {
display: flex;
align-items: center;
justify-content: center;
height: 50px;
background: linear-gradient(
180deg,
#E8FCCF 0%,
rgba(238, 247, 225, 0.3) 100%
);
border-radius: 8px 8px 0 0;
}
.cell-top .title {
color: #27292b;
font-size: 17px;
padding: 0 10px;
font-weight: 600;
}
.cell-top .iconfont {
color: #21252B;
font-size: 15px;
}
.infinite-list {
overflow: auto;
padding: 10px 13px;
margin-bottom: 1px;
}
.reward-item-box{
padding: 5px 0;
}
.reward-item{
display: flex;
padding: 12px;
background: #F6F6F6;
border-radius: 4px;
}
.reward-item .reward-img-box{
width: 80px;
height: 80px;
background: white;
border-radius: 2px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
}
.reward-item .reward-img-box .reward-img{
width: 66px;
height: 66px;
}
.reward-item .reward-info{
padding-left: 10px;
}
.reward-info .reward-name{
color: #21252B;
font-size: 14px;
font-weight: 600;
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
}
.reward-info .reward-condition{
padding: 3px 0 5px;
color: #21252B;
font-weight: 300;
font-size: 12px;
height: 33px;
}
.reward-info .reward-time{
color: #21252B;
font-weight: 300;
font-size: 13px;
}
.empty-box{
text-align: center;
background: white;
}
.empty-box .empty-img{
margin: 0 auto;
padding: 80px 0 20px;
width: 180px;
height: 167px;
}
.empty-box .title{
color: #21252B;
font-size: 16px;
font-weight: 600;
padding: 0 9px;
}
.empty-box .subtitle{
color: #63666B;
font-size: 14px;
max-width: 229px;
margin: 0 auto;
}
.empty-box .play-btn{
margin: 25px auto 0;
width: 180px;
height: 38px;
line-height: 36px;
box-sizing: border-box;
border-radius: 19px;
text-align: center;
background: #000000;
color: white;
font-size: 14px;
font-weight: 600;
}
</style>
<template>
<div class="box">
<div class="page-bg">
<img src="./images/rulebg.png" class="bg-img" mode="widthFix">
</div>
<div class="content">
<div class="content-cell" v-if="rule && rule.gameId">
<div class="cell-top">
<div class="iconfont icon-duobianxing"></div>
<div class="title">游戏规则</div>
<div class="iconfont icon-duobianxing"></div>
</div>
<div class="rule-box">
<div class="rule-item">
<div class="title">游戏时间</div>
<div class="value">{{ rule.startDate | formatDate }}-{{ rule.endDate | formatDate }}</div>
</div>
<div class="rule-item" v-if="rule.playConditionFlag">
<div class="title">参与门槛</div>
<div class="value point" v-for="item in rule.gameRuleConditionList" :key="item">
<div v-if="item.conditionObj.type == 21">每天增加 {{ item.conditionObj.value }} 次免费游戏机会</div>
<div v-else-if="item.conditionObj.type == 22">赠送 {{ item.conditionObj.value }} 次免费游戏机会</div>
<div v-else-if="item.conditionObj.type == 1">每参加 1 次游戏消耗 {{ item.conditionObj.value }} 积分</div>
<div v-else-if="item.conditionObj.type == 11">每邀请 {{ item.conditionObj.inviteNum }} 位用户认证,增加 {{ item.conditionObj.value }} 次游戏机会</div>
<div v-else-if="item.conditionObj.type == 12">每邀请 {{ item.conditionObj.inviteNum }} 位用户关注服务号,增加 {{ item.conditionObj.value }} 次游戏机会</div>
</div>
</div>
<div class="rule-item" v-if="rule.playTimes">
<div class="title">游戏参与次数</div>
<div class="value">每人{{ rule.playTimes }}</div>
</div>
<div class="rule-item">
<div class="title">适用人群</div>
<div class="value">{{ rule.memberDesc }}</div>
</div>
<div class="rule-item">
<div class="title">游戏说明</div>
<div class="value point" v-html="rule.gameRule"></div>
</div>
</div>
</div>
<div class="content-cell" v-if="rewardList && rewardList.length">
<div class="cell-top">
<div class="iconfont icon-duobianxing"></div>
<div class="title">游戏奖品</div>
<div class="iconfont icon-duobianxing"></div>
</div>
<div class="reward-box">
<div class="reward-item-box" v-for="item in rewardList" :key="item">
<div class="reward-item-detail">
<div class="img-box">
<img :src="item.prizeImageUrl" class="reward-img" mode="scaleToFit">
</div>
<div class="reward-name">{{ item.prizeName }}</div>
<div class="reward-des">{{ item.prizeDesc }}</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { gameRequestApi } from "@/api/common.js";
const {
getGameRule,
getGameReward,
} = gameRequestApi;
export default {
components:{},
data(){
return {
rule:{},
rewardList:[],
}
},
created(){
document.title = "游戏规则"
this.loadData();
},
methods:{
loadData(){
this.getGameRule();
this.getGameReward();
},
async getGameRule(){
let rule = await getGameRule({
...this.$route.query
})
rule.gameRuleConditionList && rule.gameRuleConditionList.map((item)=>{
item.conditionObj = JSON.parse(item.conditionJson);
})
this.rule = rule;
},
async getGameReward(){
let rewardList = await getGameReward({
...this.$route.query
})
this.rewardList = rewardList;
},
},
filters:{
formatDate(value){
if (!value) return '--';
let date = new Date(value);
return date.getFullYear() + "年" + (date.getMonth() + 1) + "月" + date.getDate() + "日"
}
}
}
</script>
<style scoped>
.box{
position: relative;
}
.page-bg{
position: fixed;
z-index: 0;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #ADDFCD;
}
.page-bg .bg-img{
width: 100%;
}
.content{
position: relative;
z-index: 1;
}
.content-cell{
border-radius: 8px;
border: 1px solid #21252B;
background: white;
margin: 12px 12px 3px;
width: calc(100% - 24px);
box-sizing: border-box;
}
.cell-top{
display: flex;
align-items: center;
justify-content: center;
height: 50px;
background: linear-gradient(180deg, #E8FCCF 0%, rgba(238, 247, 225, 0.3) 100%);
border-radius: 8px 8px 0 0;
}
.cell-top .title{
color: #27292B;
font-size: 17px;
padding: 0 10px;
font-weight: 600;
}
.cell-top .iconfont{
color: #21252B;
font-size: 15px;
}
.reward-box{
padding: 15px 0 6px;
display: flex;
flex-wrap: wrap;
}
.reward-item-box{
width: calc(50% - 19px);
padding: 0 6px 12px;
}
.reward-item-box:nth-child(2n + 1){
padding-left: 13px;
}
.reward-item-box:nth-child(2n + 2){
padding-right: 13px;
}
.reward-item-detail{
background: #F6F6F6;
border-radius: 4px;
padding: 6px;
}
.reward-item-detail .img-box{
padding-top: 100%;
position: relative;
background: white;
}
.reward-item-detail .img-box .reward-img{
position: absolute;
z-index: 1;
left: 50%;
top: 50%;
transform: translate(-50%,-50%);
width: calc(100% - 20px);
height: calc(100% - 20px);
}
.reward-item-detail .reward-name{
color: #21252B;
font-size: 14px;
font-weight: 500;
padding: 11px 0 0;
}
.reward-item-detail .reward-des{
color: #21252B;
font-size: 11px;
font-weight: 300;
padding: 4px 0 7px;
}
.rule-box{
}
.rule-item{
padding: 15px 13px 0;
}
.rule-item:last-child{
padding-bottom: 16px;
}
.rule-item .title{
color: #21252B;
font-size: 14px;
font-weight: 600;
}
.rule-item .value{
color: #21252B;
font-size: 13px;
margin-top: 8px;
}
.rule-item .value.point{
padding-left: 10px;
position: relative;
}
.rule-item .value.point::before{
content: " ";
position: absolute;
width: 4px;
height: 4px;
border-radius: 50%;
background: #38BDCD;
top: 7px;
left: 0;
z-index: 1;
}
</style>
\ No newline at end of file
<template>
<div class="box">
<div class="page-bg" v-if="game && game.gameExt && game.gameExt.bgHelpUrl">
<img
:src="game.gameExt.bgHelpUrl"
class="bg-img"
mode="widthFix"
/>
</div>
<div class="content">
<div class="content-top">
<img v-if="game && game.gameExt && game.gameExt.bgBannerHelpUrl"
:src="game.gameExt.bgBannerHelpUrl"
class="top-img"
mode="widthFix"
/>
<div class="top-tip-box">
<div class="line left"></div>
<div class="title">助力好友你也可以参加</div>
<div class="line right"></div>
</div>
</div>
<div class="content-cell">
<div class="header-img-box">
<img :src="helpDetail.shareMemberImage" class="header-img" />
</div>
<div class="friend-name">你的好友 {{ helpDetail.shareMemberName }}</div>
<div class="tip-text">正在请求您的助力</div>
<div class="handle-btn red" @click="support">为好友助力</div>
<div class="handle-btn blue" @click="toPlayGame">我要参加游戏</div>
</div>
<div class="content-cell" v-if="gameReward && gameReward.length">
<div class="cell-top">
<div class="iconfont icon-duobianxing"></div>
<div class="title">游戏奖品</div>
<div class="iconfont icon-duobianxing"></div>
</div>
<div class="reward-box">
<div class="reward-item-box" v-for="item in gameReward" :key="item">
<div class="reward-item-detail">
<div class="img-box">
<img
:src="item.prizeImageUrl"
class="reward-img"
mode="scaleToFit"
/>
</div>
<div class="reward-name">{{ item.prizeName }}</div>
<div class="reward-des">{{ item.prizeDesc }}</div>
</div>
</div>
</div>
</div>
</div>
<share-img-dialog
:show.sync="showShareImgDialog"
v-bind="pyqOptions"
></share-img-dialog>
<alert-dialog v-bind.sync="alertOptions"></alert-dialog>
</div>
</template>
<script>
import { gameRequestApi } from "@/api/common.js";
const {
getHelpDetail,
getGameReward,
getGameInfo,
getGameShareQrCodeUrl,
} = gameRequestApi;
import AlertDialog from "./components/alert.vue";
import ShareImgDialog from "./components/share-img-dialog.vue";
import { Manager } from "../../manager";
export default {
components: {
ShareImgDialog,
AlertDialog
},
data() {
return {
alertOptions:{},
showShareImgDialog: false,
game:{},
helpDetail: {},
gameReward: []
};
},
created() {
document.title = "游戏助力";
this.manager = new Manager(this);
this.loadData();
},
methods: {
async loadData() {
console.log(this.$route.query);
let query = this.$route.query;
this.helpDetail = await getHelpDetail({
enterpriseId: query.enterpriseId,
shareMemberId: query.shareMemberId,
gameId: query.gameId,
helpMemberId: query.memberId || '',
});
this.gameReward = await getGameReward({
enterpriseId: query.enterpriseId,
gameId: query.gameId,
})
this.game = await getGameInfo({
enterpriseId: query.enterpriseId,
gameId: query.gameId,
})
},
toPlayGame() {
let query = this.$route.query;
this.$router.replace({
path: "/cmh/2",
query: {
gameId: query.gameId,
memberId: query.memberId || '',
enterpriseId: query.enterpriseId,
isAttest: query.isAttest,
},
});
},
support(){
this.manager.support();
},
async sharePyq(options) {
let query = this.$route.query;
let result = await getGameShareQrCodeUrl({
gameId: query.gameId,
enterpriseId: query.enterpriseId,
memberId: query.shareMemberId || '',
shareType: options.type == 12 ? 2 : 1,
});
this.pyqOptions = {
bgImage: options.shareReport,
qrcodeUrl: result.qrCodeUrl,
};
this.showShareImgDialog = true;
},
},
};
</script>
<style scoped>
.box {
position: relative;
}
.page-bg {
position: fixed;
z-index: 0;
left: 0;
top: 0;
width: 100%;
height: 100%;
background: #addfcd;
}
.page-bg .bg-img {
width: 100%;
}
.content {
position: relative;
z-index: 1;
}
/* 顶部 */
.content-top {
text-align: center;
}
.content-top .top-img {
width: 78%;
margin: 0 auto;
padding: 19px 0 10px;
}
.content-top .top-tip-box {
display: flex;
margin: 0 auto;
width: 206px;
height: 33px;
box-sizing: border-box;
border: 1px solid #ffffff;
color: rgba(255, 255, 255, 0.3);
align-items: center;
border-radius: 12px;
}
.content-top .top-tip-box .line {
width: 11px;
height: 2px;
border-radius: 1px;
margin: 0 7px;
}
.content-top .top-tip-box .line.left {
background: linear-gradient(270deg, #38bdcd 0%, rgba(56, 189, 205, 0) 100%);
margin-right: 9px;
}
.content-top .top-tip-box .line.right {
background: linear-gradient(270deg, rgba(56, 189, 205, 0) 0%, #38bdcd 100%);
margin-left: 9px;
}
.content-top .top-tip-box .title {
color: #21252b;
font-size: 15px;
}
/* 顶部 end */
.content-cell {
border-radius: 8px;
border: 1px solid #06b0b2;
background: white;
margin: 12px 12px 3px;
width: calc(100% - 24px);
box-sizing: border-box;
text-align: center;
}
/* 好友助力 */
.header-img-box{
padding: 40px 0 14px;
}
.header-img {
width: 60px;
height: 60px;
border-radius: 50%;
margin: 0 auto;
overflow: hidden;
}
.friend-name {
color: #21252b;
font-size: 16px;
font-weight: 600;
}
.tip-text {
color: #21252b;
font-size: 16px;
padding-bottom: 22px;
}
.handle-btn {
width: 75%;
height: 48px;
line-height: 48px;
border-radius: 24px;
text-align: center;
box-shadow: inset 0px 3px 3px 0px rgba(255, 255, 255, 0.8);
color: white;
font-size: 16px;
font-weight: 600;
margin: 0 auto 19px;
}
.handle-btn:last-child {
margin-bottom: 23px;
}
.handle-btn.red {
background: #fd452d;
}
.handle-btn.blue {
background: #12b4bb;
}
/* 好友助力 end */
/* 游戏奖品 */
.cell-top {
display: flex;
align-items: center;
justify-content: center;
height: 50px;
background: linear-gradient(
180deg,
#dff7f4 0%,
rgba(223, 247, 244, 0.3) 100%
);
border-radius: 8px 8px 0 0;
}
.cell-top .title {
color: #27292b;
font-size: 17px;
padding: 0 10px;
font-weight: 600;
}
.cell-top .iconfont {
color: #38bdcd;
font-size: 15px;
}
.reward-box {
padding: 15px 0 6px;
display: flex;
flex-wrap: wrap;
}
.reward-item-box {
width: calc(50% - 19px);
padding: 0 6px 12px;
text-align: left;
}
.reward-item-box:nth-child(2n + 1) {
padding-left: 13px;
}
.reward-item-box:nth-child(2n + 2) {
padding-right: 13px;
}
.reward-item-detail {
background: #f6f6f6;
border-radius: 4px;
padding: 6px;
}
.reward-item-detail .img-box {
padding-top: 100%;
position: relative;
background: white;
}
.reward-item-detail .img-box .reward-img {
position: absolute;
z-index: 1;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
width: calc(100% - 20px);
height: calc(100% - 20px);
}
.reward-item-detail .reward-name {
color: #21252b;
font-size: 14px;
font-weight: 500;
padding: 11px 0 0;
}
.reward-item-detail .reward-des {
color: #21252b;
font-size: 11px;
font-weight: 300;
padding: 4px 0 7px;
}
/* 游戏奖品 end */
</style>
<template>
<div class="dialog-bg" v-if="show && (title || content || (buttonList && buttonList.length))">
<div class="content">
<div class="content-detail-bg">
<div class="content-detail">
<div class="title" v-if="title">{{ title }}</div>
<div class="subtitle" v-if="content">{{ content }}</div>
<div class="handle-btn-box" v-if="buttonList && buttonList.length">
<div
class="handle-btn"
v-for="item in buttonList"
:key="item"
@click="item.click()"
>
{{ item.text }}
</div>
</div>
</div>
</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
show: Boolean,
title:{
type: String,
default: "提示"
},
content:{
type: String,
default: "提示内容"
},
buttonList:{
type: Object,
default(){
return [
{
text: "btn1",
click: function () {
console.log("click1");
},
},
{
text: "btn1",
click: function () {
console.log("click2");
},
},
]
}
},
cancel:{
type: Function,
default(){
console.log("cancel");
}
},
},
data() {
return {};
},
methods: {
close() {
this.$emit("update:show", false);
this.options.cancel();
},
},
};
</script>
<style scoped lang="scss">
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg .content {
position: absolute;
z-index: 2;
left: 50%;
top: 45%;
transform: translate(-50%, -50%);
text-align: center;
width: 75%;
.content-detail-bg {
background: #D9FCF5;
box-sizing: border-box;
border-radius: 10px;
box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.5);
padding: 8px 10px;
.content-detail {
border-radius: 10px;
text-align: center;
padding: 10px 13px;
border: 2px solid #ADC9C5;
.title {
color: #21252B;
font-weight: 600;
font-size: 20px;
padding-top: 15px;
}
.subtitle {
color: #21252B;
font-size: 15px;
padding: 20px 0 30px;
}
.handle-btn-box {
display: flex;
padding-bottom: 15px;
justify-content: center;
.handle-btn {
box-sizing: border-box;
height: 40px;
line-height: 40px;
text-align: center;
color: white;
font-size: 16px;
font-weight: 600;
border-radius: 20px;
background: #000000;
box-shadow: inset 0px 1px 1px 0px rgba(255, 255, 255, 0.8);
flex: 1;
max-width: 165px;
margin-right: 15px;
&:last-child {
margin-right: 0px;
}
}
}
}
}
}
.dialog-bg .content .icon-guanbi {
margin: 40px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template>
<div class="dialog-bg" v-if="show">
<img src="../images/mould_01_box_bg.png" class="dialog-bg-img">
<div class="content">
<div class="title">{{ title }}</div>
<img :src="data.imageSelectUrl" class="box-img" mode="widthFix">
<div class="handle-btn" @click="open">立即拆开</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
title: String,
data: Object,
show: Boolean
},
data() {
return {};
},
methods: {
open(){
this.$emit('open');
},
close(){
this.$emit('update:show', false);
},
},
};
</script>
<style scoped>
.dialog-bg{
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg-img{
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.dialog-bg .content{
position: absolute;
z-index: 2;
left: 50%;
top: 45%;
transform: translate(-50%,-50%);
text-align: center;
width: 82%;
}
.dialog-bg .content .title{
color: white;
font-size: 16px;
font-weight: 500;
}
.dialog-bg .content .box-img{
width: 100%;
margin: 0 auto;
height: 320px;
}
.dialog-bg .content .handle-btn{
margin: -12px auto 0;
width: 180px;
height: 40px;
border-radius: 20px;
background: #D8FCFA;
text-align: center;
line-height: 40px;
color: #21252B;
font-size: 20px;
font-weight: 500;
box-shadow: inset 0px 1px 1px 0px rgba(246, 255, 212, 0.8);
}
.dialog-bg .content .icon-guanbi{
margin: 40px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template>
<div class="dialog-bg" v-if="show">
<img
src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_box_bg.png"
class="dialog-bg-img"
/>
<div class="content">
<div class="title">恭喜获得</div>
<div class="subtitle">{{ reward.prizeName }}</div>
<div class="reward-box">
<img :src="reward.prizeImageUrl" class="reward-img"/>
<div class="reward-log-text">
<span>奖品已放置</span>
<span class="color-text">【我的奖品】</span>
</div>
</div>
<div class="handle-btn" @click="close">收下</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
reward: Object,
show: Boolean,
},
data() {
return {};
},
methods: {
close() {
this.$emit("update:show", false);
},
},
};
</script>
<style scoped>
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg-img {
position: absolute;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.dialog-bg .content {
position: absolute;
z-index: 2;
left: 50%;
top: 49%;
transform: translate(-50%, -50%);
text-align: center;
}
.dialog-bg .content .title {
color: white;
font-size: 24px;
font-weight: 500;
}
.dialog-bg .content .subtitle {
color: white;
font-size: 16px;
font-weight: 500;
}
.dialog-bg .content .reward-box{
width: 218px;
border-radius: 5px;
background: linear-gradient(90deg, #E8FFFD 0%, #FAFFE7 100%);
text-align: center;
margin-top: 38px;
}
.dialog-bg .content .reward-img{
margin: 0 auto;
padding: 29px 0 0;
width: 150px;
height: 150px;
}
.dialog-bg .content .reward-log-text{
padding: 11px 0 14px;
font-size: 12px;
color: #27292B;
}
.dialog-bg .content .reward-log-text .color-text{
color: rgba(33, 37, 43, 1);
font-weight: 600;
}
.dialog-bg .content .handle-btn {
margin: 42px auto 0;
width: 180px;
height: 40px;
border-radius: 20px;
background: #D8FCFA;
text-align: center;
line-height: 40px;
color: #21252B;
font-size: 20px;
font-weight: 500;
box-shadow: inset 0px 3px 3px 0px rgba(246, 255, 212, 0.8);
}
.dialog-bg .content .icon-guanbi {
margin: 40px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template> <template>
<div class="dialog-bg" v-if="show"> <div class="dialog-bg" v-if="show">
<div class="content"> <div class="content">
<div class="content-detail"> <div class="title">差一点就中奖了</div>
<div class="subtitle">一定是姿势不对,换个姿势试试</div>
</div> <img src="https://pic01-10001430.cos.ap-shanghai.myqcloud.com/game/template1/mould_01_fail_pic.png" class="box-img" mode="widthFix">
<div class="handle-btn" @click="again">再抽一个</div>
<div class="iconfont icon-guanbi" @click="close"></div> <div class="iconfont icon-guanbi" @click="close"></div>
</div> </div>
</div> </div>
...@@ -46,11 +47,42 @@ export default { ...@@ -46,11 +47,42 @@ export default {
position: absolute; position: absolute;
z-index: 2; z-index: 2;
left: 50%; left: 50%;
top: 45%; top: 49%;
transform: translate(-50%,-50%); transform: translate(-50%,-50%);
text-align: center; text-align: center;
min-width: 224px;
}
.dialog-bg .content .title {
color: white;
font-size: 24px;
font-weight: 500;
}
.dialog-bg .content .subtitle {
color: white;
font-size: 16px;
font-weight: 500;
}
.dialog-bg .content .box-img{
width: 180px;
margin: 50px auto 0;
} }
.dialog-bg .content .handle-btn{
margin: 70px auto 0;
width: 180px;
height: 40px;
border-radius: 20px;
background: rgba(216, 252, 250, 1);
text-align: center;
line-height: 40px;
color: #21252B;
font-size: 20px;
font-weight: 500;
box-shadow: inset 0px 3px 3px 0px rgba(246, 255, 212, 0.8);
}
.dialog-bg .content .icon-guanbi{ .dialog-bg .content .icon-guanbi{
margin: 40px auto 0; margin: 40px auto 0;
......
<template>
<div class="dialog-bg" v-if="show && bgImage && qrcodeUrl">
<canvas id="canvas" class="img-canvas" width="560" height="996"></canvas>
<div class="content">
<img class="box-img" mode="widthFix" id="shareImage" />
<div class="tips">长按保存至相册,打开朋友圈选取海报转发</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
</div>
</template>
<script>
export default {
props: {
bgImage: String,
qrcodeUrl: String,
show: Boolean,
},
data() {
return {
};
},
created() {},
methods: {
drawImage() {
let _w = 560,
_h = 996;
var canvas = document.createElement("canvas");
canvas.width = _w;
canvas.height = _h;
var context = canvas.getContext("2d");
context.rect(0, 0, canvas.width, canvas.height);
context.fillStyle = "#fff";
context.fill();
var myImage = new Image();
myImage.width = _w;
myImage.height = _h;
myImage.crossOrigin = "Anonymous";
myImage.src = this.bgImage; //背景图片 你自己本地的图片或者在线图片
myImage.onload = () => {
context.drawImage(myImage, 0, 0, _w, _h);
var myImage2 = new Image();
myImage2.src = this.qrcodeUrl; //你自己本地的图片或者在线图片
myImage2.width = 120;
myImage2.height = 120;
myImage2.crossOrigin = "Anonymous";
myImage2.onload = function () {
context.drawImage(myImage2, 400, 824, 120, 120);
var base64 = canvas.toDataURL("image/png"); //"image/png" 这里注意一下
var img = document.getElementById("shareImage");
img.src = base64;
};
};
},
again() {
this.$emit("again");
this.close();
},
close() {
this.$emit("update:show", false);
},
},
watch: {
show(n) {
if (n) {
this.drawImage();
}
},
},
};
</script>
<style scoped>
.img-canvas {
position: fixed;
left: 100%;
top: 0;
width: 560px;
height: 996px;
}
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 99;
background: rgba(0, 0, 0, 0.85);
}
.dialog-bg .content {
position: absolute;
z-index: 2;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
text-align: center;
width: 60%;
}
.dialog-bg .content .tips {
color: white;
font-size: 14px;
margin-top: 20px;
}
.dialog-bg .content .box-img {
width: 100%;
}
.dialog-bg .content .icon-guanbi {
margin: 20px auto 0;
color: white;
opacity: 0.8;
padding: 15px;
font-size: 28px;
height: 28px;
width: 28px;
}
</style>
<template>
<div class="dialog-bg" :class="show ? 'show' : 'hidden'" @click="close">
<div class="content" @click.stop="tap">
<div class="top">
<div class="title">邀请好友助力</div>
<div class="iconfont icon-guanbi" @click="close"></div>
</div>
<div class="cell">
<div class="iconfont icon-duobianxing"></div>
<div class="info">
<div class="title">分享至微信/朋友圈</div>
<div class="subtitle">
每邀请{{ shareConditionObj.inviteNum }}位好友助力增加{{ shareConditionObj.value }}次,被邀请用户进入分享页{{ shareConditionObj.type == 11 ? '会员注册' : '关注服务号' }}完成助力。
</div>
<div class="share-type-box">
<div class="share-type-item" @click="shareWx">
<img src="../images/wx_icon.png" mode="aspectFit"/>
<div class="share-type-name">微信</div>
</div>
<div class="share-type-item" @click="sharePyq">
<img src="../images/pyq_icon.png" mode="aspectFit"/>
<div class="share-type-name">朋友圈</div>
</div>
</div>
</div>
</div>
<div class="cell" v-if="list && list.length" v-infinite-scroll="loadData">
<div class="iconfont icon-duobianxing"></div>
<div class="info">
<div class="title">助力成功记录</div>
<div class="record-list">
<div class="record-item" v-for="item in list" :key="item">
<div class="time">{{ item.createTime | formatDate }}</div>
<div class="text">{{ item.helpMemberName || item.helpMemberNick }} 助力成功</div>
</div>
</div>
</div>
</div>
</div>
</div>
</template>
<script>
import { gameRequestApi } from "@/api/common.js";
const {
getReportRecord,
} = gameRequestApi;
export default {
props: {
memberId: String,
enterpriseId: String,
gameId: String,
show: Boolean,
shareConditionObj: {
type: Object,
default:()=> {
return {};
},
},
},
data() {
return {
conditionObj: {},
count: 100,
pageSize: 20,
currentPage: 1,
list: [],
};
},
created(){
this.loadData();
},
methods: {
reloadData(){
this.currentPage = 1;
this.totalCount = 0;
this.loadData();
this.getGameRule();
},
async loadData(){
if(this.list.length >= this.totalCount && this.totalCount != 0){
return;
}
let res = await getReportRecord({
memberId: this.memberId || '',
enterpriseId: this.enterpriseId || '',
gameId: this.gameId || '',
currentPage: this.currentPage,
pageSize: this.pageSize
})
this.totalCount = res.totalCount;
let list = this.list || [];
if(this.currentPage == 1){
list = res.result||[];
}else{
list = list.concat(res.result||[])
}
this.currentPage ++;
this.list = list;
},
again() {
this.$emit("again");
this.close();
},
close() {
this.show = false;
setTimeout(() => {
this.$emit("update:show", false);
}, 200);
},
tap() {},
shareWx(){
this.$emit("shareWx",this.conditionObj);
},
sharePyq(){
this.$emit("sharePyq",this.conditionObj);
}
},
filters:{
formatDate(value){
if (!value) return '--';
let date = new Date(value);
return date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate()
}
}
};
</script>
<style scoped>
@keyframes maskShowAnimation {
0% {
background: rgba(0, 0, 0, 0);
}
100% {
background: rgba(0, 0, 0, 0.85);
}
}
@keyframes maskHiddenAnimation {
0% {
background: rgba(0, 0, 0, 0.85);
}
100% {
background: rgba(0, 0, 0, 0);
}
}
@keyframes contentShowAnimation {
0% {
bottom: -100%;
}
100% {
bottom: 0;
}
}
@keyframes contentHiddenAnimation {
0% {
bottom: 0;
}
100% {
bottom: -100%;
}
}
.dialog-bg {
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 100;
background: rgba(0, 0, 0, 0);
animation-duration: 200ms;
animation-fill-mode: forwards;
animation-iteration-count: 1;
}
.dialog-bg.show {
animation-name: maskShowAnimation;
}
.dialog-bg.hidden {
animation-name: maskHiddenAnimation;
}
.content {
max-height: 80%;
position: absolute;
left: 0;
bottom: 0;
width: 100%;
border-radius: 8px 8px 0 0;
background: #f6f6f6;
overflow: auto;
animation-duration: 200ms;
animation-fill-mode: forwards;
animation-iteration-count: 1;
}
.dialog-bg.show .content{
animation-name: contentShowAnimation;
}
.dialog-bg.hidden .content{
animation-name: contentHiddenAnimation;
}
.content::-webkit-scrollbar {
display: none;
}
.content .top {
position: sticky;
display: flex;
height: 55px;
display: flex;
align-items: center;
justify-content: space-between;
top: 0;
background: #f6f6f6;
z-index: 2;
}
.content .top .title {
color: #21252b;
font-size: 16px;
font-weight: 600;
padding: 0 12px;
}
.content .top .iconfont {
color: #21252b;
font-size: 16px;
padding: 18px 13px;
}
.content .cell {
padding: 14px 12px 16px;
display: flex;
}
.content .cell .info{
flex: 1;
}
.content .cell .icon-duobianxing {
color: #38bdcd;
font-size: 15px;
padding-top: 3px;
padding-right: 3px;
}
.content .cell .info .title {
color: #27292b;
font-size: 14px;
font-weight: 600;
padding-bottom: 5px;
}
.content .cell .info .subtitle {
color: #21252b;
font-size: 12px;
padding-bottom: 15px;
}
.content .cell .info .share-type-box {
display: flex;
}
.share-type-box .share-type-item {
text-align: center;
padding-right: 60px;
}
.share-type-box .share-type-item img {
width: 52px;
height: 52px;
margin: 0 auto;
padding-bottom: 8px;
}
.share-type-box .share-type-item .share-type-name {
color: #242835;
font-size: 12px;
text-align: center;
}
.record-list {
overflow: auto;
}
.record-item {
display: flex;
align-items: center;
justify-content: space-between;
position: relative;
padding: 10px 0;
color: #27292b;
font-size: 12px;
}
.record-item::after {
content: " ";
position: absolute;
left: 0;
width: 100%;
bottom: 0;
height: 1px;
transform: scaleY(0.5);
z-index: 1;
background: #e6e6e6;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment