suggest.vue 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <template>
  2. <view class="page" style="background-color: #fff;">
  3. <!-- 建议输入框 -->
  4. <u-input v-model="content" type="textarea" height="200" placeholder="请输入您的意见或建议" border autoHeight></u-input>
  5. <u-gap></u-gap>
  6. <u-button type="primary" :disabled="submitDisable" @click="submit()">提交</u-button>
  7. <u-gap></u-gap>
  8. <u-divider v-if="dataList.length > 0">历史记录</u-divider>
  9. <u-gap></u-gap>
  10. <!-- 记录 -->
  11. <u-cell-group>
  12. <u-cell-item
  13. v-for="(item, index) in dataList"
  14. :key="index"
  15. :title="item.content"
  16. :label="vk.pubfn.timeFormat(item._add_time, 'yyyy-MM-dd')"
  17. :value="item.status ? '已答复' : '未答复'"
  18. :arrow="item.staus"
  19. @click="showDetailPopup(index)"
  20. ></u-cell-item>
  21. </u-cell-group>
  22. <!-- 反馈详情 -->
  23. <u-popup v-model="detailPopupShow" mode="center" width="80%" height="460rpx" border-radius="20" closeable close-icon-color="#fff">
  24. <view class="bwin-popup">
  25. <view class="popup-header">反馈详情</view>
  26. <view class="popup-body">
  27. <view class="content">{{ dataList[currentItemIndex].content }}</view>
  28. <view class="comment">平台答复:{{ dataList[currentItemIndex].comment ? dataList[currentItemIndex].comment : '暂未答复' }}</view>
  29. </view>
  30. </view>
  31. </u-popup>
  32. <u-loadmore
  33. v-if="dataList.length > 0"
  34. marginTop="20"
  35. :line="true"
  36. :status="loadmore.status"
  37. :loading-text="loadmore.loadingText"
  38. :loadmore-text="loadmore.defaultText"
  39. :nomore-text="loadmore.nomoreText"
  40. />
  41. </view>
  42. </template>
  43. <script>
  44. var that;
  45. export default {
  46. data() {
  47. return {
  48. content: '',
  49. submitDisable: false,
  50. dataList: [],
  51. detailPopupShow: false,
  52. currentItemIndex: 0,
  53. loadmore: {
  54. status: 'loadmore',
  55. loadingText: '努力加载中',
  56. defaultText: '轻轻上拉 查看更多',
  57. nomoreText: '实在没有了',
  58. currentPage: 1
  59. }
  60. };
  61. },
  62. onLoad() {
  63. that = this;
  64. let lastSuggestTime = vk.vuex.get('$user.history.lastSuggestTime');
  65. let currentTime = Date.parse(new Date()) / 1000; // 时间戳用来计算
  66. if (vk.pubfn.isNotNull(lastSuggestTime) && currentTime - lastSuggestTime < 3600) {
  67. that.submitDisable = true;
  68. }
  69. vk.callFunction({
  70. url: 'client/agent/kh/getSuggestLogList',
  71. title: '请求中...',
  72. needAlert: false
  73. }).then(res => {
  74. if (res.list.length < 10) {
  75. that.loadmore.status = 'nomore';
  76. }
  77. that.dataList = res.list;
  78. });
  79. },
  80. methods: {
  81. // 提交
  82. submit() {
  83. if (vk.pubfn.isNull(that.content)) {
  84. vk.toast('请填写反馈内容', 'none');
  85. return;
  86. }
  87. vk.callFunction({
  88. url: 'client/agent/kh/createSuggestLog',
  89. title: '提交中...',
  90. needAlert: false,
  91. data: {
  92. content: that.content
  93. }
  94. }).then(res => {
  95. vk.toast('提交成功', 'success');
  96. let currentTime = Date.parse(new Date()) / 1000; // 时间戳用来计算
  97. vk.vuex.set('$user.history.lastSuggestTime', currentTime);
  98. let newItem = {
  99. content: that.content,
  100. _add_time: currentTime
  101. };
  102. that.dataList.unshift(newItem);
  103. that.content = '';
  104. });
  105. },
  106. showDetailPopup(index) {
  107. that.currentItemIndex = index;
  108. that.detailPopupShow = true;
  109. }
  110. }
  111. };
  112. </script>
  113. <style lang="scss">
  114. .popup-body {
  115. font-size: $u-p1 !important;
  116. .content {
  117. padding-bottom: 20rpx;
  118. }
  119. .comment {
  120. border-top: 1rpx solid $u-border-color;
  121. padding-top: 20rpx;
  122. }
  123. }
  124. </style>