Browse Source

Merge branch 'lang_dev' into lang_db

bding 1 year ago
parent
commit
ef4c15b89f
36 changed files with 1147 additions and 620 deletions
  1. 16 0
      src/lang/commonLang.js
  2. 67 1
      src/lang/modules/EtaBase/commonLang.js
  3. 2 1
      src/lang/modules/EtaChart/commonLang.js
  4. 102 0
      src/lang/modules/PredictEdb/En.js
  5. 102 0
      src/lang/modules/PredictEdb/Zh.js
  6. 0 0
      src/lang/modules/PredictEdb/commonLang.js
  7. 10 0
      src/lang/modules/SupplyAnalysis/IndexEn.js
  8. 9 0
      src/lang/modules/SupplyAnalysis/IndexZh.js
  9. 85 0
      src/lang/modules/SupplyAnalysis/StockPlant.js
  10. 2 2
      src/views/dataEntry_manage/codecount/index.vue
  11. 9 9
      src/views/dataEntry_manage/components/DateChooseDia.vue
  12. 6 6
      src/views/dataEntry_manage/databaseComponents/chartTrendRender.vue
  13. 1 1
      src/views/dataEntry_manage/databaseComponents/computedDialog.vue
  14. 4 3
      src/views/dataEntry_manage/databaseComponents/dataAssociateChart.vue
  15. 4 4
      src/views/dataEntry_manage/databaseComponents/jointTargetDia.vue
  16. 2 2
      src/views/dataEntry_manage/databaseComponents/replaceDialog.vue
  17. 69 34
      src/views/dataEntry_manage/databaseList.vue
  18. 1 1
      src/views/ppt_manage/newVersion/components/IndexItem.vue
  19. 3 3
      src/views/ppt_manage/newVersion/pptEnPresent.vue
  20. 1 1
      src/views/ppt_manage/newVersion/pptPresent.vue
  21. 90 119
      src/views/predictEdb_manage/addPredicEdb.vue
  22. 12 10
      src/views/predictEdb_manage/components/chartInfo.vue
  23. 39 32
      src/views/predictEdb_manage/components/childData.vue
  24. 9 9
      src/views/predictEdb_manage/components/classifyDia.vue
  25. 32 30
      src/views/predictEdb_manage/components/dynamicRingdiffer.vue
  26. 4 4
      src/views/predictEdb_manage/components/edbDetail.vue
  27. 73 77
      src/views/predictEdb_manage/components/operationDialog.vue
  28. 48 64
      src/views/predictEdb_manage/components/rulesDetailDia.vue
  29. 110 100
      src/views/predictEdb_manage/predictEdb.vue
  30. 6 6
      src/views/supply_manage/analyseVariety.vue
  31. 39 16
      src/views/supply_manage/components/addOtherPlantDia.vue
  32. 7 9
      src/views/supply_manage/components/createTargetDia.vue
  33. 84 29
      src/views/supply_manage/components/plantTable.vue
  34. 51 17
      src/views/supply_manage/components/targetTable.vue
  35. 11 11
      src/views/supply_manage/components/varietySetDia.vue
  36. 37 19
      src/views/supply_manage/stockPlant.vue

+ 16 - 0
src/lang/commonLang.js

@@ -36,6 +36,10 @@ export default {
       en: 'Edit',
       zh: '编辑'
     },
+    warn_tit: {
+      en: 'Notice',
+      zh: '提示'
+    }
   },
   Table: {
     add_btn: {
@@ -197,6 +201,10 @@ export default {
     set_success_msg:{
       en:'Setting Successful',
       zh:'设置成功'
+    },
+    refresh_ing_msg: {
+      en: 'Updating data...',
+      zh: '刷新数据中...'
     }
   },
   Common: {
@@ -227,6 +235,14 @@ export default {
     to: {
       en: ' To ',
       zh:'至'
+    },
+    no_classify_msg: {
+      en: 'No Category',
+      zh: '暂无分类'
+    },
+    no_info_msg: {
+      en: 'No Information',
+      zh: '暂无信息'
     }
   },
   Edb,

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

@@ -108,6 +108,23 @@ export default {
     zh:'计算中...',
     en:'Calculating...'
   },
+  time_len_set: {
+    zh:'时间长度设置',
+    en:'Recently N years'
+  },
+  recent_n_yaer: {
+    zh:'最近N年',
+    en:'Recently N years'
+  },
+  interval_set: {
+    zh:'区间设置',
+    en:'Set Time Period'
+  },
+  year_num: {
+    zh:'年数',
+    en:'Number of years'
+  },
+
 
   /* 指标相关字段 */
   Detail: {
@@ -195,10 +212,31 @@ export default {
       zh:'预测日期',
       en:'Predictive Date'
     },
+    predict_end_date: {
+      zh:'预测截止日期',
+      en:'Expiry Date of Prediction'
+    },
     predict_val: {
       zh:'预测值',
       en:'Predictive Value'
+    },
+    add_to_edb:{
+      zh:'添加指标库',
+      en:'Add indicator library'
+    },
+    create_chart_btn:{
+      zh:'一键成图',
+      en:'Graph'
+    },
+    add_indicator_btn:{
+      zh:'添加指标',
+      en:'Add indicator'
+    },
+    select_catalogue:{
+      zh:'所属目录',
+      en:'catalogue'
     }
+
   },
 
   /* 单位 */
@@ -395,6 +433,14 @@ export default {
       zh: '日均值',
       en: 'Daily Mean'
     },
+    standard_differ: {
+      zh: '标准差',
+      en: 'Standard deviation'
+    },
+    percent: {
+      zh: '百分比',
+      en: 'Percentile'
+    }
   },
 
   /* 指标添加form提示 */
@@ -447,6 +493,10 @@ export default {
       zh: '值不能为空',
       en: 'Value can not be empty'
     },
+    classify_msg: {
+      zh: '分类不能为空',
+      en: 'Category can not be empty'
+    },
     common_msg: {
       zh: '{label}不能为空',
       en: '{label} can not be empty'
@@ -531,6 +581,10 @@ export default {
 
   /* 通用相关pholder */
   InputHolderAll: {
+    input_name_orid: {
+      zh: '指标ID/指标名称',
+      en: 'Indicator ID/Indicator Name'
+    },
     input_name: {
       zh: '请输入指标名称',
       en: 'Please input indicator name'
@@ -559,10 +613,22 @@ export default {
       zh: '请输入{label}',
       en: 'Please input {label}'
     },
+    input_number: {
+      zh: '请输入数字',
+      en: 'Please input number'
+    },
+    input_date: {
+      zh: '请选择日期',
+      en: 'Please select date'
+    },
     select_edb_name:{
       zh: '请选择指标名称',
       en: 'Please select an indicator name'
-    }
+    },
+    input_classify:{
+      zh: '请选择所属分类',
+      en: 'Please select category'
+    },
   },
   
   /* 公示说明 */

+ 2 - 1
src/lang/modules/EtaChart/commonLang.js

@@ -1,5 +1,6 @@
 /* 图表相关的通用文字 
-  在最外层commonLang中用
+  在最外层commonLang中用 
+  $t('Chart.xxx')
 */
 
 export default {

+ 102 - 0
src/lang/modules/PredictEdb/En.js

@@ -0,0 +1,102 @@
+/* 预测指标模块 
+  $t('PredictEdbPage.xxx')
+*/
+export default {
+  /* 预测指标页面 */
+  PredictEdbPage: {
+    only_see_mine: 'View My Data List',
+    total_list_view: 'Total of {limit} Predictors',
+    del_edb_msg: 'After delete, it cannot be restored. Are you sure to delete it?',
+
+    /* 查看基础指标弹窗 */
+    view_rules: 'View Prediction Rules',
+    old_edb_id: 'Raw Indicator ID',
+    old_edb_name: 'Raw Indicator Name',
+    predict_end_date: 'Raw Indicator Name',
+    predict_rule: 'Prediction Rules',
+    label_formula: 'Calculation formula',
+    label_past_year: 'Past N years',
+    label_calendar: 'Calendar',
+  },
+
+   /* 添加指标页面 */
+   PredictEditPage: {
+    add_to_classify: 'Add to Category',
+    predict_edb_name: 'Predictive Indicator Name',
+    predict_date_type: 'Predictive Date Type',
+    ph_date_type: 'Please select date type',
+    date_type_trade:'交易日',
+    date_type_normal:'自然日',
+    add_more_btn:'Add more',
+    season_select: 'Select Method',
+    season_select_cont: 'N Years Consecutive',
+    season_select_formula: 'Fixed N Years',
+    label_periods: 'Number of Periods',
+    option_season_calendar1: 'Calendar',
+    option_season_calendar2: 'Lunar Calendar',
+    label_yoy_year: 'YoY Year',
+    label_slef_var: 'Independent Variable',
+    label_lead_day: 'Number of Days ahead ',
+    lead_day_unit: 'Days',
+    label_fitting_time: 'Regression Period',
+    ph_start_time:'Start Time',
+    ph_end_time:'End Time',
+    ph_tonow:'So Far',
+    label_distru_way: 'Distribution Method',
+    option_distru_way1: 'Average ',
+    option_distru_way2: 'YoY',
+    ph_yoy_year: 'Please Select the Base Year',
+    set_mom_btn: 'Set MoM Value Added',
+    label_value_yoy_growth: 'YoY Growth Rate ',
+    label_value_yoy_add: 'YoY Value Added',
+    label_value_mom_growth: 'MoM Growth Rate',
+    label_value_mom_add: 'MoM Value Added',
+    label_value_end: 'Predictive End Value',
+    label_value_yoy_end: 'End Value of YoY',
+    label_value_year: 'Annual Value',
+
+    label_rule: 'Rule',
+    rule_newset: 'Latest Value',
+    rule_fix: "Fixed Value" ,
+    rule_onyear: "YoY" ,
+    rule_differ: "YoY Difference" ,
+    rule_mom: "MoM" ,
+    rule_mom_differ: "MoM Difference" ,
+    rule_move_average: "Moving Average" ,
+    rule_linear: "Linear Extrapolation" ,
+    rule_dynamic_differ: 'Dynamic MoM Difference' ,
+    rule_inter_end: "Interpolation-Use End Values" ,
+    rule_season: 'Seasonal',
+    rule_yoy_move: 'YoY of Moving Average',
+    rule_yoy_growth: "Interpolation-Use YoY Growth Rate" ,
+    rule_linear_reg: "Univaruate Linear Regression" ,
+    rule_n_year: "N Years' Average",
+    rule_value_back: 'Annual Value Backward Method',
+    rule_tip: `
+      Prediction Rule Instructions :<br> 
+      1、Latest Value: All predictive number equal the latest value;<br>
+      2、Fixed Value: All predictive number equal a fixed value;<br>
+      3、YoY: Predictive number equals the YoY growth rate multiply by YoY value; <br>
+      4、YoY Difference: Predictive number equals the YoY value plus YoY added value;<br>
+      5、MoM: Predictive number equals previous month's value multiply by MoM growth rate;<br>
+      6、MoM difference: Predictive number equals Previous month's value plus MoM added value;<br>
+      7、Moving Average: Predictive number equals the moving average of last N periods' value;<br>
+      8、Linear Extrapolation: Predictive number is calculated by extending previous N periods' value using linear regression formula: Y=aX+b;<br>
+      9、Select a few indicators for indicator calculation to obtain result values as dynamic period-to-period differences, where the forecast value = previous period value + dynamic period-to-period difference;<br>
+      10、Interpolation-Use End Values:Calculate the difference in periods T between the latest data and the forecasted final value, and the data difference S. The cyclic difference value is S/T. The forecasted value equals the previous period's value plus the dynamic difference value (current period - previous period);<br>
+      11、Seasonal: Calculate the average period-over-period change (current period - previous period) for the same period over the past N years, and the forecast value is equal to the previous period value plus the average period-over-period change;<br>
+      12、YoY of Moving Average:Calculate the year-on-year value of the average over the past N periods (current period / previous period), select the year-on-year comparison year, and the forecast value = same period value of the year-on-year comparison year * year-on-year value;<br>
+      13、Interpolation-Use YoY Growth Rate: Calculate the year-on-year growth rate of the latest data: (Current period value - Same period last year value) / Same period last year value * 100%. Enter the final year-on-year growth rate, and by using the difference in the number of periods, calculate the year-on-year growth rate for each period. The forecast value = Last year's same period value * (1 + the corresponding period's year-on-year growth rate);<br>
+      14、Univaruate Linear Regression: A linear regression equation, Y=aX+b, is produced from Index A (independent variable) and Index B (baseline index) over the fitting period. By substituting Index A into this equation, the fitted Index B' is obtained. By concatenating the actual values of Index B with the predicted values of B', a forecasted index is generated.<br>
+      15、N Years' Average: The past N years can be consecutive or non-consecutive, and the indicator data is completed to daily data through linear interpolation before calculation;<br>
+      16、Annual Value Backward Method:Set the annual target value, and the balance is calculated as the annual value minus the cumulative value from the beginning of the year to date (refer to the accumulation calculation method). When distributing the balance, ensure each period's value is equal using the average method (daily/weekly: remaining periods = remaining natural calendar days / natural calendar days up to the latest date of this year's indicator * number of periods for this year's indicator data; ten-day/monthly/quarterly/semi-annual: remaining periods = total periods in a year (36/12/4/2) - natural calendar periods elapsed this year). The year-on-year comparison method ensures that each period's growth rate is equal (year-on-year growth rate = balance / balance on the corresponding date of the compared year, with forecast values being equal to the same period's value of the compared year multiplied by the year-on-year growth rate).
+    `,
+    vaild_full_rule:'Please input the complete rules',
+    vaild_last_rule:'At least Remain one rule',
+
+    /* 环比增加值弹窗 */
+    calculate_one_btn:'Calculate',
+    result_column1:'Date',
+    result_column2:'MoM Value Added',
+  }
+}

+ 102 - 0
src/lang/modules/PredictEdb/Zh.js

@@ -0,0 +1,102 @@
+/* 预测指标模块 
+  $t('PredictEdbPage.xxx')
+*/
+export default {
+  /* 预测指标页面 */
+  PredictEdbPage: {
+    only_see_mine: '只看我的',
+    total_list_view: '共{limit}个预测指标',
+    del_edb_msg: 'ETA预测指标删除后不可恢复,确认删除吗',
+    
+    /* 查看基础指标弹窗 */
+    view_rules: '查看预测规则',
+    old_edb_id: '原指标ID',
+    old_edb_name: '原指标名称',
+    predict_end_date: '预测截止日期',
+    predict_rule: '预测规则',
+    label_formula: '计算公式',
+    label_past_year: '过去N年',
+    label_calendar: '日历',
+  },
+
+  /* 添加指标页面 */
+  PredictEditPage: {
+    add_to_classify: '添加到分类',
+    predict_edb_name: '预测指标名称',
+    predict_date_type: '预测日期类型',
+    ph_date_type: '请选择日期类型',
+    date_type_trade:'交易日',
+    date_type_normal:'自然日',
+    add_more_btn:'添加更多',
+    season_select: '选择方式',
+    season_select_cont: '连续N年',
+    season_select_formula: '指定N年',
+    label_periods: '期数',
+    option_season_calendar1: '公历',
+    option_season_calendar2: '农历',
+    label_yoy_year: '同比年份',
+    label_slef_var: '自变量',
+    label_lead_day: '领先天数',
+    lead_day_unit: '天',
+    label_fitting_time: '拟合时间段',
+    ph_start_time:'开始日期',
+    ph_end_time:'结束日期',
+    ph_tonow:'至今',
+    label_distru_way: '余额分配方式',
+    option_distru_way1: '均值法',
+    option_distru_way2: '同比法',
+    ph_yoy_year: '选择年份',
+    set_mom_btn: '设置环比增加值',
+    label_value_yoy_growth: '同比增速',
+    label_value_yoy_add: '同比增加值',
+    label_value_mom_growth: '环比增速',
+    label_value_mom_add: '环比增加值',
+    label_value_end: '预测终值',
+    label_value_yoy_end: '同比增速终值',
+    label_value_year: '年度值',
+
+    label_rule: '规则',
+    rule_newset: '最新',
+    rule_fix: "固定值" ,
+    rule_onyear: "同比" ,
+    rule_differ: "同差" ,
+    rule_mom: "环比" ,
+    rule_mom_differ: "环差" ,
+    rule_move_average: "N期移动均值" ,
+    rule_linear: "N期段线性外推值" ,
+    rule_dynamic_differ: '动态环差' ,
+    rule_inter_end: "给定终值后插值" ,
+    rule_season: '季节性',
+    rule_yoy_move: '移动平均同比',
+    rule_yoy_growth: "同比增速差值" ,
+    rule_linear_reg: "一元线性拟合" ,
+    rule_n_year: 'N年均值',
+    rule_value_back: '年度倒退值',
+    rule_tip: `
+      预测规则说明:<br> 
+      1、最新:预测值全部等于最新值;<br>
+      2、固定值:预测值默认全部等于常数值;<br>
+      3、同比:去年同期值乘同比增速得到预测值;<br>
+      4、同差:去年同期值加同比增加得到预测值;<br>
+      5、环比:上期值乘环比增速得到预测值;<br>
+      6、环差:上期值加同比增加得到预测值;<br>
+      7、N期移动均值:过去N期值的平均值;<br>
+      8、N期段线性外推值:过去N期值生成线性回归方程:Y=aX+b,将未来的期数代入得到预测值;<br>
+      9、动态环差:选择几个指标进行指标计算得到结果值作为动态环差值,预测值=上期值+动态环差值;<br>
+      10、给定终值后插值:计算最新数据和预测终值的期数差T和数据差S,环差值=S/T,预测数值=前一期数值+环差值(本期-上期);<br>
+      11、季节性:计算过去N年同期的环差(本期-上期)均值,预测值=上期值+环差均值;<br>
+      12、移动平均同比:计算过去N期平均值的同比值(本期/上期),选择同比年份,预测值=同比年份同期值*同比值;<br>
+      13、同比增速插值:计算最新数据的同比增速:(本期数值-去年同期数值)/去年同期数值*100%,输入同比增速终值,通过期数差值,计算每一期同比增速,预测值=去年同期值*(1+该期同比增速)。<br>
+      14、一元线性拟合:由指标A(自变量)和指标B(基础指标)在拟合时间段生成线性回归方程:Y=aX+b,将指标A代入该方程得到拟合指标B',拼接指标B的实际值和B'的预测值,生成预测指标;<br>
+      15、N年均值:过去N年同期均值。过去N年可以连续或者不连续,指标数据均用线性插值补全为日度数据后计算;<br>
+      16、年度值倒推:设定年度值,余额=年度值-年初至今累计值(算法参考累计值),进行余额分配,均值法分配时保证每期数值相等(日度/周度:剩余期数=剩余自然日历天数/今年指标最新日期自然日历天数*今年至今指标数据期数;旬度/月度/季度/半年度:剩余期数=全年期数(36/12/4/2)-今年至今自然日历期数),同比法保证每期同比相等(同比增速=余额/同比年份相应日期的余额,预测值等于同比年份同期值*同比增速)
+    `,
+    vaild_full_rule:'请填写完整的规则',
+    vaild_last_rule:'请至少保留一条预测规则',
+
+    /* 环比增加值弹窗 */
+    calculate_one_btn:'一键计算',
+    result_column1:'日期',
+    result_column2:'环比增加值',
+  }
+}

+ 0 - 0
src/lang/modules/PredictEdb/commonLang.js


+ 10 - 0
src/lang/modules/SupplyAnalysis/IndexEn.js

@@ -0,0 +1,10 @@
+import { StockPlantEn } from "./StockPlant";
+
+
+
+export default {
+    // 供应分析
+    SupplyAnalysis: {
+        StockPlant:StockPlantEn
+    },
+};

+ 9 - 0
src/lang/modules/SupplyAnalysis/IndexZh.js

@@ -0,0 +1,9 @@
+import { StockPlantZh } from "./StockPlant";
+
+
+export default {
+    // 供应分析
+    SupplyAnalysis: {
+        StockPlant:StockPlantZh
+    },
+};

+ 85 - 0
src/lang/modules/SupplyAnalysis/StockPlant.js

@@ -0,0 +1,85 @@
+/**
+ * 供应分析-装置检修
+ */
+
+/* 英文 */
+export const StockPlantEn = {
+    add_btn:'Add Commodity',
+    only_see:'View the Commodity with Permission ',
+    placeholder01:'Commodity Name/Indicator ID',
+    analysis_btn:'Analysis ',
+    no_data:'No Data',
+    table_col01:'Commodity',
+    table_col02:'Operator',
+    table_col03:'Update Time',
+    edit_commodity_btn:'Edit Commodity',
+    placeholder02:'Please Enter Commodity Name',
+    set_permission:'Set permissions',
+    placeholder03:'Please select a researcher',
+    select_user:'Selected Users',
+    download_excel:'Download Excel',
+    last_updatetime:'Last Updated',
+    year_product_day:'Days of Production/Year',
+    day_unit:'day',
+    computed_btn:'Calculate Days',
+
+    edit_table_col01:'Place',
+    edit_table_col02:'Corporate Name',
+    edit_table_col03:'Equipment/Production Line',
+    edit_table_col04:'Capacity/10,000 tons',
+    edit_table_col05:'Overhaul Date',
+    edit_table_col06:'Resumption Date',
+    edit_table_col07:'Operating Rate Decreased',
+    edit_table_col08:'Production Decreased per Day/ton',
+    edit_table_col09:'Duration',
+    edit_table_col10:'Total Cuts',
+    edit_table_col_tip01:'默认检修结束日期为复产日期',
+    edit_table_col_tip02:'1表示停产,0.1表示降负10%',
+    edit_table_btn_add_up:'Add above',
+    edit_table_btn_add_down:'Add below',
+    edit_table_btn_add_other:'Add New Equipment/Production Line',
+    placeholder04:'Please Select Commodity',
+};
+  
+/* 中文 */
+export const StockPlantZh = {
+    add_btn:'添加品种',
+    only_see:'只看可分析',
+    placeholder01:'品种名称/指标ID',
+    analysis_btn:'分析',
+    no_data:'暂无品种',
+    table_col01:'品种',
+    table_col02:'更新人',
+    table_col03:'更新时间',
+    edit_commodity_btn:'编辑品种',
+    placeholder02:'请输入品种',
+    set_permission:'设置权限',
+    placeholder03:'请选择研究员',
+    select_user:'已选用户',
+    download_excel:'下载减产量EXCEL',
+    last_updatetime:'上次更新时间',
+    year_product_day:'年生产天数',
+    day_unit:'天',
+    computed_btn:'计算',
+
+    edit_table_col01:'地点',
+    edit_table_col02:'工厂',
+    edit_table_col03:'装置/产线',
+    edit_table_col04:'年产能(万吨)',
+    edit_table_col05:'检修日期',
+    edit_table_col06:'复产日期',
+    edit_table_col07:'降负系数',
+    edit_table_col08:'日均产量减量(吨)',
+    edit_table_col09:'时长',
+    edit_table_col10:'期间减量(万吨)',
+    edit_table_col_tip01:'默认检修结束日期为复产日期',
+    edit_table_col_tip02:'1表示停产,0.1表示降负10%',
+    edit_table_btn_add_up:'向上添加',
+    edit_table_btn_add_down:'向下添加',
+    edit_table_btn_add_other:'添加其他装置',
+    placeholder04:'请选择品种',
+};
+  
+/**
+* $t('SupplyAnalysis.StockPlant.XXX')
+*/

+ 2 - 2
src/views/dataEntry_manage/codecount/index.vue

@@ -108,7 +108,7 @@
 									</el-option>
 								</el-select> -->
 							</el-form-item>
-							<el-form-item :label="$t('EtaBasePage.search_placeholder')">
+							<el-form-item :label="$t('Edb.InputHolderAll.input_name_orid')">
 								<el-select
 									v-model="search_txt"
 									v-loadMore="searchLoad"
@@ -116,7 +116,7 @@
 									:filterable="!search_txt"
 									remote
 									clearable
-									:placeholder="$t('EtaBasePage.search_placeholder')"
+									:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 									:remote-method="searchHandle"
 									@click.native="inputFocusHandle"
 									style="width:220px"

+ 9 - 9
src/views/dataEntry_manage/components/DateChooseDia.vue

@@ -11,13 +11,13 @@
 		width="650px">
 			<div class="dialog-min">
 				<el-radio-group v-model="radioType" @change="changeType">
-					<el-radio :label="1" border>最近N年</el-radio>
-					<el-radio :label="2" border>区间设置</el-radio>
+					<el-radio :label="1" border>{{$t('Edb.recent_n_yaer')}}<!-- 最近N年 --></el-radio>
+					<el-radio :label="2" border>{{$t('Edb.interval_set')}}<!-- 区间设置 --></el-radio>
 				</el-radio-group>
 				<div class="date-cont">
 					<template v-if="radioType===1">
-						<span style="margin:0 20px;color: #000000;">年数</span>
-						<el-input v-model.number="count_year" placeholder="请输入数字"></el-input>
+						<span style="margin:0 20px;color: #000000;">{{$t('Edb.year_num')}}<!-- 年数 --></span>
+						<el-input v-model.number="count_year" :placeholder="$t('Edb.InputHolderAll.input_number')"></el-input>
 					</template>
 					<template v-else>
 						<el-date-picker
@@ -36,18 +36,18 @@
 							unlink-panels
 							value-type="format"
 							value-format="yyyy-MM-dd"
-							start-placeholder="开始日期"
-							end-placeholder="结束日期"
+							:start-placeholder="$t('EtaBasePage.ph_start')"
+							:end-placeholder="$t('EtaBasePage.ph_end')"
 							:picker-options="pickerOptions"
 						></el-date-picker>
-						<el-checkbox label="至今" :checked="dateType == 1" @change="changeDateType"
+						<el-checkbox :label="$t('EtaBasePage.ph_to_now')" :checked="dateType == 1" @change="changeDateType"
 						style="margin-left: 18px;"></el-checkbox>
 					</template>
 				</div>
 			</div>
 			<div class="dia-bot">
-				<el-button plain @click="cancelHandle" style="width: 120px;">取消</el-button>
-				<el-button type="primary" style="width: 120px;margin-left:30px" @click="saveHandle">保存</el-button>
+				<el-button plain @click="cancelHandle" style="width: 120px;"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
+				<el-button type="primary" style="width: 120px;margin-left:30px" @click="saveHandle"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
 			</div>
 		</el-dialog>
 </template>

+ 6 - 6
src/views/dataEntry_manage/databaseComponents/chartTrendRender.vue

@@ -184,10 +184,10 @@ export default {
 	data () {
 		return {
 			year_select: 10, //年份选择项 默认全部
-			yearSelector: [
+			yearSelector:[
 				{
-					name: '全部',
-					value: 10,
+						name: /* '全部' */this.$t('Chart.time_all'),
+						value: 10,
 				},
 				...yearSelector,
 			],
@@ -207,7 +207,7 @@ export default {
 			/* 日期弹窗 */
 			isDateDia: false, // 时间段弹窗
 			dateForm: {},
-			dateTip: '请选择时间段',
+			dateTip: /* '请选择时间段' */ this.$t('Chart.choose_time'),
 			limitData: {
 				letMin: 0,
 				leftMax: 0,
@@ -340,7 +340,7 @@ export default {
     changeYear(item) {
       this.year_select = item.value;
       this.select_date = [];
-      this.dateTip = '请选择时间段';
+      this.dateTip = /* '请选择时间段' */ this.$t('Chart.choose_time');
 
 			const { MinValue,MaxValue } = this.chartInfo;
 			this.oldOptions = {
@@ -765,7 +765,7 @@ export default {
 			this.count_year=5
 			this.select_date = [];
 			this.options = {};
-			this.dateTip = '请选择时间段';
+			this.dateTip = /* '请选择时间段' */ this.$t('Chart.choose_time');
 			this.oldOptions = {};
 			this.calendar_type = '公历';
 			this.season_year = [];

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

@@ -58,7 +58,7 @@
 						'target-date': true,
 						'newest': list.end_date===newestDate
 					}" v-if="list.start_date">{{
-						`${list.start_date}${list.end_date}`
+						`${list.start_date}${$t('Common.to')}${list.end_date}`
 					}}</span>
 				</li>
 			</ul>

+ 4 - 3
src/views/dataEntry_manage/databaseComponents/dataAssociateChart.vue

@@ -4,7 +4,7 @@
             <tableNoData :text="$t('EtaBasePage.no_quote_chart')"/>
         </div>
         <template v-else>
-        <p style="position:relative;font-size:16px">共 {{chartTotal}} 张图表</p>
+        <p style="position:relative;font-size:16px">{{$t('Chart.total_chart_show',{limit: chartTotal})}}</p>
         <div
             class="chart-public-list"
             v-infinite-scroll="load"
@@ -17,11 +17,12 @@
                     <div class="chart-item-img" @click="detailShowHandle(chart)"
                         :style="chart.ChartImage?{background: `no-repeat top/cover url('${chart.ChartImage}')`}:{}"></div>
                     <div class="chart-item-bottom">
-                        <span>创建时间: {{ chart.CreateTime.slice(0,10) }}</span>
+                        <span>{{$t('Chart.list_chart_time')}}: {{ chart.CreateTime.slice(0,10) }}</span>
                         <span class="join_txt" @click="addMychartHandle(chart)">
                             <img :src="$icons.chart_join_ico"
                                 style="width: 13px; height: 12px; vertical-align: middle"/>
-                            加入我的图库
+                            <!-- 加入我的图库 -->
+                            {{$t('Chart.chart_addmy_btn')}}
                         </span>
                     </div>
                 </div>

+ 4 - 4
src/views/dataEntry_manage/databaseComponents/jointTargetDia.vue

@@ -47,7 +47,7 @@
 						v-loadMore="searchLoad"
 						:filterable="!formData.pre_edb"
 						clearable
-						:placeholder="$t('EtaBasePage.search_placeholder')"
+						:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 						style="width: 70%"
 						:disabled="params.view"
 						remote
@@ -72,7 +72,7 @@
 							v-loadMore="searchLoad"
 							:filterable="!formData.after_edb"
 							clearable
-							:placeholder="$t('EtaBasePage.search_placeholder')"
+							:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 							style="width: 70%"
 							:disabled="params.view"
 							remote
@@ -99,7 +99,7 @@
 						v-loadMore="searchLoad2"
 						:filterable="!formData.old_stay_edb"
 						clearable
-						:placeholder="$t('EtaBasePage.search_placeholder')"
+						:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 						style="width: 70%"
 						:disabled="params.view"
 						remote
@@ -124,7 +124,7 @@
 						v-loadMore="searchLoad"
 						:filterable="!formData.concat_edb"
 						clearable
-						:placeholder="$t('EtaBasePage.search_placeholder')"
+						:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 						style="width: 70%"
 						remote
 						:remote-method="query=>{searchHandle(query)}"

+ 2 - 2
src/views/dataEntry_manage/databaseComponents/replaceDialog.vue

@@ -32,7 +32,7 @@
 				:filterable="!formData.oldEdb"
 				remote
 				clearable
-				:placeholder="$t('EtaBasePage.search_placeholder')"
+				:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 				style="width: 440px"
 				:remote-method="searchHandle"
 				@click.native="inputFocusHandle"
@@ -58,7 +58,7 @@
 				:filterable="!formData.newEdb"
 				remote
 				clearable
-				:placeholder="$t('EtaBasePage.search_placeholder')"
+				:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 				style="width: 440px"
 				:remote-method="searchHandle"
 				@click.native="inputFocusHandle"

+ 69 - 34
src/views/dataEntry_manage/databaseList.vue

@@ -27,7 +27,7 @@
 					:filterable="!search_txt"
 					remote
 					clearable
-					:placeholder="$t('EtaBasePage.search_placeholder')"
+					:placeholder="$t('Edb.InputHolderAll.input_name_orid')"
 					style="width: 260px;"
 					:remote-method="searchHandle"
 					@click.native="inputFocusHandle"
@@ -232,37 +232,72 @@
 							</el-tab-pane>
 						</el-tabs>
 						<div class="edb-tool-icon edb-tool" style="align-items: center;">
-							<el-button v-if="isEdbBtnShow('update')"
-								type="text" @click="refreshTargetHandle" >{{$t('Edb.detail_refresh_btn')}}</el-button>
-							<el-button v-if="isEdbBtnShow('edit')"
-								type="text" :disabled="!(EdbData.Button.OpButton)"
-								@click="editNode({},EdbData)">{{$t('Edb.detail_edit_btn')}}</el-button>
+							<el-button 
+								v-if="isEdbBtnShow('update')"
+								type="text" 
+								@click="refreshTargetHandle" 
+							>{{$t('Edb.detail_refresh_btn')}}<!-- 刷新 --></el-button>
+							<el-button 
+								v-if="isEdbBtnShow('edit')"
+								type="text" 
+								:disabled="!(EdbData.Button.OpButton)"
+								@click="editNode({},EdbData)"
+							>{{$t('Edb.detail_edit_btn')}}<!-- 编辑 --></el-button>
 							<!-- 指保存指标的上下限,在走势图才显示 -->
-							<el-button v-if="activeTab==='Chart'&&isEdbBtnShow('saveEdb')"
-								type="text" @click.stop="saveEdbLimit">{{$t('Edb.detail_save_btn')}}</el-button>
-							<el-button v-if="EdbData.EdbType===2&&isEdbBtnShow('toSource')"
-								type="text" @click="toHistoryPage(selected_edbid,$route.matched);lookEdbId=selected_edbid">{{$t('Edb.detail_trace_btn')}}</el-button>
-							<el-popover v-if="showPopver"
+							<el-button 
+								v-if="activeTab==='Chart'&&isEdbBtnShow('saveEdb')"
+								type="text" 
+								@click.stop="saveEdbLimit"
+							>{{$t('Edb.detail_save_btn')}}<!-- 保存 --></el-button>
+							<el-button 
+								v-if="EdbData.EdbType===2&&isEdbBtnShow('toSource')"
+								type="text" 
+								@click="toHistoryPage(selected_edbid,$route.matched);lookEdbId=selected_edbid"
+							>{{$t('Edb.detail_trace_btn')}}<!-- 指标溯源 --></el-button>
+							<el-popover 
+								v-if="showPopver"
 								placement="bottom-end" 
 								trigger="hover"
 								popper-class="edb-tool-popover"
-								width="300" style="display: inline-block;">
+								width="300" style="display: inline-block;"
+							>
 								<div class="edb-tool-wrap">
-									<el-button v-if="isEdbBtnShow('setEn')"
-										type="text" @click="openEnNameDia">{{$t('Edb.detail_en_btn')}}</el-button>
-									<el-button v-if="EdbData.Button.InsertNewDataButton&&isEdbBtnShow('newValue')"
-										type="text" @click.stop="updateNewestDataHandle" >{{(EdbData.DataInsertConfig.Date)?$t('Edb.detail_edit_latest'):$t('Edb.detail_add_latest')}}</el-button>
-									<el-button v-if="EdbData.EdbType===2&&isEdbBtnShow('calculateAgain')"
-										type="text" @click.stop="reCalculateHandler" :loading="calculateLoading">{{$t('Edb.detail_recalculate_btn')}}</el-button>
-									<el-button v-if="EdbData.EdbType===1&&isEdbBtnShow('refreshAll')"
-										type="text" @click.stop="refreshBaseHandler" :loading="refreshLoading">{{$t('Edb.detail_refresh_all')}}</el-button>
-									<el-button v-if="isEdbBtnShow('copyData')"
-										type="text" @click="copyCode">{{$t('Edb.detail_copydata_btn')}}</el-button>
-									<el-button v-if="EdbData.Button.DeleteButton&&isEdbBtnShow('deleteEdb')"
-										type="text" @click="removeNode(_,EdbData)" style="color:#C54322;">{{$t('Edb.detail_del_btn')}}</el-button>
+									<el-button 
+										v-if="isEdbBtnShow('setEn')"
+										type="text" 
+										@click="openEnNameDia"
+									>{{$t('Edb.detail_en_btn')}}<!-- 设置英文名称 --></el-button>
+									<el-button 
+										v-if="EdbData.Button.InsertNewDataButton&&isEdbBtnShow('newValue')"
+										type="text" 
+										@click.stop="updateNewestDataHandle" 
+									>{{(EdbData.DataInsertConfig.Date)?$t('Edb.detail_edit_latest'):$t('Edb.detail_add_latest')}}<!-- 添加最新值 --></el-button>
+									<el-button 
+										v-if="EdbData.EdbType===2&&isEdbBtnShow('calculateAgain')"
+										type="text" 
+										@click.stop="reCalculateHandler" 
+										:loading="calculateLoading"
+									>{{$t('Edb.detail_recalculate_btn')}}<!-- 重新计算 --></el-button>
+									<el-button 
+										v-if="EdbData.EdbType===1&&isEdbBtnShow('refreshAll')"
+										type="text"
+										@click.stop="refreshBaseHandler" 
+										:loading="refreshLoading"
+									>{{$t('Edb.detail_refresh_all')}}<!-- 全部刷新 --></el-button>
+									<el-button 
+										v-if="isEdbBtnShow('copyData')"
+										type="text" 
+										@click="copyCode"
+									>{{$t('Edb.detail_copydata_btn')}}<!-- 复制数据 --></el-button>
+									<el-button 
+										v-if="EdbData.Button.DeleteButton&&isEdbBtnShow('deleteEdb')"
+										type="text" 
+										@click="removeNode(_,EdbData)" 
+										style="color:#C54322;"
+									>{{$t('Edb.detail_del_btn')}}<!-- 删除 --></el-button>
 								</div>
 								<div class="edb-btn" slot="reference">
-									<el-button type="text">{{$t('Edb.detail_more_btn')}}</el-button>
+									<el-button type="text">{{$t('Edb.detail_more_btn')}}<!-- 更多操作 --></el-button>
 									<i class="el-icon-more" style="font-size: 14px;transform: rotate(90deg);cursor: pointer;color: #3375e1;"/>
 								</div>
 							</el-popover>
@@ -378,7 +413,7 @@
 			<ul class="computed-ul">
 				<li
 					:class="['cpmputed-li',{'act':item.type === computed_type}]" 
-					v-for="item in computedTypes" 
+					v-for="item in computedShowTypes" 
 					:key="item.type" 
 					@click="changeComputedType(item.type)">
 					{{item.name}}
@@ -715,7 +750,7 @@ export default {
 	},
 	computed: {
 		/* 计算弹窗控制 */
-		computedTypes() {
+		computedShowTypes() {
 			return this.computed_source===1 ? computedTypes : computedBatchTypes;
 		},
 		role() {
@@ -1337,7 +1372,7 @@ export default {
 				this.loading = this.$loading({
 					lock: true,
 					target:'.detail',
-					text: this.$t('EtaBasePage.refresh_ing_msg'),
+					text: this.$t('MsgPrompt.refresh_ing_msg'),
 					spinner: 'el-icon-loading',
 					background: 'rgba(255, 255, 255, 0.8)'
 				});
@@ -1387,10 +1422,10 @@ export default {
 							res.Data.DeleteStatus === 2 
 							? deleteLabelMap[res.Data.DeleteStatus]
 							: data.EdbCode?'删除后指标和指标值均不可使用,确认删除吗?':'确定删除当前目录吗?', 
-							'提示',
+							/* '提示' */this.$t('Dialog.warn_tit'),
 							{
-							confirmButtonText: '确定',
-							cancelButtonText: '取消',
+							confirmButtonText: /* '确定' */this.$t('Dialog.confirm_btn'),
+							cancelButtonText: /* '取消' */this.$t('Dialog.cancel_btn'),
 							type: 'warning'
 						}).then(() => {
 							this.delHandle(data.ClassifyId,data.EdbInfoId);
@@ -1779,7 +1814,7 @@ export default {
 			this.loading = this.$loading({
 					lock: true,
 					target:'.detail',
-					text: this.$t('EtaBasePage.refresh_ing_msg'),
+					text: this.$t('MsgPrompt.refresh_ing_msg'),
 					spinner: 'el-icon-loading',
 					background: 'rgba(255, 255, 255, 0.8)'
 				});
@@ -1842,7 +1877,7 @@ export default {
 			const { Data } = await dataBaseInterface.replaceCheck();
       Data === 2 
       ? this.isReplaceDia = true
-      : await this.$confirm(this.$t('EtaBasePage.replace_ing_msg'), '提示', {
+      : await this.$confirm(this.$t('EtaBasePage.replace_ing_msg'), this.$t('Dialog.warn_tit'), {
           type: 'warning',
           showCancelButton: false,
         })
@@ -2301,7 +2336,7 @@ export default {
 					position: relative;
 					height: 60px;
 					.el-tabs{
-						width:200px;
+						width:210px;
 						.el-tabs__header{
 							margin-bottom: 0;
 						}

+ 1 - 1
src/views/ppt_manage/newVersion/components/IndexItem.vue

@@ -31,7 +31,7 @@
               &nbsp;页
             </div>
             
-            <p class="page-index" v-else @dblclick.stop="editPage"> {{$i18n.locale == 'zh' ?`第${index+1}页`:` Slide${index+1}`}}</p>  
+            <p class="page-index" v-else @dblclick.stop="editPage"> {{$i18n.locale == 'zh' ?`第${pageIndex+1}页`:` Slide${pageIndex+1}`}}</p>  
         </div>
         <el-popconfirm
             @onConfirm="deletePage"

+ 3 - 3
src/views/ppt_manage/newVersion/pptEnPresent.vue

@@ -86,7 +86,7 @@
             <el-dropdown split-button type="primary" @click="FullScreen" @command="handleCommand">
               {{$t('Slides.play_from_current_slide')}}
               <el-dropdown-menu slot="dropdown">
-                <el-dropdown-item>{{$T('Slides.play_for_the_first_slide')}}</el-dropdown-item>
+                <el-dropdown-item>{{$t('Slides.play_for_the_first_slide')}}</el-dropdown-item>
               </el-dropdown-menu>
             </el-dropdown>
           </div>
@@ -203,7 +203,7 @@ export default {
       backInfo:{
         index:{
           id:-1,
-          title:'尾页'
+          title:this.$t('Slides.back_cover_info')
         }
       },//封底信息
       pageList:[],//ppt数组
@@ -514,7 +514,7 @@ export default {
     //改变ppt的宽高比
     async handleLayoutCommand(command){
       this.LayoutType = command
-      this.layoutStr = ['',`10:7${t('Slides.default_size')}`,'16:9 ','4:3 '][this.LayoutType]
+      this.layoutStr = ['',`10:7${this.$t('Slides.default_size')}`,'16:9 ','4:3 '][this.LayoutType]
       this.$nextTick(()=>{
         reloadPPTWid()
         $('.ppt-item').css('height',$('.ppt-item').width()*this.coefficient);

+ 1 - 1
src/views/ppt_manage/newVersion/pptPresent.vue

@@ -202,7 +202,7 @@ export default {
       backInfo:{
         index:{
           id:-1,
-          title:'尾页'
+          title:this.$t('Slides.back_cover_info')
         }
       },//封底信息
       pageList:[],//ppt数组

+ 90 - 119
src/views/predictEdb_manage/addPredicEdb.vue

@@ -2,8 +2,8 @@
   <div class="add-predicedb-page">
     <div class="aside-warp" v-show="isAsideShow">
       <div class="btn-box">
-        <el-button type="primary" @click="saveHandle">保存</el-button>
-        <el-button type="primary" plain @click="$router.back()">取消</el-button>
+        <el-button type="primary" @click="saveHandle"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
+        <el-button type="primary" plain @click="$router.back()"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
       </div>
       <div class="con">
         <el-form
@@ -14,21 +14,7 @@
         >
           <el-form-item prop="classify">
             <div class="item">
-              <span class="label">添加到分类</span>
-              <!-- <el-select
-                v-model="formData.classify"
-                placeholder="请选择分类"
-                style="width: 100%"
-                clearable
-              >
-                <el-option
-                  v-for="item in classifyArr"
-                  :key="item.ClassifyId"
-                  :label="item.ClassifyName"
-                  :value="item.ClassifyId"
-                >
-                </el-option>
-              </el-select> -->
+              <span class="label">{{$t('PredictEditPage.add_to_classify')}}<!-- 添加到分类 --></span>
               <el-cascader
                     v-model="formData.classify"
                     :options="classifyArr"
@@ -39,13 +25,13 @@
                         checkStrictly: true
                     }"
                     style="width: 90%"
-                    placeholder="请选择所属分类"
+                    :placeholder="$t('Edb.InputHolderAll.input_classify')"
                 />
             </div>
           </el-form-item>
           <el-form-item prop="oldEdb" v-if="!formData.edb_id">
             <div class="item">
-              <span class="label">选择指标</span>
+              <span class="label">{{$t('Edb.choose_edb')}}<!-- 选择指标 --></span>
               <el-select
                 v-model="formData.oldEdb"
                 v-loadMore="searchLoad"
@@ -53,7 +39,7 @@
                 :filterable="!formData.oldEdb"
                 remote
                 clearable
-                placeholder="指标ID/指标名称"
+                :placeholder="$t('Edb.InputHolderAll.input_name_orid')"
                 :remote-method="searchHandle"
                 @click.native="inputFocusHandle"
                 @change="selectEdbHandle"
@@ -74,46 +60,46 @@
           </el-form-item>
           <el-form-item prop="edbName">
             <div class="item">
-              <span class="label">预测指标名称</span>
+              <span class="label">{{$t('PredictEditPage.predict_edb_name')}}<!-- 预测指标名称 --></span>
               <el-input
                 v-model="formData.edbName"
                 style="width: 100%"
-                placeholder="指标名称"
+                :placeholder="$t('Edb.InputHolderAll.input_name')"
               />
             </div>
           </el-form-item>
           <el-form-item prop="dateType">
             <div class="item">
-              <span class="label">预测日期类型</span>
+              <span class="label">{{$t('PredictEditPage.predict_date_type')}}<!-- 预测日期类型 --></span>
                <el-select
                 v-model="formData.dateType"
-                placeholder="请选择日期类型"
+                :placeholder="$t('PredictEditPage.ph_date_type')"
                 style="width: 100%"
                 @change="getChartInfo"
               >
-                <el-option label="交易日" value="交易日"></el-option>
-                <el-option label="自然日" value="自然日"></el-option>
+                <el-option :label="$t('PredictEditPage.date_type_trade')" value="交易日"></el-option>
+                <el-option :label="$t('PredictEditPage.date_type_normal')" value="自然日"></el-option>
               </el-select>
             </div>
           </el-form-item>
           <el-form-item v-if="formData.oldEdbName">
             <div class="item" style="margin-top: 30px">
-              <span class="label">原指标名称:{{ formData.oldEdbName }}</span>
+              <span class="label">{{$t('PredictEdbPage.old_edb_name')}}<!-- 原指标名称 -->:{{ formData.oldEdbName }}</span>
             </div>
           </el-form-item>
           <el-form-item prop="frequency">
             <div class="item">
-              <span class="label">频度:{{ formData.frequency }}</span>
+              <span class="label">{{$t('Edb.Detail.e_fre')}}<!-- 频度 -->:{{ formData.frequency }}</span>
             </div>
           </el-form-item>
           <el-form-item prop="newdata">
             <div class="item">
-              <span class="label">最新值:{{ formData.newdata }}</span>
+              <span class="label">{{$t('Edb.Detail.e_latest_value')}}<!-- 最新值 -->:{{ formData.newdata }}</span>
             </div>
           </el-form-item>
           <el-form-item prop="lasetDate">
             <div class="item" style="margin-bottom: 30px">
-              <span class="label">最新日期:{{ formData.lasetDate }}</span>
+              <span class="label">{{$t('Edb.Detail.e_latest_date')}}<!-- 最新日期 -->:{{ formData.lasetDate }}</span>
             </div>
           </el-form-item>
         </el-form>
@@ -126,7 +112,7 @@
             :name="index"
           >
             <template slot="title">
-              <span class="text_oneLine">规则{{ index + 1 }}</span>
+              <span class="text_oneLine"><!-- 规则 -->{{$t('PredictEditPage.label_rule')}}{{ index + 1 }}</span>
               <i
                 class="el-icon-delete del-icon"
                 @click.stop="removeRuleHandle(item, index)"
@@ -134,13 +120,13 @@
             </template>
             <div class="wrap">
               <div class="item">
-                <span class="label">预测截止日期</span>
+                <span class="label">{{$t('PredictEdbPage.predict_end_date')}}<!-- 预测截止日期 --></span>
                 <el-date-picker
                   v-model="item.endDate"
                   type="date"
                   style="width: 100%"
                   value-format="yyyy-MM-dd"
-                  placeholder="请选择日期"
+                  :placeholder="$t('Edb.InputHolderAll.input_date')"
                   :picker-options="timePickerOptions"
                   @change="changeDateHandle($event,index)"
                 >
@@ -149,19 +135,18 @@
               </div>
               <div class="item">
                 <span class="label">
-                  预测规则
+                  <!-- 预测规则 -->{{$t('PredictEdbPage.predict_rule')}}
                   <el-tooltip effect="dark" placement="right">
                     <div
                       slot="content"
                       v-html="rulesTip"
-                      style="line-height: 20px;max-width:600px"
+                      style="line-height: 20px;max-width:600px;max-height:550px;overflow-y:auto"
                     ></div>
                     <i class="el-icon-question" style="color: #666" />
                   </el-tooltip>
                 </span>
                 <el-select
                   v-model="item.predict_type"
-                  placeholder="请选择分类"
                   style="width: 100%"
                   @change="changePredictType($event,item,index)"
                 >
@@ -180,7 +165,7 @@
                 <el-input
                   v-model="item.fixedValue"
                   style="width: 100%"
-                  placeholder="请输入值"
+                  :placeholder="$t('Edb.InputHolderAll.input_number')"
                   type="number"
                 />
               </div>
@@ -188,23 +173,23 @@
               <!-- 季节性规则 -->
               <div v-if="[11,15].includes(item.predict_type)">
                 <div class="item">
-                  <span class="label">选择方式</span>
+                  <span class="label"><!-- 选择方式 -->{{$t('PredictEditPage.season_select')}}</span>
                   <el-select
                     v-model="item.season_way"
                     placeholder="请选择方式"
                     style="width: 100%"
                     @change="item.n_value = '';item.season_years=[]"
                   >
-                    <el-option label="连续N年" :value="1"/>
-                    <el-option label="指定N年" :value="2"/>
+                    <el-option :label="$t('PredictEditPage.season_select_cont')" :value="1"/>
+                    <el-option :label="$t('PredictEditPage.season_select_formula')" :value="2"/>
                   </el-select>
                 </div>
                 <div class="item" v-if="item.season_way===1">
-                  <span class="label">期数</span>
+                  <span class="label"><!-- 期数 -->{{$t('PredictEditPage.label_periods')}}</span>
                   <el-input
                     v-model="item.n_value"
                     style="width: 100%"
-                    placeholder="请输入值"
+                    :placeholder="$t('Edb.InputHolderAll.input_number')"
                     type="number"
                   />
                 </div>
@@ -230,8 +215,8 @@
                 </div>
                 <div class="item" v-if="item.predict_type===11">
                   <el-radio-group v-model="item.season_type">
-                    <el-radio label="公历">公历</el-radio>
-                    <el-radio label="农历">农历</el-radio>
+                    <el-radio label="公历"><!-- 公历 -->{{$t('PredictEditPage.option_season_calendar1')}}</el-radio>
+                    <el-radio label="农历"><!-- 农历 -->{{$t('PredictEditPage.option_season_calendar2')}}</el-radio>
                   </el-radio-group>
                 </div>
               </div>
@@ -239,21 +224,21 @@
               <!-- 移动平均同比 -->
               <div v-else-if="item.predict_type===12">
                 <div class="item">
-                  <span class="label">期数</span>
+                  <span class="label"><!-- 期数 -->{{$t('PredictEditPage.label_periods')}}</span>
                   <el-input
                     v-model="item.n_value"
                     style="width: 100%"
-                    placeholder="请输入值"
+                    :placeholder="$t('Edb.InputHolderAll.input_number')"
                     type="number"
                   />
                 </div>
                 <div class="item">
-                  <span class="label">同比年份</span>
+                  <span class="label"><!-- 同比年份 -->{{$t('PredictEditPage.label_yoy_year')}}</span>
                   <el-date-picker
                     v-model="item.move_average_year"
                     type="year"
                     value-format="yyyy"
-                    placeholder="选择年份"
+                    :placeholder="$t('PredictEditPage.ph_yoy_year')"
                     @change="pushYear($event,item)"
                   />
                 </div>
@@ -264,10 +249,10 @@
               <div v-else-if="item.predict_type===14">
                 <div class="item">
                   <span class="label">
-                    自变量
+                    <!-- 自变量 -->{{$t('PredictEditPage.label_slef_var')}}
                     <el-radio-group v-model="edbFromType">
-                      <el-radio :label="0" style="margin-right: 15px">ETA指标</el-radio>
-                      <el-radio :label="1">ETA预测指标</el-radio>
+                      <el-radio :label="0" style="margin-right: 15px"><!-- ETA指标 -->{{$t('Edb.eta_name')}}</el-radio>
+                      <el-radio :label="1"><!-- ETA预测指标 -->{{$t('Edb.eta_predictor_name')}}</el-radio>
                     </el-radio-group>
                   </span>
                   <el-select
@@ -277,7 +262,7 @@
                     :filterable="!item.self_target"
                     remote
                     clearable
-                    placeholder="指标ID/指标名称"
+                    :placeholder="$t('Edb.InputHolderAll.input_name_orid')"
                     style="width:88%;margin-top: 10px;display:inline-block"
                     :remote-method="searchHandle"
                     @click.native="inputFocusHandle($event,'self_target')"
@@ -295,36 +280,36 @@
                 </div>
                 <div class="item">
                   <span class="label">
-                    领先天数
+                    <!-- 领先天数 -->{{$t('PredictEditPage.label_lead_day')}}
                     <el-input
                       v-model="item.fixedValue"
                       style="width: 80px;margin:0 5px;"
                       type="number"
                       :step="1"
                       @keyup.native="filterCode(item)"
-                    />
+                    />{{$t('PredictEditPage.lead_day_unit')}}
                   </span>
                 </div>
                 <div class="item">
-                  <span class="label">拟合时间段</span>
+                  <span class="label"><!-- 拟合时间段 -->{{$t('PredictEditPage.lead_day_unit')}}</span>
                   <el-date-picker
                     v-model="item.fit_date[0]"
                     range-separator="至"
-                    placeholder="开始日期"
+                    :placeholder="$t('PredictEditPage.ph_start_time')"
                     value-format="yyyy-MM-dd"
                     style="width: 90%;margin-bottom: 10px;"
                     @change="changeFitDate(item)"
                   />
-                  至
+                  <!--  -->{{$t('Common.to')}}
                   <el-date-picker
                     v-model="item.fit_date[1]"
-                    placeholder="结束日期"
+                    :placeholder="$t('PredictEditPage.ph_end_time')"
                     value-format="yyyy-MM-dd"
                     style="width: 90%"
                     @change="changeFitDate(item)"
                     :picker-options="{
                       shortcuts: [{
-                        text: '至今',
+                        text: $t('PredictEditPage.tonow'),
                         onClick(picker) {
                           const date = new Date();
                           picker.$et('pick',date);
@@ -338,30 +323,30 @@
               <!-- 年度值倒退 -->
               <div v-else-if="item.predict_type===16">
                 <div class="item">
-                  <span class="label">余额分配方式</span>
+                  <span class="label"><!-- 余额分配方式 -->{{$t('PredictEditPage.label_distru_way')}}</span>
                   <el-select
                     v-model="item.distribute_type"
                     placeholder="请选择方式"
                     style="width: 100%"
                     @change="item.on_year=''"
                   >
-                    <el-option label="均值法" :value="1"/>
-                    <el-option label="同比法" :value="2"/>
+                    <el-option :label="$t('PredictEditPage.option_distru_way1')" :value="1"/>
+                    <el-option :label="$t('PredictEditPage.option_distru_way2')" :value="2"/>
                   </el-select>
                 </div>
                 <div class="item" v-if="item.distribute_type===2">
-                  <span class="label">同比年份</span>
+                  <span class="label"><!-- 同比年份 -->{{$t('PredictEditPage.label_yoy_year')}}</span>
                   <el-date-picker
                     v-model="item.on_year"
                     type="year"
                     value-format="yyyy"
-                    placeholder="选择年份"
+                    :placeholder="$t('PredictEditPage.ph_yoy_year')"
                   />
                 </div>
               </div>
 
 
-              <el-button type="text" v-if="item.predict_type===9" @click="setRingAddHandle(item,index)">设置环比增加值</el-button>
+              <el-button type="text" v-if="item.predict_type===9" @click="setRingAddHandle(item,index)"><!-- 设置环比增加值 -->{{$t('PredictEditPage.set_mom_btn')}}</el-button>
             </div>
           </el-collapse-item>
         </el-collapse>
@@ -371,7 +356,7 @@
             alt=""
             style="width: 16px; height: 16px; margin-right: 10px"
           />
-          <span>添加更多</span>
+          <span><!-- 添加更多 -->{{$t('PredictEditPage.add_more_btn')}}</span>
         </div>
       </div>
     </div>
@@ -389,7 +374,7 @@
         
       </div>
       <div class="empty-box" v-show="!edbData.DataList">
-        <tableNoData text="暂无信息"/>
+        <tableNoData :text="$t('Common.no_info_msg')"/>
       </div>
     </div>
     <span
@@ -477,63 +462,47 @@ export default {
       },
       formRules: {
         classify: [
-          { required: true, message: "分类不能为空", trigger: "blur" },
+          { required: true, message: /* "分类不能为空" */this.$t('Edb.Valids.classify_msg'), trigger: "blur" },
         ],
-        oldEdb: [{ required: true, message: "指标不能为空", trigger: "blur" }],
+        oldEdb: [{ required: true, message: /* "指标不能为空" */this.$t('Edb.Valids.no_edb'), trigger: "blur" }],
         edbName: [
-          { required: true, message: "指标名称不能为空", trigger: "blur" },
+          { required: true, message: /* "指标名称不能为空" */this.$t('Edb.Valids.name_msg'), trigger: "blur" },
         ],
       },
       classifyArr: [],
       predictTypeSetting: [
-        { key: 1, label: "最新" },
-        { key: 2, label: "固定值" },
-        { key: 3, label: "同比" },
-        { key: 4, label: "同差" },
-        { key: 5, label: "环比" },
-        { key: 6, label: "环差" },
-        { key: 7, label: "N期移动均值" },
-        { key: 8, label: "N期段线性外推值" },
-        { key: 9, label: '动态环差' },
-        { key: 10, label: "给定终值后插值" },
-        { key: 11, label: "季节性" },
-        { key: 12, label: "移动平均同比" },
-        { key: 13, label: "同比增速插值" },
-        { key: 14, label: "一元线性拟合" },
-        { key: 15, label: "N年均值" },
-        { key: 16, label: "年度值倒推" },
+        { key: 1, label: /* "最新" */this.$t('PredictEditPage.rule_newset') },
+        { key: 2, label: /* "固定值" */this.$t('PredictEditPage.rule_fix') },
+        { key: 3, label: /* "同比" */this.$t('PredictEditPage.rule_onyear') },
+        { key: 4, label: /* "同差" */this.$t('PredictEditPage.rule_differ') },
+        { key: 5, label: /* "环比" */this.$t('PredictEditPage.rule_mom') },
+        { key: 6, label: /* "环差" */this.$t('PredictEditPage.rule_mom_differ') },
+        { key: 7, label: /* "N期移动均值" */this.$t('PredictEditPage.rule_move_average') },
+        { key: 8, label: /* "N期段线性外推值" */this.$t('PredictEditPage.rule_linear') },
+        { key: 9, label: /* '动态环差' */this.$t('PredictEditPage.rule_dynamic_differ') },
+        { key: 10, label: /* "给定终值后插值" */this.$t('PredictEditPage.rule_inter_end') },
+        { key: 11, label: /* "季节性" */this.$t('PredictEditPage.rule_season') },
+        { key: 12, label: /* "移动平均同比" */this.$t('PredictEditPage.rule_yoy_move') },
+        { key: 13, label: /* "同比增速插值" */this.$t('PredictEditPage.rule_yoy_growth') },
+        { key: 14, label: /* "一元线性拟合" */this.$t('PredictEditPage.rule_linear_reg') },
+        { key: 15, label: /* "N年均值" */this.$t('PredictEditPage.rule_n_year') },
+        { key: 16, label: /* "年度值倒推" */this.$t('PredictEditPage.rule_value_back') },
       ], //预测规则
       predictTypeOptions:[],
-      rulesTip: `预测规则说明:<br> 
-				1、最新:预测值全部等于最新值;<br>
-				2、固定值:预测值默认全部等于常数值;<br>
-				3、同比:去年同期值乘同比增速得到预测值;<br>
-				4、同差:去年同期值加同比增加得到预测值;<br>
-				5、环比:上期值乘环比增速得到预测值;<br>
-				6、环差:上期值加同比增加得到预测值;<br>
-				7、N期移动均值:过去N期值的平均值;<br>
-				8、N期段线性外推值:过去N期值生成线性回归方程:Y=aX+b,将未来的期数代入得到预测值;<br>
-        9、动态环差:选择几个指标进行指标计算得到结果值作为动态环差值,预测值=上期值+动态环差值;<br>
-        10、给定终值后插值:计算最新数据和预测终值的期数差T和数据差S,环差值=S/T,预测数值=前一期数值+环差值(本期-上期);<br>
-        11、季节性:计算过去N年同期的环差(本期-上期)均值,预测值=上期值+环差均值;<br>
-        12、移动平均同比:计算过去N期平均值的同比值(本期/上期),选择同比年份,预测值=同比年份同期值*同比值;<br>
-        13、同比增速插值:计算最新数据的同比增速:(本期数值-去年同期数值)/去年同期数值*100%,输入同比增速终值,通过期数差值,计算每一期同比增速,预测值=去年同期值*(1+该期同比增速)。<br>
-        14、一元线性拟合:由指标A(自变量)和指标B(基础指标)在拟合时间段生成线性回归方程:Y=aX+b,将指标A代入该方程得到拟合指标B',拼接指标B的实际值和B'的预测值,生成预测指标;,<br>
-        15、N年均值:过去N年同期均值。过去N年可以连续或者不连续,指标数据均用线性插值补全为日度数据后计算;<br>
-        16、年度值倒推:设定年度值,余额=年度值-年初至今累计值(算法参考累计值),进行余额分配,均值法分配时保证每期数值相等(日度/周度:剩余期数=剩余自然日历天数/今年指标最新日期自然日历天数*今年至今指标数据期数;旬度/月度/季度/半年度:剩余期数=全年期数(36/12/4/2)-今年至今自然日历期数),同比法保证每期同比相等(同比增速=余额/同比年份相应日期的余额,预测值等于同比年份同期值*同比增速)`,
+      rulesTip: this.$t('PredictEditPage.rule_tip'),
       labelMap: {
-        2: '固定值',
-        3: '同比增速',
-        4: '同比增加值',
-        5: '环比增速',
-        6: '环比增加值',
-        7: '期数',
-        8: '期数',
-        10: '预测终值',
-        11: '期数',
-        12: '期数',
-        13: '同比增速终值',
-        16: '年度值'
+        2: /* '固定值' */this.$t('PredictEditPage.rule_fix'),
+        3: /* '同比增速' */this.$t('PredictEditPage.label_value_yoy_growth'),
+        4: /* '同比增加值' */this.$t('PredictEditPage.label_value_yoy_add'),
+        5: /* '环比增速' */this.$t('PredictEditPage.label_value_mom_growth'),
+        6: /* '环比增加值' */this.$t('PredictEditPage.label_value_mom_add'),
+        7: /* '期数' */this.$t('PredictEditPage.label_periods'),
+        8: /* '期数' */this.$t('PredictEditPage.label_periods'),
+        10: /* '预测终值' */this.$t('PredictEditPage.label_periods'),
+        11: /* '期数' */this.$t('PredictEditPage.label_periods'),
+        12: /* '期数' */this.$t('PredictEditPage.label_periods'),
+        13: /* '同比增速终值' */this.$t('PredictEditPage.label_value_yoy_end'),
+        16: /* '年度值' */this.$t('PredictEditPage.label_value_year')
       },
       rulesArr: [{ 
         endDate: "",
@@ -888,7 +857,7 @@ export default {
           || (item.predict_type===14 && item.endDate && item.fit_date[0] && item.fit_date[1] && item.self_target)
           || ![1,11,12,14,15].includes(item.predict_type) && item.endDate && item.fixedValue
       })
-      if(!isRulesComplete) return this.$message.warning('请填写完整的规则')
+      if(!isRulesComplete) return this.$message.warning(/* '请填写完整的规则' */this.$t('PredictEditPage.vaild_full_rule'))
       
       const { edb_id,classify,oldEdb,edbName,dateType } = this.formData;
 
@@ -959,7 +928,8 @@ export default {
 
       if (Ret !== 200) return;
 
-      this.$message.success("保存成功");
+      // this.$message.success("保存成功");
+      this.$message.success(this.$t('MsgPrompt.saved_msg'));
       //编辑的话更新图
       edb_id && this.$nextTick(() => {
         this.setChartImage();
@@ -1062,9 +1032,10 @@ export default {
 
     /* 删除规则 */
     removeRuleHandle(item, index) {
-      if(this.rulesArr.length===1) return this.$message.warning('请至少保留一条预测规则');
+      if(this.rulesArr.length===1) return this.$message.warning(/* '请至少保留一条预测规则' */this.$t('PredictEditPage.vaild_last_rule'));
       this.rulesArr.splice(index, 1);
-      this.$message.success("删除成功");
+      // this.$message.success("删除成功");
+      this.$message.success(this.$t('MsgPrompt.delete_msg'));
     },
 
     /* 选择日期时提示不能小于上个日期 */

+ 12 - 10
src/views/predictEdb_manage/components/chartInfo.vue

@@ -28,7 +28,7 @@
                             @click.native="changeYear(item)"
                             >{{ item.name }}</el-button>
                     </div>
-                    <el-button type="primary" plain size="mini" class="year-btn" slot="reference" style="margin-right:15px;background-color: #e6eefb;color:#0052D9;">时间段</el-button>
+                    <el-button type="primary" plain size="mini" class="year-btn" slot="reference" style="margin-right:15px;background-color: #e6eefb;color:#0052D9;">{{$t('Chart.time_interval')}}<!-- 时间段 --></el-button>
                 </el-popover>
                 <el-button 
                     type="primary" size="mini"
@@ -56,7 +56,8 @@
                 v-permission="permissionBtn.predictEdbPermission.edbPreData_switchSeason"
                 @click="chartTypeChange">
                 <i class="el-icon-sort" style="transform: rotate(90deg);"></i>
-                    切换{{chartInfo.ChartType==1?'季节性图':'曲线图'}}
+                    <!-- 切换{{chartInfo.ChartType==1?'季节性图':'曲线图'}} -->
+                    {{chartInfo.ChartType===1?$t('Edb.switch_season'):$t('Edb.switch_curve')}}
             </el-button>
         </div>
         <div class="chartWrapper">
@@ -72,8 +73,8 @@
                 v-if="chartInfo.ChartType === 2"
                 @change="seasonTypeChange2"
             >
-                <el-radio-button label="公历" />
-                <el-radio-button label="农历" />
+                <el-radio-button label="公历">{{$t('Chart.calendar_gre')}}</el-radio-button>
+				<el-radio-button label="农历">{{$t('Chart.calendar_lunar')}}</el-radio-button>
             </el-radio-group>
 
             <div class="range-cont left">
@@ -138,15 +139,16 @@ export default {
         return {
             year_select: 10, //年份选择项
             year_select_season: 20, //季节性年份选择项 默认最近五年
-            yearSelector: [
+            select_date: [], // 自定义时间段项
+            season_year:[],//季节图日期选择
+
+            yearSelector:[
                 {
-                    name: '全部',
+                    name: /* '全部' */this.$t('Chart.time_all'),
                     value: 10,
                 },
                 ...yearSelector,
             ],
-            select_date: [], // 自定义时间段项
-            season_year:[],//季节图日期选择
 
             options: {},
             chartInfo:{
@@ -157,7 +159,7 @@ export default {
             /* 日期弹窗 */
             isDateDia: false, // 时间段弹窗
             dateForm: {},
-            dateTip: '请选择时间段',
+            dateTip: /* '请选择时间段' */ this.$t('Chart.choose_time'),
             count_year:5,
             count_year_season:5,
             isPredictorChart:true, // 复用了相同的逻辑,为了预测指标图表和正常的图库图表区分开
@@ -181,7 +183,7 @@ export default {
         changeYear(item){
             this.year_select = item.value
             this.select_date = [];
-            this.dateTip = '请选择时间段';
+            this.dateTip = /* '请选择时间段' */ this.$t('Chart.choose_time');
             this.$emit('refreshData','saveLimit')
         },
 		/* 打开时间段弹窗 */

+ 39 - 32
src/views/predictEdb_manage/components/childData.vue

@@ -80,7 +80,7 @@
           ><span :class="['value-style',{'predict-act': item.isPredic}]">{{item.Value}}</span></span
         >
       </li>
-      <li class="nodata value-item" v-if="!dataList.length">暂无数据</li>
+      <li class="nodata value-item" v-if="!dataList.length"><!-- 暂无数据 -->{{$t('Table.prompt_slogan')}}</li>
     </ul>
   </div>
 </template>
@@ -103,57 +103,64 @@ export default {
         userid: this.tableData[0].SysUserId})
     }
   },
-  data() {
-    return {
-      tableColums: [
-        {
-            label: '指标ID',
-            key: 'EdbCode',
-            widthsty: '280px'
-        },
+  computed: {
+    /*表格列 */
+		tableColums(){
+			return [
+				{
+					label: this.$t('Edb.Detail.e_id'),
+					key: 'EdbCode',
+					 widthsty: '280px'
+				},
+				{
+					label: this.$t('Edb.Detail.e_name'),
+					key: 'EdbName',
+					minwidthsty: '200px'
+				},
+				{
+					label: this.$t('Edb.Detail.e_fre'),
+					key: 'Frequency',
+					 widthsty: '100px'
+				},
+				{
+					label: this.$t('Edb.Detail.e_unit'),
+					key: 'Unit',
+					widthsty: '140px'
+				},
+			]
+		},
+		tableColumsTwo() {
+			return [
         {
-            label: '指标名称',
-            key: 'EdbName',
-            minwidthsty: '200px'
-        },
-        {
-            label: '频度',
-            key: 'Frequency',
-            widthsty: '100px'
-        },
-        {
-            label: '单位',
-            key: 'Unit',
-            widthsty: '140px'
-        },
-      ],
-      tableColumsTwo:[
-        {
-            label: '指标目录',
+            label: this.$t('Edb.Detail.e_menu'),
             key: 'Menu',
             widthsty: '280px',
         },
         {
-            label: '起始时间',
+            label: this.$t('Edb.Detail.e_start_time'),
             key: 'StartDate',
             minwidthsty: '100px',
         },
         {
-            label: '预测截止日期',
+            label: this.$t('Edb.Detail.predict_end_date'),
             key: 'EndDate',
             minwidthsty: '100px'
         },
         {
-            label: '更新时间',
+            label: this.$t('Edb.Detail.e_update_time'),
             key: 'ModifyTime',
             minminwidthsty: '120px',
         },
         {
-            label: '添加人',
+            label: this.$t('Edb.creater'),
             key: 'SysUserRealName',
             widthsty: '140px',
         }
-      ],
+      ]
+		},
+  },
+  data() {
+    return {
       showData: false,
       tableData: [],
       page_no: 1,

+ 9 - 9
src/views/predictEdb_manage/components/classifyDia.vue

@@ -4,38 +4,38 @@
 		:visible.sync="isOpenDialog"
 		:close-on-click-modal="false"
 		:modal-append-to-body='false'
-		:title="title"
+		:title="title==='添加' ? $t('Table.add_btn') : $t('Table.edit_btn')"
 		@close="cancelHandle"
 		custom-class="dialog"
 		center
-		width="560px"
+		width="650px"
 		v-dialogDrag>
 			<div class="dialog-main">
 				<el-form
 				ref="diaForm"
 				label-position="left"
 				hide-required-asterisk
-				label-width="80px"
+				label-width="120px"
 				:model="formData"
 				:rules="formRules">
 				
-				<el-form-item label="上级目录" v-if="formData.Level>0">
+				<el-form-item :label="$t('EtaBasePage.parent_menu')" v-if="formData.Level>0">
 					<el-tooltip class="item" effect="dark" :content="getParentName" placement="top">
       					<span class="parentStr">{{getParentName}}</span>
     				</el-tooltip>
 				</el-form-item>
 
-				<el-form-item label="目录名称" prop="classify_name">
+				<el-form-item :label="$t('EtaBasePage.menu_name')"  prop="classify_name">
 					<el-input
 					v-model="formData.classify_name"
 					style="width: 80%"
-					placeholder="必填项"></el-input>
+					:placeholder="$t('Dialog.require_vaild')"></el-input>
 				</el-form-item>
 				</el-form>
 			</div>
 			<div class="dia-bot">
-				<el-button type="primary" style="margin-right:20px" @click="saveHandle">保存</el-button>
-				<el-button type="primary" plain @click="cancelHandle">取消</el-button>
+				<el-button type="primary" style="margin-right:20px" @click="saveHandle"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
+				<el-button type="primary" plain @click="cancelHandle"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</el-dialog>
 	</div>
@@ -81,7 +81,7 @@ export default {
 			formData: {},
       formRules: {
         classify_name:[
-          { required: true, message: '目录名称不能为空', trigger: 'blur' },
+          { required: true, message: this.$t('EtaBasePage.input_menu_msg'), trigger: 'blur' },
         ]
       },
 

+ 32 - 30
src/views/predictEdb_manage/components/dynamicRingdiffer.vue

@@ -11,7 +11,7 @@
 		v-dialogDrag
 	>
 		<div slot="title" style="display: flex; align-items: center">
-			<span style="font-size: 16px">{{ title }}</span>
+			<span style="font-size: 16px"><!-- 设置环比增加值 -->{{ $t('PredictEditPage.set_mom_btn') }}</span>
 		</div>
 		<div class="dialog-main">
 			<ul class="add-cont">
@@ -22,7 +22,7 @@
 						v-loadMore="searchLoad"
 						:filterable="!list.target"
 						clearable
-						placeholder="请输入指标名称"
+						:placeholder="$t('Edb.InputHolderAll.input_name')"
 						style="width: 400px"
 						@change="chooseTarget"
 						@clear="clearHandle(index)"
@@ -49,7 +49,7 @@
 						@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>
@@ -58,13 +58,13 @@
 					class="el-icon-circle-plus-outline"
 					style="color: #5882ef; font-size: 16px"
 				/>
-				添加更多参数
+				<!-- 添加更多参数 -->{{$t('EtaBasePage.add_more_param')}}
 			</span>
 			<div class="computed-min">
 				
 				<div class="computed-section">
 					<div>
-						<label class="label">空值处理
+						<label class="label"><!-- 空值处理 -->{{$t('EtaBasePage.null_val_deal')}}
 							<el-tooltip placement="top">
 								<div slot="content" v-html="formTips['null-val']" style="width:300px;line-height:20px;"/>
 								<i class="el-icon-question"/>
@@ -85,7 +85,7 @@
 					</div>
 
 					<div style="margin-left: 120px" v-if="showMaxNullDeal">
-						<label class="label">MAX、MIN空值处理
+						<label class="label"><!-- MAX、MIN空值处理 --> {{$t('EtaBasePage.max_null_val')}}
 							<el-tooltip placement="top">
 								<div slot="content" v-html="formTips['max-null-val']" style="width:300px;line-height:20px;"/>
 								<i class="el-icon-question"/>
@@ -100,11 +100,11 @@
 						</el-select>
 					</div>
 
-          <el-button type="primary" @click="getResult" style="margin-left: 10px">一键计算</el-button>
+          <el-button type="primary" @click="getResult" style="margin-left: 10px"><!-- 一键计算 -->{{$t('PredictEditPage.calculate_one_btn')}}</el-button>
 				</div>
 
 				<div class="computed-section">
-					<label class="label">计算公式
+					<label class="label"><!-- 计算公式 -->{{$t('EtaBasePage.calculate_formula')}}
 						<el-tooltip placement="top">
 							<div slot="content" v-html="formTips['formula']" style="width:300px;line-height:20px;"/>
 							<i class="el-icon-question"/>
@@ -113,16 +113,16 @@
 
 					<ul class="formula-list">
 						<li style="margin-bottom: 15px;">
-							<el-input placeholder="请输入公式" v-model="formulaList[0].formula" clearable style="width: 220px"/>
+							<el-input :placeholder="$t('EtaBasePage.input_formula_msg')" v-model="formulaList[0].formula" clearable style="width: 220px"/>
 							
 							<span v-if="formulaDateArr.length" class="date-section-text">{{formulaDateArr[formulaDateArr.length-1]}}(含)之后</span>
 
-							<span class="example-txt">公式示例:A*0.5+B*C*1.2+120-MAX(A,B,C) &nbsp;函数支持:MAX(),MIN(),ln(A),log(a,A),abs(),exp(),pow(),round()</span>
+							<span class="example-txt">{{$t('EtaBasePage.formula_examp')}}:A*0.5+B*C*1.2+120-MAX(A,B,C) &nbsp;{{$t('EtaBasePage.func_examp')}}:MAX(),MIN(),ln(A),log(a,A),abs(),exp(),pow(),round()</span>
 						</li>
 
 						<li class="formula-item" v-for="(item,index) in formulaList.slice(1)" :key="index+1">
 							<el-input 
-								placeholder="请输入公式" 
+								:placeholder="$t('EtaBasePage.input_formula_msg')" 
 								v-model="item.formula" 
 								clearable
 								style="width: 220px"
@@ -133,7 +133,7 @@
 								type="date"
 								value-format="yyyy-MM-dd"
 								style="margin: 0 10px;width: 220px"
-								placeholder="选择日期"
+								:placeholder="$t('EtaBasePage.input_date_msg')"
 								@change="selectFormulaDate($event,item)"
 							/>
 
@@ -147,7 +147,7 @@
 					</ul>
 				</div>
 
-				<el-button icon="el-icon-plus" style="margin-left:70px;" @click="addFormulaHandle">新增分段</el-button>
+				<el-button icon="el-icon-plus" style="margin-left:70px;" @click="addFormulaHandle"><!-- 新增分段 -->{{$t('EtaBasePage.add_segm')}}</el-button>
 			</div>
       
       <el-table
@@ -169,7 +169,7 @@
           </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>
 		</div>
@@ -178,9 +178,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>
@@ -216,7 +216,20 @@ export default {
 
 		formulaDateArr() {
 			return this.formulaList.map(_ => _.date).filter(_ => _).sort((a,b) => new Date(a)-new Date(b))
-		}
+		},
+		
+		tableColums(){
+			return [
+        {
+					label: /* '日期' */this.$t('PredictEditPage.result_column1'),
+					key: 'DataTime',
+				},
+				{
+					label: /* '环比增加值' */this.$t('PredictEditPage.result_column2'),
+					key: 'Value',
+				},
+      ]
+		} 
 	},
 	watch: {
 		isOpenDialog(newval) {
@@ -281,17 +294,6 @@ export default {
 			search_page: 1,
 			current_search:'',
 
-      tableColums: [
-        {
-					label: '日期',
-					key: 'DataTime',
-				},
-				{
-					label: '环比增加值',
-					key: 'Value',
-				},
-      ],
-
 			formulaList: [
 				{ formula: '', }
 			],
@@ -400,7 +402,7 @@ export default {
 			this.addList.splice(index, 1);
 		},
 		saveHandle() {
-			if (!this.formulaList[0].formula) return this.$message.warning('计算公式不能为空');
+			if (!this.formulaList[0].formula) return this.$message.warning(/* '计算公式不能为空' */this.$t('EtaBasePage.input_formula_valid'));
 			// 指标id数组
       let target_arr = this.addList.filter(item => item.target);
 			
@@ -415,7 +417,7 @@ export default {
 
 		/* 获取数据 */
 		async getResult() {
-			if (!this.formulaList[0].formula) return this.$message.warning('计算公式不能为空');
+			if (!this.formulaList[0].formula) return this.$message.warning(/* '计算公式不能为空' */this.$t('EtaBasePage.input_formula_valid'));
 			
 			let EdbInfoIdArr = this.addList.filter(_ => _.target).map(_ => ({
 				EdbInfoId: _.target,

+ 4 - 4
src/views/predictEdb_manage/components/edbDetail.vue

@@ -9,15 +9,15 @@
         />
         <div class="info" style="display: flex;justify-content: flex-end;">
           <!--   <span>数据来源:{{edbData.EdbInfo.SourceName}}</span> -->
-            <span>添加人:{{edbData.EdbInfo.SysUserRealName}}</span>
+            <span><!-- 添加人 -->{{$t('Edb.creater')}}:{{edbData.EdbInfo.SysUserRealName}}</span>
         </div>
         <ul
             class="value-ul"
             v-show="showData&&dataList.length"
             >
             <li class="value-item" style="background-color: #EBEFF6;">
-                <span style="width:240px">日期(频度:{{EdbData.Frequency}})</span>
-                <span style="flex:1;">值</span>
+                <span style="width:240px">{{$t('Edb.Detail.e_date')}}({{$t('Edb.Detail.e_fre')}}:{{EdbData.Frequency}})</span>
+                <span style="flex:1;">{{$t('Edb.Detail.e_value')}}<!--  --></span>
             </li>
             <li
                 class="value-item"
@@ -38,7 +38,7 @@
                 </span
                 >
             </li>
-            <li class="nodata value-item" v-if="!dataList.length">暂无数据</li>
+            <li class="nodata value-item" v-if="!dataList.length"><!-- 暂无数据 -->{{$t('Table.prompt_slogan')}}</li>
         </ul>
 
     </div>

+ 73 - 77
src/views/predictEdb_manage/components/operationDialog.vue

@@ -15,7 +15,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">
 			
@@ -25,14 +25,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 @@
 				<i class="el-icon-tickets" style="color:#409EFF;font-size:18px" @click="$emit('lookHistory',select_target)" v-if="select_target"/>
 			</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 
@@ -110,12 +110,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 === 46" prop="moveVal">
+						<el-form-item :label="$t('EtaBasePage.label_move_way')" style="display: block;" v-if="type === 46" prop="moveVal">
 							<el-select
 								v-model="formData.moveType"
 								style="width: 100px"
@@ -156,34 +156,22 @@
 							</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&&[32,33].includes(type)"
 							/>
 						</el-form-item>
-						<el-form-item label="指标目录" prop="menu">
-							<!-- <el-select
-								v-model="formData.menu"
-								placeholder="请选择分类"
-								style="width: 340px"
-								clearable
-							>
-								<el-option
-									v-for="item in options"
-									:key="item.ClassifyId"
-									:label="item.ClassifyName"
-									:value="item.ClassifyId"
-								/>
-							</el-select> -->
+						<el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
+
 							<el-cascader
 								v-model="formData.menu"
 								:options="options"
@@ -194,13 +182,13 @@
 									checkStrictly: true
 								}"
 								style="width: 90%"
-								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="[42,45,64,66].includes(type)||(!operationForm.edb_id&&[32,33].includes(type))"
@@ -214,16 +202,16 @@
 								</el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="N等于" prop="n_num" v-if="[39,43,44,49].includes(type)">
+						<el-form-item :label="$t('EtaBasePage.label_n_val')" prop="n_num" v-if="[39,43,44,49].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===49">
+						<el-form-item :label="$t('EtaBasePage.label_calendar')"  prop="calendar_type" v-if="type===49">
 							<el-select
 								v-model="formData.calendar_type"
 								placeholder="请选择日历"
@@ -239,19 +227,19 @@
 								</el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="数据取值" prop="value_type" v-if="type===54">
+						<el-form-item :label="$t('EtaBasePage.label_val_type')"  prop="value_type" v-if="type===54">
 							<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-item label="数据来源" v-if="[69,70].includes(type)" style="width:50%">
+						<el-form-item :label="$t('Edb.Detail.source')" v-if="[69,70].includes(type)" style="width:50%">
 							<span>{{type===69?'标准差':'百分比'}}</span>
 						</el-form-item>
 					</el-form>
@@ -264,9 +252,9 @@
 				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"
@@ -274,7 +262,7 @@
 			trigger="click"
 			v-show="$parent.tips.get(type)">
 			<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>
@@ -327,68 +315,78 @@ export default {
 			}
 
 			this.sourceList = [42,64].includes(this.type)
-				? [{ label: '累计值转月值',key: 42 },{ label: '累计值转季值',key: 64 }]
+				? [{ label: /* '累计值转月值' */this.$t('Edb.CalculatesAll.to_month'),key: 42 },{ label: /* '累计值转季值' */this.$t('Edb.CalculatesAll.to_quarter'),key: 64 }]
 				: [65,66].includes(this.type)
-				? [{ label: '累计值',key: 65 },{ label: '年初至今累计值',key: 66 }]
+				? [{ label: /* '累计值' */this.$t('Edb.CalculatesAll.cumulate'),key: 65 },{ label: /* '年初至今累计值' */this.$t('Edb.CalculatesAll.cumulate_oneyear'),key: 66 }]
 				: []
 		}
 	},
-	data () {
-		return {
-			select_target:'',
-			searchOptions:[],//指标列表
-			haveMore: true,
-			dataList:[],
-			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:[],
+			page_no:1,
 			titleMap: new Map([
-				[42,'累计值转月/季值'],
-				[32,'同比值'],
-				[33,'同差值'],
-				[39,'N数值移动平均计算'],
-				[43,'N数值环比值'],
-				[44,'N数值环差值'],
-				[45,'升频'],
-				[46,'时间移位'],
-				[49,'超季节性'],
-				[55,'年化'],
-				[54,'降频'],
-				[64,'累计值转月/季值'],
-				[65,'累计值'],
-				[66,'累计值'],
-				[69,'标准差'],
-				[70,'百分比'],
+				[42,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[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')],/* 升频 */
+				[46,this.$t('Edb.CalculatesAll.time_move')],/* '时间移位' */
+				[49,this.$t('Edb.CalculatesAll.super_season')],/* '超季节性'  */
+				[55,this.$t('Edb.CalculatesAll.annual')],/* '年化'  */
+				[54,this.$t('Edb.CalculatesAll.down_conver')],/* '降频' */
+				[64,this.$t('Edb.CalculatesAll.to_month_quarter')],/* '累计值转月/季值' */
+				[65,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[66,this.$t('Edb.CalculatesAll.cumulate')],/* '累计值' */
+				[69,this.$t('Edb.CalculatesAll.standard_differ')],/* 标准差 */
+				[70,this.$t('Edb.CalculatesAll.percent')],/* 百分比 */
 			]),//标题
 			saveBtnMap: new Map([
 				[42,'转月值计算'],
@@ -418,8 +416,6 @@ export default {
 				calendar_type: '公历',
 				value_type: '期末值'
 			},
-			formRules,
-			unitArr,
 			options: [],
 			frequencyArr: ['日度', '周度','旬度', '月度', '季度', '年度'],
 			fre_options: ['天','周','月','季','年'],
@@ -625,7 +621,7 @@ export default {
 					this.loading = false;
 					if(res.Ret !== 200) return
 
-					this.$message.success(this.operationForm.edb_id ? '编辑成功' : '新增成功');
+					this.$message.success(res.Msg);
 					this.operationForm.edb_id ? this.$emit('addCallBack','edit') : this.$emit('addCallBack','add',{ 
 						code:res.Data.UniqueCode,
 						id:res.Data.EdbInfoId,

+ 48 - 64
src/views/predictEdb_manage/components/rulesDetailDia.vue

@@ -3,15 +3,15 @@
 		:visible.sync="isOpenDialog"
 		:close-on-click-modal="false"
 		:modal-append-to-body='false'
-    title="查看预测规则"
+    :title="$t('PredictEdbPage.view_rules')"
 		@close="cancelHandle"
 		custom-class="rule-dialog"
 		center
 		width="750px"
 		v-dialogDrag>
       <div class="top">
-        <span>原指标ID:{{fromEdbInfo.FromEdbCode}}</span>
-        <span>原指标名称:{{fromEdbInfo.FromEdbName}}</span>
+        <span><!-- 原指标ID -->{{$t('PredictEdbPage.old_edb_id')}}:{{fromEdbInfo.FromEdbCode}}</span>
+        <span><!-- 原指标名称 -->{{$t('PredictEdbPage.old_edb_name')}}:{{fromEdbInfo.FromEdbName}}</span>
       </div>
       <el-collapse v-model="activeNames" class="rules-ul">
           <el-collapse-item
@@ -20,21 +20,21 @@
             :name="index"
           >
             <template slot="title">
-              <span class="text_oneLine" style="font-size: 16px;">规则{{ index + 1 }}({{predictTypeMap[item.predict_type]}})</span>
+              <span class="text_oneLine" style="font-size: 16px;">{{$t('PredictEditPage.label_rule')}}{{ index + 1 }}({{predictTypeMap[item.predict_type]}})</span>
             </template>
             <div class="wrap">
               <div class="item">
-                <span class="label">预测截止日期</span>
+                <span class="label">{{$t('PredictEdbPage.predict_end_date')}}<!-- 预测截止日期 --></span>
                 <span>{{item.endDate}}</span>
               </div>
               <div class="item">
                 <span class="label">
-                  预测规则
+                  <!-- 预测规则 -->{{$t('PredictEdbPage.predict_rule')}}
                   <el-tooltip effect="dark" placement="right">
                     <div
                       slot="content"
                       v-html="rulesTip"
-                      style="line-height: 20px;max-width:600px"
+                      style="line-height: 20px;max-width:600px;max-height:550px;overflow-y:auto"
                     ></div>
                     <i class="el-icon-question" style="color: #666" />
                   </el-tooltip>
@@ -49,16 +49,16 @@
               <!-- 动态环差 -->
               <template v-if="item.predict_type===9">
                 <div class="item">
-                  <span class="label">环比增加值</span>
+                  <span class="label"><!-- 环比增加值 -->{{$t('PredictEditPage.label_value_mom_add')}}</span>
                   <ul class="edb-ul">
                     <li v-for="edb in item.edbarr" :key="edb.target">
                       <div>{{edb.tag}}:{{edb.name}}</div>
-                      <span style="color: #5882ef;font-size:14px">{{edb.start_date}}{{edb.end_date}}</span>
+                      <span style="color: #5882ef;font-size:14px">{{edb.start_date}}{{$t('Common.to')}}{{edb.end_date}}</span>
                     </li>
                   </ul>
                 </div>
                 <div class="item">
-                  <span class="label">计算公式</span>
+                  <span class="label"><!-- 计算公式 -->{{$t('PredictEdbPage.label_formula')}}</span>
                   <span>{{item.fixedValue}}</span>
                 </div>
               </template>
@@ -66,11 +66,11 @@
               <!-- 季节性 -->
               <template v-else-if=" [15,11].includes(item.predict_type)">
                 <div class="item">
-                  <span class="label">过去N年</span>
+                  <span class="label"><!-- 过去N年 -->{{$t('PredictEdbPage.label_past_year')}}</span>
                   <span>{{item.season_years}}</span>
                 </div>
                 <div class="item" v-if="item.predict_type===11">
-                  <span class="label">日历</span>
+                  <span class="label"><!-- 日历 -->{{$t('PredictEdbPage.label_calendar')}}</span>
                   <span>{{item.season_type}}</span>
                 </div>
               </template> 
@@ -78,11 +78,11 @@
               <!-- 移动平均同比 -->
               <template v-else-if="item.predict_type===12">
                 <div class="item">
-                  <span class="label">期数</span>
+                  <span class="label"><!-- 期数 -->{{$t('PredictEditPage.label_periods')}}</span>
                   <span>{{item.n_value}}</span>
                 </div>
                 <div class="item">
-                  <span class="label">同比年份</span>
+                  <span class="label"><!-- 同比年份 -->{{$t('PredictEditPage.label_yoy_year')}}</span>
                   <span>{{item.average_year}}</span>
                 </div>
               </template> 
@@ -90,15 +90,15 @@
               <!-- 一元线性拟合 -->
               <template v-else-if="item.predict_type===14">
                 <div class="item">
-                  <span class="label">自变量</span>
+                  <span class="label"><!-- 自变量 -->{{$t('PredictEditPage.label_slef_var')}}</span>
                   <span>{{item.self_target}}</span>
                 </div>
                 <div class="item">
-                  <span class="label">领先天数</span>
+                  <span class="label"><!-- 领先天数 -->{{$t('PredictEditPage.label_lead_day')}}</span>
                   <span>{{item.fixedValue}}</span>
                 </div>
                 <div class="item">
-                  <span class="label">拟合时间段</span>
+                  <span class="label"><!-- 拟合时间段 -->{{$t('PredictEditPage.label_fitting_time')}}</span>
                   <span>{{item.fit_date[0]+'至'+item.fit_date[0]}}</span>
                 </div>
               </template> 
@@ -106,11 +106,11 @@
               <!-- 年度倒退 -->
               <template v-else-if="item.predict_type===16">
                 <div class="item">
-                  <span class="label">分配方式</span>
-                  <span>{{item.distribute_type===1?'均值法':'同比法'}}</span>
+                  <span class="label"><!-- 分配方式 -->{{$t('PredictEditPage.label_distru_way')}}</span>
+                  <span>{{item.distribute_type===1?$t('PredictEditPage.option_distru_way1'):$t('PredictEditPage.option_distru_way2')}}</span>
                 </div>
                 <div class="item" v-if="item.distribute_type===2">
-                  <span class="label">同比年份</span>
+                  <span class="label"><!-- 同比年份 -->{{$t('PredictEditPage.label_yoy_year')}}</span>
                   <span>{{item.on_year}}</span>
                 </div>
               </template> 
@@ -173,52 +173,36 @@ export default {
       activeNames:[0],
       rulesArr: [],
       predictTypeMap: {
-        1: "最新" ,
-        2: "固定值" ,
-        3: "同比" ,
-        4: "同差" ,
-        5: "环比" ,
-        6: "环差" ,
-        7: "N期移动均值" ,
-        8: "N期段线性外推值" ,
-        9: '动态环差' ,
-        10: "给定终值后插值" ,
-        11: '季节性',
-        12: '移动平均同比',
-        13: "同比增速差值" ,
-        14: "一元线性拟合" ,
-        15: 'N年均值',
-        16: '年度倒退值'
+        1: /* "最新" */this.$t('PredictEditPage.rule_newset'),
+        2: /* "固定值" */this.$t('PredictEditPage.rule_fix'),
+        3: /* "同比" */this.$t('PredictEditPage.rule_onyear'),
+        4: /* "同差" */this.$t('PredictEditPage.rule_differ'),
+        5: /* "环比" */this.$t('PredictEditPage.rule_mom'),
+        6: /* "环差" */this.$t('PredictEditPage.rule_mom_differ'),
+        7: /* "N期移动均值" */this.$t('PredictEditPage.rule_move_average'),
+        8: /* "N期段线性外推值" */this.$t('PredictEditPage.rule_linear'),
+        9: /* '动态环差' */this.$t('PredictEditPage.rule_dynamic_differ'),
+        10: /* "给定终值后插值" */this.$t('PredictEditPage.rule_inter_end') ,
+        11: /* "季节性" */this.$t('PredictEditPage.rule_season'),
+        12: /* "移动平均同比" */this.$t('PredictEditPage.rule_yoy_move'),
+        13: /* "同比增速插值" */this.$t('PredictEditPage.rule_yoy_growth'),
+        14: /* "一元线性拟合" */this.$t('PredictEditPage.rule_linear_reg'),
+        15: /* "N年均值" */this.$t('PredictEditPage.rule_n_year'),
+        16: /* "年度值倒推" */this.$t('PredictEditPage.rule_value_back')
       }, //预测规则
-      rulesTip: `预测规则说明:<br>
-				1、最新:预测值全部等于最新值;<br>
-				2、固定值:预测值默认全部等于常数值;<br>
-				3、同比:去年同期值乘同比增速得到预测值;<br>
-				4、同差:去年同期值加同比增加得到预测值;<br>
-				5、环比:上期值乘环比增速得到预测值;<br>
-				6、环差:上期值加同比增加得到预测值;<br>
-				7、N期移动均值:过去N期值的平均值;<br>
-				8、N期段线性外推值:过去N期值生成线性回归方程:Y=aX+b,将未来的期数代入得到预测值;<br>
-        9、动态环差:选择几个指标进行指标计算得到结果值作为动态环差值,预测值=上期值+动态环差值;<br>
-        10、给定终值后插值:计算最新数据和预测终值的期数差T和数据差S,环差值=S/T,预测数值=前一期数值+环差值(本期-上期);<br>
-        11、季节性:计算过去N年同期的环差(本期-上期)均值,预测值=上期值+环差均值;<br>
-        12、移动平均同比:计算过去N期平均值的同比值(本期/上期),选择同比年份,预测值=同比年份同期值*同比值;<br>
-        13、同比增速插值:计算最新数据的同比增速:(本期数值-去年同期数值)/去年同期数值*100%,输入同比增速终值,通过期数差值,计算每一期同比增速,预测值=去年同期值*(1+该期同比增速)。<br>
-        14、一元线性拟合:由指标A(自变量)和指标B(基础指标)在拟合时间段生成线性回归方程:Y=aX+b,将指标A代入该方程得到拟合指标B',拼接指标B的实际值和B'的预测值,生成预测指标;,<br>
-        15、N年均值:过去N年同期均值。过去N年可以连续或者不连续,指标数据均用线性插值补全为日度数据后计算;<br>
-        16、年度值倒推:设定年度值,余额=年度值-年初至今累计值(算法参考累计值),进行余额分配,均值法分配时保证每期数值相等(日度/周度:剩余期数=剩余自然日历天数/今年指标最新日期自然日历天数*今年至今指标数据期数;旬度/月度/季度/半年度:剩余期数=全年期数(36/12/4/2)-今年至今自然日历期数),同比法保证每期同比相等(同比增速=余额/同比年份相应日期的余额,预测值等于同比年份同期值*同比增速)`,
+      rulesTip: this.$t('PredictEditPage.rule_tip'),
         
       labelMap: {
-        2: '固定值',
-        3: '同比增速',
-        4: '同比增加值',
-        5: '环比增速',
-        6: '环比增加值',
-        7: '期数',
-        8: '期数',
-        10: '预测终值',
-        13: '同比增速终值',
-        16: '年度值'
+        2: /* '固定值' */this.$t('PredictEditPage.rule_fix'),
+        3: /* '同比增速' */this.$t('PredictEditPage.label_value_yoy_growth'),
+        4: /* '同比增加值' */this.$t('PredictEditPage.label_value_yoy_add'),
+        5: /* '环比增速' */this.$t('PredictEditPage.label_value_mom_growth'),
+        6: /* '环比增加值' */this.$t('PredictEditPage.label_value_mom_add'),
+        7: /* '期数' */this.$t('PredictEditPage.label_periods'),
+        8: /* '期数' */this.$t('PredictEditPage.label_periods'),
+        10: /* '预测终值' */this.$t('PredictEditPage.label_periods'),
+        13: /* '同比增速终值' */this.$t('PredictEditPage.label_value_yoy_end'),
+        16: /* '年度值' */this.$t('PredictEditPage.label_value_year')
       },
     }
   },
@@ -268,7 +252,7 @@ export default {
           color: #666;
           display: flex;
           .label {
-            width: 120px;
+            min-width: 120px;
             text-align: right;
             color: #333;
             margin-right: 24px;

+ 110 - 100
src/views/predictEdb_manage/predictEdb.vue

@@ -11,11 +11,11 @@
       <div class="main-left left" id="left" v-show="!isSlideLeft">
 				<div class="datasheet_top">
 						<el-button v-permission="permissionBtn.predictEdbPermission.edbPreData_addEdb"
-							type="primary" @click="addEdbHandle">添加指标</el-button>
+							type="primary" @click="addEdbHandle"><!-- 添加指标 -->{{$t('EtaBasePage.add_edb_btn')}}</el-button>
 						<el-button v-permission="permissionBtn.predictEdbPermission.edbPreData_calcuEdb"
-							type="primary" @click="addComputedHandler" style="margin-right:10px;">计算指标</el-button>
-						<change-lang v-permission="permissionBtn.predictEdbPermission.edbPreData_switchEn"
-							:lang="currentLang" style="height: 32px;" @changeLang="changeLangHandle"/>
+							type="primary" @click="addComputedHandler" style="margin-right:10px;"><!-- 计算指标 -->{{$t('EtaBasePage.calculation_edb_btn')}}</el-button>
+						<!-- <change-lang v-permission="permissionBtn.predictEdbPermission.edbPreData_switchEn"
+							:lang="currentLang" style="height: 32px;" @changeLang="changeLangHandle"/> -->
 				</div>
 				<div class="search-cont" v-loading="searchLoading">
 					<el-select
@@ -24,7 +24,7 @@
 						:filterable="!search_txt"
 						remote
 						clearable
-						placeholder="指标名称"
+						:placeholder="$t('Edb.InputHolderAll.input_name')"
 						style="width: 100%"
 						:remote-method="searchHandle"
 						@focus="searchHandle('')"
@@ -41,9 +41,9 @@
 					</el-select>
 				</div>
         <div style="margin:20px 0;padding:0 20px;display:flex;justify-content:space-between">
-					<span>目录</span>
+					<span><!-- 目录 -->{{$t('Common.category')}}</span>
 					<el-checkbox v-model="isOnlyMe" v-permission="permissionBtn.predictEdbPermission.edbPreData_isOnlyMine"
-						@change="onlyMeHandler">只看我的</el-checkbox>
+						@change="onlyMeHandler"><!-- 只看我的 -->{{$t('PredictEdbPage.only_see_mine')}}</el-checkbox>
 				</div>
 				<div class="tree-cont">
 					<div class="target_tree">
@@ -59,7 +59,7 @@
 						:draggable="isEdbBtnShow('edbPreData_classifyOpt_move')"
 						:expand-on-click-node="false"
 						check-strictly
-						empty-text="暂无分类"
+						:empty-text="$t('Common.no_classify_msg')"
 						lazy
 						:load="getLazyTreeData"
 						@node-expand="handleNodeExpand"
@@ -158,7 +158,7 @@
 							alt=""
 							style="width: 16px; height: 16px; margin-right: 10px"
 						/>
-						<span>添加一级目录</span>
+						<span><!-- 添加一级目录 -->{{$t('EtaBasePage.add_first_menu_btn')}}</span>
 					</div>
 				</div>
 				<span
@@ -180,39 +180,68 @@
 				<div class="edb-detail-wrapper main-min-width" v-if="select_id&&!showAssociateChart&&!showAssociateComputeData">
 					<div class="detail-header">
 						<el-tabs v-model="activeTab" @tab-click="changeShowType">
-							<el-tab-pane label="走势图" name="Chart">
+							<el-tab-pane :label="$t('Edb.trend_chart_tab')" name="Chart">
 							</el-tab-pane>
-							<el-tab-pane label="数据详情" name="Data">
+							<el-tab-pane :label="$t('Edb.data_detail_tab')" name="Data">
 							</el-tab-pane>
 						</el-tabs>
 						<div class="edb-tool-icon edb-tool" style="align-items: center;">
-							<el-button v-permission="permissionBtn.predictEdbPermission.edbPreData_update"
-									type="text" @click="updateEdbPartHandle">刷新</el-button>
-							<el-button type="text" @click="editEdbHandle('')" 
-									v-if="edbButton.OpButton&&isEdbBtnShow('edbPreData_edit')">编辑</el-button>
-							<el-button type="text" @click="saveEdbHandle" 
-									v-if="detail_show_chart&&isEdbBtnShow('edbPreData_save')">保存</el-button>
-							<el-button v-permission="permissionBtn.predictEdbPermission.edbPreData_edbSource"
-								type="text" @click="toHistoryPage(select_id,$route.matched);lookEdbId=select_id">指标溯源</el-button>
-							<el-popover v-if="showPopover"
+							<el-button 
+								v-permission="permissionBtn.predictEdbPermission.edbPreData_update"
+								type="text" 
+								@click="updateEdbPartHandle"
+							><!-- 刷新 -->{{$t('Edb.detail_refresh_btn')}}</el-button>
+							<el-button 
+								type="text" 
+								@click="editEdbHandle('')" 
+								v-if="edbButton.OpButton&&isEdbBtnShow('edbPreData_edit')"
+							><!-- 编辑 -->{{$t('Edb.detail_edit_btn')}}</el-button>
+							<el-button 
+								type="text" 
+								@click="saveEdbHandle" 
+								v-if="detail_show_chart&&isEdbBtnShow('edbPreData_save')"
+							><!-- 保存 -->{{$t('Edb.detail_save_btn')}}</el-button>
+							<el-button 
+								v-permission="permissionBtn.predictEdbPermission.edbPreData_edbSource"
+								type="text" 
+								@click="toHistoryPage(select_id,$route.matched);lookEdbId=select_id"
+							><!-- 指标溯源 -->{{$t('Edb.detail_trace_btn')}}</el-button>
+
+							<el-popover 
+								v-if="showPopover"
 								placement="bottom-end" 
 								trigger="hover"
 								popper-class="edb-tool-popover"
-								width="300" style="display: inline-block;">
+								width="300" style="display: inline-block;"
+							>
 								<div class="edb-tool-wrap">
-									<el-button v-permission="permissionBtn.predictEdbPermission.edbPreData_enNameSetting"
-										type="text" @click="clickEdbNameHandle" v-if="currentLang==='ch'||!edb_nameEn">
-										设置英文名称
+									<el-button 
+										v-permission="permissionBtn.predictEdbPermission.edbPreData_enNameSetting"
+										type="text" 
+										@click="clickEdbNameHandle" 
+										v-if="currentLang==='ch'||!edb_nameEn"
+									>
+										{{$t('Edb.detail_en_btn')}}<!-- 设置英文名称 -->
 									</el-button>
-									<el-button v-permission="permissionBtn.predictEdbPermission.edbPreData_recalcu"
-										type="text" @click="updateEdbHandle">重新计算</el-button>
-									<el-button class="deletesty" @click="delEdbHandle" type="text"
-										v-if="edbButton.DeleteButton&&isEdbBtnShow('edbPreData_del')">删除</el-button>
-									<el-button v-permission="permissionBtn.predictEdbPermission.edbPreData_copyData"
-										type="text" @click="copyData">复制数据</el-button>
+									<el-button 
+										v-permission="permissionBtn.predictEdbPermission.edbPreData_recalcu"
+										type="text" 
+										@click="updateEdbHandle"
+									>{{$t('Edb.detail_recalculate_btn')}}<!-- 重新计算 --></el-button>
+									<el-button 
+										class="deletesty" 
+										@click="delEdbHandle" 
+										type="text"
+										v-if="edbButton.DeleteButton&&isEdbBtnShow('edbPreData_del')"
+									>{{$t('Edb.detail_del_btn')}}<!-- 删除 --></el-button>
+									<el-button 
+										v-permission="permissionBtn.predictEdbPermission.edbPreData_copyData"
+										type="text" 
+										@click="copyData"
+									>{{$t('Edb.detail_copydata_btn')}}<!-- 复制数据 --></el-button>
 								</div>
 								<div class="edb-btn" slot="reference">
-									<el-button type="text">更多操作</el-button>
+									<el-button type="text">{{$t('Edb.detail_more_btn')}}<!-- 更多操作 --></el-button>
 									<i class="el-icon-more" style="font-size: 14px;transform: rotate(90deg);cursor: pointer;color: #3375e1;"/>
 								</div>
 							</el-popover>
@@ -240,7 +269,7 @@
 				<!-- 列表 -->
 				<div class="sheet-list-cont" v-else-if="!select_id">
 					<div class="list-top">
-						<span>共{{ edb_total }}个预测指标</span>
+						<span>{{$t('PredictEdbPage.total_list_view',{limit: edb_total})}} </span>
 					</div>
 					<div
 						class="edbChartList-wrapper"
@@ -255,34 +284,14 @@
 								<div class="chart-img" @click="detailShowHandle(item)"
 								:style="item.ChartImage?{background: `no-repeat top/cover url('${item.ChartImage}')`}:{}"></div>
 								<div class="item-bottom">
-									<span>创建时间: {{ item.CreateTime.slice(0,10) }}</span>
+									<span>{{$t('Common.create_time')}}: {{ item.CreateTime.slice(0,10) }}</span>
 								</div>
 							</div>
 						</div>
-						<!-- <el-col
-						:span="8"
-						style="margin-bottom: 20px; padding-right: 20px"
-						v-for="item in edbChartList"
-						:key="item.EdbInfoId"
-						>
-						<el-card class="sheet-item">
-							<div slot="header" class="item-top">
-							<span class="text_oneLine">{{ currentLang === 'en' ? (item.EdbNameEn||item.EdbName) : item.EdbName }}</span>
-							</div>
-							<img
-							:src="item.ChartImage"
-							alt=""
-							class="chart-img"
-							@click="detailShowHandle(item)"
-							/>
-							<div class="item-bottom">
-							<span>创建时间: {{ item.CreateTime.slice(0,10) }}</span>
-							</div>
-						</el-card>
-						</el-col> -->
+
 					</div>
 					<div v-if="!edb_total" class="nodata">
-						<tableNoData text="暂无指标"/>
+						<tableNoData :text="$t('Table.no_edb_msg')"/>
 					</div>
 				</div>
 
@@ -309,8 +318,8 @@
 		v-dialogDrag>
 			<div class="dialog-computed-header">
 				<el-radio-group v-model="computed_source" size="medium" @change="computed_type = 0">
-					<el-radio-button :label="1">常规计算</el-radio-button>
-					<el-radio-button :label="2">批量计算</el-radio-button>
+					<el-radio-button :label="1"><!-- 常规计算 -->{{$t('EtaBasePage.normal_calculate_tab')}}</el-radio-button>
+					<el-radio-button :label="2"><!-- 批量计算 -->{{$t('EtaBasePage.batch_calculate_tab')}}</el-radio-button>
 				</el-radio-group>
 			</div>
 			<ul class="computed-ul">
@@ -467,7 +476,6 @@ import edbDetail from './components/edbDetail.vue'
 import edbClassifyDia from './components/classifyDia.vue'
 import changeLang from "@/views/dataEntry_manage/components/changeLang.vue"
 import setEnNameDia from "@/views/dataEntry_manage/components/setEnNameDia.vue"
-// import computedDialog from './components/computedDialog';
 import computedDialog from '@/views/dataEntry_manage/databaseComponents/computedDialog';
 import operationDialog from './components/operationDialog';
 import rulesDetail from './components/rulesDetailDia.vue'
@@ -606,34 +614,34 @@ export default {
 			isBatchComputed: false,//批量计算弹窗
 
 			baseTypes: [
-				{ name: '指标运算',type: 31 },
-				{ name: '同比值',type: 32 },
-				{ name: '同差值',type: 33 },
-				{ name: 'N数值移动平均计算',type: 39 },
-				{ name: '累计值转月/季值',type: 'toMonthSeason' },
-				{ name: 'N数值环比值',type: 43 },
-				{ name: 'N数值环差值',type: 44 },
-				{ name: '升频',type: 45 },
+				{ name: this.$t('Edb.CalculatesAll.calculate')/* '指标运算' */,type: 31 },
+				{ name: this.$t('Edb.CalculatesAll.on_year')/* '同比值' */,type: 32 },
+				{ name: this.$t('Edb.CalculatesAll.differ')/* '同差值' */,type: 33 },
+				{ name: this.$t('Edb.CalculatesAll.n_move_average')/* 'N数值移动平均计算' */,type: 39 },
+				{ name: this.$t('Edb.CalculatesAll.to_month_quarter')/* '累计值转月/季值' */,type: 'toMonthSeason' },
+				{ name: this.$t('Edb.CalculatesAll.n_rate')/* 'N数值环比值' */,type: 43 },
+				{ name: this.$t('Edb.CalculatesAll.n_differ')/* 'N数值环差值' */,type: 44 },
+				{ name: this.$t('Edb.CalculatesAll.up_conver')/* '升频' */,type: 45 },
 				// { name: '指标拼接',type: 'joint' },
-				{ name: '时间移位',type: 46 },
-				{ name: '超季节性',type: 49 },
-				{ name: '拟合残差',type: 50 },
-				{  name: '年化',type: 55 },
-				{ name: '降频',type: 54 },
-				{ name: '扩散指数',type: 56 },
-				{ name: '累计值',type: 'accumulate' },
-				{ name: '指数修匀',type:'alpha'}
+				{ name: this.$t('Edb.CalculatesAll.time_move')/* '时间移位' */,type: 46 },
+				{ name: this.$t('Edb.CalculatesAll.super_season')/* '超季节性' */,type: 49 },
+				{ name: this.$t('Edb.CalculatesAll.fit_residu')/* '拟合残差' */,type: 50 },
+				{  name: this.$t('Edb.CalculatesAll.annual')/* '年化' */,type: 55 },
+				{ name: this.$t('Edb.CalculatesAll.down_conver')/* '降频' */,type: 54 },
+				{ name: this.$t('Edb.CalculatesAll.diff_index')/* '扩散指数' */,type: 56 },
+				{ name: this.$t('Edb.CalculatesAll.cumulate')/* '累计值' */,type: 'accumulate' },
+				{ name: this.$t('Edb.CalculatesAll.ex_smooth')/* '指数修匀' */,type:'alpha'}
 			],
 			batchTypes: [
-				{ name: '同比值',type: 32 },
-				{ name: '同差值',type: 33 },
-				{ name: 'N数值移动平均计算',type: 39 },
-				{ name: 'N数值环比值',type: 43 },
-				{ name: 'N数值环差值',type: 44 },
-				{ name: '升频',type: 45 },
-				{ name: '累计值转月/季值',type: 'toMonthSeason' },
-				{ name: '累计值',type: 'accumulate' },
-				{ name: '指数修匀',type:'alpha'}
+				{ name: this.$t('Edb.CalculatesAll.on_year')/* '同比值' */,type: 32 },
+				{ name: this.$t('Edb.CalculatesAll.differ')/* '同差值' */,type: 33 },
+				{ name: this.$t('Edb.CalculatesAll.n_move_average')/* 'N数值移动平均计算' */,type: 39 },
+				{ name: this.$t('Edb.CalculatesAll.n_rate')/* 'N数值环比值' */,type: 43 },
+				{ name: this.$t('Edb.CalculatesAll.n_differ')/* 'N数值环差值' */,type: 44 },
+				{ name: this.$t('Edb.CalculatesAll.up_conver')/* '升频' */,type: 45 },
+				{ name: this.$t('Edb.CalculatesAll.to_month_quarter')/* '累计值转月/季值' */,type: 'toMonthSeason' },
+				{ name: this.$t('Edb.CalculatesAll.cumulate')/* '累计值' */,type: 'accumulate' },
+				{ name: this.$t('Edb.CalculatesAll.ex_smooth')/* '指数修匀' */,type:'alpha'}
 			],
       isOnlyMe:false,//只看我的
 
@@ -700,7 +708,7 @@ export default {
 					
 					this.$refs.detailComponentRef.$refs.chartInfo.select_date=[];
 					this.$refs.detailComponentRef.$refs.chartInfo.season_year=[];
-					this.$refs.detailComponentRef.$refs.chartInfo.dateTip='请选择时间段';
+					this.$refs.detailComponentRef.$refs.chartInfo.dateTip=this.$t('Chart.choose_time');
 
 				}
 			})
@@ -846,7 +854,8 @@ export default {
 				MinValue: Number(this.$refs.detailComponentRef.$refs.chartInfo.tableData[0].MinData)
 			})
 			if(Ret !== 200) return
-			this.$message.success('保存成功')
+			// this.$message.success('保存成功')
+			this.$message.success(this.$t('MsgPrompt.saved_msg'))
 
 			this.setChartImage()
 		},
@@ -1002,9 +1011,9 @@ export default {
 
 		/* 删除指标 */
 		delEdbHandle() {
-			this.$confirm('ETA预测指标删除后不可恢复,确认删除吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
+			this.$confirm(this.$t('PredictEdbPage.del_edb_msg')/* 'ETA预测指标删除后不可恢复,确认删除吗?' */, this.$t('Dialog.warn_tit'), {
+        confirmButtonText: /* '确定' */this.$t('Dialog.confirm_btn'),
+        cancelButtonText: /* '取消' */this.$t('Dialog.cancel_btn'),
         type: 'warning',
       })
         .then(() => {
@@ -1057,7 +1066,7 @@ export default {
 			this.loading = this.$loading({
 				lock: true,
 				target:'.edb-detail-wrapper',
-				text: '刷新数据中...',
+				text: this.$t('MsgPrompt.refresh_ing_msg'),
 				spinner: 'el-icon-loading',
 				background: 'rgba(255, 255, 255, 0.8)'
 			});
@@ -1080,7 +1089,7 @@ export default {
 			this.loading = this.$loading({
 				lock: true,
 				target:'.edb-detail-wrapper',
-				text: '刷新数据中...',
+				text: this.$t('MsgPrompt.refresh_ing_msg'),
 				spinner: 'el-icon-loading',
 				background: 'rgba(255, 255, 255, 0.8)'
 			});
@@ -1242,7 +1251,8 @@ export default {
         total_data.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('复制失败!');
@@ -1297,7 +1307,7 @@ export default {
 		/* 编辑英文 */
 		openEnNameDia(info){
 			this.formItemArray=[{
-				label:'指标名称',
+				label:/* '指标名称' */ this.$t('Edb.Detail.e_name'),
 				value:info.EdbName,
 				key:'EdbName',
 				notEdit:true
@@ -1305,29 +1315,29 @@ export default {
 			// 中文单位有 才能编辑英文单位
 			if(info.Unit && info.Unit!='无'){
 				this.formItemArray.push({
-					label:'单位',
+					label:this.$t('Edb.Detail.e_unit') /* '单位' */,
 					value:info.Unit,
 					key:'Unit',
 					notEdit:true
 				},
 				{
-					label:'英文指标名称',
+					label:this.$t('Edb.Detail.e_en_name')/* '英文指标名称' */,
 					value:info.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:info.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:info.EdbNameEn,
 					key:'EdbNameEn',
-					placeholder:'请输入英文指标名称'
+					placeholder:this.$t('Edb.InputHolderAll.input_common',{label:this.$t('Edb.Detail.e_en_name')}) /* '请输入英文指标名称' */
 				})
 			}
 
@@ -1472,7 +1482,7 @@ export default {
 		position: relative;
 		height: 60px;
 		.el-tabs{
-			width:200px;
+			width:210px;
 			.el-tabs__header{
 				margin-bottom: 0;
 			}

+ 6 - 6
src/views/supply_manage/analyseVariety.vue

@@ -7,30 +7,30 @@
           plain
           v-if="targetData.length"
           @click="downloadData"
-          >下载减产量EXCEL</el-button
+          >{{$t('SupplyAnalysis.StockPlant.download_excel')}}</el-button
         >
         <template v-if="varietyInfo">
-          <span style="margin: 0 40px">品种:{{ varietyInfo.VarietyName }}</span>
-          <span>上次更新时间:{{ varietyInfo.ModifyTime }}</span>
+          <span style="margin: 0 40px">{{$t('SupplyAnalysis.StockPlant.table_col01')}}:{{ varietyInfo.VarietyName }}</span>
+          <span>{{$t('SupplyAnalysis.StockPlant.last_updatetime')}}:{{ varietyInfo.ModifyTime }}</span>
         </template>
       </div>
       <div>
         <span v-if="varietyInfo">
-          年生产天数
+          {{$t('SupplyAnalysis.StockPlant.year_product_day')}}
           <el-input
             v-model="varietyInfo.ProductionDay"
             type="number"
             style="width: 70px"
             @change="setDayHandle"
             :disabled="$route.query.type === 'look'"
-          />
+          />{{$t('SupplyAnalysis.StockPlant.day_unit')}}
         </span>
 
         <el-button
           type="primary"
           @click="calulateHandle"
           style="margin-left: 10px"
-          >计算</el-button
+          >{{$t('SupplyAnalysis.StockPlant.computed_btn')}}</el-button
         >
       </div>
     </div>

+ 39 - 16
src/views/supply_manage/components/addOtherPlantDia.vue

@@ -7,13 +7,13 @@
     custom-class="variety-set-dialog"
     top="10vh"
     v-dialogDrag
-    title="添加其他装置"
+    :title="$t('SupplyAnalysis.StockPlant.edit_table_btn_add_other')"
 		width="1000px"
   >
     <div class="main">
       <el-select
           v-model="searchTxt"
-          placeholder="请选择品种"
+          :placeholder="$t('SupplyAnalysis.StockPlant.placeholder04')"
           style="margin-bottom: 20px;"
           clearable
           @change="getPlantList"
@@ -29,7 +29,7 @@
         :data="plantData"
         border
         :max-height="300"
-        empty-text="暂无装置信息"
+        :empty-text="$t('Table.prompt_slogan')"
         @selection-change="selectPlant"
       >
         <el-table-column
@@ -62,8 +62,8 @@
       </div>
     </div>
     <div class="dia-bot">
-			<el-button type="primary" style="margin-right: 20px" @click="saveHandle">保存</el-button>
-			<el-button type="primary" plain @click="cancelHandle('cancel')">取消</el-button>
+			<el-button type="primary" style="margin-right: 20px" @click="saveHandle">{{$t('Dialog.confirm_save_btn')}}</el-button>
+			<el-button type="primary" plain @click="cancelHandle('cancel')">{{$t('Dialog.cancel_btn')}}</el-button>
 		</div>
   </el-dialog>
 </template>
@@ -88,30 +88,53 @@ export default {
       this.getVarietyList();
     }
   },
-  data() {
-    return {
-      searchTxt: '',
-      varietyOptions:[],
-      plantData: [],
-      tableColums: [
+  computed:{
+    tableColums(){
+      return [
         {
-          label: '地点',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col01')/* '地点' */,
           key: 'address',
           minwidthsty: '120px'
         },
         {
-          label: '工厂',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col02')/* '工厂' */,
           key: 'FactoryName'
         },
         {
-          label: '装置/产线',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col03')/* '装置/产线' */,
           key: 'PlantName'
         },
         {
-          label: '年产能(万吨)',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col04')/* '年产能(万吨)' */,
           key: 'AnnualCapacity'
         },
-      ],
+      ]
+    }
+  },
+  data() {
+    return {
+      searchTxt: '',
+      varietyOptions:[],
+      plantData: [],
+      // tableColums: [
+      //   {
+      //     label: '地点',
+      //     key: 'address',
+      //     minwidthsty: '120px'
+      //   },
+      //   {
+      //     label: '工厂',
+      //     key: 'FactoryName'
+      //   },
+      //   {
+      //     label: '装置/产线',
+      //     key: 'PlantName'
+      //   },
+      //   {
+      //     label: '年产能(万吨)',
+      //     key: 'AnnualCapacity'
+      //   },
+      // ],
 
       selectPlants: []
     }

+ 7 - 9
src/views/supply_manage/components/createTargetDia.vue

@@ -8,7 +8,7 @@
 		custom-class="dialog"
 		center
 		width="700px"
-    title="添加指标"
+    	:title="$t('Edb.Detail.add_indicator_btn')"
 		v-dialogDrag>
 			<div class="dialog-main">
 				<el-form
@@ -18,13 +18,13 @@
 				hide-required-asterisk
 				:model="formData"
 				:rules="formRules">
-					<el-form-item label="指标名称" prop="edb_name">
+					<el-form-item :label="$t('Edb.Detail.e_name')" prop="edb_name">
 						<el-input
 						v-model="formData.edb_name"
 						style="width: 80%"
-						placeholder="指标名称"></el-input>
+						:placeholder="$t('Edb.Detail.e_name')"></el-input>
 					</el-form-item>
-					<el-form-item label="所属目录" prop="menu">
+					<el-form-item :label="$t('Edb.Detail.select_catalogue')" prop="menu">
 						<el-cascader
 						v-model="formData.menu"
 						:options="options"
@@ -33,13 +33,12 @@
 						clearable
 						placeholder="请选择所属目录"/>
 					</el-form-item>
-					<el-form-item label="频率" prop="frequency">
-						<span slot="label">频&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;率</span>
+					<el-form-item :label="$t('Edb.Detail.e_fre')" prop="frequency">
 						<el-select 
 						v-model="formData.frequency" 
 						placeholder="请选择频率" 
 						style="width:80%"
-            disabled
+            			disabled
 						clearable>
 							<el-option
 								v-for="item in frequencyArr"
@@ -49,8 +48,7 @@
 							</el-option>
 						</el-select>
 					</el-form-item>
-					<el-form-item label="单位" prop="unit">
-						<span slot="label">单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span>
+					<el-form-item :label="$t('Edb.Detail.e_unit')" prop="unit">
 						<el-select
 						v-model="formData.unit"
 						filterable

+ 84 - 29
src/views/supply_manage/components/plantTable.vue

@@ -122,17 +122,17 @@
           </template>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" v-if="$route.query.type!=='look'" width="200">
+      <el-table-column :label="$t('Table.column_operations')" align="center" v-if="$route.query.type!=='look'" width="200">
         <template slot-scope="scope">
-          <el-button type="text" @click="addRow(scope,'copy')">复制</el-button>
-          <el-button type="text" @click="addRow(scope,'prev')">向上添加</el-button>
-          <el-button type="text" @click="addRow(scope,'next')">向下添加</el-button>
-          <span @click="delPlant(scope.row,scope.$index)" class="deletesty">删除</span>
-          <el-button type="text" @click="addOtherPlantHandle(scope.row.VarietyPlantId)">添加其他装置</el-button>
+          <el-button type="text" @click="addRow(scope,'copy')">{{$t('Table.copy_btn')}}</el-button>
+          <el-button type="text" @click="addRow(scope,'prev')">{{$t('SupplyAnalysis.StockPlant.edit_table_btn_add_up')}}</el-button>
+          <el-button type="text" @click="addRow(scope,'next')">{{$t('SupplyAnalysis.StockPlant.edit_table_btn_add_down')}}</el-button>
+          <span @click="delPlant(scope.row,scope.$index)" class="deletesty">{{$t('Table.delete_btn')}}</span>
+          <el-button type="text" @click="addOtherPlantHandle(scope.row.VarietyPlantId)">{{$t('SupplyAnalysis.StockPlant.edit_table_btn_add_other')}}</el-button>
         </template>
       </el-table-column>
       <div slot="empty" style="padding: 20px 0">
-        <tableNoData text="暂无信息" size="mini"/>
+        <tableNoData :text="$t('Table.prompt_slogan')" size="mini"/>
       </div>
     </el-table>
 
@@ -160,62 +160,117 @@ export default {
       this.tableData = nval.length ? nval : this.initTable;
     }
   },
-  data() {
-    return {
-      province_sorce,
-      city_sorce,
-      tableData: this.data,
-      tableColums: [
+  computed:{
+    tableColums(){
+      return [
         {
-          label: '地点',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col01')/* '地点' */,
           key: 'address',
           minwidthsty: '140px'
         },
         {
-          label: '工厂',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col02')/* '工厂' */,
           key: 'FactoryName'
         },
         {
-          label: '装置/产线',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col03')/* '装置/产线' */,
           key: 'PlantName'
         },
         {
-          label: '年产能(万吨)',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col04')/* '年产能(万吨)' */,
           key: 'AnnualCapacity'
         },
         {
-          label: '检修日期',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col05')/* '检修日期' */,
           key: 'MaintenanceDate',
           widthsty: '150px'
         },
         {
-          label: '复产日期',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col06')/* '复产日期' */,
           key: 'ResumptionDate',
-          tip: '默认检修结束日期为复产日期',
+          tip: this.$t('SupplyAnalysis.StockPlant.edit_table_col_tip01')/* '默认检修结束日期为复产日期' */,
           widthsty: '220px'
         },
         {
-          label: '降负系数',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col07')/* '降负系数' */,
           key: 'Coefficient',
           widthsty: '80px',
-          tip: '1表示停产,0.1表示降负10%'
+          tip: this.$t('SupplyAnalysis.StockPlant.edit_table_col_tip02'),/* '1表示停产,0.1表示降负10%' */
         },
         {
-          label: '日均产量减量(吨)',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col08')/* '日均产量减量(吨)' */,
           key: 'AverageDailyCapacityReductionTon',
           widthsty: '100px',
         },
         {
-          label: '时长',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col09')/* '时长' */,
           key: 'Day',
           widthsty: '80px',
         },
         {
-          label: '期间减量(万吨)',
+          label: this.$t('SupplyAnalysis.StockPlant.edit_table_col10')/* '期间减量(万吨)' */,
           key: 'CapacityReduction',
-          widthsty: '80px',
+          widthsty: '100px',
         },
-      ],
+      ]
+    }
+  },
+  data() {
+    return {
+      province_sorce,
+      city_sorce,
+      tableData: this.data,
+      // tableColums: [
+      //   {
+      //     label: '地点',
+      //     key: 'address',
+      //     minwidthsty: '140px'
+      //   },
+      //   {
+      //     label: '工厂',
+      //     key: 'FactoryName'
+      //   },
+      //   {
+      //     label: '装置/产线',
+      //     key: 'PlantName'
+      //   },
+      //   {
+      //     label: '年产能(万吨)',
+      //     key: 'AnnualCapacity'
+      //   },
+      //   {
+      //     label: '检修日期',
+      //     key: 'MaintenanceDate',
+      //     widthsty: '150px'
+      //   },
+      //   {
+      //     label: '复产日期',
+      //     key: 'ResumptionDate',
+      //     tip: '默认检修结束日期为复产日期',
+      //     widthsty: '220px'
+      //   },
+      //   {
+      //     label: '降负系数',
+      //     key: 'Coefficient',
+      //     widthsty: '80px',
+      //     tip: '1表示停产,0.1表示降负10%'
+      //   },
+      //   {
+      //     label: '日均产量减量(吨)',
+      //     key: 'AverageDailyCapacityReductionTon',
+      //     widthsty: '100px',
+      //   },
+      //   {
+      //     label: '时长',
+      //     key: 'Day',
+      //     widthsty: '80px',
+      //   },
+      //   {
+      //     label: '期间减量(万吨)',
+      //     key: 'CapacityReduction',
+      //     widthsty: '80px',
+      //   },
+      // ],
 
       initTable: [{
           VarietyPlantId: 0,
@@ -250,11 +305,11 @@ export default {
   methods: {
     async delPlant({VarietyPlantId},index) {
       if(VarietyPlantId) {
-        await this.$confirm('删除后不可恢复,确认删除吗?','提示',{ type: 'warning' })
+        await this.$confirm(this.$t('MsgPrompt.delete_info_msg'),this.$t('Confirm.prompt'),{ type: 'warning' })
         const res = await supplyApi.delPlant({VarietyPlantId});
         if(res.Ret !== 200) return
   
-        this.$message.success('删除成功');
+        this.$message.success(this.$t('MsgPrompt.delete_msg'));
         this.$emit('getData')
       }else {
         this.tableData.splice(index,1)

+ 51 - 17
src/views/supply_manage/components/targetTable.vue

@@ -16,12 +16,12 @@
           <span>{{row[item.key]}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center" width="250">
+      <el-table-column :label="$t('Table.column_operations')" align="center" width="250">
         <template slot-scope="{row}">
-          <el-button type="text" @click="copyData(row)" v-if="row.Button.Copy">复制数据</el-button>
-          <el-button type="text" @click="goToDatabase(row)" v-if="row.Button.Show">查看数据</el-button>
-          <el-button type="text" @click="joinDataBase(row)" v-if="row.Button.Add">添加指标库</el-button>
-          <el-button type="text" @click="createChartHandle(row.VarietyEdbId)">一键成图</el-button>
+          <el-button type="text" @click="copyData(row)" v-if="row.Button.Copy">{{$t('Edb.detail_copydata_btn')}}</el-button>
+          <el-button type="text" @click="goToDatabase(row)" v-if="row.Button.Show">{{$t('Edb.detail_lookdata_btn')}}</el-button>
+          <el-button type="text" @click="joinDataBase(row)" v-if="row.Button.Add">{{$t('Edb.Detail.add_to_edb')}}</el-button>
+          <el-button type="text" @click="createChartHandle(row.VarietyEdbId)">{{$t('Edb.Detail.create_chart_btn')}}</el-button>
         </template>
       </el-table-column>
 
@@ -49,39 +49,73 @@ export default {
       this.tableData = nval;
     }
   },
-  data() {
-    return {
-      tableData: this.data,
-      tableColums: [
+  computed:{
+    tableColums(){
+      return [
         {
-          label: '指标名称',
+          label: this.$t('Edb.Detail.e_name'),
           key: 'EdbName'
         },
         {
-          label: '指标ID',
+          label: this.$t('Edb.Detail.e_id'),
           key: 'EdbCode'
         },
         {
-          label: '指标分类',
+          label: this.$t('Edb.Detail.e_menu'),
           key: 'ClassifyName'
         },
         {
-          label: '更新频度',
+          label: this.$t('Edb.Detail.e_fre'),
           key: 'Frequency'
         },
         {
-          label: '起始时间',
+          label: this.$t('Edb.Detail.e_start_time'),
           key: 'StartDate'
         },
         {
-          label: '最新日期',
+          label: this.$t('Edb.Detail.e_latest_date'),
           key: 'EndDate'
         },
         {
-          label: '最新值',
+          label: this.$t('Edb.Detail.e_latest_value'),
           key: 'LatestValue'
         },
-      ],
+      ]
+    }
+  },
+  data() {
+    return {
+      tableData: this.data,
+      // tableColums: [
+      //   {
+      //     label: '指标名称',
+      //     key: 'EdbName'
+      //   },
+      //   {
+      //     label: '指标ID',
+      //     key: 'EdbCode'
+      //   },
+      //   {
+      //     label: '指标分类',
+      //     key: 'ClassifyName'
+      //   },
+      //   {
+      //     label: '更新频度',
+      //     key: 'Frequency'
+      //   },
+      //   {
+      //     label: '起始时间',
+      //     key: 'StartDate'
+      //   },
+      //   {
+      //     label: '最新日期',
+      //     key: 'EndDate'
+      //   },
+      //   {
+      //     label: '最新值',
+      //     key: 'LatestValue'
+      //   },
+      // ],
 
       // 一键成图弹窗
       isCreateChart: false,

+ 11 - 11
src/views/supply_manage/components/varietySetDia.vue

@@ -7,25 +7,25 @@
     custom-class="variety-set-dialog"
     top="10vh"
     v-dialogDrag
-    :title="form.VarietyId?'编辑品种':'添加品种'"
-		width="650px"
+    :title="form.VarietyId?$t('SupplyAnalysis.StockPlant.edit_commodity_btn'):$t('SupplyAnalysis.StockPlant.add_btn')"
+		width="750px"
   >
     <div class="main">
       <el-form
         ref="form"
         class="form-cont"
         label-position="left"
-        label-width="80px"
+        label-width="120px"
         :model="formData"
       >
-        <el-form-item label="品种" prop="varietyName">
+        <el-form-item :label="$t('SupplyAnalysis.StockPlant.table_col01')" prop="varietyName">
           <el-input
             v-model="formData.varietyName"
-            style="width: 340px"
-            placeholder="请输入品种"
+            style="width: 80%"
+            :placeholder="$t('SupplyAnalysis.StockPlant.placeholder02')"
           />
         </el-form-item>
-        <el-form-item label="设置权限" prop="users">
+        <el-form-item :label="$t('SupplyAnalysis.StockPlant.set_permission')" prop="users">
           <el-cascader
             ref="cascader"
             v-model="formData.users"
@@ -40,12 +40,12 @@
             :key="cascaderIdx"
             clearable
             collapse-tags
-            placeholder="请选择研究员"
+            :placeholder="$t('SupplyAnalysis.StockPlant.placeholder03')"
             @remove-tag="removeResearchersChange"
             style="width:80%"
           />
         </el-form-item>
-        <el-form-item label="已选用户">
+        <el-form-item :label="$t('SupplyAnalysis.StockPlant.select_user')">
           <ul class="choose-users">
             <li v-for="(item,index) in chooseUsers" :key="item">
               {{item}}
@@ -56,8 +56,8 @@
       </el-form>
     </div>
     <div class="dia-bot">
-			<el-button type="primary" style="margin-right: 20px" @click="saveHandle">保存</el-button>
-			<el-button type="primary" plain @click="cancelHandle('cancel')">取消</el-button>
+			<el-button type="primary" style="margin-right: 20px" @click="saveHandle">{{$t('Dialog.confirm_save_btn')}}</el-button>
+			<el-button type="primary" plain @click="cancelHandle('cancel')">{{$t('Dialog.cancel_btn')}}</el-button>
 		</div>
   </el-dialog>
 </template>

+ 37 - 19
src/views/supply_manage/stockPlant.vue

@@ -2,11 +2,11 @@
   <div class="variety-list-page">
     <div class="top">
       <el-button v-permission="permissionBtn.stockPlantPermission.stockPlant_saveVariety"
-        type="primary" @click="addVarietyHandle(null)" v-if="isCanAdd">添加品种</el-button>
+        type="primary" @click="addVarietyHandle(null)" v-if="isCanAdd">{{$t('SupplyAnalysis.StockPlant.add_btn')}}</el-button>
       <div class="top-right">
-        <el-checkbox v-model="isCanAnalyse" @change="pageChangeHandle(1)" v-if="!isCanAdd">只看可分析</el-checkbox>
+        <el-checkbox v-model="isCanAnalyse" @change="pageChangeHandle(1)" v-if="!isCanAdd">{{$t('SupplyAnalysis.StockPlant.only_see')}}</el-checkbox>
         <el-input
-          placeholder="品种名称/指标ID"
+          :placeholder="$t('SupplyAnalysis.StockPlant.placeholder01')"
           v-model="searchTxt"
           style="width:350px;margin-left: 15px;"
           @keyup.enter.native="getTableList"
@@ -34,18 +34,18 @@
             <span v-else>{{row[item.key]}}</span>
           </template>
         </el-table-column>
-        <el-table-column label="操作" align="center">
+        <el-table-column :label="$t('Table.column_operations')" align="center">
           <template slot-scope="{row}">
             <el-button v-permission="permissionBtn.stockPlantPermission.stockPlant_anlysisView"
-                type="text" @click="analyseVarietyHandle(row)" v-if="row.Button.Analyse">分析</el-button>
+                type="text" @click="analyseVarietyHandle(row)" v-if="row.Button.Analyse">{{$t('SupplyAnalysis.StockPlant.analysis_btn')}}</el-button>
             <el-button v-permission="permissionBtn.stockPlantPermission.stockPlant_saveVariety"
-                type="text" @click="addVarietyHandle(row)" v-if="row.Button.Edit">编辑</el-button>
+                type="text" @click="addVarietyHandle(row)" v-if="row.Button.Edit">{{$t('Table.edit_btn')}}</el-button>
             <span v-permission="permissionBtn.stockPlantPermission.stockPlant_del"
-                class="deletesty" @click="delHandle(row)" style="margin-left: 10px;" v-if="row.Button.Delete">删除</span>
+                class="deletesty" @click="delHandle(row)" style="margin-left: 10px;" v-if="row.Button.Delete">{{$t('Table.delete_btn')}}</span>
           </template>
         </el-table-column>
         <div slot="empty" style="padding: 20px 0">
-          <tableNoData text="暂无品种" size="mini"/>
+          <tableNoData :text="$t('SupplyAnalysis.StockPlant.no_data')" size="mini"/>
         </div>
       </el-table>
       <div style="height:40px;margin-top: 20px;">
@@ -73,25 +73,43 @@ import varietySetDia from './components/varietySetDia.vue'
 import mPage from '@/components/mPage.vue'
 export default {
   components: { mPage,varietySetDia },
-  data() {
-    return {
-      searchTxt: '',
-      isCanAdd: false,
-      isCanAnalyse: false,
-      tableColums: [
+  computed:{
+    tableColums(){
+      return [
         {
-          label: '品种',
+          label: this.$t('SupplyAnalysis.StockPlant.table_col01'),
           key: 'VarietyName'
         },
         {
-          label: '更新人',
+          label: this.$t('SupplyAnalysis.StockPlant.table_col02'),
           key: 'LastUpdateSysUserRealName'
         },
         {
-          label: '更新时间',
+          label: this.$t('SupplyAnalysis.StockPlant.table_col03'),
           key: 'ModifyTime'
         },
-      ],
+      ]
+    }
+  },
+  data() {
+    return {
+      searchTxt: '',
+      isCanAdd: false,
+      isCanAnalyse: false,
+      // tableColums: [
+      //   {
+      //     label: '品种',
+      //     key: 'VarietyName'
+      //   },
+      //   {
+      //     label: '更新人',
+      //     key: 'LastUpdateSysUserRealName'
+      //   },
+      //   {
+      //     label: '更新时间',
+      //     key: 'ModifyTime'
+      //   },
+      // ],
       varietyList: [],
       pageNo: 1,
       pageSize: 10,
@@ -141,7 +159,7 @@ export default {
 
     /* 删除 */
     async delHandle({VarietyId}) {
-      await this.$confirm('删除后不可恢复,确认删除吗?','提示',{ type: 'warning' });
+      await this.$confirm(this.$t('MsgPrompt.delete_info_msg'),this.$t('Confirm.prompt'),{ type: 'warning' });
       const res = await supplyApi.delVariety({VarietyId})
 
       if(res.Ret !== 200) return