|
@@ -4,12 +4,12 @@
|
|
@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;">{{$t('EtaBasePage.add_edb_btn')}}</span>
|
|
</div>
|
|
</div>
|
|
- <div v-if="wsdAddStep==1" v-loading="isLoadingData" element-loading-text="加载中······">
|
|
|
|
|
|
+ <div v-if="wsdAddStep==1" v-loading="isLoadingData" :element-loading-text="$t('Table.loading')">
|
|
<div class="dialog-top" >
|
|
<div class="dialog-top" >
|
|
<div>
|
|
<div>
|
|
- <span>数据来源</span>
|
|
|
|
|
|
+ <span>{{$t('Edb.Detail.source')}}</span>
|
|
<el-select v-model="fromType" placeholder="请选择来源" style="width:240px;margin-left:10px" @change="changeTrade"
|
|
<el-select v-model="fromType" placeholder="请选择来源" style="width:240px;margin-left:10px" @change="changeTrade"
|
|
:disabled="haveResult">
|
|
:disabled="haveResult">
|
|
<el-option v-for="item in fromArr" :key="item" :label="item" :value="item">
|
|
<el-option v-for="item in fromArr" :key="item" :label="item" :value="item">
|
|
@@ -21,22 +21,22 @@
|
|
</el-option>
|
|
</el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</div>
|
|
</div>
|
|
- <el-input v-show="isCompanyCode" placeholder="公司ID" v-model="search_company_txt" style="maxWidth:340px;"
|
|
|
|
|
|
+ <el-input v-show="isCompanyCode" :placeholder="$t('EtaBasePage.complany_pholder')" v-model="search_company_txt" style="maxWidth:340px;"
|
|
@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
|
|
@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
|
|
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
</el-input>
|
|
</el-input>
|
|
|
|
|
|
- <el-input placeholder="指标ID" v-model="search_txt" style="maxWidth:300px" v-if="!(hasDateSequence && fromDatabase=='1')"
|
|
|
|
|
|
+ <el-input :placeholder="$t('Edb.Detail.e_id')" v-model="search_txt" style="maxWidth:300px" v-if="!(hasDateSequence && fromDatabase=='1')"
|
|
@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
|
|
@keyup.enter.native="searchHandle" :disabled="haveResult" clearable>
|
|
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
<i slot="prefix" class="el-input__icon el-icon-search"></i>
|
|
</el-input>
|
|
</el-input>
|
|
</div>
|
|
</div>
|
|
<div v-if="hasDateSequence && fromDatabase=='1'">
|
|
<div v-if="hasDateSequence && fromDatabase=='1'">
|
|
<div class="wsd-index-box">
|
|
<div class="wsd-index-box">
|
|
- <el-input placeholder="请输入证券代码,每次只查询一个证券代码" v-model.trim="securityCodeText" class="wsd-index-input"
|
|
|
|
|
|
+ <el-input :placeholder="$t('EtaBasePage.stock_input_pholder')" v-model.trim="securityCodeText" class="wsd-index-input"
|
|
@blur="codeInputBlur('security')" style="margin-bottom: 20px;"></el-input>
|
|
@blur="codeInputBlur('security')" style="margin-bottom: 20px;"></el-input>
|
|
<div class="wsd-index-code">
|
|
<div class="wsd-index-code">
|
|
- <el-input placeholder="请输入指标代码,多个指标代码用英文逗号分隔" v-model.trim="indexCodeText"
|
|
|
|
|
|
+ <el-input :placeholder="$t('EtaBasePage.edb_input_pholder')" v-model.trim="indexCodeText"
|
|
class="wsd-index-input" @blur="codeInputBlur('index')"></el-input>
|
|
class="wsd-index-input" @blur="codeInputBlur('index')"></el-input>
|
|
<div class="index-code-hint">
|
|
<div class="index-code-hint">
|
|
{{ indexCodeHintText }}
|
|
{{ indexCodeHintText }}
|
|
@@ -59,20 +59,23 @@
|
|
</div>
|
|
</div>
|
|
<div class="dia-bot">
|
|
<div class="dia-bot">
|
|
<el-button type="primary" @click="wsdNextHandle" :disabled="!isCodeComplete"
|
|
<el-button type="primary" @click="wsdNextHandle" :disabled="!isCodeComplete"
|
|
- style="width: 120px;" :loading="isLoadingData" >下一步
|
|
|
|
|
|
+ style="width: 120px;" :loading="isLoadingData" ><!-- 下一步 -->{{$t('EtaBasePage.next_step')}}
|
|
</el-button>
|
|
</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<template v-else>
|
|
<template v-else>
|
|
<div class="warn_txt" v-if="status === 1">
|
|
<div class="warn_txt" v-if="status === 1">
|
|
- 该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }},如需重新添加,请删除原指标
|
|
|
|
|
|
+ <!-- 该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }},如需重新添加,请删除原指标 -->
|
|
|
|
+ {{ $t('EtaBasePage.have_edb_tip1',{ name:have_edbobj.edb_name,menu: have_edbobj.warnTip}) }}
|
|
</div>
|
|
</div>
|
|
<div class="warn_txt" v-else-if="status === 3">
|
|
<div class="warn_txt" v-else-if="status === 3">
|
|
- 该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }}
|
|
|
|
|
|
+ <!-- 该数据已存在数据库,名称为:{{have_edbobj.edb_name}},目录为:{{ have_edbobj.warnTip }} -->
|
|
|
|
+ {{ $t('EtaBasePage.have_edb_tip2',{ name:have_edbobj.edb_name,menu: have_edbobj.warnTip}) }}
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="no-auth" v-if="status === 3">
|
|
<div class="no-auth" v-if="status === 3">
|
|
- 您当前暂无权限查看该指标,如需查看,请联系管理员
|
|
|
|
|
|
+ <!-- 您当前暂无权限查看该指标,如需查看,请联系管理员 -->
|
|
|
|
+ {{ $t('EtaBasePage.forbid_edb_tips') }}
|
|
</div>
|
|
</div>
|
|
<div class="dialog-main" v-else>
|
|
<div class="dialog-main" v-else>
|
|
<el-table ref="Table" :data="tableData" highlight-current-row border
|
|
<el-table ref="Table" :data="tableData" highlight-current-row border
|
|
@@ -86,7 +89,7 @@
|
|
</template>
|
|
</template>
|
|
</el-table-column>
|
|
</el-table-column>
|
|
<div slot="empty" style="padding:40px 0 120px;">
|
|
<div slot="empty" style="padding:40px 0 120px;">
|
|
- <tableNoData text="未搜索到该指标" size="mini"/>
|
|
|
|
|
|
+ <tableNoData :text="$t('EtaBasePage.no_search')" size="mini"/>
|
|
</div>
|
|
</div>
|
|
</el-table>
|
|
</el-table>
|
|
<ul class="value-ul" v-show="dataList.length && status === 2">
|
|
<ul class="value-ul" v-show="dataList.length && status === 2">
|
|
@@ -98,9 +101,9 @@
|
|
</div>
|
|
</div>
|
|
<div class="dia-bot">
|
|
<div class="dia-bot">
|
|
<el-button type="primary" v-if="status === 2" @click="addTargtHandler"
|
|
<el-button type="primary" v-if="status === 2" @click="addTargtHandler"
|
|
- :disabled="!tableData.length">下一步
|
|
|
|
|
|
+ :disabled="!tableData.length"><!-- 下一步 -->{{$t('EtaBasePage.next_step')}}
|
|
</el-button>
|
|
</el-button>
|
|
- <el-button type="primary" v-else-if="[1,3].includes(status)" @click="cancelHandle">知道了</el-button>
|
|
|
|
|
|
+ <el-button type="primary" v-else-if="[1,3].includes(status)" @click="cancelHandle"><!-- 知道了 -->{{$t('MsgPrompt.known')}}</el-button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
@@ -115,7 +118,7 @@
|
|
<td v-for="(data, sub_index) in edbIndexDatas" :key="sub_index" :colspan="2"
|
|
<td v-for="(data, sub_index) in edbIndexDatas" :key="sub_index" :colspan="2"
|
|
:class="highLightIndex.includes(data.EdbName) && item=='EdbName' ?'exist-highlight':''">
|
|
:class="highLightIndex.includes(data.EdbName) && item=='EdbName' ?'exist-highlight':''">
|
|
<template v-if="item === 'ClassifyId'">
|
|
<template v-if="item === 'ClassifyId'">
|
|
- <el-cascader :options="options" v-model="data[item]" placeholder="请选择所属目录"
|
|
|
|
|
|
+ <el-cascader :options="options" v-model="data[item]" :placeholder="$t('Edb.InputHolderAll.input_menu')"
|
|
size="mini" :disabled="!data.Source"
|
|
size="mini" :disabled="!data.Source"
|
|
:props="{label: 'ClassifyName',
|
|
:props="{label: 'ClassifyName',
|
|
value: 'ClassifyId',
|
|
value: 'ClassifyId',
|
|
@@ -129,19 +132,19 @@
|
|
:disabled="!data.Source"
|
|
:disabled="!data.Source"
|
|
v-model.trim="data[item]"
|
|
v-model.trim="data[item]"
|
|
:fetch-suggestions="querySearchUnit"
|
|
:fetch-suggestions="querySearchUnit"
|
|
- placeholder="请输入单位"
|
|
|
|
|
|
+ :placeholder="$t('Edb.InputHolderAll.input_unit')"
|
|
suffix-icon="el-icon-arrow-down"
|
|
suffix-icon="el-icon-arrow-down"
|
|
size="mini"
|
|
size="mini"
|
|
></el-autocomplete>
|
|
></el-autocomplete>
|
|
</template>
|
|
</template>
|
|
<template v-else-if="item === 'Frequency'">
|
|
<template v-else-if="item === 'Frequency'">
|
|
- <el-select v-model="data[item]" placeholder="请选择频度" size="mini" :disabled="!data.Source">
|
|
|
|
|
|
+ <el-select v-model="data[item]" :placeholder="$t('Edb.InputHolderAll.input_fre')" size="mini" :disabled="!data.Source">
|
|
<el-option :label="item" :value="item"
|
|
<el-option :label="item" :value="item"
|
|
v-for="item in frequencyArr" :key="item"></el-option>
|
|
v-for="item in frequencyArr" :key="item"></el-option>
|
|
</el-select>
|
|
</el-select>
|
|
</template>
|
|
</template>
|
|
<template v-else-if="item === 'EdbName'">
|
|
<template v-else-if="item === 'EdbName'">
|
|
- <el-input v-model.trim="data[item]" placeholder="请输入指标名称" size="mini" :disabled="!data.Source"></el-input>
|
|
|
|
|
|
+ <el-input v-model.trim="data[item]" placeholder="$t('Edb.InputHolderAll.input_name')" size="mini" :disabled="!data.Source"></el-input>
|
|
</template>
|
|
</template>
|
|
<template v-else>
|
|
<template v-else>
|
|
<div style="padding: 0 7px;">{{ data[item] }}</div>
|
|
<div style="padding: 0 7px;">{{ data[item] }}</div>
|
|
@@ -153,19 +156,19 @@
|
|
<tr v-for="(item,index) in edbIndexDatas[0].DataList.length" :key="index">
|
|
<tr v-for="(item,index) in edbIndexDatas[0].DataList.length" :key="index">
|
|
<td :rowspan="edbIndexDatas[0].DataList.length" v-if="index==0"
|
|
<td :rowspan="edbIndexDatas[0].DataList.length" v-if="index==0"
|
|
class="sticky" style="left: 0;text-align: center;">
|
|
class="sticky" style="left: 0;text-align: center;">
|
|
- 数据详情
|
|
|
|
|
|
+ <!-- 数据详情 -->{{$t('Edb.data_detail_tab')}}
|
|
</td>
|
|
</td>
|
|
<template v-for="(item1,index1) in edbIndexDatas.length">
|
|
<template v-for="(item1,index1) in edbIndexDatas.length">
|
|
- <td>{{ edbIndexDatas[index1].DataList[index].DataTime }}</td>
|
|
|
|
- <td>{{ edbIndexDatas[index1].DataList[index].Value }}</td>
|
|
|
|
|
|
+ <td :key="index1">{{ edbIndexDatas[index1].DataList[index].DataTime }}</td>
|
|
|
|
+ <td :key="index1">{{ edbIndexDatas[index1].DataList[index].Value }}</td>
|
|
</template>
|
|
</template>
|
|
</tr>
|
|
</tr>
|
|
</tbody>
|
|
</tbody>
|
|
</table>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
<div class="dia-bot">
|
|
<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>
|
|
|
|
|
|
+ <el-button @click="wsdPrevHandle" style="width: 120px;"><!-- 上一步 -->{{$t('Edb.prev_step')}}</el-button>
|
|
|
|
+ <el-button type="primary" @click="wsdSaveHandle" style="width: 120px;margin-left: 50px;"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
@@ -174,13 +177,13 @@
|
|
width="600px" title="操作提示">
|
|
width="600px" title="操作提示">
|
|
<div class="check-fail-box">
|
|
<div class="check-fail-box">
|
|
<div>
|
|
<div>
|
|
- <div style="margin-bottom: 20px;">指标库中已存在以下指标,请勿重新输入!</div>
|
|
|
|
- <div v-for="(item,index) in existIndexList" class="exist-index-item" @click="existIndexClick(item)">
|
|
|
|
|
|
+ <div style="margin-bottom: 20px;"><!-- 指标库中已存在以下指标,请勿重新输入! -->{{$t('EtaBasePage.exist_edb_tips')}}</div>
|
|
|
|
+ <div v-for="(item,index) in existIndexList" class="exist-index-item" @click="existIndexClick(item)" :key="index">
|
|
{{ index+1+'、'+item.text }}
|
|
{{ index+1+'、'+item.text }}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="check-fail-button">
|
|
<div class="check-fail-button">
|
|
- <el-button type="primary" @click="checkFailShow=false" style="width: 120px;">知道了</el-button>
|
|
|
|
|
|
+ <el-button type="primary" @click="checkFailShow=false" style="width: 120px;">{{$t('MsgPrompt.known')}}</el-button>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
@@ -220,9 +223,9 @@ export default {
|
|
},
|
|
},
|
|
indexCodeHintText(){
|
|
indexCodeHintText(){
|
|
if(this.fromType=='wind'){
|
|
if(this.fromType=='wind'){
|
|
- return 'Wind金融终端输入“CG”会弹出代码生成器,可在代码生成器上获取其他指标的代码'
|
|
|
|
|
|
+ return this.$t('EtaBasePage.edb_wind_tip')
|
|
}else if(this.fromType=='同花顺'){
|
|
}else if(this.fromType=='同花顺'){
|
|
- return '可用Excel同花顺插件/日期序列功能,根据所选指标获取指标代码,期货和股票常用代码可在下方勾选'
|
|
|
|
|
|
+ return this.$t('EtaBasePage.edb_ifind_tip')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
},
|
|
@@ -238,22 +241,22 @@ export default {
|
|
fromArr:[],
|
|
fromArr:[],
|
|
indexCodeSelected:[],
|
|
indexCodeSelected:[],
|
|
databaseType:[
|
|
databaseType:[
|
|
- {value:'0',label:'经济数据库'},
|
|
|
|
- {value:'1',label:'日期序列'}
|
|
|
|
|
|
+ {value:'0',label:this.$t('EtaBasePage.econ_base')},
|
|
|
|
+ {value:'1',label:this.$t('EtaBasePage.date_serie')}
|
|
],
|
|
],
|
|
wsdAddStep:1,
|
|
wsdAddStep:1,
|
|
fromCode:[],
|
|
fromCode:[],
|
|
tableColums: [
|
|
tableColums: [
|
|
{
|
|
{
|
|
- label: '指标ID',
|
|
|
|
|
|
+ label: this.$t('Edb.Detail.e_id'),
|
|
key: 'EdbCode'
|
|
key: 'EdbCode'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- label: '起始时间',
|
|
|
|
|
|
+ label: this.$t('Edb.Detail.e_start_time'),
|
|
key: 'StartDate'
|
|
key: 'StartDate'
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- label: '终止时间',
|
|
|
|
|
|
+ label: this.$t('Edb.Detail.e_end_time'),
|
|
key: 'EndDate'
|
|
key: 'EndDate'
|
|
},
|
|
},
|
|
],
|
|
],
|
|
@@ -281,12 +284,12 @@ export default {
|
|
"EdbCode",
|
|
"EdbCode",
|
|
],
|
|
],
|
|
edbTableHeadData:new Map([
|
|
edbTableHeadData:new Map([
|
|
- ["ClassifyId", "所属目录"],
|
|
|
|
- ["Unit", "单位"],
|
|
|
|
- ["Frequency", "频度"],
|
|
|
|
- ["EdbName", "指标名称"],
|
|
|
|
- ["StockCode", "证券代码"],
|
|
|
|
- ["EdbCode", "指标代码"],
|
|
|
|
|
|
+ ["ClassifyId", /* "所属目录" */this.$t('EtaBasePage.belong_menu')],
|
|
|
|
+ ["Unit", /* "单位" */this.$t('Edb.Detail.e_unit')],
|
|
|
|
+ ["Frequency", /* "频度" */this.$t('Edb.Detail.e_fre')],
|
|
|
|
+ ["EdbName", /* "指标名称" */this.$t('Edb.Detail.e_name')],
|
|
|
|
+ ["StockCode", /* "证券代码" */this.$t('Edb.Detail.e_stock_code')],
|
|
|
|
+ ["EdbCode", /* "指标代码" */this.$t('Edb.Detail.e_code')],
|
|
]),
|
|
]),
|
|
BatchList:[],
|
|
BatchList:[],
|
|
options:[],
|
|
options:[],
|
|
@@ -299,8 +302,8 @@ export default {
|
|
// 同花顺常用指标类型
|
|
// 同花顺常用指标类型
|
|
THSIndexCodeType:1,
|
|
THSIndexCodeType:1,
|
|
THSIndexCodeTypeArr:[
|
|
THSIndexCodeTypeArr:[
|
|
- {value:1,label:"期货常用指标"},
|
|
|
|
- {value:2,label:"股票常用指标"}
|
|
|
|
|
|
+ {value:1,label:this.$t('EtaBasePage.future_common_edb')},
|
|
|
|
+ {value:2,label:this.$t('EtaBasePage.stock_common_edb')}
|
|
]
|
|
]
|
|
};
|
|
};
|
|
},
|
|
},
|
|
@@ -343,16 +346,19 @@ export default {
|
|
console.info(this.search_txt);
|
|
console.info(this.search_txt);
|
|
if (this.fromType == "彭博财务") {
|
|
if (this.fromType == "彭博财务") {
|
|
if (!this.search_company_txt) {
|
|
if (!this.search_company_txt) {
|
|
- this.$message.warning('请输入公司ID')
|
|
|
|
|
|
+ // this.$message.warning('请输入公司ID')
|
|
|
|
+ this.$message.warning(this.$t('EtaBasePage.no_companyid_msg'))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
if (!this.search_txt) {
|
|
if (!this.search_txt) {
|
|
- this.$message.warning('请输入指标ID')
|
|
|
|
|
|
+ // this.$message.warning('请输入指标ID')
|
|
|
|
+ this.$message.warning(this.$t('EtaBasePage.no_edbid_msg'))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
if (!this.search_txt) {
|
|
if (!this.search_txt) {
|
|
- this.$message.warning('请输入指标ID')
|
|
|
|
|
|
+ // this.$message.warning('请输入指标ID')
|
|
|
|
+ this.$message.warning(this.$t('EtaBasePage.no_edbid_msg'))
|
|
return
|
|
return
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -423,7 +429,8 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
} else {
|
|
} else {
|
|
- this.$message.warning('请输入指标ID')
|
|
|
|
|
|
+ // this.$message.warning('请输入指标ID')
|
|
|
|
+ this.$message.warning(this.$t('EtaBasePage.no_edbid_msg'))
|
|
}
|
|
}
|
|
}),
|
|
}),
|
|
addTargtHandler() {
|
|
addTargtHandler() {
|