Browse Source

feat(feedback): 优化学生意见反馈功能

- 新增 xy_userFeedbackAdd 接口用于提交反馈信息
- 修改上传组件 AQUplodeImgMulti 的使用方式
- 更新反馈页面的表单结构和提交逻辑
- 优化反馈内容和图片的处理方式
master
liutong 10 months ago
parent
commit
c6ccc0c8e5
  1. 9
      api/apiRoute.js
  2. 12
      components/AQ/AQUplodeImgMulti.vue
  3. 67
      pages/common/feedback.vue

9
api/apiRoute.js

@ -425,6 +425,15 @@ export default {
})
},
//学生-意见反馈-添加
xy_userFeedbackAdd(data = {}) {
let url = '/userFeedback/add'
return http.post(url, data).then(res => {
return res;
})
},

12
components/AQ/AQUplodeImgMulti.vue

@ -27,6 +27,11 @@ import {Api_url} from "../../common/config";
},
props: {
//
//url
uploadApiUrl:{
type: String,
default: `${Api_url}/file/image`
},
//
inputName: {
type: String,
@ -48,7 +53,8 @@ import {Api_url} from "../../common/config";
return {
inputName: this.inputName,
inputValue: this.inputValue,
maxFileNum: this.maxFileNum
maxFileNum: this.maxFileNum,
uploadApiUrl: this.uploadApiUrl
};
}
},
@ -99,7 +105,7 @@ import {Api_url} from "../../common/config";
},
//
uploadApiUrl: `${Api_url}/file/image`,
// uploadApiUrl: `${Api_url}/file/image`,
//
imageStyles: {
@ -168,7 +174,7 @@ import {Api_url} from "../../common/config";
console.log('xxx',_arr)
this.fileList.push(_arr)
console.log('上传成功2',_arr);
this.filePathArr.push(res.data.path)
this.filePathArr.push(res.data.url)
//
this.emitUploadSuccess(this.filePathArr)
}else{

67
pages/common/feedback.vue

@ -5,28 +5,28 @@
<view class="main_section">
<view class="section">
<view class="text_input">
<fui-textarea placeholder="请输入反馈内容" v-model="formData.content"></fui-textarea>
<fui-textarea placeholder="请输入反馈内容" v-model="formData.feedback_text"></fui-textarea>
</view>
</view>
<view class="section">
<view class="upload_box">
<view>上传图片</view>
<AQUplodeImgMulti :inputName="`images_arr`" :inputValue="formData.images_arr || []"
<AQUplodeImgMulti :inputName="`attachment_url_arr`" :inputValue="formData.attachment_url_arr || []" :uploadApiUrl="uploadApiUrl" :maxFileNum="1"
@AQUploadSuccess="AQUploadSuccess" />
</view>
</view>
<view class="section">
<view class="input_box">
<fui-input label="邮箱方式" borderTop placeholder="请输入邮箱" v-model="formData.mailbox"></fui-input>
</view>
</view>
<!-- <view class="section">-->
<!-- <view class="input_box">-->
<!-- <fui-input label="邮箱方式" borderTop placeholder="请输入邮箱" v-model="formData.mailbox"></fui-input>-->
<!-- </view>-->
<!-- </view>-->
<view class="describe">
反馈的相关问题会第一时间通过邮箱解答
</view>
<!-- <view class="describe">-->
<!-- 反馈的相关问题会第一时间通过邮箱解答-->
<!-- </view>-->
<view class="btn" @click="submitForm()">提交</view>
</view>
@ -34,9 +34,13 @@
</template>
<script>
import apiRoute from '@/api/apiRoute.js';
import memberApi from '@/api/member.js';
import AQUplodeImgMulti from '@/components/AQ/AQUplodeImgMulti';
import AQTabber from "@/components/AQ/AQTabber"
import {
Api_url
} from "@/common/config.js";
export default {
@ -46,16 +50,40 @@
},
data() {
return {
uploadApiUrl:`${Api_url}/memberUploadImage`,//url
formData: {
images_arr: [],
images:'',
content:'',
mailbox:'',
attachment_url_arr: [],
attachment_url:undefined,//,使,
feedback_text:'',//
user_id:'',//ID|school_customer_resourcesid
},
}
},
onLoad() {},
onShow(){
this.init()
},
methods: {
async init(){
//
await this.getMemberInfo()
},
//
async getMemberInfo() {
let res = await apiRoute.xy_memberInfo({})
if(res.code != 1){
uni.showToast({
title: res.msg,
icon: 'none'
})
return
}
this.formData.user_id = res.data.id
console.log('xxxx',res.data)
},
//######AQ######
//
AQUploadSuccess(res) {
@ -67,13 +95,16 @@
}
this.formData[res.inputName] = _inputValue
// console.log('AQxxx1',res)
// console.log('AQxxx2',this.formData.member_store_certification_arr)
// console.log('AQxxx2',this.formData[res.inputName])
},
async submitForm() {
let data = {...this.formData}
data.images = data.images_arr.join(',')
if(!data.content){
if(data.attachment_url_arr.length){
data.attachment_url = data.attachment_url_arr.join(',')
}
if(!data.feedback_text){
//
uni.showToast({
title:'反馈内容为必填项',
@ -81,7 +112,7 @@
})
return
}
let res = await memberApi.setFeedback(data)
let res = await apiRoute.xy_userFeedbackAdd(data)
if(res.code != 1){
uni.showToast({
title:res.msg,

Loading…
Cancel
Save