
4 changed files with 246 additions and 0 deletions
@ -0,0 +1,104 @@ |
|||
<template> |
|||
<view class="input-wrapper"> |
|||
<view class="ft32 left">{{label}}</view> |
|||
<view class="right"> |
|||
<input v-if="type==='normal'" class="ft32 inputValue" :value="value" :placeholder="holder" @blur="handleBlur" @input="handleInput"/> |
|||
<view class="vertifyWrap" v-else-if="type==='vertify'"> |
|||
<input class="ft32 inputValue" :value="value" :placeholder="holder" @blur="handleBlur" @input="handleInput"/> |
|||
<view class="ft28 button">发送验证码</view> |
|||
</view> |
|||
<slot v-else></slot> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name:"doctorInfoInput", |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
}, |
|||
props: { |
|||
label: { |
|||
type: String, |
|||
default: '个人照片' |
|||
}, |
|||
type: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
value: { |
|||
type: String, |
|||
default: "" |
|||
}, |
|||
holder: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
}, |
|||
methods: { |
|||
handleBlur(e) { |
|||
var value = e.detail.value |
|||
var res = this.check(value); |
|||
if(!res){ |
|||
this.$emit('blurEvent', value, false) |
|||
return |
|||
} |
|||
this.$emit('blurEvent', value, true) |
|||
}, |
|||
handleInput(e){ |
|||
if(!this.errormsg) return; |
|||
var value = e.detail.value |
|||
var res = this.check(value); |
|||
if(!res){ |
|||
this.$emit('blurEvent', value, false) |
|||
return |
|||
} |
|||
this.$emit('blurEvent', value, true) |
|||
}, |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
.input-wrapper{ |
|||
padding: 40rpx 12rpx; |
|||
border-bottom:2rpx solid rgba(151,151,151,0.15);; |
|||
display: flex; |
|||
align-items: center; |
|||
justify-content: space-between; |
|||
|
|||
&:last-child { |
|||
border: none; |
|||
} |
|||
.left { |
|||
font-weight: 500; |
|||
color: #000000; |
|||
line-height: 44rpx; |
|||
letter-spacing: 2rpx; |
|||
text-wrap: nowrap; |
|||
} |
|||
.right { |
|||
.inputValue { |
|||
text-align: right; |
|||
} |
|||
.vertifyWrap { |
|||
display: flex; |
|||
align-items: center; |
|||
.button { |
|||
color: #55C483; |
|||
line-height: 70rpx; |
|||
text-align: center; |
|||
|
|||
width: 192rpx; |
|||
height: 70rpx; |
|||
background: #EBFFF1; |
|||
border-radius: 8rpx; |
|||
margin-left: 24rpx; |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,55 @@ |
|||
<template> |
|||
<view class="textarea-wrapper"> |
|||
<view class="ft32 title">{{title}}</view> |
|||
<textarea class="content" :auto-height="true" :value="value" :placeholder="holder" @blur="handleBlur" @input="handleInput"></textarea> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name:"doctorInfoTextarea", |
|||
data() { |
|||
return { |
|||
|
|||
}; |
|||
}, |
|||
props: { |
|||
title: { |
|||
type: String, |
|||
default: '一句话介绍' |
|||
}, |
|||
value: { |
|||
type: String, |
|||
default: '' |
|||
}, |
|||
holder: { |
|||
type: String, |
|||
default: '14个字介绍自己亮点' |
|||
} |
|||
}, |
|||
methods: { |
|||
handleBlur() {}, |
|||
handleInput() {} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
.textarea-wrapper { |
|||
.title{ |
|||
font-weight: 500; |
|||
color: #222222; |
|||
line-height: 44px; |
|||
letter-spacing: 2px; |
|||
} |
|||
.content { |
|||
width:100%; |
|||
height: 100rpx; |
|||
background: #FFFFFF; |
|||
border-radius: 12rpx; |
|||
border: 2rpx solid #E6E6E6; |
|||
padding: 28rpx 26rpx; |
|||
box-sizing: border-box; |
|||
} |
|||
} |
|||
</style> |
@ -0,0 +1,79 @@ |
|||
<template> |
|||
<view class="doctor-info-page btPadding"> |
|||
<view class="basic-wrapper"> |
|||
<input-box label="个人照片"> |
|||
<view v-slot class="upload"> |
|||
<view class="picture"></view> |
|||
<view class="ft22 button">点击上传照片</view> |
|||
</view> |
|||
</input-box> |
|||
<input-box label="医生姓名" type="normal" holder="请填写本人姓名"></input-box> |
|||
<input-box label="手机号" type="normal" holder="请填写手机号"></input-box> |
|||
<input-box label="验证码" type="vertify" holder="填写验证码"></input-box> |
|||
</view> |
|||
<view class="introduce-wrapper"> |
|||
<textarea-box></textarea-box> |
|||
</view> |
|||
</view> |
|||
</template> |
|||
|
|||
<script> |
|||
import InputBox from '@/components/doctorInfoInput.vue'; |
|||
import TextareaBox from '@/components/doctorInfoTextarea.vue' |
|||
|
|||
export default { |
|||
data() { |
|||
return { |
|||
|
|||
} |
|||
}, |
|||
components:{ |
|||
InputBox, |
|||
TextareaBox |
|||
}, |
|||
methods: { |
|||
|
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style> |
|||
.doctor-info-page { |
|||
padding: 20rpx 17rpx; |
|||
.basic-wrapper { |
|||
padding: 0 12px; |
|||
background-color: rgba(255, 255, 255, 1); |
|||
box-shadow: 0rpx 2rpx 24rpx 0rpx rgba(0, 0, 0, 0.03); |
|||
border-radius: 0rpx 0rpx 8rpx 8rpx; |
|||
.upload { |
|||
display: flex; |
|||
flex-direction: column; |
|||
justify-content: center; |
|||
align-items: center; |
|||
.picture { |
|||
width: 160rpx; |
|||
height: 160rpx; |
|||
background: #F8F8F8; |
|||
border-radius: 12rpx; |
|||
} |
|||
.button { |
|||
color: #FFFFFF; |
|||
|
|||
width: 160rpx; |
|||
height: 44rpx; |
|||
text-align: center; |
|||
line-height: 44rpx; |
|||
background: rgba(0,0,0,0.28); |
|||
border-radius: 12rpx; |
|||
} |
|||
} |
|||
} |
|||
.introduce-wrapper { |
|||
margin: 20px auto 0; |
|||
padding: 0 36px; |
|||
background-color: rgba(255, 255, 255, 1); |
|||
box-shadow: 0rpx 2rpx 24rpx 0rpx rgba(0, 0, 0, 0.03); |
|||
border-radius: 0rpx 0rpx 8rpx 8rpx; |
|||
} |
|||
} |
|||
</style> |
Loading…
Reference in new issue