铝交易,微信公众号
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.
 
 
 

221 lines
4.8 KiB

<template>
<view class="page">
<navbar :title="$t('components.helpFeedback')" leftClick @leftClick="$utils.navigateBack"/>
<view class="frame">
<!--帮助与反馈-->
<view class="helpFeedback">
<view class="title"> {{ $t('components.helpAndFeedback') }} <span style="color: red;">*</span></view>
<view class="desc">
<textarea :placeholder="$t('components.pleaseSubmit')"/>
</view>
</view>
<!--问题截图-->
<view class="problemImg">
<view class="title">{{ $t('components.screenshot') }} <span style="color: red;">*</span></view>
<view class="img">
<uv-upload
:fileList="fileList"
:maxCount="5"
multiple
width="150rpx"
height="150rpx"
@delete="deleteImage"
@afterRead="afterRead"
:previewFullImage="true">
</uv-upload>
</view>
</view>
<!--联系方式-->
<view class="name_phone">
<view class="title">{{ $t('components.contactInfo') }} <span style="color: red;">*</span></view>
<view class="items">
<view class="item">
<view>{{ $t('components.contactName') }}</view>
<view>
<input :placeholder="$t('components.enterContactName')" clearable></input>
</view>
</view>
<view class="item">
<view>{{ $t('components.lxPhone') }}</view>
<view>
<input :placeholder="$t('components.plePhoneNumber')" clearable></input>
</view>
</view>
</view>
</view>
<!--提交反馈-->
<view class="btns">
<view @click="submitFeedback" class="btn">
{{ $t('components.submitFeedback') }}
</view>
</view>
</view>
</view>
</template>
<script>
import topbar from "@/components/base/topbar.vue";
import tabber from "@/components/base/tabbar.vue";
export default {
name: "helpFeedback",
components: {tabber, topbar},
data() {
return {
fileList: [],
form: {
"content": "",
"proofImg": "",
"userName": "",
"userPhone": ""
}
}
},
methods: {
// 提交反馈
submitFeedback() {
this.form.proofImg = this.fileList.join(",")
this.$api('addSuggest', this.form, res => {
if (res.code === 200) {
uni.showToast({
title: '',
icon: 'success',
duration: 2000
})
setTimeout(() => {
uni.navigateBack(-1)
}, 1000)
}
})
},
deleteImage(e) {
this.fileList.splice(e.index, 1)
},
afterRead(e) {
let self = this
e.file.forEach(file => {
self.$Oss.ossUpload(file.url).then(url => {
self.fileList.push({
url
})
})
})
},
},
}
</script>
<style scoped lang="scss">
.page {
height: 100vh;
background-color: #f2f5f5;
.frame {
padding: 40rpx;
display: flex;
flex-direction: column;
justify-content: center;
gap: 40rpx;
.helpFeedback {
.title {
}
.desc {
margin-top: 20rpx;
height: 300rpx;
border-radius: 40rpx;
overflow: hidden;
padding: 20rpx;
font-size: 28rpx;
background-color: #fff;
}
}
.problemImg {
.img {
margin-top: 20rpx;
height: 150rpx;
border-radius: 40rpx;
overflow: hidden;
padding: 20rpx;
font-size: 28rpx;
background-color: #fff;
}
}
.name_phone {
.title {
}
.items {
margin-top: 20rpx;
.item {
display: flex;
align-items: center;
background-color: #FFF;
height: 80rpx;
padding: 10rpx 0 0 20rpx;
border-bottom: 1px solid #efefef;
> view:nth-of-type(1) {
width: 30%;
// font-weight: 700;
}
> view:nth-of-type(2) {
width: 70%;
border-radius: 10rpx;
overflow: hidden;
input {
background-color: #FFF;
font-size: 28rpx;
padding: 16rpx 8rpx 16rpx 15rpx;
}
}
}
}
}
.btns {
width: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
gap: 20rpx;
.btn {
display: flex;
align-items: center;
justify-content: center;
width: 500rpx;
height: 70rpx;
border-radius: 40rpx;
color: #FFF;
font-size: 28rpx;
margin: 20rpx 10rpx 0 0;
background: $uni-color;
//margin-top: 20rpx;
border-radius: 40rpx;
}
}
}
}
</style>