You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
131 lines
3.9 KiB
131 lines
3.9 KiB
<template>
|
|
<view>
|
|
<cu-custom bgColor="bg-gradual-blue" :isBack="true"><block slot="backText">返回</block><block slot="content"> 按钮 / 设计</block></cu-custom>
|
|
<view class="padding-xl">
|
|
<view class="box bg-white text-center radius">
|
|
<button class="cu-btn" :class="[border?bordersize?'lines-' + color:'line-' + color:'bg-'+ color,round?'round':'',size,shadow?'shadow':'']">我是一个按钮</button>
|
|
</view>
|
|
<view class="padding text-center">
|
|
class="cu-btn <text v-if="color">{{' '}} {{border?bordersize?'lines-' + color:'line-' + color:'bg-'+ color}} {{round?'round':''}} {{size}} {{shadow?'shadow':''}}</text>"
|
|
</view>
|
|
</view>
|
|
<view class="cu-form-group margin-top" @tap="showModal" data-target="ColorModal">
|
|
<view class="title">选择颜色</view>
|
|
<view class="padding solid radius shadow-blur" :class="'bg-'+color"></view>
|
|
</view>
|
|
<view class="cu-form-group">
|
|
<view class="title">是否圆角</view>
|
|
<switch @change="SetRound" class="blue" :class="round?'checked':''"></switch>
|
|
</view>
|
|
<view class="cu-form-group">
|
|
<view class="title">选择尺寸</view>
|
|
<radio-group @change="SetSize">
|
|
<label class="margin-left-sm">
|
|
<radio class="blue radio" value="sm"></radio>
|
|
<text class="margin-left-sm"> 小</text>
|
|
</label>
|
|
<label class="margin-left-sm">
|
|
<radio class="blue radio" value="" checked></radio>
|
|
<text class="margin-left-sm"> 中</text>
|
|
</label>
|
|
<label class="margin-left-sm">
|
|
<radio class="blue radio" value="lg"></radio>
|
|
<text class="margin-left-sm"> 大</text>
|
|
</label>
|
|
</radio-group>
|
|
</view>
|
|
<view class="cu-form-group">
|
|
<view class="title">是否添加阴影</view>
|
|
<switch @change="SetShadow" :class="shadow?'checked':''"></switch>
|
|
</view>
|
|
<view class="cu-form-group">
|
|
<view class="title">是否镂空</view>
|
|
<switch @change="SetBorder" :class="border?'checked':''"></switch>
|
|
</view>
|
|
<view class="cu-form-group" v-if="border">
|
|
<view class="title">边框大小</view>
|
|
<radio-group @change="SetBorderSize">
|
|
<label class="margin-left-sm">
|
|
<radio class="blue radio" value="" checked></radio>
|
|
<text class="margin-left-sm"> 小</text>
|
|
</label>
|
|
<label class="margin-left-sm">
|
|
<radio class="blue radio" value="s"></radio>
|
|
<text class="margin-left-sm"> 大</text>
|
|
</label>
|
|
</radio-group>
|
|
</view>
|
|
<view class="cu-modal" :class="modalName=='ColorModal'?'show':''">
|
|
<view class="cu-dialog">
|
|
<view class="cu-bar justify-end solid-bottom">
|
|
<view class="content">选择颜色</view>
|
|
<view class="action" @tap="hideModal">
|
|
<text class="cuIcon-close text-red"></text>
|
|
</view>
|
|
</view>
|
|
<view class="grid col-5 padding">
|
|
<view class="padding-xs" v-for="(item,index) in ColorList" :key="index" @tap="SetColor" :data-color="item.name" v-if="item.name!='white'">
|
|
<view class="padding-tb radius" :class="'bg-' + item.name"> {{item.title}} </view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
ColorList: this.ColorList,
|
|
modalName: '',
|
|
round: false,
|
|
size: '',
|
|
color: 'red',
|
|
shadow: false,
|
|
border: false,
|
|
bordersize: ''
|
|
};
|
|
},
|
|
methods: {
|
|
showModal(e) {
|
|
this.modalName = e.currentTarget.dataset.target
|
|
},
|
|
hideModal(e) {
|
|
this.modalName = null
|
|
},
|
|
SetRound(e) {
|
|
this.round = e.detail.value
|
|
},
|
|
SetSize(e) {
|
|
this.size = e.detail.value
|
|
},
|
|
SetColor(e) {
|
|
this.color = e.currentTarget.dataset.color;
|
|
this.modalName = null
|
|
},
|
|
SetShadow(e) {
|
|
this.shadow = e.detail.value
|
|
},
|
|
SetBorder(e) {
|
|
this.border = e.detail.value
|
|
if (!e.detail.value) {
|
|
this.bordersize = false
|
|
}
|
|
},
|
|
SetBorderSize(e) {
|
|
this.bordersize = e.detail.value
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style>
|
|
.box {
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
height: 100px;
|
|
}
|
|
</style>
|