微信小程序 图文混编 重写picker组件

效果图:

显示控件  点击弹出 picker选择

弹出选择界面 选择回显

回显,再次点击弹出界面并标识褚显示哪一个


< view class= "userdata" bindtap= 'showModel'>
< view class= "userdata-name">领维 </ view >
< view class= "userdata-symbol"></ view >
< text class= "userdata-input">{{goodsInfoIndexName}} </ text >
< image class= 'img-picker' src= '{{goodsInfo[goodsInfoIndex].image}}'></ image >
</ view >

<!-- 遮罩层 -->
< view class= "goods-detail" hidden= "{{isShowSelectInfo}}">
< view class= "mask"></ view >
< view class= "goodsdetail">
< view class= "dialogtip">
< text class= "tipview">请您选择 </ text >
</ view >
< radio-group bindchange= "radioChangeNeck">
< view wx:for= "{{goodsInfo}}">
< view class= "radio-group" data-name= "{{index}}" bindtap= 'radioChangeNeckBind'>
< view class= 'radio-rad'>
< radio value= "{{item.radioValue}}" checked= '{{index == goodsInfoIndex?true:false}}' / >
</ view >
< view class= 'radio-pic'>
< image src= "{{item.image}}"></ image >
<!-- <image src="../../assets/images/wrongdel.png"></image> -->
</ view >
< view class= 'radio-title'>
< text >{{item.title}} </ text >
</ view >
</ view >
< view class= 'radioLine'></ view >
</ view >
</ radio-group >
</ view >
</ view >

Page({
data: {
goodsInfoIndexName: '请您选择',
isShowSelectInfo: true, //遮罩层是否显示
goodsInfo: [ //遮罩层样式
{ image: '../../assets/images/neck0.png', title: '温莎领也叫敞角领,左右领构成的角度在120度~180度之间。是偏正式而优雅的风格,适用于各种正式、半正式风格。', radioValue: '0', radioName: '单扣大开领'}, //单扣大开领
{ image: '../../assets/images/neck1.png', title: '超大的开角,配以宽大的领结,味道与众不同。本身带有老派绅士的气质。', radioValue: '1', radioName: '单扣一字领'}, //单扣一字领
{ image: '../../assets/images/neck2.png', title: '单扣小方领和标准领类似,两片衬衫领的角度适中,只是领子宽度较窄,这就属于时尚风格,适合年轻人,特别是学生穿着。', radioValue: '2', radioName: '单扣小方领'}, //单扣小方领
{ image: '../../assets/images/neck3.png', title: '圆角领也是一种个性十足的领子。也可以叫伊顿领,源自伊顿公学的校服,也有浓厚的学院风。', radioValue: '3', radioName: '单扣圆领'}, //单扣圆领
{ image: '../../assets/images/neck4.png', title: '立领是只有领座没有翻领的领型,它不在西装体系内,款式也有局限,几乎只能作休闲穿。', radioValue: '4', radioName: '立领'}, //立领
{ image: '../../assets/images/neck5.png', title: '迷你小方领和标准领类似,两片衬衫领的角度适中,只是领子宽度较窄,这就属于时尚风格,适合年轻人,特别是学生穿着。', radioValue: '5', radioName: '迷你小方领'}, //迷你小方领
]
},
radioChangeNeck: function (e) { // 单选按钮点击样式
var that = this
console.log( 'radio发生change事件,携带value值为:', e.detail.value)
that.setData({
isShowSelectInfo: true,
goodsInfoIndex: e.detail.value,
goodsInfoIndexName: that.data.goodsInfo[e.detail.value].radioName,
})
},
radioChangeNeckBind: function(e){
var that = this
console.log( 'radio发生change事件,携带value值为:', e.currentTarget.dataset.name)
that.setData({
isShowSelectInfo: true,
goodsInfoIndex: e.currentTarget.dataset.name,
goodsInfoIndexName: that.data.goodsInfo[e.currentTarget.dataset.name].radioName,
})
}
})

.userdata { /*下部分四个输入框*/
margin: 10 rpx 0 rpx 0 rpx 0 rpx;
border: 1 rpx solid #6c6c6c;
width: 90%;
display: flex;
flex-direction: row;
border-radius: 10 rpx;
align-items: center;
background-color: #fff
}
.userdata-name {
width: 110 rpx;
padding: 20 rpx 0 rpx 20 rpx 20 rpx;
}
.userdata-symbol:after { /*第一个箭头*/
content: "";
display: inline-block;
width: 40 rpx;
height: 40 rpx;
margin: 15 rpx 0 rpx 10 rpx 0 rpx;
border-left: 1 rpx solid #6c6c6c;
}
.userdata-input { /*后面三个箭头*/
width: 380 rpx;
}
.img-picker {
width: 80 rpx;
height: 80 rpx;
}
.goods-detail .mask { /* 遮罩层 */
position: fixed;
left: 0;
top: 0;
width: 100%;
height: 100%;
z-index: 999999;
}
.goods-detail .mask {
background: rgba( 0, 0, 0, 0.7 );
}
.goodsdetail {
position: fixed;
bottom: 0%;
width: 100%;
left: 0%;
margin-top: -50%;
background: #fff;
z-index: 99999999999999;
overflow: hidden;
}
.dialogtip { /* 顶部提示信息 */
margin-top: 20 rpx;
margin-left: 20%;
}
.tipview {
font-size: 26 rpx;
color: #e60012;
}
.radio-group { /* 遮罩层单选按钮 */
margin: 0 rpx 2% 0 rpx 2%;
display: flex;
}
.radio-rad {
width: 60 rpx;
height: 125 rpx;
text-align: center;
line-height: 125 rpx;
}
.radio-pic {
width: 125 rpx;
height: 125 rpx;
}
.radio-pic image {
width: 100%;
height: 100%;
}
.radio-title {
display: flex;
width: 500 rpx;
height: 125 rpx;
}
.radio-title text {
margin-left: 20 rpx;
color: #000;
font-size: 24 rpx;
}
.radioLine {
display: block;
width: 100%;
border-bottom: 1 rpx solid #f1f1f1;
}








猜你喜欢

转载自blog.csdn.net/aaron9185/article/details/78538198