Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
db-game-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
崔立强
db-game-template
Commits
bcfcd172
Commit
bcfcd172
authored
Nov 30, 2020
by
李硕
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
提交
parent
aba109ea
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
529 additions
and
91 deletions
+529
-91
index.js
weekVerb/project/mock/week/index.js
+1
-0
interface.js
weekVerb/project/mock/week/interface.js
+4
-4
apicfg.js
weekVerb/project/src/api/apicfg.js
+2
-6
commessagemodal.jsx
...roject/src/components/commessagemodal/commessagemodal.jsx
+14
-7
commessagemodal.less
...oject/src/components/commessagemodal/commessagemodal.less
+5
-6
constant.js
weekVerb/project/src/constant.js
+98
-34
spark_createposter.js
weekVerb/project/src/libs/spark_createposter.js
+67
-0
spark_gettoken.js
weekVerb/project/src/libs/spark_gettoken.js
+99
-0
spark_requstrolling.js
weekVerb/project/src/libs/spark_requstrolling.js
+61
-0
spark_wxshare.js
weekVerb/project/src/libs/spark_wxshare.js
+111
-0
pageweekverb.jsx
weekVerb/project/src/pages/pageweekverb/pageweekverb.jsx
+67
-34
No files found.
weekVerb/project/mock/week/index.js
View file @
bcfcd172
export
*
from
"./interface"
\ No newline at end of file
weekVerb/project/mock/week/interface.js
View file @
bcfcd172
export
const
baseInfo
=
{
export
const
baseInfo
=
{
"data"
:
{
"data"
:
{
"vipLevel"
:
"
w2
"
,
"vipLevel"
:
"
W1
"
,
"adUrl"
:
"
1
"
,
"adUrl"
:
"
http://www.baidu.com
"
,
"adMes"
:
"1"
,
"adMes"
:
"1"
,
"tenDjStock"
:
1200
,
"tenDjStock"
:
1200
,
"fiveDjStock"
:
2000
,
"fiveDjStock"
:
2000
,
...
@@ -18,7 +18,7 @@ export const verbPrize = {
...
@@ -18,7 +18,7 @@ export const verbPrize = {
"name"
:
"奖品名称"
,
"name"
:
"奖品名称"
,
"icon"
:
"2"
"icon"
:
"2"
},
},
"code"
:
null
,
"code"
:
600008
,
"message"
:
null
,
"message"
:
null
,
"success"
:
tru
e
"success"
:
fals
e
}
}
\ No newline at end of file
weekVerb/project/src/api/apicfg.js
View file @
bcfcd172
...
@@ -2,12 +2,8 @@ let projectId = window.CFG.projectId || '';
...
@@ -2,12 +2,8 @@ let projectId = window.CFG.projectId || '';
const
apiCfg
=
{
const
apiCfg
=
{
getRule
:
`/projectx/
${
projectId
}
/projectRule.query`
,
getRule
:
`/projectx/
${
projectId
}
/projectRule.query`
,
getBaseInfo
:
{
getBaseInfo
:
`/projectx/
${
projectId
}
/weekly_award/index.do`
,
uri
:
`/projectx/
${
projectId
}
/weekly_award/index.do`
,
verbPrize
:
`/projectx/
${
projectId
}
/weekly_award/join.do`
},
verbPrize
:
{
uri
:
`/projectx/
${
projectId
}
/weekly_award/join.do`
}
}
}
export
default
apiCfg
;
export
default
apiCfg
;
\ No newline at end of file
weekVerb/project/src/components/commessagemodal/commessagemodal.jsx
View file @
bcfcd172
...
@@ -10,18 +10,25 @@ class Commessagemodal extends Component {
...
@@ -10,18 +10,25 @@ class Commessagemodal extends Component {
this
.
state
=
{
resList
:
resList
};
this
.
state
=
{
resList
:
resList
};
}
}
render
()
{
render
()
{
// {
// title,
// desc,
// content,
// img
// }
let
{
data
,
onClose
}
=
this
.
props
;
return
(
return
(
<
div
className=
"messagemodal "
>
<
div
className=
"messagemodal "
>
<
div
className=
"modal "
>
<
div
className=
"modal "
>
<
img
className=
"shadebg "
src=
{
this
.
state
.
resList
[
'282e8c6f-d242-4aa0-a393-c77166c6cb7a'
].
url
}
/>
<
img
className=
"shadebg "
src=
{
this
.
state
.
resList
[
'282e8c6f-d242-4aa0-a393-c77166c6cb7a'
].
url
}
/>
<
img
className=
"modalbg "
src=
{
this
.
state
.
resList
[
'21a22cd9-40c5-4370-9370-d4f846b0dbb3'
].
url
}
/>
<
img
className=
"modalbg "
src=
{
this
.
state
.
resList
[
'21a22cd9-40c5-4370-9370-d4f846b0dbb3'
].
url
}
/>
<
img
className=
"closebtn "
src=
{
this
.
state
.
resList
[
'af5dbf3f-5044-4431-9bae-bcc0cd4990aa'
].
url
}
/>
<
img
className=
"closebtn "
onClick=
{
onClose
}
src=
{
this
.
state
.
resList
[
'af5dbf3f-5044-4431-9bae-bcc0cd4990aa'
].
url
}
/>
<
span
className=
"titlelab "
>
很抱歉
</
span
>
<
span
className=
"titlelab "
>
{
data
.
title
}
</
span
>
<
img
className=
"timeimg "
src=
{
this
.
state
.
resList
[
'9b80be59-4fa3-4f6a-b629-2debba82ac8c'
].
url
}
/>
<
img
className=
{
data
.
prize
==
1
?
"w1img"
:
"timeimg"
}
src=
{
this
.
state
.
resList
[
data
.
img
].
url
}
/>
<
img
className=
"w1img "
src=
{
this
.
state
.
resList
[
'42783179-c885-470c-9eae-6b59493f2986'
].
url
}
/>
{
/* <img className="w1img " src={this.state.resList['42783179-c885-470c-9eae-6b59493f2986'].url} /> */
}
<
span
className=
"desc "
>
还没到活动时间哦
</
span
>
<
span
className=
"desc "
>
{
data
.
desc
}
</
span
>
<
span
className=
"content "
>
周三10点再来试试吧
</
span
>
<
span
className=
"content "
>
{
data
.
content
}
</
span
>
<
img
className=
"knowbtn "
src=
{
this
.
state
.
resList
[
'9e93fc0f-c93e-4c72-8c37-244c3377d44b'
].
url
}
/>
<
img
className=
"knowbtn "
onClick=
{
onClose
}
src=
{
this
.
state
.
resList
[
'9e93fc0f-c93e-4c72-8c37-244c3377d44b'
].
url
}
/>
</
div
>
</
div
>
</
div
>
</
div
>
);
);
...
...
weekVerb/project/src/components/commessagemodal/commessagemodal.less
View file @
bcfcd172
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
width: 750px;
width: 750px;
height: 1624px;
height: 1624px;
display: block;
display: block;
position:
absolute
;
position:
fixed
;
.modal {
.modal {
width: 750px;
width: 750px;
height: 1334px;
height: 1334px;
...
@@ -65,13 +65,12 @@
...
@@ -65,13 +65,12 @@
top: 527px;
top: 527px;
position: absolute;
position: absolute;
transform-origin: 0px 0px 0px;
transform-origin: 0px 0px 0px;
display: none;
}
}
.desc {
.desc {
width:
259
px;
width:
500
px;
height: 44px;
height: 44px;
opacity: 1;
opacity: 1;
left:
248
px;
left:
130
px;
top: 698px;
top: 698px;
position: absolute;
position: absolute;
transform-origin: 0px 0px 0px;
transform-origin: 0px 0px 0px;
...
@@ -80,10 +79,10 @@
...
@@ -80,10 +79,10 @@
text-align: center;
text-align: center;
}
}
.content {
.content {
width:
218
px;
width:
400
px;
height: 34px;
height: 34px;
opacity: 1;
opacity: 1;
left:
268
px;
left:
180
px;
top: 747px;
top: 747px;
position: absolute;
position: absolute;
transform-origin: 0px 0px 0px;
transform-origin: 0px 0px 0px;
...
...
weekVerb/project/src/constant.js
View file @
bcfcd172
export
const
ModalImage
=
{
export
const
ModalImage
=
{
NO_STOCK
:
"9b80be59-4fa3-4f6a-b629-2debba82ac8c"
,
NO_STOCK
:
"9b80be59-4fa3-4f6a-b629-2debba82ac8c"
,
VIP_CHECK
:
"c9af4a2c-f766-48f8-b3bb-840d8bb2ae22"
,
VIP_CHECK
:
"c9af4a2c-f766-48f8-b3bb-840d8bb2ae22"
,
W1_IMG
:
"42783179-c885-470c-9eae-6b59493f2986"
,
W1
:
"42783179-c885-470c-9eae-6b59493f2986"
,
W2_IMG
:
"f16d3f74-51d1-4c29-aaa2-ec78963483a1"
,
W2
:
"f16d3f74-51d1-4c29-aaa2-ec78963483a1"
,
W3_IMG
:
"40ed1f27-265b-4bc8-84f4-91780e389a98"
,
W3
:
"40ed1f27-265b-4bc8-84f4-91780e389a98"
,
NOTIMES_IMG
:
""
,
NOTIMES_IMG
:
"b97d2668-3e0a-481e-8df8-aa2f532b1fbc"
,
END_IMG
:
""
END_IMG
:
"5ce85621-f1aa-41c7-993f-80f41d2ff9ff"
,
NOT_START
:
"0d308df7-2e36-4484-9fb9-5abe50d80bbf"
}
}
export
const
AWARD_TYPE
=
{
PRIZE_W1
:
1
,
PRIZE_W2
:
2
,
PRIZE_W3
:
3
};
export
const
MODAL_TYPE
=
{
export
const
MODAL_TYPE
=
{
NO_STOCK
:
1
,
NO_STOCK
:
1
,
VIP_CHECK
:
2
,
VIP_CHECK
:
2
,
W1_PRIZE
:
3
,
W1_PRIZE
:
3
,
W2_PRIZE
:
4
,
W2_PRIZE
:
4
,
W3_PRIZE
:
5
W3_PRIZE
:
5
,
NO_TIMES
:
6
,
END
:
7
,
NOT_START
:
8
}
}
export
const
PRIZE_TYPE
=
{
export
const
PRIZE_TYPE
=
{
...
@@ -28,47 +25,77 @@ export const PRIZE_TYPE = {
...
@@ -28,47 +25,77 @@ export const PRIZE_TYPE = {
W3
:
"ru_3"
W3
:
"ru_3"
}
}
export
function
Modal_Lables
(
modalType
,
imgUuid
,
level
)
{
export
const
CURRENT_LEVEL
=
{
level1
:
"W1"
,
level2
:
"W2"
,
level3
:
"W3"
}
export
function
Modal_Lables
(
modalType
,
level
)
{
let
title
=
""
;
let
title
=
""
;
let
desc
=
""
;
let
desc
=
""
;
let
content
=
""
;
let
content
=
""
;
let
img
=
""
;
let
img
=
""
;
let
prize
=
0
;
// 未中奖title
// 未中奖title
if
([
MODAL_TYPE
.
NO_STOCK
,
MODAL_TYPE
.
VIP_CHECK
].
includes
(
modalType
))
{
if
([
1
,
2
,
5
,
6
,
7
,
8
].
includes
(
modalType
))
{
title
=
"很抱歉"
title
=
"很抱歉"
}
else
{
}
else
{
title
=
"恭喜您"
title
=
"恭喜您"
}
}
//没有库存的限制
//没有库存的限制
if
(
modalType
=
MODAL_TYPE
.
NO_STOCK
)
{
if
(
modalType
=
=
MODAL_TYPE
.
NO_STOCK
)
{
desc
=
"券已领完"
;
desc
=
"券已领完"
;
content
=
"下次早点来哦"
;
content
=
"下次早点来哦"
;
img
=
imgUuid
;
img
=
ModalImage
.
NO_STOCK
;
}
}
//未到达VIP等级弹窗展示
//未到达VIP等级弹窗展示
if
(
modalType
=
MODAL_TYPE
.
VIP_CHECK
)
{
if
(
modalType
=
=
MODAL_TYPE
.
VIP_CHECK
)
{
desc
=
`您暂时还不是
${
level
}
用户`
;
desc
=
`您暂时还不是
${
level
}
用户`
;
content
=
"暂时无法领取代金券"
;
content
=
"暂时无法领取代金券"
;
img
=
imgUuid
;
img
=
ModalImage
.
VIP_CHECK
;
}
if
(
modalType
==
MODAL_TYPE
.
NOT_START
)
{
desc
=
"还没到活动时间哦"
;
content
=
"周三10点再来试试吧"
;
img
=
ModalImage
.
NOT_START
;
}
}
if
(
modalType
==
MODAL_TYPE
.
NO_TIMES
)
{
desc
=
"本月可领取次数已用完"
;
content
=
"下个月再来哦"
;
img
=
ModalImage
.
NOTIMES_IMG
;
}
if
(
modalType
==
MODAL_TYPE
.
END
)
{
desc
=
"活动已结束"
;
content
=
"下次再来吧"
;
img
=
ModalImage
.
END_IMG
;
}
console
.
log
(
'level==='
,
level
);
if
([
MODAL_TYPE
.
W1_PRIZE
,
MODAL_TYPE
.
W2_PRIZE
,
MODAL_TYPE
.
W3_PRIZE
].
includes
(
modalType
))
{
if
([
MODAL_TYPE
.
W1_PRIZE
,
MODAL_TYPE
.
W2_PRIZE
,
MODAL_TYPE
.
W3_PRIZE
].
includes
(
modalType
))
{
content
=
"可前往“我的奖品”查看"
;
content
=
"可前往“我的奖品”查看"
;
img
=
imgUuid
;
img
=
ModalImage
[
level
]
;
}
}
if
(
modalType
=
MODAL_TYPE
.
W1_PRIZE
)
{
if
(
modalType
=
=
MODAL_TYPE
.
W1_PRIZE
)
{
desc
=
'已领取流量日包券一张'
;
desc
=
'已领取流量日包券一张'
;
}
}
if
(
modalType
=
MODAL_TYPE
.
W2_PRIZE
)
{
if
(
modalType
=
=
MODAL_TYPE
.
W2_PRIZE
)
{
desc
=
'已领取5元无门槛代金券一张'
;
desc
=
'已领取5元无门槛代金券一张'
;
}
}
if
(
modalType
=
MODAL_TYPE
.
W3_PRIZE
)
{
if
(
modalType
=
=
MODAL_TYPE
.
W3_PRIZE
)
{
desc
=
'已领取10元无门槛代金券一张'
;
desc
=
'已领取10元无门槛代金券一张'
;
}
}
return
{
console
.
log
(
"======"
,
{
title
,
title
,
desc
,
desc
,
content
,
content
,
img
img
});
return
{
title
,
desc
,
content
,
img
,
prize
}
}
}
}
...
@@ -80,23 +107,60 @@ export function ERROR_MESSSAGE(errorCode) {
...
@@ -80,23 +107,60 @@ export function ERROR_MESSSAGE(errorCode) {
message
=
"网络繁忙,请稍后重试"
;
message
=
"网络繁忙,请稍后重试"
;
break
;
break
;
case
600002
:
case
600002
:
message
=
"任务列表配置出错"
;
break
;
case
600003
:
message
=
"参数异常"
;
message
=
"参数异常"
;
break
;
break
;
case
600004
:
// case 600003:
message
=
"任务不存在"
;
// message = "活动未开始";
break
;
// break;
// case 600004:
// message = "会员等级不足";
// break;
case
600005
:
case
600005
:
message
=
"任务无法完成"
;
message
=
"仅限上海联通用户参与"
;
break
;
case
600006
:
message
=
"不在可完成任务时间内"
;
break
;
break
;
// case 600006:
// message = "库存不足";
// break;
// case 600007:
// message = "本周已领取";
// break;
// case 600008:
// message = "活动已结束";
// break;
default
:
default
:
message
=
"网络故障"
;
message
=
"网络故障"
;
break
;
break
;
}
}
return
message
;
return
message
;
}
}
export
function
ERROR_MODAL
(
errorCode
)
{
let
type
=
""
;
switch
(
errorCode
)
{
case
600003
:
type
=
MODAL_TYPE
.
NOT_START
;
break
;
case
600004
:
type
=
MODAL_TYPE
.
VIP_CHECK
;
break
;
// case 600005:
// type = "仅限上海联通用户参与";
// break;
case
600006
:
type
=
MODAL_TYPE
.
NO_STOCK
;
break
;
case
600007
:
type
=
MODAL_TYPE
.
NO_TIMES
;
break
;
case
600008
:
type
=
MODAL_TYPE
.
END
;
break
;
default
:
type
=
"网络故障"
;
break
;
}
console
.
log
(
"modalType-----"
,
type
);
return
type
;
}
\ No newline at end of file
weekVerb/project/src/libs/spark_createposter.js
0 → 100644
View file @
bcfcd172
/**
* 截图方法封装
*
*
* 使用方法: npm install --save html2canvas
*
*
* import { createrPoster } from '../../libs/spark_createposter';
async createPoster()
{
let url = await createPoster("rule",{
x:window.innerWidth/4,
y:window.innerHeight/4,
width:window.innerWidth/2,
height:window.innerHeight/2
});
this.setState({
img_src:url
})
}
调用:this.createPoster();
jsx:
const {img_src=""} = this.state;
{img_src && <img src={img_src} style={{ width: '50vw', height: '50vw', position: "absolute", left: 0, top: 0 }} />}
*
*
* 注意事项:html2canvas有各种兼容问题
* 1:html2canvas 使用 1.0.0-rc.5 版本, ios 设备上会没有任何显示。then函数不会被回调也不会报错。请降级强制使用 1.0.0-rc.4 版本。(注意package.json 内的 "^1.0.0-rc.4" ^ 符号要去掉)
* 2:所有 dom 内的图片不能跨域,否则会导致白屏等奇怪问题。即使加上useCORS 与 allowTaint也无法解决,浏览器控制台直接会打印CORS相关报错。
* 3:生成的图片清晰度受原始图片的质量与width、height、windowWidth、windowHeight、scale 影响,请根据实际情况来调节这几个参数。
* 4:如果生成的base64图片过大,会导致图片无法显示,请相应减小3中的几个参数值。
* 5:不可将图片转换为Blob的形式,设备虽然可以正常显示图片,但是无法进行长按保存,保存下来的图片可能为一个空白的图像。
* 6:在指定dom来生成图片时,会受offsetTop与offsetLeft影响。例如 offsetTop 为 20 时,生成的图片顶部 20px(不一定为 20px)的距离会被所设置的backgroundColor(默认白色)颜色填充。这时,可使用 x与y参数进行校正。
* 7:如果一直出现跨域的情况,或者图片一直不出现的情况,可考虑将图片资源转换成 base64。例如就遇到二维码图片链接某些设备上一直不出现,则可以考虑接口直接返回二维码内容,由前端根据返回的内容来创建二维码。
* 8:当还出现一些奇奇怪怪的问题时,可尝试切换html2canvas版本。
*/
import
html2Canvas
from
'html2canvas'
;
/**
*
* @param {*} domId dom的id名,不传默认是body
* @param {*} options 重写的截图配置,具体参考html2canvas官方示例:http://html2canvas.hertzen.com/configuration
* @param {*} imgType 图片类型,默认是jpg
*/
const
createPoster
=
async
(
domId
,
options
=
{},
imgType
=
"image/jpeg"
)
=>
{
let
dom
=
domId
?
document
.
getElementById
(
domId
):
document
.
body
;
let
defaultOptions
=
{
useCORS
:
true
,
scale
:
devicePixelRatio
||
1
,
width
:
window
.
innerWidth
,
height
:
window
.
innerHeight
,
windowWidth
:
window
.
innerWidth
,
windowHeight
:
window
.
innerHeight
}
options
=
{
...
defaultOptions
,
...
options
}
let
canvas
=
await
html2Canvas
(
dom
,
options
).
catch
(
err
=>
{
console
.
error
(
"截图失败:"
,
err
)})
return
canvas
.
toDataURL
(
imgType
);
}
export
default
createPoster
;
\ No newline at end of file
weekVerb/project/src/libs/spark_gettoken.js
0 → 100644
View file @
bcfcd172
/**
* 两种获取token封装(getPxToken和getDuibaToken)
*
*
*/
/**
* @param {} callback
*/
if
(
!
document
.
getElementById
(
"scriptkey"
))
{
const
scriptkey
=
document
.
createElement
(
'script'
)
scriptkey
.
async
=
'async'
;
scriptkey
.
src
=
`getTokenKey`
;
scriptkey
.
id
=
"scriptkey"
;
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
scriptkey
);
const
scriptjs
=
document
.
createElement
(
'script'
)
scriptjs
.
async
=
'async'
;
scriptjs
.
id
=
"scriptjs"
;
scriptjs
.
src
=
`//yun.duiba.com.cn/js-libs/px-token/0.0.3/px-token.min.js`
;
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
scriptjs
);
scriptjs
.
onload
=
()
=>
{
}
}
const
getPxToken
=
(
callback
)
=>
{
if
(
window
.
getPxToken
)
{
__getPxToken
(
callback
);
return
;
}
console
.
log
(
"px-token.min.js尚未加载完成,请稍后再试"
)
// callback("waiting..."); //这里就不返回,不做处理
}
function
__getPxToken
(
callback
)
{
console
.
info
(
location
.
origin
)
if
(
location
.
origin
==
"http://localhost:8088"
){
callback
(
"11111"
);
}
else
{
if
(
window
.
getPxToken
)
{
window
.
getPxToken
((
e
,
token
)
=>
{
console
.
info
(
'get px token:'
,
e
);
switch
(
e
)
{
case
'net error'
:
break
;
case
'need reload'
:
break
;
case
'need login'
:
break
;
case
'state invalid'
:
break
;
default
:
callback
(
token
);
}
})
}
}
}
/**
* @param {} resolve
* @param {} reject
* @param {} againOrderId
*/
const
getDuibaToken
=
(
resolve
,
reject
,
againOrderId
)
=>
{
$
.
ajax
({
url
:
'/ctoken/getToken'
,
type
:
'post'
,
dataType
:
'json'
,
success
:
function
(
res
)
{
if
(
res
.
success
)
{
var
data
=
{
actId
:
CFG
?.
actId
||
""
,
oaId
:
CFG
?.
oaId
||
""
};
eval
(
res
.
token
);
var
key
=
''
;
data
.
token
=
window
[
key
];
if
(
againOrderId
)
{
data
.
againOrderId
=
againOrderId
;
}
resolve
&&
resolve
(
data
);
}
else
{
reject
(
'systemError'
,
{
message
:
res
.
message
});
}
},
error
:
function
()
{
reject
(
'networkError'
);
}
});
}
module
.
exports
=
{
getPxToken
,
getDuibaToken
}
weekVerb/project/src/libs/spark_requstrolling.js
0 → 100644
View file @
bcfcd172
/**
* 接口轮询组件封装
*
* import startRolling from '../../libs/spark_requstrolling.js';
*
* async rollingTest() {
await startRolling(async() => {
return await API.getOrderStatusForThrough({});
}, 5, 1000, "data.lottery.id", 7489, (data) => {
console.log("success:", data);
}, (err) => {
console.log("error:", err);
});
}
调用:this.rollingTest();
*
*
*
* @param {*} fn API请求方法
* @param {*} count 轮询次数
* @param {*} delay 每次轮询的延迟时间(毫秒)
* @param {*} rollKey 断定轮询的条件 采用a.b.c.d结构,例如data.lottery.id
* @param {*} rollValue 断定轮询的值
* @param {*} resolve 成功回调
* @param {*} reject 失败回调
* @param {*} rollingIndex 起始次数,不用传,默认就好
*/
const
startRolling
=
async
(
fn
,
count
,
delay
,
rollKey
,
rollValue
,
resolve
,
reject
,
rollingIndex
=
1
)
=>
{
if
(
typeof
fn
!==
"function"
)
{
if
(
reject
)
reject
()
return
;
}
console
.
log
(
"开始轮询,当前轮询次数"
,
rollingIndex
)
let
result
=
await
fn
();
console
.
log
(
result
);
if
(
result
.
success
)
{
rollingIndex
=
1
;
if
(
resolve
)
resolve
(
result
);
}
else
{
if
(
rollKey
)
{
let
rollKeyArr
=
rollKey
.
split
(
"."
);
let
condition
=
result
;
rollKeyArr
.
map
(
res
=>
condition
=
condition
[
res
])
if
(
condition
==
rollValue
&&
rollingIndex
<
count
)
{
setTimeout
(()
=>
{
startRolling
(
fn
,
count
,
delay
,
rollKey
,
rollValue
,
resolve
,
reject
,
++
rollingIndex
);
},
delay
);
}
else
{
if
(
reject
)
reject
(
result
);
}
}
else
{
if
(
reject
)
reject
(
result
);
}
}
}
export
default
startRolling
;
weekVerb/project/src/libs/spark_wxshare.js
0 → 100644
View file @
bcfcd172
/**
* 微信分享组件封装
*
* 使用方法:
* import wxShare from '../../libs/spark_wxshare'
* wxShare(options)
*
*
* options 参数(可选)
* appId: (必填) String, 公众号的唯一标识
* timestamp: (必填) String, 生成签名的时间戳
* nonceStr: (必填) String, 生成签名的时间戳
* signature: (必填) String, 签名
* jsApiList: (可选) Array, 调用接口列表,默认 ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ']
* title: (可选) String, 分享标题,默认doucment.title
* desc: (可选) String, 分享描述,默认空
* shareUrl: (可选) String, 分享链接, 默认当前链接
* imgUrl: (可选) String, 分享图片,默认空
*
*/
const
configBuilder
=
{
onMenuShareTimeline
(
config
)
{
return
{
title
:
config
.
title
,
desc
:
config
.
desc
,
link
:
config
.
shareUrl
,
imgUrl
:
config
.
imgUrl
}
},
onMenuShareAppMessage
(
config
)
{
return
{
title
:
config
.
title
,
desc
:
config
.
desc
,
link
:
config
.
shareUrl
,
imgUrl
:
config
.
imgUrl
}
},
onMenuShareQQ
(
config
)
{
return
{
title
:
config
.
title
,
desc
:
config
.
desc
,
link
:
config
.
shareUrl
,
imgUrl
:
config
.
imgUrl
}
}
}
export
default
function
(
config
=
{})
{
if
(
!
/MicroMessenger/
.
test
(
window
.
navigator
.
userAgent
))
{
return
false
}
if
(
document
.
getElementById
(
"jweixin"
))
{
__handleReady
(
config
);
return
;
}
const
script
=
document
.
createElement
(
'script'
)
script
.
async
=
'async'
;
script
.
id
=
"jweixin"
;
script
.
src
=
`
${
document
.
location
.
protocol
}
//res.wx.qq.com/open/js/jweixin-1.2.0.js`
document
.
getElementsByTagName
(
'head'
)[
0
].
appendChild
(
script
)
script
.
onload
=
()
=>
{
__handleReady
(
config
);
}
}
function
__handleReady
(
config
)
{
if
(
typeof
wx
!==
'undefined'
)
{
config
.
api
=
config
.
api
||
[
'onMenuShareTimeline'
,
'onMenuShareAppMessage'
,
'onMenuShareQQ'
]
// 默认值
config
.
imgUrl
=
config
.
imgUrl
||
window
.
location
.
protocol
+
'//mmbiz.qpic.cn/mmbiz_png/UUn1BJoX4UlEbDXKVFqFsSLcmmagib3oQ31FewyWkLfIbpHgw0xYv02zKrgQJNPGytLpudpib45dWZbC0hnawu9Q/0?wx_fmt=png'
config
.
shareUrl
=
config
.
shareUrl
||
window
.
location
.
href
config
.
desc
=
config
.
desc
||
''
config
.
title
=
config
.
title
||
document
.
title
wx
.
config
({
// 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
debug
:
config
.
debug
||
false
,
// 必填,公众号的唯一标识
appId
:
config
.
appid
||
config
.
appId
||
''
,
// 必填,生成签名的时间戳
timestamp
:
config
.
timestamp
||
''
,
// 必填,生成签名的随机串
nonceStr
:
config
.
nonceStr
||
''
,
// 必填,签名,见附录1
signature
:
config
.
signature
||
''
,
// 必填,需要使用的JS接口列表
jsApiList
:
[].
concat
(
config
.
api
)
})
wx
.
ready
(()
=>
{
// wx.checkJsApi({
// jsApiList: config.api
// })
config
.
api
.
forEach
(
key
=>
{
wx
[
key
](
configBuilder
[
key
](
config
))
})
})
}
}
weekVerb/project/src/pages/pageweekverb/pageweekverb.jsx
View file @
bcfcd172
...
@@ -6,7 +6,7 @@ import { Toast, Loading, getModalHoc } from '../../../node_modules/spark-design'
...
@@ -6,7 +6,7 @@ import { Toast, Loading, getModalHoc } from '../../../node_modules/spark-design'
import
API
from
'../../api'
;
import
API
from
'../../api'
;
import
{
getPxToken
}
from
'../../libs/spark_gettoken'
;
import
{
getPxToken
}
from
'../../libs/spark_gettoken'
;
import
verbModal
from
'../../components/commessagemodal/commessagemodal.jsx'
import
verbModal
from
'../../components/commessagemodal/commessagemodal.jsx'
import
{
ModalImage
,
AWARD_TYPE
,
MODAL_TYPE
,
Modal_Lables
,
ERROR_MESSSAGE
,
PRIZE_TYPE
}
from
'../../constant'
;
import
{
ModalImage
,
MODAL_TYPE
,
Modal_Lables
,
ERROR_MESSSAGE
,
PRIZE_TYPE
,
ERROR_MODAL
,
CURRENT_LEVEL
}
from
'../../constant'
;
import
'./pageweekverb.less'
;
import
'./pageweekverb.less'
;
const
VerbModal
=
getModalHoc
(
verbModal
);
const
VerbModal
=
getModalHoc
(
verbModal
);
...
@@ -15,15 +15,16 @@ class Pageweekverb extends Component {
...
@@ -15,15 +15,16 @@ class Pageweekverb extends Component {
super
(
props
);
super
(
props
);
this
.
state
=
{
this
.
state
=
{
resList
:
resList
,
resList
:
resList
,
modalStatus
:
false
,
modalStatus
:
""
,
baseData
:
{
baseData
:
{
vipLevel
:
"w2"
,
vipLevel
:
""
,
adUrl
:
"http://www.baidu.com"
,
adUrl
:
""
,
adMes
:
"1"
,
adMes
:
""
,
tenDjStock
:
1200
,
tenDjStock
:
""
,
fiveDjStock
:
2000
,
fiveDjStock
:
""
,
llbStock
:
3000
llbStock
:
""
}
},
modalData
:
{}
};
};
}
}
...
@@ -31,13 +32,27 @@ class Pageweekverb extends Component {
...
@@ -31,13 +32,27 @@ class Pageweekverb extends Component {
this
.
getBaseInfoData
();
this
.
getBaseInfoData
();
}
}
submit
()
{
let
pass
=
true
;
if
(
pass
)
{
pass
=
false
;
setTimeout
(()
=>
{
pass
=
true
},
2000
);
}
return
!
pass
;
}
jumpUrl
(
url
)
{
jumpUrl
(
url
)
{
if
(
url
)
{
if
(
this
.
submit
())
{
window
.
location
.
herf
=
url
;
if
(
url
)
{
}
console
.
log
(
"url==="
,
url
);
else
{
window
.
location
.
href
=
url
;
Toast
(
'网络出现故障,请重试'
)
}
else
{
Toast
(
'网络出现故障,请重试'
)
}
}
}
}
}
/**
/**
...
@@ -54,43 +69,61 @@ class Pageweekverb extends Component {
...
@@ -54,43 +69,61 @@ class Pageweekverb extends Component {
"llbStock": 3000
"llbStock": 3000
},
},
*/
*/
// console.log('======');
console
.
log
(
'======'
);
// let data = await API.getBaseInfo();
let
{
success
,
data
,
code
,
message
}
=
await
API
.
getBaseInfo
();
// console.log("data====", data);
console
.
log
(
"data===="
,
data
);
if
(
success
)
{
this
.
setState
({
baseData
:
data
})
}
else
{
Toast
(
"网络异常"
);
}
}
}
/**
/**
* 领取奖品调用接口
* 领取奖品调用接口
* @param {*} prizeType
* @param {*} prizeType
*/
*/
verbPrizeInterface
(
prizeType
,
modalType
,
imgUuid
,
level
)
{
verbPrizeInterface
(
prizeType
,
modalType
,
level
)
{
getPxToken
(
getPxToken
(
async
token
=>
{
async
token
=>
{
let
{
success
,
message
,
code
}
=
await
API
.
verbPrize
({
token
:
token
,
awardType
:
prizeType
});
let
{
success
,
message
,
code
}
=
await
API
.
verbPrize
({
token
:
token
,
awardType
:
prizeType
});
console
.
log
(
"success===="
,
success
,
"message-===="
,
message
);
console
.
log
(
"success===="
,
success
,
"message-===="
,
message
);
if
(
success
)
{
if
(
success
)
{
console
.
log
(
'领取奖品结束'
);
console
.
log
(
'领取奖品结束'
,
modalType
);
let
modalInfo
=
Modal_Lables
(
modalType
,
level
);
modalInfo
.
prize
=
1
;
this
.
setState
({
modalStatus
:
1
,
modalData
:
modalInfo
})
}
else
{
}
else
{
Toast
(
ERROR_MESSSAGE
(
code
));
Toast
(
ERROR_MESSSAGE
(
code
));
this
.
errorModal
(
code
,
this
.
state
.
baseData
.
vipLevel
);
}
}
}
}
)
)
}
}
/**
* 打开错误信息的弹窗
showModal
(
modalType
,
imgUuid
,
level
)
{
* @param {*} errorCode
this
.
state
.
modalStatus
=
true
;
* @param {*} level
*/
errorModal
(
errorCode
,
level
)
{
console
.
log
(
"打开弹窗"
);
let
modalType
=
ERROR_MODAL
(
errorCode
);
let
modalInfo
=
Modal_Lables
(
modalType
,
level
);
this
.
setState
({
modalStatus
:
1
,
modalData
:
modalInfo
});
// Modal_Lables(modalType, level);
}
}
render
()
{
render
()
{
let
{
baseData
,
modalStatus
}
=
this
.
state
;
let
{
baseData
,
modalStatus
,
modalData
}
=
this
.
state
;
return
(
return
(
<
div
className=
"weekverb "
>
<
div
className=
"weekverb "
>
<
img
className=
"wholebg "
src=
{
this
.
state
.
resList
[
'8c8463a4-658c-431f-ba5b-0fb00f4fda44'
].
url
}
/>
<
img
className=
"wholebg "
src=
{
this
.
state
.
resList
[
'8c8463a4-658c-431f-ba5b-0fb00f4fda44'
].
url
}
/>
...
@@ -101,19 +134,19 @@ class Pageweekverb extends Component {
...
@@ -101,19 +134,19 @@ class Pageweekverb extends Component {
<
img
className=
"w1bg "
src=
{
this
.
state
.
resList
[
'86fa1e7e-97b5-4d2d-9b73-42c629ec7c8e'
].
url
}
/>
<
img
className=
"w1bg "
src=
{
this
.
state
.
resList
[
'86fa1e7e-97b5-4d2d-9b73-42c629ec7c8e'
].
url
}
/>
<
span
className=
"w1limit "
>
W1会员及以上
</
span
>
<
span
className=
"w1limit "
>
W1会员及以上
</
span
>
<
span
className=
"w1stock "
>
剩余
{
baseData
.
llbStock
||
0
}
份
</
span
>
<
span
className=
"w1stock "
>
剩余
{
baseData
.
llbStock
||
0
}
份
</
span
>
<
img
className=
"w1verb "
onClick=
{
()
=>
{
this
.
showModal
(
)
}
}
src=
{
this
.
state
.
resList
[
'1f277473-a3c7-4f2a-a473-907c1d7428eb'
].
url
}
/>
<
img
className=
"w1verb "
onClick=
{
()
=>
{
this
.
verbPrizeInterface
(
PRIZE_TYPE
.
W1
,
MODAL_TYPE
.
W1_PRIZE
,
CURRENT_LEVEL
.
level1
)
}
}
src=
{
this
.
state
.
resList
[
'1f277473-a3c7-4f2a-a473-907c1d7428eb'
].
url
}
/>
</
div
>
</
div
>
<
div
className=
"w2rewar "
>
<
div
className=
"w2rewar "
>
<
img
className=
"w2bg "
src=
{
this
.
state
.
resList
[
'fd31ffa9-c0ab-4f93-b894-c7ff817e1f30'
].
url
}
/>
<
img
className=
"w2bg "
src=
{
this
.
state
.
resList
[
'fd31ffa9-c0ab-4f93-b894-c7ff817e1f30'
].
url
}
/>
<
span
className=
"w2limit "
>
W2会员专享
</
span
>
<
span
className=
"w2limit "
>
W2会员专享
</
span
>
<
span
className=
"w2stock "
>
剩余
{
baseData
.
fiveDjStock
||
0
}
份
</
span
>
<
span
className=
"w2stock "
>
剩余
{
baseData
.
fiveDjStock
||
0
}
份
</
span
>
<
img
className=
"w2verb "
onClick=
{
()
=>
{
this
.
showModal
(
)
}
}
src=
{
this
.
state
.
resList
[
'1f277473-a3c7-4f2a-a473-907c1d7428eb'
].
url
}
/>
<
img
className=
"w2verb "
onClick=
{
()
=>
{
this
.
verbPrizeInterface
(
PRIZE_TYPE
.
W2
,
MODAL_TYPE
.
W2_PRIZE
,
CURRENT_LEVEL
.
level2
)
}
}
src=
{
this
.
state
.
resList
[
'1f277473-a3c7-4f2a-a473-907c1d7428eb'
].
url
}
/>
</
div
>
</
div
>
<
div
className=
"w3rewar "
>
<
div
className=
"w3rewar "
>
<
img
className=
"w3bg "
src=
{
this
.
state
.
resList
[
'23116b8a-cbb7-4a44-a1f8-bbb7b23a8392'
].
url
}
/>
<
img
className=
"w3bg "
src=
{
this
.
state
.
resList
[
'23116b8a-cbb7-4a44-a1f8-bbb7b23a8392'
].
url
}
/>
<
span
className=
"w3limit "
>
W3及以上会员专享
</
span
>
<
span
className=
"w3limit "
>
W3及以上会员专享
</
span
>
<
span
className=
"w3stock "
>
剩余
{
baseData
.
tenDjStock
||
0
}
份
</
span
>
<
span
className=
"w3stock "
>
剩余
{
baseData
.
tenDjStock
||
0
}
份
</
span
>
<
img
className=
"w3verb "
onClick=
{
()
=>
{
this
.
showModal
(
)
}
}
src=
{
this
.
state
.
resList
[
'1f277473-a3c7-4f2a-a473-907c1d7428eb'
].
url
}
/>
<
img
className=
"w3verb "
onClick=
{
()
=>
{
this
.
verbPrizeInterface
(
PRIZE_TYPE
.
W3
,
MODAL_TYPE
.
W3_PRIZE
,
CURRENT_LEVEL
.
level3
)
}
}
src=
{
this
.
state
.
resList
[
'1f277473-a3c7-4f2a-a473-907c1d7428eb'
].
url
}
/>
</
div
>
</
div
>
<
img
className=
"myrewar "
src=
{
this
.
state
.
resList
[
'b1f11e37-165a-4bfa-8058-ceddecb14ba2'
].
url
}
/>
<
img
className=
"myrewar "
src=
{
this
.
state
.
resList
[
'b1f11e37-165a-4bfa-8058-ceddecb14ba2'
].
url
}
/>
{
/* <img className="adborde " src={this.state.resList['d45b8c4a-1eaa-436c-b992-cca999839d66'].url} /> */
}
{
/* <img className="adborde " src={this.state.resList['d45b8c4a-1eaa-436c-b992-cca999839d66'].url} /> */
}
...
@@ -121,7 +154,7 @@ class Pageweekverb extends Component {
...
@@ -121,7 +154,7 @@ class Pageweekverb extends Component {
<
span
className=
"adslot "
>
广告位
</
span
>
<
span
className=
"adslot "
>
广告位
</
span
>
</
div
>
</
div
>
{
modalStatus
&&
<
VerbModal
></
VerbModal
>
}
{
modalStatus
==
1
&&
<
VerbModal
data=
{
modalData
}
onClose=
{
()
=>
{
this
.
setState
({
modalStatus
:
0
})
}
}
></
VerbModal
>
}
</
div
>
</
div
>
);
);
}
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment