Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
C
common-templete
Overview
Overview
Details
Activity
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
汤强勇
common-templete
Commits
58e7576b
You need to sign in or sign up before continuing.
Commit
58e7576b
authored
Nov 14, 2018
by
高淑倩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
modified:histroy
parent
258bb80d
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
211 additions
and
159 deletions
+211
-159
index.js
src/api/global/index.js
+2
-2
index.vue
src/components/Header/index.vue
+169
-134
index.vue
src/components/Sidebar/index.vue
+22
-20
index.js
src/http/index.js
+2
-1
index.js
src/router/index.js
+2
-1
index.js
src/store/global/index.js
+14
-1
No files found.
src/api/global/index.js
View file @
58e7576b
import
{
Http
}
from
'@/http'
class
Global
extends
Http
{
getMenus
(
params
)
{
return
this
.
get
(
'getMenus'
,
params
)
// return this.get('getMenus', params)
return
this
.
get
(
'securityManage/menuList!menuMapList.do'
,
params
)
}
getProjectInfo
()
{
return
this
.
get
(
'securityManage/menuList!getStoreInfo.do'
)
}
...
...
src/components/Header/index.vue
View file @
58e7576b
...
...
@@ -16,7 +16,7 @@
popper-class="historys-popper",
trigger="click")
.historys-body
.history-list--item.clearfix(v-for='historyItem in historys
')
.history-list--item.clearfix(v-for='historyItem in historys
MenuJson
')
.name.fl
{{
historyItem
.
name
}}
.time.fr
{{
historyItem
.
time
}}
a.link(slot="reference")
...
...
@@ -34,8 +34,8 @@
.opration-list--item.clearfix(v-for='opration in oprations ')
.name.fl(@click="gotoPage(opration.link)")
{{
opration
.
name
}}
a.link(slot="reference")
img.user-img(':src'="
project.
user_logo")
span.user-name
{{
project
.
StoreShortName
}}
img.user-img(':src'="user_logo")
span.user-name
{{
StoreShortName
}}
i.fa.fa-angle-down
li.nav-item.fr
a.link(@click="showMessage()")
...
...
@@ -84,6 +84,167 @@
':class':"{ active:formatPathString(index,idx,inx) === currentSelectIndex}"
})
{{
i
.
name
}}
</
template
>
<
script
>
import
{
setCookie
,
getCookie
}
from
'@/utils'
import
{
mapGetters
,
mapActions
,
mapState
,
mapMutations
}
from
'vuex'
import
message
from
'./message'
import
{
returnStatement
}
from
'babel-types'
;
import
{
debounce
}
from
'rxjs/operators'
;
require
(
'@/lib/slimscroll/slimscroll'
)
export
default
{
name
:
'headerNav'
,
data
()
{
return
{
showMenusPanel
:
false
,
showEditMenusPanel
:
false
,
showMessagePanelcontrol
:
null
,
currentIndexPath
:
[
1
,
2
,
0
],
currentSelectIndex
:
-
1
,
StoreShortName
:
''
,
user_logo
:
''
,
historysList
:
[],
oprations
:
[{
name
:
'修改密码'
,
link
:
'http://www.baidu.com'
},
{
name
:
'安全退出'
,
link
:
'http://www.baidu.com'
}],
helpers
:
[{
name
:
'点击联系客服'
,
link
:
'http://wpa.qq.com/msgrd?v=3&uin=2844377940&site=qq&menu=yes'
,
icon
:
'fa-qq'
,
style
:
{
background
:
'#ff9293'
,
color
:
'#fff'
}
},
{
name
:
'使用帮助'
,
link
:
'http://help.bigaka.com/'
,
style
:
{
background
:
'#40b0ff'
,
color
:
'#fff'
},
icon
:
'fa-info'
},
{
name
:
'舞象客服'
,
link
:
'http://help.bigaka.com/'
,
style
:
{
background
:
'#e0e0e0'
,
color
:
'#000'
},
icon
:
'fa-user-circle-o'
}],
// historys: [{'name': '自动标签', 'index': '1,0,2', 'time': '2018-11-01 10:06:07'}, {'name': '快速查询', 'index': '1,0,0', 'time': '2018-10-31 17:17:09'}, {'name': '营销推送', 'index': '2,0,0', 'time': '2018-10-31 17:12:53'}, {'name': '会员圈选', 'index': '1,0,1', 'time': '2018-10-31 16:52:47'}, {'name': '概览', 'index': '0,0,0', 'time': '2018-10-31 13:31:59'}, {'name': '趋势', 'index': '0,1,0', 'time': '2018-10-29 15:52:31'}, {'name': '会员卡设置', 'index': '1,1,0', 'time': '2018-10-29 15:51:00'}, {'name': '生日营销(new)', 'index': '2,0,2', 'time': '2018-10-29 15:50:18'}],
historys
:
[]
}
},
filters
:
{
limit
(
array
,
num
)
{
if
(
num
)
{
return
array
}
return
array
.
slice
(
0
,
num
)
},
pipeString
(...
args
)
{
return
args
.
join
(
'-'
)
}
},
props
:
[
'icon'
,
'link'
,
'type'
,
'id'
,
'sort'
,
'name'
,
'pid'
,
'grade'
],
computed
:
{
historysLimit
()
{
let
historys
=
this
.
historysList
if
(
historys
.
length
>
5
)
{
return
historys
.
slice
(
0
,
5
)
}
else
{
return
[...
historys
]
}
},
...
mapState
([
'headerHistory'
]),
historysMenuJson
()
{
const
storeId
=
this
.
project
&&
this
.
project
.
data
.
userDto
.
storeUserInfo
.
storeId
const
menuHistoryJson
=
localStorage
.
getItem
(
'menuHistoryJson'
+
storeId
)
?
JSON
.
parse
(
localStorage
.
getItem
(
'menuHistoryJson'
+
storeId
)):
[]
if
(
menuHistoryJson
.
length
>
15
)
{
this
.
historysList
=
menuHistoryJson
.
slice
(
0
,
15
)
this
.
$store
.
commit
(
'HEADER_HISTORY'
,
this
.
historysList
)
}
else
{
this
.
historysList
=
menuHistoryJson
this
.
$store
.
commit
(
'HEADER_HISTORY'
,
this
.
historysList
)
}
return
[...
this
.
historysList
]
},
...
mapGetters
({
project
:
'getProjectInfo'
,
menus
:
'getMenus'
,
editMenus
:
'getEditMenus'
,
sidebarUnfoldInfo
:
'getSidebarUnfoldInfo'
})
},
components
:
{
message
},
mounted
()
{
const
index
=
getCookie
(
'cur_menu_index'
)
const
indexPath
=
index
.
split
(
','
).
reverse
()
this
.
currentSelectIndex
=
indexPath
[
1
]
// 商户信息
if
(
this
.
project
&&
this
.
project
.
data
){
this
.
StoreShortName
=
this
.
project
.
data
.
userDto
.
storeUserInfo
.
loginName
if
(
!
this
.
project
.
data
.
userDto
.
storeUserInfo
.
imageDomain
)
{
this
.
user_logo
=
'http://photoshop.bigaka.com/photos/default/default_logo.jpg'
}
else
{
this
.
user_logo
=
this
.
project
.
data
.
userDto
.
storeUserInfo
.
imageDomain
}
}
},
methods
:
{
...
mapActions
([
'showEditMenus'
,
'hideEditMenus'
]),
clickItem
()
{
console
.
log
(
'this is header index %o'
,
this
)
},
showMessage
()
{
if
(
this
.
showMessagePanelcontrol
)
{
this
.
showMessagePanelcontrol
.
close
()
this
.
showMessagePanelcontrol
=
null
}
else
{
const
h
=
this
.
$createElement
this
.
showMessagePanelcontrol
=
this
.
$notify
({
title
:
'消息中心'
,
message
:
h
(
'message'
),
duration
:
0
,
onClose
:
()
=>
{
this
.
showMessagePanelcontrol
=
null
},
customClass
:
'message-panel'
})
}
},
handleOpen
()
{},
handleClose
()
{},
handleShowMenus
()
{
this
.
showMenusPanel
=
!
this
.
showMenusPanel
},
toggleMenus
(...
args
)
{
console
.
log
(
'this is header toggleMenus %o'
,
args
)
},
handleEditMenus
()
{
if
(
!
this
.
editMenus
)
{
this
.
showEditMenus
()
}
else
{
this
.
hideEditMenus
()
}
},
setActiveStyle
(
item
,
ev
)
{
this
.
currentSelectIndex
=
ev
.
index
console
.
log
(
'this is header setActiveStyle %o'
,
item
)
},
formatPathString
(...
args
)
{
return
args
.
join
(
'-'
)
},
handlerHelperClick
(
item
)
{
this
.
$router
.
push
({
path
:
`/
${
item
.
link
}
`
})
},
gotoPage
(
link
)
{
this
.
$router
.
push
({
path
:
`/
${
link
}
`
})
}
}
}
</
script
>
<
style
lang=
"stylus"
>
.header-container
position
fixed
...
...
@@ -216,6 +377,11 @@
&
:hover
,
&
:focus
background
none
.history-list--item
padding
12px
20px
!
important
display
inline-block
!
important
.time
text-align
right
.history-list--item
,
.helper-list--item
,
.opration-list--item
...
...
@@ -277,134 +443,3 @@
}
}
</
style
>
<
script
>
import
{
setCookie
,
getCookie
}
from
'@/utils'
import
{
mapGetters
,
mapActions
}
from
'vuex'
import
message
from
'./message'
require
(
'@/lib/slimscroll/slimscroll'
)
export
default
{
name
:
'headerNav'
,
data
()
{
return
{
showMenusPanel
:
false
,
showEditMenusPanel
:
false
,
showMessagePanelcontrol
:
null
,
currentIndexPath
:
[
1
,
2
,
0
],
currentSelectIndex
:
-
1
,
oprations
:
[{
name
:
'修改密码'
,
link
:
'http://www.baidu.com'
},
{
name
:
'安全退出'
,
link
:
'http://www.baidu.com'
}],
helpers
:
[{
name
:
'点击联系客服'
,
link
:
'http://wpa.qq.com/msgrd?v=3&uin=2844377940&site=qq&menu=yes'
,
icon
:
'fa-qq'
,
style
:
{
background
:
'#ff9293'
,
color
:
'#fff'
}
},
{
name
:
'使用帮助'
,
link
:
'http://help.bigaka.com/'
,
style
:
{
background
:
'#40b0ff'
,
color
:
'#fff'
},
icon
:
'fa-info'
},
{
name
:
'舞象客服'
,
link
:
'http://help.bigaka.com/'
,
style
:
{
background
:
'#e0e0e0'
,
color
:
'#000'
},
icon
:
'fa-user-circle-o'
}],
historys
:
[{
'name'
:
'自动标签'
,
'index'
:
'1,0,2'
,
'time'
:
'2018-11-01 10:06:07'
},
{
'name'
:
'快速查询'
,
'index'
:
'1,0,0'
,
'time'
:
'2018-10-31 17:17:09'
},
{
'name'
:
'营销推送'
,
'index'
:
'2,0,0'
,
'time'
:
'2018-10-31 17:12:53'
},
{
'name'
:
'会员圈选'
,
'index'
:
'1,0,1'
,
'time'
:
'2018-10-31 16:52:47'
},
{
'name'
:
'概览'
,
'index'
:
'0,0,0'
,
'time'
:
'2018-10-31 13:31:59'
},
{
'name'
:
'趋势'
,
'index'
:
'0,1,0'
,
'time'
:
'2018-10-29 15:52:31'
},
{
'name'
:
'会员卡设置'
,
'index'
:
'1,1,0'
,
'time'
:
'2018-10-29 15:51:00'
},
{
'name'
:
'生日营销(new)'
,
'index'
:
'2,0,2'
,
'time'
:
'2018-10-29 15:50:18'
}]
}
},
filters
:
{
limit
(
array
,
num
)
{
if
(
num
)
{
return
array
}
return
array
.
slice
(
0
,
num
)
},
pipeString
(...
args
)
{
return
args
.
join
(
'-'
)
}
},
props
:
[
'icon'
,
'link'
,
'type'
,
'id'
,
'sort'
,
'name'
,
'pid'
,
'grade'
],
computed
:
{
historysLimit
()
{
let
historys
=
this
.
historys
if
(
historys
.
length
>
5
)
{
return
historys
.
slice
(
0
,
5
)
}
else
{
return
[...
historys
]
}
},
...
mapGetters
({
project
:
'getProjectInfo'
,
menus
:
'getMenus'
,
editMenus
:
'getEditMenus'
,
sidebarUnfoldInfo
:
'getSidebarUnfoldInfo'
})
},
components
:
{
message
},
mounted
()
{
const
index
=
getCookie
(
'cur_menu_index'
)
const
indexPath
=
index
.
split
(
','
).
reverse
()
this
.
currentSelectIndex
=
indexPath
[
1
]
},
methods
:
{
...
mapActions
([
'showEditMenus'
,
'hideEditMenus'
]),
clickItem
()
{
console
.
log
(
'this is header index %o'
,
this
)
},
showMessage
()
{
if
(
this
.
showMessagePanelcontrol
)
{
this
.
showMessagePanelcontrol
.
close
()
this
.
showMessagePanelcontrol
=
null
}
else
{
const
h
=
this
.
$createElement
this
.
showMessagePanelcontrol
=
this
.
$notify
({
title
:
'消息中心'
,
message
:
h
(
'message'
),
duration
:
0
,
onClose
:
()
=>
{
this
.
showMessagePanelcontrol
=
null
},
customClass
:
'message-panel'
})
}
},
handleOpen
()
{},
handleClose
()
{},
handleShowMenus
()
{
this
.
showMenusPanel
=
!
this
.
showMenusPanel
},
toggleMenus
(...
args
)
{
console
.
log
(
'this is header toggleMenus %o'
,
args
)
},
handleEditMenus
()
{
if
(
!
this
.
editMenus
)
{
this
.
showEditMenus
()
}
else
{
this
.
hideEditMenus
()
}
},
setActiveStyle
(
item
,
ev
)
{
this
.
currentSelectIndex
=
ev
.
index
console
.
log
(
'this is header setActiveStyle %o'
,
item
)
},
formatPathString
(...
args
)
{
return
args
.
join
(
'-'
)
},
handlerHelperClick
(
item
)
{
this
.
$router
.
push
({
path
:
`/
${
item
.
link
}
`
})
},
gotoPage
(
link
)
{
this
.
$router
.
push
({
path
:
`/
${
link
}
`
})
}
}
}
</
script
>
src/components/Sidebar/index.vue
View file @
58e7576b
...
...
@@ -41,6 +41,7 @@
import
{
mapGetters
,
mapActions
}
from
'vuex'
import
{
calcIndexPathByCurrentRouter
}
from
'@/utils'
import
sidebarItem
from
'../sidebarItem'
const
CrossStorageClient
=
require
(
'cross-storage'
).
CrossStorageClient
const
crmDomain
=
location
.
hostname
const
crossStorage
=
new
CrossStorageClient
(
`
${
crmDomain
}
/hub.jsp`
,
{
...
...
@@ -48,6 +49,7 @@ const crossStorage = new CrossStorageClient(`${crmDomain}/hub.jsp`, {
frameId
:
'storageFrame'
,
})
const
logo
=
require
(
'@/assets/images/sidebar/logo-blue.png'
)
export
default
{
data
()
{
return
{
...
...
@@ -85,16 +87,12 @@ export default {
methods
:
{
handleOpen
()
{
const
currentIndexPath
=
[
this
.
firstIndex
,
this
.
secondIndex
,
this
.
thirdIndex
]
console
.
log
(
currentIndexPath
)
const
menus
=
this
.
$refs
.
menu
console
.
log
(
menus
)
this
.
$nextTick
(()
=>
{
if
(
currentIndexPath
.
join
(
'-'
)
===
this
.
currentPath
.
join
(
'-'
))
{
menus
.
open
(
this
.
secondIndex
)
console
.
log
(
'open'
)
}
else
{
menus
.
close
(
this
.
secondIndex
)
console
.
log
(
'close'
)
}
})
},
...
...
@@ -106,9 +104,7 @@ export default {
* 选择边测菜单主菜单
*/
choseMenu
(
selectItem
,
selectItemIndex
)
{
console
.
log
(
'--'
,
selectItem
,
selectItemIndex
)
this
.
firstIndex
=
selectItemIndex
console
.
log
(
'current'
,
this
.
firstIndex
)
if
(
!
this
.
sidebarUnfoldInfo
)
{
this
.
toggleUnfold
(
true
)
}
...
...
@@ -118,9 +114,9 @@ export default {
**/
choseChildrenItem
(
item
)
{
if
(
item
.
link
)
{
this
.
$router
.
push
({
path
:
`/
${
item
.
link
}
`
,
})
//
this.$router.push({
//
path: `/${item.link}`,
//
})
}
},
/**
...
...
@@ -128,20 +124,27 @@ export default {
* @param args
**/
selectItemMenu
(
item
)
{
console
.
log
(
item
)
const
firstIndex
=
this
.
firstIndex
if
(
firstIndex
>
-
1
)
{
const
[
idx1
,
idx2
]
=
item
.
split
(
'-'
).
reverse
()
const
historyIndex
=
(
firstIndex
+
''
+
idx1
+
''
+
idx2
+
''
).
split
(
''
).
join
(
','
)
const
historyItemName
=
this
.
menus
[
firstIndex
].
children
[
idx1
].
children
[
idx2
].
name
const
time
=
this
.
$moment
().
format
(
'YYYY-MM-DD hh:mm:ss'
)
const
storeId
=
this
.
project
.
store_id
const
menuHistoryJson
=
localStorage
.
getItem
(
'menuHistoryJson'
+
storeId
)
?
JSON
.
parse
(
localStorage
.
getItem
(
'menuHistoryJson'
+
storeId
))
:
[]
menuHistoryJson
.
push
({
const
storeId
=
this
.
project
.
data
.
userDto
.
storeUserInfo
.
storeId
const
menuHistoryJson
=
localStorage
.
getItem
(
'menuHistoryJson'
+
storeId
)
?
JSON
.
parse
(
localStorage
.
getItem
(
'menuHistoryJson'
+
storeId
)):
[]
// 1.相同不添加 2.相同提到最前面
menuHistoryJson
.
forEach
((
item
,
i
)
=>
{
if
(
item
.
index
===
historyIndex
){
menuHistoryJson
.
splice
(
i
,
1
);
return
false
;
}
})
// 开头添加
menuHistoryJson
.
unshift
({
name
:
historyItemName
,
index
:
historyIndex
,
time
,
index
:
`
${(
firstIndex
,
idx1
,
idx2
)}
`
,
})
localStorage
.
setItem
(
'menuHistoryJson'
+
storeId
,
JSON
.
stringify
(
menuHistoryJson
))
crossStorage
.
onConnect
().
then
(
function
()
{
...
...
@@ -150,7 +153,6 @@ export default {
}
},
toggleUnfold
(...
args
)
{
console
.
log
(
args
)
if
(
!
args
.
length
)
{
this
.
setSidebarUnfold
(
!
this
.
sidebarUnfoldInfo
)
}
else
{
...
...
@@ -164,9 +166,9 @@ export default {
this
.
unfoldBtn
=
true
},
choseSubChildren
(
item
)
{
this
.
$router
.
push
({
path
:
`/
${
item
.
link
}
`
,
})
//
this.$router.push({
//
path: `/${item.link}`,
//
})
},
getCurrentMenus
(
index
)
{
return
this
.
menus
[
index
]
...
...
src/http/index.js
View file @
58e7576b
...
...
@@ -33,7 +33,8 @@ const api = axios.create({
})
const
mockApi
=
axios
.
create
({
baseURL
:
'http://rap2api.taobao.org/app/mock/115626/'
// baseURL: 'http://rap2api.taobao.org/app/mock/115626/'
baseURL
:
'http://testcenter.bigaka.net/b/'
})
api
.
interceptors
.
request
.
use
(
function
(
config
)
{
...
...
src/router/index.js
View file @
58e7576b
...
...
@@ -12,7 +12,8 @@ export default new Router({
component
:
()
=>
import
(
/* webpackChunkName: 'wxlogin' */
'@/pages/login'
),
},
{
path
:
'/salesCenter/activity/lotteryActivity.do'
,
// path: '/salesCenter/activity/lotteryActivity.do',
path
:
'/'
,
name
:
'test'
,
component
:
()
=>
import
(
/* web packChunkName: 'wxhome' */
'@/pages/home'
),
children
:
[
...
...
src/store/global/index.js
View file @
58e7576b
...
...
@@ -19,12 +19,15 @@ const GET_PROJECT_INFO = 'GET_PROJECT_INFO'
//
const
CALC_TOUTER_INDEX
=
'CALC_TOUTER_INDEX'
const
HEADER_HISTORY
=
'HEADER_HISTORY'
const
state
=
{
menus
:
[],
editMenus
:
false
,
projectInfo
:
null
,
currentPath
:
[],
sidebarUnfold
:
true
// false:边侧菜单收缩, true:边侧菜单展开
sidebarUnfold
:
true
,
// false:边侧菜单收缩, true:边侧菜单展开
headerHistory
:
[]
}
const
actions
=
{
...
...
@@ -83,6 +86,16 @@ const getters = {
}
const
mutations
=
{
[
HEADER_HISTORY
](
state
,
history
)
{
state
.
headerHistory
=
[...
history
]
try
{
if
(
localStorage
.
history
)
{
localStorage
.
history
=
history
}
}
catch
(
error
)
{
}
},
[
GET_MEUMS
](
state
,
menus
)
{
state
.
menus
=
[...
menus
]
},
...
...
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