Karsa пре 5 месеци
родитељ
комит
668f7a5107

+ 4 - 3
src/api/modules/chartApi.js

@@ -1423,12 +1423,13 @@ const edbCollectInterface = {
 		},
 
 		/**
-		 * 移动收藏分类
+		 * 移动收藏
 		 * @param {*} params ClassifyId
+		 * EdbInfoId NextEdbInfoId  PrevEdbInfoId
 		 * @returns 
 		 */
-		moveCollectClassify: params => {
-			return http.post('/datamanage/edb_collect/classify/move',params)
+		moveCollectEdb: params => {
+			return http.post('/datamanage/edb_collect/move',params)
 		},
 
 		/**

+ 1 - 1
src/views/dataEntry_manage/databaseComponents/batchComputedV2.vue

@@ -884,7 +884,7 @@ export default {
 		},
         // 获取指标分类
         async getClassifyOpt(){
-            const res=await dataBaseInterface.menuListV3()
+            const res=await dataBaseInterface.menuListV3({ClassifyType:-1})
             if (res.Ret !== 200) return
             this.filterNodes(res.Data.AllNodes||[]);
 			this.classifyOpt = res.Data.AllNodes || [];

+ 53 - 7
src/views/dataEntry_manage/databaseList.vue

@@ -251,13 +251,28 @@
 			<div class="main-right right list" id="right" v-show="isShowList">
 				<p>{{$t('EtaBasePage.total_show',{limit: Total||0})}}</p>
 				<div class="list-wrap" ref="listRef" @scroll="loadMoreHandle" v-if="Total">
-					<div class="chart-list-item-wrap">
+					<!-- <div class="chart-list-item-wrap"> -->
+					<draggable
+							v-model="chartList"
+							class="chart-list-item-wrap"
+							animation="300"
+							tag="div"
+							:disabled="classifyShowType!=='own'"
+							@start="menuDragStart"
+							@update="menuDragenter"
+							@end="collectDragOver"
+					>
 						<div class="list-item" v-for="item in chartList" :key="item.EdbInfoId">
 							<div class="header">
-								<span v-show="currentLang=='zh'">{{ item.EdbName }}</span> 
-								<span v-show="currentLang=='en'">{{ item.EdbNameEn || item.EdbName }}</span>
+								<span class="text_oneLine">{{ item.EdbName }}</span>
+
+								<img 
+									v-if="classifyShowType==='own'"
+									src="~@/assets/img/data_m/move_ico.png"
+									class="move"
+									style="width: 14px; height: 14px;"
+								/>
 							</div>
-							<!-- !item.HaveOperaAuth ? $icons.lock_big : -->
 							<div class="image" @click="detailShowHandle(item)"
 								:style="{background: `no-repeat top/cover url('${ item.ChartImage}')`}">
 							</div>
@@ -272,7 +287,8 @@
 							</div>
 							<img src="~@/assets/img/icons/edb-stopping.png" class="stop-mark" v-if="([2,34].includes(item.Source) || item.EdbType==2) && ( item.IsSupplierStop==1 || (item.IsSupplierStop==0&&item.NoUpdate==1))" />
 						</div>
-					</div>
+					</draggable>	
+					<!-- </div> -->
 					
 				</div>
 				<div v-if="!Total" class="nodata">
@@ -2280,7 +2296,34 @@ export default {
 				classifyId:data?data.ClassifyId:0
 			}
 			this.isOpenCollectClassifyDia = true
-		}
+		},
+
+		/* 收藏指标拖动 */
+		async collectDragOver({oldIndex,newIndex}) {
+			if(oldIndex===newIndex) return
+			let NextEdbInfoId,PrevEdbInfoId;
+			if(newIndex===0){
+        PrevEdbInfoId=0
+        NextEdbInfoId=this.chartList[newIndex+1].EdbInfoId
+      }else if(newIndex===this.chartList.length-1){
+        PrevEdbInfoId = this.chartList[newIndex-1].EdbInfoId
+        NextEdbInfoId = 0
+      }else{
+        PrevEdbInfoId = this.chartList[newIndex-1].EdbInfoId
+        NextEdbInfoId = this.chartList[newIndex+1].EdbInfoId
+      }
+			
+			let params = {
+				ClassifyId: this.select_classifyId,
+				EdbInfoId: this.chartList[newIndex].EdbInfoId,
+				NextEdbInfoId,
+				PrevEdbInfoId,
+			}
+
+			const res = await edbCollectInterface.moveCollectEdb(params)
+			if(res.Ret !== 200) return 
+			this.$message.success('移动成功')
+		},
 	},
 	//离开页面时保存标签
 	beforeRouteLeave(to,from,next){
@@ -2578,9 +2621,12 @@ export default {
 						box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
 						position: relative;
 						.header{
+							display: flex;
+							justify-content: space-between;
+							align-items: center;
 							padding:10px;
 							box-sizing: border-box;
-							text-align: left;
+							/* text-align: left; */
 						}
 						.info{
 							padding:10px;