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