Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Q
quantum-blocks
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
Commits
c0eed525
Commit
c0eed525
authored
Oct 08, 2022
by
Xuguangxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 编辑器增加页面有效期起止及活动结束后目标url字段
parent
23f666b0
Changes
6
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
56 additions
and
7 deletions
+56
-7
pageInfo.ts
app/model/pageInfo.ts
+30
-0
index.ts
app/web/page/editor/component/BasicPageFormModal/index.ts
+9
-3
index.vue
app/web/page/editor/component/BasicPageFormModal/index.vue
+8
-1
index.ts
app/web/page/editor/view/dashboard/index.ts
+2
-2
state.ts
app/web/page/store/modules/editor/state.ts
+6
-0
package.json
package.json
+1
-1
No files found.
app/model/pageInfo.ts
View file @
c0eed525
...
@@ -47,6 +47,36 @@ export class PageInfo extends Model<PageInfo> {
...
@@ -47,6 +47,36 @@ export class PageInfo extends Model<PageInfo> {
})
})
uuid
:
string
;
uuid
:
string
;
@
Column
({
field
:
'
redirectUrl
'
,
type
:
DataType
.
STRING
(
255
),
get
()
{
const
redirectUrl
=
this
.
getDataValue
(
'
redirectUrl
'
);
return
!
redirectUrl
?
''
:
redirectUrl
;
},
})
redirectUrl
:
string
;
@
Column
({
field
:
'
validEndTime
'
,
type
:
DataType
.
STRING
(
32
),
get
()
{
const
validEndTime
=
this
.
getDataValue
(
'
validEndTime
'
);
return
!
validEndTime
?
''
:
validEndTime
;
},
})
validEndTime
:
string
;
@
Column
({
field
:
'
validStartTime
'
,
type
:
DataType
.
STRING
(
32
),
get
()
{
const
validStartTime
=
this
.
getDataValue
(
'
validStartTime
'
);
return
!
validStartTime
?
''
:
validStartTime
;
},
})
validStartTime
:
string
;
@
Column
({
@
Column
({
type
:
DataType
.
INTEGER
(
1
)
type
:
DataType
.
INTEGER
(
1
)
})
})
...
...
app/web/page/editor/component/BasicPageFormModal/index.ts
View file @
c0eed525
...
@@ -14,7 +14,7 @@ export default class DynamicForm extends Vue {
...
@@ -14,7 +14,7 @@ export default class DynamicForm extends Vue {
@
Getter
(
'
pageData
'
)
pageData
;
@
Getter
(
'
pageData
'
)
pageData
;
@
State
(
state
=>
state
.
tenant
.
cartAndShareBtn
)
cartAndShareBtn
;
@
State
(
state
=>
state
.
tenant
.
cartAndShareBtn
)
cartAndShareBtn
;
@
Prop
(
Boolean
)
value
;
@
Prop
(
Boolean
)
value
;
validTime
:
string
=
''
;
showPopup
:
boolean
=
false
;
showPopup
:
boolean
=
false
;
loadingSave
:
boolean
=
false
;
loadingSave
:
boolean
=
false
;
loadingPreview
:
boolean
=
false
;
loadingPreview
:
boolean
=
false
;
...
@@ -34,9 +34,10 @@ export default class DynamicForm extends Vue {
...
@@ -34,9 +34,10 @@ export default class DynamicForm extends Vue {
@
Watch
(
'
pageData
'
,
{
immediate
:
true
})
@
Watch
(
'
pageData
'
,
{
immediate
:
true
})
onPageDataChange
(
newVal
)
{
onPageDataChange
(
newVal
)
{
const
{
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isPublish
,
isTemplate
,
page
}
=
this
.
pageInfo
;
const
{
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isPublish
,
isTemplate
,
page
,
validStartTime
,
validEndTime
,
redirectUrl
}
=
this
.
pageInfo
;
const
{
shareOpenMethod
,
shareCoverImage
,
diversion
}
=
page
.
props
;
const
{
shareOpenMethod
,
shareCoverImage
,
diversion
}
=
page
.
props
;
this
.
formCustom
=
{
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isPublish
:
!!
isPublish
,
isTemplate
:
!!
isTemplate
,
shareCoverImage
,
shareOpenMethod
,
diversion
};
this
.
formCustom
=
{
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isPublish
:
!!
isPublish
,
isTemplate
:
!!
isTemplate
,
shareCoverImage
,
shareOpenMethod
,
diversion
,
validStartTime
,
validEndTime
,
redirectUrl
};
this
.
validTime
=
validStartTime
&&
validEndTime
?
`
${
validStartTime
}
-
${
validEndTime
}
`
:
''
;
}
}
@
Watch
(
'
value
'
)
@
Watch
(
'
value
'
)
...
@@ -65,6 +66,11 @@ export default class DynamicForm extends Vue {
...
@@ -65,6 +66,11 @@ export default class DynamicForm extends Vue {
this
.
$emit
(
'
input
'
,
val
);
this
.
$emit
(
'
input
'
,
val
);
}
}
validTimeChange
(
val
)
{
this
.
formCustom
.
validStartTime
=
val
[
0
]
||
''
;
this
.
formCustom
.
validEndTime
=
val
[
1
]
||
''
;
}
preview
()
{
preview
()
{
this
.
formCustom
.
pageName
=
this
.
formCustom
.
pageName
||
'
未命名
'
;
this
.
formCustom
.
pageName
=
this
.
formCustom
.
pageName
||
'
未命名
'
;
this
.
handleSubmit
(
'
preview
'
);
this
.
handleSubmit
(
'
preview
'
);
...
...
app/web/page/editor/component/BasicPageFormModal/index.vue
View file @
c0eed525
<
template
>
<
template
>
<Modal
v-model=
"showPopup"
width=
"380"
@
on-visible-change=
"change"
class-name=
'basic-form'
>
<Modal
v-model=
"showPopup"
width=
"380"
@
on-visible-change=
"change"
class-name=
'basic-form'
>
<!--
{{
formCustom
}}
-->
<Form
@
submit
.
native
.
prevent
ref=
"formCustom"
:model=
"formCustom"
:rules=
"ruleCustom"
:label-width=
"80"
label-position=
"left"
>
<Form
@
submit
.
native
.
prevent
ref=
"formCustom"
:model=
"formCustom"
:rules=
"ruleCustom"
:label-width=
"80"
label-position=
"left"
>
<FormItem
label=
"页面名称"
prop=
"pageName"
>
<FormItem
label=
"页面名称"
prop=
"pageName"
>
<Input
v-model=
"formCustom.pageName"
placeholder=
"请输入页面名称"
></Input>
<Input
v-model=
"formCustom.pageName"
placeholder=
"请输入页面名称"
></Input>
...
@@ -24,8 +25,14 @@
...
@@ -24,8 +25,14 @@
<FormItem
label=
"是否发布"
prop=
"isPublish"
>
<FormItem
label=
"是否发布"
prop=
"isPublish"
>
<i-switch
v-model=
"formCustom.isPublish"
></i-switch>
<i-switch
v-model=
"formCustom.isPublish"
></i-switch>
</FormItem>
</FormItem>
<FormItem
label=
"活动有效期"
prop=
"redirectUrl"
>
<DatePicker
v-model=
"validTime"
@
on-change=
"validTimeChange"
type=
"datetimerange"
placeholder=
"选填,留空默认长期有效"
style=
"width: 100%"
></DatePicker>
</FormItem>
<FormItem
label=
"活动结束url"
prop=
"redirectUrl"
>
<Input
v-model=
"formCustom.redirectUrl"
placeholder=
"选填,留空默认首页"
:rows=
"3"
></Input>
</FormItem>
<FormItem
label=
"导流url"
prop=
"diversion"
>
<FormItem
label=
"导流url"
prop=
"diversion"
>
<Input
v-model=
"formCustom.diversion"
placeholder=
"
可选
,具体url请联系对应导流项目的产品或开发"
:rows=
"3"
></Input>
<Input
v-model=
"formCustom.diversion"
placeholder=
"
选填
,具体url请联系对应导流项目的产品或开发"
:rows=
"3"
></Input>
</FormItem>
</FormItem>
<FormItem
label=
"设为模板"
prop=
"isTemplate"
v-if=
"formCustom.isPublish"
>
<FormItem
label=
"设为模板"
prop=
"isTemplate"
v-if=
"formCustom.isPublish"
>
<i-switch
v-model=
"formCustom.isTemplate"
></i-switch>
<i-switch
v-model=
"formCustom.isTemplate"
></i-switch>
...
...
app/web/page/editor/view/dashboard/index.ts
View file @
c0eed525
...
@@ -89,7 +89,7 @@ export default class DashBoard extends Mixins(ContextMenuMixin, GoodsTabsMixin,
...
@@ -89,7 +89,7 @@ export default class DashBoard extends Mixins(ContextMenuMixin, GoodsTabsMixin,
pageData
=
this
.
handleComAchorScrollEnable
();
pageData
=
this
.
handleComAchorScrollEnable
();
pageData
=
this
.
handleGoodsTabs
();
pageData
=
this
.
handleGoodsTabs
();
pageData
=
this
.
handleCouponIds
(
pageData
);
pageData
=
this
.
handleCouponIds
(
pageData
);
const
{
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isPublish
,
isTemplate
,
shareCoverImage
,
shareOpenMethod
,
diversion
}
=
pageConfig
;
const
{
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isPublish
,
isTemplate
,
shareCoverImage
,
shareOpenMethod
,
diversion
,
validStartTime
,
validEndTime
,
redirectUrl
}
=
pageConfig
;
// !diversion shareCoverImage shareOpenMethod没有作为单独的sql字段存储下来,只是单纯的存储到的redis中
// !diversion shareCoverImage shareOpenMethod没有作为单独的sql字段存储下来,只是单纯的存储到的redis中
// 目前对此打了补丁,存放到page的props中
// 目前对此打了补丁,存放到page的props中
pageData
.
props
.
diversion
=
diversion
;
pageData
.
props
.
diversion
=
diversion
;
...
@@ -99,7 +99,7 @@ export default class DashBoard extends Mixins(ContextMenuMixin, GoodsTabsMixin,
...
@@ -99,7 +99,7 @@ export default class DashBoard extends Mixins(ContextMenuMixin, GoodsTabsMixin,
// 如果存在sheme, 移除页面中的sacheme
// 如果存在sheme, 移除页面中的sacheme
delete
pageData
.
scheme
;
delete
pageData
.
scheme
;
separateAllScheme
(
pageData
.
elements
);
separateAllScheme
(
pageData
.
elements
);
const
pageInfo
=
{
diversion
,
page
:
JSON
.
stringify
(
pageData
),
author
:
user
?.
account
,
isPublish
,
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isTemplate
,
shareCoverImage
,
shareOpenMethod
}
as
pageInfo
;
const
pageInfo
=
{
diversion
,
page
:
JSON
.
stringify
(
pageData
),
author
:
user
?.
account
,
isPublish
,
pageName
,
pageDescribe
,
pageKeywords
,
coverImage
,
isTemplate
,
shareCoverImage
,
shareOpenMethod
,
validStartTime
,
validEndTime
,
redirectUrl
}
as
pageInfo
;
if
(
this
.
uuid
)
{
pageInfo
.
uuid
=
this
.
uuid
;
}
if
(
this
.
uuid
)
{
pageInfo
.
uuid
=
this
.
uuid
;
}
await
this
.
savePageData
({
pageInfo
,
pageData
:
this
.
pageData
});
await
this
.
savePageData
({
pageInfo
,
pageData
:
this
.
pageData
});
if
(
this
.
uuid
)
{
await
this
.
getPageDate
({
pageId
:
this
.
uuid
});
}
if
(
this
.
uuid
)
{
await
this
.
getPageDate
({
pageId
:
this
.
uuid
});
}
...
...
app/web/page/store/modules/editor/state.ts
View file @
c0eed525
...
@@ -59,6 +59,9 @@ export interface PageInfo {
...
@@ -59,6 +59,9 @@ export interface PageInfo {
uuid
?:
string
;
uuid
?:
string
;
tenantId
?:
number
;
tenantId
?:
number
;
diversion
?:
string
;
diversion
?:
string
;
redirectUrl
?:
string
;
validStartTime
?:
string
;
validEndTime
?:
string
;
}
}
export
default
interface
EditorState
{
export
default
interface
EditorState
{
...
@@ -83,6 +86,9 @@ export const defaultState = {
...
@@ -83,6 +86,9 @@ export const defaultState = {
isPublish
:
false
,
isPublish
:
false
,
isTemplate
:
false
,
isTemplate
:
false
,
uuid
:
''
,
uuid
:
''
,
validEndTime
:
''
,
validStartTime
:
''
,
redirectUrl
:
''
,
page
:
{
page
:
{
commonStyle
:
{
commonStyle
:
{
backgroundColor
:
'
#f7f8fa
'
,
backgroundColor
:
'
#f7f8fa
'
,
...
...
package.json
View file @
c0eed525
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
"test"
:
"cross-env NODE_ENV=production EGG_SERVER_ENV=sit egg-scripts start --port 80 --workers 1"
,
"test"
:
"cross-env NODE_ENV=production EGG_SERVER_ENV=sit egg-scripts start --port 80 --workers 1"
,
"stop"
:
"egg-scripts stop"
,
"stop"
:
"egg-scripts stop"
,
"backend"
:
"nohup egg-scripts start --port 7001 --workers 4"
,
"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 --port 7002"
,
"dev"
:
"cross-env NODE_ENV=test APOLLO_CLUSTER=k8s NAMESPACE=
ds
npm run apollo && egg-bin dev -r egg-ts-helper/register --port 7002"
,
"debug"
:
"egg-bin debug -r egg-ts-helper/register"
,
"debug"
:
"egg-bin debug -r egg-ts-helper/register"
,
"apollo"
:
"node bin/apollo.js"
,
"apollo"
:
"node bin/apollo.js"
,
"build"
:
"npm run tsc && cross-env NODE_ENV=production APOLLO_CLUSTER=3C npm run apollo && cross-env COS_ENV=production easy build --devtool"
,
"build"
:
"npm run tsc && 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