新增意见反馈、帮助中心

This commit is contained in:
gyq
2025-01-08 11:01:34 +08:00
parent 7b0fc90f8c
commit cef6f2be85
13 changed files with 752 additions and 59 deletions

124
pages/me/feedback.vue Normal file
View File

@@ -0,0 +1,124 @@
<template>
<view class="container">
<view class="card">
<view class="title-wrap">
<view class="title">问题和意见</view>
<view class="right" @click="showSheet = true">快速键入</view>
</view>
<view class="ipt-wrap">
<up-textarea v-model="form.content" placeholder="请详细描述你的问题和意见..." count></up-textarea>
</view>
</view>
<view class="card">
<view class="title-wrap">
<view class="title">QQ/邮箱</view>
</view>
<view class="ipt-wrap">
<up-input v-model="form.contact" placeholder="方便我们联系你 " count></up-input>
</view>
</view>
<view class="btn">
<up-button color="#ff7581" :loading="loaing" loading-text="提交中..." @click="confirmHandle">提交</up-button>
</view>
<up-action-sheet
:actions="list"
:show="showSheet"
cancelText="取消"
closeOnClickAction
closeOnClickOverlay
@close="showSheet = false"
@select="selectSheet"
></up-action-sheet>
</view>
</template>
<script setup>
import { ref, reactive } from 'vue';
import { sendMessage } from '@/api/me/me.js';
const list = ref([
{
name: '界面显示错乱'
},
{
name: '启动缓慢,卡出翔了'
},
{
name: 'UI无法直视丑哭了'
},
{
name: '偶发性崩溃'
}
]);
const showSheet = ref(false);
const loaing = ref(false);
const form = reactive({
content: '',
contact: ''
});
function selectSheet(e) {
if (!form.content.length) {
form.content = e.name;
} else {
form.content += `${e.name}`;
}
}
// 提交
async function confirmHandle() {
try {
if (!form.content) {
uni.showToast({
title: '请输入内容',
icon: 'none'
});
return;
}
if (!form.contact) {
uni.showToast({
title: '请输入联系方式',
icon: 'none'
});
return;
}
loaing.value = true;
await sendMessage({
content: JSON.stringify({ score: 5, ...form }),
state: 2,
title: form.contact
});
uni.showToast({
title: '提交成功',
icon: 'none',
mask: true
});
setTimeout(() => {
uni.navigateBack();
}, 1000);
} catch (error) {
console.log(error);
}
loaing.value = false;
}
</script>
<style scoped lang="scss">
.container {
padding: 0 20upx;
font-size: 28upx;
}
.card {
margin-bottom: 28upx;
.title-wrap {
padding: 28upx 0;
color: #999;
display: flex;
justify-content: space-between;
}
}
.btn {
padding: 28upx 0;
}
</style>