Browse Source

新增页面:意见反馈

panyong 2 years ago
parent
commit
9b5862d500

+ 1 - 1
htmldev/cps/src/api/request.js

@@ -55,7 +55,7 @@ request.interceptors.request.use(request => {
 
   // 因为微信开发者工具重复授权,本地开发时写死
   if (/^(0|192|10|localhost)/.test(domain)) {
-    request.headers.wechatToken = 'fcb5ce1baa28fba5b43db5e4dc4df04c'
+    request.headers.wechatToken = '117b983535bdb8334f06f5baf4b50cf6'
   } else {
     request.headers.wechatToken = getCookieValue('fanbutingwechatToken')
   }

+ 5 - 0
htmldev/cps/src/router/index.js

@@ -125,6 +125,11 @@ const routes = [
       keepAlive: true
     }
   },
+  {
+    path: '/feedback', // 意见反馈
+    name: 'Feedback',
+    component: _import('views/feedback/index')
+  },
   {
     path: '/paymentCode', // 支付码
     name: 'PaymentCode',

+ 13 - 0
htmldev/cps/src/views/feedback/api/api.js

@@ -0,0 +1,13 @@
+import request from '@/api/request'
+
+/**
+ * 意见反馈
+ */
+export const apiFeedback = (content) => request({
+  method: 'POST',
+  url: '/api/user/feedback',
+  data: {
+    content
+  },
+  showLoading: true
+})

+ 113 - 0
htmldev/cps/src/views/feedback/index.vue

@@ -0,0 +1,113 @@
+<template>
+  <van-form
+    class="fbt-form"
+    @submit="debounceSubmit">
+    <van-field
+      v-model="content"
+      name="content"
+      rows="8"
+      autosize
+      type="textarea"
+      placeholder="请输入你宝贵的意见"/>
+    <van-button
+      block
+      type="info"
+      native-type="submit">提交
+    </van-button>
+  </van-form>
+</template>
+
+<script>
+import { Form, Field, Button, Toast } from 'vant'
+import { apiFeedback } from './api/api'
+import _ from 'lodash'
+
+export default {
+  components: {
+    'van-form': Form,
+    'van-field': Field,
+    'van-button': Button
+  },
+  data () {
+    return {
+      content: ''
+    }
+  },
+  created () {
+    this.debounceSubmit = _.debounce(this.onSubmit, 1000)
+  },
+  methods: {
+    async onSubmit (values) {
+      const vm = this
+      const { content } = values
+      if (!content.length) {
+        Toast('反馈内容不能为空')
+        return
+      }
+      try {
+        const { status, msg } = await apiFeedback(this.content)
+        if (status) {
+          Toast({
+            message: '反馈成功,工作人员将会\n认真查看你的反馈',
+            onClose () {
+              vm.$router.replace({ name: 'Mine' })
+            }
+          })
+        } else {
+          Toast(msg)
+        }
+      } catch (e) {}
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+.fbt-form {
+  display: flex;
+  min-height: 100vh;
+  flex-direction: column;
+  align-items: center;
+  padding-top: 30px;
+  background: #f4f5f5;
+
+  ::v-deep .van-cell {
+    width: 346px;
+    border-radius: 12px;
+    background: #fefefe;
+    box-shadow: 2px 2px 6px 5px #f4f5f5;
+
+    textarea {
+      width: 100%;
+      min-height: 172px;
+      font-size: 14px;
+      color: #333;
+      word-break: break-all;
+      resize: none;
+      outline: 0 none;
+      overflow: hidden;
+      background: transparent;
+      -webkit-text-fill-color: #333;
+      opacity: 1;
+
+      &::-webkit-input-placeholder {
+        color: #999;
+        -webkit-text-fill-color: #999;
+        opacity: 1;
+      }
+    }
+  }
+
+  ::v-deep .van-button {
+    width: 346px;
+    margin-top: 30px;
+    border: none;
+    color: #333333;
+    background: #f8d65a;
+
+    .van-button__text {
+      font-size: 15px;
+    }
+  }
+}
+</style>

+ 22 - 1
htmldev/cps/src/views/mine/index.vue

@@ -42,7 +42,7 @@
         </li>
         <li @click="$router.push({name: 'Fans'})">
           <p class="left">
-            <i class="label icon-wallet"></i>
+            <i class="label icon-fans"></i>
             <span class="label">粉丝</span>
           </p>
           <p class="right">
@@ -50,6 +50,18 @@
             <i class="arrow"></i>
           </p>
         </li>
+        <li @click="$router.push({name: 'Feedback'})">
+          <p class="left">
+            <van-icon
+              size="20px"
+              color="#6b400d"
+              name="comment-o"/>
+            <span class="label">意见反馈</span>
+          </p>
+          <p class="right">
+            <i class="arrow"></i>
+          </p>
+        </li>
       </ul>
       <router-link
         class="jump-recommend"
@@ -60,10 +72,14 @@
 
 <script>
 import BScroll from 'better-scroll'
+import { Icon } from 'vant'
 import { mapGetters } from 'vuex'
 
 export default {
   name: 'index',
+  components: {
+    'van-icon': Icon
+  },
   data () {
     return {
       scroll: null
@@ -200,6 +216,11 @@ ul {
     padding-right: 14px;
   }
 
+  ::v-deep .van-icon {
+    padding-top: 4px;
+    margin-right: 8px;
+  }
+
   i.label {
     width: 20px;
     height: 20px;