cxmo 1 éve
szülő
commit
64720a38d5
2 módosított fájl, 124 hozzáadás és 6 törlés
  1. 11 0
      src/api/modules/chartApi.js
  2. 113 6
      src/views/dataEntry_manage/databaseList.vue

+ 11 - 0
src/api/modules/chartApi.js

@@ -862,6 +862,17 @@ const dataBaseInterface = {
 	getDataSource:(params)=>{
 		return http.get('datamanage/edb_source/list',params)
 	},
+	/**
+	 * 指标图表列表
+	 * @param {Number} PageSize 
+	 * @param {Number} CurrentIndex
+	 * @param {Number} ClassifyId
+	 * @param {Number} AdminId
+	 * @param {Boolean} IsOnlyMe
+	 */
+	getEdbChartList:(params)=>{
+		return http.get('/datamanage/edb_info/chart/list',params)
+	}
 	
 }
 

+ 113 - 6
src/views/dataEntry_manage/databaseList.vue

@@ -174,7 +174,7 @@
 			<div class="main-right right" id="right" style="background:transparent;border:none;box-shadow:none" v-if="showAssociateComputeData">
 				<dataAssociateComputeData :edbInfoId="selected_edbid"></dataAssociateComputeData>
 			</div>
-			<div class="main-right right" id="right" v-show="!showAssociateChart&&!showAssociateComputeData">
+			<!-- <div class="main-right right" id="right" v-show="!showAssociateChart&&!showAssociateComputeData">
 				<el-table
 				:data="tableData"
 				style="box-shadow: 0px 3px 6px rgba(155, 170, 219, 0.2);"
@@ -192,7 +192,6 @@
 							<span>{{item.label}}</span>
 						</template>	
 						<template slot-scope="scope">
-							<!-- 中文 -->
 							<span v-show="currentLang=='ch'">{{ scope.row[item.key] }}</span> 
 							<span v-show="currentLang=='en'">{{scope.row[item.enKey||item.key] || scope.row[item.key]}}</span>
 						</template>
@@ -248,7 +247,6 @@
 								size="mini" type="text" @click.stop="createChartHandle(scope.row.EdbInfoId)">一键成图</el-button>
 							<el-button v-if="permissionBtn.checkPermissionBtn(permissionBtn.edbDataPermission.edbData_copyData)"
 								size="mini" type="text" @click="copyCode">复制数据</el-button>
-							<!-- <lookEdbHistory :showType="2" :edbId="selected_edbid" v-if="scope.row.EdbType===2"/> -->
 							<el-button size="mini" type="text"
 							v-if="scope.row.EdbType===2&&permissionBtn.checkPermissionBtn(permissionBtn.edbDataPermission.edbData_edbSource)" @click="isLookHistory=true;lookEdbId=selected_edbid">指标溯源</el-button>
 							
@@ -282,6 +280,32 @@
 					</li>
 					<li class="nodata value-item" v-if="!dataList.length">暂无数据</li>
 				</ul>
+			</div> -->
+			<!-- 指标图表列表 -->
+			<div class="main-right right list" id="right" v-show="!showAssociateChart&&!showAssociateComputeData&&!selected_edbid">
+				<p>共{{Total||0}}个指标</p>
+				<div class="list-wrap" ref="listRef" @scroll="loadMoreHandle" v-if="Total">
+					<div class="list-item" v-for="item in chartList" :key="item.EdbInfoId">
+						<div class="header">
+							<span v-show="currentLang=='ch'">{{ item.EdbName }}</span> 
+							<span v-show="currentLang=='en'">{{ item.EdbNameEn || item.EdbName }}</span>
+						</div>
+						<div class="image" @click="selected_edbid = item.EdbInfoId">
+							<img :src="item.ChartImage" alt=""/>
+						</div>
+						<div class="info">
+							创建时间:{{item.CreateTime.substring(0,10)}}
+						</div>
+					</div>
+					<p style="height: 40px;line-height:40px;width: 100%;"></p>
+				</div>
+				<div v-if="!Total" class="nodata">
+					<tableNoData text="暂无指标"/>
+				</div>
+			</div>
+			<!-- 指标详情 -->
+			<div class="main-right right" id="right" v-show="!showAssociateChart&&!showAssociateComputeData&&selected_edbid">
+				<p>我是指标</p>
 			</div>
 		</div>
 		<!-- 输入英文指标弹窗 -->
@@ -666,7 +690,14 @@ export default {
 			lookEdbId: 0,
 			labelList:[],//标签列表
 
-			CanOpClassify: false
+			CanOpClassify: false,
+
+			select_classifyId:0,//指标分类id
+			PageSize:15,
+			CurrentIndex:1,
+			Total:0,
+			IsListEnd:false,//是不是到底了
+			chartList:[],
 		};
 	},
 	watch: {
@@ -687,7 +718,7 @@ export default {
 				);
 				
 				this.page_no = 1;
-				this.$refs.valueUl.scrollTop = 0;
+				this.$refs.valueUl&&(this.$refs.valueUl.scrollTop = 0);
 				// 查找图表的父级code
 				//this.defaultShowNodes = this.findParentNodeHandle(this.treeData,search_obj.ClassifyId);
 				this.select_node = search_obj.UniqueCode;
@@ -705,6 +736,13 @@ export default {
 				},400) */
 			}
 		},
+		select_classifyId(newval){
+			if(this.$refs.listRef) this.$refs.listRef.scrollTop = 0;
+			if(newval){
+				this.CurrentIndex = 1
+				this.getEdbChartList()
+			}
+		}
 	},
 	computed: {
 			/* 计算弹窗控制 */
@@ -818,6 +856,33 @@ export default {
 				}
 			})
 		}),
+		//获取指标图表列表
+		getEdbChartList(){
+			dataBaseInterface.getEdbChartList({
+				PageSize:this.PageSize,
+				CurrentIndex:this.CurrentIndex,
+				ClassifyId:this.select_classifyId,
+			}).then(res=>{
+				if(res.Ret!==200) return
+				if(res.Data){
+					this.chartList = this.CurrentIndex===1?res.Data.List:[...this.chartList,...res.Data.List]
+					this.Total = res.Data.Paging.Totals||0
+					this.IsListEnd = !(this.CurrentIndex<res.Data.Paging.pages)
+				}
+
+
+			})
+		},
+		//指标图表列表-加载更多
+		loadMoreHandle: _.throttle(function() {
+			let scrollTop = this.$refs.listRef.scrollTop;
+			let clientHeight = this.$refs.listRef.clientHeight;
+			let scrollHeight = this.$refs.listRef.scrollHeight;
+			if(scrollTop + clientHeight >= scrollHeight-10 && this.IsListEnd){
+				this.CurrentIndex++;
+				this.getEdbChartList();
+			}
+			},300),
 		/* 搜索 */
 		searchHandle(query) {
 			this.search_page = 1;
@@ -981,6 +1046,7 @@ export default {
 			this.showAssociateComputeData=false
 			// this.page_no = 1;
 			// this.$refs.valueUl.scrollTop = 0;
+			this.select_classifyId = !data.EdbInfoId?data.ClassifyId:0;
 			this.select_node = data.UniqueCode;
 			this.selected_edbid = data.EdbInfoId;
 			this.resetNodeStyle(node);
@@ -1995,7 +2061,7 @@ export default {
 		.main-right {
 			flex: 1;
 			/* width:70%; */
-			height: calc(100vh - 288px);
+			height: calc(100vh - 225px);
 			background: #fff;
 			border: 1px solid #ececec;
 			border-radius: 4px;
@@ -2039,6 +2105,47 @@ export default {
 					color: #999;
 				}
 			}
+			&.list{
+				background-color: transparent;
+				box-shadow: none;
+				border:none;
+				padding:0 30px;
+				.list-wrap{
+					margin-top: 20px;
+					display: flex;
+					gap: 20px 4%;
+					flex-wrap: wrap;
+					max-height: calc(100vh - 225px);
+					overflow-x: hidden;
+					overflow-y: auto;
+					.list-item{
+						width:22%;
+						height:280px;
+						background-color: #fff;
+						display: flex;
+						flex-direction: column;
+						box-sizing: border-box;
+						padding: 0 10px;
+						border-radius: 4px;
+						border:1px solid #DCDFE6;
+						.header,.info{
+							height: 40px;
+							line-height: 40px;
+							text-align: left;
+						}
+						.header{
+							border-bottom: 1px solid #DCDFE6;
+							white-space: nowrap;
+							overflow: hidden;
+							text-overflow: ellipsis;
+						}
+						.image{
+							flex: 1;
+							cursor: pointer;
+						}
+					}
+				}
+			}
 		}
 	}
 	.dialog-computed {