Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
78e6ed64
Commit
78e6ed64
authored
Apr 08, 2019
by
Junling Bu
Browse files
chore[litemall-admin]: 删除主题切换支持
parent
f695c11b
Changes
2
Hide whitespace changes
Inline
Side-by-side
litemall-admin/src/components/ThemePicker/index.vue
deleted
100644 → 0
View file @
f695c11b
<
template
>
<el-color-picker
v-model=
"theme"
class=
"theme-picker"
popper-class=
"theme-picker-dropdown"
/>
</
template
>
<
script
>
const
version
=
require
(
'
element-ui/package.json
'
).
version
// element-ui version from node_modules
const
ORIGINAL_THEME
=
'
#409EFF
'
// default color
export
default
{
data
()
{
return
{
chalk
:
''
,
// content of theme-chalk css
theme
:
ORIGINAL_THEME
}
},
watch
:
{
theme
(
val
,
oldVal
)
{
if
(
typeof
val
!==
'
string
'
)
return
const
themeCluster
=
this
.
getThemeCluster
(
val
.
replace
(
'
#
'
,
''
))
const
originalCluster
=
this
.
getThemeCluster
(
oldVal
.
replace
(
'
#
'
,
''
))
console
.
log
(
themeCluster
,
originalCluster
)
const
getHandler
=
(
variable
,
id
)
=>
{
return
()
=>
{
const
originalCluster
=
this
.
getThemeCluster
(
ORIGINAL_THEME
.
replace
(
'
#
'
,
''
))
const
newStyle
=
this
.
updateStyle
(
this
[
variable
],
originalCluster
,
themeCluster
)
let
styleTag
=
document
.
getElementById
(
id
)
if
(
!
styleTag
)
{
styleTag
=
document
.
createElement
(
'
style
'
)
styleTag
.
setAttribute
(
'
id
'
,
id
)
document
.
head
.
appendChild
(
styleTag
)
}
styleTag
.
innerText
=
newStyle
}
}
const
chalkHandler
=
getHandler
(
'
chalk
'
,
'
chalk-style
'
)
if
(
!
this
.
chalk
)
{
const
url
=
`https://unpkg.com/element-ui@
${
version
}
/lib/theme-chalk/index.css`
this
.
getCSSString
(
url
,
chalkHandler
,
'
chalk
'
)
}
else
{
chalkHandler
()
}
const
styles
=
[].
slice
.
call
(
document
.
querySelectorAll
(
'
style
'
))
.
filter
(
style
=>
{
const
text
=
style
.
innerText
return
new
RegExp
(
oldVal
,
'
i
'
).
test
(
text
)
&&
!
/Chalk Variables/
.
test
(
text
)
})
styles
.
forEach
(
style
=>
{
const
{
innerText
}
=
style
if
(
typeof
innerText
!==
'
string
'
)
return
style
.
innerText
=
this
.
updateStyle
(
innerText
,
originalCluster
,
themeCluster
)
})
this
.
$message
({
message
:
'
换肤成功
'
,
type
:
'
success
'
})
}
},
methods
:
{
updateStyle
(
style
,
oldCluster
,
newCluster
)
{
let
newStyle
=
style
oldCluster
.
forEach
((
color
,
index
)
=>
{
newStyle
=
newStyle
.
replace
(
new
RegExp
(
color
,
'
ig
'
),
newCluster
[
index
])
})
return
newStyle
},
getCSSString
(
url
,
callback
,
variable
)
{
const
xhr
=
new
XMLHttpRequest
()
xhr
.
onreadystatechange
=
()
=>
{
if
(
xhr
.
readyState
===
4
&&
xhr
.
status
===
200
)
{
this
[
variable
]
=
xhr
.
responseText
.
replace
(
/@font-face{
[^
}
]
+}/
,
''
)
callback
()
}
}
xhr
.
open
(
'
GET
'
,
url
)
xhr
.
send
()
},
getThemeCluster
(
theme
)
{
const
tintColor
=
(
color
,
tint
)
=>
{
let
red
=
parseInt
(
color
.
slice
(
0
,
2
),
16
)
let
green
=
parseInt
(
color
.
slice
(
2
,
4
),
16
)
let
blue
=
parseInt
(
color
.
slice
(
4
,
6
),
16
)
if
(
tint
===
0
)
{
// when primary color is in its rgb space
return
[
red
,
green
,
blue
].
join
(
'
,
'
)
}
else
{
red
+=
Math
.
round
(
tint
*
(
255
-
red
))
green
+=
Math
.
round
(
tint
*
(
255
-
green
))
blue
+=
Math
.
round
(
tint
*
(
255
-
blue
))
red
=
red
.
toString
(
16
)
green
=
green
.
toString
(
16
)
blue
=
blue
.
toString
(
16
)
return
`#
${
red
}${
green
}${
blue
}
`
}
}
const
shadeColor
=
(
color
,
shade
)
=>
{
let
red
=
parseInt
(
color
.
slice
(
0
,
2
),
16
)
let
green
=
parseInt
(
color
.
slice
(
2
,
4
),
16
)
let
blue
=
parseInt
(
color
.
slice
(
4
,
6
),
16
)
red
=
Math
.
round
((
1
-
shade
)
*
red
)
green
=
Math
.
round
((
1
-
shade
)
*
green
)
blue
=
Math
.
round
((
1
-
shade
)
*
blue
)
red
=
red
.
toString
(
16
)
green
=
green
.
toString
(
16
)
blue
=
blue
.
toString
(
16
)
return
`#
${
red
}${
green
}${
blue
}
`
}
const
clusters
=
[
theme
]
for
(
let
i
=
0
;
i
<=
9
;
i
++
)
{
clusters
.
push
(
tintColor
(
theme
,
Number
((
i
/
10
).
toFixed
(
2
))))
}
clusters
.
push
(
shadeColor
(
theme
,
0.1
))
return
clusters
}
}
}
</
script
>
<
style
>
.theme-picker
.el-color-picker__trigger
{
vertical-align
:
middle
;
}
.theme-picker-dropdown
.el-color-dropdown__link-btn
{
display
:
none
;
}
</
style
>
litemall-admin/src/views/layout/components/Navbar.vue
View file @
78e6ed64
...
@@ -15,9 +15,6 @@
...
@@ -15,9 +15,6 @@
<size-select
class=
"international right-menu-item"
/>
<size-select
class=
"international right-menu-item"
/>
</el-tooltip>
</el-tooltip>
<el-tooltip
:content=
"$t('navbar.theme')"
effect=
"dark"
placement=
"bottom"
>
<theme-picker
class=
"theme-switch right-menu-item"
/>
</el-tooltip>
</
template
>
</
template
>
<el-dropdown
class=
"avatar-container right-menu-item"
trigger=
"click"
>
<el-dropdown
class=
"avatar-container right-menu-item"
trigger=
"click"
>
...
@@ -61,15 +58,13 @@ import Breadcrumb from '@/components/Breadcrumb'
...
@@ -61,15 +58,13 @@ import Breadcrumb from '@/components/Breadcrumb'
import
Hamburger
from
'
@/components/Hamburger
'
import
Hamburger
from
'
@/components/Hamburger
'
import
Screenfull
from
'
@/components/Screenfull
'
import
Screenfull
from
'
@/components/Screenfull
'
import
SizeSelect
from
'
@/components/SizeSelect
'
import
SizeSelect
from
'
@/components/SizeSelect
'
import
ThemePicker
from
'
@/components/ThemePicker
'
export
default
{
export
default
{
components
:
{
components
:
{
Breadcrumb
,
Breadcrumb
,
Hamburger
,
Hamburger
,
Screenfull
,
Screenfull
,
SizeSelect
,
SizeSelect
ThemePicker
},
},
computed
:
{
computed
:
{
...
mapGetters
([
...
mapGetters
([
...
@@ -126,9 +121,6 @@ export default {
...
@@ -126,9 +121,6 @@ export default {
.international
{
.international
{
vertical-align
:
top
;
vertical-align
:
top
;
}
}
.theme-switch
{
vertical-align
:
15px
;
}
.avatar-container
{
.avatar-container
{
height
:
50px
;
height
:
50px
;
margin-right
:
30px
;
margin-right
:
30px
;
...
...
Write
Preview
Supports
Markdown
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