Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
eec3a218
authored
Dec 07, 2023
by
owen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
营销:完善装修编辑器重置功能
parent
9128fa98
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
9 deletions
+51
-9
src/components/DiyEditor/index.vue
+7
-4
src/layout/components/AppView.vue
+12
-1
src/views/mall/promotion/diy/template/decorate.vue
+32
-4
No files found.
src/components/DiyEditor/index.vue
View file @
eec3a218
...
@@ -102,8 +102,8 @@
...
@@ -102,8 +102,8 @@
<!-- 组件名称 -->
<!-- 组件名称 -->
<
template
#
header
>
<
template
#
header
>
<div
class=
"flex items-center gap-8px"
>
<div
class=
"flex items-center gap-8px"
>
<Icon
:icon=
"selectedComponent.icon"
color=
"gray"
/>
<Icon
:icon=
"selectedComponent
?
.icon"
color=
"gray"
/>
<span>
{{
selectedComponent
.
name
}}
</span>
<span>
{{
selectedComponent
?
.
name
}}
</span>
</div>
</div>
</
template
>
</
template
>
<el-scrollbar
<el-scrollbar
...
@@ -111,7 +111,7 @@
...
@@ -111,7 +111,7 @@
view-class=
"p-[var(--el-card-padding)] p-b-[calc(var(--el-card-padding)+var(--el-card-padding))] property"
view-class=
"p-[var(--el-card-padding)] p-b-[calc(var(--el-card-padding)+var(--el-card-padding))] property"
>
>
<component
<component
:is=
"selectedComponent.id + 'Property'"
:is=
"selectedComponent
?
.id + 'Property'"
v-model=
"selectedComponent.property"
v-model=
"selectedComponent.property"
/>
/>
</el-scrollbar>
</el-scrollbar>
...
@@ -306,9 +306,12 @@ const handleDeleteComponent = (index: number) => {
...
@@ -306,9 +306,12 @@ const handleDeleteComponent = (index: number) => {
// 工具栏操作
// 工具栏操作
const
emits
=
defineEmits
([
'reset'
,
'preview'
,
'save'
,
'update:modelValue'
])
const
emits
=
defineEmits
([
'reset'
,
'preview'
,
'save'
,
'update:modelValue'
])
// 注入无感刷新页面函数
const
reload
=
inject
<
()
=>
void
>
(
'reload'
)
// 重置
// 重置
const
handleReset
=
()
=>
{
const
handleReset
=
()
=>
{
message
.
warning
(
'开发中~'
)
if
(
reload
)
reload
(
)
emits
(
'reset'
)
emits
(
'reset'
)
}
}
// 预览
// 预览
...
...
src/layout/components/AppView.vue
View file @
eec3a218
...
@@ -20,6 +20,17 @@ const getCaches = computed((): string[] => {
...
@@ -20,6 +20,17 @@ const getCaches = computed((): string[] => {
})
})
const
tagsView
=
computed
(()
=>
appStore
.
getTagsView
)
const
tagsView
=
computed
(()
=>
appStore
.
getTagsView
)
//region 无感刷新
const
routerAlive
=
ref
(
true
)
// 无感刷新,防止出现页面闪烁白屏
const
reload
=
()
=>
{
routerAlive
.
value
=
false
nextTick
(()
=>
(
routerAlive
.
value
=
true
))
}
// 为组件后代提供刷新方法
provide
(
'reload'
,
reload
)
//endregion
</
script
>
</
script
>
<
template
>
<
template
>
...
@@ -49,7 +60,7 @@ const tagsView = computed(() => appStore.getTagsView)
...
@@ -49,7 +60,7 @@ const tagsView = computed(() => appStore.getTagsView)
}
}
]"
]"
>
>
<router-view>
<router-view
v-if=
"routerAlive"
>
<template
#
default=
"
{ Component, route }">
<template
#
default=
"
{ Component, route }">
<keep-alive
:include=
"getCaches"
>
<keep-alive
:include=
"getCaches"
>
<component
:is=
"Component"
:key=
"route.fullPath"
/>
<component
:is=
"Component"
:key=
"route.fullPath"
/>
...
...
src/views/mall/promotion/diy/template/decorate.vue
View file @
eec3a218
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
:show-tab-bar=
"selectedTemplateItem === 0"
:show-tab-bar=
"selectedTemplateItem === 0"
:show-navigation-bar=
"selectedTemplateItem !== 0"
:show-navigation-bar=
"selectedTemplateItem !== 0"
@
save=
"submitForm"
@
save=
"submitForm"
@
reset=
"handleEditorReset"
>
>
<template
#
toolBarLeft
>
<template
#
toolBarLeft
>
<el-radio-group
<el-radio-group
...
@@ -29,6 +30,7 @@ import * as DiyTemplateApi from '@/api/mall/promotion/diy/template'
...
@@ -29,6 +30,7 @@ import * as DiyTemplateApi from '@/api/mall/promotion/diy/template'
import
*
as
DiyPageApi
from
'@/api/mall/promotion/diy/page'
import
*
as
DiyPageApi
from
'@/api/mall/promotion/diy/page'
import
{
useTagsViewStore
}
from
'@/store/modules/tagsView'
import
{
useTagsViewStore
}
from
'@/store/modules/tagsView'
import
{
DiyComponentLibrary
,
PAGE_LIBS
}
from
'@/components/DiyEditor/util'
import
{
DiyComponentLibrary
,
PAGE_LIBS
}
from
'@/components/DiyEditor/util'
import
{
toNumber
}
from
'lodash-es'
/** 装修模板表单 */
/** 装修模板表单 */
defineOptions
({
name
:
'DiyTemplateDecorate'
})
defineOptions
({
name
:
'DiyTemplateDecorate'
})
...
@@ -115,17 +117,43 @@ const resetForm = () => {
...
@@ -115,17 +117,43 @@ const resetForm = () => {
formRef
.
value
?.
resetFields
()
formRef
.
value
?.
resetFields
()
}
}
// 重置时记录当前编辑的页面
const
handleEditorReset
=
()
=>
storePageIndex
()
//#region 无感刷新
// 记录标识
const
DIY_PAGE_INDEX_KEY
=
'diy_page_index'
// 1. 记录
const
storePageIndex
=
()
=>
sessionStorage
.
setItem
(
DIY_PAGE_INDEX_KEY
,
`
${
selectedTemplateItem
.
value
}
`
)
// 2. 恢复
const
recoverPageIndex
=
()
=>
{
// 恢复重置前的页面,默认是第一个页面
const
pageIndex
=
toNumber
(
sessionStorage
.
getItem
(
DIY_PAGE_INDEX_KEY
))
||
0
// 移除标记
sessionStorage
.
removeItem
(
DIY_PAGE_INDEX_KEY
)
// 切换页面
if
(
pageIndex
!==
selectedTemplateItem
.
value
)
{
selectedTemplateItem
.
value
=
pageIndex
handleTemplateItemChange
()
}
}
//#endregion
/** 初始化 **/
/** 初始化 **/
const
{
currentRoute
}
=
useRouter
()
// 路由
const
{
currentRoute
}
=
useRouter
()
// 路由
const
{
delView
}
=
useTagsViewStore
()
// 视图操作
const
{
delView
}
=
useTagsViewStore
()
// 视图操作
const
route
=
useRoute
()
onMounted
(
async
()
=>
{
onMounted
(()
=>
{
resetForm
()
resetForm
()
if
(
!
rout
e
.
params
.
id
)
{
if
(
!
currentRoute
.
valu
e
.
params
.
id
)
{
message
.
warning
(
'参数错误,页面编号不能为空!'
)
message
.
warning
(
'参数错误,页面编号不能为空!'
)
delView
(
unref
(
currentRoute
))
delView
(
unref
(
currentRoute
))
return
return
}
}
getPageDetail
(
route
.
params
.
id
)
// 查询详情
await
getPageDetail
(
currentRoute
.
value
.
params
.
id
)
// 恢复重置前的页面
recoverPageIndex
()
})
})
</
script
>
</
script
>
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