parent
6aa12b13f5
commit
6b2688a840
5 changed files with 162 additions and 1 deletions
@ -0,0 +1,50 @@ |
||||
<template> |
||||
<a-layout-sider class="sider" width="273"> |
||||
<setting-item title="整体风格设置"> |
||||
<div class="theme"> |
||||
<style-item img="https://gw.alipayobjects.com/zos/rmsportal/LCkqqYNmvBEbokSDscrm.svg" :selected="true"/> |
||||
<style-item img="https://gw.alipayobjects.com/zos/rmsportal/jpRkZQMyYRryryPNtyIC.svg" :selected="false"/> |
||||
</div> |
||||
</setting-item> |
||||
<setting-item title="主题色"> |
||||
<div> |
||||
<theme-color color="rgb(245, 34, 45)" /> |
||||
<theme-color color="rgb(250, 84, 28)" /> |
||||
<theme-color color="rgb(250, 173, 20)" /> |
||||
<theme-color color="rgb(19, 194, 194)" /> |
||||
<theme-color color="rgb(82, 196, 26)" /> |
||||
<theme-color color="rgb(24, 144, 255)" /> |
||||
<theme-color color="rgb(47, 84, 235)" /> |
||||
<theme-color color="rgb(114, 46, 209)" :selected="true" /> |
||||
</div> |
||||
</setting-item> |
||||
</a-layout-sider> |
||||
</template> |
||||
|
||||
<script> |
||||
import ALayoutSider from 'ant-design-vue/es/layout/Sider' |
||||
import AIcon from 'ant-design-vue/es/icon/icon' |
||||
import SettingItem from './SettingItem' |
||||
import StyleItem from './StyleItem' |
||||
import ADivider from 'ant-design-vue/es/divider/index' |
||||
import ThemeColor from './ThemeColor' |
||||
export default { |
||||
name: 'Setting', |
||||
components: {ThemeColor, ADivider, StyleItem, SettingItem, AIcon, ALayoutSider} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="less" scoped> |
||||
.sider{ |
||||
background-color: #fff; |
||||
height: 100%; |
||||
padding: 24px; |
||||
font-size: 14px; |
||||
line-height: 1.5; |
||||
word-wrap: break-word; |
||||
position: relative; |
||||
.theme{ |
||||
display: flex; |
||||
} |
||||
} |
||||
</style> |
@ -0,0 +1,27 @@ |
||||
<template> |
||||
<div class="setting-item"> |
||||
<h3 class="title">{{title}}</h3> |
||||
<div> |
||||
<slot></slot> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
export default { |
||||
name: 'SettingItem', |
||||
props: ['title'] |
||||
} |
||||
</script> |
||||
|
||||
<style lang="less" scoped> |
||||
.setting-item{ |
||||
margin-bottom: 24px; |
||||
.title{ |
||||
font-size: 14px; |
||||
color: rgba(0,0,0,.85); |
||||
line-height: 22px; |
||||
margin-bottom: 12px; |
||||
} |
||||
} |
||||
</style> |
@ -0,0 +1,38 @@ |
||||
<template> |
||||
<div class="style"> |
||||
<img :src="img" /> |
||||
<div v-if="selected" class="select-item"> |
||||
<a-icon type="check" /> |
||||
</div> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import AIcon from 'ant-design-vue/es/icon/icon' |
||||
export default { |
||||
name: 'StyleItem', |
||||
props: ['selected', 'img'], |
||||
components: {AIcon} |
||||
} |
||||
</script> |
||||
|
||||
<style lang="less" scoped> |
||||
.style{ |
||||
margin-right: 16px; |
||||
position: relative; |
||||
border-radius: 4px; |
||||
cursor: pointer; |
||||
.select-item{ |
||||
position: absolute; |
||||
top: 0; |
||||
right: 0; |
||||
width: 100%; |
||||
padding-top: 15px; |
||||
padding-left: 24px; |
||||
height: 100%; |
||||
color: #1890ff; |
||||
font-size: 14px; |
||||
font-weight: bold; |
||||
} |
||||
} |
||||
</style> |
@ -0,0 +1,28 @@ |
||||
<template> |
||||
<div class="theme-color" :style="{backgroundColor: color}"> |
||||
<a-icon v-if="selected" type="check" /> |
||||
</div> |
||||
</template> |
||||
|
||||
<script> |
||||
import AIcon from 'ant-design-vue/es/icon/icon' |
||||
export default { |
||||
name: 'ThemeColor', |
||||
components: {AIcon}, |
||||
props: ['color', 'selected'] |
||||
} |
||||
</script> |
||||
|
||||
<style lang="less" scoped> |
||||
.theme-color{ |
||||
width: 20px; |
||||
height: 20px; |
||||
border-radius: 2px; |
||||
float: left; |
||||
cursor: pointer; |
||||
margin-right: 8px; |
||||
text-align: center; |
||||
color: #fff; |
||||
font-weight: bold; |
||||
} |
||||
</style> |
Loading…
Reference in new issue