Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
E
exhibition_backstage
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
龙菲
exhibition_backstage
Commits
5be9917d
提交
5be9917d
authored
8月 19, 2022
作者:
龙菲
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
布展模板
上级
898ce3ab
隐藏空白字符变更
内嵌
并排
正在显示
10 个修改的文件
包含
123 行增加
和
157 行删除
+123
-157
NormalPlayer.vue
src/components/AudioPlayer/NormalPlayer.vue
+6
-3
index.vue
src/components/MenuList/index.vue
+3
-0
TableOperation.vue
src/components/Table/TableOperation.vue
+0
-17
index.vue
src/layout/components/Sidebar/index.vue
+42
-95
index.js
src/router/index.js
+9
-0
user.js
src/store/modules/user.js
+28
-6
ExhibitionUnit.vue
src/views/display/components/ExhibitionUnit.vue
+10
-5
InfoEditDialog.vue
src/views/display/components/InfoEditDialog.vue
+15
-26
ChStyle.vue
src/views/display/components/templates/ChStyle.vue
+1
-0
index.vue
src/views/display/index.vue
+9
-5
没有找到文件。
src/components/AudioPlayer/NormalPlayer.vue
浏览文件 @
5be9917d
...
...
@@ -239,14 +239,17 @@ export default {
width
:
100%
;
height
:
49px
;
line-height
:
49px
;
background
:
#f
6f6f6
;
background
:
#f
5f5f9
;
border-radius
:
6px
;
display
:
flex
;
padding
:
0
15px
;
.dialogAudioPlay
{
cursor
:
pointer
;
color
:
#5c5e66
;
font-size
:
20px
;
display
:
flex
;
align-items
:
center
;
color
:
#2069c4
;
font-size
:
38px
;
}
.progress-bar-bg
{
background-color
:
#fff
;
...
...
@@ -260,7 +263,7 @@ export default {
margin
:
0
10px
;
}
.progress-bar
{
background-color
:
#
56bf8b
;
background-color
:
#
2069c4
;
width
:
0%
;
height
:
10px
;
border-radius
:
5px
;
...
...
src/components/MenuList/index.vue
浏览文件 @
5be9917d
...
...
@@ -58,6 +58,9 @@ export default {
</
script
>
<
style
lang=
"scss"
scoped
>
.el-menu
{
border-right
:
none
;
}
.el-menu-item
{
background-color
:
#ecf5ff
;
color
:
#2069c4
;
...
...
src/components/Table/TableOperation.vue
浏览文件 @
5be9917d
<
template
>
<!--
<el-button-group>
<el-button
v-for=
"(op, index) in operations"
:key=
"index"
size=
"mini"
:icon=
"icons[op.type]"
@
click=
"clickOperation(op)"
:type=
"op.type == 'delete' ? 'danger' : 'primary'"
>
<span
v-if=
"op.type == 'delete'"
>
<el-popconfirm
title=
"确定删除当前文物吗?"
>
<span
slot=
"reference"
>
{{
op
.
title
}}
</span>
</el-popconfirm>
</span>
<span
v-else
>
{{
op
.
title
}}
</span>
</el-button>
</el-button-group>
-->
<span>
<span
v-for=
"(op, index) in operations"
:key=
"index"
>
<span
v-if=
"op.type == 'delete'"
>
...
...
src/layout/components/Sidebar/index.vue
浏览文件 @
5be9917d
...
...
@@ -33,66 +33,9 @@ export default {
components
:
{
SidebarItem
,
Logo
},
computed
:
{
...
mapGetters
([
"sidebar"
,
"menu"
]),
routes
()
{
console
.
log
(
this
.
menu
);
let
obj
=
{};
let
that
=
this
;
traverseMenuList
(
this
.
menu
||
[]);
that
.
addParentKeyWrapper
(
that
.
$router
.
options
.
routes
);
//为路由树增加parentKey
let
flattenRouterData
=
that
.
flattenTreeDataClosure
(
that
.
$router
.
options
.
routes
);
// debugger
let
newMenu
=
getNewMenu
(
that
.
$router
.
options
.
routes
);
newMenu
.
map
((
item
)
=>
{
if
(
!
item
.
hidden
)
{
let
parent
=
that
.
findParent
(
item
.
name
,
flattenRouterData
);
that
.
$router
.
options
.
routes
.
map
((
v
)
=>
{
if
(
v
==
parent
)
{
v
.
hidden
=
false
;
}
});
}
});
function
traverseMenuList
(
arr
)
{
if
(
arr
.
length
>
0
)
{
arr
.
map
((
item
)
=>
{
if
(
item
.
menuName
)
{
obj
[
item
.
menuName
]
=
true
;
}
if
(
item
.
children
)
{
traverseMenuList
(
item
.
children
);
}
});
}
}
// 设置需要隐藏的菜单
function
getNewMenu
(
arr
)
{
// debugger
arr
.
map
((
item
)
=>
{
if
(
!
item
.
name
||
item
.
hidden
)
{
return
;
}
else
{
item
.
hidden
=
item
.
hidden
?
item
.
hidden
:
!
obj
[
item
.
name
];
// 如果该节点要显示,则获取到该节点的父节点并显示该父节点
// if (!item.hidden) {
// // console.log(222, item);
// // debugger;
// let parent = that.findParent(item.name, flattenRouterData);
// console.log(111, parent);
// }
if
(
item
.
children
)
{
getNewMenu
(
item
.
children
);
}
}
});
return
arr
;
}
// console.log(obj);
return
newMenu
;
},
// routes() {
// return this.getRoute()
// },
activeMenu
()
{
const
route
=
this
.
$route
;
const
{
meta
,
path
}
=
route
;
...
...
@@ -112,45 +55,49 @@ export default {
return
!
this
.
sidebar
.
opened
;
},
},
data
()
{
return
{
routes
:
[],
};
},
created
()
{
this
.
routes
=
this
.
$router
.
options
.
routes
;
// this.routes = this.getRoute()
// let parentArr = []
// for (const key in this.menu) {
// parentArr.push(key+'Menu')
// }
// this.routes.map(item=>{
// parentArr.map(pr=>{
// if (condition) {
// }
// })
// })
// console.log('parentArr',parentArr);
},
methods
:
{
// 1. 为子节点添加父级的key
addParentKeyWrapper
(
tree
)
{
// debugger
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
tree
));
// 深度克隆(deepClone)
function
addParentKey
(
data
,
parentKey
)
{
data
.
forEach
((
ele
)
=>
{
ele
.
parent
=
parentKey
;
if
(
ele
.
children
)
{
addParentKey
(
ele
.
children
,
ele
.
name
);
}
});
}
addParentKey
(
data
,
null
);
// 一开始的时候是null
return
data
;
},
// 将树拉平,节点之间通过parentKey联系
flattenTreeDataClosure
(
data
)
{
const
treeData
=
JSON
.
parse
(
JSON
.
stringify
(
data
));
const
flattenData
=
[];
function
flattenTree
(
data
,
parentKey
)
{
data
.
forEach
((
ele
)
=>
{
// const { name } = ele;
flattenData
.
push
({
name
:
ele
.
name
,
parentKey
});
if
(
ele
.
children
)
{
flattenTree
(
ele
.
children
,
ele
.
name
);
getRoute
()
{
let
that
=
this
;
let
newMenu
=
getNewMenu
(
that
.
$router
.
options
.
routes
);
// 设置需要隐藏的菜单
function
getNewMenu
(
arr
)
{
// debugger
arr
.
map
((
item
)
=>
{
if
(
!
item
.
name
)
{
return
;
}
else
{
item
.
hidden
=
item
.
hasOwnProperty
(
"hidden"
)
?
item
.
hidden
:
!
that
.
menu
[
item
.
name
];
if
(
item
.
children
)
{
getNewMenu
(
item
.
children
);
}
}
});
return
arr
;
}
flattenTree
(
treeData
,
null
);
return
flattenData
;
},
// 找到某个元素的父节点
findParent
(
item
,
flattenTree
)
{
return
flattenTree
.
find
((
ele
)
=>
{
return
ele
.
name
===
item
;
});
return
newMenu
;
},
},
};
...
...
src/router/index.js
浏览文件 @
5be9917d
...
...
@@ -47,6 +47,7 @@ export const constantRoutes = [{
component
:
Layout
,
redirect
:
'/home'
,
name
:
'HomeMenu'
,
hidden
:
false
,
children
:
[{
path
:
'home'
,
name
:
'Home'
,
...
...
@@ -61,6 +62,7 @@ export const constantRoutes = [{
path
:
'/display'
,
component
:
Layout
,
name
:
'DisplayMenu'
,
hidden
:
false
,
children
:
[{
path
:
'display'
,
name
:
'Display'
,
...
...
@@ -75,6 +77,7 @@ export const constantRoutes = [{
path
:
'/boutique'
,
component
:
Layout
,
name
:
'BoutiqueMenu'
,
hidden
:
false
,
children
:
[{
path
:
'boutique'
,
name
:
'Boutique'
,
...
...
@@ -89,6 +92,7 @@ export const constantRoutes = [{
path
:
'/culturalRelic'
,
component
:
Layout
,
name
:
'CulturalRelicMenu'
,
hidden
:
false
,
children
:
[{
path
:
'culturalRelic'
,
name
:
'CulturalRelic'
,
...
...
@@ -103,6 +107,7 @@ export const constantRoutes = [{
path
:
'/museum'
,
component
:
Layout
,
name
:
'MuseumRelicMenu'
,
hidden
:
false
,
children
:
[{
path
:
'museum'
,
name
:
'Museum'
,
...
...
@@ -117,6 +122,7 @@ export const constantRoutes = [{
path
:
'/virtual'
,
component
:
Layout
,
name
:
'VirtualMenu'
,
hidden
:
false
,
children
:
[{
path
:
'virtual'
,
name
:
'Virtual'
,
...
...
@@ -131,6 +137,7 @@ export const constantRoutes = [{
path
:
'/literature'
,
component
:
Layout
,
name
:
'LiteratureMenu'
,
hidden
:
false
,
children
:
[{
path
:
'literature'
,
name
:
'Literature'
,
...
...
@@ -145,6 +152,7 @@ export const constantRoutes = [{
path
:
'/log'
,
component
:
Layout
,
name
:
'LogMenu'
,
hidden
:
false
,
children
:
[{
path
:
'log'
,
name
:
'Log'
,
...
...
@@ -159,6 +167,7 @@ export const constantRoutes = [{
path
:
'/importExport'
,
component
:
Layout
,
name
:
'ImportExportMenu'
,
hidden
:
false
,
children
:
[{
path
:
'importExport'
,
name
:
'ImportExport'
,
...
...
src/store/modules/user.js
浏览文件 @
5be9917d
...
...
@@ -22,7 +22,7 @@ const getDefaultState = () => {
return
{
token
:
getToken
(),
userInfo
:
getUserInfo
(),
menu
:
getLocalMenu
(),
menu
:
getLocalMenu
(),
name
:
''
,
avatar
:
''
,
}
...
...
@@ -46,7 +46,7 @@ const mutations = {
SET_USERINFO
:
(
state
,
userInfo
)
=>
{
state
.
userInfo
=
userInfo
},
SET_MENU
:
(
state
,
menu
)
=>
{
SET_MENU
:
(
state
,
menu
)
=>
{
state
.
menu
=
menu
}
}
...
...
@@ -94,6 +94,7 @@ const actions = {
removeLocalMenu
()
resetRouter
()
commit
(
'RESET_STATE'
)
window
.
location
.
reload
()
//刷新路由表
resolve
()
}).
catch
(
error
=>
{
console
.
log
(
'err'
,
error
);
...
...
@@ -119,18 +120,39 @@ const actions = {
console
.
log
(
'getMenuList'
);
return
new
Promise
((
resolve
,
reject
)
=>
{
getMenu
().
then
((
res
)
=>
{
console
.
log
(
res
);
const
{
menus
}
=
res
.
data
commit
(
'SET_MENU'
,
menus
)
setLocalMenu
(
menus
)
let
menuObj
=
getMenuObj
(
menus
)
function
getMenuObj
(
menu
)
{
let
obj
=
{}
traverseMenuList
(
menu
||
[]);
function
traverseMenuList
(
arr
)
{
if
(
arr
.
length
>
0
)
{
arr
.
map
((
item
)
=>
{
if
(
item
.
menuName
)
{
obj
[
item
.
menuName
]
=
true
;
}
if
(
item
.
children
)
{
traverseMenuList
(
item
.
children
);
}
});
}
}
return
obj
}
commit
(
'SET_MENU'
,
menuObj
)
setLocalMenu
(
menuObj
)
resolve
()
}).
catch
(
error
=>
{
reject
(
error
)
})
})
}
},
}
...
...
src/views/display/components/ExhibitionUnit.vue
浏览文件 @
5be9917d
...
...
@@ -10,16 +10,16 @@
>
<div
class=
"exhibition-units-tree-node"
slot-scope=
"
{ node, data }">
<el-row
:gutter=
"20"
>
<el-col
:span=
"10"
class=
"mg-bt20"
>
<
!--
<
el-col
:span=
"10"
class=
"mg-bt20"
>
<el-input
placeholder=
"请输入层级(如:第一单元)"
v-model=
"data.unit"
>
</el-input>
<span
style=
"display: inline-block; padding: 0 4px"
>
—
</span>
</el-col>
</el-col>
-->
<el-col
:span=
"
1
0"
class=
"mg-bt20"
>
<el-col
:span=
"
2
0"
class=
"mg-bt20"
>
<el-input
placeholder=
"请输入标题"
v-model=
"data.title"
>
</el-input>
</el-col>
<el-col
:span=
"4"
>
...
...
@@ -236,7 +236,7 @@ export default {
euId
:
euId
++
,
// unit: "",
title
:
""
,
intro
:
""
,
//
intro: "",
showMediaUploader
:
false
,
// showImageUploader: false,
// showVideoUploader: false,
...
...
@@ -274,7 +274,12 @@ export default {
},
remove
(
node
,
data
)
{
const
parent
=
node
.
parent
;
const
children
=
parent
.
data
;
let
children
=
""
;
if
(
parent
.
data
instanceof
Array
)
{
children
=
parent
.
data
;
}
else
{
children
=
parent
.
data
.
children
;
}
const
index
=
children
.
findIndex
((
d
)
=>
d
.
euId
===
data
.
euId
);
children
.
splice
(
index
,
1
);
},
...
...
src/views/display/components/InfoEditDialog.vue
浏览文件 @
5be9917d
...
...
@@ -77,6 +77,17 @@
>
</el-input>
</el-form-item>
<el-form-item
label=
"展览介绍"
:label-width=
"formLabelWidth"
>
<el-input
type=
"textarea"
placeholder=
"请输入展览介绍"
v-model=
"dialogForm.intro"
maxlength=
"1000"
show-word-limit
rows=
"6"
>
</el-input>
</el-form-item>
<el-form-item
label=
"展览封面"
:label-width=
"formLabelWidth"
>
<ManualUploader
:fileLimit=
"1"
...
...
@@ -105,16 +116,7 @@
placeholder=
"请输入关键词"
></el-input>
</el-form-item>
<el-form-item
label=
"展览介绍"
:label-width=
"formLabelWidth"
>
<el-input
type=
"textarea"
placeholder=
"请输入展览介绍"
v-model=
"dialogForm.intro"
maxlength=
"300"
show-word-limit
>
</el-input>
</el-form-item>
<el-form-item
label=
"展览文物"
:label-width=
"formLabelWidth"
>
<el-select
v-model=
"crIds"
...
...
@@ -254,23 +256,9 @@ export default {
if
(
value
)
{
this
.
dialogForm
=
JSON
.
parse
(
JSON
.
stringify
(
value
));
if
(
(
this
.
dialogForm
.
exhibitionUnits
&&
this
.
dialogForm
.
exhibitionUnits
.
length
==
0
)
||
!
this
.
dialogForm
.
exhibitionUnits
this
.
dialogForm
.
exhibitionUnits
&&
this
.
dialogForm
.
exhibitionUnits
.
length
>
0
)
{
// this.dialogForm.exhibitionUnits = [
// {
// euId: 1, //后期去掉
// // unit: "", //单元名称,如前言、第一单元,暂时忽略
// title: "", //单元标题,类似主题名称
// intro: "", //单元介绍
// images: "", //图片id集合
// videos: "", //视频id集合
// crIds: [], //关联文物集合
// // showMediaUploader: false,
// },
// ];
}
else
{
loopUnit
(
this
.
dialogForm
.
exhibitionUnits
);
function
loopUnit
(
arr
)
{
arr
.
forEach
((
unit
)
=>
{
...
...
@@ -432,6 +420,7 @@ export default {
},
async
handleSubmit
()
{
this
.
loading
=
true
;
var
that
=
this
;
let
formData
=
new
FormData
();
// 已存在的文件的对象
...
...
src/views/display/components/templates/ChStyle.vue
浏览文件 @
5be9917d
...
...
@@ -735,6 +735,7 @@ export default {
width
:
100%
;
height
:
569px
;
background-image
:
url('~@/assets/imgs/display/lts-bg.png')
;
overflow-x
:
hidden
;
}
}
}
...
...
src/views/display/index.vue
浏览文件 @
5be9917d
...
...
@@ -237,17 +237,21 @@ export default {
}
},
async
handleOperation
(
value
,
row
)
{
cons
t
{
exhibitionId
}
=
row
;
cons
ole
.
log
(
value
,
row
)
;
switch
(
value
.
type
)
{
case
"add"
:
this
.
editDialogVisible
=
true
;
case
"view"
:
this
.
previewDialogVisible
=
true
;
let
res
=
await
getDisplayById
({
exhibitionId
});
this
.
curPreviewObj
=
res
.
data
;
if
(
row
)
{
this
.
previewDialogVisible
=
true
;
let
res
=
await
getDisplayById
({
exhibitionId
:
row
.
exhibitionId
});
this
.
curPreviewObj
=
res
.
data
;
}
break
;
case
"edit"
:
let
editRes
=
await
getDisplayById
({
exhibitionId
});
let
editRes
=
await
getDisplayById
({
exhibitionId
:
row
.
exhibitionId
,
});
this
.
form
=
editRes
.
data
;
this
.
editDialogVisible
=
true
;
break
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论