Browse Source

Merge branch 'master' into yb5.2

Karsa 3 years ago
parent
commit
5f83191f97
4 changed files with 47 additions and 39 deletions
  1. 2 1
      src/router/index.js
  2. 15 15
      src/views/priceDriven/detail.vue
  3. 6 11
      src/views/question/List.vue
  4. 24 12
      src/views/question/MyList.vue

+ 2 - 1
src/router/index.js

@@ -273,7 +273,8 @@ const routes=[
           meta: {
             title: "我的问答",
             keepAlive:true,
-            isRoot:false
+            // isRoot:false
+            isRoot:true
           }
         }
       ]

+ 15 - 15
src/views/priceDriven/detail.vue

@@ -30,17 +30,17 @@ const select_classify_subtitle = ref(""); //选中分类名称
 const isSlideClassify = ref(false);
 /* 获取分类 */
 const getClassify = async () => {
-  //const { code, data } = await priceApi.tabList();
-  const {code, data } = await apiGetTagTree()
+  const { code, data } = await priceApi.tabList();
+  // const {code, data } = await apiGetTagTree()
   if (code === 200) {
     //const { permission_list } = data;
     const result = data
     const permission_list = result.map((item,index)=>{
       let obj = {}
       obj.classify_name = item.classify_name
-      obj.id = index
+      obj.id = item.classify_id
       obj.list = item.tags.map((i)=>{
-        return {chart_permission_id:i.tag_id,chart_permission_name:i.tag_name,pirce_driven_state:i.price_driven_state}
+        return {tag_id:i.tag_id,tag_name:i.tag_name,pirce_driven_state:i.price_driven_state}
       })
       return obj
     })
@@ -73,7 +73,7 @@ const changeClassify = (item,type='') => {
   //分享进入的默认品种
   if (type === 'share') {
     let index = classifyList.value.findIndex(
-      (_) => _.chart_permission_id === Number(route.query.default_classify_sub)
+      (_) => _.tag_id === Number(route.query.default_classify_sub)
     );
     index === -1 ? errorLinkHandle() : changeSubClassify(classifyList.value[index]);
   } else {
@@ -81,9 +81,9 @@ const changeClassify = (item,type='') => {
   }
 };
 /* 选择二级分类 */
-const changeSubClassify = ({ chart_permission_id, chart_permission_name }) => {
-  select_classify_sub.value = chart_permission_id;
-  select_classify_subtitle.value = chart_permission_name;
+const changeSubClassify = ({ tag_id, tag_name }) => {
+  select_classify_sub.value = tag_id;
+  select_classify_subtitle.value = tag_name;
   document.body.scrollTop = document.documentElement.scrollTop = 0;
   getDetail();
   getQrCodeHandle();
@@ -280,13 +280,13 @@ onUnmounted(() => {
           <li
             :class="[
               'classify-sub-item',
-              { act: select_classify_sub === item.chart_permission_id },
+              { act: select_classify_sub === item.tag_id },
             ]"
             v-for="item in classifyList.slice(0,6)"
-            :key="item.chart_permission_id"
+            :key="item.tag_id"
             @click="changeSubClassify(item)"
           >
-            {{ item.chart_permission_name }}
+            {{ item.tag_name }}
           </li>
 
           <el-popover
@@ -299,11 +299,11 @@ onUnmounted(() => {
             <template #default>
               <div class="flex top-nav-filter-box">
                 <div 
-                    :class="['item',item.chart_permission_id == select_classify_sub&&'active']" 
+                    :class="['item',item.tag_id == select_classify_sub&&'active']" 
                     v-for="item in classifyList.slice(6)" 
-                    :key="item.chart_permission_id"
+                    :key="item.tag_id"
                     @click="changeSubClassify(item)"
-                >{{item.chart_permission_name}}</div>
+                >{{item.tag_name}}</div>
               </div>
             </template>
           </el-popover>
@@ -369,7 +369,7 @@ onUnmounted(() => {
           <Teleport to="body">
             <SharePoster
               :shareData="{
-                type: 'pricedriven',
+                type: 'price_driven',
                 code_page: 'pages/pricedriven/pricedriven',
                 code_scene: code_scene,
                 data: posterParams,

+ 6 - 11
src/views/question/List.vue

@@ -160,15 +160,9 @@ const getQuestionList=()=>{
     question.isFinish = true
     if(res.code == 200){
       let arr =res.data || []
-      if(params.page_index ==1){
-        if(arr.length==0) return 
-        question.list = arr
-      }else{
-        if(arr.length==0){
-          question.isTotalData = true
-          return 
-        }
-        question.list = [...question.list,...arr]
+      question.list = [...question.list,...arr]
+      if(arr.length==0 || arr.length<params.page_size){
+        question.isTotalData = true
       }
       for (const item of question.list) {
         if(!item.audio_status){
@@ -401,7 +395,7 @@ onBeforeRouteLeave(()=>{
             </div>
         </div>
         <!-- 无数据 -->
-        <div class="question-noData" v-show="question.list.length==0 && question.isFinish">
+        <div class="question-noData" v-show="question.list.length==0 && !question.isLoading">
           <img :src="$store.state.globalImgUrls.activityNoAuth" alt="没有数据">
           <span>暂无数据</span>
         </div>
@@ -448,7 +442,7 @@ onBeforeRouteLeave(()=>{
           <el-form :model="question.askForm" ref="askForm" class="ask-form">
             <div class="ask-label">
               问题描述
-              <el-tooltip content="实际发布的问题会以提炼出的精简内容为准" placement="bottom-start" trigger="click">
+              <el-tooltip content="实际发布的问题会以提炼出的精简内容为准" placement="bottom-start">
                 <img src="@/assets/icon-question-askTip.png" alt="提示" />
               </el-tooltip>
             </div>
@@ -550,6 +544,7 @@ onBeforeRouteLeave(()=>{
     max-width: 1240px;
     z-index: 10;
     .first-nav-box{
+      display:flex;
         span{
             display: inline-flex;
             align-items:center;

+ 24 - 12
src/views/question/MyList.vue

@@ -10,6 +10,7 @@ import{
 import { apiApplyPermission } from '@/api/user'
 import{ref,reactive} from "vue"
 import {useStore} from 'vuex'
+import {ElMessageBox} from "element-plus"
 import {onBeforeRouteLeave,useRouter} from "vue-router"
 import { useElementSize } from '@vueuse/core'
 import moment from 'moment';
@@ -199,11 +200,28 @@ const toApply = (type='')=>{
 }
 const changeTopTar = (key)=>{
   question.selectKey = key
-  question.list=[]
-  question.page_index=1
     // 清除定时器
   clearInterval(timer)
   // 清除当前播放的音频信息和索引
+  // 重新获取数量
+  apiBarTotal().then(res=>{
+    if(res.code == 200){
+        const { replied, wait, total,distribute } = res.data;
+        for (const bar of question.barList) {
+          if(bar.label == '已回答'){
+            bar.num = replied
+          }else if(bar.label == '未回答'){
+            bar.num = wait
+          }else if(bar.label == '全部'){
+            bar.num = total
+          }else if(bar.label == '待回答'){
+            bar.num = distribute
+          }
+        }
+    }
+  });
+  question.list=[]
+  question.page_index=1
   question.audioPlayingIndex=-1
   question.audioPlayingItem = null
   question.isTotalData = false
@@ -227,15 +245,9 @@ const getQuestionList=()=>{
     question.isFinish = true
     if(res.code == 200){
       let arr =res.data || []
-      if(params.page_index ==1){
-        if(arr.length==0) return 
-        question.list = arr
-      }else{
-        if(arr.length==0){
-          question.isTotalData = true
-          return 
-        }
-        question.list = [...question.list,...arr]
+      question.list = [...question.list,...arr]
+      if(arr.length==0 || arr.length<params.page_size){
+        question.isTotalData = true
       }
       for (const item of question.list) {
         if(!item.audio_status && item.reply_status==3){
@@ -400,7 +412,7 @@ getBarList()
           </div>
         </div>
       </div>
-        <div class="question-noData" v-show="question.list.length==0 && question.isFinish">
+        <div class="question-noData" v-show="question.list.length==0 && !question.isLoading">
           <img :src="$store.state.globalImgUrls.activityNoAuth" alt="没有数据">
           <span>暂无数据</span>
         </div>