Selaa lähdekoodia

eta1.9.1 api配置、翻译冲突

hbchen 9 kuukautta sitten
vanhempi
commit
f164903252

+ 4 - 2
src/api/api.js

@@ -18,7 +18,8 @@ import {
   zczxInterface,
   coalWordInterface,
   bloombergInterface,
-  ccfDataInterface
+  ccfDataInterface,
+  windInterface
 } from './modules/thirdBaseApi';
 
 //手工指标 手工数据 手工数据权限
@@ -128,7 +129,8 @@ export {
   zczxInterface,
   coalWordInterface,
   bloombergInterface,
-  ccfDataInterface
+  ccfDataInterface,
+  windInterface
 };
 
 //老接口 研报 ppt等

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

@@ -307,6 +307,15 @@ const dataBaseInterface = {
 	/* 刷新校验 */
 	updateCheck: params => {
 		return http.post('/datamanage/edb_info/updates/check',params)
+	},
+		/**
+	 * 设置指标刷新状态
+	 * @param {EdbInfoId} params 
+	 * @param {ModifyStatus} params 需要更改的状态:启用、暂停
+	 * @returns 
+	 */
+	edbRefreshStatusSet: params => {
+		return http.post('/datamanage/edb_info/single_refresh/status/save',params)
 	},
 	/**
 	 * 指标替换

+ 65 - 2
src/api/modules/dataApi.js

@@ -515,8 +515,71 @@ const dataRefreshInterface = {
     getSimgleEdbRefreshTime(params){
         return http.get("/datamanage/edb_info/refresh/edb_config",params)
     },
-
-
+// -------------------刷新状态设置
+	/**
+	 * 获取引用指标数据
+	 * @param {Object} params 
+	 * @param {Number} params.Source
+	 * @param {String} params.ClassifyId 多选
+	 * @param {String} params.SysUserId 多选
+	 * @param {String} params.Frequency
+	 * @param {String} params.Keyword
+	 * @param {String} params.Status
+	 * @param {String} params.SortParam 枚举值:'RelationTime':引用日期 'RelationNum' 引用次数
+	 * @param {String} params.SortType
+	 * @param {String} params.CurrentIndex
+	 * @param {String} params.PageSize
+	 * @returns 
+	 */
+	getRelationEdbDataList:params=>{
+		return http.get("/datamanage/edb_info/relation/edb_list",params)
+	},
+	/**
+	 * 获取指标的引用详情
+	 * @param {Object} params 
+	 * @param {Number} params.EdbInfoId
+	 * @returns 
+	 */
+	getRelationEdbDetail:params=>{
+		return http.get("/datamanage/edb_info/relation/detail",params)
+	},
+	/**
+	 * 获取默认刷新规则
+	 * @param {Object} params 
+	 * @param {Number} params.ConfKey EdbStopRefreshRule
+	 * @returns 
+	*/
+	getEdbStopRefreshRule:params=>{
+		return http.get("/business_conf/single",params)
+	},
+		/**
+	 * 设置默认刷新规则
+	 * @param {Object} params 
+	 * @param {Number} params.ConfKey EdbStopRefreshRule
+	 * @param {Number} params.ConfVal "{\"IsOpen\":1,\"BaseIndexStopDays\":90,\"EdbStopDays\":300}"
+	 * @returns 
+	*/
+	setEdbStopRefreshRule:params=>{
+		return http.post("/business_conf/single/save",params)
+	},
+	/**
+	 * 批量设置被引用的指标刷新的状态
+	 * @param {Object} params 
+	 * @param {Number} params.Source
+	 * @param {String} params.ClassifyId 多选
+	 * @param {String} params.SysUserId 多选
+	 * @param {String} params.Frequency
+	 * @param {String} params.Keyword
+	 * @param {String} params.Status
+	 * @param {String} params.IsSelectAll 是否全选
+	 * @param {String} params.EdbSelectIdList 如果不是全选,则表示选中的指标,如果全选则表示需要排除的指标
+	 * @param {String} params.ModifyStatus 枚举值:状态,枚举值:启用、暂停
+	 * @returns 
+	*/
+	setRelationEdbsRefreshStatus:params=>{
+		return http.post("/datamanage/edb_info/relation/refresh/save",params)
+	},
+	
 }
 
 export {

+ 20 - 1
src/api/modules/thirdBaseApi.js

@@ -1009,6 +1009,24 @@ const ccfDataInterface={
 		return http.get('/datamanage/ccf/search_list',params);
 	}
 }
+/* 数据源-Wind */
+const windInterface={
+	/**
+	 * 分类列表
+	 * params: ParentId
+	 */
+	classifyList:params=>{
+			return http.get('/datamanage/wind/classify',params)
+	},
+	/**
+	 * 数据列表
+	 * params:  EdbInfoId,ClassifyId
+	 */
+	dataList:params=>{
+			return http.get('/datamanage/wind/index',params)
+	}
+}
+
 export { 
 	lzDataInterface,
 	glDataInterface,
@@ -1027,5 +1045,6 @@ export {
 	zczxInterface,
 	coalWordInterface,
 	bloombergInterface,
-	ccfDataInterface
+	ccfDataInterface,
+	windInterface
 }

BIN
src/assets/img/icons/edb-stopping.png


+ 10 - 1
src/components/antvVueComponents/tooltipCom.vue

@@ -7,6 +7,7 @@
     </el-tooltip>
     <i :class="data.fold?'el-icon-circle-plus':'el-icon-remove'" v-if="!data.isLeaf"
     class="fold-icon" @click="flodApi" v-show="show"></i>
+    <img src="~@/assets/img/icons/edb-stopping.png" class="stop-mark" v-if="data.isStop==1" />
   </div>
 </template>
 
@@ -50,7 +51,7 @@ export default {
       this.graph= this.getGraph()
       this.node.data = this.node.data?{...this.data,...this.node.data}:this.data
       this.data = this.node.data
-      
+
       let {style} = this.data
       this.initStyle(style)
 
@@ -150,5 +151,13 @@ export default {
     left: 50%;
     transform: translateX(-50%);
   }
+  .stop-mark{
+    height: 48px;
+    width: 48px;
+    position: absolute;
+    right: -1px;
+    top: 0;
+    pointer-events: none;
+  }
 }
 </style>

+ 32 - 8
src/components/lzTable.vue

@@ -8,15 +8,21 @@
 				class="header"
 			>
 				<th>{{ labelArr.get(item) }}</th>
-				<td v-for="(data, sub_index) in tableOption" :key="sub_index">
+				<td v-for="(data, sub_index) in tableOption" :key="sub_index"  
+					:style="{color:item=='IsStop' && data.IsStop?'#F56C6C':'#333333'}">
 					<template v-if="source!=='baiinfo'">
-						{{
-							(['FrequencyName','Frequency'].includes(item)) 
-							? (source === 'lz')
-								? frequencyType.get(data[item])
-								: frequencyMap.get(data[item])
-							: data[item] 
-						}}
+						<template v-if="item=='IsStop'">
+							{{ refreshStatusMap.get(data[item]) }}
+						</template>
+						<template v-else>
+							{{
+								(['FrequencyName','Frequency'].includes(item)) 
+								? (source === 'lz')
+									? frequencyType.get(data[item])
+									: frequencyMap.get(data[item])
+								: data[item] 
+							}}
+						</template>
 					</template>
 					<!-- 百川盈孚数据源 频度和单位需要可编辑 -->
 					<template v-else>
@@ -79,6 +85,8 @@ export default {
 
 			if(this.source==='gl'){
 				arr=['IndexName','IndexCode','FrequencyName','UnitName','UpdateTime']
+			}else if(this.source === 'glhg'){
+				arr=['IndexName','IndexCode','FrequencyName','UnitName','UpdateTime','IsStop']
 			}else if(sourceTypeOne.includes(this.source)){
 				arr=['IndexName','IndexCode','Frequency','Unit','ModifyTime']
 			}
@@ -96,12 +104,21 @@ export default {
 			let sourceTypeOne = ['smm','coal','baiinfo','yyzx','icpi','coalWord','ccf']
 
 			if(this.source==='gl'){
+				temMap=new Map([
+					['IndexName', this.$t('Edb.Detail.e_name')],
+					['IndexCode', this.$t('Edb.Detail.e_id')],
+					['FrequencyName', this.$t('Edb.Detail.e_fre')],
+					['UnitName', this.$t('Edb.Detail.e_unit')],
+					['UpdateTime', this.$t('Edb.Detail.e_update_time')]
+				])
+			}else if(this.source === 'glhg'){
 				temMap=new Map([
 					['IndexName', this.$t('Edb.Detail.e_name')],
 					['IndexCode', this.$t('Edb.Detail.e_id')],
 					['FrequencyName', this.$t('Edb.Detail.e_fre')],
 					['UnitName', this.$t('Edb.Detail.e_unit')],
 					['UpdateTime', this.$t('Edb.Detail.e_update_time')],
+					['IsStop',this.$t('Edb.Detail.e_status')]
 				])
 			}else if(sourceTypeOne.includes(this.source)){
 				temMap=new Map([
@@ -147,6 +164,13 @@ export default {
 				['半年度',this.$t('Edb.FreAll.half_year')],
 				['年度',this.$t('Edb.FreAll.year')]
 			])
+		},
+		//刷新状态
+		refreshStatusMap(){
+			return new Map([
+				[0,this.$t('SystemManage.DataRefresh.enabled')],
+				[1,this.$t('SystemManage.DataRefresh.disabled')]
+			])
 		}
 	},
 	data() {

+ 4 - 0
src/lang/commonLang.js

@@ -316,6 +316,10 @@ export default {
       en: 'No data available for this date.',
       zh: '该日期暂无数据'
     },
+    request_frequency:{
+      zh:'请求频繁,请数据加载完成后再试!',
+      en:'Request frequency, please try again after the data is loaded!'
+    }
   },
   Common: {
     category: {

+ 9 - 1
src/lang/modules/EtaBase/commonLang.js

@@ -196,6 +196,10 @@ export default {
       zh:'指标目录',
       en:'Data Catalogue'
     },
+    e_catalogue: {
+      zh:'目录',
+      en:'Catalogue'
+    },
     e_start_time: {
       zh:'起始时间',
       en:'Start Time'
@@ -210,7 +214,7 @@ export default {
     },
     e_status: {
       zh:'刷新状态',
-      en:'Update Status'
+      en:'Refresh Status'
     },
     e_latest_date: {
       zh:'最新日期',
@@ -220,6 +224,10 @@ export default {
       zh:'起始日期',
       en:'Start Date'
     },
+    e_creator: {
+      zh:'创建人',
+      en:'Creator'
+    },
     e_latest_value: {
       zh:'最新值',
       en:'Latest Value'

+ 59 - 0
src/lang/modules/systemManage/DataRefresh.js

@@ -25,9 +25,11 @@ export const DataRefreshZh = {
 
   terminal_code_select: "终端编码",
   eta_class_select: "ETA指标库分类",
+  edb_classify: "指标库分类",
   enable_op: "启用刷新",
   pause_op: "暂停刷新",
   all_list: "列表全选",
+  selected:"已选",
   set_time: "设置刷新时间",
   please_select: "请选择",
   set_status: "设置刷新状态",
@@ -43,6 +45,17 @@ export const DataRefreshZh = {
   table_creator: "创建人",
   table_status: "刷新状态",
 
+  table_Id:"指标ID",
+  table_recent_reference_time:"最近引用时间",
+  table_reference_count:"引用次数",
+  table_refresh_status:"刷新状态",
+  enabled:"启用",
+  disabled:"停用",
+
+  reference_time:"引用时间",
+  reference_source:"引用来源",
+  reference_chart_table:"引用图表/表格",
+
   refresh_rate: "刷新频率",
   trading_day: "每交易日",
   daily_date: "每自然日",
@@ -56,6 +69,23 @@ export const DataRefreshZh = {
   last_day: "最后一天",
   select_refresh_rate: "请选择刷新频率",
   select_refresh_time: "请选择刷新时间",
+
+  time_setting_tab:"刷新时间设置",
+  status_setting_tab:"刷新状态设置",
+  enable:"启用",
+  disable:"停用",
+
+  default_refresh_rule:"默认刷新规则",
+  set_default_refresh_rule:"设置默认刷新规则",
+  disableRulePrompt:"关闭配置后,指标将不会自动处理为停用",
+  enable_configuration:"启用配置",
+  baseIndexStopDays_hint_front:"数据源间隔",
+  baseIndexStopDays_hint_behind:"天未加入指标库则停用",
+  edbStopDays_hint_front:"指标库间隔",
+  edbStopDays_hint_behind:"天未引用则停用",
+  IntervalDaysError:"请输入正确的格式",
+  disable_indicator_prompt:"停用后该数据将停止刷新,是否继续操作?",
+  status_rule_prompt:"只针对wind和钢联化工指标生效"
 };
 
 /* 英文 */
@@ -77,9 +107,11 @@ export const DataRefreshEn = {
 
   terminal_code_select: "Terminal Code",
   eta_class_select: "ETA Indicator Library Classification",
+  edb_classify: "Indicator Library Classification",
   enable_op: "Enable Refresh",
   pause_op: "Pause Refresh",
   all_list: "Select All in List",
+  selected: "Selected",
   set_time: "Set Refresh Time",
   please_select: "Please Select",
   set_status: "Set Refresh Status",
@@ -95,6 +127,16 @@ export const DataRefreshEn = {
   table_creator: "Creator",
   table_status: "Refresh Status",
 
+  table_Id:"Indicator ID",
+  table_recent_reference_time:"Recent Reference Time",
+  table_reference_count:"Reference Count",
+  table_refresh_status:"Refresh Status",
+  enabled:"Enabled",
+  disabled:"Disabled",
+  
+  reference_time:"Reference Time",
+  reference_source:"Reference Source",
+  reference_chart_table:"Refer to the chart/table",
 
   refresh_rate: "Refresh Rate",
   trading_day: "Every Trading Day",
@@ -109,4 +151,21 @@ export const DataRefreshEn = {
   last_day: "Last Day",
   select_refresh_rate: "Please select a refresh rate",
   select_refresh_time: "Please select a refresh time",
+
+  time_setting_tab:"Refresh Time Setting",
+  status_setting_tab:"Refresh Status Setting",
+  enable:"Enable",
+  disable:"Disable",
+
+  default_refresh_rule:"Default Refresh Rules",
+  set_default_refresh_rule:"Set Default Refresh Rules",
+  enable_configuration:"Enable configuration",
+  baseIndexStopDays_hint_front:"If a data source has not been added to the metric repository for",
+  baseIndexStopDays_hint_behind:"days, it will be deactivated.",
+  edbStopDays_hint_front:"If the metric repository has not been referenced for",
+  edbStopDays_hint_behind:"days, it will be deactivated.",
+  disableRulePrompt:"After closing the configuration, metrics will not be automatically processed as disabled",
+  IntervalDaysError:"Please enter the correct format",
+  disable_indicator_prompt:"After disabling, the data will stop refreshing. Do you want to continue?",
+  status_rule_prompt:"Only effective for Wind and Ganglian Chemical indicators."
 };

+ 8 - 0
src/routes/modules/dataRoutes.js

@@ -340,6 +340,14 @@ export default [
           name_en:'CCF Fiber Info'
         },
       },
+      {
+        path: "windbase",
+        component: () => import("@/views/dataEntry_manage/thirdBase/Wind.vue"),
+        name: "Wind",
+        meta:{
+          name_en:'Wind'
+        },
+      },
     ],
   },
 ];

+ 1 - 0
src/utils/buttonConfig.js

@@ -313,6 +313,7 @@ export const edbDataPermission = {
     edbData_checkRelatedChart:'edbData:checkRelatedChart',//查看关联图表
     edbData_checkRelatedEdb:'edbData:checkRelatedEdb',//查看关联指标
     edbData_checkCalcChart:'edbData:checkCalcChart',//查看计算指标
+    edbData_enableOrDisable:'edbData:enableOrDisable',//启用/停用
 }
 /*
  * ---------------------------------------------------------------------------ETA预测指标------------------------------------------------

+ 14 - 0
src/views/dataEntry_manage/databaseComponents/chartTrendRender.vue

@@ -114,6 +114,7 @@
 					</el-radio-group>
 				</div>
 			</div>
+			<img src="~@/assets/img/icons/edb-stopping.png" class="stop-mark" v-if="([2,34].includes(chartInfo.Source) || chartInfo.EdbType==2) && chartInfo.NoUpdate==1" />
 		</div>
 		<div class="table-data">
 
@@ -279,6 +280,10 @@ export default {
 						}
 					})
 		},
+		// 切换刷新状态
+		toggleEdbRefreshStatusFun(){
+			this.chartInfo.NoUpdate = 1-this.chartInfo.NoUpdate
+		},
 		//保存指标缩略图
 		async saveEdbImg(EdbInfo){
 			let svg = this.$refs.chartRef.chart.getSVG({
@@ -844,6 +849,7 @@ export default {
 		}
 	}
 	.min-wrapper {
+		position: relative;
 		.el-input__inner {
 			padding: 0 0 0 5px;
 		}
@@ -867,6 +873,14 @@ export default {
 				}
 			}
 		}
+		.stop-mark{
+			height: 48px;
+			width: 48px;
+			position: absolute;
+			right: 0;
+			top: 0;
+			pointer-events: none;
+		}
 	}
 }
 </style>

+ 55 - 1
src/views/dataEntry_manage/databaseList.vue

@@ -239,7 +239,12 @@
 							</div>
 							<div class="info">
 								{{$t('EtaBasePage.time_show')}}:{{item.CreateTime.substring(0,10)}}
+								<!-- wind和钢联化工的指标、计算指标显示 启用/停用-->
+								<span v-if="([2,34].includes(item.Source) || item.EdbType==2) && isEdbBtnShow('enableOrDisable')" 
+								class="enable-toggle-btn" :style="{'color': item.NoUpdate==1?'#0052D9':'#D54941'}"
+								@click="toggleEdbRefreshStatus(item)">{{item.NoUpdate==1?$t('SystemManage.DataRefresh.enable'):$t('SystemManage.DataRefresh.disable') }}</span>
 							</div>
+							<img src="~@/assets/img/icons/edb-stopping.png" class="stop-mark" v-if="([2,34].includes(item.Source) || item.EdbType==2) && item.NoUpdate==1" />
 						</div>
 					</div>
 					
@@ -259,6 +264,10 @@
 							</el-tab-pane>
 						</el-tabs>
 						<div class="edb-tool-icon edb-tool" style="align-items: center;">
+							<el-button v-if="([2,34].includes(EdbData.Source) || EdbData.EdbType==2) && isEdbBtnShow('enableOrDisable')" 
+								type="text" :style="{'color': EdbData.NoUpdate==1?'#0052D9':'#D54941'}"
+								@click="toggleEdbRefreshStatus(EdbData,'detail')" 
+							>{{EdbData.NoUpdate==1?$t('SystemManage.DataRefresh.enable'):$t('SystemManage.DataRefresh.disable') }}<!-- 启用/停用 --></el-button>
 							<el-button 
 								v-if="isEdbBtnShow('update')"
 								type="text" 
@@ -960,6 +969,7 @@ export default {
 				'checkRelatedChart':edbDataPermission.edbData_checkRelatedChart,//查看关联图表
 				'checkRelatedEdb':edbDataPermission.edbData_checkRelatedEdb,//查看关联指标
 				'checkCalcChart':edbDataPermission.edbData_checkCalcChart,//查看计算指标
+				'enableOrDisable':edbDataPermission.edbData_enableOrDisable,//启用/停用
 			}
 			return checkPermissionBtn(BtnMap[type])
 		},
@@ -1089,6 +1099,29 @@ export default {
 
 			})
 		},
+		// 切换刷新状态
+		async toggleEdbRefreshStatus(item,type='list'){
+			let flag = true
+			if(item.NoUpdate==0){
+				flag=false
+				await this.$confirm(this.$t('SystemManage.DataRefresh.disable_indicator_prompt'),this.$t('Confirm.prompt'),{
+					type:"warning"
+				}).then(res=>{
+					flag=true
+				}).catch(()=>{})
+			}
+			if(!flag) return
+			let ModifyStatus = item.NoUpdate==1?'启用':'暂停'
+			dataBaseInterface.edbRefreshStatusSet({EdbInfoId:item.EdbInfoId,ModifyStatus}).then(res=>{
+				if(res.Ret == 200){
+					item.NoUpdate=1-item.NoUpdate
+					if(type=='detail'){
+						this.$refs.createChart.toggleEdbRefreshStatusFun()
+					}
+					this.$message.success(this.$t('MsgPrompt.operate_success_msg'))
+				}
+			})
+		},
 		//指标图表列表-加载更多
 		loadMoreHandle: _.throttle(function() {
 			let scrollTop = this.$refs.listRef.scrollTop;
@@ -2495,11 +2528,24 @@ export default {
 						border-radius: 4px;
 						border:1px solid #DCDFE6;
 						box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
-						.header,.info{
+						position: relative;
+						.header{
 							padding:10px;
 							box-sizing: border-box;
 							text-align: left;
 						}
+						.info{
+							padding:10px;
+							box-sizing: border-box;
+							display: flex;
+							align-items: center;
+							justify-content: space-between;
+							.enable-toggle-btn{
+								cursor: pointer;
+								color: #0052D9;
+								font-size: 14px;
+							}
+						}
 						.header{
 							white-space: nowrap;
 							overflow: hidden;
@@ -2515,6 +2561,14 @@ export default {
 							padding-bottom: 67%;
 							cursor: pointer;
 						}
+						.stop-mark{
+							height: 48px;
+							width: 48px;
+							position: absolute;
+							right: -1px;
+							top: 0;
+							pointer-events: none;
+						}
 					}
 				}
 			}

+ 387 - 0
src/views/dataEntry_manage/thirdBase/Wind.vue

@@ -0,0 +1,387 @@
+<template>
+  <div class="Wind-container" id="box">
+    <div class="left-cont" id="left">
+      <div class="scroll-wrap">
+        <el-tree
+          ref="treeRef"
+          class="target_tree"
+          :data="classifyList"
+          node-key="UniqueCode"
+          :props="{
+            label: 'ClassifyName',
+            children: 'Children',
+            isLeaf:'isLeaf'
+          }"
+          :current-node-key="select_node"
+          :default-expanded-keys="defaultShowNodes"
+          :expand-on-click-node="false"
+          check-strictly
+          :empty-text="$t('Common.no_classify_msg')"
+          lazy
+					:load="getLazyTreeData"
+          @node-expand="handleNodeExpand"
+          @node-collapse="handleNodeCollapse"
+          @current-change="nodeChangeHandle"
+        >
+          <span slot-scope="{ node, data }">{{ currentLang==='zh' ? data.ClassifyName : (data.ClassifyNameEn||data.ClassifyName) }}</span>
+        </el-tree>
+      </div>
+    </div>
+
+    <div
+      class="right-cont"
+      id="right"
+      v-loading="dataloading"
+      :element-loading-text="$t('Table.data_loading')"
+    >
+      <div class="right-cont-top">
+        <el-select
+					v-model="search_txt"
+					v-loadMore="searchLoad"
+					ref="searchRef"
+					:filterable="!search_txt"
+					remote
+					clearable
+					:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
+					style="width: 360px;"
+					:remote-method="searchHandle"
+					@click.native="inputFocusHandle"
+				>
+					<i slot="prefix" class="el-input__icon el-icon-search"></i>
+					<el-option
+						v-for="item in searchOptions"
+						:key="item.EdbInfoId"
+						:label="currentLang==='en'?(item.EdbNameEn||item.EdbName):item.EdbName"
+						:value="item.EdbInfoId"
+					>
+						<div>
+							<img 
+								:src="$icons.lock_ico2" 
+								width="18" 
+								height="18" 
+								style="vertical-align:middle" 
+								v-if="!item.HaveOperaAuth"
+							/>
+							{{currentLang==='en'?(item.EdbNameEn||item.EdbName):item.EdbName}}
+						</div>
+					</el-option>
+				</el-select>
+      </div>
+      <el-table ref="tableRef" :data="tableData" border class="data-source-table" height="calc(100% - 60px)">
+        <!-- 指标Id -->
+        <el-table-column prop="EdbCode" :label="$t('Edb.Detail.e_id')" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{scope.row.EdbCode}}
+          </template>
+        </el-table-column>
+        <!-- 指标名称 -->
+        <el-table-column prop="EdbName" :label="$t('Edb.Detail.e_name')" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{currentLang==='en'?scope.row.EdbNameEn:scope.row.EdbName}}
+          </template>
+        </el-table-column>
+        <!-- 频度 -->
+        <el-table-column prop="Frequency" :label="$t('Edb.Detail.e_fre')">
+          <template slot-scope="scope">
+            {{scope.row.Frequency}}
+          </template>
+        </el-table-column>
+        <!-- 单位 -->
+        <el-table-column prop="Unit" :label="$t('Edb.Detail.e_unit')">
+          <template slot-scope="scope">
+            {{currentLang==='en'?scope.row.UnitEn:scope.row.Unit}}
+          </template>
+        </el-table-column>
+        <!-- 目录 -->
+        <el-table-column prop="ClassifyList" :label="$t('Edb.Detail.e_catalogue')" show-overflow-tooltip>
+          <template slot-scope="scope">
+            {{scope.row.ClassifyList.map(cl => cl.ClassifyName).reverse().join('/')+'/'}}
+          </template>
+        </el-table-column>
+        <!-- 起始时间 -->
+        <el-table-column prop="StartDate" :label="$t('Edb.Detail.e_start_time')">
+          <template slot-scope="scope">
+            {{scope.row.StartDate}}
+          </template>
+        </el-table-column>
+        <!-- 更新时间 -->
+        <el-table-column prop="ModifyTime" :label="$t('Edb.Detail.e_update_time')">
+          <template slot-scope="scope">
+            {{scope.row.ModifyTime}}
+          </template>
+        </el-table-column>
+        <!-- 刷新状态 -->
+        <el-table-column prop="NoUpdate" :label="$t('Edb.Detail.e_status')">
+          <template slot-scope="scope">
+            {{scope.row.NoUpdate==0?'启用':'停用'}}
+          </template>
+        </el-table-column>
+        <!-- 创建人 -->
+        <el-table-column prop="SysUserRealName" :label="$t('Edb.Detail.e_creator')">
+          <template slot-scope="scope">
+            {{scope.row.SysUserRealName}}
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+  </div>
+</template>
+
+<script>
+import { windInterface } from "@/api/modules/thirdBaseApi";
+import { dataBaseInterface } from '@/api/api.js';
+import leftMixin from "./mixins/leftMixin.js";
+export default {
+  name: "Wind",
+  mixins: [leftMixin],
+  components: {},
+  data() {
+    return {
+      dataloading: false,
+      classifyList: [],
+      select_classify: 0,
+      select_edbId: 0, //添加指标后的code,无论是否加载出来,无论是否加载成功
+      select_node: "",
+      defaultShowNodes: [], //展开节点
+      tableData:[],
+
+      search_txt:"",
+      search_page: 1,
+			search_have_more: false,
+			current_search:'',
+      searchOptions:[],
+    };
+  },
+  watch:{
+    select_edbId(newval) {
+			if(newval) {
+				this.getDataList()
+			}
+		},
+    select_classify(newval){
+			if(newval){
+				this.getDataList()
+			}
+		},
+    /* 选中搜索指标 展开目录 选中指标 展示数据 */
+		search_txt(newval) {
+			if (newval) {
+				let [search_obj] = this.searchOptions.filter(
+					(item) => item.EdbInfoId === newval
+				);
+				this.select_node = search_obj.UniqueCode;
+				this.select_edbId = newval;
+				this.select_classify = 0;
+			}
+		},
+  },
+  methods: {
+    /* 获取分类 */
+    getClassify() {
+      windInterface.classifyList().then((res) => {
+        if (res.Ret !== 200) return;
+        this.classifyList = res.Data && res.Data.AllNodes || [];
+        this.select_classify=this.classifyList[0]?this.classifyList[0].ClassifyId||0:0
+        this.select_node=this.classifyList[0]?this.classifyList[0].UniqueCode||'':''
+        this.nodeLocation()
+        this.getDataList()
+      });
+    },
+    //指标懒加载
+    async getLazyTreeData(node,resolve){
+			if(node.level===0){
+				resolve(this.classifyList)
+        this.nodeLocation()
+			}else{
+				let arr=[]
+				const res=await windInterface.classifyList({ParentId:node.data.ClassifyId})
+				if (res.Ret === 200) {
+					const temarr = res.Data.AllNodes || [];
+					arr=temarr.map(item=>{
+						return {
+							...item,
+							isLeaf:item.EdbInfoId?true:false
+						}
+					})
+				}
+				resolve(arr)
+        this.nodeLocation()
+			}
+    },
+
+    /* 获取数据 */
+    getDataList() {
+      this.dataloading = true;
+      windInterface.dataList({
+        ClassifyId:this.select_classify,
+        EdbInfoId:this.select_edbId,
+        PageSize:9999999,
+        CurrentIndex:1
+      }).then((res) => {
+        if (res.Ret !== 200) return;
+        this.tableData=res.Data.List || []
+        if(this.$refs.tableRef && this.$refs.tableRef.$el.querySelector('.el-table__body-wrapper')){
+          this.$refs.tableRef.$el.querySelector('.el-table__body-wrapper').scrollTop=0
+        }
+        // 选中指标对应树节点应该展开的目录
+        if(this.search_txt && this.select_edbId && this.tableData[0]){
+          let classify_arr = this.tableData[0].ClassifyList || [];
+          // 展开目录
+          this.defaultShowNodes=classify_arr.map(item=>item.UniqueCode)
+        }
+      }).finally(()=>{
+        this.dataloading = false;
+      })
+    },
+    /* 改变节点 */
+    nodeChangeHandle(data, node) {
+      if (this.dataloading)
+        return this.$message(this.$t('MsgPrompt.request_frequency'));
+      this.search_txt=''
+      this.select_node = data.UniqueCode;
+      this.select_classify = !data.EdbInfoId?data.ClassifyId:0;
+      this.select_edbId = data.EdbInfoId
+    },
+    // 定位
+    nodeLocation(){
+      this.$nextTick(()=>{
+        setTimeout(() => {
+          this.$refs.treeRef && this.select_node && this.$refs.treeRef.setCurrentKey(this.select_node);
+        }, 100);
+      })
+    },
+    /* 聚焦获取当前检索 */
+		inputFocusHandle(e) {
+			this.search_page = 1;
+			this.current_search = e.target.value;
+			this.searchApi(this.current_search);
+		},
+    searchLoad() {
+			if(!this.search_have_more) return;
+			this.searchApi(this.current_search,++this.search_page);
+		},
+    /* 搜索 */
+		searchHandle(query) {
+			this.search_page = 1;
+			this.current_search = query;
+			this.searchApi(this.current_search)
+		},
+    searchApi(query,page=1) {
+			dataBaseInterface.targetSearchByPage({
+				KeyWord:query,
+				CurrentIndex: page,
+        Source:2, // Wind的
+			}).then(res => {
+				if(res.Ret !== 200) return
+
+				const { List,Paging } = res.Data;
+				this.search_have_more = page < Paging.Pages;
+				this.searchOptions = page === 1 ? List : this.searchOptions.concat(List);
+					
+			})
+		},
+  },
+  computed: {
+    currentLang() {
+      return this.$store.state.lang
+    }
+  },
+  mounted() {
+    this.getClassify();
+  },
+};
+</script>
+<style lang="scss" scoped>
+.Wind-container {
+  display: flex;
+  position: relative;
+  height:calc(100vh - 115px);
+  .left-cont {
+    min-width: 300px;
+    width: 300px;
+    margin-right: 20px;
+    padding: 20px;
+    overflow: hidden;
+    position: relative;
+    height: 100%;
+    background-color: #ffffff;
+    box-sizing: border-box;
+    .scroll-wrap {
+      height: 100%;
+      overflow: hidden auto;
+    }
+    .target_tree {
+      color: #333;
+    }
+  }
+  .right-cont {
+    flex:1;
+    padding: 20px;
+    background-color: #ffffff;
+    box-sizing: border-box;
+    .right-cont-top{
+      display: flex;
+      align-items: center;
+      justify-content: flex-end;
+      margin-bottom: 20px;
+    }
+  }
+}
+</style>
+<style lang="scss">
+.Wind-container {
+  .el-tree-node__content {
+    margin-bottom: 14px !important;
+  }
+
+  .el-tree-node__children {
+    .el-tree-node {
+      margin-bottom: 0px !important;
+      padding-left: 18px;
+    }
+    .el-tree-node__content {
+      margin-bottom: 5px !important;
+      padding-left: 0 !important;
+    }
+  }
+  .expanded.el-icon-caret-right:before {
+    content: url("~@/assets/img/set_m/down.png") !important;
+  }
+  .el-icon-caret-right:before {
+    content: url("~@/assets/img/set_m/slide.png") !important;
+  }
+  .el-tree-node__expand-icon.is-leaf.el-icon-caret-right:before {
+    content: "" !important;
+  }
+  .el-tree-node__expand-icon.expanded {
+    -webkit-transform: rotate(0deg);
+    transform: rotate(0deg);
+  }
+  .el-tree-node.is-current > .el-tree-node__content {
+    background-color: #f0f4ff !important;
+  }
+  .el-tree-node__content {
+    padding-right: 10px !important;
+  }
+  .right-cont {
+    .data-source-table{
+      .el-table__header{
+        tr{
+          th{
+            background-color: #F0F2F5!important;
+            .cell{
+              font-weight:normal;
+              color:#666666;
+            }
+          }
+        }
+      }
+      .el-table__body{
+        tr{
+          background-color: #ffffff!important;
+        }
+      }
+    }
+  }
+}
+</style>

+ 7 - 5
src/views/dataEntry_manage/thirdBase/steelChemicalbase.vue

@@ -169,7 +169,7 @@
               :tableOption="tableOption"
               tableType="header"
               ref="table"
-              source="gl"
+              source="glhg"
             />
           </div>
           <div class="data-cont" v-if="dateArr.length">
@@ -177,7 +177,7 @@
               :tableOption="tableOption"
               tableType="data"
               :dateArr="dateArr"
-              source="gl"
+              source="glhg"
             />
           </div>
           <div v-else class="nodata"></div>
@@ -379,7 +379,8 @@ export default {
                 IndexCode:this.index_code,
                 FrequencyName:'',
                 UnitName:'',
-                UpdateTime:''
+                UpdateTime:'',
+                IsStop:'',
               }]
               //为了美观
               for (let i = 0; i < 6; i++) {
@@ -388,7 +389,8 @@ export default {
                   IndexCode:'',
                   FrequencyName:'',
                   UnitName:'',
-                  UpdateTime:''
+                  UpdateTime:'',
+                  IsStop:'',
                 })
               }
               //为了美观
@@ -485,7 +487,7 @@ export default {
     /* 改变节点 */
     nodeChangeHandle(data, node) {
       if (this.dataloading)
-        return this.$message("请求频繁,请数据加载完成后再试!");
+        return this.$message(this.$t('MsgPrompt.request_frequency'));
       this.dynamicNode = node;
       this.select_node = data.UniqueCode;
       this.select_classify = data.BaseFromMysteelChemicalClassifyId;

+ 12 - 15
src/views/edbHistoryPage.vue

@@ -162,9 +162,7 @@ export default {
             this.mould = document.getElementById('mould')
             this.mouldText = document.getElementById('mould-text')
 
-            let edbName=this.treeData.EdbName+(this.treeData.IsStop?'(暂停更新)':'')
-            let edbNameEn=this.treeData.EdbNameEn+(this.treeData.IsStop?'(Pause Updates)':'')
-            this.mouldText.innerText=edbName
+            this.mouldText.innerText=this.treeData.EdbName
             let node = this.graph.createNode({
                 shape: 'vue-shape',
                 component: 'custom-rect',
@@ -179,8 +177,8 @@ export default {
                     },
                 },
                 data:{
-                    EdbName:edbName,
-                    EdbNameEn:edbNameEn,
+                    EdbName:this.treeData.EdbName,
+                    EdbNameEn:this.treeData.EdbNameEn,
                     RuleTitle:this.treeData.RuleTitle,
                     RuleTitleEn:this.treeData.RuleTitleEn,
                     routeQuery:{ 
@@ -191,9 +189,8 @@ export default {
                     },
                     isRoot:true,
                     isLeaf:(this.treeData.Child && this.treeData.Child.length>0)?false:true,
-                    style:{
-                        color:this.treeData.IsStop?"red!important":'#ffffff!important',
-                    },
+                    isStop:this.treeData.IsStop,
+                    style:{color:'#ffffff!important'},
                 }
             })
             let cells = [node,...this.createCells(this.treeData.Child,node)]
@@ -207,9 +204,8 @@ export default {
             }
             let dataList = []
             list.forEach(element => {
-                let edbName=element.EdbName+(element.IsStop?'(暂停更新)':'')
-                let edbNameEn=element.EdbNameEn+(this.treeData.IsStop?'(Pause Updates)':'')
-                this.mouldText.innerText=edbName
+
+                this.mouldText.innerText=element.EdbName
                 let node = this.graph.createNode({
                     shape: 'vue-shape',
                     component: 'custom-rect',
@@ -226,10 +222,10 @@ export default {
                     data:{
                         style:{
                             backgroundColor:'#f2f6fa',
-                            color:element.IsStop?"red!important":'#000000',
+                            color:'#000000',
                         },
-                        EdbName:edbName,
-                        EdbNameEn:edbNameEn,
+                        EdbName:element.EdbName,
+                        EdbNameEn:element.EdbNameEn,
                         RuleTitle:element.RuleTitle,
                         RuleTitleEn:element.RuleTitleEn,
                         routeQuery:{ 
@@ -239,7 +235,8 @@ export default {
                             EdbInfoType:element.EdbInfoType
                         },
                         isRoot:false,
-                        isLeaf:(element.Child && element.Child.length>0)?false:true
+                        isLeaf:(element.Child && element.Child.length>0)?false:true,
+                        isStop:element.IsStop,
                     }
                 })
                 let side = this.graph.createEdge({

+ 146 - 0
src/views/system_manage/components/defaultRefreshStatusDia.vue

@@ -0,0 +1,146 @@
+<template>
+  <!-- 设置默认刷新状态 -->
+  <el-dialog custom-class="refresh-setting-dialog"
+    :title="$t('SystemManage.DataRefresh.set_default_refresh_rule')"
+    :visible.sync="show"
+    :close-on-click-modal="false"
+    :modal-append-to-body="false"
+    @close="closeDia"
+    width="420px"
+    v-dialogDrag
+    center
+  >
+      <div class="rule-container">
+          <div class="rule-enable">
+            <div class="rule-enable-item">
+              <span style="margin-right: 4px;">{{$t('SystemManage.DataRefresh.enable_configuration')}}</span>
+              <el-switch v-model="formData.IsOpen"></el-switch>
+            </div>
+            <div class="rule-enable-prompt" :style="{'opacity':formData.IsOpen?'0':'1'}">
+              {{$t('SystemManage.DataRefresh.disableRulePrompt')}}
+            </div>
+          </div>
+          <el-form ref="ruleformRef" :model="formData" :rules="rules">
+            <el-form-item label="" prop="BaseIndexStopDays">
+              <div class="rule-item">
+                <span style="word-break: keep-all;">{{$t('SystemManage.DataRefresh.baseIndexStopDays_hint_front')}}</span>
+                <el-input v-model.number="formData.BaseIndexStopDays" placeholder="" size="small" style="width: 68px;margin: 0 10px"></el-input>
+                <span style="word-break: keep-all;">{{$t('SystemManage.DataRefresh.baseIndexStopDays_hint_behind')}}</span>
+              </div>
+            </el-form-item>
+            <el-form-item label="" prop="EdbStopDays">
+              <div class="rule-item">
+                <span style="word-break: keep-all;">{{$t('SystemManage.DataRefresh.edbStopDays_hint_front')}}</span>
+                <el-input v-model.number="formData.EdbStopDays" placeholder="" size="small" style="width: 68px;margin: 0 10px"></el-input>
+                <span style="word-break: keep-all;">{{$t('SystemManage.DataRefresh.edbStopDays_hint_behind')}}</span>
+              </div>
+            </el-form-item>
+          </el-form>
+      </div>
+      <div class="rule-prompt">
+        ({{$t('SystemManage.DataRefresh.status_rule_prompt')}})
+      </div>
+      <!-- 弹窗按钮 -->
+      <div class="dialog-btn">
+          <el-button type="primary" plain @click="$emit('update:show',false)" style="width: 120px;">{{$t('Dialog.cancel_btn')}}</el-button>
+          <el-button type="primary" @click="handleSetRefreshRule" style="margin-left: 30px;width: 120px;">{{$t('Dialog.confirm_btn')}}</el-button>
+      </div>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name:'defaultRefreshStatusDia',
+    props:{
+      show:{
+        type:Boolean,
+        default:false
+      },
+      ruleData:{
+        type:Object,
+        default:()=>{
+          return {}
+        }
+      }
+    },
+    data(){
+      let reg=/^\d+$/
+      const IntervalDays=(rule, value, callback) => {
+        if (!reg.test(value)) {
+          callback(new Error(this.$t('SystemManage.DataRefresh.IntervalDaysError')));
+        } else {
+          callback();
+        }
+      }
+      return{
+        formData:{
+          IsOpen:true,
+          BaseIndexStopDays:0,
+          EdbStopDays:0
+        },
+        rules: {
+          BaseIndexStopDays: [
+            {
+              validator: IntervalDays,
+              trigger: ["blur","change"],
+            },
+          ],
+          EdbStopDays: [
+            {
+              validator: IntervalDays,
+              trigger: ["blur","change"],
+            },
+          ]
+        }
+      }
+    },
+    watch:{
+      show(value){
+        if(value){
+          this.formData.IsOpen=!!this.ruleData.IsOpen
+          this.formData.BaseIndexStopDays=this.ruleData.BaseIndexStopDays
+          this.formData.EdbStopDays=this.ruleData.EdbStopDays
+        }
+      }
+    },
+    methods:{
+      closeDia(){
+        this.$emit('update:show',false)
+      },
+      handleSetRefreshRule(){
+        this.$refs.ruleformRef.validate((valid) => {
+          if(valid){
+            this.$emit("setRule",this.formData)
+          }
+        })
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+  .rule-container{
+    padding-left: 35px;
+    .rule-enable{
+      .rule-enable-item,.rule-item{
+        display: flex;
+        align-items: center;
+      }
+      .rule-enable-prompt{
+        font-size:12px;
+        color: #F56C6C;
+        padding: 2px 0;
+      }
+    }
+  }
+  .rule-prompt{
+    font-size:14px;
+    color: #F56C6C;
+    text-align: center;
+  }
+  .dialog-btn{
+    padding: 40px 0 30px 0;
+    display: flex;
+    justify-content: center
+  }
+</style>

+ 74 - 0
src/views/system_manage/components/referenceCountDia.vue

@@ -0,0 +1,74 @@
+<template>
+  <!-- 引用次数 -->
+  <el-dialog custom-class="refresh-setting-dialog"
+    :title="$t('SystemManage.DataRefresh.table_reference_count')"
+    :visible.sync="show"
+    :close-on-click-modal="false"
+    :modal-append-to-body="false"
+    @close="closeDia"
+    top="5vh"
+    width="760px"
+    v-dialogDrag
+    center
+  >
+    <el-table :data="dataList" border max-height="600px">
+      <el-table-column align="center" prop="RelationTime" :label="$t('SystemManage.DataRefresh.reference_time')">
+          <template slot-scope="scope">
+            {{scope.row.RelationTime}}
+          </template>
+      </el-table-column>
+      <el-table-column align="center" prop="ReferObjectTypeName" :label="$t('SystemManage.DataRefresh.reference_source')">
+          <template slot-scope="scope">
+            {{scope.row.ReferObjectTypeName}}
+          </template>
+      </el-table-column>
+      <el-table-column align="center" prop="ReferObjectName" :label="$t('SystemManage.DataRefresh.reference_chart_table')">
+          <template slot-scope="scope">
+            {{scope.row.ReferObjectName}}
+          </template>
+      </el-table-column>
+    </el-table>
+    <!-- 弹窗按钮 -->
+    <div class="dialog-btn">
+        <el-button type="primary" @click="$emit('update:show',false)" style="width: 120px;">{{$t('Dialog.known')}}</el-button>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+  export default {
+    name:'referenceCountDia',
+    props:{
+      show:{
+        type:Boolean,
+        default:false
+      },
+      dataList:{
+        type:Array,
+        default:()=>[]
+      }
+    },
+    methods:{
+      closeDia(){
+        this.$emit('update:show',false)
+      }
+    }
+  }
+</script>
+
+<style lang="scss" scoped>
+
+.rule-container{
+    padding-left: 55px;
+    .rule-item{
+      display: flex;
+      align-items: center;
+      margin-bottom: 20px
+    }
+  }
+  .dialog-btn{
+    padding: 40px 0 30px 0;
+    display: flex;
+    justify-content: center
+  }
+</style>

+ 710 - 111
src/views/system_manage/dataRefreshSetting.vue

@@ -1,40 +1,167 @@
 <template>
     <!-- 数据源刷新设置 -->
     <div class="data-refresh-setting-wrap">
-        <div class="top-box">
-            <div class="select-box">
-                <span>{{$t('SystemManage.DataRefresh.select_source')}}</span>
-                <el-select :placeholder="$t('SystemManage.DataRefresh.select_source_pld')" v-model="Source" @change="handleSourceChange">
-                    <el-option v-for="item in SourceList" :key="item.Source" 
-                    :label="item.SourceName" :value="item.Source"/>
-                </el-select>
-                <el-select :placeholder="$t('SystemManage.DataRefresh.select_source_pld')" v-model="SubSource" v-if="SubSourceList.length" @change="handleSubSourceChange">
-                    <el-option v-for="item in SubSourceList" :key="item.Source" 
-                    :label="$i18nt.locale==='zh'?item.SubSourceName:item.SubSourceNameEn||item.SubSourceName" :value="item.SubSource"/>
-                </el-select>
-                <el-button type="primary" @click="showDialog(true)"
-                    v-permission="permissionBtn.sysDepartPermission.refresh_default"
-                >{{$t('SystemManage.DataRefresh.default_time')}}</el-button>
+        <div class="top-top">
+            <div class="tab-zone">
+                <div class="tab-item" :class="item.value==settingTab?'active':''" v-for="item in tabList.filter(it => checkPer(it))" :key="item.value" @click="changeTab(item.value)">
+                    {{ item.label }}
+                </div>
+            </div>
+            <div class="refresh-rule-setting" v-if="settingTab=='status'">
+                <el-button type="danger" plain @click="setEdbsRefreshStatus('暂停')" :disabled="!hasStatusSelection">{{$t('SystemManage.DataRefresh.disabled')}}</el-button>
+                <el-button type="primary" plain @click="setEdbsRefreshStatus('启用')" :disabled="!hasStatusSelection">{{$t('SystemManage.DataRefresh.enabled')}}</el-button>
+                <el-button type="primary" @click="openDefaultRefreshStatusDia">{{$t('SystemManage.DataRefresh.default_refresh_rule')}}</el-button>
             </div>
-            
-            <el-input :placeholder="$t('SystemManage.DataRefresh.indicator_name')" prefix-icon="el-icon-search" clearable
-                v-model="selectOption.keyWord" @input="selectOptionChange('keyWord')"
-                v-if="![34,11].includes(Source)&&Source"></el-input>
-            
         </div>
-        <div class="table-box" v-if="hasSelectOption">
-            <div class="table-select" v-loading="selectOptionLoading">
-                <div class="select-list">
-                    <el-select :placeholder="$t('SystemManage.DataRefresh.terminal_code_select')" :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" clearable
-                        v-model="selectOption.terminalCode" @change="selectOptionChange('terminalCode')">
-                        <el-option v-for="i in terminalCodeList" :key="i.TerminalCode"
-                            :label="i.Name" :value="i.TerminalCode"/>
+        <!-- 刷新时间 -->
+        <template v-if="settingTab=='time'">
+            <div class="top-box">
+                <div class="select-box">
+                    <span>{{$t('SystemManage.DataRefresh.select_source')}}</span>
+                    <el-select :placeholder="$t('SystemManage.DataRefresh.select_source_pld')" v-model="Source" @change="handleSourceChange">
+                        <el-option v-for="item in SourceList" :key="item.Source" 
+                        :label="item.SourceName" :value="item.Source"/>
                     </el-select>
-                    <el-cascader :placeholder="$t('SystemManage.DataRefresh.eta_class_select')" :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" clearable
-                        v-model="selectOption.classify" @change="selectOptionChange('classify')"
-                        :options="edbClassifyList" 
-                        :show-all-levels="false"
-                        collapse-tags
+                    <el-select :placeholder="$t('SystemManage.DataRefresh.select_source_pld')" v-model="SubSource" v-if="SubSourceList.length" @change="handleSubSourceChange">
+                        <el-option v-for="item in SubSourceList" :key="item.Source" 
+                        :label="$i18nt.locale==='zh'?item.SubSourceName:item.SubSourceNameEn||item.SubSourceName" :value="item.SubSource"/>
+                    </el-select>
+                    <el-button type="primary" @click="showDialog(true)"
+                        v-permission="permissionBtn.sysDepartPermission.refresh_default"
+                    >{{$t('SystemManage.DataRefresh.default_time')}}</el-button>
+                </div>
+                
+                <el-input :placeholder="$t('SystemManage.DataRefresh.indicator_name')" prefix-icon="el-icon-search" clearable
+                    v-model="selectOption.keyWord" @input="selectOptionChange('keyWord')"
+                    v-if="![34,11].includes(Source)&&Source"></el-input>
+                
+            </div>
+            <div class="table-box" v-if="hasSelectOption">
+                <div class="table-select" v-loading="selectOptionLoading">
+                    <div class="select-list">
+                        <el-select :placeholder="$t('SystemManage.DataRefresh.terminal_code_select')" :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" clearable
+                            v-model="selectOption.terminalCode" @change="selectOptionChange('terminalCode')">
+                            <el-option v-for="i in terminalCodeList" :key="i.TerminalCode"
+                                :label="i.Name" :value="i.TerminalCode"/>
+                        </el-select>
+                        <el-cascader :placeholder="$t('SystemManage.DataRefresh.eta_class_select')" :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" clearable
+                            v-model="selectOption.classify" @change="selectOptionChange('classify')"
+                            :options="edbClassifyList" 
+                            :show-all-levels="false"
+                            collapse-tags
+                            :props="{
+                                emitPath:true,
+                                value:'ClassifyId',
+                                label:'ClassifyName',
+                                children:'Children',
+                                multiple:true
+                            }" />
+                        <el-cascader
+                            :placeholder="$t('SystemManage.DataRefresh.table_creator')" :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" style="height: 40px;"
+                            v-model="selectOption.user" @change="selectOptionChange('user')"
+                            :options="userList"
+                            :props="{
+                                value: 'ItemId',
+                                label: 'ItemName',
+                                children: 'Children',
+                                emitPath: false,
+                                multiple:true,
+                            }"
+                            collapse-tags
+                            :show-all-levels="false"
+                            clearable
+                            filterable 
+                        />
+                        <el-select :placeholder="table_frequency" v-model="selectOption.frequency" @change="selectOptionChange('frequency')" multiple collapse-tags clearable>
+                            <el-option v-for="i in frequencyList" :key="i.value"
+                                :label="i.label" :value="i.value"
+                            />
+                        </el-select>
+                        <el-select :placeholder="$t('SystemManage.DataRefresh.table_status')" v-model="selectOption.state" @change="selectOptionChange('state')" clearable>
+                            <el-option :label="$t('SystemManage.DataRefresh.enable_op')" value="启用"/>
+                            <el-option :label="$t('SystemManage.DataRefresh.pause_op')" value="暂停"/>
+                        </el-select>
+                    </div>
+                    <div class="select-other">
+                        <el-checkbox :indeterminate="isIndeterminate" v-model="isCheckAll" @change="listCheckAllChange">{{$t('SystemManage.DataRefresh.all_list')}}</el-checkbox>
+                        <el-button type="primary" @click="showDialog(false)"
+                            v-permission="permissionBtn.sysDepartPermission.refresh_time"
+                            :disabled="!tableData.length"
+                        >{{$t('SystemManage.DataRefresh.set_time')}}</el-button>
+                        <el-button type="primary" @click="isSetStateDialogShow=true"
+                            v-permission="permissionBtn.sysDepartPermission.refresh_state"
+                            v-if="Source!=2"
+                            :disabled="!tableData.length"
+                        >{{$t('SystemManage.DataRefresh.set_status')}}</el-button>
+                    </div>
+                </div>
+                <el-table :data="tableData" border
+                    ref="edbDataRef"
+                    @selection-change="selectionChange"
+                    @select="selectHandle" 
+                    @select-all="selectAllHandle"
+                    @sort-change="handleSortChange"
+                    >
+                    <!-- 多选 -->
+                    <el-table-column
+                        align="center"
+                        type="selection"
+                        width="55">
+                    </el-table-column>
+                    <el-table-column v-for="column in columns" :key="column.key"
+                        :prop="column.key"
+                        :label="column.label"
+                        :min-width="column.minWidth"
+                        :sortable="column.sortable?column.sortable:false"
+                        align="center"
+                        >
+                        <template slot-scope="{row}">
+                            <span v-if="column.key==='IsStop'">
+                                {{row.IsStop? $t('SystemManage.DataRefresh.pause_op') : $t('SystemManage.DataRefresh.enable_op') }}
+                            </span>
+                            <span v-else>
+                                {{row[column.key]}}
+                            </span>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-pagination 
+                    :current-page="currentPage"
+                    :page-size="pageSize"
+                    :total="total"
+                    @current-change="handleCurrentChange"
+                />
+            </div>
+        </template>
+        <!-- 刷新状态 - 全拆开吧 -->
+        <template v-if="settingTab=='status'">
+            <div class="refresh-status-container">
+                <div class="refresh-status-search">
+                    <div class="refresh-status-search-left">
+                        <div class="select-source-box">
+                            <span>{{$t('SystemManage.DataRefresh.select_source')}}</span>
+                            <el-select :placeholder="$t('SystemManage.DataRefresh.select_source_pld')" v-model="searchParams.Source">
+                                <el-option v-for="item in statusSourceList" :key="item.Source" 
+                                :label="item.SourceName" :value="item.Source"/>
+                            </el-select>
+                        </div>
+                        <el-select :placeholder="$t('SystemManage.DataRefresh.table_status')" v-model="searchParams.Status" @change="searchList"
+                        class="select-item-small" clearable>
+                            <el-option :label="$t('SystemManage.DataRefresh.enable')" value="启用"/>
+                            <el-option :label="$t('SystemManage.DataRefresh.disable')" value="暂停"/>
+                        </el-select>
+                        <!-- 频度 -->
+                        <el-select :placeholder="$t('SystemManage.DataRefresh.table_frequency')" class="select-item-small"
+                            v-model="FrequencyArr" multiple collapse-tags clearable>
+                            <el-option v-for="i in frequencyList" :key="i.value"
+                                :label="i.label" :value="i.value"
+                            />
+                        </el-select>
+                        <!-- 指标库分类 -->
+                        <el-cascader :placeholder="$t('SystemManage.DataRefresh.edb_classify')" 
+                        :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" clearable
+                        v-model="ClassifyIdArr" class="select-item-small" 
+                        :options="statusEdbClassifyList" :show-all-levels="false" collapse-tags
                         :props="{
                             emitPath:true,
                             value:'ClassifyId',
@@ -42,81 +169,87 @@
                             children:'Children',
                             multiple:true
                         }" />
-                    <el-cascader
-                        :placeholder="$t('SystemManage.DataRefresh.table_creator')" :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" style="height: 40px;"
-                        v-model="selectOption.user" @change="selectOptionChange('user')"
-                        :options="userList"
-                        :props="{
-                            value: 'ItemId',
-                            label: 'ItemName',
-                            children: 'Children',
-                            emitPath: false,
-                            multiple:true,
-                        }"
-                        collapse-tags
-                        :show-all-levels="false"
-                        clearable
-                        filterable 
-                    />
-                    <el-select :placeholder="table_frequency" v-model="selectOption.frequency" @change="selectOptionChange('frequency')" multiple collapse-tags clearable>
-                        <el-option v-for="i in frequencyList" :key="i.value"
-                            :label="i.label" :value="i.value"
+                        <!-- 创建人 -->
+                        <el-cascader
+                            :placeholder="$t('SystemManage.DataRefresh.table_creator')" 
+                            :no-match-text="$t('SystemManage.DataRefresh.complete_data_source')" style="height: 40px;"
+                            v-model="SysUserIdArr" class="select-item-small" 
+                            :options="userList" collapse-tags :show-all-levels="false" clearable filterable
+                            :props="{
+                                value: 'ItemId',
+                                label: 'ItemName',
+                                children: 'Children',
+                                emitPath: false,
+                                multiple:true,
+                            }"
                         />
-                    </el-select>
-                    <el-select :placeholder="$t('SystemManage.DataRefresh.table_status')" v-model="selectOption.state" @change="selectOptionChange('state')" clearable>
-                        <el-option :label="$t('SystemManage.DataRefresh.enable_op')" value="启用"/>
-                        <el-option :label="$t('SystemManage.DataRefresh.pause_op')" value="暂停"/>
-                    </el-select>
-                </div>
-                <div class="select-other">
-                    <el-checkbox :indeterminate="isIndeterminate" v-model="isCheckAll" @change="listCheckAllChange">{{$t('SystemManage.DataRefresh.all_list')}}</el-checkbox>
-                    <el-button type="primary" @click="showDialog(false)"
-                        v-permission="permissionBtn.sysDepartPermission.refresh_time"
-                        :disabled="!tableData.length"
-                    >{{$t('SystemManage.DataRefresh.set_time')}}</el-button>
-                    <el-button type="primary" @click="isSetStateDialogShow=true"
-                        v-permission="permissionBtn.sysDepartPermission.refresh_state"
-                        :disabled="!tableData.length"
-                    >{{$t('SystemManage.DataRefresh.set_status')}}</el-button>
+                        <div class="selection-box">
+                            <el-checkbox :indeterminate="statusDataSelectionItem.isIndeterminate" v-model="statusDataSelectionItem.isCheckAll" 
+                            @change="statusListCheckAllChange">{{$t('SystemManage.DataRefresh.all_list')}}</el-checkbox>
+                            <span>{{$t('SystemManage.DataRefresh.selected')}}: {{ hasStatusSelection }}</span>
+                        </div>
+
+                    </div>
+
+                    <el-input :placeholder="$t('SystemManage.DataRefresh.indicator_name')" prefix-icon="el-icon-search" clearable
+                        v-model="searchParams.Keyword" @input="searchList" style="width: 360px;margin-left: 15px;"></el-input>
                 </div>
-            </div>
-            <el-table :data="tableData" border
-                ref="edbDataRef"
-                @selection-change="selectionChange"
-                @select="selectHandle" 
-                @select-all="selectAllHandle"
-                @sort-change="handleSortChange"
-                >
-                <!-- 多选 -->
-                <el-table-column
-                    align="center"
-                    type="selection"
-                    width="55">
-                </el-table-column>
-                <el-table-column v-for="column in columns" :key="column.key"
-                    :prop="column.key"
-                    :label="column.label"
-                    :min-width="column.minWidth"
-                    :sortable="column.sortable?column.sortable:false"
-                    align="center"
+                <el-table :data="statusTableData" border
+                    ref="statusTableRef"
+                    @selection-change="statusSelectionChange"
+                    @select="statusSelectHandle" 
+                    @select-all="statusSelectAllHandle"
+                    @sort-change="handleStatusTableSortChange"
                     >
-                    <template slot-scope="{row}">
-                        <span v-if="column.key==='IsStop'">
-                            {{row.IsStop? $t('SystemManage.DataRefresh.pause_op') : $t('SystemManage.DataRefresh.enable_op') }}
-                        </span>
-                        <span v-else>
-                            {{row[column.key]}}
-                        </span>
-                    </template>
-                </el-table-column>
-            </el-table>
-            <el-pagination 
-                :current-page="currentPage"
-                :page-size="pageSize"
-                :total="total"
-                @current-change="handleCurrentChange"
-            />
-        </div>
+                    <!-- 多选 -->
+                    <el-table-column
+                        align="center"
+                        type="selection"
+                        width="55">
+                    </el-table-column>
+                    <el-table-column align="center" prop="EdbCode" :label="$t('SystemManage.DataRefresh.table_Id')" show-overflow-tooltip>
+                        <template slot-scope="scope">
+                          {{scope.row.EdbCode}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column align="center" prop="EdbName" :label="$t('SystemManage.DataRefresh.table_name')" show-overflow-tooltip>
+                        <template slot-scope="scope">
+                          {{scope.row.EdbName}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column align="center" prop="RelationTime" :label="$t('SystemManage.DataRefresh.table_recent_reference_time')"
+                    sortable="custom">
+                        <template slot-scope="scope">
+                          {{scope.row.RelationTime}}
+                        </template>
+                    </el-table-column>
+                    <el-table-column align="center" prop="RelationNum" :label="$t('SystemManage.DataRefresh.table_reference_count')"
+                    sortable="custom">
+                        <template slot-scope="scope">
+                          <span :class="scope.row.RelationNum>0?'table-text-button':''" @click="openReferenceCountDia(scope.row)">{{scope.row.RelationNum}}</span>
+                        </template>
+                    </el-table-column>
+                    <el-table-column align="center" prop="IsStop" :label="$t('SystemManage.DataRefresh.table_refresh_status')">
+                        <template slot-scope="scope">
+                            {{scope.row.IsStop?  $t('SystemManage.DataRefresh.disabled'):$t('SystemManage.DataRefresh.enabled') }}
+                        </template>
+                    </el-table-column>
+                    <el-table-column align="center" prop="Operation" :label="$t('Table.column_operations')">
+                        <template slot-scope="scope">
+                            <span class="table-text-button" v-if="scope.row.IsStop" @click="enableToggle(scope.row)">{{$t('SystemManage.DataRefresh.enable')}}</span>
+                            <!-- v-permission="permissionBtn.outlinkConfigPermission.outlinkListConfig_del" -->
+                            <span class="table-text-button" style="color: #C54322;" @click="enableToggle(scope.row)" v-else>{{$t('SystemManage.DataRefresh.disable')}}</span>
+                        </template>
+                    </el-table-column>
+                </el-table>
+                <el-pagination 
+                    :current-page="searchParams.CurrentIndex"
+                    :page-size="searchParams.PageSize"
+                    :total="statusDataTotal"
+                    @current-change="handleStatusListPageNoChange"
+                />
+            </div>
+        </template>
         <!-- 默认刷新时间,设置刷新时间 -->
         <el-dialog custom-class="refresh-setting-dialog"
             :title="dlgTextLangShow((isDefault?'默认':'设置')+'刷新时间')"
@@ -177,14 +310,21 @@
                 <el-button type="primary" @click="setRefreshStatus">{{$t('Dialog.confirm_btn')}}</el-button>
             </div>
         </el-dialog>
+
+        <!-- 默认刷新规则 -->
+        <defaultRefreshStatusDia :show.sync="setDefaultRefreshStatusShow" :ruleData="settingRuleForm" @setRule="setDefaultRefreshRule"/>
+        <referenceCountDia :show.sync="referenceCountShow" :dataList="statusEdbRelationDetailList" />
     </div>
 </template>
 
 <script>
 import RefreshConfig from './components/refreshConfig.vue';
+import { dataBaseInterface } from '@/api/api.js';
 import {dataRefreshInterface,dataAuthInterface} from '@/api/modules/dataApi.js';
+import defaultRefreshStatusDia from './components/defaultRefreshStatusDia.vue';
+import referenceCountDia from './components/referenceCountDia.vue';
 export default {
-    components: { RefreshConfig },
+    components: { RefreshConfig ,defaultRefreshStatusDia,referenceCountDia},
     computed:{
         frequencyList() {
             return [
@@ -230,9 +370,23 @@ export default {
                 { key: "IsStop", label:/* '刷新状态' */ this.$t('SystemManage.DataRefresh.table_status')},
             ];
         },
+        tabList(){
+            return [
+                { value: "time", label:/* '刷新时间设置' */ this.$t('SystemManage.DataRefresh.time_setting_tab')},
+                { value: "status", label:/* '刷新状态设置' */ this.$t('SystemManage.DataRefresh.status_setting_tab')}
+            ];  
+        },
+        hasStatusSelection(){
+            if(this.statusDataSelectionItem.isSelectAll){
+                return this.statusDataTotal - (this.statusDataSelectionItem.selectList ? this.statusDataSelectionItem.selectList.length : 0)
+            }else{
+                return this.statusDataSelectionItem.selectList ? this.statusDataSelectionItem.selectList.length : 0
+            }
+        }
     },
     data() {
         return {
+            settingTab:'time',
             Source:'',
             SourceList:[],
             SubSource:'',
@@ -277,9 +431,128 @@ export default {
             //已选择/已剔除的指标id
             selectList:[],//监听table的select-all select
             selectionReactCancel:false,
+
+            // 刷新状态设置 
+            settingRuleForm:{},
+            setDefaultRefreshStatusShow:false,
+            referenceCountShow:false,
+            statusSourceList:[],
+            statusEdbClassifyList:[],
+            searchParams:{
+                Source:'',
+                Status:'',
+                Frequency:'',
+                SysUserId:'',
+                ClassifyId:'',
+                SortType:'',//排序类型
+                SortParam:'',//排序字段
+                Keyword:"",
+                PageSize:10,
+                CurrentIndex:1
+            },
+            SysUserIdArr:[],
+            stopUserIdRequest:false, //阻止watch中的请求
+            ClassifyIdArr:[],
+            stopClassifyIdRequest:false, //阻止watch中的请求
+            FrequencyArr:[],
+            stopFrequencyArrRequest:false, //阻止watch中的请求
+            statusTableData:[],
+            statusTableDataIds:[],
+            statusDataTotal:0,
+            statusEdbRelationDetailList:[],
+            statusDataSelectionItem:{
+                isIndeterminate:false,
+                isCheckAll:false,
+                selectionReactCancel:false,
+                isSelectAll:false,//为true时,selectList是剔除的指标,为false时selectList是已选择的指标
+                //已选择/已剔除的指标id
+                selectList:[],//监听table的select-all select
+            }
         };
     },
+    watch:{
+        SysUserIdArr(value){
+            if(value&&value.length>0){
+                this.searchParams.SysUserId=value.join(',')
+            }else{
+                this.searchParams.SysUserId=''
+            }
+            if(!this.stopUserIdRequest){
+                this.searchList()
+            }else{
+                this.stopUserIdRequest=false
+            }
+            
+        },
+        ClassifyIdArr(value){
+            if(value&&value.length>0){
+                this.searchParams.ClassifyId=value.join(',')
+            }else{
+                this.searchParams.ClassifyId=''
+            }
+            if(!this.stopClassifyIdRequest){
+                this.searchList()
+            }else{
+                this.stopClassifyIdRequest=false
+            }
+        },
+        FrequencyArr(value){
+            if(value&&value.length>0){
+                this.searchParams.Frequency=value.join(',')
+            }else{
+                this.searchParams.Frequency=''
+            }
+            if(!this.stopFrequencyArrRequest){
+                this.searchList()
+            }else{
+                this.stopFrequencyArrRequest=false
+            }
+        },
+        'searchParams.Source':{
+            handler:function (value) {
+                if(!value) return
+                this.searchParams.Status=''
+                // this.searchParams.Frequency=''
+                // this.searchParams.ClassifyId=''
+                // this.searchParams.SysUserId=''
+                this.FrequencyArr=[]
+                this.stopFrequencyArrRequest=true
+                this.ClassifyIdArr=[]
+                this.stopClassifyIdRequest=true
+                this.SysUserIdArr=[]
+                this.stopUserIdRequest=true
+                this.searchParams.SortType=''
+                this.searchParams.SortParam=''
+                this.searchParams.Keyword=''
+                this.getStatusClassifyList()
+                if(this.settingTab=='status') this.searchList()
+            }
+        }
+    },
     methods: {
+        checkPer(it){
+            if(it.value == 'status'){
+                // 同 设置刷新状态的权限按钮 控制整个刷新状态设置tab
+                return this.permissionBtn.isShowBtn('sysDepartPermission','refresh_state')
+            }
+            return true
+        },
+        changeTab(e){
+            this.settingTab=e||'time'
+            if(this.settingTab=='time'){
+                this.$nextTick(()=>{
+                    this.$refs.edbDataRef && this.adjustSelection()
+                })
+            }else{
+                if(!(this.statusTableData && this.statusTableData.length>0)){
+                    this.searchList()
+                }else{
+                    this.$nextTick(()=>{
+                        this.$refs.statusTableRef && this.adjustStatusSelection()
+                    })
+                }
+            }
+        },
         //展示刷新时间弹窗
         showDialog(isDefault){
             this.isDefault = isDefault
@@ -368,6 +641,10 @@ export default {
             dataRefreshInterface.getDataSourceList().then(res=>{
                 if(res.Ret!==200) return 
                 this.SourceList = res.Data||[]
+                this.statusSourceList=this.SourceList.filter(it => [2,34].includes(it.Source)).concat([
+                    {Source:-1,SourceName:"计算指标"}
+                ])
+                this.searchParams.Source = this.statusSourceList[0]?this.statusSourceList[0].Source:''
             })
         },
         //一级数据源改变时,二级数据源和筛选项也重新赋值
@@ -498,7 +775,7 @@ export default {
                     let row = this.tableData.find(da => da.EdbInfoId==it)
                     if(row){
                         setTimeout(()=>{
-                            this.$refs.edbDataRef.toggleRowSelection(row,true)
+                            this.$refs.edbDataRef && this.$refs.edbDataRef.toggleRowSelection(row,true)
                         },10)
                     }
                 })
@@ -509,7 +786,7 @@ export default {
                     let row = this.tableData.find(da => da.EdbInfoId==it)
                     if(row){
                         setTimeout(()=>{
-                            this.$refs.edbDataRef.toggleRowSelection(row,false)
+                            this.$refs.edbDataRef && this.$refs.edbDataRef.toggleRowSelection(row,false)
                         },50)
                     }
                 })
@@ -691,7 +968,245 @@ export default {
             if(e==='默认刷新时间') return this.$t('SystemManage.DataRefresh.default_time')
             if(e==='设置刷新时间') return this.$t('SystemManage.DataRefresh.set_time')
             return e
-        }
+        },
+        // -----------------------------刷新状态设置
+        //获取分类列表
+        async getStatusClassifyList(){
+            if(!this.searchParams.Source) return 
+            const res = await dataRefreshInterface.getClassifyList({
+                Source:Number(this.searchParams.Source)
+            })
+            if(res.Ret!==200) return 
+            this.statusEdbClassifyList = res.Data||[]
+        },
+         getStatusDataList(type){
+            dataRefreshInterface.getRelationEdbDataList(this.searchParams).then(res=>{
+                if(res.Ret!==200) return 
+                this.statusTableData=res.Data.List || []
+                this.statusDataTotal=res.Data.Paging.Totals || this.statusTableData.length
+                if(this.statusDataTotal>0){
+                    this.statusTableDataIds = this.statusTableData.map(it => it.EdbInfoId)
+                }else{
+                    this.statusTableDataIds = []
+                }
+                if(type==='search'){
+                    //如果是表格筛选项改变导致重新请求数据
+                    //数据获取完成后,清空所选
+                    this.statusDataSelectionItem.selectList = []
+                    this.statusListCheckAllChange(false)
+                }else{
+                    //若不是,数据获取完成后,查询列表全选的值
+                    //若当页有数据在selectList内,则勾选/剔除
+                    this.adjustStatusSelection()
+                }
+            })
+        },
+        handleStatusListPageNoChange(page){
+            this.searchParams.CurrentIndex = page
+            this.getStatusDataList()
+        },
+        // 列表
+        searchList(){
+            this.searchParams.CurrentIndex=1
+            this.getStatusDataList('search')
+        },
+        handleStatusTableSortChange({prop,order}){
+            if(order){
+                this.searchParams.SortParam = prop
+                this.searchParams.SortType = order==='ascending'?'asc':'desc'
+            }else{
+                this.searchParams.SortParam = ''
+                this.searchParams.SortType = ''
+            }
+            this.searchParams.CurrentIndex=1
+            this.getStatusDataList()
+        },
+        //勾选/取消勾选表格项-刷新状态设置
+        adjustStatusSelection(){
+            this.statusDataSelectionItem.selectionReactCancel=true
+            if(!this.statusDataSelectionItem.isSelectAll){
+                this.statusDataSelectionItem.selectList.map(it =>{
+                    let row = this.statusTableData.find(da => da.EdbInfoId==it)
+                    if(row){
+                        setTimeout(()=>{
+                            this.$refs.statusTableRef && this.$refs.statusTableRef.toggleRowSelection(row,true)
+                        },10)
+                    }
+                })
+            }else{
+                this.$refs.statusTableRef && this.$refs.statusTableRef.clearSelection()
+                this.$refs.statusTableRef &&this.$refs.statusTableRef.toggleAllSelection()
+                this.statusDataSelectionItem.selectList.map(it =>{
+                    let row = this.statusTableData.find(da => da.EdbInfoId==it)
+                    if(row){
+                        setTimeout(()=>{
+                            this.$refs.statusTableRef && this.$refs.statusTableRef.toggleRowSelection(row,false)
+                        },50)
+                    }
+                })
+            }
+            setTimeout(()=>{
+                this.statusDataSelectionItem.selectionReactCancel=false
+            },50)
+        },
+        //列表全选改变-刷新状态设置
+        statusListCheckAllChange(value){
+            this.statusDataSelectionItem.selectList = []
+            this.statusDataSelectionItem.isSelectAll = value
+            this.$refs.statusTableRef && this.$refs.statusTableRef.clearSelection()
+            if(value){
+                this.$refs.statusTableRef && this.$refs.statusTableRef.toggleAllSelection()
+            }
+        },
+        statusSelectionChange(selection){
+            if(this.statusDataSelectionItem.selectionReactCancel) return 
+            // selectAllHandle的触发在selectionChange后面,将selectionChange的逻辑延迟一下
+            setTimeout(()=>{
+                // 去重
+                let duplicateArr = Array.from(new Set(this.statusDataSelectionItem.selectList))
+                //isSelectAll为true时,selectList表示需要剔除的项
+                //isSelectAll为false时,selectList表示需要勾选的项
+                //全选
+                if((duplicateArr.length == this.statusDataTotal && (!this.statusDataSelectionItem.isSelectAll)) 
+                || (duplicateArr.length == 0 && this.statusDataSelectionItem.isSelectAll)){
+                    this.statusDataSelectionItem.isCheckAll = true
+                    this.statusDataSelectionItem.isIndeterminate=false
+                //全不选
+                }else if((duplicateArr.length == 0 && (!this.statusDataSelectionItem.isSelectAll)) 
+                || (duplicateArr.length == this.statusDataTotal && this.statusDataSelectionItem.isSelectAll)){
+                    this.statusDataSelectionItem.isCheckAll = false
+                    this.statusDataSelectionItem.isIndeterminate=false
+                //半选
+                }else{
+                    this.statusDataSelectionItem.isCheckAll = false
+                    this.statusDataSelectionItem.isIndeterminate=true
+                }
+            },1)
+        },
+        statusSelectHandle(selection,row){
+            if(this.statusDataSelectionItem.selectionReactCancel) return 
+            let check = false; 
+            if(selection.some(it => it.EdbInfoId == row.EdbInfoId)){
+                // 勾选
+                if(this.statusDataSelectionItem.isSelectAll){
+                    check=false
+                }else{
+                    check=true
+                }
+            }else{
+                // 取消勾选
+                if(this.statusDataSelectionItem.isSelectAll){
+                    check=true
+                }else{
+                    check=false
+                }
+            }
+            if(check){
+                this.statusDataSelectionItem.selectList.push(row.EdbInfoId)
+                }else{
+                this.statusDataSelectionItem.selectList=this.statusDataSelectionItem.selectList.filter(it => it!=row.EdbInfoId)
+            }
+        },
+        statusSelectAllHandle(selection){
+            if(this.statusDataSelectionItem.selectionReactCancel) return 
+            let check = false; 
+            if(selection && selection.length>0){
+                // 全选
+                if(this.statusDataSelectionItem.isSelectAll){
+                    check=false
+                }else{
+                    check=true
+                }
+            }else{
+                // 全不选
+                if(this.statusDataSelectionItem.isSelectAll){
+                    check=true
+                }else{
+                    check=false
+                }
+            }
+            if(check){
+                this.statusDataSelectionItem.selectList =  [...this.statusDataSelectionItem.selectList,...this.statusTableDataIds]
+            }else{
+                this.statusDataSelectionItem.selectList = this.statusDataSelectionItem.selectList.filter(it => !this.statusTableDataIds.includes(it))
+            }
+        },
+        openReferenceCountDia(row){
+            if(row.RelationNum==0) return 
+            dataRefreshInterface.getRelationEdbDetail({EdbInfoId:row.EdbInfoId,CurrentIndex:1,PageSize:9999999}).then(res=>{
+                if(res.Ret == 200){
+                    this.statusEdbRelationDetailList=res.Data.List || []
+                    this.referenceCountShow=true
+                }
+            })
+        },
+        async enableToggle(row){
+            let isRequest=true
+            if(!row.IsStop){
+                isRequest=false
+                await this.$confirm(this.$t('SystemManage.DataRefresh.disable_indicator_prompt'),this.$t('Confirm.prompt'),{
+                    type:"warning"
+                }).then(res=>{
+                    isRequest=true
+                }).catch(()=>{})
+            }
+            if(isRequest){
+                dataBaseInterface.edbRefreshStatusSet({EdbInfoId:row.EdbInfoId,ModifyStatus:row.IsStop==1?'启用':'暂停'}).then(res=>{
+                    if(res.Ret == 200){
+                        row.IsStop=1-row.IsStop
+                        this.$message.success(this.$t('MsgPrompt.operate_success_msg'))
+                    }
+                })
+            }
+        },
+        async setEdbsRefreshStatus(state){
+            let isRequest=true
+            if(state=='暂停'){
+                isRequest=false
+                await this.$confirm(this.$t('SystemManage.DataRefresh.disable_indicator_prompt'),this.$t('Confirm.prompt'),{
+                    type:"warning"
+                }).then(res=>{
+                    isRequest=true
+                }).catch(()=>{})
+            }
+            if(!isRequest) return 
+            
+            let params={
+                Source:Number(this.searchParams.Source),
+                ClassifyId:this.searchParams.ClassifyId,
+                SysUserId:this.searchParams.SysUserId,
+                Frequency:this.searchParams.Frequency,
+                Keyword:this.searchParams.Keyword,
+                Status:this.searchParams.Status,
+                IsSelectAll:this.statusDataSelectionItem.isSelectAll,
+                EdbSelectIdList:this.statusDataSelectionItem.selectList,
+                ModifyStatus:state
+            }
+
+            dataRefreshInterface.setRelationEdbsRefreshStatus(params).then(res=>{
+                if(res.Ret == 200){
+                    this.$message.success(this.$t('MsgPrompt.operate_success_msg'))
+                    this.getStatusDataList()
+                }
+            })
+        },
+        openDefaultRefreshStatusDia(){
+            dataRefreshInterface.getEdbStopRefreshRule({ConfKey:'EdbStopRefreshRule'}).then(res=>{
+                if(res.Ret == 200){
+                    this.settingRuleForm=res.Data.ConfVal?JSON.parse(res.Data.ConfVal):{}
+                    this.setDefaultRefreshStatusShow=true
+                }
+            })
+        },
+        setDefaultRefreshRule(rule){
+            let ruleText = rule?JSON.stringify({...rule,IsOpen:rule.IsOpen?1:0}):''
+            dataRefreshInterface.setEdbStopRefreshRule({ConfKey:'EdbStopRefreshRule',ConfVal:ruleText}).then(res=>{
+                if(res.Ret == 200){
+                    this.$message.success(this.$t('MsgPrompt.operate_success_msg'))
+                    this.setDefaultRefreshStatusShow=false
+                }
+            })
+        },
     },
     mounted(){
         this.getSourceList()
@@ -703,17 +1218,46 @@ export default {
 <style scoped lang="scss">
 .data-refresh-setting-wrap{
     min-height: calc(100vh - 120px);
+    background-color: #fff;
+    border:1px solid #C8CDD9;
+    border-radius: 4px;
     display: flex;
     flex-direction: column;
+    .top-top{
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        border-bottom:solid 1px #E7E7E7 ;
+        padding-right: 30px;
+        height: 62px;
+        .tab-zone{
+            display: flex;
+            align-items: center;
+            flex: 1;
+            height: 100%;
+            .tab-item{
+                cursor: pointer;
+                color: #666666;
+                padding: 0 16px;
+                height: 100%;
+                font-size: 16px;
+                display: flex;
+                align-items: center;
+                box-sizing: border-box;
+                border-bottom: solid 2px #ffffff;
+            }
+            .tab-item.active{
+                color: #0052D9;
+                border-bottom: solid 2px #0052D9;
+            }
+        }
+    }
     .top-box,.table-box{
         box-sizing: border-box;
         padding:20px;
-        background-color: #fff;
-        border:1px solid #C8CDD9;
-        border-radius: 4px;
     }
     .top-box{
-        margin-bottom: 20px;
+        // margin-bottom: 20px;
         display: flex;
         justify-content: space-between;
         .el-input{
@@ -773,5 +1317,60 @@ export default {
             padding: 25px 0;
         }
     }
+    // 刷新状态设置
+    .refresh-status-container{
+        padding: 20px 30px;
+        .refresh-status-search{
+            display: flex;
+            align-items: flex-start;
+            justify-content: space-between;
+            margin-left: -15px;
+            margin-bottom: 12px;
+            .select-source-box{
+                display: flex;
+                align-items: center;
+                margin-left:15px;
+                white-space: nowrap;
+                margin-bottom: 8px;
+                .el-select{
+                    margin-left:15px;
+                    margin-bottom: 0;
+                }
+            }
+            .el-select{
+                margin-left:15px;
+                margin-bottom: 8px;
+            }
+            .refresh-status-search-left{
+                display: flex;
+                align-items: center;
+                flex-wrap: wrap;
+            }
+            .select-item-small{
+                max-width: 140px;
+                margin-bottom: 8px;
+                margin-left:15px;
+            }
+            .selection-box{
+                margin-bottom: 8px;
+                margin-left:15px;
+                white-space: nowrap;
+                span{
+                    margin-left: 12px;
+                }
+            }
+        }
+        .el-table{
+            margin:12px 0 20px;
+        }
+        .table-text-button{
+            cursor: pointer;
+            color: #0052D9;
+            padding: 0 4px;
+        }
+        .el-pagination{
+            text-align: right;
+        }
+    }
 }
 </style>