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

67
pages/common/feedback.vue

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

Loading…
Cancel
Save