yuwenjun 3 лет назад
Родитель
Сommit
e06076f7cf

+ 4 - 4
.env.development

@@ -2,12 +2,12 @@
 ENV = 'development'
 
 # 测试地址 API接口
-# VUE_APP_BASE_API = 'https://zplma-b.caimei365.com'
-VUE_APP_BASE_API = 'http://192.168.2.68:8012'
+VUE_APP_BASE_API = 'https://zplma-b.caimei365.com'
+# VUE_APP_BASE_API = 'http://192.168.2.68:8012'
 
 # 文件上传 API接口地址
-# VUE_APP_UPLOAD_API='https://zplma-b.caimei365.com'
-VUE_APP_UPLOAD_API='http://192.168.2.68:8012'
+VUE_APP_UPLOAD_API='https://zplma-b.caimei365.com'
+# VUE_APP_UPLOAD_API='http://192.168.2.68:8012'
 
 # 二维码生成链接location
 VUE_APP_BASE_SERVER = 'https://www-b.caimei365.com'

+ 27 - 0
src/api/auth.js

@@ -80,3 +80,30 @@ export function unbindGenerate(data) {
     data
   })
 }
+
+// 获取用户反馈信息列表
+export function getFeedbackList(params) {
+  return request({
+    url: '/shop/feedback/list',
+    method: 'get',
+    params
+  })
+}
+
+// 获取反馈信息
+export function getFeedbackDetail(params) {
+  return request({
+    url: '/shop/feedback/form/data',
+    method: 'get',
+    params
+  })
+}
+
+// 处理反馈信息
+export function handleFeedback(data) {
+  return request({
+    url: '/shop/feedback/handle',
+    method: 'post',
+    data
+  })
+}

+ 3 - 3
src/router/modules/feedback.js

@@ -9,20 +9,20 @@ const feedbackRoutes = [
     alwaysShow: true,
     redirect: '/feedback/list',
     name: 'Feedback',
-    meta: { title: '用户反馈', icon: 'el-icon-s-comment', roles: ['admin'], noCache: true },
+    meta: { title: '用户反馈', icon: 'el-icon-s-comment', roles: ['normal'], noCache: true },
     children: [
       {
         path: 'list',
         component: () => import('@/views/authentic/feedback/index'),
         name: 'FeedbackList',
-        meta: { title: '反馈列表', icon: 'el-icon-menu', roles: ['admin'], noCache: true }
+        meta: { title: '反馈列表', icon: 'el-icon-menu', roles: ['normal'], noCache: true }
       },
       {
         path: 'detail',
         component: () => import('@/views/authentic/feedback/detail'),
         name: 'FeedbackDetail',
         hidden: true,
-        meta: { title: '反馈处理', icon: 'el-icon-menu', roles: ['admin'], noCache: true }
+        meta: { title: '反馈处理', icon: 'el-icon-menu', roles: ['normal'], noCache: true }
       }
     ]
   }

+ 1 - 1
src/styles/index.scss

@@ -246,7 +246,7 @@ aside {
 
 .el-badge {
   sup {
-    right: 25px !important;
+    right: 15px !important;
   }
 }
 

+ 4 - 1
src/views/authentic/auth/index.vue

@@ -45,7 +45,7 @@
       style="width: 100%;"
       header-row-class-name="tableHeader"
     >
-      <el-table-column label="序号" align="center" width="80" type="index" />
+      <el-table-column label="序号" :index="indexMethod" align="center" width="80" type="index" />
 
       <el-table-column label="授权机构" align="center" prop="authParty" />
 
@@ -388,6 +388,9 @@ export default {
         this.dialogFlag = true
       }
       this.showAddAuthDialog = true
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 4 - 1
src/views/authentic/authuser/index.vue

@@ -16,7 +16,7 @@
       style="width: 100%;"
       header-row-class-name="tableHeader"
     >
-      <el-table-column label="序号" align="center" width="80" type="index" />
+      <el-table-column label="序号" :index="indexMethod" align="center" width="80" type="index" />
 
       <el-table-column label="机构名称" align="center" prop="authParty" />
 
@@ -307,6 +307,9 @@ export default {
         this.dialogFlag = true
       }
       this.showAddAuthDialog = true
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 6 - 3
src/views/authentic/authuser/userList.vue

@@ -38,7 +38,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80px" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80px" align="center" />
       <el-table-column label="邀请码" prop="invitationCode" width="100px" align="center" />
       <el-table-column label="状态" width="100px" align="center">
         <template slot-scope="{ row }">
@@ -64,9 +64,9 @@
           <span v-else>—</span>
         </template>
       </el-table-column>
-      <el-table-column label="openID" width="140" align="center">
+      <el-table-column label="openID" width="280" align="center">
         <template slot-scope="{row}">
-          <span v-if="row.openid">{{ row.openid }}</span>
+          <span v-if="row.openId">{{ row.openId }}</span>
           <span v-else>—</span>
         </template>
       </el-table-column>
@@ -183,6 +183,9 @@ export default {
           })
           this.getList()
         })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 6 - 0
src/views/authentic/doc/articleEdit.vue

@@ -40,6 +40,7 @@ export default {
         articleImage: '', // 文章封面
         articleContent: '' // 文章内容
       },
+      // 表单验证规则
       formRules: {
         articleTitle: [
           { required: true, message: '文章标题不能为空', trigger: 'blur' },
@@ -48,9 +49,13 @@ export default {
         articleImage: [{ required: true, message: '文章必须上传封面', trigger: 'change' }],
         articleContent: [{ required: true, message: '文章内容不能为空', trigger: 'change' }]
       },
+      // 表单是否处于加载状态
       isLoading: true,
+      // 当前用户登录的token
       token: '',
+      // 富文本框上传图片的接口
       action: process.env.VUE_APP_UPLOAD_API + '/upload/image',
+      // 封面图片列表
       imagelist: []
     }
   },
@@ -87,6 +92,7 @@ export default {
         })
       })
     },
+    // 初始化表单回显数据
     initFormData() {
       if (!this.formData.articleId) return
       getArticleDeatil({ articleId: this.formData.articleId }).then(res => {

+ 5 - 8
src/views/authentic/doc/articleList.vue

@@ -57,14 +57,13 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column label="文章标题" prop="articleTitle" align="center" />
       <el-table-column label="文章头图" width="200" align="center">
         <template slot-scope="{ row }">
           <el-image
             style="width: 50px; height: 50px"
             :src="row.articleImage"
-            :preview-src-list="srcList"
           /></template>
       </el-table-column>
       <el-table-column label="审核状态" width="180px" align="center">
@@ -177,8 +176,7 @@ export default {
         pageSize: 10, // 分页大小
         status: '' // 文章状态:0已下线,1已上线,2待上线
       },
-      list: [],
-      srcList: []
+      list: []
     }
   },
   computed: {
@@ -203,10 +201,6 @@ export default {
           this.listLoading = false
         })
     },
-    // 初始化预览图片列表
-    initPreviewList(list) {
-      list.forEach(item => this.srcList.push(item.articleCover))
-    },
     // 删除文章
     async handleRemoveArticle(row) {
       const text = await this.$confirm('确认删除该文章吗?', '提示', {
@@ -249,6 +243,9 @@ export default {
       }).finally(() => {
         this.listLoading = false
       })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 26 - 14
src/views/authentic/doc/fileList.vue

@@ -52,7 +52,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column label="文件标题" prop="fileTitle" align="center" />
       <el-table-column label="审核状态" width="180px" align="center">
         <template slot-scope="{ row }">
@@ -171,14 +171,14 @@ export default {
   },
   data() {
     return {
-      listLoading: false,
-      submitLoading: false,
-      total: 0,
-      dialogVisible: false,
-      dialogTitle: '添加文件',
-      hasFile: false,
-      uploadFileUrl: '',
-      chooseNewFile: false,
+      listLoading: false, // 列表加载
+      submitLoading: false, // 按钮加载
+      total: 0, // 列表条数
+      dialogVisible: false, // 是否显示dialog
+      dialogTitle: '添加文件', // dialog标题
+      hasFile: false, // 是否上传了文件
+      uploadFileUrl: '', // 上传文件成功后的url
+      chooseNewFile: false, // 是否选择了新的图片上传
       listQuery: {
         authUserId: '', // 供应商用户id
         listType: 1, // 列表类型:1视频列表,2视频审核列表
@@ -189,18 +189,19 @@ export default {
         pageSize: 10 // 分页大小
       },
       fileList: [],
+      // dialog表单中的数据
       dialogData: {
         authUserId: '',
         fileTitle: '',
         fileId: '',
         fileUrl: ''
       },
+      // dialog表单数据校验规则
       dialogFormRules: {
         fileTitle: [{ required: true, message: '标题不能为空', trigger: 'blur' }],
         fileUrl: [{ required: true, message: '链接不能为空', trigger: 'change' }]
       },
-      list: [],
-      srcList: []
+      list: []
     }
   },
   computed: {
@@ -233,6 +234,7 @@ export default {
           this.listLoading = false
         })
     },
+    // 点击保存按钮
     handleSave() {
       // 对标题字段进行规则校验
       console.log(this.dialogData)
@@ -243,6 +245,7 @@ export default {
         }
       })
     },
+    // 调用保存数据接口
     save() {
       this.$refs.formRef.validate(valide => {
         if (!valide) return
@@ -267,6 +270,7 @@ export default {
           })
       })
     },
+    // 删除视频
     async handleRemoveFile(row) {
       const text = await this.$confirm('视频删除后不可恢复,确认删除该视频吗?', '提示', {
         confirmButtonText: '确定',
@@ -283,6 +287,7 @@ export default {
           this.getList()
         })
     },
+    // 显示dialog对话框
     handleShowDialog(type, row) {
       this.dialogTitle = type === 'add' ? '添加文件' : '修改文件'
       this.$refs?.formRef?.resetFields()
@@ -298,31 +303,35 @@ export default {
         }
       }
       if (this.dialogData.fileUrl) {
-        this.fileList.push({ name: `删除当前文件后可上传新文件`, url: row.fileUrl })
+        this.fileList = [{ name: `删除当前文件后可上传新文件`, url: row.fileUrl }]
         this.hasFile = true
       }
     },
+    // dialog对话框关闭时的回调
     dialogColosed() {
       this.dialogData.authUserId = ''
       this.dialogData.fileTitle = ''
       this.dialogData.fileId = ''
       this.dialogData.fileUrl = ''
-      this.fileList = []
-      this.hasFile = false
       this.uploadFileUrl = ''
       this.chooseNewFile = false
+      this.hasFile = false
+      this.fileList = []
     },
+    // 上传文件成功
     fileUploadSuccess(response) {
       // this.dialogData.fileUrl = response.fileUrl
       this.uploadFileUrl = response.fileUrl
       this.save()
       console.log(response)
     },
+    // 上传文件成功,选择文件,上传文件失败的回调
     fileUploadChange(file, fileList) {
       this.hasFile = fileList.length > 0
       this.dialogData.fileUrl = '-'
       this.chooseNewFile = true
     },
+    // 移除文件
     fileUploadRemove(file, fileList) {
       this.dialogData.fileUrl = ''
       this.hasFile = fileList.length > 0
@@ -352,6 +361,9 @@ export default {
       }).finally(() => {
         this.listLoading = false
       })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 6 - 7
src/views/authentic/doc/imageList.vue

@@ -57,7 +57,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column label="图片标题" prop="imageTitle" align="center" />
       <el-table-column label="审核状态" width="180px" align="center">
         <template slot-scope="{ row }">
@@ -146,8 +146,7 @@ export default {
         pageSize: 10, // 分页大小
         status: '' // 文章状态:0已下线,1已上线,2待上线
       },
-      list: [],
-      srcList: []
+      list: []
     }
   },
   computed: {
@@ -172,10 +171,7 @@ export default {
           this.listLoading = false
         })
     },
-    // 初始化预览图片列表
-    initPreviewList(list) {
-      list.forEach(item => this.srcList.push(item.articleCover))
-    },
+
     // 删除图片
     async handleRemoveImage(row) {
       const text = await this.$confirm('确认删除该图片吗?', '提示', {
@@ -218,6 +214,9 @@ export default {
       }).finally(() => {
         this.listLoading = false
       })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 27 - 16
src/views/authentic/doc/videoList.vue

@@ -52,7 +52,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column label="视频标题" prop="videoTitle" align="center" />
       <el-table-column label="审核状态" width="180px" align="center">
         <template slot-scope="{ row }">
@@ -173,15 +173,15 @@ export default {
   },
   data() {
     return {
-      listLoading: false,
-      submitLoading: false,
-      dialogVisible: false,
-      dialogTitle: '添加视频',
-      total: 0,
-      hasVideo: false,
-      chooseNewVideo: false,
-      fileList: [],
-      uploadVideoUrl: '',
+      listLoading: false, // 列表加载
+      submitLoading: false, // 按钮加载
+      dialogVisible: false, // 是否显示dialog
+      dialogTitle: '添加视频', // dialog标题
+      total: 0, // 数据条数
+      hasVideo: false, // 是否上传了视频
+      chooseNewVideo: false, // 是否重新选择了视频
+      fileList: [], // 上传的视频列表
+      uploadVideoUrl: '', // 上传视频成功的url
       listQuery: {
         authUserId: '', // 供应商用户id
         listType: 1, // 列表类型:1视频列表,2视频审核列表
@@ -191,12 +191,14 @@ export default {
         pageNum: 1, // 页码
         pageSize: 10 // 分页大小
       },
+      // dialog中表单的数据
       dialogData: {
         videoId: '',
         authUserId: '',
         videoTitle: '',
         videoUrl: ''
       },
+      // dialog中表单字段校验规则
       dialogFormRules: {
         videoTitle: [{ required: true, message: '标题不能为空', trigger: 'blur' }],
         videoUrl: [{ required: true, message: '链接不能为空', trigger: ['change', 'blur'] }]
@@ -244,11 +246,17 @@ export default {
       this.$refs.formRef.validateField('videoTitle', (error) => {
         if (!error) {
           /**
-           * 保存判定
-           * 1:videoUrl 为空  选择了视频
-           * 2:videoUrl 不为空 选择了视频
-           * 3:videoUrl 不为空  未选择视频
-           *  */
+           * 新增视频和修改视频
+           * 表单有两种提交方式
+           * 1、直接提交保存,不上传视频
+           * 2、上传视频成功后再保存
+           * 要针对这两种上传方式做响应的判断
+           * 组合:1.新增时,填写视频地址,不上传视频  --直接提交
+           *      2.新增时,填写视频地址,再选择上传视频  --上传的视频优先级高
+           *      3.新增时,不填写视频地址,选择上传视频  --上传视频后再提交
+           *      4.修改时,只修改视频标题,已经有了视频地址  --直接提交
+           *      5.修改时,重新选择了视频  --上传视频后再提交
+           */
           this.submitLoading = true;
           (this.dialogData.videoUrl && (!this.hasVideo || (this.hasVideo && !this.chooseNewVideo))) ? this.save() : this.$refs.uploadRef.submit()
         }
@@ -259,10 +267,10 @@ export default {
       this.$refs.formRef.validate(valide => {
         if (!valide) return
         this.dialogData.authUserId = this.authUserId
+        // uploadVideoUrl不为空,就代表重新上传了视频,需要为表单中的videoUrl重新赋值,新增时该值也不为空
         if (this.uploadVideoUrl) {
           this.dialogData.videoUrl = this.uploadVideoUrl
         }
-        console.log('保存')
         saveVideo(this.dialogData)
           .then(res => {
             console.log(res)
@@ -372,6 +380,9 @@ export default {
       }).finally(() => {
         this.listLoading = false
       })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 38 - 16
src/views/authentic/feedback/detail.vue

@@ -4,22 +4,18 @@
       <h2>反馈处理</h2>
       <el-form label-width="100px" :rules="formRules" :model="formData">
         <el-form-item label="机构名称:">
-          专业线贵妇级除皱产品--希腊YELLOW ROSE黄玫瑰弹力除皱精华和玻尿酸花瓣保湿水
+          {{ feedbackData.clubName }}
         </el-form-item>
-        <el-form-item label="手机号:">15818778888</el-form-item>
+        <el-form-item label="手机号:">{{ feedbackData.mobile }}</el-form-item>
         <el-form-item label="反馈内容:">
-          输入关键词“希腊YELLOW ROSE”、“希腊黄玫瑰”即可在采美365网和百度上搜索到相关商品信息。
-          皱纹是青春的头号杀手。面部肌肤的皱纹、松弛、暗沉、下垂、眼袋等,一直是广大的爱美朋友关注的保养问题,除皱抗衰类的保养品一直是化妆品市场的宠儿。
-          皱纹是日积月累的阳光伤害和皮肤的天然支撑结构不可避免的弱化造成的,与皮肤干燥引起的浅表性细纹完全不同,难以通过水乳或基础的护肤品来淡化,需高浓度的产品才能快速淡化。
-          在科学上,有效的除皱成分其实很少,在运用护肤品去除皱纹时,除了选择有科学支持的淡皱成分为主,最好搭配其它具延缓衰老的成分为辅,通力合作,协同增效。
-          本期新品推荐希腊品牌YELLOW ROSE的两款专业线贵妇级除皱产品:金色系列-弹力除皱精华和玻尿酸系
+          <div style="overflow-wrap:anywhere;text-align:justify">{{ feedbackData.content }}</div>
         </el-form-item>
         <el-form-item label="处理状态:">
-          <span v-if="formData.auditStatus===0" class="status danger">未处理</span>
-          <span v-if="formData.auditStatus===1" class="status success">已处理</span>
+          <span v-if="feedbackData.handleStatus===0" class="status danger">未处理</span>
+          <span v-if="feedbackData.handleStatus===1" class="status success">已处理</span>
         </el-form-item>
-        <el-form-item label="处理结果:" prop="invalidReason">
-          <el-input v-model="formData.invalidReason" type="textarea" placeholder="请说明原因" />
+        <el-form-item label="处理结果:" prop="handleResult">
+          <el-input v-model="formData.handleResult" type="textarea" placeholder="请添加处理结果" />
         </el-form-item>
         <el-form-item>
           <el-button type="info" @click="$_back">返回</el-button>
@@ -31,20 +27,46 @@
 </template>
 
 <script>
+import { getFeedbackDetail, handleFeedback } from '@/api/auth'
 export default {
   data() {
     return {
+      feedbackId: '',
       formData: {
-        auditStatus: 0,
-        invalidReason: ''
+        handleResult: ''
       },
       formRules: {
-        invalidReason: { required: true, message: '处理结果不能为空', tigger: 'blur' }
-      }
+        handleResult: { required: true, message: '处理结果不能为空', tigger: 'blur' }
+      },
+      feedbackData: {}
     }
   },
+  created() {
+    this.feedbackId = this.$route.query.feedbackId
+    this.getDetail()
+  },
   methods: {
-    submit() {}
+    // 提交处理信息
+    submit() {
+      handleFeedback({ feedbackId: this.feedbackId, handleResult: this.formData.handleResult })
+        .then(res => {
+          if (res.code !== 0) return
+          this.$message({
+            message: res.data,
+            duration: 500,
+            type: 'success'
+          })
+          this.$store.dispatch('tagsView/delView', this.$route)
+          this.$router.back()
+        })
+    },
+    // 获取反馈信息
+    getDetail() {
+      getFeedbackDetail({ feedbackId: this.feedbackId }).then(res => {
+        console.log(res)
+        this.feedbackData = res.data
+      })
+    }
   }
 }
 </script>

+ 61 - 46
src/views/authentic/feedback/index.vue

@@ -4,7 +4,7 @@
     <div class="filter-container">
       <span>机构名称:</span>
       <el-input
-        v-model="listQuery.articleTitle"
+        v-model="listQuery.clubName"
         placeholder="机构名称"
         style="width: 200px"
         class="filter-item"
@@ -14,7 +14,7 @@
       <el-input v-model="listQuery.mobile" placeholder="手机号" style="width: 200px;" class="filter-item" @keyup.enter.native="handleFilter" />
       <span>处理状态:</span>
       <el-select
-        v-model="listQuery.lowerAuditStatus"
+        v-model="listQuery.handleStatus"
         placeholder="处理状态"
         clearable
         style="width: 200px"
@@ -22,11 +22,10 @@
         @change="getList"
       >
         <el-option label="全部" value="" />
-        <el-option label="已处理" :value="2" />
+        <el-option label="已处理" :value="1" />
         <el-option label="未处理" :value="0" />
       </el-select>
       <el-button type="primary" icon="el-icon-search" @click="getList">查询</el-button>
-      <el-button v-if="userIdentity === 2 || proxyInfo!==null" icon="el-icon-edit" type="primary">添加文章</el-button>
     </div>
     <!-- 搜索区域END -->
     <!-- 表格区域 -->
@@ -39,71 +38,84 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column type="expand" width="50">
         <template slot-scope="{row}">
-          <el-form label-position="left" class="table-expand">
+          <el-form label-position="left" class="table-expand" label-width="110px">
             <el-form-item label="机构名称:">
-              <span>{{ row.articleTitle }}</span>
+              <span>{{ row.clubName }}</span>
             </el-form-item>
             <el-form-item label="手机号:">
               <span>{{ row.mobile }}</span>
             </el-form-item>
             <el-form-item label="提交时间:">
-              <span>{{ row.auditTime }}</span>
+              <span>{{ row.commitTime | formatTime }}</span>
             </el-form-item>
             <el-form-item label="处理状态:">
               <span>
-                <el-tag v-if="row.auditStatus === 0" size="small" type="danger">未处理</el-tag>
-                <el-tag v-if="row.auditStatus === 1" size="small" type="success">已处理</el-tag>
+                <el-tag v-if="row.handleStatus === 0" size="small" type="danger">未处理</el-tag>
+                <el-tag v-if="row.handleStatus === 1" size="small" type="success">已处理</el-tag>
               </span>
             </el-form-item>
             <el-form-item label="反馈内容:">
-              <span>{{ row.mobile }}</span>
+              <span style="overflow-wrap:anywhere;text-align:justify">{{ row.content }}</span>
             </el-form-item>
             <el-form-item label="处理结果:">
-              <span>{{ row.mobile }}</span>
+              <span>{{ row.handleResult }}</span>
             </el-form-item>
           </el-form>
         </template>
       </el-table-column>
-      <el-table-column label="机构名称" prop="articleTitle" align="center" />
+      <el-table-column label="机构名称" prop="clubName" align="center" />
       <el-table-column label="手机号" prop="mobile" width="120" align="center" />
-      <el-table-column label="反馈内容" prop="mobile" align="center" />
+      <el-table-column label="反馈内容" prop="content" align="center">
+        <template slot-scope="{row}">
+          <span class="content">{{ row.content }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="提交时间" width="180px" align="center">
         <template slot-scope="{row}">
-          <span v-if="row.auditStatus!==2">{{ row.auditTime | formatTime }}</span>
+          <span v-if="row.auditStatus!==2">{{ row.commitTime | formatTime }}</span>
           <span v-else>—</span>
         </template>
       </el-table-column>
       <el-table-column label="处理状态" width="100px" align="center">
         <template slot-scope="{ row }">
-          <el-tag v-if="row.auditStatus === 0" size="small" type="danger">未处理</el-tag>
-          <el-tag v-if="row.auditStatus === 1" size="small" type="success">已处理</el-tag>
+          <el-tag v-if="row.handleStatus === 0" size="small" type="danger">未处理</el-tag>
+          <el-tag v-if="row.handleStatus === 1" size="small" type="success">已处理</el-tag>
+        </template>
+      </el-table-column>
+      <el-table-column label="处理结果" prop="handleResult" align="center">
+        <template slot-scope="{row}">
+          <span v-if="row.handleStatus === 1" class="content">{{ row.handleResult }}</span>
+          <span v-else>—</span>
         </template>
       </el-table-column>
-      <el-table-column label="处理结果" prop="mobile" align="center" />
       <el-table-column label="处理时间" width="180px" align="center">
         <template slot-scope="{row}">
-          <span v-if="row.auditStatus!==2">{{ row.auditTime | formatTime }}</span>
+          <span v-if="row.handleStatus === 1">{{ row.handleTime | formatTime }}</span>
           <span v-else>—</span>
         </template>
       </el-table-column>
       <el-table-column label="操作" width="120px" align="center">
-        <template>
-          <el-button type="primary" size="mini" style="margin-right:5px" icon="el-icon-edit" @click="$_navigationTo(`/feedback/detail`)">处理</el-button>
+        <template slot-scope="{row}">
+          <el-button type="primary" size="mini" style="margin-right:5px" icon="el-icon-edit" @click="$_navigationTo(`/feedback/detail?feedbackId=${row.feedbackId}`)">处理</el-button>
         </template>
       </el-table-column>
     </el-table>
     <!-- 表格区域END -->
+    <!-- 页码 -->
+    <pagination v-show="total > 0" :total="total" :page.sync="listQuery.pageNum" :limit.sync="listQuery.pageSize" @pagination="getList(listQuery)" />
   </div>
 </template>
 
 <script>
-import Mock from 'mockjs'
+import Pagination from '@/components/Pagination'
 import { formatDate } from '@/utils'
 import { mapGetters } from 'vuex'
+import { getFeedbackList } from '@/api/auth'
 export default {
+  components: { Pagination },
   filters: {
     formatTime(time) {
       if (!time) {
@@ -116,14 +128,15 @@ export default {
     return {
       listLoading: false,
       listQuery: {
-        pageNum: 0, // 页码
-        pageSize: 10, // 分页大小
-        articleTitle: '', // 供应商类型
-        lowerAuditStatus: '', // 审核状态
-        status: ''
+        authUserId: '',
+        clubName: '',
+        handleStatus: '',
+        mobile: '',
+        pageNum: 1, // 页码
+        pageSize: 10 // 分页大小
       },
-      list: [],
-      srcList: []
+      total: 0,
+      list: []
     }
   },
   computed: {
@@ -135,27 +148,23 @@ export default {
   methods: {
     // 获取列表数据
     getList() {
-      const count = 10
-      const list = []
-
-      for (let i = 0; i < count; i++) {
-        list.push(Mock.mock({
-          articleId: '@natural',
-          mobile: "@string('number',11)", // 手机号
-          articleTitle: '@ctitle(4,15)',
-          articleCover: '@image("100x100")',
-          auditStatus: '@natural(0,2)',
-          auditTime: '@date("yy-MM-dd hh:mm:ss")',
-          auditBy: '@cname(2,6)',
-          status: '@natural(0,1)'
-        }))
-      }
-      this.list = list
-      this.initPreviewList(list)
+      this.listQuery.authUserId = this.authUserId
+      console.log(this.listQuery)
+      getFeedbackList(this.listQuery).then(res => {
+        console.log(res)
+        if (res.code !== 0) return
+        this.list = res.data.list
+        this.total = res.data.total
+      }).catch(err => {
+        console.log(err)
+      })
     },
     // 初始化预览图片列表
     initPreviewList(list) {
       list.forEach(item => this.srcList.push(item.articleCover))
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }
@@ -180,6 +189,12 @@ export default {
     margin-left: 10px;
   }
 }
+.content{
+  display: block;
+  overflow: hidden !important;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
 .el-table .cell {
   overflow: visible;
 }

+ 4 - 1
src/views/authentic/product/index.vue

@@ -47,7 +47,7 @@
       style="width: 100%;"
       header-row-class-name="tableHeader"
     >
-      <el-table-column label="序号" type="index" align="center" width="80" />
+      <el-table-column label="序号" :index="indexMethod" type="index" align="center" width="80" />
       <el-table-column label="商品名称" align="center" prop="productName" />
       <el-table-column label="商品SN码" align="center" prop="snCode" />
 
@@ -265,6 +265,9 @@ export default {
         })
         this.auditNoticeFlag = false
       }
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 4 - 1
src/views/authentic/review/auth/authList.vue

@@ -50,7 +50,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column prop="authParty" label="授权机构" align="center" />
       <el-table-column label="审核状态" width="220px" align="center">
         <template slot-scope="{ row }">
@@ -241,6 +241,9 @@ export default {
     dialogClosed() {
       this.dialogData.authParty = ''
       this.dialogData.reviewStatus = 1
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 4 - 1
src/views/authentic/review/auth/index.vue

@@ -65,7 +65,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column :index="indexMethod" label="序号" type="index" width="80" align="center" />
       <el-table-column prop="name" label="供应商名称" align="center" />
       <el-table-column label="供应商类型" width="150px" align="center">
         <template slot-scope="{ row }">
@@ -147,6 +147,9 @@ export default {
         .finally(() => {
           this.listLoading = false
         })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 4 - 1
src/views/authentic/review/auth/shopList.vue

@@ -45,7 +45,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column :index="indexMethod" label="序号" type="index" width="80" align="center" />
       <el-table-column prop="productName" label="商品名称" align="center" />
       <el-table-column prop="snCode" label="商品SN码" align="center" />
       <el-table-column label="审核状态" width="220px" align="center">
@@ -144,6 +144,9 @@ export default {
       }).finally(() => {
         this.listLoading = false
       })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 7 - 5
src/views/authentic/review/doc/articleDetail.vue

@@ -33,11 +33,11 @@ import { mapGetters } from 'vuex'
 export default {
   data() {
     return {
-      articleContent: '',
-      articleTitle: '',
-      articleImage: '',
-      srcList: [],
-      previewSrc: '',
+      articleContent: '', // 文章内容
+      articleTitle: '', // 文章标题
+      articleImage: '', // 文章封面图
+      srcList: [], // 文章封面图片回显
+      previewSrc: '', // 预览图片列表
       formData: {
         articleId: '', // 文章id
         auditStatus: 1, // 审核状态
@@ -57,6 +57,7 @@ export default {
     this.getDetail()
   },
   methods: {
+    // 获取文章数据
     getDetail() {
       getArticleDeatil({ articleId: this.formData.articleId })
         .then(res => {
@@ -68,6 +69,7 @@ export default {
           this.srcList.push(this.articleImage)
         })
     },
+    // 审核操作
     submit() {
       this.$refs.formRef.validate(valide => {
         if (!valide) return

+ 5 - 2
src/views/authentic/review/doc/articleList.vue

@@ -37,7 +37,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column label="文章标题" prop="articleTitle" align="center" />
       <el-table-column label="文章头图" width="200" align="center">
         <template slot-scope="{ row }">
@@ -119,7 +119,7 @@ export default {
   data() {
     return {
       listLoading: false,
-      total: 0,
+      total: 0, // 列表数据条数
       listQuery: {
         authUserId: '', // 机构id
         auditStatus: '', // 审核状态
@@ -154,6 +154,9 @@ export default {
     // 初始化预览图片列表
     initPreviewList(list) {
       list.forEach(item => this.srcList.push(item.articleCover))
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 17 - 9
src/views/authentic/review/doc/fileList.vue

@@ -37,7 +37,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column label="文件名称" prop="fileTitle" align="center" />
       <el-table-column label="审核状态" width="150px" align="center">
         <template slot-scope="{ row }">
@@ -101,7 +101,7 @@
     >
       <el-form ref="formRef" :model="dialogData" label-width="65px" :rules="dialogFormRules">
         <el-form-item label="标题:">
-          专业线贵妇级除皱产品--希腊YELLOW ROSE黄玫瑰弹力除皱精华和玻尿酸花瓣保湿水
+          {{ current.fileTitle }}
         </el-form-item>
         <el-form-item label="文件:">
           <img src="@/assets/img/pdf_cover.png" alt="文件封面" width="60" height="60">
@@ -145,9 +145,9 @@ export default {
   },
   data() {
     return {
-      dialogVisible: false,
-      listLoading: false,
-      total: 0,
+      dialogVisible: false, // 文件审核dialog是否显示
+      listLoading: false, // 列表加载
+      total: 0, // 列表数据条数
       listQuery: {
         authUserId: '', // 机构id
         auditStatus: '', // 审核状态
@@ -158,10 +158,12 @@ export default {
         status: '' // 文章状态:0已下线,1已上线,2待上线
       },
       list: [],
+      // 当前审核选中的文件数据,需要传给预览窗口的数据
       current: {
         currentfileUrl: '',
-        fileName: ''
+        fileTitle: ''
       },
+      // 审核提交数据
       dialogData: {
         fileId: '', // 文章id
         auditStatus: 1, // 审核状态
@@ -195,20 +197,23 @@ export default {
           this.listLoading = false
         })
     },
+    // 显示审核dialog对话框
     handleShowDialog(row) {
       console.log(row)
       this.current.currentfileUrl = row.fileUrl
-      this.current.fileName = row.fileTitle
+      this.current.fileTitle = row.fileTitle
       this.dialogData.fileId = row.fileId
       this.dialogVisible = true
     },
+    // dialog关闭后的回调
     dialogColosed() {
       this.currentfileUrl = ''
       this.current.currentfileUrl = ''
-      this.current.fileName = ''
+      this.current.fileTitle = ''
       this.dialogData.auditStatus = 1
       this.dialogData.fileId = ''
     },
+    // 审核操作
     handleAuditStatus() {
       this.$refs.formRef.validate(valid => {
         if (valid) {
@@ -230,7 +235,10 @@ export default {
     },
     // 小窗口浏览pdf文件
     handlePreviewFile() {
-      openWindow(this.current.currentfileUrl, this.current.fileName, 1200, 600)
+      openWindow(this.current.currentfileUrl, this.current.fileTitle, 1200, 600)
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 4 - 2
src/views/authentic/review/doc/imageDetail.vue

@@ -35,8 +35,8 @@ import { mapGetters } from 'vuex'
 export default {
   data() {
     return {
-      imageList: [],
-      imageTitle: '专业线贵妇级除皱产品--希腊YELLOW ROSE黄玫瑰弹力除皱精华和玻尿酸花瓣保湿水',
+      imageList: [], // 上传的图片列表
+      imageTitle: '', // 图片标题
       formData: {
         imageId: '', // 文章id
         auditStatus: 1, // 审核状态
@@ -56,6 +56,7 @@ export default {
     this.getDetail()
   },
   methods: {
+    // 审核
     submit() {
       this.$refs.formRef.validate(valide => {
         if (!valide) return
@@ -75,6 +76,7 @@ export default {
           })
       })
     },
+    // 获取图片数据详情
     getDetail() {
       getImageDetail({ imageId: this.formData.imageId })
         .then(res => {

+ 6 - 3
src/views/authentic/review/doc/imageList.vue

@@ -37,7 +37,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" type="index" :index="indexMethod" width="80" align="center" />
       <el-table-column label="图片标题" prop="imageTitle" align="center" />
       <el-table-column label="审核状态" width="150px" align="center">
         <template slot-scope="{ row }">
@@ -111,8 +111,8 @@ export default {
   },
   data() {
     return {
-      listLoading: false,
-      total: 0,
+      listLoading: false, // 列表加载
+      total: 0, // 图片总条数
       listQuery: {
         authUserId: '', // 机构id
         auditStatus: '', // 审核状态
@@ -143,6 +143,9 @@ export default {
         .finally(() => {
           this.listLoading = false
         })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 6 - 2
src/views/authentic/review/doc/index.vue

@@ -65,7 +65,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" :index="indexMethod" type="index" width="80" align="center" />
       <el-table-column prop="name" label="供应商名称" align="center" />
       <el-table-column label="供应商类型" width="150px" align="center">
         <template slot-scope="{ row }">
@@ -138,7 +138,7 @@ export default {
         brandId: '', // 品牌id
         linkMan: '', // 联系人
         mobile: '', // 手机号
-        pageNum: 0, // 页码
+        pageNum: 1, // 页码
         pageSize: 10, // 分页大小
         shopName: '', // 供应商名称
         shopType: '', // 供应商类型
@@ -151,6 +151,7 @@ export default {
     this.getList()
   },
   methods: {
+    // 获取供应商待审核列表数据
     getList() {
       this.listLoading = true
       fetchSupplierList(this.listQuery)
@@ -162,6 +163,9 @@ export default {
         .finally(() => {
           this.listLoading = false
         })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 15 - 8
src/views/authentic/review/doc/videoList.vue

@@ -37,7 +37,7 @@
       highlight-current-row
       cell-class-name="table-cell"
     >
-      <el-table-column label="序号" type="index" width="80" align="center" />
+      <el-table-column label="序号" type="index" :index="indexMethod" width="80" align="center" />
       <el-table-column label="视频名称" prop="videoTitle" align="center" />
       <el-table-column label="审核状态" width="150px" align="center">
         <template slot-scope="{ row }">
@@ -101,10 +101,10 @@
     >
       <el-form ref="formRef" :model="dialogData" label-width="65px" :rules="dialogFormRules">
         <el-form-item label="标题:">
-          专业线贵妇级除皱产品--希腊YELLOW ROSE黄玫瑰弹力除皱精华和玻尿酸花瓣保湿水
+          {{ current.videoTitle }}
         </el-form-item>
         <el-form-item label="视频:">
-          <video src="movie.ogg" controls="controls" width="100%">
+          <video :src="current.currentVideoUrl" controls="controls" width="100%">
             您的浏览器不支持播放该视频
           </video>
         </el-form-item>
@@ -145,9 +145,9 @@ export default {
   },
   data() {
     return {
-      dialogVisible: false,
-      listLoading: false,
-      total: 0,
+      dialogVisible: false, // 视频审核dialog是否显示
+      listLoading: false, // 列表加载
+      total: 0, // 列表总数据条数
       listQuery: {
         authUserId: '', // 机构id
         auditStatus: '', // 审核状态
@@ -158,7 +158,10 @@ export default {
         status: '' // 文章状态:0已下线,1已上线,2待上线
       },
       list: [],
-      currentVideoUrl: '',
+      current: {
+        currentVideoUrl: '', // 当前选中的视频url,预览url
+        videoTitle: ''
+      },
       dialogData: {
         videoId: '', // 文章id
         auditStatus: 1, // 审核状态
@@ -199,7 +202,8 @@ export default {
     // 显示审核对话框
     handleShowDialog(row) {
       console.log(row)
-      this.currentVideoUrl = row.videoUrl
+      this.current.currentVideoUrl = row.videoUrl
+      this.current.videoTitle = row.videoTitle
       this.dialogData.videoId = row.videoId
       this.dialogVisible = true
     },
@@ -230,6 +234,9 @@ export default {
             })
         }
       })
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }

+ 13 - 1
src/views/authentic/supplier/add.vue

@@ -76,6 +76,13 @@
           <el-input v-model="formData1.securityLink" placeholder="请输入官网认证链接" />
         </el-form-item>
       </template>
+      <!-- 公众号信息 -->
+      <el-form-item label="appID:">
+        <el-input v-model="formData1.appId" placeholder="微信公众号appID,没有就不填" />
+      </el-form-item>
+      <el-form-item label="appSecret:">
+        <el-input v-model="formData1.appSecret" placeholder="微信公众号appsecret,没有就不填" />
+      </el-form-item>
       <el-form-item label="公众号二维码:" prop="qrCodeImage">
         <upload-image
           ref="uploadImageRef1"
@@ -87,6 +94,7 @@
         />
         <el-input v-model="formData1.qrCodeImage" type="hidden" class="hiddenInput" />
       </el-form-item>
+      <!-- 公众号信息END -->
       <el-form-item label="供应商状态:">
         <el-select v-model="formData1.shopStatus" placeholder="请选择供应商状态" style="width: 100%">
           <el-option label="启用" :value="1" />
@@ -246,6 +254,8 @@ export default {
         securityLink: '', // 官网认证链接
         shopStatus: 1, // 供应商状态,
         shopInfo: '',
+        appId: '',
+        appSecret: '',
         qrCodeImage: '' // 微信公众号二维码
       },
       // 表单2
@@ -348,7 +358,9 @@ export default {
         shopStatus: '',
         shopType: '',
         shopInfo: [],
-        qrCodeImage: ''
+        qrCodeImage: '',
+        appId: '',
+        appSecret: ''
       }
       // 品牌方
       if (this.selectedShopType === 1) {

+ 13 - 3
src/views/authentic/supplier/edit.vue

@@ -80,7 +80,13 @@
           <el-input v-model="formData1.securityLink" placeholder="请输入官网认证链接" />
         </el-form-item>
       </template>
-
+      <!-- 公众号信息 -->
+      <el-form-item label="appID:">
+        <el-input v-model="formData1.appId" placeholder="微信公众号appID,没有就不填" />
+      </el-form-item>
+      <el-form-item label="appSecret:">
+        <el-input v-model="formData1.appSecret" placeholder="微信公众号appsecret,没有就不填" />
+      </el-form-item>
       <el-form-item label="公众号二维码:" prop="qrCodeImage">
         <upload-image
           ref="uploadImageRef1"
@@ -92,7 +98,7 @@
         />
         <el-input v-model="formData1.qrCodeImage" type="hidden" class="hiddenInput" />
       </el-form-item>
-
+      <!-- 公众号信息END -->
       <el-form-item label="供应商状态:">
         <el-select v-model="formData1.shopStatus" placeholder="请选择供应商状态" style="width: 100%" @change="handleShopStatusChange">
           <el-option label="启用" :value="1" />
@@ -256,6 +262,8 @@ export default {
         securityLink: '', // 官网认证链接
         shopStatus: 1, // 供应商状态,
         shopInfo: '',
+        appId: '',
+        appSecret: '',
         qrCodeImage: '' // 公众号二维码
       },
       // 表单2
@@ -409,7 +417,9 @@ export default {
         shopStatus: '',
         shopType: '',
         shopInfo: [],
-        qrCodeImage: ''
+        qrCodeImage: '',
+        appId: '',
+        appSecret: ''
       }
       // 品牌方
       if (this.selectedShopType === 1) {

+ 4 - 1
src/views/authentic/supplier/index.vue

@@ -37,7 +37,7 @@
       style="width: 100%;"
       header-row-class-name="tableHeader"
     >
-      <el-table-column label="序号" type="index" sortable="custom" align="center" width="80" />
+      <el-table-column label="序号" :index="indexMethod" type="index" sortable="custom" align="center" width="80" />
       <el-table-column label="供应商名称" align="center" prop="name" />
       <el-table-column label="供应商类型" width="150px" align="center">
         <template v-slot="{row}">
@@ -224,6 +224,9 @@ export default {
     handleFilter() {
       this.listQuery.page = 1
       this.getList()
+    },
+    indexMethod(index) {
+      return index + this.listQuery.pageSize * (this.listQuery.pageNum - 1) + 1
     }
   }
 }