hbchen 1 năm trước cách đây
mục cha
commit
004ab99511

BIN
src/assets/img/icons/close_icon_black.png


+ 432 - 58
src/views/dataEntry_manage/databaseComponents/addTargetDiaBase.vue

@@ -1,74 +1,170 @@
 <template>
 <template>
 	<div class="addTargtDia-box" v-if="isAddTarget">
 	<div class="addTargtDia-box" v-if="isAddTarget">
-		<el-dialog :visible.sync="isAddTarget" :close-on-click-modal="false" :modal-append-to-body='false'
+		<el-dialog :visible.sync="isAddTarget" :close-on-click-modal="false" :modal-append-to-body='false' 
 			@close="cancelHandle" custom-class="custom-dialog fit-screen-dialog" top="5vh" center width="85vw" v-dialogDrag>
 			@close="cancelHandle" custom-class="custom-dialog fit-screen-dialog" top="5vh" center width="85vw" v-dialogDrag>
 			<div slot="title" style="display:flex;alignItems:center;">
 			<div slot="title" style="display:flex;alignItems:center;">
 				<img :src="$icons.add" style="color:#fff;width:16px;height:16px;marginRight:5px;">
 				<img :src="$icons.add" style="color:#fff;width:16px;height:16px;marginRight:5px;">
 				<span style="fontSize:16px;">添加指标</span>
 				<span style="fontSize:16px;">添加指标</span>
 			</div>
 			</div>
-			<div class="dialog-top">
-				<div>
-					<span>数据来源</span>
-					<el-select v-model="fromType" placeholder="请选择来源" style="width:240px;margin-left:10px" @change="changeTrade"
-						:disabled="haveResult">
-						<el-option v-for="item in fromArr" :key="item" :label="item" :value="item">
-						</el-option>
-					</el-select>
-				</div>
-				<el-input v-show="isCompanyCode" placeholder="公司ID" v-model="search_company_txt" style="maxWidth:340px;"
-					@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
-					<i slot="prefix" class="el-input__icon el-icon-search"></i>
-				</el-input>
+			<template v-if="wsdAddStep==1">
+				<div class="dialog-top">
+					<div>
+						<span>数据来源</span>
+						<el-select v-model="fromType" placeholder="请选择来源" style="width:240px;margin-left:10px" @change="changeTrade"
+							:disabled="haveResult">
+							<el-option v-for="item in fromArr" :key="item" :label="item" :value="item">
+							</el-option>
+						</el-select>
+						<el-select v-model="fromDatabase" placeholder="请选择数据库" style="width:240px;margin-left:10px" @change="changeDatabase"
+							:disabled="haveResult" v-if="fromType=='wind'">
+							<el-option v-for="item in databaseType" :key="item.value" :label="item.label" :value="item.value">
+							</el-option>
+						</el-select>
+					</div>
+					<el-input v-show="isCompanyCode" placeholder="公司ID" v-model="search_company_txt" style="maxWidth:340px;"
+						@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
+						<i slot="prefix" class="el-input__icon el-icon-search"></i>
+					</el-input>
 
 
-				<el-input placeholder="指标ID" v-model="search_txt" style="maxWidth:340px"
-					@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
-					<i slot="prefix" class="el-input__icon el-icon-search"></i>
-				</el-input>
-			</div>
-			<div class="warn_txt" v-if="status === 1">
-				该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }},如需重新添加,请删除原指标
-			</div>
-			<div class="warn_txt" v-else-if="status === 3">
-				该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }}
-			</div>
+					<el-input placeholder="指标ID" v-model="search_txt" style="maxWidth:300px" v-if="!(this.fromType=='wind' && this.fromDatabase==2)"
+						@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
+						<i slot="prefix" class="el-input__icon el-icon-search"></i>
+					</el-input>
+				</div>
+				<template v-if="this.fromType=='wind' && this.fromDatabase==2">
+					<div class="wsd-index-box">
+						<el-input placeholder="请输入证券代码" v-model.trim="securityCodeText" class="wsd-index-input" @blur="codeInputBlur('security')"></el-input>
+						<div class="wsd-code-row">
+							<div class="wsd-code-item" v-for="item in securityCode" :key="item">
+								<div class="wsd-code-item-text">{{ item }}</div>
+								<img src="~@/assets/img/icons/close_icon_black.png" @click="deleteCode('security',item)" />
+							</div>
+						</div>
+						<div class="wsd-index-code">
+							<el-input placeholder="请输入指标代码" v-model.trim="indexCodeText" class="wsd-index-input" @blur="codeInputBlur('index')"></el-input>
+							<div class="index-code-hint">Wind金融终端输入“CG”会弹出代码生成器,可在代码生成器上获取其他指标的代码</div>
+						</div>
+						<el-checkbox-group v-model="indexCodeSelected">
+							<el-checkbox :label="item.value" v-for="item in indexCodeArr" :key="item.value">{{ item.lable }}</el-checkbox>
+						</el-checkbox-group>
+						<div class="wsd-code-row" style="margin-top: -10px;">
+							<div class="wsd-code-item" v-for="item in indexCode" :key="item">
+								<div class="wsd-code-item-text">{{ item }}</div>
+								<img src="~@/assets/img/icons/close_icon_black.png" @click="deleteCode('index',item)" />
+							</div>
+						</div>
+					</div>
+					<div class="dia-bot">
+						<el-button type="primary" @click="wsdNextHandle" :disabled="!isCodeComplete" style="width: 120px;">下一步
+						</el-button>
+					</div>
+				</template>
+				<template v-else>
+					<div class="warn_txt" v-if="status === 1">
+						该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }},如需重新添加,请删除原指标
+					</div>
+					<div class="warn_txt" v-else-if="status === 3">
+						该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }}
+					</div>
 
 
-			<div class="no-auth" v-if="status === 3">
-				您当前暂无权限查看该指标,如需查看,请联系管理员
-			</div>
-			<div class="dialog-main" v-else>
-				<el-table ref="Table" :data="tableData" highlight-current-row border
-					:style="(status === 1 || !tableData.length) ? 'height:350px' : ''">
-					<el-table-column v-for="item in tableColums" :key="item.label" :label="item.label" align="center">
-						<template slot-scope="scope">
-							<span v-if="item.key == 'StartDate' || item.key == 'EndDate'">{{ scope.row[item.key] |
-									formatTime
-							}}</span>
-							<span v-else>{{ scope.row[item.key] }}</span>
-						</template>
-					</el-table-column>
-					<div slot="empty" style="padding:40px 0 120px;">
-						<tableNoData text="未搜索到该指标" size="mini"/>
+					<div class="no-auth" v-if="status === 3">
+						您当前暂无权限查看该指标,如需查看,请联系管理员
 					</div>
 					</div>
-				</el-table>
-				<ul class="value-ul" v-show="dataList.length && status === 2">
-					<li class="value-item" v-for="(item, index) in dataList" :key="index">
-						<span>{{ item.DataTime }}</span>
-						<span style="min-width:200px;text-align:center;">{{ item.Value }}</span>
-					</li>
-				</ul>
-			</div>
-			
-			<div class="dia-bot">
-				<el-button type="primary" v-if="status === 2" @click="addTargtHandler" :disabled="!tableData.length">下一步
-				</el-button>
-				<el-button type="primary" v-else-if="[1,3].includes(status)" @click="cancelHandle">知道了</el-button>
-			</div>
+					<div class="dialog-main" v-else>
+						<el-table ref="Table" :data="tableData" highlight-current-row border
+							:style="(status === 1 || !tableData.length) ? 'height:350px' : ''">
+							<el-table-column v-for="item in tableColums" :key="item.label" :label="item.label" align="center">
+								<template slot-scope="scope">
+									<span v-if="item.key == 'StartDate' || item.key == 'EndDate'">{{ scope.row[item.key] |
+											formatTime
+									}}</span>
+									<span v-else>{{ scope.row[item.key] }}</span>
+								</template>
+							</el-table-column>
+							<div slot="empty" style="padding:40px 0 120px;">
+								<tableNoData text="未搜索到该指标" size="mini"/>
+							</div>
+						</el-table>
+						<ul class="value-ul" v-show="dataList.length && status === 2">
+							<li class="value-item" v-for="(item, index) in dataList" :key="index">
+								<span>{{ item.DataTime }}</span>
+								<span style="min-width:200px;text-align:center;">{{ item.Value }}</span>
+							</li>
+						</ul>
+					</div>
+					<div class="dia-bot">
+						<el-button type="primary" v-if="status === 2" @click="addTargtHandler" :disabled="!tableData.length">下一步
+						</el-button>
+						<el-button type="primary" v-else-if="[1,3].includes(status)" @click="cancelHandle">知道了</el-button>
+					</div>
+				</template>
+			</template>
+			<template v-else>
+				<div class="edb-table-preview">
+          <table width="auto" border="0">
+            <thead>
+              <tr v-for="(item, index) in edbTableHeadKey" :key="item">
+                <td class="sticky" style="left: 0;text-align: center;">
+                  {{ edbTableHeadData.get(item) }}
+                </td>
+                <td v-for="(data, sub_index) in edbIndexDatas" :key="sub_index" :colspan="2">
+									<template v-if="item === 'Catalogue'">
+										<el-cascader :options="options" v-model="data[item]" placeholder="请选择所属目录"
+										size="mini" :props="{label: 'ClassifyName',
+											value: 'ClassifyId',
+											children: 'Children',
+											checkStrictly: true}">
+										</el-cascader>
+									</template>
+									<template v-else-if="item === 'Unit'">
+										<el-autocomplete
+											v-model.trim="data[item]"
+											:fetch-suggestions="querySearchUnit"
+											placeholder="请输入单位"
+											suffix-icon="el-icon-arrow-down"
+											size="mini"
+										></el-autocomplete>
+									</template>
+									<template v-else-if="item === 'Frequency'">
+										<el-select v-model="data[item]" placeholder="请选择频度" size="mini">
+											<el-option :label="item" :value="item"
+											v-for="item in frequencyArr" :key="item"></el-option>
+										</el-select>
+									</template>
+									<template v-else-if="item === 'SecName'">
+										<el-input v-model.trim="data[item]" placeholder="请输入指标名称" size="mini"></el-input>
+									</template>
+									<template v-else>
+										<div style="padding: 0 7px;">{{ data[item] }}</div>
+									</template>
+                </td>
+              </tr>
+            </thead>
+            <tbody>
+							<tr v-for="(item,index) in edbIndexDatas[0].DataList.length" :key="index">
+								<td :rowspan="edbIndexDatas[0].DataList.length" v-if="index==0"
+								class="sticky" style="left: 0;text-align: center;">
+									数据详情
+								</td>
+								<template v-for="(item1,index1) in edbIndexDatas.length">
+									<td>{{ edbIndexDatas[index1].DataList[index].Dt }}</td>
+									<td>{{ edbIndexDatas[index1].DataList[index].Close }}</td>
+								</template>
+              </tr>
+            </tbody>
+          </table>
+        </div>
+				<div class="dia-bot">
+					<el-button @click="wsdPrevHandle" style="width: 120px;">上一步</el-button>
+					<el-button type="primary" @click="wsdSaveHandle" style="width: 120px;margin-left: 50px;">保存</el-button>
+				</div>
+			</template>
 		</el-dialog>
 		</el-dialog>
 	</div>
 	</div>
 </template>
 </template>
 
 
 <script>
 <script>
-import { dataBaseInterface } from '@/api/api.js'
+import { dataBaseInterface,dataInterence } from '@/api/api.js'
 import { fromArr, fromCode ,frequencyArr} from './util';
 import { fromArr, fromCode ,frequencyArr} from './util';
 export default {
 export default {
 	name: '',
 	name: '',
@@ -77,11 +173,38 @@ export default {
 			type: Boolean
 			type: Boolean
 		}
 		}
 	},
 	},
+	computed:{
+		isCodeComplete(){
+			return this.securityCode.length>0 && (this.indexCode.length>0 || this.indexCodeSelected.length>0)
+		}
+	},
 	data() {
 	data() {
 		return {
 		return {
 			search_txt: '',//搜素关键词 M001625518 M0001427
 			search_txt: '',//搜素关键词 M001625518 M0001427
 			fromType: 'wind',
 			fromType: 'wind',
+			fromDatabase:2,
 			fromArr,
 			fromArr,
+			indexCodeSelected:[],
+			indexCodeArr:[
+				{value:1,lable:"前收盘价"},
+				{value:2,lable:"开盘价"},
+				{value:3,lable:"最高价"},
+				{value:4,lable:"最低价"},
+				{value:5,lable:"收盘价"},
+				{value:6,lable:"结算价"},
+				{value:7,lable:"成交量"},
+				{value:8,lable:"成交额"},
+				{value:9,lable:"涨跌幅"},
+				{value:10,lable:"振幅"},
+				{value:11,lable:"换手率"},
+				{value:12,lable:"持仓量"},
+				{value:13,lable:"持仓额"},
+			], // 常用的指标代码
+			databaseType:[
+				{value:1,label:'经济数据库'},
+				{value:2,label:'日期序列'}
+			],
+			wsdAddStep:1,
 			fromCode,
 			fromCode,
 			tableColums: [
 			tableColums: [
 				{
 				{
@@ -107,19 +230,72 @@ export default {
 				edb_name: '',
 				edb_name: '',
 			},
 			},
 			isCompanyCode: false,
 			isCompanyCode: false,
-			search_company_txt: ''
+			search_company_txt: '',
+			securityCodeText:"",
+			securityCode:[],
+			indexCodeText:'',
+			indexCode:[],
+			edbIndexDatas:[
+				{Catalogue:'',Unit:"",Frequency:'日度',SecName:'CU2403收盘价',SecurityCode:'CU2403.SHF',IndexCode:'close',
+				DataList:[{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"}]},
+				{Catalogue:'',Unit:"",Frequency:'日度',SecName:'CU2403收盘价',SecurityCode:'CU2403.SHF',IndexCode:'close',
+				DataList:[{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"}]},
+				{Catalogue:'',Unit:"",Frequency:'日度',SecName:'CU2403收盘价',SecurityCode:'CU2403.SHF',IndexCode:'close',
+				DataList:[{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"}]},
+				{Catalogue:'',Unit:"",Frequency:'日度',SecName:'CU2403收盘价',SecurityCode:'CU2403.SHF',IndexCode:'close',
+				DataList:[{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"}]},
+				{Catalogue:'',Unit:"",Frequency:'日度',SecName:'CU2403收盘价',SecurityCode:'CU2403.SHF',IndexCode:'close',
+				DataList:[{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"}]},
+				{Catalogue:'',Unit:"",Frequency:'日度',SecName:'CU2403收盘价',SecurityCode:'CU2403.SHF',IndexCode:'close',
+				DataList:[{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},
+				{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"},{Close: "632107.0000",Dt: "2023-09-07"}]}
+			],
+			edbTableHeadKey: [
+        "Catalogue",
+        "Unit",
+        "Frequency",
+        "SecName",
+        "SecurityCode",
+        "IndexCode",
+      ],
+			edbTableHeadData:new Map([
+				["Catalogue", "所属目录"],
+				["Unit", "单位"],
+				["Frequency", "频度"],
+				["SecName", "指标名称"],
+				["SecurityCode", "证券代码"],
+				["IndexCode", "指标代码"],
+			]),
+			options:[],
+			unitList:[],
+			frequencyArr
 		};
 		};
 	},
 	},
 	watch:{
 	watch:{
 		isAddTarget(newVal){
 		isAddTarget(newVal){
 			if(newVal){
 			if(newVal){
 				this.getTargetSource()
 				this.getTargetSource()
+				this.getMenu()
+				this.getTargetUnitList()
 			}
 			}
 		}
 		}
 	},
 	},
 	methods: {
 	methods: {
 		init() {
 		init() {
 			this.fromType = 'wind'
 			this.fromType = 'wind'
+			this.fromDatabase=1
+			this.wsdAddStep=1
 			this.status = ''
 			this.status = ''
 			this.tableData = []
 			this.tableData = []
 			this.dataList = []
 			this.dataList = []
@@ -230,10 +406,21 @@ export default {
 			} else {
 			} else {
 				this.isCompanyCode = false;
 				this.isCompanyCode = false;
 			}
 			}
+			if(this.fromDatabase==2){
+				this.changeDatabase(1)
+			}
 			this.search_txt = '';
 			this.search_txt = '';
 			this.search_company_txt = '';
 			this.search_company_txt = '';
 			this.loading && this.loading.close();
 			this.loading && this.loading.close();
 		},
 		},
+		changeDatabase(e){
+			this.fromDatabase=e
+			this.securityCodeText=""
+			this.securityCode=[]
+			this.indexCodeText=''
+			this.indexCode=[]
+			this.indexCodeSelected=[]
+		},
 		getTargetSource(){
 		getTargetSource(){
 			this.fromArr = []
 			this.fromArr = []
 			this.fromCode = []
 			this.fromCode = []
@@ -248,6 +435,87 @@ export default {
 					}))
 					}))
 				}
 				}
 			})
 			})
+		},
+		codeInputBlur(type){
+			if(type == 'security'){
+				if(!this.securityCodeText) return  
+				this.securityCode=Array.from(new Set([...this.securityCode,...this.securityCodeText.split(',')]))
+
+				this.securityCodeText=''
+			}else if(type == 'index'){
+				if(!this.indexCodeText) return  
+				this.indexCode=Array.from(new Set([...this.indexCode,...this.indexCodeText.split(',')]))
+
+				this.indexCodeText=''
+			}
+
+		},
+		deleteCode(type,code){
+			if(type == 'security'){
+				this.securityCode = this.securityCode.filter(it => it!=code)
+			}else if(type == 'index'){
+				this.indexCode = this.indexCode.filter(it => it!=code)
+			}
+		},
+		/* 获取目录结构 */
+		getMenu() {
+			dataBaseInterface.menuListV3().then(res => {
+				if(res.Ret === 200) {
+					this.filterNodes(res.Data.AllNodes||[]);
+					this.options = res.Data.AllNodes || [];
+				}
+			})
+		},
+		// 递归改变目录结构
+		filterNodes(arr) {
+			arr.length && arr.forEach(item => {
+				item.Children.length && this.filterNodes(item.Children)
+				if(!item.Children.length) {
+					item.Children=null
+				}
+			})
+		},
+		// 获取指标单位
+		async getTargetUnitList(){
+			let res=await dataInterence.getTargetUnitList()
+			if(res.Ret===200){
+				this.unitList=res.Data&&res.Data.map(item=>{
+					return {value:item}
+				})
+			}
+		},
+		//搜索单位
+		querySearchUnit(queryString, cb){
+			let results = queryString ? this.unitList.filter(item=>item.value.indexOf(queryString) === 0) : this.unitList;
+			// 调用 callback 返回建议列表的数据
+			cb(results);
+		},
+		wsdNextHandle(){
+			this.getMenu()
+			setTimeout(()=>{
+				console.log(this.securityCode,this.indexCode,this.indexCodeSelected,'wsdNextHandle');
+				if(this.isCodeComplete){
+					this.wsdAddStep=2
+				}
+			},50)
+		},
+		wsdPrevHandle(){
+			this.wsdAddStep=1
+		},
+		wsdSaveHandle(){
+			 let flag = this.edbIndexDatas.some(it => {
+				console.log(it,'ittititti');
+				return (!it.Catalogue) || (!it.Unit) || (!it.Frequency) || (!it.SecName)
+			})
+			if(flag){
+				this.$message.warning("指标信息未填写完整")
+				return 
+			}
+			// TODO: 保存接口对接
+			this.$message.success("添加指标成功")
+			// { code:res.Data.UniqueCode,id:res.Data.EdbInfoId,classifyId:params.ClassifyId }
+			this.$emit('addSuccessHandle')	
+			this.$emit('cancelHandle')	
 		}
 		}
 	},
 	},
 	created() { },
 	created() { },
@@ -260,6 +528,33 @@ export default {
 .addTargtDia-box {
 .addTargtDia-box {
     .custom-dialog{
     .custom-dialog{
         max-width: 1200px !important;
         max-width: 1200px !important;
+				min-width: 1000px;
+				.el-checkbox{
+					margin-right: 20px;
+					margin-bottom: 16px;
+				}
+				.edb-table-preview{
+					border-right: 1px solid #dcdfe6;
+					border-bottom: 1px solid #dcdfe6;
+					.el-cascader{
+						width: 100%;
+					}
+					.el-autocomplete{
+						width: 100%;
+					}
+					.el-select{
+						width: 100%;
+					}
+					.el-input{
+						width: 100%;
+						input{
+							border: none;
+							padding-left: 7px;
+							font-size: 14px;
+						}
+					}
+				}
+
     }
     }
 }
 }
 </style>
 </style>
@@ -272,7 +567,48 @@ export default {
 		border: 1px solid #ECECEC;
 		border: 1px solid #ECECEC;
 		box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
 		box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.05);
 	}
 	}
-
+	.wsd-index-box{
+		padding-top: 20px;
+		.wsd-index-code{
+			display: flex;
+			align-items: center;
+			margin-bottom: 15px;
+			.index-code-hint{
+				color: #C0C4CC;
+				font-size: 15px;
+			}
+		}
+		.wsd-code-row{
+			margin-top: 10px;
+			min-height: 60px;
+			display: flex;
+			align-items: center;
+			flex-wrap: wrap;
+			.wsd-code-item{
+				height: 40px;
+				background-color: #EBEFF6;
+				display: flex;
+				align-items: center;
+				margin-right: 10px;
+				padding: 10px;
+				box-sizing: border-box;
+				margin-bottom: 10px;
+				.wsd-code-item-text{
+					color: #333333;
+					margin-right: 10px;
+				}
+				img{
+					height: 16px;
+					width: 16px;
+					cursor: pointer;
+				}
+			}
+		}
+		.wsd-index-input{
+			width: 400px;
+			margin-right: 10px;
+		}
+	}
 	.warn_txt {
 	.warn_txt {
 		font-size: 16px;
 		font-size: 16px;
 		color: #FF4E00;
 		color: #FF4E00;
@@ -312,5 +648,43 @@ export default {
 		color: #FF4E00;
 		color: #FF4E00;
 		border: 1px dashed #FF4E00;
 		border: 1px dashed #FF4E00;
 	}
 	}
+	// 预览表格
+	.sticky {
+		position: sticky;
+		border-right: 1px solid #dcdfe6;
+		z-index: 10;
+	}
+	.edb-table-preview {
+		overflow: auto;
+		height: calc(100% - 124px);
+		&::-webkit-scrollbar {
+			width: 5px !important;
+		}
+		table {
+      border-color: #dcdfe6;
+      border-bottom: 1px solid #dcdfe6;
+      border-right: 1px solid #dcdfe6;
+      border-collapse: separate;
+    }
+    thead {
+      position: sticky;
+      z-index: 2;
+      top: 0;
+    }
+    td {
+      min-width: 100px;
+      max-width: 100px;
+      height: 30px;
+      // text-align: center;
+      color: #333;
+      box-sizing: border-box;
+      padding: 0 5px;
+      background-color: #fff;
+      border-top: 1px solid #dcdfe6;
+      border-left: 1px solid #dcdfe6;
+    }
+	}
 }
 }
+
+
 </style>
 </style>

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

@@ -338,6 +338,7 @@
 			ref="addTargetDiaBase"
 			ref="addTargetDiaBase"
 			:isAddTarget="isAddTarget"
 			:isAddTarget="isAddTarget"
 			@cancelHandle="isAddTarget = false"
 			@cancelHandle="isAddTarget = false"
+			@addSuccessHandle="addTargetSuccess"
 		/>
 		/>
 		<!-- 完善指标信息 -->
 		<!-- 完善指标信息 -->
 		<completeTargetDia
 		<completeTargetDia
@@ -1947,6 +1948,11 @@ export default {
 			this.selectCurrentNode(params);
 			this.selectCurrentNode(params);
 			this.select_classifyId = 0;
 			this.select_classifyId = 0;
 		},
 		},
+		// 添加wind wsd指标成功
+		addTargetSuccess(){
+			// TODO: 定位
+			
+		}
 	},
 	},
 	//离开页面时保存标签
 	//离开页面时保存标签
 	beforeRouteLeave(to,from,next){
 	beforeRouteLeave(to,from,next){