smartmeter-app/pages/opinion/index.vue

260 lines
5.1 KiB
Vue
Raw Normal View History

2024-03-25 19:46:07 +08:00
<template>
<view class="pages">
<u-navbar title="意见反馈" :border-bottom="false" :background="bgc" title-color='#262B37' title-size='48'
height='34'></u-navbar>
<view class="leix">
<view class="title">
反馈类型 <text style="font-size: 36rpx; color: red; vertical-align: top;margin-left: 32rpx;"></text>
</view>
<view class="lxxz">
<view class="">
功能异常
</view>
<view class="active">
意见与建议
<text></text>
</view>
<view class="">
其他
</view>
</view>
</view>
<view class="problem">
<view class="title">
问题描述 <text style="font-size: 36rpx; color: red; vertical-align: top;margin-left: 32rpx;"></text>
</view>
<view class="input-container">
<view class="placeholder" v-if="!textValue">请详细描述您的问题或建议</view>
<textarea class="custom-textarea" v-model="textValue" @focus="hidePlaceholder" style="border: none;" @input="updateWordCount"
@blur="showPlaceholder"></textarea>
<text class="word-count">{{ currentCount }}/500</text>
</view>
</view>
<view class="scpic">
<view class="title">
上传图片
</view>
<view class="icon">
<image src="../../static/pzs.png" mode=""></image>
</view>
<text>上传问题图片可以让问题快速解决哦!</text>
</view>
<view class="lxfs">
<view class="title">
联系方式
</view>
<input type="text" placeholder="请留下手机号/邮箱/微信号,以便我们回复您" />
</view>
<button>提交</button>
</view>
</template>
<script>
export default {
data() {
return {
bgc: {
backgroundColor: "#F7FAFE",
},
textValue: '',
currentCount: 0,
}
},
computed: {
},
onLoad() {
},
methods: {
hidePlaceholder() {
this.placeholderVisible = false;
},
showPlaceholder() {
if (!this.textValue) {
this.placeholderVisible = true;
}
},
updateWordCount() {
this.currentCount = this.textValue.trim().replace(/\s+/g, '').length;
// if (this.currentCount > 500) {
// this.textValue = this.textValue.slice(0, this.textValue.lastIndexOf(' ', 500)).trim();
// uni.showToast({
// title: '字数已超过500字限制',
// icon: 'none'
// });
// }
},
}
}
</script>
<style lang="scss">
button{
width: 590rpx;
height: 84rpx;
background: #8883F0;
filter: blur(0px);
color: #fff;
font-size: 36rpx;
line-height: 84rpx;
text-align: center;
margin-top: 164rpx;
border-radius: 50rpx;
}
page {
background-color: #F7FAFE !important;
}
.pages {
padding: 0 66rpx;
box-sizing: border-box;
}
.leix {
margin-top: 34rpx;
.title {
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
line-height: 50rpx;
}
.lxxz {
display: flex;
view {
border-radius: 10rpx 10rpx 10rpx 10rpx;
border: 2rpx solid #C4C4C4;
padding: 14rpx 34rpx 14rpx 34rpx;
box-sizing: border-box;
margin-right: 28rpx;
margin-top: 40rpx;
position: relative;
overflow: hidden;
text {
position: absolute;
bottom: 0;
right: 0;
display: inline-block;
width: 31rpx;
height: 19rpx;
background: #8883F0;
color: #fff;
border-radius: 5rpx;
font-size: 18rpx;
text-align: center;
line-height: 19rpx;
}
}
}
}
.active {
border: 2rpx solid #8883F0 !important;
}
.problem {
margin-top: 40rpx;
.title {
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
line-height: 50rpx;
}
}
.lxfs {
margin-top: 40rpx;
.title {
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
line-height: 50rpx;
}
input{
margin-top: 32rpx;
width: 612rpx;
height: 80rpx;
background: #FFFFFF;
box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42,130,228,0.1);
border-radius: 20rpx;
padding-left: 20rpx;
}
}
.scpic {
margin-top: 40rpx;
.title {
font-weight: 600;
font-size: 36rpx;
color: #3D3D3D;
line-height: 50rpx;
}
text{
display: block;
margin-top: 40rpx;
font-size: 28rpx;
color: #95989D;
line-height: 38rpx;
}
.icon{
margin-top: 40rpx;
image{
width: 142rpx;
height: 142rpx;
}
}
}
.input-container {
position: relative;
width: 612rpx;
height: 248rpx;
background: #FFFFFF;
box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1);
border-radius: 20rpx;
margin-top: 40rpx;
overflow: hidden;
padding-right: 38rpx;
box-sizing: border-box;
}
.placeholder {
position: absolute;
top: 18rpx;
left: 38rpx;
color: #999;
/* placeholder颜色 */
pointer-events: none;
/* 确保点击事件可以穿透到textarea上 */
}
.custom-textarea {
width: 100%;
height: 100%;
/* 设置一个合适高度 */
padding-top: 18rpx;
/* 为placeholder留出空间 */
padding-left: 38rpx;
box-sizing: border-box;
border: 1px solid #ccc;
}
.word-count {
position: absolute;
right: 10px;
bottom: 10px;
font-size: 12px;
color: #999;
}
</style>