Browse Source

分类bug

jwyu 3 years ago
parent
commit
178b00ab94
2 changed files with 48 additions and 15 deletions
  1. 34 5
      pages-chart/allTypes.vue
  2. 14 10
      pages/chart/chart.vue

+ 34 - 5
pages-chart/allTypes.vue

@@ -25,7 +25,7 @@
             <van-collapse-item title="公共图库" name="common" :border="false">
               <view class="list">
                 <view 
-                  class="item" 
+                  :class="['item',selectId==item.myChartClassifyId?'active':'']" 
                   v-for="item in pubClassifyList" 
                   :key="item.myChartClassifyName"
                   @click="handleSelectClassify(item,true)"
@@ -40,6 +40,7 @@
                   :rowHeight="rowHeight"
                   :listHeight="classifyListHeight+20"
                   @onclick="myClassifyClick"
+                  @confirm="myClassifyMoveEnd"
                 ></dragSorts>
               </view>
             </van-collapse-item>
@@ -48,7 +49,7 @@
           <block v-else>
           <view class="list">
             <view 
-              class="item" 
+              :class="['item',selectId==item.myChartClassifyId?'active':'']" 
               v-for="item in pubClassifyList" 
               :key="item.myChartClassifyName"
               @click="handleSelectClassify(item,true)"
@@ -60,7 +61,7 @@
 </template>
 
 <script>
-import {apiChartClassifyList} from '@/api/chart'
+import {apiChartClassifyList,apiClassifyMove} from '@/api/chart'
 import dragSorts from '@/components/chartClassifyItem/HM-dragSorts.vue'
 export default {
   components: {
@@ -114,14 +115,39 @@ export default {
 
     // 点击我的分类项
     myClassifyClick(e){
-      this.handleSelectClassify(e.value.myChartClassifyId,false)
+      this.handleSelectClassify(e.value,false)
     },
 
     handleSelectClassify(item,isPublic){
       this.selectId=item.myChartClassifyId
       uni.$emit('classifyPageSelect', {selectId:this.selectId,isPublic:isPublic})
       uni.navigateBack()
-    }
+    },
+
+    // 分类移动
+      async myClassifyMoveEnd(e){
+        const moveTarget=e.moveRow
+        const index=e.moveTo// 拖动后的序号
+        const list=e.list//拖动后的列表
+        // console.log(moveTarget.myChartClassifyId);
+        // console.log(index);
+        // console.log(list);
+        const PrevClassifyId=list[index-1]&&list[index-1].myChartClassifyId||0
+        const NextClassifyId=list[index+1]&&list[index+1].myChartClassifyId||0
+        const res=await apiClassifyMove({
+          MyChartClassifyId:moveTarget.myChartClassifyId,
+          PrevClassifyId:PrevClassifyId,
+          NextClassifyId:NextClassifyId
+        })
+        if(res.code===200){
+          this.myClassifyList=list
+        }else{
+          uni.showToast({
+            title: '移动失败',
+            icon: 'none'
+          })
+        }
+      },
   }
 };
 </script>
@@ -160,6 +186,9 @@ export default {
       color: #1F243A;
       font-size: 14px;
     }
+    .active{
+      color: #E3B377;
+    }
   }
 
   .empty-box{

+ 14 - 10
pages/chart/chart.vue

@@ -128,10 +128,11 @@ export default {
         }
     },
     onLoad() {
-      this.getClassifyList()
+      this.getClassifyList('first')
       this.addEventListenerSelectClassify()
     },
     onShow() {
+      this.getClassifyList()
       if(!this.hasAuth){
         this.getClassifyList()
       }
@@ -237,21 +238,23 @@ export default {
       },
 
       // 获取分类数据
-      async getClassifyList(){
+      async getClassifyList(no){
         const res=await apiChartClassifyList()
         if(res.code===200){
           this.myClassifyList=res.data.private_classify||[]
           this.pubClassifyList=res.data.public_classify||[]
           this.classifyListHeight=this.rowHeight*this.myClassifyList.length
-          if(res.data.private_classify){
-            this.selectClassifyId=res.data.private_classify&&res.data.private_classify[0].myChartClassifyId||''
-            this.isPublic=false
-          }else{
-            this.selectClassifyId=res.data.public_classify&&res.data.public_classify[0].myChartClassifyId||''
-            this.isPublic=true 
+          if(no=='first'){
+            if(res.data.private_classify){
+              this.selectClassifyId=res.data.private_classify&&res.data.private_classify[0].myChartClassifyId||''
+              this.isPublic=false
+            }else{
+              this.selectClassifyId=res.data.public_classify&&res.data.public_classify[0].myChartClassifyId||''
+              this.isPublic=true 
+            }
+            this.getList()
           }
-
-          this.getList()
+          
         }else if(res.code===403){//无权限
           this.hasAuth=false
           this.noAuthData=res.data
@@ -346,6 +349,7 @@ export default {
       // 监听分类页面选中分类事件
       addEventListenerSelectClassify(){
         uni.$on('classifyPageSelect',e=>{
+            console.log(e);
             this.handleSelectClassify({myChartClassifyId:e.selectId},e.isPublic)
         })
       },