feedback.vue 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <template>
  2. <view class="feedback-wrapper">
  3. <view class="common-card">
  4. <BaseTitle txt="如果您有什么想法和意见,请在下面填写"></BaseTitle>
  5. <u--textarea height="140" v-model="remark" placeholder="请输入内容" ></u--textarea>
  6. <view class="common-btn mt15" @click="submitData">提交</view>
  7. </view>
  8. <view class="common-card">
  9. <BaseTitle txt="我的反馈"></BaseTitle>
  10. <view class="feedback-list">
  11. <view class="feedback-item" v-for="(item, index) in feedbackList" :key="index">
  12. <view class="content fw600 mb5 display-flex-center">
  13. <u-icon name="coupon" color="#765AEE"></u-icon>
  14. <text class="ml5">{{item.remark}}</text>
  15. </view>
  16. <view class="time fs12 color-71">{{item.create_at}}</view>
  17. </view>
  18. </view>
  19. </view>
  20. </view>
  21. </template>
  22. <script>
  23. import BaseTitle from "@/components/base-title/index.vue"
  24. export default {
  25. components: {BaseTitle},
  26. data() {
  27. return {
  28. remark: '',
  29. feedbackList: [
  30. ]
  31. }
  32. },
  33. onLoad() {
  34. this.getList()
  35. },
  36. methods: {
  37. submitData() {
  38. if (!this.remark) {
  39. uni.showToast({
  40. icon: "none",
  41. title: '请填写反馈内容'
  42. })
  43. return
  44. }
  45. uni.showLoading()
  46. this.$api.addFeedbackData({remark: this.remark}).then(res => {
  47. uni.hideLoading()
  48. if (res.code == 1) {
  49. uni.showToast({
  50. icon: "success",
  51. title: '提交成功!'
  52. })
  53. this.remark = ''
  54. this.getList()
  55. }
  56. })
  57. },
  58. getList() {
  59. uni.showLoading()
  60. this.$api.getMyFeedbackList().then(res => {
  61. uni.hideLoading()
  62. if (res.code == 1) {
  63. this.feedbackList = res.data.list
  64. }
  65. }).catch(() => {
  66. uni.hideLoading()
  67. })
  68. }
  69. }
  70. }
  71. </script>
  72. <style lang="scss" scoped>
  73. .feedback-wrapper {
  74. height: 100vh;
  75. box-sizing: border-box;
  76. // background-color: #fff;
  77. padding: 20rpx;
  78. ::v-deep {
  79. .base-title-line {
  80. margin-left: 0;
  81. }
  82. }
  83. .feedback-item {
  84. border-bottom: 2rpx solid #E8E8EB;
  85. padding: 20rpx 0;
  86. font-size: 28rpx;
  87. }
  88. }
  89. </style>