Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
quantum-blocks-h5
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
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
ui
quantum-blocks-h5
Commits
af52d3ab
Commit
af52d3ab
authored
Oct 08, 2022
by
Xuguangxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 增加页面有效期对比逻辑
parent
b3a8cb90
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
40 additions
and
23 deletions
+40
-23
activity.ts
app/controller/activity.ts
+4
-2
dev.config.ts
app/web/config/dev.config.ts
+4
-4
app.ts
app/web/framework/app.ts
+1
-1
index.ts
app/web/page/activity/view/activity/index.ts
+15
-1
index.vue
app/web/page/activity/view/activity/index.vue
+1
-0
index.ts
app/web/page/store/index.ts
+2
-2
apollo.json
config/apollo.json
+11
-11
apollo.ssr.json
config/apollo.ssr.json
+1
-1
package.json
package.json
+1
-1
No files found.
app/controller/activity.ts
View file @
af52d3ab
...
...
@@ -5,8 +5,10 @@ export default class ActivityController extends Controller {
// 开发环境不走redis缓存
const
apollo
=
ctx
.
app
.
config
.
apollo
||
{};
let
body
=
''
;
// 获取服务器端当前时间,用于与页面有效期做对比
const
serverTimeStamp
=
new
Date
().
getTime
();
if
(
process
.
env
.
NODE_ENV
===
'
development
'
)
{
body
=
await
ctx
.
renderToHtml
(
'
activity.js
'
,
{
url
:
ctx
.
url
,
apollo
});
body
=
await
ctx
.
renderToHtml
(
'
activity.js
'
,
{
url
:
ctx
.
url
,
apollo
,
serverTimeStamp
});
}
else
{
const
redisKey
=
`quantum-blocks:page:
${
ctx
.
params
.
id
}
`
;
body
=
await
ctx
.
service
.
redis
.
get
(
redisKey
);
...
...
@@ -14,7 +16,7 @@ export default class ActivityController extends Controller {
ctx
.
logger
.
info
(
'
请求redis成功 key: %j
'
,
redisKey
);
}
if
(
!
body
)
{
body
=
await
ctx
.
renderToHtml
(
'
activity.js
'
,
{
url
:
ctx
.
url
,
apollo
});
body
=
await
ctx
.
renderToHtml
(
'
activity.js
'
,
{
url
:
ctx
.
url
,
apollo
,
serverTimeStamp
});
await
ctx
.
service
.
redis
.
set
(
redisKey
,
body
);
}
}
...
...
app/web/config/dev.config.ts
View file @
af52d3ab
...
...
@@ -3,11 +3,11 @@ const protocol = EASY_ENV_IS_BROWSER ? window.location.protocol : 'https:';
const
hostMap
=
{
apiHost
:
`
${
protocol
}
//localhost:7002`
,
talosHost
:
`
${
protocol
}
//talos-
yxm
.liangkebang.net`
,
kdspHost
:
`
${
protocol
}
//kdsp-api-
yxm
.liangkebang.net`
,
talosHost
:
`
${
protocol
}
//talos-
ds
.liangkebang.net`
,
kdspHost
:
`
${
protocol
}
//kdsp-api-
ds
.liangkebang.net`
,
shenceUrl
:
`
${
protocol
}
//bn.xyqb.com/sa?project=default`
,
mallHost
:
`
${
protocol
}
//mall-
yxm
.liangkebang.net`
,
xyqbH5Host
:
`
${
protocol
}
//mapi-
yxm
.liangkebang.net`
,
mallHost
:
`
${
protocol
}
//mall-
ds
.liangkebang.net`
,
xyqbH5Host
:
`
${
protocol
}
//mapi-
ds
.liangkebang.net`
,
test
:
true
,
yxmTenantId
:
560761
,
appIdMap
:
{
...
...
app/web/framework/app.ts
View file @
af52d3ab
...
...
@@ -93,7 +93,7 @@ export default class App {
return
new
Promise
((
resolve
,
reject
)
=>
{
router
.
onReady
(()
=>
{
this
.
fetch
(
vm
).
then
(()
=>
{
context
.
state
=
{...
store
.
state
,
apollo
:
context
.
state
.
apollo
||
{}};
context
.
state
=
{...
store
.
state
,
apollo
:
context
.
state
.
apollo
||
{}
,
serverTimestamp
:
context
.
state
.
serverTimeStamp
};
return
resolve
(
new
Vue
(
vm
));
});
});
...
...
app/web/page/activity/view/activity/index.ts
View file @
af52d3ab
...
...
@@ -24,17 +24,20 @@ import editorApi from '@/api/editor.api';
export
default
class
Activity
extends
Mixins
(
TransformStyleMixin
,
BottomNavStyleMixin
,
SaMixin
,
DisableTouchMixin
)
{
@
Getter
(
'
pageData
'
)
pageData
;
@
State
(
state
=>
state
.
activity
.
pageInfo
)
pageInfo
;
@
State
(
state
=>
state
.
activity
.
pageInfo
.
pageName
)
pageName
;
@
State
(
state
=>
state
.
activity
.
noPageData
)
noPageData
;
@
State
(
state
=>
state
.
activity
.
pageInfo
.
appLoginState
)
appLoginState
;
@
State
(
state
=>
state
.
activity
.
pageInfo
.
tenantId
)
tenantId
;
@
State
(
state
=>
state
.
activity
.
gridLayout
.
rowHeight
)
rowHeight
;
@
State
(
state
=>
state
.
serverTimestamp
)
serverTimestamp
;
@
Mutation
(
'
SET_PAGE_ELEMENTS
'
)
setPageElement
;
@
Mutation
(
'
UPDATE_APP_LOGIN_STATE
'
)
updateAppLoginState
;
@
Provide
()
editor
=
this
;
isEditor
:
boolean
=
false
;
pageExpire
:
boolean
=
false
;
bottomInfo
:
object
=
{
x
:
0
,
y
:
0
,
...
...
@@ -142,10 +145,21 @@ export default class Activity extends Mixins(TransformStyleMixin, BottomNavStyle
}
async
created
()
{
const
[
res
,
]
=
await
editorApi
.
getFinanceSetting
();
console
.
log
(
res
);
console
.
log
(
res
,
'
finance result
'
);
if
(
res
&&
res
.
showFlag
===
0
)
{
this
.
pageData
.
elements
=
this
.
pageData
.
elements
.
filter
(
v
=>
v
.
name
!==
'
freedom-container
'
||
!
v
.
props
.
isFinance
);
}
this
.
comparePageTime
();
// 验证活动是否在设定的有效期范围内
}
comparePageTime
()
{
console
.
log
(
this
.
serverTimestamp
);
// this.pageExpire
console
.
log
(
this
.
pageInfo
);
const
{
validStartTime
,
validEndTime
,
redirectUrl
}
=
this
.
pageInfo
;
if
(
validStartTime
&&
validEndTime
)
{
// todo 当设置了页面的有效时间起止,用当前服务器返回的时间作对比,判断页面是否在有效期内
// if (this.serverTimeStamp < this.)
}
}
async
getNavigatorConfig
(
navId
,
index
)
{
// 获取导航配置
...
...
app/web/page/activity/view/activity/index.vue
View file @
af52d3ab
<
template
>
<div
class=
"pageContent"
>
<!--
{{
pageInfo
}}
-->
<div
class=
"activity"
:class=
"
{hasBottomNav: navigatorConfig}" :style="transformStyle(pageData.commonStyle)">
<template
v-if=
"!noPageData && tenantIdCorrect"
>
<div
class=
"layout"
>
...
...
app/web/page/store/index.ts
View file @
af52d3ab
...
...
@@ -7,8 +7,8 @@ import Activity from './modules/activity';
Vue
.
use
(
Vuex
);
export
default
function
createStore
(
initState
:
any
=
{})
{
const
{
title
,
url
,
origin
,
locale
,
csrf
,
activity
}
=
initState
;
const
state
=
{
title
,
url
,
origin
,
locale
,
csrf
};
const
{
title
,
url
,
origin
,
locale
,
csrf
,
activity
,
serverTimestamp
}
=
initState
;
const
state
=
{
title
,
url
,
origin
,
locale
,
csrf
,
serverTimestamp
};
return
new
Vuex
.
Store
<
RootState
>
({
state
,
modules
:
{
...
...
config/apollo.json
View file @
af52d3ab
{
"api"
:
{
"apiHost"
:
"https://quantum-blocks-
yxm
.liangkebang.net"
,
"h5Host"
:
"https://quantum-h5-
yxm
.liangkebang.net"
,
"opapiHost"
:
"https://opapi-
yxm
.liangkebang.net"
,
"passportHost"
:
"https://passportapi-
yxm
.liangkebang.net"
,
"talosHost"
:
"https://talos-
yxm
.liangkebang.net"
,
"kdspHost"
:
"https://kdsp-api-
yxm
.liangkebang.net"
,
"apiHost"
:
"https://quantum-blocks-
ds
.liangkebang.net"
,
"h5Host"
:
"https://quantum-h5-
ds
.liangkebang.net"
,
"opapiHost"
:
"https://opapi-
ds
.liangkebang.net"
,
"passportHost"
:
"https://passportapi-
ds
.liangkebang.net"
,
"talosHost"
:
"https://talos-
ds
.liangkebang.net"
,
"kdspHost"
:
"https://kdsp-api-
ds
.liangkebang.net"
,
"loginUrl"
:
""
,
"newApolloFlag"
:
true
,
"h5ShopHost"
:
"https://tenet-
yxm
.liangkebang.net/#"
,
"mallHost"
:
"https://mall-
yxm
.liangkebang.net"
,
"xyqbH5Host"
:
"https://mapi-
yxm
.liangkebang.net"
,
"h5ShopHost"
:
"https://tenet-
ds
.liangkebang.net/#"
,
"mallHost"
:
"https://mall-
ds
.liangkebang.net"
,
"xyqbH5Host"
:
"https://mapi-
ds
.liangkebang.net"
,
"yxmTenantId"
:
560761
,
"appIdMap"
:
{
"560761"
:
"wxe16bf9293671506c"
,
...
...
@@ -18,8 +18,8 @@
}
},
"redis"
:
{
"port"
:
"3
0835
"
,
"host"
:
"172.16.4.
89
"
,
"port"
:
"3
1980
"
,
"host"
:
"172.16.4.
7
"
,
"password"
:
""
,
"db"
:
0
},
...
...
config/apollo.ssr.json
View file @
af52d3ab
{
"apiHost"
:
"https://quantum-blocks-yxm.liangkebang.net","h5Host"
:
"https://quantum-h5-yxm.liangkebang.net","opapiHost"
:
"https://opapi-yxm.liangkebang.net","passportHost"
:
"https://passportapi-yxm.liangkebang.net","talosHost"
:
"https://talos-yxm.liangkebang.net","kdspHost"
:
"https://kdsp-api-yxm.liangkebang.net","loginUrl"
:
"","newApolloFlag"
:
true
,
"h5ShopHost"
:
"https://tenet-yxm.liangkebang.net/#","mallHost"
:
"https://mall-yxm.liangkebang.net","xyqbH5Host"
:
"https://mapi-yxm.liangkebang.net","yxmTenantId"
:
560761
,
"appIdMap"
:{
"560761"
:
"wxe16bf9293671506c","560867"
:
"wxccb8435d68e8c7d6"},"qiniuUpHost"
:
"https://up-z0.qiniup.com","qiniuHost"
:
"https://appsync.lkbang.net"
}
\ No newline at end of file
{
"apiHost"
:
"https://quantum-blocks-ds.liangkebang.net","h5Host"
:
"https://quantum-h5-ds.liangkebang.net","opapiHost"
:
"https://opapi-ds.liangkebang.net","passportHost"
:
"https://passportapi-ds.liangkebang.net","talosHost"
:
"https://talos-ds.liangkebang.net","kdspHost"
:
"https://kdsp-api-ds.liangkebang.net","loginUrl"
:
"","newApolloFlag"
:
true
,
"h5ShopHost"
:
"https://tenet-ds.liangkebang.net/#","mallHost"
:
"https://mall-ds.liangkebang.net","xyqbH5Host"
:
"https://mapi-ds.liangkebang.net","yxmTenantId"
:
560761
,
"appIdMap"
:{
"560761"
:
"wxe16bf9293671506c","560867"
:
"wxccb8435d68e8c7d6"},"qiniuUpHost"
:
"https://up-z0.qiniup.com","qiniuHost"
:
"https://appsync.lkbang.net"
}
\ No newline at end of file
package.json
View file @
af52d3ab
...
...
@@ -8,7 +8,7 @@
"test"
:
"cross-env NODE_ENV=production EGG_SERVER_ENV=sit egg-scripts start --port 80 --workers 1"
,
"stop"
:
"egg-scripts stop"
,
"backend"
:
"nohup egg-scripts start --port 7001 --workers 4"
,
"dev"
:
"cross-env NODE_ENV=test APOLLO_CLUSTER=k8s NAMESPACE=
yxm
npm run apollo && egg-bin dev -r egg-ts-helper/register"
,
"dev"
:
"cross-env NODE_ENV=test APOLLO_CLUSTER=k8s NAMESPACE=
ds
npm run apollo && egg-bin dev -r egg-ts-helper/register"
,
"debug"
:
"egg-bin debug -r egg-ts-helper/register"
,
"apollo"
:
"node bin/apollo.js"
,
"build"
:
"cross-env NODE_ENV=production APOLLO_CLUSTER=3C npm run apollo && cross-env COS_ENV=production easy build --devtool"
,
...
...
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