浏览代码

指标库: 所有计算指标弹窗

Karsa 1 年之前
父节点
当前提交
6dedbfe7fd

+ 13 - 1
src/lang/commonLang.js

@@ -27,7 +27,15 @@ export default {
     require_vaild: {
       en: 'Required Field',
       zh: '必填项'
-    }
+    },
+    title_prefix_view: {
+      en: 'View',
+      zh: '查看'
+    },
+    title_prefix_edit: {
+      en: 'Edit',
+      zh: '编辑'
+    },
   },
   Table: {
     add_btn: {
@@ -216,6 +224,10 @@ export default {
       en:'Add',
       zh:'新增'
     },
+    to: {
+      en: ' To ',
+      zh:'至'
+    }
   },
   Edb,
   Chart

+ 39 - 3
src/lang/modules/EtaBase/En.js

@@ -13,7 +13,8 @@ export default {
     total_show: 'Total {limit} indicators',
     time_show: 'Creat Time',
     no_quote_edb: 'No cited calculated indicators',
-    no_quote_edb: 'No associated charts available for this indicator',
+    no_quote_chart: 'No associated charts available for this indicator',
+    refresh_ing_msg: 'Updating data...',
 
     /* 添加指标弹窗 */
     complany_pholder: 'Company ID',
@@ -59,6 +60,7 @@ export default {
     replace_all: 'Replace all',
     replace_tip: 'Tip: After the replacement, charts and calculated indicators that refer to the original indicator will be replaced by the replacement indicator.',
     replace_success_msg: 'This replacement will last for a longer period of time, confirm the replacement?',
+    replace_ing_msg: '当前正在替换中,请耐心等待',
     input_origin_vaild: 'Original Indicator can not be empty',
     input_replace_vaild: 'Indicator Replacement not be empty',
 
@@ -81,8 +83,42 @@ export default {
     formula_examp: 'Formula Example',
     func_examp: 'Function Support',
     add_segm:'Add segment',
-    create_calculate_btn: 'Generate calculation index',
-    num_overrun_msg: '添加指标个数已达上限'
+    num_overrun_msg: '添加指标个数已达上限',
+    label_move_way: 'Moving Mode',
+    label_n_val: 'N equals to',
+    label_calendar: 'Calendar',
+    label_val_type: '数据取值',
+    val_type_end: '期末值',
+    val_type_average: '平均值',
+
+    /* 指标拼接弹窗 */
+    concat_tab_1:'Direct Splicing',
+    concat_tab_2:'Year-over-Year Cumulative Value Concatenation',
+    label_concat_date: 'Splicing Date',
+    label_concat_date_before: 'Before Splicing',
+    label_concat_date_after: 'After Splicing',
+    label_concat_edb: 'Indicator to be spliced',
+    label_onyear_date: 'Year-on-Year (YoY) Indicator',
+    label_end_date:'End Date',
+
+    /* 拟合残差弹窗 */
+    label_self_var: 'Independent Variable',
+    label_depend_var: 'Dependent Variable',
+    label_fit_date: 'Fitting Time Period',
+    ph_start: 'Start Time',
+    ph_to_now: 'So Far',
+    ph_end: 'End Time',
+    move_type_tab1: 'Standard Indicator',
+    move_type_tab2: 'Lead Days',
+
+    /* 扩散指数弹窗 */
+    add_more_edb: 'Add more indicators',
+    label_diff_date: 'Diffusion Index Date',
+    label_date_tab1: 'Union of All Dates',
+    label_date_tab2: 'Union of Part of Dates',
+
+    /* 最新值弹窗 */
+    latest_val: 'latest value'
   },
 
   /* 代码运算页面 */

+ 39 - 3
src/lang/modules/EtaBase/Zh.js

@@ -1,4 +1,4 @@
-/* 指标库模块 */
+/* 指标库模块 $t('EtaBasePage').xxx*/
 
 export default {
   /* 指标库页面 */
@@ -14,6 +14,7 @@ export default {
     time_show: '创建时间',
     no_quote_chart: '该指标暂无关联图',
     no_quote_edb: '暂无引用的计算指标',
+    refresh_ing_msg: '刷新数据中...',
 
     /* 添加指标弹窗 */
     complany_pholder: '公司ID',
@@ -59,6 +60,7 @@ export default {
     replace_all: '全部替换',
     replace_tip: '提示:替换后,图表和计算指标引用到原指标的会全部由替换指标替代',
     replace_success_msg: '本次替换将持续较长时间,是否确认替换?',
+    replace_ing_msg: '当前正在替换中,请耐心等待',
     input_origin_vaild: '原指标不能为空',
     input_replace_vaild: '替换指标不能为空',
 
@@ -81,8 +83,42 @@ export default {
     formula_examp: '公式示例',
     func_examp: '函数支持',
     add_segm:'新增分段',
-    create_calculate_btn: '生成计算指标',
-    num_overrun_msg: '添加指标个数已达上限'
+    num_overrun_msg: '添加指标个数已达上限',
+    label_move_way: '移动方式',
+    label_n_val: 'N等于',
+    label_calendar: '日历',
+    label_val_type: '数据取值',
+    val_type_end: '期末值',
+    val_type_average: '平均值',
+
+    /* 指标拼接弹窗 */
+    concat_tab_1:'直接拼接',
+    concat_tab_2:'累计值同比拼接',
+    label_concat_date: '拼接日期',
+    label_concat_date_before: '拼接日期之前',
+    label_concat_date_after: '拼接日期之后',
+    label_concat_edb: '待拼接指标',
+    label_onyear_date: '同比值指标',
+    label_end_date:'截止日期',
+
+    /* 拟合残差弹窗 */
+    label_self_var: '自变量',
+    label_depend_var: '因变量',
+    label_fit_date: '拟合时间段',
+    ph_start: '开始日期',
+    ph_to_now: '至今',
+    ph_end: '结束日期',
+    move_type_tab1: '标准指标',
+    move_type_tab2: '领先天数',
+
+    /* 扩散指数弹窗 */
+    add_more_edb: '添加更多指标',
+    label_diff_date: '扩散指标日期',
+    label_date_tab1: '全部日期并集',
+    label_date_tab2: '部分日期并集',
+
+    /* 最新值弹窗 */
+    latest_val: '最新值'
 
   },
 

+ 144 - 4
src/lang/modules/EtaBase/commonLang.js

@@ -88,6 +88,18 @@ export default {
     zh:'公式说明',
     en:'Formula Specification'
   },
+  choose_edb: {
+    zh:'选择指标',
+    en:'Select indicators'
+  },
+  have_choose_edb: {
+    zh:'已选指标',
+    en:'Selected Indicator'
+  },
+  calculate_ing: {
+    zh:'计算中...',
+    en:'Calculating...'
+  },
 
   /* 指标相关字段 */
   Detail: {
@@ -163,6 +175,22 @@ export default {
       zh:'操作',
       en:'Operation'
     },
+    e_en_unit: {
+      zh:'英文单位',
+      en:'English Unit'
+    },
+    e_en_name: {
+      zh:'英文指标名称',
+      en:'Enligh Indicator Name'
+    },
+    predict_date: {
+      zh:'预测日期',
+      en:'Predictive Date'
+    },
+    predict_val: {
+      zh:'预测值',
+      en:'Predictive Value'
+    }
   },
 
   /* 单位 */
@@ -260,7 +288,7 @@ export default {
       en: 'Calculation'
     },
     to_month_quarter: {
-      zh: '累计值转月/季值',
+      zh: '累计值转月/季值',
       en: 'Convert Cumulative Values to Monthly/Quarterly'
     },
     to_month: {
@@ -317,7 +345,7 @@ export default {
     },
     down_conver: {
       zh: '降频',
-      en: 'Downconversion'
+      en: 'Down-conversion'
     },
     diff_index: {
       zh: '扩散指数',
@@ -327,6 +355,10 @@ export default {
       zh: '累计值',
       en: 'Cumulative Value'
     },
+    cumulate_oneyear: {
+      zh: '年初至今累计值',
+      en: 'Year-to-date Cumulative Value'
+    },
     ex_smooth: {
       zh: '指数修匀',
       en: 'Exponential Smoothing'
@@ -360,8 +392,8 @@ export default {
       en: 'N can not be empty'
     },
     move_msg: {
-      zh: '移动方式参数不能为空',
-      en: 'Parameter  can not be empty'
+      zh: '移动方式不能为空',
+      en: 'Moving mode can not be empty'
     },
     calendar_msg: {
       zh: '日历不能为空',
@@ -371,6 +403,102 @@ export default {
       zh: 'alpha值不能为空',
       en: 'Alpha can not be empty'
     },
+    alpha_value_vaild: {
+      zh: '请输入>0,<1的数值',
+      en: 'Please enter a value greater than 0 and less than 1'
+    },
+    no_edb: {
+      zh: '指标不能为空',
+      en: 'The indicator can not be empty'
+    },
+    date_msg: {
+      zh: '日期不能为空',
+      en: 'Date can not be empty'
+    },
+    val_msg: {
+      zh: '值不能为空',
+      en: 'Value can not be empty'
+    },
+    common_msg: {
+      zh: '{label}不能为空',
+      en: '{label} can not be empty'
+    }
+  },
+
+  /* 计算按钮 */
+  CalculateBtns: {
+    calculate: {
+      zh: '生成计算指标',
+      en: 'Generate calculation index'
+    },
+    to_month: {
+      zh: '转月值计算',
+      en: 'Month Convertion Calculation'
+    },
+    to_quarter: {
+      zh: '转季值计算',
+      en: 'Season Convertion Calculation'
+    },
+    on_year: {
+      zh: '同比值计算',
+      en: 'YoY Calculation'
+    },
+    differ: {
+      zh: '同差值计算',
+      en: 'Difference Value Calculation'
+    },
+    n_move_average: {
+      zh: '移动平均计算',
+      en: 'Moving Average Calculation'
+    },
+    n_rate: {
+      zh: '环比值计算',
+      en: 'MoM Growth Rate Calculation'
+    },
+    n_differ: {
+      zh: '环差值计算',
+      en: 'PoP Difference Calculation'
+    },
+    up_conver: {
+      zh: '升频计算',
+      en: 'Up-conversion Calculation'
+    },
+    super_season: {
+      zh: '超季节性计算',
+      en: 'Super-seasonality Calculation'
+    },
+    fit_residu: {
+      zh: '拟合残差计算',
+      en: 'Fit Residual Calculation'
+    },
+    annual: {
+      zh: '年化计算',
+      en: 'Annualization Calculation '
+    },
+    down_conver: {
+      zh: '降频计算',
+      en: 'Downconversion Calculation'
+    },
+    diff_index: {
+      zh: '扩散指数计算',
+      en: 'Diffusion Index Calculation'
+    },
+    cumulate: {
+      zh: '累计值计算',
+      en: 'Cumulative Value Calculation '
+    },
+    cumulate_oneyear: {
+      zh: '年初至今计算',
+      en: 'Year-to-date Calculation'
+    },
+    ex_smooth: {
+      zh: '指数修匀计算',
+      en: 'Exponential Smoothing Calculation'
+    },
+    day_mean: {
+      zh: '日均值计算',
+      en: 'Daily Average Calculation'
+    },
   },
 
   /* 通用相关pholder */
@@ -390,6 +518,18 @@ export default {
     input_fre: {
       zh: '请选择频度',
       en: 'Please input frequency'
+    },
+    input_n_val: {
+      zh: '请输入N值',
+      en: 'Please input N value'
+    },
+    input_alpha_val: {
+      zh: '请输入alpha值',
+      en: 'Please input alpha'
+    },
+    input_common: {
+      zh: '请输入{label}',
+      en: 'Please input {label}'
     }
   },
   

+ 2 - 2
src/views/dataEntry_manage/codecount/compoments/dataTable.vue

@@ -23,8 +23,8 @@ export default {
     columns: {
       type: Array,
       default: [
-        { title: this.$t('CodeCountPage.res_show_col1') },
-        { title: this.$t('CodeCountPage.res_show_col2')  },
+        { title: '日期' },
+        { title: '值'  },
       ],
     },
     data: {

+ 3 - 3
src/views/dataEntry_manage/components/setEnNameDia.vue

@@ -83,15 +83,15 @@
           </el-collapse>
         </div>
 			</el-form>
-			<el-form v-else label-width="110px" >
+			<el-form v-else label-width="120px" >
 				<el-form-item :label="item.label+':'" :prop="item.key" v-for="item in copyFormData" :key="item.key">
 					<span v-show="item.notEdit">{{item.value}}</span>
           <el-input v-show="!item.notEdit" v-model="item.value" :placeholder="item.placeholder" style="width: 100%;"></el-input>
 				</el-form-item>
 			</el-form>
       <div class="btn-bottom">
-        <el-button type="primary" @click="saveEnName" style="margin-right:20px">确定</el-button>
-        <el-button @click="cancel">取消</el-button>
+        <el-button type="primary" @click="saveEnName" style="margin-right:20px"><!-- 确定 -->{{$t('Dialog.confirm_btn')}}</el-button>
+        <el-button @click="cancel"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
       </div>
 		</el-dialog>
 </template>

+ 58 - 56
src/views/dataEntry_manage/databaseComponents/batchComptedDialog.vue

@@ -31,7 +31,7 @@
 						v-loadMore="searchLoad"
 						:filterable="!list.target"
 						clearable
-						placeholder="请输入指标名称"
+						:placeholder="$t('Edb.InputHolderAll.input_name')"
 						style="width: 400px"
 						@change="chooseTarget"
 						@clear="clearHandle(index)"
@@ -63,14 +63,14 @@
 			</ul>
       <span class="add-icon" @click="addTargetHandle">
 				<i class="el-icon-circle-plus-outline" style="color: #5882ef; font-size: 16px"/>
-				添加更多指标
+				<!-- 添加更多指标 --> {{$t('EtaBasePage.add_more_edb')}}
 			</span>
       <ul class="form-ul">
         <li class="form-li" v-for="(list, index) in targetList" :key="index">
           <span class="li-tag">{{ list.tag }}</span>
           <el-input
 						v-model="list.targetName"
-						placeholder="请输入指标名称"
+						:placeholder="$t('Edb.InputHolderAll.input_name')"
             style="margin: 0 10px;width:25%"
 					/>
           <el-cascader
@@ -78,7 +78,7 @@
 						:options="options"
 						:props="levelProps"
 						clearable
-						placeholder="请选择指标目录"
+						:placeholder="$t('Edb.InputHolderAll.input_menu')"
             style="width: 25%"
 					/>
 					<selectUnit 
@@ -90,13 +90,13 @@
             v-if="[8,12,13,39,43,44].includes(type)"
             v-model="list.n_num"
             style="width: 20%;margin-right:10px"
-            placeholder="请输入N数值"
+            :placeholder="$t('Edb.InputHolderAll.input_n_val')"
             type="number"
             @change="NchangeHandle(list.tag)"
           />
           <el-select
 						v-model="list.frequency"
-						placeholder="请选择频率"
+						:placeholder="$t('Edb.InputHolderAll.input_fre')"
 						style="width: 20%"
 						clearable
             :disabled="[6,7,32,33,5,42,61,64,63,66,75].includes(type)"
@@ -119,16 +119,16 @@
 				style="margin-right: 20px"
 				@click="saveHandle"
 				:loading="loading"
-				>{{loading ? '计算中...' : saveBtnMap.get(type)}}</el-button
+				>{{loading ? $t('Edb.calculate_ing') : saveBtnMap.get(type)}}</el-button
 			>
-			<el-button type="primary" plain @click="cancelHandle('cancel')">取消</el-button>
+			<el-button type="primary" plain @click="cancelHandle('cancel')"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
 		</div>
 		<el-popover
 			placement="top-start"
 			width="500"
 			trigger="click">
 			<p style="padding:30px;line-height:25px;" v-html="$parent.tips.get(type)"/>
-			<span slot="reference" class="tip-label">公式说明</span>
+			<span slot="reference" class="tip-label"><!-- 公式说明 -->{{$t('Edb.formula_instru')}}</span>
 		</el-popover>
 	</el-dialog>
 </template>
@@ -137,6 +137,7 @@
 import { dataBaseInterface } from '@/api/api.js';
 import * as preDictEdbInterface from '@/api/modules/predictEdbApi.js';
 import { unitArr } from '@/utils/defaultOptions';
+import { frequencyArr } from './util'
 
 const tag_arr = [];
 for(let i=0;i<26;i++) tag_arr.push(String.fromCharCode(65+i));
@@ -163,9 +164,9 @@ export default {
 
 			let isEta = this.$route.path==='/database';
 			this.sourceList = [5,61,42,64].includes(this.type)
-				? [{ label: '累计值转月值',key:isEta?5:42 },{ label: '累计值转季值',key: isEta?61:64 }]
+				? [{ label: /* '累计值转月值' */this.$t('Edb.CalculatesAll.to_month'),key:isEta?5:42 },{ label: /* '累计值转季值' */this.$t('Edb.CalculatesAll.to_quarter'),key: isEta?61:64 }]
 				: [62,63,65,66].includes(this.type)
-				? [{ label: '累计值',key: isEta?62:65 },{ label: '年初至今累计值',key: isEta?63:66 }]
+				? [{ label: /* '累计值' */this.$t('Edb.CalculatesAll.cumulate'),key: isEta?62:65 },{ label: /* '年初至今累计值' */this.$t('Edb.CalculatesAll.cumulate_oneyear'),key: isEta?63:66 }]
 				: []
 
 		}
@@ -200,50 +201,50 @@ export default {
       ],
 
 			titleMap: new Map([
-				[6,'同比值'],
-				[7,'同差值'],
-				[8,'N数值移动平均计算'],
-				[12,'N数值环比值'],
-				[13,'N数值环差值'],
-				[14,'升频'],
-				[5,'累计值转月/季值'],
-				[61,'累计值转月/季值'],
-				[62,'累计值'],
-				[63,'累计值'],
-				[32,'同比值'],
-				[33,'同差值'],
-				[39,'N数值移动平均计算'],
-				[43,'N数值环比值'],
-				[44,'N数值环差值'],
-				[45,'升频'],
-				[42,'累计值转月/季值'],
-				[64,'累计值转月/季值'],
-				[65,'累计值'],
-				[66,'累计值'],
-				[75,'日均值']
+				[6,this.$t('Edb.CalculatesAll.on_year')],/* '同比值' */
+				[7,this.$t('Edb.CalculatesAll.differ')],/* '同差值' */
+				[8,this.$t('Edb.CalculatesAll.n_move_average')],/* 'N数值移动平均计算' */
+				[12,this.$t('Edb.CalculatesAll.n_rate')],/* 'N数值环比值' */
+				[13,this.$t('Edb.CalculatesAll.n_differ')],/* 'N数值环差值'  */
+				[14,this.$t('Edb.CalculatesAll.up_conver')],/* 升频 */
+				[5,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[61,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[62,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[63,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[32,this.$t('Edb.CalculatesAll.on_year')],/* '同比值' */
+				[33,this.$t('Edb.CalculatesAll.differ')],/* '同差值' */
+				[39,this.$t('Edb.CalculatesAll.n_move_average')],/* 'N数值移动平均计算' */
+				[43,this.$t('Edb.CalculatesAll.n_rate')],/* 'N数值环比值' */
+				[44,this.$t('Edb.CalculatesAll.n_differ')],/* 'N数值环差值'  */
+				[45,this.$t('Edb.CalculatesAll.up_conver')],/* 升频 */
+				[42,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[64,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[65,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[66,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[75,this.$t('Edb.CalculatesAll.day_mean')]/* '日均值' */
 			]),//标题
 			saveBtnMap: new Map([
-				[6,'同比值计算'],
-				[7,'同差值计算'],
-				[8,'移动平均计算'],
-				[12,'环比值计算'],
-				[13,'环差值计算'],
-				[14,'升频计算'],
-				[32,'同比值计算'],
-				[33,'同差值计算'],
-				[39,'移动平均计算'],
-				[43,'环比值计算'],
-				[44,'环差值计算'],
-				[45,'升频计算'],
-				[5,'转月值计算'],
-				[61,'转季值计算'],
-				[62,'累计值计算'],
-				[63,'年初至今计算'],
-				[42,'转月值计算'],
-				[64,'转季值计算'],
-				[65,'累计值计算'],
-				[66,'年初至今计算'],
-				[75,'日均值计算']
+				[6,this.$t('Edb.CalculateBtns.on_year')],/* '同比值计算' */
+				[7,this.$t('Edb.CalculateBtns.differ')],/* '同差值计算' */
+				[8,this.$t('Edb.CalculateBtns.n_move_average')],/* '移动平均计算' */
+				[12,this.$t('Edb.CalculateBtns.n_rate')],/* '环比值计算' */
+				[13,this.$t('Edb.CalculateBtns.n_differ')],/* '环差值计算' */
+				[14,this.$t('Edb.CalculateBtns.up_conver')],/* '升频计算' */
+				[32,this.$t('Edb.CalculateBtns.on_year')],/* '同比值计算' */
+				[33,this.$t('Edb.CalculateBtns.differ')],/* '同差值计算' */
+				[39,this.$t('Edb.CalculateBtns.n_move_average')],/* '移动平均计算' */
+				[43,this.$t('Edb.CalculateBtns.n_rate')],/* '环比值计算' */
+				[44,this.$t('Edb.CalculateBtns.n_differ')],/* '环差值计算' */
+				[45,this.$t('Edb.CalculateBtns.up_conver')],/* '升频计算' */
+				[5,this.$t('Edb.CalculateBtns.to_month')],/* '转月值计算' */
+				[61,this.$t('Edb.CalculateBtns.to_quarter')],/* '转季值计算'  */
+				[62,this.$t('Edb.CalculateBtns.cumulate')],/* '累计值计算' */
+				[63,this.$t('Edb.CalculateBtns.cumulate_oneyear')],/* '年初至今计算' */
+				[42,this.$t('Edb.CalculateBtns.to_month')],/* '转月值计算' */
+				[64,this.$t('Edb.CalculateBtns.to_quarter')],/* '转季值计算'  */
+				[65,this.$t('Edb.CalculateBtns.cumulate')],/* '累计值计算' */
+				[66,this.$t('Edb.CalculateBtns.cumulate_oneyear')],/* '年初至今计算' */
+				[75,this.$t('Edb.CalculateBtns.day_mean')],/* '日均值计算' */
 			]),//保存文案
 			unitArr,
 			options: [],
@@ -253,7 +254,7 @@ export default {
 				children: 'Children',
 				checkStrictly: true
 			},
-			frequencyArr: ['日度', '周度','旬度', '月度', '季度', '年度'],
+			frequencyArr,
 			fre_options: ['天','周','月','季','年'],
 			moveTypeOpions: [
 				{
@@ -338,7 +339,7 @@ export default {
 
     /* 添加额外的指标列 */
 		addTargetHandle() {
-      if(this.targetList.length === 26) this.$message.warning('添加指标个数已达上限')
+      if(this.targetList.length === 26) this.$message.warning(this.$t('EtaBasePage.num_overrun_msg'))
 			let tag = this.targetList[this.targetList.length-1].tag;
 			let index = tag_arr.findIndex(item => item === tag);
 			const item = {
@@ -472,7 +473,8 @@ export default {
         })
         this.dealFailHandle(Fail)
       }else {
-        this.$message.success('添加成功');
+        // this.$message.success('添加成功');
+        this.$message.success(this.$t('MsgPrompt.add_msg'));
         this.init();
         this.$emit('addCallBack','add',{ code:Success[0].UniqueCode,id:Success[0].EdbInfoId,classifyId:Success[0].ClassifyId});
       }

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

@@ -217,7 +217,7 @@
 				@click="saveHandle"
 				:loading="dataloading"
 				v-if="title==='计算指标'"
-				><!-- 生成计算指标 -->{{$t('EtaBasePage.create_calculate_btn')}}</el-button
+				><!-- 生成计算指标 -->{{$t('Edb.CalculateBtns.calculate')}}</el-button
 			>
 			<el-button
 				type="primary"

+ 27 - 26
src/views/dataEntry_manage/databaseComponents/diffusionIndexDia.vue

@@ -15,7 +15,7 @@
 				:src="$icons.computed"
 				style="color: #fff; width: 16px; height: 16px; margin-right: 5px"
 			/>
-			<span style="font-size: 16px">扩散指数</span>
+			<span style="font-size: 16px"><!-- 扩散指数 -->{{$t('Edb.CalculatesAll.diff_index')}}</span>
 		</div>
 		<div class="dialog-main">
       <div class="main-top">
@@ -27,7 +27,7 @@
               v-loadMore="searchLoad"
               :filterable="!list.target"
               clearable
-              placeholder="请输入指标名称"
+              :placeholder="$t('Edb.InputHolderAll.input_name')"
               style="width: 400px"
               @change="chooseTarget"
               @clear="clearHandle(index)"
@@ -50,69 +50,69 @@
               @click="delTarget(index)"
             />
             <span class="target-date" v-if="list.start_date">{{
-              `${list.start_date}${list.end_date}`
+              `${list.start_date}${$t('Common.to')}${list.end_date}`
             }}</span>
           </li>
         </ul>
         <span class="add-icon" @click="addTargetHandle">
           <i class="el-icon-circle-plus-outline" style="color: #5882ef; font-size: 16px"/>
-          添加更多指标
+          {{$t('EtaBasePage.add_more_edb')}}
         </span>
 				<div class="date_select_wrapper">
-					<label style="flex-shrink:0">扩散指标日期</label>
+					<label style="flex-shrink:0"><!-- 扩散指标日期 -->{{$t('EtaBasePage.label_diff_date')}}</label>
 					<el-radio-group 
 						v-model="formData.date_type" 
 						style="margin: 0 30px;flex-shrink:0"
 						@change="initSelectHandle"
 						:disabled="operationForm.view"
 					>
-						<el-radio :label="1">全部日期并集</el-radio>
-						<el-radio :label="2">部分日期并集</el-radio>
+						<el-radio :label="1">{{$t('EtaBasePage.label_date_tab1')}}</el-radio>
+						<el-radio :label="2">{{$t('EtaBasePage.label_date_tab2')}}</el-radio>
 					</el-radio-group>
 					<el-checkbox-group v-model="formData.select_date" v-if="formData.date_type===2" :disabled="operationForm.view">
 						<el-checkbox v-for="item in targetList" :key="item.target"  :label="item.tag" style="margin: 0 15px 10px 0" @change="setConcatDate">{{item.tag}}</el-checkbox>
 					</el-checkbox-group>
 				</div>
-				<div class="concat-date" v-if="formData.date_type===2 && formData.select_date.length && concat_date.start">{{concat_date.start}}{{concat_date.end}}</div>
+				<div class="concat-date" v-if="formData.date_type===2 && formData.select_date.length && concat_date.start">{{concat_date.start}} {{$t('Common.to')}} {{concat_date.end}}</div>
       </div>
 			<el-form
         ref="form"
 				inline
         class="form-cont"
         label-position="left"
-        label-width="80px"
+        label-width="120px"
         :model="formData"
         :rules="formRules"
         :disabled="operationForm.view"
       >
-        	<el-form-item label="指标名称" prop="targetName" style="margin-right: 40px;">
+        	<el-form-item :label="$t('Edb.Detail.e_name')" prop="targetName" style="margin-right: 40px;">
             <el-input
               v-model="formData.targetName"
               style="width: 340px"
-              placeholder="请输入指标名称"
+              :placeholder="$t('Edb.InputHolderAll.input_name')"
             />
           </el-form-item>
-          <el-form-item label="单位" prop="unit">
-			<selectUnit 
-			  	v-model="formData.unit" 
-				style="width:340px" 
-				:disabled="!operationForm.edb_id&&[6,7].includes(type)"
-			/>
+          <el-form-item :label="$t('Edb.Detail.e_unit')" prop="unit">
+						<selectUnit 
+								v-model="formData.unit" 
+							style="width:340px" 
+							:disabled="!operationForm.edb_id&&[6,7].includes(type)"
+						/>
           </el-form-item>
-          <el-form-item label="指标目录" prop="menu" style="margin-right: 40px;">
+          <el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu" style="margin-right: 40px;">
             <el-cascader
               v-model="formData.menu"
               :options="options"
               :props="levelProps"
               clearable
-              placeholder="请选择指标目录"
+              :placeholder="$t('Edb.InputHolderAll.input_menu')"
 							style="width: 340px"
             />
           </el-form-item>
-          <el-form-item label="频度" prop="frequency">
+          <el-form-item :label="$t('Edb.Detail.e_fre')" prop="frequency">
             <el-select
               v-model="formData.frequency"
-              placeholder="请选择频度"
+              :placeholder="$t('Edb.InputHolderAll.input_fre')"
               style="width: 340px"
               clearable
             >
@@ -133,9 +133,9 @@
 				style="margin-right: 20px"
 				@click="saveHandle"
 				:loading="loading"
-				>{{loading ? '计算中...' : operationForm.edb_id ? '保存' : '扩散指数计算'}}</el-button
+				>{{loading ? $t('Edb.calculate_ing') : operationForm.edb_id ? $t('Dialog.confirm_save_btn') : $t('Edb.CalculateBtns.diff_index')}}</el-button
 			>
-			<el-button type="primary" plain @click="cancelHandle('cancel')">取消</el-button>
+			<el-button type="primary" plain @click="cancelHandle('cancel')"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
 		</div>
 		<el-popover
 			placement="top-start"
@@ -143,7 +143,7 @@
 			trigger="click">
 			<p v-if="isPredict" style="padding:30px;line-height:25px;" v-html="$parent.tips.get(type)"/>
 			<p v-else style="padding:30px;line-height:25px;" v-html="$parent.tips.get(type)"/>
-			<span slot="reference" class="tip-label">公式说明</span>
+			<span slot="reference" class="tip-label"><!-- 公式说明 -->{{$t('Edb.formula_instru')}}</span>
 		</el-popover>
 	</el-dialog>
 </template>
@@ -153,6 +153,7 @@ import { dataBaseInterface } from '@/api/api.js';
 import { formRules } from './util';
 import * as preDictEdbInterface from '@/api/modules/predictEdbApi.js';
 import { unitArr } from '@/utils/defaultOptions';
+import { frequencyArr } from './util'
 const tag_arr = [];
 for(let i=0;i<26;i++) tag_arr.push(String.fromCharCode(65+i));
 export default {
@@ -227,7 +228,7 @@ export default {
 				children: 'Children',
 				checkStrictly: true
 			},
-			frequencyArr: ['日度', '周度','旬度', '月度', '季度', '年度'],
+			frequencyArr,
 			fre_options: ['天','周','月','季','年'],
 			loading:false,
 			
@@ -368,7 +369,7 @@ export default {
 
 		/* 添加指标 */
 		addTargetHandle() {
-			if(this.targetList.length === 26) return this.$message.warning('添加指标个数已达上限')
+			if(this.targetList.length === 26) return this.$message.warning(this.$t('EtaBasePage.num_overrun_msg'))
 			let tag = this.targetList[this.targetList.length-1].tag;
 			let index = tag_arr.findIndex(item => item === tag);
 			const item = {

+ 33 - 32
src/views/dataEntry_manage/databaseComponents/fittingResidueDia.vue

@@ -15,26 +15,26 @@
 				:src="$icons.computed"
 				style="color: #fff; width: 16px; height: 16px; margin-right: 5px"
 			/>
-			<span style="font-size: 16px">拟合残差</span>
+			<span style="font-size: 16px"><!-- 拟合残差 -->{{$t('Edb.CalculatesAll.fit_residu')}}</span>
 		</div>
 		<div class="dialog-main">
 			<el-form
         ref="form"
         class="form-cont"
         label-position="left"
-        label-width="110px"
+        label-width="120px"
         :model="formData"
         :rules="formRules"
         :disabled="operationForm.view"
       >
 			
-        <el-form-item label="自变量(x)" prop="self_variate">
+        <el-form-item :label="$t('EtaBasePage.label_self_var')+'(x)'" prop="self_variate">
           <el-select
             v-model="formData.self_variate"
             v-loadMore="searchLoad"
             :filterable="!formData.self_variate"
             clearable
-            placeholder="请输入指标名称"
+            :placeholder="$t('Edb.InputHolderAll.input_name')"
             style="width: 70%"
             remote
             :remote-method="getTarget"
@@ -56,8 +56,8 @@
         </el-form-item>
         <el-form-item label="" style="display: block;">
           <el-radio-group v-model="formData.self_move_type" style="margin-right: 10px" @change="() => {getCorrelationIndex();formData.self_move_val=''}">
-            <el-radio :label="0">标准指标</el-radio>
-            <el-radio :label="1">领先天数</el-radio>
+            <el-radio :label="0"><!-- 标准指标 -->{{$t('EtaBasePage.move_type_tab1')}}</el-radio>
+            <el-radio :label="1"><!-- 领先天数 -->{{$t('EtaBasePage.move_type_tab2')}}</el-radio>
           </el-radio-group>
           <template v-if="formData.self_move_type !== 0">
             <el-input
@@ -72,13 +72,13 @@
           </template>  
         </el-form-item>
 
-        <el-form-item label="因变量(y)" prop="depend_variate">
+        <el-form-item :label="$t('EtaBasePage.label_depend_var')+'(y)'" prop="depend_variate">
           <el-select
             v-model="formData.depend_variate"
             v-loadMore="searchLoad"
             :filterable="!formData.depend_variate"
             clearable
-            placeholder="请输入指标名称"
+            :placeholder="$t('Edb.InputHolderAll.input_name')"
             style="width: 70%"
             remote
             :remote-method="getTarget"
@@ -99,19 +99,19 @@
           <span v-if="formData.depend_variate" style="color: #409EFF;margin-left: 20px;">{{formData.depend_edb_date[0]+'至'+ formData.depend_edb_date[1]}}</span>
         </el-form-item>
 
-        <el-form-item label="拟合时间段" prop="date">
+        <el-form-item :label="$t('EtaBasePage.label_fit_date')" prop="date">
           <el-date-picker
             v-model="formData.date[0]"
             range-separator="至"
-            placeholder="开始日期"
+            :placeholder="$t('EtaBasePage.ph_start')"
             value-format="yyyy-MM-dd"
 						style="width: 25%"
             @change="changeDate"
           />
-					<span style="margin: 0 10px"></span>
+					<span style="margin: 0 10px">{{$t('Common.to')}}</span>
           <el-date-picker
             v-model="formData.date[1]"
-            placeholder="结束日期"
+            :placeholder="$t('EtaBasePage.ph_end')"
             value-format="yyyy-MM-dd"
 						style="width: 25%"
             @change="changeDate"
@@ -119,26 +119,26 @@
           />
 					<span v-if="correlationStr" class="editsty" style="margin-left: 20px">{{correlationStr}}</span>
         </el-form-item>
-        <el-form-item label="指标名称" prop="edb_name" class="target-form-cont">
+        <el-form-item :label="$t('Edb.Detail.e_name')" prop="edb_name" class="target-form-cont">
           <el-input
           v-model="formData.edb_name"
           style="width: 70%"
-          placeholder="指标名称"></el-input>
+          :placeholder="$t('Edb.InputHolderAll.input_name')"></el-input>
         </el-form-item>
-        <el-form-item label="指标目录" prop="menu">
+        <el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
           <el-cascader
             v-model="formData.menu"
             :options="options"
             :props="levelProps"
             style="width:70%" 
             clearable
-            placeholder="请选择指标目录"
+            :placeholder="$t('Edb.InputHolderAll.input_menu')"
           />
         </el-form-item>
-        <el-form-item label="频度" prop="frequency">
+        <el-form-item :label="$t('Edb.Detail.e_fre')" prop="frequency">
           <el-select 
           v-model="formData.frequency" 
-          placeholder="请选择频度" 
+          :placeholder="$t('Edb.InputHolderAll.input_fre')"
           style="width:70%" 
           clearable>
             <el-option
@@ -149,8 +149,8 @@
             </el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="单位" prop="unit">
-			<selectUnit v-model="formData.unit" style="width:70%" />
+        <el-form-item :label="$t('Edb.Detail.e_unit')" prop="unit">
+					<selectUnit v-model="formData.unit" style="width:70%" />
         </el-form-item>
 		  </el-form>
 		</div>
@@ -160,9 +160,9 @@
 				style="margin-right: 20px"
 				@click="saveHandle"
 				:loading="loading"
-				>{{loading ? '计算中...' : operationForm.edb_id ? '保存' : '拟合残差计算'}}</el-button
+				>{{loading ? $t('Edb.calculate_ing') : operationForm.edb_id ? $t('Dialog.confirm_save_btn') : $t('Edb.CalculateBtns.fit_residu')}}</el-button
 			>
-			<el-button type="primary" plain @click="cancelHandle('cancel')">取消</el-button>
+			<el-button type="primary" plain @click="cancelHandle('cancel')">{{$t('Dialog.cancel_btn')}}</el-button>
 		</div>
 		<el-popover
 			placement="top-start"
@@ -170,7 +170,7 @@
 			trigger="click">
 			<p v-if="isPredict" style="padding:30px;line-height:25px;" v-html="$parent.tips.get(50)"/>
 			<p v-else style="padding:30px;line-height:25px;" v-html="$parent.tips.get(37)"/>
-			<span slot="reference" class="tip-label">公式说明</span>
+			<span slot="reference" class="tip-label"><!-- 公式说明 -->{{$t('Edb.formula_instru')}}</span>
 		</el-popover>
 	</el-dialog>
 </template>
@@ -179,6 +179,7 @@
 import { dataBaseInterface } from '@/api/api.js';
 import * as preDictEdbInterface from '@/api/modules/predictEdbApi.js';
 import { unitArr } from '@/utils/defaultOptions';
+import { frequencyArr } from './util'
 export default {
 	name:'',
 	props: {
@@ -251,25 +252,25 @@ export default {
 			},
 			formRules: {
         self_variate:[
-					{ required: true, message: '自变量不能为空', trigger: 'change' },
+					{ required: true, message: this.$t('Edb.Valids.common_msg',{label: this.$t('EtaBasePage.label_self_var')}), trigger: 'change' },
 				],
         depend_variate:[
-					{ required: true, message: '因变量不能为空', trigger: 'change' },
+					{ required: true, message: this.$t('Edb.Valids.common_msg',{label: this.$t('EtaBasePage.label_depend_var')}), trigger: 'change' },
 				],
         date:[
-					{ required: true, message: '拟合时间段不能为空', trigger: 'change' },
+					{ required: true, message: this.$t('Edb.Valids.common_msg',{label: this.$t('EtaBasePage.label_fit_date')}), trigger: 'change' },
 				],
         edb_name:[
-					{ required: true, message: '指标名称不能为空', trigger: 'change' },
+					{ required: true, message: this.$t('Edb.Valids.name_msg'), trigger: 'change' },
 				],
 				menu:[
-					{ required: true, message: '所属目录不能为空', trigger: 'change' },
+					{ required: true, message: this.$t('Edb.Valids.menu_msg'), trigger: 'change' },
 				],
 				frequency:[
-					{ required: true, message: '频度不能为空', trigger: 'change' },
+					{ required: true, message: this.$t('Edb.Valids.fre_msg'), trigger: 'change' },
 				],
 				unit:[
-					{ required: true, message: '单位不能为空', trigger: ['blur','change'] },
+					{ required: true, message: this.$t('Edb.Valids.unit_msg'), trigger: ['blur','change'] },
 				]
       },
 			unitArr,
@@ -280,7 +281,7 @@ export default {
 				children: 'Children',
 				checkStrictly: true
 			},
-			frequencyArr: ['日度', '周度','旬度', '月度', '季度', '年度'],
+			frequencyArr,
 			fre_options: ['天','周','月','季','年'],
 			loading:false,
 			
@@ -290,7 +291,7 @@ export default {
 
 			endDateOptions: {
 				shortcuts: [{
-					text: '至今',
+					text: this.$t('EtaBasePage.ph_to_now'),
 					onClick(picker) {
 						const date = new Date();
 						picker.$emit('pick',date)

+ 107 - 59
src/views/dataEntry_manage/databaseComponents/jointTargetDia.vue

@@ -15,7 +15,7 @@
         :src="$icons.computed"
         style="color: #fff; width: 16px; height: 16px; marginright: 5px"
       />
-      <span style="font-size: 16px">&nbsp;指标拼接</span>
+      <span style="font-size: 16px">&nbsp;<!-- 指标拼接 -->{{$t('Edb.CalculatesAll.splic')}}</span>
     </div>
 
 		<ul class="label-cont" v-if="!params.view && !params.edb_id">
@@ -26,28 +26,28 @@
       ref="concatForm"
       class="form-cont"
       label-position="left"
-      label-width="110px"
+      label-width="120px"
       :model="formData"
       :rules="formRules"
 			:disabled="params.view"
     >
 			<template v-if="default_type === 1">
-				<el-form-item label="拼接日期" prop="date">
+				<el-form-item :label="$t('EtaBasePage.label_concat_date')" prop="date">
 					<el-date-picker
 					v-model="formData.date"
 					value-format="yyyy-MM-dd"
 					type="date"
-					placeholder="选择日期"
+					:placeholder="$t('EtaBasePage.input_date_msg')"
 					style="width: 70%">
 				</el-date-picker>
 				</el-form-item>
-				<el-form-item label="拼接日期之前" prop="pre_edb">
+				<el-form-item :label="$t('EtaBasePage.label_concat_date_before')" prop="pre_edb">
 					<el-select
 						v-model="formData.pre_edb"
 						v-loadMore="searchLoad"
 						:filterable="!formData.pre_edb"
 						clearable
-						placeholder="指标ID/指标名称"
+						:placeholder="$t('EtaBasePage.search_placeholder')"
 						style="width: 70%"
 						:disabled="params.view"
 						remote
@@ -64,15 +64,15 @@
 						>
 						</el-option>
 					</el-select>
-					<span v-if="formData.pre_edb">(起始日期:{{ searchOptions.find(item => item.EdbInfoId === formData.pre_edb) ? searchOptions.find(item => item.EdbInfoId === formData.pre_edb).StartDate : ''}})</span>
+					<span v-if="formData.pre_edb">({{$t('Edb.Detail.e_start_time')}}:{{ searchOptions.find(item => item.EdbInfoId === formData.pre_edb) ? searchOptions.find(item => item.EdbInfoId === formData.pre_edb).StartDate : ''}})</span>
 				</el-form-item>
-				<el-form-item label="拼接日期之后" prop="after_edb">
+				<el-form-item :label="$t('EtaBasePage.label_concat_date_after')" prop="after_edb">
 					<el-select
 							v-model="formData.after_edb"
 							v-loadMore="searchLoad"
 							:filterable="!formData.after_edb"
 							clearable
-							placeholder="指标ID/指标名称"
+							:placeholder="$t('EtaBasePage.search_placeholder')"
 							style="width: 70%"
 							:disabled="params.view"
 							remote
@@ -89,17 +89,17 @@
 							>
 							</el-option>
 						</el-select>
-						<span v-if="formData.after_edb">(最新日期:{{ searchOptions.find(item => item.EdbInfoId === formData.after_edb) ? searchOptions.find(item => item.EdbInfoId === formData.after_edb).EndDate : ''}})</span>
+						<span v-if="formData.after_edb">({{$t('Edb.Detail.e_latest_date')}}:{{ searchOptions.find(item => item.EdbInfoId === formData.after_edb) ? searchOptions.find(item => item.EdbInfoId === formData.after_edb).EndDate : ''}})</span>
 				</el-form-item>
 			</template>
 			<template v-else>
-				<el-form-item label="待拼接指标" prop="old_stay_edb">
+				<el-form-item :label="$t('EtaBasePage.label_concat_edb')" prop="old_stay_edb">
 					<el-select
 						v-model="formData.old_stay_edb"
 						v-loadMore="searchLoad2"
 						:filterable="!formData.old_stay_edb"
 						clearable
-						placeholder="指标ID/指标名称"
+						:placeholder="$t('EtaBasePage.search_placeholder')"
 						style="width: 70%"
 						:disabled="params.view"
 						remote
@@ -116,15 +116,15 @@
 							>
 							</el-option>
 						</el-select>
-					<span v-if="formData.old_stay_edb">(截止日期:{{searchMonthOptions.find(item => item.EdbInfoId === formData.old_stay_edb) ? searchMonthOptions.find(item => item.EdbInfoId === formData.old_stay_edb).EndDate : ''}})</span>
+					<span v-if="formData.old_stay_edb">({{$t('EtaBasePage.label_end_date')}}:{{searchMonthOptions.find(item => item.EdbInfoId === formData.old_stay_edb) ? searchMonthOptions.find(item => item.EdbInfoId === formData.old_stay_edb).EndDate : ''}})</span>
 				</el-form-item>
-				<el-form-item label="同比值指标" prop="concat_edb">
+				<el-form-item :label="$t('EtaBasePage.label_onyear_date')" prop="concat_edb">
 					<el-select
 						v-model="formData.concat_edb"
 						v-loadMore="searchLoad"
 						:filterable="!formData.concat_edb"
 						clearable
-						placeholder="指标ID/指标名称"
+						:placeholder="$t('EtaBasePage.search_placeholder')"
 						style="width: 70%"
 						remote
 						:remote-method="query=>{searchHandle(query)}"
@@ -143,13 +143,13 @@
 				</el-form-item>
 			</template>
 
-			<el-form-item label="指标名称" prop="edb_name" class="target-form-cont">
+			<el-form-item :label="$t('Edb.Detail.e_name')" prop="edb_name" class="target-form-cont">
 				<el-input
 				v-model="formData.edb_name"
 				style="width: 70%"
-				placeholder="指标名称"></el-input>
+				:placeholder="$t('Edb.InputHolderAll.input_name')"></el-input>
 			</el-form-item>
-			<el-form-item label="所属目录" prop="menu">
+			<el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
 				<el-cascader
 				v-model="formData.menu"
 				:options="menuOptions"
@@ -161,12 +161,12 @@
 				}"
 				style="width: 70%"
 				clearable
-				placeholder="请选择所属目录"/>
+				:placeholder="$t('Edb.InputHolderAll.input_menu')"/>
 			</el-form-item>
-			<el-form-item label="频度" prop="frequency">
+			<el-form-item :label="$t('Edb.Detail.e_fre')" prop="frequency">
 				<el-select 
 				v-model="formData.frequency" 
-				placeholder="请选择频度" 
+				:placeholder="$t('Edb.InputHolderAll.input_fre')"
 				style="width:70%" 
 				clearable >
 					<el-option
@@ -177,7 +177,7 @@
 					</el-option>
 				</el-select>
 			</el-form-item>
-			<el-form-item label="单位" prop="unit">
+			<el-form-item :label="$t('Edb.Detail.e_unit')" prop="unit">
 				<selectUnit v-model="formData.unit" style="width:70%" />
 			</el-form-item>
 		</el-form>
@@ -186,16 +186,16 @@
         type="primary"
         style="margin-right: 20px"
         @click="saveHandle"
-        >保存</el-button
+        ><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button
       >
-      <el-button type="primary" plain @click="cancelHandle('cancel')">取消</el-button>
+      <el-button type="primary" plain @click="cancelHandle('cancel')"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
     </div>
 		<el-popover
 			placement="top-start"
 			:width="default_type === 1 ? 360 : 550"
 			trigger="click">
 			<p style="padding:20px;line-height:25px;" v-html="tips.get(default_type)"/>
-			<span slot="reference" class="tip-label">公式说明</span>
+			<span slot="reference" class="tip-label"><!-- 公式说明 -->{{$t('Edb.formula_instru')}}</span>
 		</el-popover>
   </el-dialog>
 	</div>
@@ -205,6 +205,7 @@
 import { dataBaseInterface } from '@/api/api.js'
 import * as preDictEdbInterface from '@/api/modules/predictEdbApi.js';
 import { unitArr } from '@/utils/defaultOptions';
+import { frequencyArr } from './util'
 export default {
 	props: {
 		isShow: {
@@ -268,16 +269,61 @@ export default {
 			}
 		}
 	},
+	computed: {
+		tips() {
+			return  this.$i18n.locale === 'zh' 
+			? new Map([
+					[1,`
+						直接拼接说明:<br>
+						1、选取拼接日期<br>
+						2、在拼接日期之前的数据选择指标A<br>
+						3、拼接日期之后的数据选择指标B<br>
+						4、新指标的起始日期为A的开始日期,更新时间跟随指标B进行更新<br>
+						5、指标A和B可以是原始指标,也可以是计算指标
+					`],
+					[2,`
+						累计值同比拼接说明:<br>
+						1、只支持月频度的指标进行累计值同比拼接<br>
+						2、如果出现有空值运算,则返回空值<br>
+						3、选取待拼接指标A和同比值指标B<br>
+						4、搜索到指标A最后一个12月31日有值的年份,并且向前回溯12个值(12个月),分别乘以下一年同期对应的同比增长率(B),公式为【A*(1+同期增长率(B)/100)】,得到下一年每个月的绝对值,再用新得到的下一年的12个月的值再乘以再下一年同期对应的同比增长率,得到再下一年每个月的绝对值<br>
+						5、以此类推,直到运算至指标B的最新值,得到新的序列C<br>
+						6、新指标是将序列C和指标A进行直接拼接,拼接日期选取指标A中有值的年份的年末最后一天即12月31日,再与序列C的起始日期做拼接<br>
+						7、新指标跟随指标B进行更新
+					`],
+				])
+			: new Map([
+					[1,`
+						Indicator Splicing Specification:<br>
+						1、Select Splicing Date<br>
+						2、Select A for data before splicing date <br>
+						3、Select B for data after splicing date<br>
+						4、The start date for the new metric is the start date of A, and its update time follows that of metric B.<br>
+						5、Metrics A and B can be either original metrics or calculated metrics.
+					`],
+					[2,`
+						Cumulative Year-on-Year Splicing Specification:<br>
+						1、Only indicators with monthly frequencies are supported for cumulative year-on-year splicing.<br>
+						2、If a calculation results in null values, then null values will be returned.<br>
+						3、Select indicator A, which is to be spliced, and year-on-year value indicator B.<br>
+						4、Find the last December 31st for which indicator A has a value and trace back 12 values (12 months). Multiply these by the corresponding year-on-year growth rate (B) for the following year, using the formula [A*(1+year-on-year growth rate (B)/100)] to obtain the absolute value for each month of the next year. Then multiply the 12 values obtained for the next year by the year-on-year growth rates of the subsequent year to get the absolute monthly values for that subsequent year.<br>
+						5、Continue this process up until you reach the latest value of indicator B, creating a new sequence C.<br>
+						6、The new indicator is created by directly splicing sequence C with indicator A, selecting December 31st from years where indicator A has values as the splicing date, and then joining it with the start date of sequence C.<br>
+						7、The new indicator updates alongside indicator B.
+					`],
+				])
+		}
+	},
 	data () {
 		return {
 			default_type: 1,
 			tagList: [
 				{
-					label: "直接拼接",
+					label:/*  "直接拼接" */this.$t('EtaBasePage.concat_tab_1'),
 					key: 1
 				},
 				{
-					label: "累计值同比拼接",
+					label: /* "累计值同比拼接" */this.$t('EtaBasePage.concat_tab_2'),
 					key: 2
 				}
 			],
@@ -294,59 +340,59 @@ export default {
 			},
 			formRules: {
 				date:[
-					{ required: true, message: '拼接日期不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.common_msg',{label: this.$t('EtaBasePage.label_concat_date')}), trigger: 'blur' },
 				],
 				pre_edb:[
-					{ required: true, message: '指标不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.no_edb'), trigger: 'blur' },
 				],
 				after_edb:[
-					{ required: true, message: '指标不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.no_edb'), trigger: 'blur' },
 				],
 				old_stay_edb:[
-					{ required: true, message: '待拼接指标不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.common_msg',{label: this.$t('EtaBasePage.label_concat_edb')}), trigger: 'blur' },
 				],
 				concat_edb:[
-					{ required: true, message: '指标不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.no_edb'), trigger: 'blur' },
 				],
 				edb_name:[
-					{ required: true, message: '指标名称不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.name_msg'), trigger: 'blur' },
 				],
 				menu:[
-					{ required: true, message: '所属目录不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.menu_msg'), trigger: 'blur' },
 				],
 				frequency:[
-					{ required: true, message: '频度不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.fre_msg'), trigger: 'blur' },
 				],
 				unit:[
-					{ required: true, message: '单位不能为空', trigger: ['blur','change'] },
+					{ required: true, message: this.$t('Edb.Valids.unit_msg'), trigger: ['blur','change'] },
 				],
 			},
-			tips: new Map([
-				[1,`
-					直接拼接说明:<br>
-					1、选取拼接日期<br>
-					2、在拼接日期之前的数据选择指标A<br>
-					3、拼接日期之后的数据选择指标B<br>
-					4、新指标的起始日期为A的开始日期,更新时间跟随指标B进行更新<br>
-					5、指标A和B可以是原始指标,也可以是计算指标
-				`],
-				[2,`
-					累计值同比拼接说明:<br>
-					1、只支持月频度的指标进行累计值同比拼接<br>
-					2、如果出现有空值运算,则返回空值<br>
-					3、选取待拼接指标A和同比值指标B<br>
-					4、搜索到指标A最后一个12月31日有值的年份,并且向前回溯12个值(12个月),分别乘以下一年同期对应的同比增长率(B),公式为【A*(1+同期增长率(B)/100)】,得到下一年每个月的绝对值,再用新得到的下一年的12个月的值再乘以再下一年同期对应的同比增长率,得到再下一年每个月的绝对值<br>
-					5、以此类推,直到运算至指标B的最新值,得到新的序列C<br>
-					6、新指标是将序列C和指标A进行直接拼接,拼接日期选取指标A中有值的年份的年末最后一天即12月31日,再与序列C的起始日期做拼接<br>
-					7、新指标跟随指标B进行更新
-				`],
-			]),
+			// tips: new Map([
+			// 	[1,`
+			// 		直接拼接说明:<br>
+			// 		1、选取拼接日期<br>
+			// 		2、在拼接日期之前的数据选择指标A<br>
+			// 		3、拼接日期之后的数据选择指标B<br>
+			// 		4、新指标的起始日期为A的开始日期,更新时间跟随指标B进行更新<br>
+			// 		5、指标A和B可以是原始指标,也可以是计算指标
+			// 	`],
+			// 	[2,`
+			// 		累计值同比拼接说明:<br>
+			// 		1、只支持月频度的指标进行累计值同比拼接<br>
+			// 		2、如果出现有空值运算,则返回空值<br>
+			// 		3、选取待拼接指标A和同比值指标B<br>
+			// 		4、搜索到指标A最后一个12月31日有值的年份,并且向前回溯12个值(12个月),分别乘以下一年同期对应的同比增长率(B),公式为【A*(1+同期增长率(B)/100)】,得到下一年每个月的绝对值,再用新得到的下一年的12个月的值再乘以再下一年同期对应的同比增长率,得到再下一年每个月的绝对值<br>
+			// 		5、以此类推,直到运算至指标B的最新值,得到新的序列C<br>
+			// 		6、新指标是将序列C和指标A进行直接拼接,拼接日期选取指标A中有值的年份的年末最后一天即12月31日,再与序列C的起始日期做拼接<br>
+			// 		7、新指标跟随指标B进行更新
+			// 	`],
+			// ]),
 			searchOptions: [],
 			searchMonthOptions: [],
 			searchMonthConcatOptions:[],
 			unitArr,
 			menuOptions: [],
-			frequencyArr:['日度','周度','旬度','月度','季度','年度'],
+			frequencyArr,
 
 			search_page: 1,
 			search_have_more: false,
@@ -481,7 +527,8 @@ export default {
 			const res=this.isPredict?await preDictEdbInterface.operateEdbSave(params):await dataBaseInterface.calculateTargetSave(params)
 			// dataBaseInterface.calculateTargetSave(params).then(res => {
 				if (res.Ret !== 200) return
-					this.$message.success('新增成功');
+					// this.$message.success('新增成功');
+					this.$message.success(this.$t('MsgPrompt.add_msg'));
 
 					this.$emit('addCallBack','add',{ code:res.Data.UniqueCode,id:res.Data.EdbInfoId,classifyId:params.ClassifyId });
 					this.init();
@@ -499,7 +546,8 @@ export default {
 			const res=this.isPredict?await preDictEdbInterface.operateEdbSave(edit_params):await dataBaseInterface.calculateTargetEdit(edit_params)
 			// dataBaseInterface.calculateTargetEdit(edit_params).then(res => {
 				if (res.Ret !== 200) return
-					this.$message.success('编辑成功');
+					// this.$message.success('编辑成功');
+					this.$message.success(this.$t('MsgPrompt.edit_msg'));
 
 					this.$emit('addCallBack','edit');
 					this.init();

+ 88 - 80
src/views/dataEntry_manage/databaseComponents/operationDialog.vue

@@ -14,7 +14,7 @@
 				:src="$icons.computed"
 				style="color: #fff; width: 16px; height: 16px; margin-right: 5px"
 			/>
-			<span style="font-size: 16px">{{ (operationForm.edb_id ? (operationForm.view ? '查看' : '编辑') : '') + titleMap.get(type) }}</span>
+			<span style="font-size: 16px">{{ (operationForm.edb_id ? (operationForm.view ? $t('Dialog.title_prefix_view') : $t('Dialog.title_prefix_edit')) : '') + titleMap.get(type) }}</span>
 		</div>
 		<div class="dialog-main">
 
@@ -24,14 +24,14 @@
 			</ul>
 
 			<div class="min-top">
-				<label >选择指标:</label>
+				<label ><!-- 选择指标 -->{{$t('Edb.choose_edb')}}:</label>
 
 				<el-select
 					v-model="select_target"
 					v-loadMore="searchLoad"
 					:filterable="!select_target"
 					clearable
-					placeholder="请输入指标名称"
+					:placeholder="$t('Edb.InputHolderAll.input_name')"
 					style="width: 85%"
 					remote
 					:remote-method="getTarget"
@@ -53,7 +53,7 @@
 				
 			</div>
 			<div class="middle">
-				<label>已选指标:</label>
+				<label>{{ $t('Edb.have_choose_edb') }}:</label>
 				<el-table
 				:data="tableData"
 				style="box-shadow: 0px 3px 6px rgba(155, 170, 219, 0.2);margin-top:10px;"
@@ -73,15 +73,15 @@
 					<el-table-column
 						width="110"
 						align="center"
-						label="操作"
+						:label="$t('Table.column_operations')"
 						v-if="!operationForm.view"
 					>
 						<template slot-scope="scope">
-							<span class="deletesty" @click="delTarget">删除</span>
+							<span class="deletesty" @click="delTarget"><!-- 删除 -->{{$t('Table.delete_btn')}}</span>
 						</template>
 					</el-table-column>
 					<div slot="empty" style="padding:20px 0 30px;">
-						<tableNoData text="暂无指标" size="mini"/>
+						<tableNoData :text="$t('Table.no_edb_msg')" size="mini"/>
 					</div>
 				</el-table>
 				<ul 
@@ -106,12 +106,12 @@
 						ref="form"
 						label-position="right"
 						inline
-						label-width="80px"
+						label-width="120px"
 						:model="formData"
 						:rules="formRules"
 						:disabled="operationForm.view"
 					>
-						<el-form-item label="移动方式" style="display: block;" v-if="type === 22" prop="moveVal">
+						<el-form-item :label="$t('EtaBasePage.label_move_way')" style="display: block;" v-if="type === 22" prop="moveVal">
 							<el-select
 								v-model="formData.moveType"
 								style="width: 100px"
@@ -151,33 +151,33 @@
 								</el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="指标名称" prop="targetName">
+						<el-form-item :label="$t('Edb.Detail.e_name')" prop="targetName">
 							<el-input
 								v-model="formData.targetName"
 								style="width: 340px"
-								placeholder="请输入指标名称"
+								:placeholder="$t('Edb.InputHolderAll.input_name')"
 							/>
 						</el-form-item>
-						<el-form-item label="单位" prop="unit">
+						<el-form-item :label="$t('Edb.Detail.e_unit')" prop="unit">
 							<selectUnit 
 								v-model="formData.unit" 
 								style="width: 340px" 
 								:disabled="!operationForm.edb_id&&[6,7,75].includes(type)"
 							/>
 						</el-form-item>
-						<el-form-item label="指标目录" prop="menu">
+						<el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
 							<el-cascader
 								v-model="formData.menu"
 								:options="options"
 								:props="levelProps"
 								clearable
-								placeholder="请选择指标目录"
+								:placeholder="$t('Edb.InputHolderAll.input_menu')"
 							/>
 						</el-form-item>
-						<el-form-item label="频度" prop="frequency">
+						<el-form-item :label="$t('Edb.Detail.e_fre')" prop="frequency">
 							<el-select
 								v-model="formData.frequency"
-								placeholder="请选择频度"
+								:placeholder="$t('Edb.InputHolderAll.input_fre')"
 								style="width: 340px"
 								clearable
 								:disabled="[5,14,61,63].includes(type)||(!operationForm.edb_id&&[6,7,75].includes(type))"
@@ -191,16 +191,16 @@
 								</el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="N等于" prop="n_num" v-if="[8,12,13,35].includes(type)">
+						<el-form-item :label="$t('EtaBasePage.label_n_val')"  prop="n_num" v-if="[8,12,13,35].includes(type)">
 							<el-input
 								v-model="formData.n_num"
 								style="width: 340px"
-								placeholder="请输入N数值"
+								:placeholder="$t('Edb.InputHolderAll.input_n_val')"
 								type="number"
 								@change="NchangeHandle"
 							/>
 						</el-form-item>
-						<el-form-item label="日历" prop="calendar_type" v-if="type===35">
+						<el-form-item :label="$t('EtaBasePage.label_calendar')" prop="calendar_type" v-if="type===35">
 							<el-select
 								v-model="formData.calendar_type"
 								placeholder="请选择日历"
@@ -216,14 +216,14 @@
 								</el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="数据取值" prop="value_type" v-if="type===51">
+						<el-form-item :label="$t('EtaBasePage.label_val_type')"  prop="value_type" v-if="type===51">
 							<el-select
 								v-model="formData.value_type"
 								placeholder="请选择数据取值类型"
 								style="width: 340px"
 							>
-								<el-option key="期末值" label="期末值" value="期末值"/>
-								<el-option key="平均值" label="平均值" value="平均值"/>
+								<el-option :label="$t('EtaBasePage.val_type_end')" value="期末值"/>
+								<el-option :label="$t('EtaBasePage.val_type_average')" value="平均值"/>
 							</el-select>
 						</el-form-item>
 					</el-form>
@@ -236,23 +236,23 @@
 				style="margin-right: 20px"
 				@click="saveHandle"
 				:loading="loading"
-				>{{loading ? '计算中...' : operationForm.edb_id ? '保存' : saveBtnMap.get(type)}}</el-button
+				>{{loading ? $t('Edb.calculate_ing') : operationForm.edb_id ? $t('Dialog.confirm_save_btn') : saveBtnMap.get(type)}}</el-button
 			>
-			<el-button type="primary" plain @click="cancelHandle('cancel')">取消</el-button>
+			<el-button type="primary" plain @click="cancelHandle('cancel')"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
 		</div>
 		<el-popover
 			placement="top-start"
 			width="500"
 			trigger="click">
 			<p style="padding:30px;line-height:25px;" v-html="$parent.tips.get(type)"/>
-			<span slot="reference" class="tip-label">公式说明</span>
+			<span slot="reference" class="tip-label"><!-- 公式说明 -->{{$t('Edb.formula_instru')}}</span>
 		</el-popover>
 	</el-dialog>
 </template>
 
 <script>
 import { dataBaseInterface } from '@/api/api.js';
-import { formRules } from './util';
+import { formRules,frequencyArr } from './util';
 import { unitArr } from '@/utils/defaultOptions';
 export default {
 	name:'',
@@ -312,86 +312,96 @@ export default {
 			}
 
 			this.sourceList = [5,61].includes(this.type)
-				? [{ label: '累计值转月值',key: 5 },{ label: '累计值转季值',key: 61 }]
+				? [{ label: /* '累计值转月值' */this.$t('Edb.CalculatesAll.to_month'),key: 5 },{ label: /* '累计值转季值' */this.$t('Edb.CalculatesAll.to_quarter'),key: 61 }]
 				: [62,63].includes(this.type)
-				? [{ label: '累计值',key: 62 },{ label: '年初至今累计值',key: 63 }]
+				? [{ label: /* '累计值' */this.$t('Edb.CalculatesAll.cumulate'),key: 62 },{ label: /* '年初至今累计值' */this.$t('Edb.CalculatesAll.cumulate_oneyear'),key: 63 }]
 				: []
 		}
 	},
-	data () {
-		return {
-			select_target:'',
-			searchOptions:[],//指标列表
-			haveMore: true,
-			dataList:[],
-            tableData:[],
-			page_no:1,
-			tableColums:[
-					{
-					label: '指标ID',
+	computed: {
+		tableColums(){
+			return [
+				{
+					label: /* '指标ID' */this.$t('Edb.Detail.e_id'),
 					key: 'EdbCode',
 				},
 				{
-					label: '指标名称',
+					label: /* '指标名称' */this.$t('Edb.Detail.e_name'),
 					key: 'EdbName',
 				},
 				{
-					label: '频度',
+					label: /* '频度' */ this.$t('Edb.Detail.e_fre'),
 					key: 'Frequency',
 				},
 				{
-					label: '单位',
+					label: /* '单位' */this.$t('Edb.Detail.e_unit'),
 					key: 'Unit',
 				},
 				{
-					label: '起始时间',
+					label: /* '起始时间' */this.$t('Edb.Detail.e_start_time'),
 					key: 'StartDate',
 					minwidthsty: '100px'
 				},
 				{
-					label: '更新时间',
+					label: /* '更新时间' */this.$t('Edb.Detail.e_update_time'),
 					key: 'ModifyTime',
 					minwidthsty: '110px'
 				},
 				{
-					label: '来源',
+					label: /* '来源' */this.$t('Edb.Detail.source'),
 					key: 'SourceName',
 				},
-			],
+			]
+		},
+		formRules(){
+			return formRules
+		},
+		unitArr() {
+			return unitArr
+		},
+	},
+	data () {
+		return {
+			select_target:'',
+			searchOptions:[],//指标列表
+			haveMore: true,
+			dataList:[],
+      tableData:[],
+			page_no:1,
 			titleMap: new Map([
-				[5,'累计值转月/季值'],
-				[6,'同比值'],
-				[7,'同差值'],
-				[8,'N数值移动平均计算'],
-				[12,'N数值环比值'],
-				[13,'N数值环差值'],
-				[14,'升频'],
-				[22,'时间移位'],
-				[35,'超季节性'],
-				[40,'数据调整'],
-				[52,'年化'],
-				[51,'降频'],
-				[61,'累计值转月/季值'],
-				[62,'累计值'],
-				[63,'累计值'],
-				[75,'日均值']
+				[5,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[6,this.$t('Edb.CalculatesAll.on_year')],/* '同比值' */
+				[7,this.$t('Edb.CalculatesAll.differ')],/* '同差值' */
+				[8,this.$t('Edb.CalculatesAll.n_move_average')],/* 'N数值移动平均计算' */
+				[12,this.$t('Edb.CalculatesAll.n_rate')],/* 'N数值环比值' */
+				[13,this.$t('Edb.CalculatesAll.n_differ')],/* 'N数值环差值'  */
+				[14,this.$t('Edb.CalculatesAll.up_conver')],/* 升频 */
+				[22,this.$t('Edb.CalculatesAll.time_move')],/* '时间移位' */
+				[35,this.$t('Edb.CalculatesAll.super_season')],/* '超季节性'  */
+				// [40, this.$t('Edb.CalculatesAll.differ')],/* '数据调整' */
+				[52,this.$t('Edb.CalculatesAll.annual')],/* '年化'  */
+				[51,this.$t('Edb.CalculatesAll.down_conver')],/* '降频' */
+				[61,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[62,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[63,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[75,this.$t('Edb.CalculatesAll.day_mean')]/* '日均值' */
 			]),//标题
 			saveBtnMap: new Map([
-				[5,'转月值计算'],
-				[6,'同比值计算'],
-				[7,'同差值计算'],
-				[8,'移动平均计算'],
-				[12,'环比值计算'],
-				[13,'环差值计算'],
-				[14,'升频计算'],
-				[22,'保存'],
-				[35,'超季节性计算'],
-				[52,'年化计算'],
-				[51,'降频计算'],
-				[61,'转季值计算'],
-				[62,'累计值计算'],
-				[63,'年初至今计算'],
-				[75,'日均值计算'],
+				[5,this.$t('Edb.CalculateBtns.to_month')],/* '转月值计算' */
+				[6,this.$t('Edb.CalculateBtns.on_year')],/* '同比值计算' */
+				[7,this.$t('Edb.CalculateBtns.differ')],/* '同差值计算' */
+				[8,this.$t('Edb.CalculateBtns.n_move_average')],/* '移动平均计算' */
+				[12,this.$t('Edb.CalculateBtns.n_rate')],/* '环比值计算' */
+				[13,this.$t('Edb.CalculateBtns.n_differ')],/* '环差值计算' */
+				[14,this.$t('Edb.CalculateBtns.up_conver')],/* '升频计算' */
+				[22,this.$t('Dialog.confirm_save_btn')],/* '保存' */
+				[35,this.$t('Edb.CalculateBtns.super_season')],/* '超季节性计算' */
+				[52,this.$t('Edb.CalculateBtns.annual')],/* '年化计算' */
+				[51,this.$t('Edb.CalculateBtns.down_conver')],/* '降频计算' */
+				[61,this.$t('Edb.CalculateBtns.to_quarter')],/* '转季值计算'  */
+				[62,this.$t('Edb.CalculateBtns.cumulate')],/* '累计值计算' */
+				[63,this.$t('Edb.CalculateBtns.cumulate_oneyear')],/* '年初至今计算' */
+				[75,this.$t('Edb.CalculateBtns.day_mean')],/* '日均值计算' */
 			]),//保存文案
 			formData: {
 				targetName:'',
@@ -405,8 +415,6 @@ export default {
 				calendar_type: '公历',
 				value_type: '期末值'
 			},
-			formRules,
-			unitArr,
 			options: [],
 			levelProps: {
 				label: 'ClassifyName',
@@ -414,7 +422,7 @@ export default {
 				children: 'Children',
 				checkStrictly: true
 			},
-			frequencyArr: ['日度', '周度','旬度', '月度', '季度', '年度'],
+			frequencyArr,
 			fre_options: ['天','周','月','季','年'],
 			moveTypeOpions: [
 				{

+ 61 - 55
src/views/dataEntry_manage/databaseComponents/smoothEdbDialog.vue

@@ -16,19 +16,19 @@
                 :src="$icons.computed"
                 style="color: #fff; width: 16px; height: 16px; margin-right: 5px"
             />
-            <span style="font-size: 16px">指数修匀</span>
+            <span style="font-size: 16px"><!-- 指数修匀 -->{{$t('Edb.CalculatesAll.ex_smooth')}}</span>
         </div>
         <div class="smooth-edb-dialog-wrap">
             <!-- 常规计算 -->
             <div class="normal-wrap" v-if="computedSource===1">
                 <div class="min-top">
-                    <label >选择指标:</label>
+                    <label ><!-- 选择指标 -->{{$t('Edb.choose_edb')}}:</label>
                     <el-select
                         v-model="select_target"
                         v-loadMore="searchLoad"
                         :filterable="!select_target"
                         clearable
-                        placeholder="请输入指标名称"
+                        :placeholder="$t('Edb.InputHolderAll.input_name')"
                         style="width: 85%"
                         remote
                         :remote-method="getTarget"
@@ -50,7 +50,7 @@
                     
                 </div>
                 <div class="middle">
-                    <label>已选指标:</label>
+                    <label>{{ $t('Edb.have_choose_edb') }}:</label>
                     <el-table
                         :data="tableData"
                         style="box-shadow: 0px 3px 6px rgba(155, 170, 219, 0.2);margin-top:10px;"
@@ -70,15 +70,15 @@
                         <el-table-column
                             width="110"
                             align="center"
-                            label="操作"
+                            :label="$t('Table.column_operations')"
                             v-if="!operationForm.view"
                         >
                             <template slot-scope="scope">
-                                <span class="deletesty" @click="delTarget">删除</span>
+                                <span class="deletesty" @click="delTarget"><!-- 删除 -->{{$t('Table.delete_btn')}}</span>
                             </template>
                         </el-table-column>
                         <div slot="empty" style="padding:20px 0 30px;">
-                            <tableNoData text="暂无指标" size="mini"/>
+                            <tableNoData :text="$t('Table.no_edb_msg')" size="mini"/>
                         </div>
                     </el-table>
                     <ul 
@@ -103,37 +103,37 @@
                             ref="form"
                             label-position="right"
                             inline
-                            label-width="80px"
+                            label-width="120px"
                             :model="formData"
                             :rules="formRules"
                             :disabled="operationForm.view"
                         >
-                            <el-form-item label="指标名称" prop="targetName">
+                            <el-form-item :label="$t('Edb.Detail.e_name')" prop="targetName">
                                 <el-input
                                     v-model="formData.targetName"
                                     style="width: 340px"
-                                    placeholder="请输入指标名称"
+                                    :placeholder="$t('Edb.InputHolderAll.input_name')"
                                 />
                             </el-form-item>
-                            <el-form-item label="单位" prop="unit">
+                            <el-form-item :label="$t('Edb.Detail.e_unit')" prop="unit">
                                 <selectUnit 
                                     v-model="formData.unit" 
                                     style="width: 340px" 
                                 />
                             </el-form-item>
-                            <el-form-item label="指标目录" prop="menu">
+                            <el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
                                 <el-cascader v-if="isOpenSmooth"
                                     v-model="formData.menu"
                                     :options="catalogArr"
                                     :props="levelProps"
                                     clearable
-                                    placeholder="请选择指标目录"
+                                    :placeholder="$t('Edb.InputHolderAll.input_menu')"
                                 />
                             </el-form-item>
-                            <el-form-item label="频度" prop="frequency">
+                            <el-form-item :label="$t('Edb.Detail.e_fre')" prop="frequency">
                                 <el-select
                                     v-model="formData.frequency"
-                                    placeholder="请选择频度"
+                                    :placeholder="$t('Edb.InputHolderAll.input_fre')"
                                     style="width: 340px"
                                     clearable
                                 >
@@ -150,7 +150,7 @@
                                 <el-input
                                     v-model.trim="formData.alphaValue"
                                     style="width: 340px"
-                                    placeholder="请输入alpha值"
+                                    :placeholder="$t('Edb.InputHolderAll.input_alpha_val')"
                                 />
                             </el-form-item>
                         </el-form>
@@ -251,16 +251,16 @@
                     style="margin-right: 20px"
                     @click="saveBtnClick"
                     :loading="loading"
-                    >指数修匀计算</el-button
+                    ><!-- 指数修匀计算 -->{{$t('Edb.CalculateBtns.ex_smooth')}}</el-button
                 >
-                <el-button type="primary" plain @click="cancelHandle(operationForm.edb_id?'':'cancel')">取消</el-button>
+                <el-button type="primary" plain @click="cancelHandle(operationForm.edb_id?'':'cancel')">{{$t('Dialog.cancel_btn')}}</el-button>
             </div>
             <el-popover
                 placement="top-start"
                 width="500"
                 trigger="click">
                 <p style="padding:30px;line-height:25px;" v-html="$parent.tips.get('alpha')"/>
-                <span slot="reference" class="tip-label">公式说明</span>
+                <span slot="reference" class="tip-label"><!-- 公式说明 -->{{$t('Edb.formula_instru')}}</span>
             </el-popover>
         </div>
     </el-dialog>
@@ -269,7 +269,7 @@
 <script>
 import { dataBaseInterface } from '@/api/api.js';
 import * as preDictEdbInterface from '@/api/modules/predictEdbApi.js';
-import { formRules } from './util';
+import { formRules,frequencyArr } from './util';
 const tag_arr = [];
 for(let i=0;i<26;i++) tag_arr.push(String.fromCharCode(65+i));
 export default {
@@ -294,6 +294,42 @@ export default {
             default:false,
         }
     },
+    computed: {
+        tableColums(){
+			return [
+				{
+					label: /* '指标ID' */this.$t('Edb.Detail.e_id'),
+					key: 'EdbCode',
+				},
+				{
+					label: /* '指标名称' */this.$t('Edb.Detail.e_name'),
+					key: 'EdbName',
+				},
+				{
+					label: /* '频度' */ this.$t('Edb.Detail.e_fre'),
+					key: 'Frequency',
+				},
+				{
+					label: /* '单位' */this.$t('Edb.Detail.e_unit'),
+					key: 'Unit',
+				},
+				{
+					label: /* '起始时间' */this.$t('Edb.Detail.e_start_time'),
+					key: 'StartDate',
+					minwidthsty: '100px'
+				},
+				{
+					label: /* '更新时间' */this.$t('Edb.Detail.e_update_time'),
+					key: 'ModifyTime',
+					minwidthsty: '110px'
+				},
+				{
+					label: /* '来源' */this.$t('Edb.Detail.source'),
+					key: 'SourceName',
+				},
+			]
+		},
+    },
     data() {
         return {
             /* 常规 */
@@ -305,7 +341,7 @@ export default {
                 alphaValue:''
             },
             formRules,
-            frequencyArr: ['日度', '周度','旬度', '月度', '季度', '年度'],
+            frequencyArr,
             catalogArr:[],
             levelProps: {
                 label: 'ClassifyName',
@@ -324,38 +360,6 @@ export default {
             tableData:[],
             page_no:1,
             haveMore:false,
-            tableColums:[
-                    {
-                    label: '指标ID',
-                    key: 'EdbCode',
-                },
-                {
-                    label: '指标名称',
-                    key: 'EdbName',
-                },
-                {
-                    label: '频度',
-                    key: 'Frequency',
-                },
-                {
-                    label: '单位',
-                    key: 'Unit',
-                },
-                {
-                    label: '起始时间',
-                    key: 'StartDate',
-                    minwidthsty: '100px'
-                },
-                {
-                    label: '更新时间',
-                    key: 'ModifyTime',
-                    minwidthsty: '110px'
-                },
-                {
-                    label: '来源',
-                    key: 'SourceName',
-                },
-            ],
             dataList:[],
 
             /* 批量 */
@@ -542,7 +546,8 @@ export default {
         
         addTargetHandle(){
             if(this.targetList.length >= 26){
-                this.$message.warning('添加指标个数已达上限')
+                // this.$message.warning('添加指标个数已达上限')
+                this.$message.warning(this.$t('EtaBasePage.num_overrun_msg'))
                 return 
             }
             let tag = 'A'
@@ -643,7 +648,8 @@ export default {
                 })
                 this.dealFailHandle(Fail)
             }else {
-                this.$message.success('添加成功');
+                // this.$message.success('添加成功');
+                this.$message.success(this.$t('MsgPrompt.add_msg'));
                 this.init();
                 this.$emit('addCallBack','add',{ code:Success[0].UniqueCode,id:Success[0].EdbInfoId,classifyId:Success[0].ClassifyId});
                 this.loading = false;

+ 15 - 14
src/views/dataEntry_manage/databaseComponents/updateNewestDia.vue

@@ -8,31 +8,31 @@
     custom-class="update-newsetdata-dialog"
     center
     v-dialogDrag
-    :title="edbinfo&&edbinfo.DataInsertConfig.Date?'编辑最新值':'添加最新值'"
-		width="600px"
+    :title="edbinfo&&edbinfo.DataInsertConfig.Date?`${$t('Table.edit_btn')}${'EtaBasePage.latest_val'}`:`${$t('Table.add_btn')}${'EtaBasePage.latest_val'}`"
+		width="650px"
   >
     <el-form
       ref="diaForm"
       class="form-cont"
       inline
       label-position="left"
-      label-width="80px"
+      label-width="100px"
       :model="formData"
       :rules="formRules"
     >
-			<el-form-item label="指标名称" prop="oldEdb" style="width:45%">
+			<el-form-item :label="$t('Edb.Detail.e_name')" prop="oldEdb" style="width:45%">
 				<span class="label">{{formData.edbName}}</span>
 			</el-form-item>
-			<el-form-item label="频度" prop="newEdb" style="width:45%">
+			<el-form-item :label="$t('Edb.Detail.e_fre')" prop="newEdb" style="width:45%">
 				<span class="label">{{formData.frequency}}</span>
 			</el-form-item>
-			<el-form-item label="最新日期" prop="newEdb" style="width:45%">
+			<el-form-item :label="$t('Edb.Detail.e_latest_date')" prop="newEdb" style="width:45%">
 				<span class="label">{{formData.lastDate}}</span>
 			</el-form-item>
-			<el-form-item label="最新值" prop="newEdb" style="width:45%">
+			<el-form-item :label="$t('Edb.Detail.e_latest_value')" prop="newEdb" style="width:45%">
 				<span class="label">{{formData.lastValue}}</span>
 			</el-form-item>
-			<el-form-item label="预测日期" prop="newEdb" style="width:45%">
+			<el-form-item :label="$t('Edb.Detail.predict_date')" prop="newEdb" style="width:45%">
 				<el-date-picker
           v-model="formData.date"
           type="date"
@@ -42,7 +42,7 @@
           :picker-options="timePickerOptions"
         />
 			</el-form-item>
-			<el-form-item label="预测值" prop="newEdb" style="width:45%">
+			<el-form-item :label="$t('Edb.Detail.predict_val')" prop="newEdb" style="width:45%">
 				<el-input
           v-model="formData.value"
           placeholder="输入值"
@@ -56,9 +56,9 @@
         type="primary"
         style="margin-right: 20px"
         @click="saveHandle"
-        >保存</el-button
+        ><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button
       >
-      <el-button type="primary" plain @click="cancelHandle">取消</el-button>
+      <el-button type="primary" plain @click="cancelHandle">{{$t('Dialog.cancel_btn')}}</el-button>
     </div>
   </el-dialog>
 </template>
@@ -123,10 +123,10 @@ export default {
 			},
 			formRules: {
 				date:[
-					{ required: true, message: '日期不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.date_msg'), trigger: 'blur' },
 				],
 				value:[
-					{ required: true, message: '值不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.val_msg'), trigger: 'blur' },
 				],
 			},
 		};
@@ -169,7 +169,8 @@ export default {
       })
 
       if(res.Ret !== 200) return
-      this.$message.success('保存成功')
+      // this.$message.success('保存成功')
+      this.$message.success(this.$t('MsgPrompt.saved_msg'))
       this.cancelHandle()
       this.$emit('success')
     },

+ 1 - 1
src/views/dataEntry_manage/databaseComponents/util.js

@@ -26,7 +26,7 @@ export const formRules= {
 	alphaValue:[
 		{ validator:(rule,value,callback)=>{
 			if(Number(value)<=0||Number(value)>=1){
-				callback(new Error("请输入>0,<1的数值"))
+				callback(new Error(bus.$i18nt.t('Edb.Valids.alpha_value_vaild')))
 			}else{
 				callback()
 			}

+ 87 - 75
src/views/dataEntry_manage/databaseList.vue

@@ -594,62 +594,7 @@ export default {
 			loading:null,
 			showTable:false,
 			page_no: 1,
-			/*表格列 */
-			tableColumsOne: [
-				{
-					label: this.$t('Edb.Detail.e_id'),
-					key: 'EdbCode',
-					minwidthsty: '150px'
-				},
-				{
-					label: this.$t('Edb.Detail.e_name'),
-					key: 'EdbName',
-					enKey:'EdbNameEn',
-					inputTip:'点击输入英文指标名称',
-					minwidthsty: '200px'
-				},
-				{
-					label: this.$t('Edb.Detail.e_fre'),
-					key: 'Frequency',
-					enKey:'FrequencyEn',
-					widthsty: '100px'
-				},
-				{
-					label: this.$t('Edb.Detail.e_unit'),
-					key: 'Unit',
-					enKey:'UnitEn',
-					inputTip:'英文单位',
-					// minwidthsty: '50px'
-					widthsty: '100px'
-				},
-				{
-					label: this.$t('Edb.Detail.source'),
-					key: 'SourceName',
-					widthsty: '160px'
-				},
-			],
-			tableColumsTwo: [
-				{
-					label: this.$t('Edb.Detail.e_menu'),
-					key: 'Menu',
-					minwidthsty: '150px',
-				},
-				{
-					label: this.$t('Edb.Detail.e_start_time'),
-					key: 'StartDate',
-					minwidthsty: '115px',
-				},
-				{
-					label: this.$t('Edb.Detail.e_update_time'),
-					key: 'ModifyTime',
-					minwidthsty: '120px',
-				},
-				{
-					label: this.$t('Edb.creater'),
-					key: 'SysUserRealName',
-					widthsty: '160px',
-				}
-			],
+		
 			haveMore: true,
 			selected_edbid: 0,//选中的指标id
 			dataList: [],//指标数值
@@ -704,9 +649,6 @@ export default {
 			showAssociateChart:false,//显示指标关联的图
 			showAssociateComputeData:false,//显示指标关联的引用计算指标
 
-			tips: formulaTip,//公式说明
-
-			computedBatchTypes,
 			computed_source: 1,//计算类型 1常规 2批量
 			isBatchComputed: false,//批量计算弹窗
 
@@ -772,7 +714,7 @@ export default {
 		},
 	},
 	computed: {
-			/* 计算弹窗控制 */
+		/* 计算弹窗控制 */
 		computedTypes() {
 			return this.computed_source===1 ? computedTypes : computedBatchTypes;
 		},
@@ -812,7 +754,74 @@ export default {
 			this.EdbData.EdbType===1&&this.isEdbBtnShow('refreshAll')||
 			this.isEdbBtnShow('copyData')||
 			this.EdbData.Button.DeleteButton&&this.isEdbBtnShow('deleteEdb')
-		}
+		},
+		
+		/*表格列 */
+		tableColumsOne(){
+			return [
+				{
+					label: this.$t('Edb.Detail.e_id'),
+					key: 'EdbCode',
+					minwidthsty: '150px'
+				},
+				{
+					label: this.$t('Edb.Detail.e_name'),
+					key: 'EdbName',
+					enKey:'EdbNameEn',
+					inputTip:'点击输入英文指标名称',
+					minwidthsty: '200px'
+				},
+				{
+					label: this.$t('Edb.Detail.e_fre'),
+					key: 'Frequency',
+					enKey:'FrequencyEn',
+					widthsty: '100px'
+				},
+				{
+					label: this.$t('Edb.Detail.e_unit'),
+					key: 'Unit',
+					enKey:'UnitEn',
+					inputTip:'英文单位',
+					// minwidthsty: '50px'
+					widthsty: '100px'
+				},
+				{
+					label: this.$t('Edb.Detail.source'),
+					key: 'SourceName',
+					widthsty: '160px'
+				},
+			]
+		},
+		tableColumsTwo() {
+			return [
+				{
+					label: this.$t('Edb.Detail.e_menu'),
+					key: 'Menu',
+					minwidthsty: '150px',
+				},
+				{
+					label: this.$t('Edb.Detail.e_start_time'),
+					key: 'StartDate',
+					minwidthsty: '115px',
+				},
+				{
+					label: this.$t('Edb.Detail.e_update_time'),
+					key: 'ModifyTime',
+					minwidthsty: '120px',
+				},
+				{
+					label: this.$t('Edb.creater'),
+					key: 'SysUserRealName',
+					widthsty: '160px',
+				}
+			]
+		},
+
+		tips() {//公式说明
+			return formulaTip
+		},
+
+
 	},
 	methods: {
 		//控制页面按钮权限
@@ -1044,7 +1053,7 @@ export default {
 		openEnNameDia(type='table'){
 			this.updateType = type
 			this.formItemArray=[{
-				label:'指标名称',
+				label:/* '指标名称' */ this.$t('Edb.Detail.e_name'),
 				value:this.tableData[0].EdbName,
 				key:'EdbName',
 				notEdit:true
@@ -1052,29 +1061,29 @@ export default {
 			// 中文单位有 才能编辑英文单位
 			if(this.tableData[0].Unit && this.tableData[0].Unit!='无'){
 				this.formItemArray.push({
-					label:'单位',
+					label:this.$t('Edb.Detail.e_unit') /* '单位' */,
 					value:this.tableData[0].Unit,
 					key:'Unit',
 					notEdit:true
 				},
 				{
-					label:'英文指标名称',
+					label:this.$t('Edb.Detail.e_en_name')/* '英文指标名称' */,
 					value:this.tableData[0].EdbNameEn,
 					key:'EdbNameEn',
-					placeholder:'请输入英文指标名称'
+					placeholder: this.$t('Edb.InputHolderAll.input_common',{label:this.$t('Edb.Detail.e_en_name')}) /* '请输入英文指标名称' */
 				},
 				{
-					label:'英文单位',
+					label:this.$t('Edb.Detail.e_en_unit') /* '英文单位' */,
 					value:this.tableData[0].UnitEn,
 					key:'UnitEn',
-					placeholder:'请输入英文单位'
+					placeholder:this.$t('Edb.InputHolderAll.input_common',{label:this.$t('Edb.Detail.e_en_unit')})  /* '请输入英文单位' */
 				})
 			}else{
 				this.formItemArray.push({
-					label:'英文指标名称',
+					label:this.$t('Edb.Detail.e_en_name') /* '英文指标名称' */,
 					value:this.tableData[0].EdbNameEn,
 					key:'EdbNameEn',
-					placeholder:'请输入英文指标名称'
+					placeholder:this.$t('Edb.InputHolderAll.input_common',{label:this.$t('Edb.Detail.e_en_name')}) /* '请输入英文指标名称' */
 				})
 			}
 
@@ -1328,7 +1337,7 @@ export default {
 				this.loading = this.$loading({
 					lock: true,
 					target:'.detail',
-					text: '刷新数据中...',
+					text: this.$t('EtaBasePage.refresh_ing_msg'),
 					spinner: 'el-icon-loading',
 					background: 'rgba(255, 255, 255, 0.8)'
 				});
@@ -1493,7 +1502,8 @@ export default {
 			console.log(params);
 			dataBaseInterface.classifyMoveSort(params).then(res=>{
 				if(res.Ret===200){
-					this.$message.success('移动成功!')
+					// this.$message.success('移动成功!')
+					this.$message.success(this.$t('MsgPrompt.move_sort_success'))
 				}
 				this.getTreeData()
 				if(this.selected_edbid){
@@ -1769,7 +1779,7 @@ export default {
 			this.loading = this.$loading({
 					lock: true,
 					target:'.detail',
-					text: '刷新数据中...',
+					text: this.$t('EtaBasePage.refresh_ing_msg'),
 					spinner: 'el-icon-loading',
 					background: 'rgba(255, 255, 255, 0.8)'
 				});
@@ -1812,7 +1822,8 @@ export default {
 				arr.forEach((item=> str += `${item.DataTime}\t${item.Value}\n`))
 				this.$copyText(str).then(
 		        res => {
-		          this.$message.success("已成功复制!");
+		          // this.$message.success("已成功复制!");
+		          this.$message.success(this.$t('MsgPrompt.copy_success_msg'));
 		        },
 		        err => {
 		         this.$message.error("复制失败!");
@@ -1831,7 +1842,7 @@ export default {
 			const { Data } = await dataBaseInterface.replaceCheck();
       Data === 2 
       ? this.isReplaceDia = true
-      : await this.$confirm('当前正在替换中,请耐心等待', '提示', {
+      : await this.$confirm(this.$t('EtaBasePage.replace_ing_msg'), '提示', {
           type: 'warning',
           showCancelButton: false,
         })
@@ -1932,7 +1943,8 @@ export default {
 				MinValue:Number(MinValue)
 			}).then(res=>{
 				if(res.Ret!==200) return 
-				this.$message.success('保存成功')
+				// this.$message.success('保存成功')
+				this.$message.success(this.$t('MsgPrompt.saved_msg'))
 
 				this.$refs.createChart.saveEdbImg(this.EdbData)
 				this.$refs.createChart.oldOptions = {}