|
|
|
<template>
|
|
|
|
<view class="view">
|
|
|
|
<view
|
|
|
|
class="input-wrapper"
|
|
|
|
style="
|
|
|
|
background-color: #f9f9f9;
|
|
|
|
border: 1px solid #f1f1f4;
|
|
|
|
border-radius: 24rpx;
|
|
|
|
padding: 16rpx;
|
|
|
|
height: 400rpx;
|
|
|
|
position: relative;
|
|
|
|
"
|
|
|
|
@tap="focusInput"
|
|
|
|
>
|
|
|
|
<uni-easyinput
|
|
|
|
ref="easyInput"
|
|
|
|
type="textarea"
|
|
|
|
v-model="introduce"
|
|
|
|
placeholder="请输入..."
|
|
|
|
placeholderStyle="font-size:28rpx"
|
|
|
|
:maxlength="500"
|
|
|
|
:input-border="false"
|
|
|
|
:adjust-position="true"
|
|
|
|
:autoHeight="true"
|
|
|
|
cursorSpacing="32"
|
|
|
|
@blur="textAreaFocus = false"
|
|
|
|
:focus="textAreaFocus"
|
|
|
|
:styles="{
|
|
|
|
backgroundColor: 'transparent',
|
|
|
|
borderColor: 'none',
|
|
|
|
height: '360rpx'
|
|
|
|
}"
|
|
|
|
></uni-easyinput>
|
|
|
|
<view class="word-count">{{ introduce.length }}/500</view>
|
|
|
|
</view>
|
|
|
|
<cs-bottom-wrapper>
|
|
|
|
<view class="operation">
|
|
|
|
<button class="btn green" @tap="submit">保存</button>
|
|
|
|
</view>
|
|
|
|
</cs-bottom-wrapper>
|
|
|
|
</view>
|
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
export default {
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
introduce: '',
|
|
|
|
textAreaFocus: false
|
|
|
|
}
|
|
|
|
},
|
|
|
|
onLoad(res) {
|
|
|
|
this.introduce = res.introduce
|
|
|
|
},
|
|
|
|
methods: {
|
|
|
|
// 聚焦输入框
|
|
|
|
focusInput() {
|
|
|
|
if (this.$refs.easyInput) {
|
|
|
|
this.textAreaFocus = false // 先重置焦点状态
|
|
|
|
this.$nextTick(() => {
|
|
|
|
this.textAreaFocus = true // 在下一个时序重新设置焦点
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
console.warn('输入框组件未注册')
|
|
|
|
}
|
|
|
|
},
|
|
|
|
submit() {
|
|
|
|
if (!this.introduce) {
|
|
|
|
uni.showToast({
|
|
|
|
icon: 'none',
|
|
|
|
title: '请填写介绍'
|
|
|
|
})
|
|
|
|
return
|
|
|
|
}
|
|
|
|
uni.$emit('enterpriseIntroduce', { introduce: this.introduce })
|
|
|
|
uni.navigateBack()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.view {
|
|
|
|
background-color: #fff;
|
|
|
|
padding: 12px;
|
|
|
|
height: 100vh;
|
|
|
|
}
|
|
|
|
::v-deep .u-textarea {
|
|
|
|
min-height: 400rpx;
|
|
|
|
height: 400rpx;
|
|
|
|
background-color: #f9f9f9 !important;
|
|
|
|
border: 1px solid #f9f9f9;
|
|
|
|
border-radius: 12px;
|
|
|
|
margin: 0;
|
|
|
|
.u-textarea__count {
|
|
|
|
background-color: #f9f9f9 !important;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.input-wrapper {
|
|
|
|
min-height: 400rpx;
|
|
|
|
height: auto !important;
|
|
|
|
transition: height 0.3s ease;
|
|
|
|
}
|
|
|
|
|
|
|
|
.operation {
|
|
|
|
padding: 12px;
|
|
|
|
display: flex;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
gap: 12px;
|
|
|
|
.btn {
|
|
|
|
flex: 1;
|
|
|
|
border-radius: 8px;
|
|
|
|
display: flex;
|
|
|
|
padding: 12px 0;
|
|
|
|
align-items: center;
|
|
|
|
justify-content: center;
|
|
|
|
}
|
|
|
|
.green {
|
|
|
|
background-color: $cs-color-main;
|
|
|
|
color: #fff;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
.word-count {
|
|
|
|
position: absolute;
|
|
|
|
bottom: 0;
|
|
|
|
right: 16rpx;
|
|
|
|
color: #78829d;
|
|
|
|
font-size: 24rpx;
|
|
|
|
background-color: #f9f9f9;
|
|
|
|
padding: 4rpx 8rpx;
|
|
|
|
transform: translateY(100%);
|
|
|
|
margin-bottom: 40rpx;
|
|
|
|
}
|
|
|
|
</style>
|