Browse Source

统计分析

jwyu 1 year ago
parent
commit
5bc6d1b12d
75 changed files with 1820 additions and 953 deletions
  1. 1 1
      src/components/selectUnit.vue
  2. 1 1
      src/components/todo/roadShowFeedbackDia.vue
  3. 9 1
      src/lang/commonLang.js
  4. 9 1
      src/lang/langUtils.js
  5. 85 2
      src/lang/modules/EtaBase/En.js
  6. 85 2
      src/lang/modules/EtaBase/Zh.js
  7. 312 80
      src/lang/modules/EtaBase/commonLang.js
  8. 57 0
      src/lang/modules/EtaChart/commonLang.js
  9. 10 0
      src/lang/modules/ReportManagement/AuthorManagement.js
  10. 135 2
      src/lang/modules/ReportManagement/CategoryList.js
  11. 41 0
      src/lang/modules/ReportManagement/ReportList.js
  12. 146 55
      src/lang/modules/ReportManagement/SmartReport.js
  13. 4 0
      src/lang/modules/ReportManagement/indexEn.js
  14. 4 0
      src/lang/modules/ReportManagement/indexZh.js
  15. 6 0
      src/lang/modules/Slides/commonLang.js
  16. 1 1
      src/lang/modules/Slides/indexZh.js
  17. 5 0
      src/lang/modules/Slides/pptMsg.js
  18. 61 9
      src/lang/modules/Slides/pptPresent.js
  19. 2 1
      src/lang/modules/StatisticAnalysis/ChartRelevance.js
  20. 2 0
      src/main.js
  21. 11 11
      src/views/chartRelevance_manage/relevance/list.vue
  22. 2 2
      src/views/chartRelevance_manage/relevance/relevanceChartEditor.vue
  23. 1 1
      src/views/classify_manage/classifyEnlist.vue
  24. 173 170
      src/views/classify_manage/classifylist.vue
  25. 27 29
      src/views/dataEntry_manage/adjustdata/adjustData.vue
  26. 0 1
      src/views/dataEntry_manage/codecount/compoments/codeMirror.vue
  27. 2 2
      src/views/dataEntry_manage/codecount/compoments/dataTable.vue
  28. 38 33
      src/views/dataEntry_manage/codecount/index.vue
  29. 1 1
      src/views/dataEntry_manage/dataList.vue
  30. 52 45
      src/views/dataEntry_manage/databaseComponents/addTargetDiaBase.vue
  31. 5 5
      src/views/dataEntry_manage/databaseComponents/chartTrendRender.vue
  32. 19 18
      src/views/dataEntry_manage/databaseComponents/completeTargetDia.vue
  33. 1 1
      src/views/dataEntry_manage/databaseComponents/dataAssociateChart.vue
  34. 4 4
      src/views/dataEntry_manage/databaseComponents/dataAssociateComputeData.vue
  35. 12 12
      src/views/dataEntry_manage/databaseComponents/replaceDialog.vue
  36. 44 42
      src/views/dataEntry_manage/databaseComponents/util.js
  37. 20 20
      src/views/dataEntry_manage/databaseList.vue
  38. 9 9
      src/views/dataEntry_manage/mixins/chartPublic.js
  39. 1 1
      src/views/dataEntry_manage/targetList.vue
  40. 1 1
      src/views/dataEntry_manage/thirdBase/DatabankBase.vue
  41. 34 27
      src/views/ppt_manage/newVersion/components/ContextMenu.vue
  42. 4 4
      src/views/ppt_manage/newVersion/components/IndexItem.vue
  43. 1 1
      src/views/ppt_manage/newVersion/components/catalog/pptContent.vue
  44. 1 1
      src/views/ppt_manage/newVersion/components/catalog/pptContentEn.vue
  45. 1 1
      src/views/ppt_manage/newVersion/components/catalog/pptContentOld.vue
  46. 2 2
      src/views/ppt_manage/newVersion/components/editor/ChooseCoverNew.vue
  47. 9 7
      src/views/ppt_manage/newVersion/components/editor/DeletePageDialog.vue
  48. 3 3
      src/views/ppt_manage/newVersion/components/editor/InsertCharts.vue
  49. 8 8
      src/views/ppt_manage/newVersion/components/editor/InsertPageDialog.vue
  50. 1 1
      src/views/ppt_manage/newVersion/components/editor/InsertSemantics.vue
  51. 4 4
      src/views/ppt_manage/newVersion/components/formatEl/ChartEl.vue
  52. 1 1
      src/views/ppt_manage/newVersion/components/formatEl/ImageEl.vue
  53. 1 1
      src/views/ppt_manage/newVersion/components/formatEl/SheetEl.vue
  54. 7 2
      src/views/ppt_manage/newVersion/components/formatEl/TextEl.vue
  55. 1 1
      src/views/ppt_manage/newVersion/components/formatPage/mixins.js
  56. 10 5
      src/views/ppt_manage/newVersion/components/layer/Element/ShapeContextMenu.vue
  57. 9 5
      src/views/ppt_manage/newVersion/components/layer/Element/shapeMixin.js
  58. 9 9
      src/views/ppt_manage/newVersion/components/layer/layerEditTool.vue
  59. 10 7
      src/views/ppt_manage/newVersion/components/layer/shapePreview.vue
  60. 3 1
      src/views/ppt_manage/newVersion/pptCatalog.vue
  61. 6 4
      src/views/ppt_manage/newVersion/pptEditor.vue
  62. 3 1
      src/views/ppt_manage/newVersion/pptEnCatalog.vue
  63. 6 4
      src/views/ppt_manage/newVersion/pptEnEditor.vue
  64. 23 13
      src/views/ppt_manage/newVersion/pptEnPresent.vue
  65. 26 22
      src/views/ppt_manage/newVersion/pptEnPublish.vue
  66. 23 19
      src/views/ppt_manage/newVersion/pptPresent.vue
  67. 24 22
      src/views/ppt_manage/newVersion/pptPublish.vue
  68. 1 1
      src/views/ppt_manage/pptlist.vue
  69. 8 4
      src/views/report_manage/reportAuthor.vue
  70. 55 81
      src/views/report_manage/reportEn/reportlist.vue
  71. 2 2
      src/views/report_manage/reportVariety.vue
  72. 88 88
      src/views/report_manage/reportlist.vue
  73. 35 35
      src/views/smartReport/reportList.vue
  74. 1 1
      src/views/system_manage/departManage.vue
  75. 1 1
      src/views/system_manage/roleManage.vue

+ 1 - 1
src/components/selectUnit.vue

@@ -5,7 +5,7 @@
             v-model="unit"
             :fetch-suggestions="querySearch"
             :disabled="disabled"
-            placeholder="请输入单位"
+            :placeholder="$t('Edb.InputHolderAll.input_unit')"
             @select="handleChange"
             @change="handleChange"
             @blur.stop="handleChange"

+ 1 - 1
src/components/todo/roadShowFeedbackDia.vue

@@ -19,7 +19,7 @@
         :data="feedbackList"
         height="60vh"
         v-loading="tableLoading"
-        element-loading-text="数据加载中..." 
+        :element-loading-text="$t('Table.data_loading')"  
         style="box-shadow: 0px 3px 6px rgba(155, 170, 219, 0.2);margin-top:20px;"
         border
       >

+ 9 - 1
src/lang/commonLang.js

@@ -51,7 +51,7 @@ export default {
       zh: "操作",
     },
     prompt_slogan: {
-      en: "No data available.",
+      en: "No data available",
       zh: "暂无数据",
     },
     edb_id: {
@@ -90,6 +90,14 @@ export default {
       en: "Publish Time",
       zh: "发布时间",
     },
+    loading: {
+      en: '加载中...',
+      zh: 'Loading...'
+    },
+    data_loading: {
+      en: "Data Loading",
+      zh: "数据加载中...",
+    },
   },
   Confirm: {
     prompt: {

+ 9 - 1
src/lang/langUtils.js

@@ -8,7 +8,15 @@ export function transformLanguageData(originalObject, targetLanguage) {
 
   for (const key in originalObject) {
     if (originalObject.hasOwnProperty(key)) {
-      transformedData[key] = originalObject[key][targetLanguage];
+      //默认约定大写字母开头的key又是一层包裹 小写字母是翻译字段
+      if(/^[A-Z]/.test(key)) {
+        transformedData[key] = {};
+        for (const keyChild in originalObject[key]) {
+          transformedData[key][keyChild] = originalObject[key][keyChild][targetLanguage]
+        }
+      }else {
+        transformedData[key] = originalObject[key][targetLanguage];
+      }
     }
   }
   return transformedData;

+ 85 - 2
src/lang/modules/EtaBase/En.js

@@ -10,8 +10,91 @@ export default {
     adjustment_btn: 'Data Adjustment',
     search_placeholder: 'Indicator ID/Indicator Name',
     add_first_menu_btn: 'Add first-level catalogue',
-    total_prefix:'Total',
-    total_suffix: 'indicators',
+    total_show: 'Total {limit} indicators',
     time_show: 'Creat Time',
+    no_quote_edb: 'No cited calculated indicators',
+    no_quote_edb: 'No associated charts available for this indicator',
+
+    /* 添加指标弹窗 */
+    complany_pholder: 'Company ID',
+    no_search: 'The indicator is not searched',
+    next_step: 'Next step',
+    prev_step: 'Previous step',
+    improve_info: 'Information improvement',
+    belong_menu: 'Affiliated Catalogues',
+    add_success_msg: 'Indicators added successfully',
+    econ_base: 'Economic Database',
+    date_serie: 'Date Series',
+    stock_input_pholder: 'Please enter the stock code, only one stock code can be queried at a time',
+    edb_input_pholder: 'Please enter the indicator codes, separated by commas for multiple indicator codes',
+    edb_wind_tip: 'When entering "CG" in the Wind Financial Terminal, a code generator will pop up, which can be used to obtain codes for other indicators',
+    edb_ifind_tip: 'Use Excel iFind plug-in / date series function, according to the selected indicator to obtain the indicator code, futures and stock common code can be ticked below',
+    future_common_edb: 'Future Common indicators',
+    stock_common_edb: 'Stock Common indicators',
+    pre_price: 'Previous Closing Price',
+    op_price: 'Opening Price',
+    high_price: 'Highest Price',
+    low_price: 'Lowest Price',
+    close_price: 'Closing Price',
+    settle_price: 'Settlement Price',
+    trade_volume: 'Trading Volume',
+    turnover: 'Turnover',
+    incre_decre: 'Percentage Increase/Decrease',
+    fluctua: 'Fluctuation',
+    turn_rate: 'Turnover Rate',
+    open_inter: 'Open Interest',
+    open_val: 'Value of Open Positions',
+    fluctua_day: '日振幅',
+    have_edb_tip1:'该数据已存在数据库,名称为{name},目录为:{menu},如需重新添加,请删除原指标',
+    have_edb_tip2:'该数据已存在数据库,名称为{name},目录为:{menu}',
+    exist_edb_tips: 'The following indicators already exist in the indicator pool, please do not re-enter them!',
+    forbid_edb_tips: '您当前暂无权限查看该指标,如需查看,请联系管理员',
+    complate_info: 'Complete Information',
+    no_companyid_msg: 'Please input Company ID',
+    no_edbid_msg: 'Please input Indicator ID',
+    
+    /* 替换指标弹窗 */
+    origin_edb: 'Original Indicator',
+    replace: 'Replace to',
+    replace_all: 'Replace all',
+    replace_tip: 'Tip: After the replacement, charts and calculated indicators that refer to the original indicator will be replaced by the replacement indicator.',
+    replace_success_msg: 'This replacement will last for a longer period of time, confirm the replacement?',
+    input_origin_vaild: 'Original Indicator can not be empty',
+    input_replace_vaild: 'Indicator Replacement not be empty',
+  },
+
+  /* 代码运算页面 */
+  CodeCountPage: {
+    run_btn: 'Run',
+    res_show: 'Results Display',
+    tab_info: 'Basic Information',
+    tab_edb: 'Indicator Information',
+    res_search: 'Query results',
+    res_search_tip: 'show the structure of the table where the indicator is located and retrieve the indicator code',
+    copy_code: 'Copy Code',
+    noenough_info_msg: '请填写完整基础信息',
+    run_msg: 'Please run code first',
+    no_code_msg: 'Please input code',
+    run_ing: 'Runing',
+    run_success: 'Run successfully',
+    table_name: 'Table Name',
+    field_name: 'Field Name',
+    field_instru: '*Field Description',
+    res_show_col1: 'Date',
+    res_show_col2: 'Value',
+  },
+
+  /* 数据调整页面 */
+  AdjustDataPage: {
+    usetip_msg: 'Use Instructions',
+    usetip: `Data adjustment:<br>1、Adjust the historical data of the selected indicator and saved, this indicator will be updated based on the adjusted data.<br>
+    2、Support adding future data to the selected indicator, and data correction when the indicator is updated to the same date in the future<br>
+    3、Select the table, use "Ctrl + F" to call the fast search function, support quickly locate the data in the table.<br>
+    Note: The system only takes data from columns A and B.`,
+    search_res: '查询结果',
+    or_edbid: 'Original Indicator ID',
+    or_edbname: 'Original Indicator Name',
+    choose_edb: 'Select indicators',
+    input_content_msg: 'Please input table content'
   }
 }

+ 85 - 2
src/lang/modules/EtaBase/Zh.js

@@ -10,8 +10,91 @@ export default {
     adjustment_btn: '数据调整',
     search_placeholder: '指标ID/指标名称',
     add_first_menu_btn: '添加一级目录',
-    total_prefix:'共',
-    total_suffix: '个指标',
+    total_show: '共{limit}个指标',
     time_show: '创建时间',
+    no_quote_chart: '该指标暂无关联图',
+    no_quote_edb: '暂无引用的计算指标',
+
+    /* 添加指标弹窗 */
+    complany_pholder: '公司ID',
+    no_search: '未搜索到该指标',
+    next_step: '下一步',
+    prev_step: '上一步',
+    improve_info: '完善信息',
+    belong_menu: '所属目录',
+    add_success_msg: '新增指标成功',
+    econ_base: '经济数据库',
+    date_serie: '日期序列',
+    stock_input_pholder: '请输入证券代码,每次只查询一个证券代码',
+    edb_input_pholder: '请输入指标代码,多个指标代码用英文逗号分隔',
+    edb_wind_tip: 'wind金融终端输入”CG“会弹出代码生成器,可在代码生成器上获取其他指标的代码',
+    edb_ifind_tip: '可用Excel同花顺插件/日期序列功能,根据所选指标获取指标代码,期货和股票常用代码可在下方勾选',
+    future_common_edb: '期货常用指标',
+    stock_common_edb: '股票常用指标',
+    pre_price: '前收盘价',
+    op_price: '开盘价',
+    high_price: '最高价',
+    low_price: '最低价',
+    close_price: '收盘价',
+    settle_price: '结算价',
+    trade_volume: '成交量',
+    turnover: '成交额',
+    incre_decre: '涨跌幅',
+    fluctua: '振幅',
+    turn_rate: '换手率',
+    open_inter: '持仓量',
+    open_val: '持仓额',
+    fluctua_day: '日振幅',
+    have_edb_tip1:'该数据已存在数据库,名称为{name},目录为:{menu},如需重新添加,请删除原指标',
+    have_edb_tip2:'该数据已存在数据库,名称为{name},目录为:{menu}',
+    exist_edb_tips: '指标库中已存在以下指标,请勿重新输入!',
+    forbid_edb_tips: '您当前暂无权限查看该指标,如需查看,请联系管理员',
+    complate_info: '完善信息',
+    no_companyid_msg: '请输入公司ID',
+    no_edbid_msg: '请输入指标ID',
+
+    /* 替换指标弹窗 */
+    origin_edb: '原指标',
+    replace: '替换为',
+    replace_all: '全部替换',
+    replace_tip: '提示:替换后,图表和计算指标引用到原指标的会全部由替换指标替代',
+    replace_success_msg: '本次替换将持续较长时间,是否确认替换?',
+    input_origin_vaild: '原指标不能为空',
+    input_replace_vaild: '替换指标不能为空',
+  },
+
+  /* 代码运算页面 */
+  CodeCountPage: {
+    run_btn: '运行',
+    res_show: '结果展示',
+    tab_info: '基础信息',
+    tab_edb: '指标信息',
+    res_search: '查询结果',
+    res_search_tip: '展示指标所在表结构及调取指标代码',
+    copy_code: '复制代码',
+    noenough_info_msg: '请填写完整基础信息',
+    run_msg: '请先运行代码',
+    no_code_msg: '请输入代码',
+    run_ing: '运行中',
+    run_success: '运行成功',
+    table_name: '表名',
+    field_name: '字段名',
+    field_instru: '*字段说明',
+    res_show_col1: '日期',
+    res_show_col2: '值',
+  },
+
+  /* 数据调整页面 */
+  AdjustDataPage: {
+    usetip_msg: '使用说明',
+    usetip: `数据调整:<br>1、将所选指标的历史数据经过调整后保存,该指标更新时将在调整数据的基础上更新最新数据;<br>
+    2、支持对所选指标添加未来的数据,指标更新到未来相同的日期时,进行数据更正;<br>
+    3、选中表格,使用“Ctrl+F”可调用快速查找功能,支持快速定位到表格中的数据;<br>
+    注:系统只取A、B列数据`,
+    search_res: '查询结果',
+    or_edbid: '原指标ID',
+    or_edbname: '原指标名称',
+    choose_edb: '选择指标',
+    input_content_msg: '请输入表格内容'
   }
 }

+ 312 - 80
src/lang/modules/EtaBase/commonLang.js

@@ -43,6 +43,10 @@ export default {
     zh:'复制数据',
     en:'Copy data'
   },
+  detail_lookdata_btn: {
+    zh:'查看数据',
+    en:'View indicators'
+  },
   detail_del_btn:{
     zh:'删除',
     en:'Delete'
@@ -63,90 +67,14 @@ export default {
     zh:'添加人',
     en:'Creator'
   },
-  e_date: {
-    zh:'日期',
-    en:'Date'
-  },
-  e_value: {
-    zh:'值',
-    en:'Value'
-  },
-  source: {
-    zh:'数据来源',
-    en:'Data Source'
-  },
-  e_id: {
-    zh:'指标ID',
-    en:'Indicator ID'
-  },
-  e_name: {
-    zh:'指标名称',
-    en:'Indicator Name'
-  },
-  e_fre: {
-    zh:'频度',
-    en:'Frequency'
-  },
-  e_unit: {
-    zh:'单位',
-    en:'Unit'
-  },
-  e_menu: {
-    zh:'指标目录',
-    en:'Data Catalogue'
-  },
-  e_start_time: {
-    zh:'起始时间',
-    en:'Start Time'
-  },
-  e_update_time: {
-    zh:'更新时间',
-    en:'Update Time'
-  },
-  e_status: {
-    zh:'刷新状态',
-    en:'Update Status'
-  },
-  e_latest_time:{
-    zh:'最新日期',
-    en:'LatestDate'
-  },
-  e_latest_val:{
-    zh:'最新值',
-    en:'LatestValue'
-  },
-  time_interval: {
-    zh:'时间段',
-    en: 'Time Period'
-  },
-  time_all: {
-    zh:'全部',
-    en: 'All'
-  },
-  since_onefive: {
-    zh:'15年至今',
-    en: 'Since 2015'
-  },
-  since_twozero: {
-    zh:'20年至今',
-    en: 'Since 2020'
-  },
-  since_twoone: {
-    zh:'21年至今',
-    en: 'Since 2021'
-  },
-  since_twotwo: {
-    zh:'22年至今',
-    en:'Since 2022'
-  },
-  choose_time: {
-    zh:'请选择时间段',
-    en:'Please select time period'
-  },
   show_yearonyear: {
     zh:'展示同比图',
     en:'Show year-on-year chart'
   },
+  hide_yearonyear: {
+    zh:'隐藏同比图',
+    en:'Hide year-on-year chart'
+  },
   switch_season: {
     zh:'切换季节性图',
     en:'Switch to seasonal chart'
@@ -155,4 +83,308 @@ export default {
     zh:'切换曲线图',
     en:'Switch to curve chart'
   },
+
+  /* 指标相关字段 */
+  Detail: {
+    e_date: {
+      zh:'日期',
+      en:'Date'
+    },
+    e_value: {
+      zh:'值',
+      en:'Value'
+    },
+    source: {
+      zh:'数据来源',
+      en:'Data Source'
+    },
+    e_id: {
+      zh:'指标ID',
+      en:'Indicator ID'
+    },
+    e_name: {
+      zh:'指标名称',
+      en:'Indicator Name'
+    },
+    e_code: {
+      zh:'指标编码',
+      en:'Indicator Code'
+    },
+    e_fre: {
+      zh:'频度',
+      en:'Frequency'
+    },
+    e_unit: {
+      zh:'单位',
+      en:'Unit'
+    },
+    e_menu: {
+      zh:'指标目录',
+      en:'Data Catalogue'
+    },
+    e_start_time: {
+      zh:'起始时间',
+      en:'Start Time'
+    },
+    e_end_time: {
+      zh: '结束时间',
+      en: 'End Time'
+    },
+    e_update_time: {
+      zh:'更新时间',
+      en:'Update Time'
+    },
+    e_status: {
+      zh:'刷新状态',
+      en:'Update Status'
+    },
+    e_latest_date: {
+      zh:'最新日期',
+      en:'Latest Date'
+    },
+    e_latest_value: {
+      zh:'最新值',
+      en:'Latest Value'
+    },
+    e_recent_time: {
+      zh:'最近更新',
+      en:'Recent Update'
+    },
+    e_stock_code: {
+      zh:'证券代码',
+      en:' Security Code'
+    },
+    e_opera: {
+      zh:'操作',
+      en:'Operation'
+    },
+  },
+
+  /* 单位 */
+  UnitAll: {
+    u_null: {
+      zh:'无',
+      en:'Null'
+    },
+    wanton: {
+      zh:'万吨',
+      en:'10000 tonnes'
+    },
+    u_bill: {
+      zh:'亿元',
+      en:'Billions'
+    },
+    u_yuan: {
+      zh:'元',
+      en:'Yuan'
+    },
+    yuan_ton: {
+      zh:'元/吨',
+      en:'Yuan/tonne'
+    },
+    yuan_wetton: {
+      zh:'元/湿吨',
+      en:'Yuan/wet ton'
+    },
+    u_kg: {
+      zh:'千克',
+      en:'kg'
+    },
+    u_ton: {
+      zh:'吨',
+      en:'Tonnes'
+    },
+    short_ton: {
+      zh:'短吨',
+      en:'short ton'
+    },
+    doll_ton: {
+      zh:'美元/吨',
+      en:'dollar/tonne'
+    },
+    wan_skilo: {
+      zh:'万平方千米',
+      en:'ten thousand square kilometers'
+    },
+    doll_bar: {
+      zh:'美元/桶',
+      en:'dollar/barrel'
+    },
+    cent_gal: {
+      zh:'美分/加仑',
+      en:'cent/gallon'
+    },
+    u_hand: {
+      zh:'手',
+      en:'hand'
+    },
+  },
+
+  /* 频度 */
+  FreAll: {
+    day: {
+      zh:'日度',
+      en:'Daliy'
+    },
+    week: {
+      zh:'周度',
+      en:'Weekly'
+    },
+    dekad: {
+      zh:'旬度',
+      en:'Every ten days'
+    },
+    month: {
+      zh:'月度',
+      en:'Monthly'
+    },
+    quarter: {
+      zh:'季度',
+      en:'Quarterly'
+    },
+    year: {
+      zh:'年度',
+      en:'Yearly'
+    },
+  },
+
+  /* 计算方式 */
+  CalculatesAll: {
+    calculate: {
+      zh: '指标运算',
+      en: 'Calculation'
+    },
+    to_month_quarter: {
+      zh: '累计值转月值/转季值',
+      en: 'Convert Cumulative Values to Monthly/Quarterly Values'
+    },
+    to_month: {
+      zh: '累计值转月值',
+      en: 'Convert Cumulative Values to Monthly Values'
+    },
+    to_month_quarter: {
+      zh: '累计值转季值',
+      en: 'Convert Cumulative Values to Quarterly Values'
+    },
+    on_year: {
+      zh: '同比值',
+      en: 'Year-on-Year Value'
+    },
+    differ: {
+      zh: '同差值',
+      en: 'Difference Value'
+    },
+    n_move_average: {
+      zh: 'N数值移动平均计算',
+      en: 'Calculation of N-number Moving Average'
+    },
+    n_rate: {
+      zh: 'N数值环比值',
+      en: 'Sequential Growth Rate'
+    },
+    n_differ: {
+      zh: 'N数值环差值',
+      en: 'N Period-over-Period Difference Calculation'
+    },
+    up_conver: {
+      zh: '升频',
+      en: 'Up-conversion'
+    },
+    splic: {
+      zh: '指标拼接',
+      en: 'Indicator Splicing'
+    },
+    time_move: {
+      zh: '时间移位',
+      en: 'Time Shift'
+    },
+    super_season: {
+      zh: '超季节性',
+      en: 'Super-seasonality'
+    },
+    fit_residu: {
+      zh: '拟合残差',
+      en: 'Fit Residual'
+    },
+    annual: {
+      zh: '年化',
+      en: 'annualization'
+    },
+    down_conver: {
+      zh: '降频',
+      en: 'Downconversion'
+    },
+    diff_index: {
+      zh: '扩散指数',
+      en: 'Diffusion Index'
+    },
+    cumulate: {
+      zh: '累计值',
+      en: 'Cumulative Value'
+    },
+    ex_smooth: {
+      zh: '指数修匀',
+      en: 'Exponential Smoothing'
+    },
+    day_mean: {
+      zh: '日均值',
+      en: 'Daily Mean'
+    },
+  },
+
+  /* 指标添加form提示 */
+  Valids: {
+    name_msg: {
+      zh: '指标名称不能为空',
+      en: 'The indicator name cannot be empty'
+    },
+    menu_msg: {
+      zh: '指标目录不能为空',
+      en: 'Index directory can not be empty'
+    },
+    unit_msg: {
+      zh: '单位不能为空',
+      en: 'Unit can not be empty'
+    },
+    fre_msg: {
+      zh: '频度不能为空',
+      en: 'Frequency can not be empty'
+    },
+    n_msg: {
+      zh: 'N值不能为空',
+      en: 'N can not be empty'
+    },
+    move_msg: {
+      zh: '移动方式参数不能为空',
+      en: 'Parameter  can not be empty'
+    },
+    calendar_msg: {
+      zh: '日历不能为空',
+      en: 'Calendar can not be empty'
+    },
+    alpha_msg: {
+      zh: 'alpha值不能为空',
+      en: 'Alpha can not be empty'
+    },
+  },
+
+  /* 通用相关pholder */
+  InputHolderAll: {
+    input_name: {
+      zh: '请输入指标名称',
+      en: 'Please input indicator name'
+    },
+    input_menu: {
+      zh: '请选择指标目录',
+      en: 'Please select indicator directory '
+    },
+    input_unit: {
+      zh: '请输入单位',
+      en: 'Please input unit'
+    },
+    input_fre: {
+      zh: '请选择频度',
+      en: 'Please input frequency'
+    }
+  }
 }

+ 57 - 0
src/lang/modules/EtaChart/commonLang.js

@@ -3,6 +3,42 @@
 */
 
 export default {
+  time_interval: {
+    zh:'时间段',
+    en: 'Time Period'
+  },
+  time_all: {
+    zh:'全部',
+    en: 'All'
+  },
+  since_onefive: {
+    zh:'15年至今',
+    en: 'Since 2015'
+  },
+  since_twozero: {
+    zh:'20年至今',
+    en: 'Since 2020'
+  },
+  since_twoone: {
+    zh:'21年至今',
+    en: 'Since 2021'
+  },
+  since_twotwo: {
+    zh:'22年至今',
+    en:'Since 2022'
+  },
+  choose_time: {
+    zh:'请选择时间段',
+    en:'Please select time period'
+  },
+  calendar_gre: {
+    zh: '公历',
+    en: 'Gregorian Calendar'
+  },
+  calendar_lunar: {
+    zh: '农历',
+    en: 'Lunar Calendar'
+  },
   chart_share_btn:{
     zh:'分享',
     en:'Share'
@@ -59,4 +95,25 @@ export default {
     zh:'选择我的分类',
     en:'Select My Category Add New category'
   },
+
+  //操作提示文案
+  OptMsg:{
+    del_fail_tag:{
+      zh:'删除失败',
+      en:'Deletion failure'
+    },
+    classify_del_fail:{
+      zh:'该分类下关联表图表不可删除',
+      en:'Associated charts in this category cannot be deleted'
+    },
+    classify_del_confirm:{
+      zh:'确定删除当前分类吗?',
+      en:'Are you sure to delete the current category?'
+    },
+    chart_del_confirm:{
+      zh:'删除后该图表将不能再引用,确认删除吗?',
+      en:'After deletion, this chart will no longer be referenced. Are you sure to delete it?'
+    }
+
+  },
 }

+ 10 - 0
src/lang/modules/ReportManagement/AuthorManagement.js

@@ -20,6 +20,12 @@ export const AuthorManagementEn = {
   delete_info_msg: "Deletion is irreversible. Are you sure you want to delete this author's name?",
   delete_error_msg: "This author's name is associated with reports and cannot be deleted.",
   delete_success_msg: "Delete successful",
+  english_report_tab: "English research report",
+  chinese_report_tab: "Chinese research report",
+  research_report_type: "Research report type",
+  research_report_type_select: "Please select the type of research report",
+
+
 };
 
 /* 中文 */
@@ -40,6 +46,10 @@ export const AuthorManagementZh = {
   delete_info_msg: "删除不可恢复,确认删除该作者名称吗?",
   delete_error_msg: "该作者名称有关联报告,不允许删除",
   delete_success_msg: "删除成功",
+  english_report_tab: "英文研报",
+  chinese_report_tab: "中文研报",
+  research_report_type: "研报类型",
+  research_report_type_select: "请选择研报类型",
 };
 
 /*

+ 135 - 2
src/lang/modules/ReportManagement/CategoryList.js

@@ -3,7 +3,140 @@
  */
 
 /* 英文 */
-export const CategoryListZh = {};
+export const CategoryListEn = {
+  chinese_tabs: "Chinese Classification",
+  english_tabs: "English research reports",
+  add_category_btn: "Add category",
+  edit_category_btn: "Edit Category",
+  category_name_ipt: "Category Name",
+  one_category_table: "First-level category",
+  two_category_table: "Second-level category",
+  configuration_btn: "Permission configuration",
+  settings_chapter_btn: "Chapter Settings",
+  please_input: "Please input",
+  parent_category_label: "Parent category ",
+  subdirectory_label: "Subdirectory",
+  click_to_add_btn: "Click to Add",
+  please_select: "Please Select",
+  category_tag_label: "Category Tag",
+  display_form_label: "Display form",
+  form_list_option: "List ",
+  form_column_option: "Column",
+  form_product_option: "Product",
+  backend_sorting_label: "Backend Sorting",
+  please_number_input: "Please enter a number",
+  page_sorting_label: "FICC page sorting",
+  page_icon_label: "FICC Page Icon",
+  up_page_icon_label: "Upload FICC Page Icon",
+  select_img_btn: "Select Image",
+  collection_report_label: "Collection of Report Illustrations",
+  up_collection_report_lable: "Upload Collection of Report Illustrations",
+  share_link_label: "Share Link Illustrations",
+  up_share_link_label: "Upload Share Link Illustrations",
+  pc_bg_label: "PC Background Color",
+  select_bg_label: "Select a background color",
+  mini_hidden_label: "Mini Program Hidden",
+  related_settings_label: "Related Settings",
+  teleconference_label: "Teleconference",
+  relate_videp_label: "Relate Video with Report",
+  share_desctription_label: "Share Desctription",
+  section_author_label: "Section Author",
+  please_author_ipt: "Please input section author name",
+  author_introduction_label: "Author Introduction",
+  please_author_introduction_ipt: "Please input author introduction ",
+  author_title_label: "Author Title",
+  section_introduction_label: "Section Introduction",
+  please_upload_label: "Please upload list background image",
+  homepage_illustrations_label: "Homepage Illustrations",
+  up_homepage_illustrations: "Please Upload Homepage Illustrations",
+  report_illustrations_label: "Report Illustrations",
+  up_report_illustrations: "Please upload report illustrations",
+  column_illustration_label: "Column Illustration",
+  up_scolumn_illustration: "Please upload column illustration",
+  banner_head_label: "Head banner ",
+  up_banner_head: "Please upload head banner",
+  img_author_label: "Image",
+  up_img_author: "Please upload author image",
+  list_background_image_label: "List Background Image",
+  up_list_background_image: "Please upload list background image",
+  please_input_name: "Please input category name",
+  please_select_category: "Please select a parent category",
+  please_input_introduction: "Please enter the category introduction",
+  please_input_description: "Please enter a classification description",
+  please_input_column_introduction: "Please enter the column introduction",
+  please_classification_label: "Please enter a classification label",
+  please_display_format: "Please choose the display format",
+  blue_color: "blue",
+  green_color: "green",
+  red_color: "red",
+};
 
 /* 中文 */
-export const CategoryListEn = {};
+export const CategoryListZh = {
+  chinese_tabs: "中文分类",
+  english_tabs: "英文分类",
+  add_category_btn: "添加分类",
+  edit_category_btn: "编辑分类",
+  category_name_ipt: "分类名称",
+  category_name_ipt: "分类名称",
+  one_category_table: "一级分类",
+  two_category_table: "二级分类",
+  configuration_btn: "权限配置",
+  settings_chapter_btn: "章节设置",
+  please_input: "请输入",
+  parent_category_label: "上级分类",
+  subdirectory_label: "子目录",
+  click_to_add_btn: "点击新增",
+  please_select: "请选择",
+  category_tag_label: "分类标签",
+  display_form_label: "展示形式",
+  form_list_option: "列表 ",
+  form_column_option: "专栏",
+  form_product_option: "品种",
+  backend_sorting_label: "后台排序",
+  please_number_input: "请输入数字",
+  page_sorting_label: "FICC页排序",
+  page_icon_label: "FICC页Icon",
+  up_page_icon_label: "上传FICC页icon",
+  select_img_btn: "选择图片",
+  collection_report_label: "报告合集配图",
+  up_collection_report_lable: "上传报告合集配图",
+  share_link_label: "分享链接配图",
+  up_share_link_label: "上传分享链接配图",
+  pc_bg_label: "PC端背景颜色",
+  select_bg_label: "选择背景颜色",
+  mini_hidden_label: "小程序端隐藏",
+  related_settings_label: "关联设置",
+  teleconference_label: "报告电话会",
+  relate_videp_label: "视频关联报告",
+  share_desctription_label: "分享描述",
+  section_author_label: "栏目作者",
+  please_author_ipt: "请输入栏目作者",
+  author_introduction_label: "作者简介",
+  please_author_introduction_ipt: "请输入作者简介",
+  author_title_label: "作者头衔",
+  section_introduction_label: "栏目简介",
+  please_upload_label: "请上传列表背景图",
+  homepage_illustrations_label: "首页配图",
+  up_homepage_illustrations: "请上传首页配图",
+  report_illustrations_label: "研报配图",
+  up_report_illustrations: "请上传研报配图",
+  column_illustration_label: "专栏配图",
+  up_scolumn_illustration: "请上传专栏配图",
+  banner_head_label: "头部banner",
+  up_banner_head: "请上传头部banner",
+  img_author_label: "头像",
+  up_img_author: "请上传作者头像",
+  list_background_image_label: "列表背景图",
+  up_list_background_image: "请上传列表背景图",
+  please_input_name: "请输入分类名称",
+  please_select_category: "请选择父级分类",
+  please_input_introduction: "请输入分类简介",
+  please_input_description: "请输入分类描述",
+  please_input_column_introduction: "请输入栏目简介",
+  please_classification_label: "请输入分类标签",
+  please_display_format: "请选择展示形式",
+  blue_color: "蓝色",
+  green_color: "绿色",
+  red_color: "红色",
+};

+ 41 - 0
src/lang/modules/ReportManagement/ReportList.js

@@ -0,0 +1,41 @@
+/**
+ * 研报管理--列表
+ */
+
+/* 英文 */
+export const ReportListEn = {
+  add_morning_weekly_btn: "Add morning/weekly reports",
+  download_data_btn: "Download reading data",
+  email_subject_btn: "Email subject:",
+  Recipient_btn: "Recipient:",
+  select_variety_permission: "Please select variety permission",
+  sending_customer_information: "Cancel sending customer information:",
+  select_customer: "Please select a customer",
+  designated_personnel: "Designated personnel",
+  designated_sender_information: "Designated sender information:",
+  please_select_personnel: "Please select personnel",
+  click_through_details: "点击量详情 Click through details",
+  customer_name: "Customer Name",
+  email_address: "e-mail address",
+  Last_click_time: "Last click time",
+  hits_btn: "Hits",
+};
+
+/* 中文 */
+export const ReportListZh = {
+  add_morning_weekly_btn: "添加晨报/周报",
+  download_data_btn: "下载阅读数据",
+  email_subject_btn: "邮件主题:",
+  Recipient_btn: "收件人:",
+  select_variety_permission: "请选择品种权限",
+  sending_customer_information: "取消发送客户信息:",
+  select_customer: "请选择客户",
+  designated_personnel: "指定人员",
+  designated_sender_information: "指定发送人员信息:",
+  please_select_personnel: "请选择人员",
+  click_through_details: "点击量详情 Click through details",
+  click_through_details: "客户名称",
+  email_address: "邮箱地址",
+  Last_click_time: "最近点击时间",
+  hits_btn: "点击量",
+};

+ 146 - 55
src/lang/modules/ReportManagement/SmartReport.js

@@ -4,64 +4,155 @@
 
 /* 英文 */
 export const SmartReportEn = {
-  smart_add_report:'Add report',
-  smart_filter_options:'Filter options',
-  smart_publish_time:'Publish Time',
-  smart_approval_time:'Approval Time',
-  smart_update_time:'Update Time',
-  smart_update_frequency_filter:'Update frequency filter',
-  smart_annually:'Annually',
-  smart_semi_annually:'Semi-annually',
-  smart_quarterly:'Quarterly',
-  smart_monthly:'Monthly',
-  smart_bi_weekly:'Bi-weekly',
-  smart_weekly:'Weekly',
-  smart_daily:'Daily',
-  smart_irregularly:'Irregularly',
-  smart_type_filtering:'Type Filtering',
-  smart_status_filtering:'Status Filtering',
-  smart_unpublished:'Unpublished',
-  smart_published:'Published',
-  smart_pending:'Pending',
-  smart_awaiting_approval:'Awaiting Approval',
-  smart_rejected:'Rejected',
-  smart_approved:'Approved',
-  smart_filtering_criteria:'Filtering criteria',
-  smart_title_creator_updater:'Title/Creator/Updater',
-  smart_report_title:'Report title',
-
+  smart_add_report: "Add report",
+  smart_filter_options: "Filter options",
+  smart_publish_time: "Publish Time",
+  smart_approval_time: "Approval Time",
+  smart_update_time: "Update Time",
+  smart_update_frequency_filter: "Update frequency filter",
+  smart_annually: "Annually",
+  smart_semi_annually: "Semi-annually",
+  smart_quarterly: "Quarterly",
+  smart_monthly: "Monthly",
+  smart_bi_weekly: "Bi-weekly",
+  smart_weekly: "Weekly",
+  smart_daily: "Daily",
+  smart_irregularly: "Irregularly",
+  smart_type_filtering: "Type Filtering",
+  smart_status_filtering: "Status Filtering",
+  smart_unpublished: "Unpublished",
+  smart_published: "Published",
+  smart_pending: "Pending",
+  smart_awaiting_approval: "Awaiting Approval",
+  smart_rejected: "Rejected",
+  smart_approved: "Approved",
+  smart_filtering_criteria: "Filtering criteria",
+  smart_title_creator_updater: "Title/Creator/Updater",
+  smart_report_title: "Report title",
+  smart_select_time_type_btn: "Select time type",
+  smart_notification_status_btn: "Notification Status",
+  smart_notification_yet_pushed: "Notification Yet Pushed",
+  smart_notification_pushed: "Notification Pushed",
+  smart_filtering_criteria_btn: "Filtering criteria",
+  smart_title_creator_btn: "Title/Creator",
+  smart_report_type: "Report type",
+  smart_creator_btn: "Creator",
+  smart_release_approval_time: "Release/Approval Time",
+  smart_report_push_time_btn: "Report push time",
+  smart_issue_number_btn: "Issue number",
+  smart_frequency_btn: "Frequency",
+  smart_withdraw_btn: "Withdraw",
+  smart_push_notification_btn: "Push Notification",
+  smart_audio_upload_btn: "Audio Upload",
+  smart_audio_download_btn: "Audio Download",
+  smart_please_content_ipt: "Please enter the note content",
+  smart_audio_upload_btn: "Audio Upload",
+  smart_upload_recording_btn: "Upload report recording",
+  smart_release_prompt_btn: "Release prompt",
+  smart_template_msg: "The report has been set to be released regularly. Do you want to publish the report immediately and push the template message?",
+  smart_push_template_btn: "Do you want to publish the report immediately and push template messages?",
+  smart_status_table: "status",
+  smart_abstract_table: "Abstract",
+  smart_select_file: "Select file",
+  smart_sync_policy_report: "Sync Policy Report",
+  smart_publish_filter_select: "Publish Filter",
+  smart_status_filtering_select: "Group sending status filtering",
+  smart_emails_unsent_option: "Emails unsent",
+  smart_emails_sents_option: "Email sents",
+  smart_btn: {
+    publish: "Publish",
+    submission: "Submission",
+    editing: "Editing",
+    withdraw: "Withdraw",
+    upload: "Upload",
+    uploading: "Uploading",
+    select_all: "Select All",
+    only_publish: "Only publish",
+    publish_push: "Publish&Push",
+    morning_paper: "morning paper",
+    weekly: "weekly",
+    Submission: "Submission",
+    send_email: "Send email to group",
+    send_log: "Group send log",
+    image_download: "Image Download",
+  },
 };
 
 /* 中文 */
 export const SmartReportZh = {
-  smart_add_report:'添加研报',
-  smart_filter_options:'筛选项',
-  smart_publish_time:'发布时间',
-  smart_approval_time:'审批时间',
-  smart_update_time:'更新时间',
-  smart_update_frequency_filter:'更新频度筛选',
-  smart_annually:'年度',
-  smart_semi_annually:'半年度',
-  smart_quarterly:'季度',
-  smart_monthly:'月度',
-  smart_bi_weekly:'双周度',
-  smart_weekly:'周度',
-  smart_daily:'日度',
-  smart_irregularly:'不定时',
-  smart_type_filtering:'类型筛选',
-  smart_status_filtering:'状态筛选',
-  smart_unpublished:'未发布',
-  smart_published:'已发布',
-  smart_pending:'待提交',
-  smart_awaiting_approval:'待审批',
-  smart_rejected:'已驳回',
-  smart_approved:'已通过',
-  smart_filtering_criteria:'筛选条件',
-  smart_title_creator_updater:'标题/创建人/更新人',
-  smart_report_title:'报告标题',
-  
+  smart_add_report: "添加研报",
+  smart_filter_options: "筛选项",
+  smart_publish_time: "发布时间",
+  smart_approval_time: "审批时间",
+  smart_update_time: "更新时间",
+  smart_update_frequency_filter: "更新频度筛选",
+  smart_annually: "年度",
+  smart_semi_annually: "半年度",
+  smart_quarterly: "季度",
+  smart_monthly: "月度",
+  smart_bi_weekly: "双周度",
+  smart_weekly: "周度",
+  smart_daily: "日度",
+  smart_irregularly: "不定时",
+  smart_type_filtering: "类型筛选",
+  smart_status_filtering: "状态筛选",
+  smart_unpublished: "未发布",
+  smart_published: "已发布",
+  smart_pending: "待提交",
+  smart_awaiting_approval: "待审批",
+  smart_rejected: "已驳回",
+  smart_approved: "已通过",
+  smart_filtering_criteria: "筛选条件",
+  smart_title_creator_updater: "标题/创建人/更新人",
+  smart_report_title: "报告标题",
+  smart_select_time_type_btn: "选择时间类型",
+  smart_notification_status_btn: "推送消息状态",
+  smart_notification_yet_pushed: "未推送消息",
+  smart_notification_pushed: "已推送消息",
+  smart_filtering_criteria_btn: "筛选条件",
+  smart_title_creator_btn: "标题 / 创建人",
+  smart_report_type: "报告类型",
+  smart_creator_btn: "创建人",
+  smart_release_approval_time: "发布/审批时间",
+  smart_report_push_time_btn: "报告推送时间",
+  smart_issue_number_btn: "期数",
+  smart_frequency_btn: "频度",
+  smart_withdraw_btn: "撤销",
+  smart_push_notification_btn: "推送消息",
+  smart_audio_upload_btn: "音频上传",
+  smart_audio_download_btn: "音频下载",
+  smart_please_content_ipt: "请输入备注内容",
+  smart_audio_upload_btn: "音频上",
+  smart_upload_recording_btn: "上传报告录音",
+  smart_release_prompt_btn: "发布提示",
+  smart_template_msg: "该报告已设置定时发布,是否立即发布报告并推送模板消息?",
+  smart_push_template_btn: "是否立即发布报告,并推送模板消息?",
+  smart_status_table: "状态",
+  smart_abstract_table: "摘要",
+  smart_select_file: "选择文件",
+  smart_sync_policy_report: "同步策略报告",
+  smart_publish_filter_select: "发布筛选",
+  smart_status_filtering_select: "群发状态筛选",
+  smart_emails_unsent_option: "未群发邮件",
+  smart_emails_sents_option: "已群发邮件",
+  smart_btn: {
+    publish: "发布",
+    submission: "提交",
+    editing: "编辑中...",
+    withdraw: "撤销",
+    upload: "上传",
+    uploading: "上传中",
+    select_all: "全选",
+    only_publish: "仅发布",
+    publish_push: "发布&推送",
+    morning_paper: "晨报",
+    weekly: "周报",
+    Submission: "提交",
+    send_email: "群发邮件",
+    send_log: "群发日志",
+    image_download: "图片下载",
+  },
 };
 
-/**
- * $t('ReportManage.smart_add_report')
-*/
+/**t('ReportManage.smart_add_report')
+ */

+ 4 - 0
src/lang/modules/ReportManagement/indexEn.js

@@ -2,6 +2,8 @@ import { CloudPageEn } from "./CloudPage";
 import { CommodityConfigurationEn } from "./CommodityConfiguration";
 import { AuthorManagementEn } from "./AuthorManagement";
 import { SmartReportEn } from "./SmartReport";
+import { CategoryListEn } from "./CategoryList";
+import { ReportListEn } from "./ReportList";
 
 export default {
   ReportManage: {
@@ -16,5 +18,7 @@ export default {
     CommodityConfiguration: CommodityConfigurationEn,
     AuthorManagement: AuthorManagementEn,
     ...SmartReportEn,
+    CategoryList: CategoryListEn,
+    ReportList: ReportListEn,
   },
 };

+ 4 - 0
src/lang/modules/ReportManagement/indexZh.js

@@ -3,6 +3,8 @@ import { CloudPageZh } from "./CloudPage";
 import { CommodityConfigurationZh } from "./CommodityConfiguration";
 import { AuthorManagementZh } from "./AuthorManagement";
 import { SmartReportZh } from "./SmartReport";
+import { CategoryListZh } from "./CategoryList";
+import { ReportListZh } from "./ReportList";
 
 export default {
   ReportManage: {
@@ -17,5 +19,7 @@ export default {
     CommodityConfiguration: CommodityConfigurationZh,
     AuthorManagement: AuthorManagementZh,
     ...SmartReportZh,
+    CategoryList: CategoryListZh,
+    ReportList: ReportListZh,
   },
 };

+ 6 - 0
src/lang/modules/Slides/commonLang.js

@@ -22,6 +22,9 @@ export const operationsEn = {
   operations_switch: "Switch template",
   paste_before_slide: "Paste before this slide",
   paste_after_slide: "Paste after this slide",
+  please_delete_existing_chartsmsg: "There is no place left, please delete existing charts/images",
+  cover_info: "cover",
+  back_cover_info: "Back cover",
 };
 
 /* 中文 */
@@ -44,4 +47,7 @@ export const operationsZh = {
   operations_switch: "切换模板",
   paste_before_slide: "粘贴到此页前",
   paste_after_slide: "粘贴到此页后",
+  please_delete_existing_chartsmsg: "已无位置,请删除现有图表/图片",
+  cover_info: "封面",
+  back_cover_info: "封底",
 };

+ 1 - 1
src/lang/modules/Slides/indexZh.js

@@ -9,7 +9,7 @@ import { messageZh } from "./pptMsg";
 
 /* 中文 */
 export default {
-  SlidesZh: {
+  Slides: {
     ...listZh,
     ...operationsZh,
     ...presentZh,

+ 5 - 0
src/lang/modules/Slides/pptMsg.js

@@ -13,6 +13,9 @@ export const messageEn = {
     `<p>1. Ctrl + Left Mouse Click to select PPT slides, supports multiple selection;</p>` +
     `<p>2. Choose the desired location to copy or cut the PPT slides, click on the more options for the selected PPT slide, and choose "Paste Before This Slide" or "Paste After This Slide."</p>`,
   msg_affirmative: "Affirmative",
+  is_delete_ppt_msg:'Are you sure to delete the ppt on this page',
+  generating_powerPoint_msg:'Generating PowerPoint'
+
 };
 
 /* 中文 */
@@ -26,5 +29,7 @@ export const messageZh = {
     `<p>1、ctrl+鼠标左键,选择PPT页,支持多选;</p>` +
     `<p>2、选择所要复制或剪切的PPT页位置,点击PPT页的更多操作项,选择“粘贴到此页前”或“粘贴到此页后”。</p>`,
   msg_affirmative: "知道了",
+  is_delete_ppt_msg:'确定删除该页ppt吗',
+  generating_powerPoint_msg:'生成ppt中...'
 };
 // Slides

+ 61 - 9
src/lang/modules/Slides/pptPresent.js

@@ -33,7 +33,7 @@ export const presentEn = {
   line_settings: "Line settings",
   outline_element: "Outline settings",
   text_element: "Text settings",
-  batch_deletion_successful: "批量删除成功",
+  batch_deletion_successful: "Batch deletion successfu",
   retrieving_ppt_data: "Retrieving PPT data",
   loading_urgently: "Loading urgently",
   convert_to_report_dlg: "PPT convert to report",
@@ -55,10 +55,36 @@ export const presentEn = {
   specify_members_radio: "Specify members",
   please_select_researcher: "Please select a researcher",
   please_select_directory: "Please select a directory",
-  input_text_cover:'Input text',
-  text_settings_cover:'Text settings',
-  please_select_settings_cover:'Please select the text element.',
-  change_the_template_cover:'Change the template',
+  input_text_cover: "Input text",
+  text_settings_cover: "Text settings",
+  please_select_settings_cover: "Please select the text element.",
+  change_the_template_cover: "Change the template",
+  untitled_title: "Untitled",
+  please_select_slide: "Please select PPT slide",
+  chart_category_name_select: "Chart Category Name",
+  insert_charts_tooltip: "This operation will import all charts under the selected chart category in bulk.",
+  no_data_empty: "No data",
+  unselected_ppt_slides: "Unselected PPT slides",
+  selected_ppt_slides_transfer: "Selected slides",
+  hold_down_drag_tooltip: "Hold down drag",
+  add_to_my_gallery_tooltip: "Add to my gallery",
+  copy_name_tooltip: "Copy Name",
+  source_info: "source",
+  click_input_text_content: "Click to input text content",
+  delete_element_contextmenus: "Delete Element",
+  copy_element_contextmenus: "Copy  Element",
+  border_thickness_tooltip: "Border thickness",
+  border_style_tooltip: "Border style",
+  border_color_tooltip: "Border color",
+  fill_color_tooltip: "Fill color",
+  line_thickness_tooltip: "Line thickness",
+  line_style_tooltip: "Line style",
+  line_srrow_tooltip: "Line arrow",
+  line_color_tooltip: "Line color",
+  line_default: "Line",
+  exit_full_screen_default: "Exit Full Screen",
+  next_sheet_default: "Next sheet",
+  previous_sheet_default: "Previous sheet",
 };
 
 /* 中文 */
@@ -114,10 +140,36 @@ export const presentZh = {
   specify_members_radio: "指定成员",
   please_select_researcher: "请选择研究员",
   please_select_directory_msg: "请选择目录",
-  input_text_cover:'插入文本',
-  text_settings_cover:'文本设置',
-  please_select_settings_cover:'请选择文本元素',
-  change_the_template_cover:'换一个模板',
+  input_text_cover: "插入文本",
+  text_settings_cover: "文本设置",
+  please_select_settings_cover: "请选择文本元素",
+  change_the_template_cover: "换一个模板",
+  untitled_title: "无标题",
+  please_select_slide: "请选择PPT页",
+  chart_category_name_select: "图分类名称",
+  insert_charts_tooltip: "该操作将批量导入所选图分类下所有图表",
+  no_data_empty: "无数据",
+  unselected_ppt_slides: "未选PPT页",
+  selected_ppt_slides_transfer: "已选PPT页",
+  hold_down_drag_tooltip: "按住拖动 Hold down drag",
+  add_to_my_gallery_tooltip: "添加到我的图库 Add to my gallery",
+  copy_name_tooltip: "复制名称 Copy Name",
+  source_info: "来源 source",
+  click_input_text_content: "点击输入文本内容",
+  delete_element_contextmenus: "删除元素",
+  copy_element_contextmenus: "复制元素",
+  border_thickness_tooltip: "边框粗细",
+  border_style_tooltip: "边框样式",
+  border_color_tooltip: "边框颜色",
+  fill_color_tooltip: "填充颜色",
+  line_thickness_tooltip: "线条粗细",
+  line_style_tooltip: "线条样式",
+  line_srrow_tooltip: "线条箭头",
+  line_color_tooltip: "线条颜色",
+  line_default: "直线",
+  exit_full_screen_default: "退出全屏",
+  next_sheet_default: "下一张",
+  previous_sheet_default: "上一张",
 };
 
 /**

+ 2 - 1
src/lang/modules/StatisticAnalysis/ChartRelevance.js

@@ -12,7 +12,7 @@ export const ChartRelevanceEn = {
     add_chart_classify:'Add chart category',
     edit_chart_classify:'Edit chart category',
     classify_name_tips:"The category name cannot be empty",
-
+    opt_tip_btn:"Operation instruction",
 };
   
 /* 中文 */
@@ -25,6 +25,7 @@ export const ChartRelevanceZh = {
     add_chart_classify:'添加图表分类',
     edit_chart_classify:'编辑图表分类',
     classify_name_tips:"分类名称不能为空",
+    opt_tip_btn:"操作说明",
 
 };
   

+ 2 - 0
src/main.js

@@ -40,6 +40,8 @@ Vue.use(ElementUI);
 Vue.use(VueRouter);
 Vue.use(Vuex);
 
+Vue.prototype.$i18nt = i18n;
+
 // 设置element语言
 // locale.use(localStorage.getItem('i18n')!='zh' ?  langEN:langZH )
 locale.i18n((key, value) => i18n.t(key, value))

+ 11 - 11
src/views/chartRelevance_manage/relevance/list.vue

@@ -242,16 +242,16 @@
                 <span v-else>{{ scope.row[item.key] }}</span>
               </template>
             </el-table-column>
-            <el-table-column label="操作" key="Copy" align="center" width="140">
+            <el-table-column :label="$t('Edb.Detail.e_opera')" key="Copy" align="center" width="140">
               <template slot-scope="scope">
                 <!-- <span @click="delTarget(scope.row)" class="deletesty">删除&nbsp;</span> -->
                 <span v-permission="permissionBtn.statisticPermission.corrAnalysis_copyData"
                     class="editsty" @click="copyCode(scope.row)">
-                  <i class="el-icon-document-copy" />&nbsp;复制数据</span
+                  <i class="el-icon-document-copy" />&nbsp;{{$t('Edb.detail_copydata_btn')}}</span
                 ><br />
                 <span v-permission="permissionBtn.statisticPermission.corrAnalysis_viewData"
                     class="editsty" @click="viewTarget(scope.row)"
-                  >查看数据</span
+                  >{{$t('Edb.detail_lookdata_btn')}}</span
                 >
               </template>
             </el-table-column>
@@ -502,15 +502,15 @@ export default {
       const { DeleteStatus } = Data;
 
       DeleteStatus === 1
-        ? this.$confirm("该分类下关联表图表不可删除", "删除失败", {
-            confirmButtonText: "知道了",
+        ? this.$confirm(this.$t('Chart.OptMsg.classify_del_fail'), this.$t('Chart.OptMsg.del_fail_tag'), {
+            confirmButtonText: this.$t('MsgPrompt.known'),
             showCancelButton: false,
             type: "error",
           })
         : DeleteStatus === 0
-        ? this.$confirm("确定删除当前分类吗?", "提示", {
-            confirmButtonText: "确定",
-            cancelButtonText: "取消",
+        ? this.$confirm(this.$t('Chart.OptMsg.classify_del_confirm'), this.$t('Confirm.prompt'), {
+            // confirmButtonText: "确定",
+            // cancelButtonText: "取消",
             type: "warning",
           }).then(() => {
             this.delApi(ChartClassifyId, ChartInfoId);
@@ -645,9 +645,9 @@ export default {
     /* 删除图表 */
     delChartHandle() {
       const { ChartClassifyId, ChartInfoId } = this.chartInfo;
-      this.$confirm("删除后该图表将不能再引用,确认删除吗?", "提示", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
+      this.$confirm(this.$t('Chart.OptMsg.chart_del_confirm'), this.$t('Confirm.prompt'), {
+        // confirmButtonText: "确定",
+        // cancelButtonText: "取消",
         type: "warning",
       })
         .then(() => {

+ 2 - 2
src/views/chartRelevance_manage/relevance/relevanceChartEditor.vue

@@ -9,10 +9,10 @@
     </span>
     <div class="left-cont" v-show="!isSlideLeft" id="left">
       <div class="left-top">
-        <el-button type="primary" plain @click="$router.back()">取消</el-button>
+        <el-button type="primary" plain @click="$router.back()">{{$t('Dialog.cancel_btn')}}</el-button>
         <div style="color:#409EFF;font-size: 16px;cursor: pointer;" @click="showExplain = true">
             <i class="el-icon-document" style="font-size:22px;"></i>
-            操作说明
+            {{$t('StatisticAnalysis.ChartRelevance.opt_tip_btn')}}
         </div>
       </div>
       <div class="left-min">

+ 1 - 1
src/views/classify_manage/classifyEnlist.vue

@@ -38,7 +38,7 @@
         :data="tableData"
         v-loading="dataLoading"
         row-class-name="tableRowClassName"
-        element-loading-text="数据加载中..."
+        :element-loading-text="$t('Table.data_loading')" 
         :default-expand-all="isexpand"
         row-key="Id"
         style="border: 1px solid #dcdfe6"

+ 173 - 170
src/views/classify_manage/classifylist.vue

@@ -3,16 +3,16 @@
 		<el-card class="box-card">
 			<div slot="header" class="header">
 				<div class="type-box">
-					<span class="act" v-permission="permissionBtn.classifyBtn.classifyList_cnClassify">中文分类</span>
-					<span @click="$emit('typeChange','2')" v-permission="permissionBtn.enClassifyBtn.classifyList_enClassify">英文分类</span>
+					<span class="act" v-permission="permissionBtn.classifyBtn.classifyList_cnClassify">{{this.$t('ReportManage.CategoryList.chinese_tabs')}}</span>
+					<span @click="$emit('typeChange','2')" v-permission="permissionBtn.enClassifyBtn.classifyList_enClassify">{{this.$t('ReportManage.CategoryList.english_tabs')}}</span>
 				</div>
 				<el-form :inline="true" :model="searchform" @submit.native.prevent>
 					<el-form-item label="">
 						<el-button v-permission="permissionBtn.classifyBtn.classifyList_cnClassify_classifyAdd"
-                            type="primary" size="small" @click="aeDialogTrue">添加分类</el-button>
+                            type="primary" size="small" @click="aeDialogTrue">{{$t('ReportManage.CategoryList.add_category_btn')}}</el-button>
 					</el-form-item>
 		  			<el-form-item>
-						<el-input placeholder="分类名称" @change="search" v-model="searchform.key_word" clearable size="small">
+						<el-input :placeholder="$t('ReportManage.CategoryList.category_name_ipt')" @change="search" v-model="searchform.key_word" clearable size="small">
 							<i class="el-icon-search" slot="prefix" @click="search"></i>
 						</el-input>
 					</el-form-item>
@@ -20,39 +20,39 @@
 			</div>
 			<template>
 				<el-table v-if="isTableShow"
-                    style="border:1px solid #eaeaea;" :data="tableData" v-loading="listLoading" :row-class-name="tableRowClassName" element-loading-text="数据加载中..." :default-expand-all='isexpand' row-key="Id" :tree-props="{children:'children',hasChildren:'hasChildren'}">
+                    style="border:1px solid #eaeaea;" :data="tableData" v-loading="listLoading" :row-class-name="tableRowClassName" :element-loading-text="$t('Table.data_loading')" :default-expand-all='isexpand' row-key="Id" :tree-props="{children:'children',hasChildren:'hasChildren'}">
 					<!-- <el-table-column prop="id" label="序号" width="100px" align="left">
 						<template slot-scope="scope">
 							<span>{{scope.row.ischild?'':scope.row.id}}</span>
 						</template>
 					</el-table-column> -->
-					<el-table-column prop="classify_name" label="一级分类">
+					<el-table-column prop="classify_name" :label="$t('ReportManage.CategoryList.one_category_table')">
 						<template slot-scope="scope">
 							<span>{{scope.row.ischild?'':scope.row.ClassifyName}}</span>
 							<img style="width:16px;position: relative;top:3px" src="../../assets/img/icons/ppt-icon.png" alt="" v-if="!scope.row.ischild&&scope.row.HasTeleconference">
 						</template>
 					</el-table-column>
-					<el-table-column prop="classify_name" label="二级分类">
+					<el-table-column prop="classify_name" :label="$t('ReportManage.CategoryList.two_category_table')">
 						<template slot-scope="scope">
 							<span>{{scope.row.ischild?scope.row.ClassifyName:''}}</span>
 							<img style="width:16px;position: relative;top:3px" src="../../assets/img/icons/ppt-icon.png" alt="" v-if="scope.row.ischild&&scope.row.HasTeleconference">
 						</template>
 					</el-table-column>
-					<el-table-column label="操作" align="center">
+					<el-table-column :label="$t('Table.column_operations')" align="center">
 						<template slot-scope="scope">
 							<div style="color:#4099ef; font-size:24px;">
 								<span class="editsty" v-permission="permissionBtn.classifyBtn.classifyList_cnClassify_chapterSetting"
-                                    v-if="scope.row.ClassifyName=='晨报' || scope.row.ClassifyName=='周报'" @click="chapterSetting(scope.row)">章节设置</span>
+                                    v-if="scope.row.ClassifyName=='晨报' || scope.row.ClassifyName=='周报'" @click="chapterSetting(scope.row)">{{$t('ReportManage.CategoryList.settings_chapter_btn')}}</span>
 								<span class="editsty" v-permission="permissionBtn.classifyBtn.classifyList_cnClassify_authSetting"
-                                    :class="{'editedsty' : editedItems.includes(scope.row.Id)}" v-if="scope.row.ischild" @click="configitem(scope.row)">权限配置</span>
+                                    :class="{'editedsty' : editedItems.includes(scope.row.Id)}" v-if="scope.row.ischild" @click="configitem(scope.row)">{{$t('ReportManage.CategoryList.configuration_btn')}}</span>
 								&nbsp;&nbsp;
 								<!-- <i class="el-icon-edit-outline" @click="edititem(scope.row)"></i> -->
 								<span class="editsty" v-permission="permissionBtn.classifyBtn.classifyList_cnClassify_classifyAdd"
-                                    @click="edititem(scope.row)">编辑</span>
+                                    @click="edititem(scope.row)">{{$t('Table.edit_btn')}}</span>
 								&nbsp;&nbsp;
 								<!-- <i class="el-icon-delete" @click="checkdeleteitem(scope.row)"></i> -->
 								<span v-permission="permissionBtn.classifyBtn.classifyList_cnClassify_classifyDel"
-                                    class="deletesty" @click="checkdeleteitem(scope.row)">删除</span>
+                                    class="deletesty" @click="checkdeleteitem(scope.row)">{{$t('Table.delete_btn')}}</span>
 							</div>
 		  	    		</template>
 					</el-table-column>
@@ -63,17 +63,17 @@
 		  	</el-col>
 		</el-card>
 		<!-- 添加分类弹框 -->
-		<el-dialog :modal-append-to-body='false' :title="isadd?'添加分类':'编辑分类'" :visible.sync="aeDialog" :close-on-click-modal="false" :center="true" v-dialogDrag custom-class="dialogclassLog" width="700px">
+		<el-dialog :modal-append-to-body='false' :title="isadd? $t('ReportManage.CategoryList.add_category_btn') : $t('ReportManage.CategoryList.edit_category_btn') " :visible.sync="aeDialog" :close-on-click-modal="false" :center="true" v-dialogDrag custom-class="dialogclassLog" width="700px">
 			<div slot="title" style="display:flex;alignItems:center;">
 				<img :src="isadd?$icons.add:$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
-				<span style="fontSize:16px;">{{isadd?'添加分类':'编辑分类'}}</span>
+				<span style="fontSize:16px;">{{isadd? $t('ReportManage.CategoryList.add_category_btn'): $t('ReportManage.CategoryList.edit_category_btn')}}</span>
 			</div>
 			<el-form :model="aeForm" :rules="aerules" ref="aeForm" label-position="right" label-width="140px" class="aeForm"  @submit.native.prevent>
-				<el-form-item prop="classify_name" label="分类名称">
-					<el-input type="text" v-model="aeForm.classify_name" placeholder="请输入" size="small" style="width:400px;"></el-input>
+				<el-form-item prop="classify_name" :label="$t('ReportManage.CategoryList.category_name_ipt')">
+					<el-input type="text" v-model="aeForm.classify_name" :placeholder="$t('ReportManage.CategoryList.please_input')" size="small" style="width:400px;"></el-input>
 				</el-form-item>
-				<el-form-item prop="parent_id" label="上级分类">
-					<el-select v-model="aeForm.parent_id" placeholder="请选择" size="small" style="width:400px;" @change="parentSelectChange(aeForm.parent_id)">
+				<el-form-item prop="parent_id" :label="$t('ReportManage.CategoryList.parent_category_label')">
+					<el-select v-model="aeForm.parent_id" :placeholder="$t('ReportManage.CategoryList.please_input')" size="small" style="width:400px;" @change="parentSelectChange(aeForm.parent_id)">
 						<el-option label="无" :value="0"></el-option>
 						<el-option v-for="(item,index) in classifyparentArr" :key="index" :label="item.ClassifyName" :value="item.Id"></el-option>
 					</el-select>
@@ -81,7 +81,7 @@
 				<!-- 下面的表单项除了后台排序,都合成一个buttoncode判断:classifyList_cnClassify_childMenu -->
 				<template v-if="permissionBtn.checkPermissionBtn(permissionBtn.classifyBtn.classifyList_cnClassify_childMenu)">
 					<!-- 一级目录子目录 -->
-					<el-form-item label="子目录"
+					<el-form-item :label="$t('ReportManage.CategoryList.subdirectory_label')"
 						v-if="aeForm.parent_id==0&&aeForm.showType==1">
 						<draggable v-model="ClassifyMenuList" animation="300">
 							<div style="display:inline-block;margin-right:5px" v-for="(item,index) in ClassifyMenuList" :key="item">
@@ -116,14 +116,14 @@
 								style="width: 90px;"
 							>
 							</el-input>
-							<el-button v-else size="small" @click="showInput(-1)">+ 点击新增</el-button>
+							<el-button v-else size="small" @click="showInput(-1)">+ {{$t('ReportManage.CategoryList.click_to_add_btn')}}</el-button>
 						</div>
 						
 					</el-form-item>
 					<!-- 二级目录子目录 -->
-					<el-form-item label="子目录" 
+					<el-form-item :label="$t('ReportManage.CategoryList.subdirectory_label')" 
 						v-if="aeForm.parent_id!=0">
-						<el-select v-model="aeForm.ClassifyMenuId"  clearable placeholder="请选择" style="width:400px;">
+						<el-select v-model="aeForm.ClassifyMenuId"  clearable :placeholder="$t('ReportManage.CategoryList.please_select')" style="width:400px;">
 							<el-option 
 								:label="item.MenuName" 
 								:value="item.MenuId" 
@@ -134,143 +134,143 @@
 					</el-form-item>
 				</template>
 				<template v-if="permissionBtn.checkPermissionBtn(permissionBtn.classifyBtn.classifyList_cnClassify_childMenu)">
-					<el-form-item prop="label" label="分类标签" v-if="aeForm.parent_id!=0">
-						<el-input type="textarea" autosize v-model="aeForm.label" placeholder="请输入" size="small" style="width:400px;font-size:14px;"></el-input>
+					<el-form-item prop="label" :label="$t('ReportManage.CategoryList.category_tag_label')" v-if="aeForm.parent_id!=0">
+						<el-input type="textarea" autosize v-model="aeForm.label" :placeholder="$t('ReportManage.CategoryList.please_select')" size="small" style="width:400px;font-size:14px;"></el-input>
 					</el-form-item>
-					<el-form-item label="展示形式"
+					<el-form-item :label="$t('ReportManage.CategoryList.display_form_label')"
 						prop="showType" v-if="aeForm.parent_id==0">
-						<el-select v-model="aeForm.showType" placeholder="请选择" style="width:400px;">
-							<el-option label="列表" :value="1"></el-option>
-							<el-option label="专栏" :value="2"></el-option>
-							<el-option label="品种" :value="3"></el-option>
+						<el-select v-model="aeForm.showType" :placeholder="$t('ReportManage.CategoryList.please_select')" style="width:400px;">
+							<el-option :label="$t('ReportManage.CategoryList.form_list_option')" :value="1"></el-option>
+							<el-option :label="$t('ReportManage.CategoryList.form_column_option')" :value="2"></el-option>
+							<el-option :label="$t('ReportManage.CategoryList.form_product_option')" :value="3"></el-option>
 						</el-select>
 					</el-form-item>
 				</template>
-				<el-form-item label="后台排序"
+				<el-form-item :label="$t('ReportManage.CategoryList.backend_sorting_label')"
                     prop="Sort" v-if="aeForm.parent_id==0&&permissionBtn.checkPermissionBtn(permissionBtn.classifyBtn.classifyList_cnClassify_backSort)">
-					<el-input-number v-model="aeForm.Sort" placeholder="请输入数字"></el-input-number>
+					<el-input-number v-model="aeForm.Sort" :placeholder="$t('ReportManage.CategoryList.please_number_input')"></el-input-number>
 				</el-form-item>
 				<template v-if="permissionBtn.checkPermissionBtn(permissionBtn.classifyBtn.classifyList_cnClassify_childMenu)">
-					<el-form-item label="FICC页排序"
+					<el-form-item :label="$t('ReportManage.CategoryList.page_sorting_label')"
                     prop="YbFiccSort" v-if="aeForm.parent_id==0">
-					<el-input-number v-model="aeForm.YbFiccSort" placeholder="请输入数字"></el-input-number>
+					<el-input-number v-model="aeForm.YbFiccSort" :placeholder="$t('ReportManage.CategoryList.please_number_input')"></el-input-number>
 				</el-form-item>
-				<el-form-item label="FICC页icon"
+				<el-form-item :label="$t('ReportManage.CategoryList.page_icon_label')"
                     v-if="aeForm.parent_id==0" prop="YbFiccIcon">
 					<input type="file" size="small" name="file" @change="fileSelected(6)" id="file6" class="true-file" style="display:none;">
 					<el-input readonly type="text" v-model="aeForm.YbFiccIcon" placeholder="上传FICC页icon" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(6)">选择图片</el-button>
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(6)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="报告合集配图"
+				<el-form-item :label="$t('ReportManage.CategoryList.collection_report_label')"
 					v-if="aeForm.parent_id==0&&aeForm.showType!==2" prop="YbRightBanner">
 					<input type="file" size="small" name="file" @change="fileSelected(11)" id="file11" class="true-file" style="display:none;">
-					<el-input readonly type="text" v-model="aeForm.YbRightBanner" placeholder="上传报告合集配图" size="medium" style="width:400px;">
-					  <el-button slot="append" type="primary" size="mini" @click.native="clickinput(11)">选择图片</el-button>
+					<el-input readonly type="text" v-model="aeForm.YbRightBanner" :placeholder="$t('ReportManage.CategoryList.up_collection_report_lable')" size="medium" style="width:400px;">
+					  <el-button slot="append" type="primary" size="mini" @click.native="clickinput(11)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 				  </el-input>
 				</el-form-item>
-				<el-form-item label="分享链接配图" 
+				<el-form-item :label="$t('ReportManage.CategoryList.share_link_label')" 
 					prop="YbShareBgImg" v-if="aeForm.parent_id==0">
 					<input type="file" size="small" name="file" @change="fileSelected(10)" id="file10" class="true-file" style="display:none;">
-					<el-input readonly type="text" v-model="aeForm.YbShareBgImg" placeholder="上传分享链接配图" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(10)">选择图片</el-button>
+					<el-input readonly type="text" v-model="aeForm.YbShareBgImg" :placeholder="$t('ReportManage.CategoryList.up_share_link_label')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(10)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="PC端背景颜色"
+				<el-form-item :label="$t('ReportManage.CategoryList.pc_bg_label')"
 					prop="YbFiccPcIcon" v-if="aeForm.parent_id==0">
-					<el-select v-model="aeForm.YbFiccPcIcon" placeholder="选择背景颜色" style="width:400px;">
+					<el-select v-model="aeForm.YbFiccPcIcon" :placeholder="$t('ReportManage.CategoryList.select_bg_label')" style="width:400px;">
 						<el-option :label="item.label" :value="item.val" v-for="item in YbFiccPcIconList" :key="item.label"></el-option>
 					</el-select>
 				</el-form-item>
-				<el-form-item label="小程序端隐藏"
+				<el-form-item :label="$t('ReportManage.CategoryList.mini_hidden_label')"
 					prop="IsShow" v-if="aeForm.parent_id==0">
 					<el-switch v-model="aeForm.IsShow" inactive-color="#ededed"></el-switch>
 				</el-form-item>
 				<el-form-item label="PPT转报告" prop="hasTel" v-if="aeForm.parent_id!=0">
-					<el-select v-model="aeForm.hasTel" placeholder="请选择" style="width:400px;">
+					<el-select v-model="aeForm.hasTel" :placeholder="$t('ReportManage.CategoryList.please_select')" style="width:400px;">
 						<el-option label="无" :value="0"></el-option>
 						<el-option label="有" :value="1"></el-option>
 					</el-select>
 				</el-form-item>
-				<el-form-item label="关联设置" 
+				<el-form-item :label="$t('ReportManage.CategoryList.related_settings_label')" 
 					prop="relate" v-if="!['晨报','周报'].includes(aeForm.classify_name)">
-					<el-select v-model="aeForm.relate" multiple placeholder="请选择" style="width:400px;">
-						<el-option label="报告电话会" :value="1"></el-option>
-						<el-option label="视频关联报告" :value="2"></el-option>
+					<el-select v-model="aeForm.relate" multiple :placeholder="$t('ReportManage.CategoryList.please_select')" style="width:400px;">
+						<el-option :label="$t('ReportManage.CategoryList.teleconference_label')" :value="1"></el-option>
+						<el-option :label="$t('ReportManage.CategoryList.relate_videp_label')" :value="2"></el-option>
 					</el-select>
 				</el-form-item>
 				</template>
 				<!-- 这里开始是二级目录选项 -->
 				<template v-if="permissionBtn.checkPermissionBtn(permissionBtn.classifyBtn.classifyList_cnClassify_childMenu)">
-					<el-form-item label="分享描述" v-if="aeForm.parent_id!=0">
-					<el-input type="textarea" autosize v-model="aeForm.descript" placeholder="请输入" size="small" style="width:400px;font-size:14px;"></el-input>
+					<el-form-item :label="$t('ReportManage.CategoryList.share_desctription_label')" v-if="aeForm.parent_id!=0">
+					<el-input type="textarea" autosize v-model="aeForm.descript" :placeholder="$t('ReportManage.CategoryList.please_input')" size="small" style="width:400px;font-size:14px;"></el-input>
 				</el-form-item>
-				<el-form-item label="栏目作者" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="author">
-					<el-input type="text" v-model="aeForm.author" placeholder="请输入" size="small" style="width:400px;"></el-input>
+				<el-form-item :label="$t('ReportManage.CategoryList.section_author_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="author">
+					<el-input type="text" v-model="aeForm.author" :placeholder="$t('ReportManage.CategoryList.please_input')" size="small" style="width:400px;"></el-input>
 				</el-form-item>
-				<el-form-item label="作者简介" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="authorDsec">
-					<el-input type="text" v-model="aeForm.authorDsec" placeholder="请输入" size="small" style="width:400px;"></el-input>
+				<el-form-item :label="$t('ReportManage.CategoryList.author_introduction_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="authorDsec">
+					<el-input type="text" v-model="aeForm.authorDsec" :placeholder="$t('ReportManage.CategoryList.please_input')" size="small" style="width:400px;"></el-input>
 				</el-form-item>
-				<el-form-item label="作者头衔" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="authorTag">
-					<el-input type="text" v-model="aeForm.authorTag" placeholder="请输入" size="small" style="width:400px;"></el-input>
+				<el-form-item :label="$t('ReportManage.CategoryList.author_title_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="authorTag">
+					<el-input type="text" v-model="aeForm.authorTag" :placeholder="$t('ReportManage.CategoryList.please_input')" size="small" style="width:400px;"></el-input>
 				</el-form-item>
-				<el-form-item label="栏目简介" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="classifyDsec">
-					<el-input type="textarea" v-model="aeForm.classifyDsec" placeholder="请输入" size="small" style="width:400px;font-size:14px;" autosize></el-input>
+				<el-form-item :label="$t('ReportManage.CategoryList.section_author_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="classifyDsec">
+					<el-input type="textarea" v-model="aeForm.classifyDsec" :placeholder="$t('ReportManage.CategoryList.please_input')" size="small" style="width:400px;font-size:14px;" autosize></el-input>
 				</el-form-item>
-				<el-form-item label="分享链接配图" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="YbShareBgImg">
+				<el-form-item :label="$t('ReportManage.CategoryList.share_link_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="YbShareBgImg">
 					<input type="file" size="small" name="file" @change="fileSelected(10)" id="file10" class="true-file" style="display:none;">
-					<el-input readonly type="text" v-model="aeForm.YbShareBgImg" placeholder="上传分享链接配图" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(10)">选择图片</el-button>
+					<el-input readonly type="text" v-model="aeForm.YbShareBgImg" :placeholder="$t('ReportManage.CategoryList.up_share_link_label')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(10)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="首页配图" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="classifyImg">
+				<el-form-item :label="$t('ReportManage.CategoryList.homepage_illustrations_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="classifyImg">
 					<input type="file" size="small" name="file" @change="fileSelected(1)" id="file1" class="true-file" style="display:none;">
-					<el-input type="text" v-model="aeForm.classifyImg" placeholder="上传首页配图" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(1)">选择图片</el-button>
+					<el-input type="text" v-model="aeForm.classifyImg" :placeholder="$t('ReportManage.CategoryList.up_homepage_illustrations')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(1)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="研报配图" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="reportImg">
+				<el-form-item :label="$t('ReportManage.CategoryList.report_illustrations_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="reportImg">
 					<input type="file" size="small" name="file" @change="fileSelected(5)" id="file5" class="true-file" style="display:none;">
-					<el-input type="text" v-model="aeForm.reportImg" placeholder="上传研报配图" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(5)">选择图片</el-button>
+					<el-input type="text" v-model="aeForm.reportImg" :placeholder="$t('ReportManage.CategoryList.up_report_illustrations')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(5)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="专栏配图" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="columImg">
+				<el-form-item :label="$t('ReportManage.CategoryList.column_illustration_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="columImg">
 					<input type="file" size="small" name="file" @change="fileSelected(4)" id="file4" class="true-file" style="display:none;">
-					<el-input type="text" v-model="aeForm.columImg" placeholder="上传专栏配图" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(4)">选择图片</el-button>
+					<el-input type="text" v-model="aeForm.columImg" :placeholder="$t('ReportManage.CategoryList.up_scolumn_illustration')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(4)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="头部banner" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="bannerImg">
+				<el-form-item :label="$t('ReportManage.CategoryList.banner_head_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="bannerImg">
 					<input type="file" size="small" name="file" @change="fileSelected(2)" id="file2" class="true-file" style="display:none;">
-					<el-input type="text" v-model="aeForm.bannerImg" placeholder="上传头部banner" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(2)">选择图片</el-button>
+					<el-input type="text" v-model="aeForm.bannerImg" :placeholder="$t('ReportManage.CategoryList.up_banner_head')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(2)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="头像" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="avatar">
+				<el-form-item :label="$t('ReportManage.CategoryList.img_author_label')" v-if="aeForm.parent_id!=0&&!parentIsList&&!parentIsVariety" prop="avatar">
 					<input type="file" size="small" name="file" @change="fileSelected(3)" id="file3" class="true-file" style="display:none;">
-					<el-input type="text" v-model="aeForm.avatar" placeholder="上传头像" size="medium" style="width:400px;">
-						<el-button  slot="append" type="primary" size="mini" @click.native="clickinput(3)">选择图片</el-button>
+					<el-input type="text" v-model="aeForm.avatar" :placeholder="$t('ReportManage.CategoryList.up_img_author')" size="medium" style="width:400px;">
+						<el-button  slot="append" type="primary" size="mini" @click.native="clickinput(3)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
-				<el-form-item label="列表背景图" v-if="aeForm.parent_id!=0&&(parentIsList||parentIsVariety)" prop="YbListImg">
+				<el-form-item :label="$t('ReportManage.CategoryList.list_background_image_label')" v-if="aeForm.parent_id!=0&&(parentIsList||parentIsVariety)" prop="YbListImg">
 					<input type="file" size="small" name="file" @change="fileSelected(9)" id="file9" class="true-file" style="display:none;">
-					<el-input readonly type="text" v-model="aeForm.YbListImg" placeholder="上传列表背景图" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(9)">选择图片</el-button>
+					<el-input readonly type="text" v-model="aeForm.YbListImg" :placeholder="$t('ReportManage.CategoryList.up_list_background_image')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(9)">{{$t('ReportManage.CategoryList.select_img_btn')}}</el-button>
 					</el-input>
 				</el-form-item>
 				<!-- 列表、品种的二级分类 展示分享链接配图 但是不是必填的 -->
-				<el-form-item label="分享链接配图" prop="YbShareBgImg_" v-if="aeForm.parent_id!=0&&(parentIsList||parentIsVariety)">
+				<el-form-item :label="$t('ReportManage.CategoryList.share_link_label')" prop="YbShareBgImg_" v-if="aeForm.parent_id!=0&&(parentIsList||parentIsVariety)">
 					<input type="file" size="small" name="file" @change="fileSelected(12)" id="file12" class="true-file" style="display:none;">
-					<el-input readonly type="text" v-model="aeForm.YbShareBgImg_" placeholder="上传分享链接配图" size="medium" style="width:400px;">
-						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(12)">选择图片</el-button>
+					<el-input readonly type="text" v-model="aeForm.YbShareBgImg_" :placeholder="$t('ReportManage.CategoryList.xxxxx')" size="medium" style="width:400px;">
+						<el-button slot="append" type="primary" size="mini" @click.native="clickinput(12)">{{$t('ReportManage.CategoryList.up_share_link_label')}}</el-button>
 					</el-input>
 				</el-form-item>
 				</template>
 			</el-form>
 			<div slot="footer" class="dialog-footer" style="text-align:right;">
-				<el-button type="primary" plain size="small" @click.native="aeDialog=false">取 消</el-button>
-				<el-button type="primary" size="small" @click.native="saveDialog">保 存</el-button>
+				<el-button type="primary" plain size="small" @click.native="aeDialog=false">{{$t('Dialog.cancel_btn')}}</el-button>
+				<el-button type="primary" size="small" @click.native="saveDialog">{{$t('Dialog.confirm_save_btn')}}</el-button>
 			</div>
 		</el-dialog>
 		<!-- 权限配置弹窗 -->
@@ -330,187 +330,190 @@ export default{
                 this.permissionBtn.classifyBtn.classifyList_cnClassify
             )
         },
-	},
-	data(){
-		return {
-			PageIndex:0,
-			total:0,
-			pageSize:15,
-			ispage:true,
-			listLoading:false,
-			tableData:[],
-			searchform:{
-				key_word:'',
-			}, 
-			aeDialog:false,
-			aeForm:{
-				classify_name:'',
-				parent_id:0,
-				abstract:'',
-				descript:'',
-				author:'',
-				authorDsec:'',
-				classifyDsec:'',
-				authorTag:'',
-				classifyImg:'',
-				reportImg:'',
-				columImg:'',
-				bannerImg:'',
-				avatar:'',
-				label:"",
-				hasTel:0,//是否有电话会:0-否 1-是
-				showType:1,//展示形式 1-列表 2-专栏 3-品种
-				Sort:'',
-				YbFiccSort:'',
-				YbFiccIcon:'',
-				YbIconUrl:'',
-				YbBgUrl:'',
-				YbFiccPcIcon:'',
-				IsShow:false,//是否在小程序端展示:0-隐藏 1-显示
-				YbListImg:'',//小程序研报列表封面图
-				YbShareBgImg:'',
-				ClassifyMenuId:'',
-        YbRightBanner:'',//报告合集配图
-				relate:[],
-			},
-			aerules:{
+		aerules(){
+			return {
 				classify_name:[{
 					required:true,
-					message:'请输入分类名称',
+					message:this.$t('ReportManage.CategoryList.please_input_name'),
 					trigger:'blur'
 				}],
 				parent_id:[{
 					required:true,
-					message:'请选择父级分类',
+					message:this.$t('ReportManage.CategoryList.please_select_category'),
 					trigger:'change'
 				}],
 				abstract:[{
 					required:true,
-					message:'请输入分类简介',
+					message:this.$t('ReportManage.CategoryList.please_input_introduction'),
 					trigger:'blur'
 				}],
 				descript:[{
 					required:true,
-					message:'请输入分类描述',
+					message:this.$t('ReportManage.CategoryList.please_input_description'),
 					trigger:'blur'
 				}],
 				author:[{
 					required:true,
-					message:'请输入栏目作者',
+					message:this.$t('ReportManage.CategoryList.please_author_ipt'),
 					trigger:'blur'
 				}],
 				authorDsec:[{
 					required:true,
-					message:'请输入作者简介',
+					message:this.$t('ReportManage.CategoryList.please_author_introduction_ipt'),
 					trigger:'blur'
 				}],
 				classifyDsec:[{
 					required:true,
-					message:'请输入栏目简介',
+					message:this.$t('ReportManage.CategoryList.please_input_column_introduction'),
 					trigger:'blur'
 				}],
 				classifyImg:[{
 					required:true,
-					message:'请上传首页配图',
+					message:this.$t('ReportManage.CategoryList.up_homepage_illustrations'),
 					trigger:'blur'
 				}],
 				reportImg:[{
 					required:true,
-					message:'请上传研报配图',
+					message:this.$t('ReportManage.CategoryList.up_report_illustrations'),
 					trigger:'blur'
 				}],
 				bannerImg:[{
 					required:true,
-					message:'请上传头部banner',
+					message:this.$t('ReportManage.CategoryList.up_banner_head'),
 					trigger:'blur'
 				}],
 				avatar:[{
 					required:true,
-					message:'请上传作者头像',
+					message:this.$t('ReportManage.CategoryList.up_img_author'),
 					trigger:'blur'
 				}],
 				columImg:[{
 					required:true,
-					message:'请上传专栏配图',
+					message:this.$t('ReportManage.CategoryList.up_scolumn_illustration'),
 					trigger:'blur'
 				}],
 				label:[{
 					required:true,
-					message:'请输入分类标签',
+					message:this.$t('ReportManage.CategoryList.please_classification_label'),
 					trigger:'blur'
 				}],
 				hasTel:[{
 					required:true,
-					message:'请选择',
+					message:this.$t('ReportManage.CategoryList.please_select'),
 					trigger:'change'
 				}],
 				showType:[{
 					required:true,
-					message:'请选择展示形式',
+					message:this.$t('ReportManage.CategoryList.please_display_format'),
 					trigger:'change'
 				}],
 				Sort:[{
 					required:true,
-					message:'请输入数字',
+					message:this.$t('ReportManage.CategoryList.please_number_input'),
 					trigger:'blur'
 				}],
 				YbFiccSort:[{
 					required:true,
-					message:'请输入数字',
+					message:this.$t('ReportManage.CategoryList.please_number_input'),
 					trigger:'blur'
 				}],
 				YbFiccIcon:[{
 					required:true,
-					message:'上传FICC页icon',
+					message:this.$t('ReportManage.CategoryList.up_page_icon_label'),
 					trigger:'change'
 				}],
-        YbRightBanner:[{
-          required:true,
-					message:'上传报告合集配图',
-					trigger:'change'
-        }],
+        	YbRightBanner:[{
+			required:true,
+						message:this.$t('ReportManage.CategoryList.up_collection_report_lable'),
+						trigger:'change'
+			}],
 				YbFiccPcIcon:[{
 					required:true,
-					message:'选择背景颜色',
+					message:this.$t('ReportManage.CategoryList.select_bg_label'),
 					trigger:'change'
 				}],
 				IsShow:[{
 					required:true,
-					message:'小程序端隐藏',
+					message:this.$t('ReportManage.CategoryList.mini_hidden_label'),
 					trigger:'change'
 				}],
 				YbListImg:[{
 					required:true,
-					message:'上传列表背景图',
+					message:this.$t('ReportManage.CategoryList.please_upload_label'),
 					trigger:'change'
 				}],
 				YbShareBgImg:[{
 					required:true,
-					message:'上传列表背景图',
+					message:this.$t('ReportManage.CategoryList.please_upload_label'),
 					trigger:'change'
 				}],
-			},
-			isadd:true,
-			classifyparentArr:[],
-			isexpand:false,
-			isShowPermissionDia: false,	//是否显示权限管理弹窗
-			classifyPermissionId: 0,	//进行权限管理的分类id
-			editedItems:[],	//修改过权限的分类
-
-			YbFiccPcIconList:[
+			}
+		},
+		YbFiccPcIconList(){
+			return [
 				{
-					label:'蓝色',
+					label:this.$t('ReportManage.CategoryList.blue_color'),
 					val:'https://hzstatic.hzinsights.com/static/yb_wx/ficc_classify_bg_blue.png'
 				},
 				{
-					label:'绿色',
+					label:this.$t('ReportManage.CategoryList.green_color'),
 					val:'https://hzstatic.hzinsights.com/static/yb_wx/ficc_classify_bg_green.png'
 				},
 				{
-					label:'红色',
+					label:this.$t('ReportManage.CategoryList.red_color'),
 					val:'https://hzstatic.hzinsights.com/static/yb_wx/ficc_classify_bg_orange.png'
 				},
-			],
+			]
+		},
+	},
+	data(){
+		return {
+			PageIndex:0,
+			total:0,
+			pageSize:15,
+			ispage:true,
+			listLoading:false,
+			tableData:[],
+			searchform:{
+				key_word:'',
+			}, 
+			aeDialog:false,
+			aeForm:{
+				classify_name:'',
+				parent_id:0,
+				abstract:'',
+				descript:'',
+				author:'',
+				authorDsec:'',
+				classifyDsec:'',
+				authorTag:'',
+				classifyImg:'',
+				reportImg:'',
+				columImg:'',
+				bannerImg:'',
+				avatar:'',
+				label:"",
+				hasTel:0,//是否有电话会:0-否 1-是
+				showType:1,//展示形式 1-列表 2-专栏 3-品种
+				Sort:'',
+				YbFiccSort:'',
+				YbFiccIcon:'',
+				YbIconUrl:'',
+				YbBgUrl:'',
+				YbFiccPcIcon:'',
+				IsShow:false,//是否在小程序端展示:0-隐藏 1-显示
+				YbListImg:'',//小程序研报列表封面图
+				YbShareBgImg:'',
+				ClassifyMenuId:'',
+        		YbRightBanner:'',//报告合集配图
+				relate:[],
+			},
+			isadd:true,
+			classifyparentArr:[],
+			isexpand:false,
+			isShowPermissionDia: false,	//是否显示权限管理弹窗
+			classifyPermissionId: 0,	//进行权限管理的分类id
+			editedItems:[],	//修改过权限的分类
 
 			inputVisible:false,
 			inputValue:'',
@@ -645,7 +648,7 @@ export default{
 			});
 		},
 		deleteitem(item){
-			this.$confirm('确认删除吗?','提示',{type:'warning'}).then(() => {
+			this.$confirm(this.$t('ReportManage.CommodityConfiguration.delete_info_msg'),this.$t('Confirm.prompt_slogan'),{type:'warning'}).then(() => {
 					classifydelete({ClassifyId:parseInt(item.Id)}).then(res =>{
 						if( res.Ret==200 ){
 							this.$message.success( res.Msg );

+ 27 - 29
src/views/dataEntry_manage/adjustdata/adjustData.vue

@@ -4,13 +4,13 @@
       <div class="left-handle">
         <ul class="min-top" v-if="!edb_id">
           <li>
-            <label style="margin-right:5px;">选择指标:</label>
+            <label style="margin-right:5px;">{{$t('AdjustDataPage.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: 200px"
               remote
               :remote-method="getTarget"
@@ -30,25 +30,25 @@
             <i class="el-icon-tickets" style="color:#409EFF;font-size:18px" @click="toHistoryPage(select_target,$route.matched);lookEdbId=select_target" v-if="select_target"/>
           </li>
           <li v-show="old_edb_info.id">
-            <label style="margin-right:5px;"> 查询结果:</label>
-            <span style="margin-right: 20px">指标ID:{{old_edb_info.id}}</span>
-            <span>指标名称:{{old_edb_info.name}}</span>
+            <label style="margin-right:5px;"> {{$t('AdjustDataPage.search_res')}}:</label>
+            <span style="margin-right: 20px">{{$t('Edb.Detail.e_id')}}:{{old_edb_info.id}}</span>
+            <span>{{$t('Edb.Detail.e_name')}}:{{old_edb_info.name}}</span>
           </li>
         </ul>
         <div v-if="edb_id" style="margin-bottom:20px">
-          <span style="display:inline-block;margin-right:30px">原指标ID:{{EDBInfoOfCalculateData.FromEdbCode}}</span>
-          <span>原指标名称:{{EDBInfoOfCalculateData.FromEdbName}}</span>
+          <span style="display:inline-block;margin-right:30px">{{$t('AdjustDataPage.or_edbid')}}:{{EDBInfoOfCalculateData.FromEdbCode}}</span>
+          <span>{{$t('AdjustDataPage.or_edbname')}}:{{EDBInfoOfCalculateData.FromEdbName}}</span>
         </div>
       </div>
       <div class="right-handle">
         <div>
-          <el-button type="primary" size="medium" @click="saveSheetHandle">保存</el-button>
-          <el-button type="primary" size="medium" plain @click="$router.go(-1)">取消</el-button>
+          <el-button type="primary" size="medium" @click="saveSheetHandle"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
+          <el-button type="primary" size="medium" plain @click="$router.go(-1)"><!-- 取消 -->{{$t('Dialog.back_btn')}}</el-button>
         </div>
         <el-tooltip>
           <div slot="content" v-html="tips"></div>
           <div class="tips-cont">
-            <span>使用说明</span>
+            <span><!-- 使用说明 -->{{$t('AdjustDataPage.usetip_msg')}}</span>
             <i class="el-icon-question" style="color: #999;"></i>
           </div>
         </el-tooltip>
@@ -57,24 +57,24 @@
           ref="form"
           label-position="right"
           inline
-          label-width="80px"
+          label-width="120px"
           :model="formData"
           :rules="formRules"
         >
-          <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: 150px"
-              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: 120px"
 						/>
           </el-form-item>
-          <el-form-item label="指标目录" prop="menu">
+          <el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
             <el-cascader
               v-model="formData.menu"
               :options="classifyOptions"
@@ -86,13 +86,13 @@
                 checkStrictly: true
               }"
               clearable
-              placeholder="请选择指标目录"
+              :placeholder="$t('Edb.InputHolderAll.input_menu')"
             />
           </el-form-item>
-          <el-form-item label="频度" prop="frequency">
+          <el-form-item :label="$t('Edb.Detail.e_fre')" prop="frequency">
             <el-select
               v-model="formData.frequency"
-              placeholder="请选择频度"
+              :placeholder="$t('Edb.InputHolderAll.input_fre')"
               style="width: 120px"
               clearable
             >
@@ -129,7 +129,7 @@
               </template>
             </el-table-column>
             <div slot="empty" style="padding: 50px 0;">
-              <tableNoData text="暂无数据" size="mini"/>
+              <tableNoData :text="$t('Table.prompt_slogan')" size="mini"/>
             </div>
         </el-table>
       </div>
@@ -146,7 +146,7 @@
 
 <script>
 import {dataBaseInterface} from '@/api/modules/chartApi'
-import { formRules } from '../databaseComponents/util';
+import { formRules,frequencyArr } from '../databaseComponents/util';
 import { unitArr } from '@/utils/defaultOptions';
 import { mapState } from 'vuex';
 export default {
@@ -162,7 +162,7 @@ export default {
       },
       formRules,
       unitArr,
-      frequencyArr: ['日度', '周度','旬度', '月度', '季度', '年度'],
+      frequencyArr,
       classifyOptions: [],
 
       searchOptions: [],
@@ -180,14 +180,11 @@ export default {
       start_index: 0,
       end_index: 49,
       tableColums: [
-        { label: '日期',key:'DataTime' },
-        { label: '值',key:'Value' }
+        { label: this.$t('Edb.Detail.e_date'),key:'DataTime' },
+        { label: this.$t('Edb.Detail.e_value'),key:'Value' }
       ],
 
-      tips: `数据调整:<br>1、将所选指标的历史数据经过调整后保存,该指标更新时将在调整数据的基础上更新最新数据;<br>
-      2、支持对所选指标添加未来的数据,指标更新到未来相同的日期时,进行数据更正;<br>
-      3、选中表格,使用“Ctrl+F”可调用快速查找功能,支持快速定位到表格中的数据;<br>
-      注:系统只取A、B列数据`,
+      tips: this.$t('AdjustDataPage.usetip'),
 
       excelData: [
         {
@@ -482,7 +479,7 @@ export default {
       let data = luckysheet.getAllSheets()[0]
       await this.$refs.form.validate();
       // console.log(data.celldata)
-      if(data.celldata.length < 3) return this.$message.warning('请输入表格内容');
+      if(data.celldata.length < 3) return this.$message.warning(this.$t('AdjustDataPage.input_content_msg'));
 
       const { targetName,menu,frequency,unit} = this.formData;
 
@@ -513,7 +510,8 @@ export default {
       })
 
       if(Ret !== 200) return
-      this.$message.success('保存成功')
+      // this.$message.success('保存成功')
+      this.$message.success(this.$t('MsgPrompt.saved_msg'))
 
       const { UniqueCode,EdbInfoId } = Data;
 

+ 0 - 1
src/views/dataEntry_manage/codecount/compoments/codeMirror.vue

@@ -2,7 +2,6 @@
 	<codemirror
 		v-model="codeContent"
 		:options="codeOptions"
-		placeholder="请输入python代码"
 	/>
 </template>
 

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

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

+ 38 - 33
src/views/dataEntry_manage/codecount/index.vue

@@ -1,10 +1,10 @@
 <template>
 	<el-card class="codecount-container">
 		<div slot="header" class="header">
-			<span>代码运算</span>
+			<span><!-- 代码运算 -->{{$t('EtaBasePage.algorithm_btn')}}</span>
 			<div>
-				<el-button type="primary" @click="runCodeHandle">运行</el-button>
-				<el-button type="primary" plain @click="saveHandle" v-if="!isView">保存</el-button>
+				<el-button type="primary" @click="runCodeHandle"><!-- 运行 -->{{$t('CodeCountPage.run_btn')}}</el-button>
+				<el-button type="primary" plain @click="saveHandle" v-if="!isView"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
 			</div>
 		</div>
 		<div class="bottom">
@@ -13,7 +13,7 @@
 					<code-mirror ref="codeRef" :code="runCode" @initResult="initResult"/>
 				</div>
 				<div class="code-result">
-					<span>结果展示</span>
+					<span><!-- 结果展示 -->{{$t('CodeCountPage.res_show')}}</span>
 					<div class="code-result-wrapper" v-if="isShowResult">
 						<data-table
 							:data="runResultData"
@@ -23,32 +23,32 @@
 			</el-col>
 			<el-col :span="8" class="bottom-wrapper">
 				<el-tabs>
-					<el-tab-pane label="基础信息">
+					<el-tab-pane :label="$t('CodeCountPage.tab_info')">
 						<el-form
 							ref="diaForm"
 							label-position="left"
 							inline
-							label-width="80px"
+							label-width="110px"
 							:model="formData"
 							:disabled="isView"
 						>
-							<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"
-									placeholder="指标名称"
+									:placeholder="$t('Edb.InputHolderAll.input_name')"
 									style="width:220px"
 								/>
 							</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:220px"
 								/>
 							</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')"
 								clearable
 								style="width:220px">
 									<el-option
@@ -59,7 +59,7 @@
 									</el-option>
 								</el-select>
 							</el-form-item>
-							<el-form-item label="指标目录" prop="menu">
+							<el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
 								<el-cascader
 								v-model="formData.menu"
 								:options="menuOptions"
@@ -72,17 +72,17 @@
 								@change="menuChange"
 								clearable
 								style="width:220px"
-								placeholder="请选择指标目录"/>
+								:placeholder="$t('Edb.InputHolderAll.input_menu')"/>
 							</el-form-item>
 						</el-form>
 					</el-tab-pane>
-					<el-tab-pane label="指标信息" v-if="!isView">
+					<el-tab-pane :label="$t('CodeCountPage.tab_edb')" v-if="!isView">
 						<el-form
 							label-position="left"
 							inline
-							label-width="100px"
+							label-width="120px"
 						>
-							<el-form-item label="数据来源">
+							<el-form-item :label="$t('Edb.Detail.source')">
 
 								<el-cascader
 								v-model="fromType"
@@ -95,7 +95,7 @@
 								}"
 								clearable
 								style="width:220px"
-								placeholder="请选择来源"/>
+								:placeholder="$t('Edb.Detail.source')"/>
 								<!-- <el-select 
 								v-model="fromType" 
 								placeholder="请选择来源"
@@ -108,7 +108,7 @@
 									</el-option>
 								</el-select> -->
 							</el-form-item>
-							<el-form-item label="指标名称/ID">
+							<el-form-item :label="$t('EtaBasePage.search_placeholder')">
 								<el-select
 									v-model="search_txt"
 									v-loadMore="searchLoad"
@@ -116,7 +116,7 @@
 									:filterable="!search_txt"
 									remote
 									clearable
-									placeholder="指标ID/指标名称"
+									:placeholder="$t('EtaBasePage.search_placeholder')"
 									:remote-method="searchHandle"
 									@click.native="inputFocusHandle"
 									style="width:220px"
@@ -134,7 +134,7 @@
 							</el-form-item>
 						</el-form>
 						<div class="search-result">
-							<p>查询结果 <span style="color: #999;">(展示指标所在表结构及调取指标代码)</span></p>
+							<p>{{$t('CodeCountPage.res_search')}} <span style="color: #999;">(<!-- 展示指标所在表结构及调取指标代码 -->{{$t('CodeCountPage.res_search_tip')}})</span></p>
 							<template v-if="resultInfo.sheet_name">
 								<table border>
 									<thead>
@@ -151,7 +151,7 @@
 									</tbody>
 								</table>
 								<div class="sql-code" v-html="resultInfo.sql_code"></div>
-								<el-button type="primary" class="copy-btn" @click="copyCode" :data-clipboard-text="resultInfo.sql_code">复制代码</el-button>
+								<el-button type="primary" class="copy-btn" @click="copyCode" :data-clipboard-text="resultInfo.sql_code"><!-- 复制代码 -->{{$t('CodeCountPage.copy_code')}}</el-button>
 
 							</template>
 						</div>
@@ -166,7 +166,7 @@
 import { dataBaseInterface } from '@/api/api.js';
 import { unitArr } from '@/utils/defaultOptions';
 import storage from '@/utils/storage.js';
-// import { allFromArr } from '../databaseComponents/util';
+import { frequencyArr } from '../databaseComponents/util';
 import codeMirror from './compoments/codeMirror';
 import dataTable from './compoments/dataTable';
 import { mapState } from 'vuex';
@@ -185,7 +185,7 @@ export default {
 			fromType:"",
 			unitArr,
 			allFromArr:[],//所有指标来源
-			frequencyArr:['日度','周度','旬度','月度','季度','年度'],
+			frequencyArr,
 			menuOptions:[],//目录数组
 
 			search_txt: '',
@@ -199,7 +199,8 @@ export default {
 			runResultData:[],//运行结果
 
 			resultInfo: {
-				headers: ['表名','字段名','*字段说明'],
+				// headers: ['表名','字段名','*字段说明'],
+				headers: [this.$t('CodeCountPage.table_name'),this.$t('CodeCountPage.field_name'),this.$t('CodeCountPage.field_instru')],
 				sheetArr:[],
 				sheet_name: '',
 				sql_code: ''
@@ -231,13 +232,13 @@ export default {
 
 		/* 运行代码 */
 		runCodeHandle: _.debounce(function() {
-			if(!this.$refs.codeRef.codeContent) return this.$message.warning('请输入代码');
+			if(!this.$refs.codeRef.codeContent) return this.$message.warning(this.$t('CodeCountPage.no_code_msg'));
 
 			this.isShowResult = false;
 
 			const loading = this.$loading({
 				lock: true,
-				text: '运行中...',
+				text: `${this.$t('CodeCountPage.run_ing')}...`,
 				target:'.left-wrapper',
 				spinner: 'el-icon-loading'
 			});
@@ -248,7 +249,8 @@ export default {
 				
 				loading.close();
 				if(res.Ret !== 200) return
-				this.$message.success('运行成功')
+				// this.$message.success('运行成功')
+				this.$message.success(this.$t('CodeCountPage.run_success'))
 
 				const { date,value } = res.Data;
 				const data_arr = []
@@ -312,13 +314,15 @@ export default {
 		copyCode() {
 			var clipboard = new this.Clipboard('.copy-btn')
 				clipboard.on('success', e => {
-					this.$message.success('复制成功')
+					// this.$message.success('复制成功')
+					this.$message.success(this.$t('MsgPrompt.copy_success_msg'))
 					e.clearSelection() // 释放内存
 					clipboard.destroy()
 				})
 				// // 浏览器不支持
 				clipboard.on('error', e => {
-					this.$message.warning('浏览器暂不支持')
+					// this.$message.warning('浏览器暂不支持')
+					this.$message.warning(this.$t('MsgPrompt.browser_not_support'))
 					// 释放内存
 					clipboard.destroy()
 				})
@@ -326,12 +330,12 @@ export default {
 		
 		/* 保存代码 */
 		async saveHandle() {
-			if(!this.formData.edb_name || !this.formData.menu || !this.formData.frequency || !this.formData.unit) return this.$message.warning('请填写完整基础信息')
-			if(!this.isShowResult) return this.$message.warning('请先运行代码')
+			if(!this.formData.edb_name || !this.formData.menu || !this.formData.frequency || !this.formData.unit) return this.$message.warning(this.$t('CodeCountPage.noenough_info_msg'))
+			if(!this.isShowResult) return this.$message.warning(this.$t('CodeCountPage.run_msg'))
 
 			const loading = this.$loading({
 				lock: true,
-				text: '保存中...',
+				text: `${this.$t('MsgPrompt.saveing_msg')}...`,
 				target:'.codecount-container',
 				spinner: 'el-icon-loading'
 			});
@@ -349,7 +353,8 @@ export default {
 			
 			loading.close();
 			if( Ret !== 200 ) return 
-			this.$message.success('保存成功')
+			// this.$message.success('保存成功')
+			this.$message.success(this.$t('MsgPrompt.saved_msg'))
 			const { UniqueCode,EdbInfoId } = Data;
 
       this.$router.replace({path:'/database', query: {

+ 1 - 1
src/views/dataEntry_manage/dataList.vue

@@ -134,7 +134,7 @@
           height="476"
           v-loading="isShowloadding"
           @cell-dblclick="clickCell"
-          element-loading-text="数据加载中..."
+          :element-loading-text="$t('Table.data_loading')" 
           :default-sort="{ prop: 'date', order: 'descending' }"
           :header-cell-style="{ background: '#fff!important' }"
           border

+ 52 - 45
src/views/dataEntry_manage/databaseComponents/addTargetDiaBase.vue

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

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

@@ -28,14 +28,14 @@
 							@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" plain size="mini" class="btn-sty" @click="openDateDia">{{
 					dateTip
 				}}</el-button>
 				<el-button type="primary" plain size="mini" class="btn-sty" @click="showOnChart('toggle')" v-if="!isOnlyShowBaseChart&&isShowChartBasis">
 					<!-- <i class="el-icon-view"></i> -->
-					{{ isShowOnyearData ? '隐藏同比图' : '展示同比图'}}
+					{{ isShowOnyearData ? $t('Edb.hide_yearonyear') : $t('Edb.show_yearonyear')}}
 				</el-button>
 			</template>
 			<!-- 季节图时间选择 -->
@@ -55,7 +55,7 @@
 			<el-button type="primary" plain size="mini" class="btn-sty" style="margin-left:auto;"
 				@click="chartTypeChange" v-if="!isOnlyShowBaseChart&&isAllowSwitchSeason">
 				<i class="el-icon-sort" style="transform: rotate(90deg);"></i>
-				切换{{chart_type==1?'季节性图':'曲线图'}}
+				{{chart_type==1?$t('Edb.switch_season'):$t('Edb.switch_curve')}}
 			</el-button>
 		</div>
 		<div class="min-wrapper">
@@ -109,8 +109,8 @@
 							v-if="chart_type===2"
 							@change="getDataByPath"
 					>
-							<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>
 			</div>

+ 19 - 18
src/views/dataEntry_manage/databaseComponents/completeTargetDia.vue

@@ -11,36 +11,36 @@
 		v-dialogDrag>
 			<div slot="title" style="display:flex;alignItems:center;">
 				<img :src="$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
-				<span style="fontSize:16px;">完善信息</span>
+				<span style="fontSize:16px;">{{$t('EtaBasePage.complate_info')}}</span>
 			</div>
 			<div class="dialog-main">
 				<el-form
 				ref="targetForm"
 				label-position="left"
-				label-width="80px"
+				label-width="110px"
 				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.InputHolderAll.input_name')"></el-input>
 					</el-form-item>
-					<el-form-item label="所属目录" prop="menu">
+					<el-form-item :label="$t('Edb.Detail.e_menu')" prop="menu">
 						<el-cascader
 						v-model="formData.menu"
 						:options="options"
 						:props="levelProps"
 						style="width: 80%"
 						clearable
-						placeholder="请选择所属目录"/>
+						:placeholder="$t('Edb.InputHolderAll.input_menu')"/>
 					</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">
+						<!-- <span slot="label">频&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;率</span> -->
 						<el-select 
 						v-model="formData.frequency" 
-						placeholder="请选择频率" 
+						:placeholder="$t('Edb.InputHolderAll.input_fre')"
 						style="width:80%" 
 						clearable>
 							<el-option
@@ -51,15 +51,15 @@
 							</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">
+						<!-- <span slot="label">单&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;位</span> -->
 						<selectUnit v-model="formData.unit" style="width: 80%" />
 					</el-form-item>
 				</el-form>
 			</div>
 			<div class="dia-bot">
-				<el-button type="primary" style="margin-right:20px" @click="addTarget">保存</el-button>
-				<el-button type="primary" plain @click="cancelHandle">取消</el-button>
+				<el-button type="primary" style="margin-right:20px" @click="addTarget"><!-- 保存 -->{{$t('Dialog.confirm_save_btn')}}</el-button>
+				<el-button type="primary" plain @click="cancelHandle"><!-- 取消 -->{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</el-dialog>
 	</div>
@@ -68,6 +68,7 @@
 <script>
 import { dataBaseInterface } from '@/api/api.js';
 import { unitArr } from '@/utils/defaultOptions';
+import { frequencyArr } from './util'
 export default {
 	name:'',
 	props: {
@@ -99,16 +100,16 @@ export default {
 			},
 			formRules: {
 				edb_name:[
-					{ required: true, message: '指标名称不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.name_msg'), trigger: 'blur' },
 				],
 				menu:[
-					{ required: true, message: '所属目录不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.menu_msg'), trigger: 'blur' },
 				],
 				frequency:[
-					{ required: true, message: '频率不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('Edb.Valids.fre_msg'), trigger: 'blur' },
 				],
 				unit:[
-					{ required: true, message: '单位不能为空', trigger: ['blur','change'] },
+					{ required: true, message: this.$t('Edb.Valids.unit_msg'), trigger: ['blur','change'] },
 				],
 			},
 			options:  [],
@@ -119,7 +120,7 @@ export default {
 				children: 'Children',
 				checkStrictly: true
 			},
-			frequencyArr:['日度','周度','旬度','月度','季度','年度']
+			frequencyArr
 		};
 	},
 	methods: {

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

@@ -1,7 +1,7 @@
 <template>
     <div class="associate-chart">
         <div v-if="list.length===0&&finished" style="text-align:center;display:block" class="empty-list">
-            <tableNoData text="该指标暂无关联图"/>
+            <tableNoData :text="$t('EtaBasePage.no_quote_chart')"/>
         </div>
         <template v-else>
         <p style="position:relative;font-size:16px">共 {{chartTotal}} 张图表</p>

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

@@ -46,17 +46,17 @@
                 >
                 </template>
             </el-table-column>
-            <el-table-column label="操作" key="Copy" align="center" width="110">
+            <el-table-column :label="$t('Edb.Detail.e_opera')" key="Copy" align="center" width="110">
                 <template slot-scope="scope">
                 <span v-permission="permissionBtn.edbDataPermission.edbData_copyData"
                 class="editsty" @click="copyCode(scope.row)">
-                    <i class="el-icon-document-copy" />&nbsp;复制数据</span
+                    <i class="el-icon-document-copy" />&nbsp;{{$t('Edb.detail_copydata_btn')}}</span
                 >
-                <span class="editsty" @click="viewTarget(scope.row)">查看数据</span>
+                <span class="editsty" @click="viewTarget(scope.row)">{{$t('Edb.detail_lookdata_btn')}}</span>
                 </template>
             </el-table-column>
             <div slot="empty">
-                <tableNoData text="暂无引用的计算指标" size="mini"/>
+                <tableNoData :text="$t('EtaBasePage.no_quote_edb')" size="mini"/>
             </div>
         </el-table>
         <el-pagination 

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

@@ -15,24 +15,24 @@
         :src="$icons.editicon"
         style="color: #fff; width: 16px; height: 16px; marginright: 5px"
       />
-      <span style="font-size: 16px">&nbsp;替换指标</span>
+      <span style="font-size: 16px">&nbsp;<!-- 替换指标 -->{{$t('EtaBasePage.replace_edb_btn')}}</span>
     </div>
     <el-form
       ref="diaForm"
       class="form-cont"
       label-position="left"
-      label-width="80px"
+      label-width="120px"
       :model="formData"
       :rules="formRules"
     >
-			<el-form-item label="原指标" prop="oldEdb">
+			<el-form-item :label="$t('EtaBasePage.origin_edb')" prop="oldEdb">
 				<el-select
 				v-model="formData.oldEdb"
 				v-loadMore="searchLoad"
 				:filterable="!formData.oldEdb"
 				remote
 				clearable
-				placeholder="指标ID/指标名称"
+				:placeholder="$t('EtaBasePage.search_placeholder')"
 				style="width: 440px"
 				:remote-method="searchHandle"
 				@click.native="inputFocusHandle"
@@ -51,14 +51,14 @@
 					</el-option>
 				</el-select>
 			</el-form-item>
-			<el-form-item label="替换为" prop="newEdb">
+			<el-form-item :label="$t('EtaBasePage.replace')" prop="newEdb">
 				<el-select
 				v-model="formData.newEdb"
 				v-loadMore="searchLoad"
 				:filterable="!formData.newEdb"
 				remote
 				clearable
-				placeholder="指标ID/指标名称"
+				:placeholder="$t('EtaBasePage.search_placeholder')"
 				style="width: 440px"
 				:remote-method="searchHandle"
 				@click.native="inputFocusHandle"
@@ -83,11 +83,11 @@
         type="primary"
         style="margin-right: 20px"
         @click="saveHandle"
-        >全部替换</el-button
+        ><!-- 全部替换 -->{{$t('EtaBasePage.replace_all')}}</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>
-		<p class="tip">提示:替换后,图表和计算指标引用到原指标的会全部由替换指标替代</p>
+		<p class="tip">{{$t('EtaBasePage.replace_tip')}}</p>
   </el-dialog>
 </template>
 
@@ -107,10 +107,10 @@ export default {
 			},
 			formRules: {
 				oldEdb:[
-					{ required: true, message: '原指标不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('EtaBasePage.input_origin_vaild'), trigger: 'blur' },
 				],
 				newEdb:[
-					{ required: true, message: '替换指标不能为空', trigger: 'blur' },
+					{ required: true, message: this.$t('EtaBasePage.input_replace_vaild'), trigger: 'blur' },
 				],
 			},
 			allOptions: [],
@@ -166,7 +166,7 @@ export default {
     saveHandle() {
       this.$refs.diaForm.validate((valid) => {
         if (valid) {
-					this.$confirm('本次替换将持续较长时间,是否确认替换?', '提示', {
+					this.$confirm(this.$t('EtaBasePage.replace_success_msg'), '提示', {
 						confirmButtonText: '是',
 						cancelButtonText: '否',
 						type: 'warning'

+ 44 - 42
src/views/dataEntry_manage/databaseComponents/util.js

@@ -1,25 +1,27 @@
+import bus from '@/api/bus'
+// console.log(bus.$i18nt.t('EtaBasePage.future_common_edb'))
 /* 公用校验 计算指标 */
 export const formRules= {
 	targetName: [
-		{ required: true, message: '指标名称不能为空', trigger: 'blur' },
+		{ required: true, message: bus.$i18nt.t('Edb.Valids.name_msg'), trigger: 'blur' },
 	],
 	unit: [
-		{ required: true, message: '单位不能为空', trigger: ['blur','change'] },
+		{ required: true, message: /* '单位不能为空' */bus.$i18nt.t('Edb.Valids.unit_msg'), trigger: ['blur','change'] },
 	],
 	menu: [
-		{ required: true, message: '指标目录不能为空', trigger: 'blur' },
+		{ required: true, message: /* '指标目录不能为空' */bus.$i18nt.t('Edb.Valids.menu_msg'), trigger: 'blur' },
 	],
 	frequency: [
-		{ required: true, message: '频度不能为空', trigger: 'blur' },
+		{ required: true, message: /* '频度不能为空' */bus.$i18nt.t('Edb.Valids.fre_msg'), trigger: 'blur' },
 	],
 	n_num: [
-		{ required: true, message: 'N不能为空', trigger: 'blur' },
+		{ required: true, message: /* 'N不能为空' */bus.$i18nt.t('Edb.Valids.n_msg'), trigger: 'blur' },
 	],
 	moveVal: [
-		{ required: true, message: '移动方式参数不能为空',trigger: 'blur' }
+		{ required: true, message: /* '移动方式参数不能为空' */bus.$i18nt.t('Edb.Valids.move_msg'),trigger: 'blur' }
 	],
 	calendar_type: [
-		{ required: true, message: '日历不能为空',trigger: 'blur' }
+		{ required: true, message: /* '日历不能为空' */bus.$i18nt.t('Edb.Valids.calendar_msg'),trigger: 'blur' }
 	],
 	alphaValue:[
 		{ validator:(rule,value,callback)=>{
@@ -29,7 +31,7 @@ export const formRules= {
 				callback()
 			}
 		},trigger:['change','blur']},
-		{ required:true,message:'alpha值不能为空',trigger:'blur'},
+		{ required:true,message:/* 'alpha值不能为空' */bus.$i18nt.t('Edb.Valids.alpha_msg'),trigger:'blur'},
 	]
 }
 
@@ -443,46 +445,46 @@ export const formulaTip = new Map([
 
 // wind 日期序列常见指标代码
 export const windCommonIndexCodeArr=[
-	{value:'pre_close',label:"前收盘价"},
-	{value:'open',label:"开盘价"},
-	{value:'high',label:"最高价"},
-	{value:'low',label:"最低价"},
-	{value:'close',label:"收盘价"},
-	{value:'settle',label:"结算价"},
-	{value:'volume',label:"成交量"},
-	{value:'amt',label:"成交额"},
-	{value:'pct_chg',label:"涨跌幅"},
-	{value:'swing',label:"振幅"},
-	{value:'turn',label:"换手率"},
-	{value:'oi',label:"持仓量"},
-	{value:'oiamount',label:"持仓额"}
+	{value:'pre_close',label:bus.$i18nt.t('EtaBasePage.pre_price')},
+	{value:'open',label:bus.$i18nt.t('EtaBasePage.pre_price')/* "开盘价" */},
+	{value:'high',label:bus.$i18nt.t('EtaBasePage.high_price')/* "最高价" */},
+	{value:'low',label:bus.$i18nt.t('EtaBasePage.low_price')/* "最低价" */},
+	{value:'close',label:bus.$i18nt.t('EtaBasePage.close_price')/* "收盘价" */},
+	{value:'settle',label:bus.$i18nt.t('EtaBasePage.settle_price')/* "结算价" */},
+	{value:'volume',label:bus.$i18nt.t('EtaBasePage.trade_volume')/* "成交量" */},
+	{value:'amt',label:bus.$i18nt.t('EtaBasePage.turnover')/* "成交额" */},
+	{value:'pct_chg',label:bus.$i18nt.t('EtaBasePage.incre_decre')/* "涨跌幅" */},
+	{value:'swing',label:bus.$i18nt.t('EtaBasePage.fluctua')/* "振幅" */},
+	{value:'turn',label:bus.$i18nt.t('EtaBasePage.turn_rate')/* "换手率" */},
+	{value:'oi',label:bus.$i18nt.t('EtaBasePage.open_inter')/* "持仓量" */},
+	{value:'oiamount',label:bus.$i18nt.t('EtaBasePage.open_val')/* "持仓额" */}
 ]
 
 // 同花顺 日期序列常见 股票指标代码
 export const THSCommonIndexStockCodeArr=[
-	{value:'ths_pre_close_stock',label:"前收盘价"},
-	{value:'ths_open_price_stock',label:"开盘价"},
-	{value:'ths_high_price_stock',label:"最高价"},
-	{value:'ths_low_stock',label:"最低价"},
-	{value:'ths_close_price_stock',label:"收盘价"},
-	{value:'ths_vol_stock',label:"成交量"},
-	{value:'ths_amt_stock',label:"成交额"},
-	{value:'ths_chg_ratio_stock',label:"涨跌幅"},
-	{value:'ths_swing_stock',label:"振幅"},
-	{value:'ths_turnover_ratio_stock',label:"换手率"},
+	{value:'ths_pre_close_stock',label:bus.$i18nt.t('EtaBasePage.pre_price')/* "前收盘价" */},
+	{value:'ths_open_price_stock',label:bus.$i18nt.t('EtaBasePage.op_price')/* "开盘价" */},
+	{value:'ths_high_price_stock',label:bus.$i18nt.t('EtaBasePage.high_price')/* "最高价" */},
+	{value:'ths_low_stock',label:bus.$i18nt.t('EtaBasePage.low_price')/* "最低价" */},
+	{value:'ths_close_price_stock',label:bus.$i18nt.t('EtaBasePage.close_price')/* "收盘价" */},
+	{value:'ths_vol_stock',label:bus.$i18nt.t('EtaBasePage.trade_volume')/* "成交量" */},
+	{value:'ths_amt_stock',label:bus.$i18nt.t('EtaBasePage.turnover')/* "成交额" */},
+	{value:'ths_chg_ratio_stock',label:bus.$i18nt.t('EtaBasePage.incre_decre')/* "涨跌幅" */},
+	{value:'ths_swing_stock',label:bus.$i18nt.t('EtaBasePage.fluctua')/* "振幅" */},
+	{value:'ths_turnover_ratio_stock',label:bus.$i18nt.t('EtaBasePage.turn_rate')/* "换手率" */},
 ]
 
 // 同花顺 日期序列常见 指标代码
 export const THSCommonIndexFuturesCodeArr=[
-	{value:'ths_pre_close_future',label:"前收盘价"},
-	{value:'ths_open_price_future',label:"开盘价"},
-	{value:'ths_high_price_future',label:"最高价"},
-	{value:'ths_low_future',label:"最低价"},
-	{value:'ths_close_price_future',label:"收盘价"},
-	{value:'ths_settle_future',label:"结算价"},
-	{value:'ths_vol_future',label:"成交量"},
-	{value:'ths_amt_future',label:"成交额"},
-	{value:'ths_chg_ratio_future',label:"涨跌幅"},
-	{value:'ths_swing_d_future',label:"日振幅"},
-	{value:'ths_open_interest_future',label:"持仓量"},
+	{value:'ths_pre_close_future',label:bus.$i18nt.t('EtaBasePage.pre_price')/* "前收盘价" */},
+	{value:'ths_open_price_future',label:bus.$i18nt.t('EtaBasePage.op_price')/* "开盘价" */},
+	{value:'ths_high_price_future',label:bus.$i18nt.t('EtaBasePage.high_price')/* "最高价" */},
+	{value:'ths_low_future',label:bus.$i18nt.t('EtaBasePage.low_price')/* "最低价" */},
+	{value:'ths_close_price_future',label:bus.$i18nt.t('EtaBasePage.close_price')/* "收盘价" */},
+	{value:'ths_settle_future',label:bus.$i18nt.t('EtaBasePage.settle_price')/* "结算价" */},
+	{value:'ths_vol_future',label:bus.$i18nt.t('EtaBasePage.trade_volume')/* "成交量" */},
+	{value:'ths_amt_future',label:bus.$i18nt.t('EtaBasePage.turnover')/* "成交额" */},
+	{value:'ths_chg_ratio_future',label:bus.$i18nt.t('EtaBasePage.incre_decre')/* "涨跌幅" */},
+	{value:'ths_swing_d_future',label:bus.$i18nt.t('EtaBasePage.fluctua_day')/* "日振幅" */},
+	{value:'ths_open_interest_future',label:bus.$i18nt.t('EtaBasePage.open_inter')/* "持仓量" */},
 ]

+ 20 - 20
src/views/dataEntry_manage/databaseList.vue

@@ -3,15 +3,15 @@
 		<div class="database_top">
 			<div class="top-left">
 				<el-button v-permission="permissionBtn.edbDataPermission.edbData_addEdb"
-					type="primary" @click="addHandler">{{$t('EtaBasePage.add_edb_btn')}}</el-button>
+					type="primary" @click="addHandler"><!-- 添加指标 -->{{$t('EtaBasePage.add_edb_btn')}}</el-button>
 				<el-button v-permission="permissionBtn.edbDataPermission.edbData_calcuEdb"
-					type="primary" @click="addComputedHandler">{{$t('EtaBasePage.calculation_edb_btn')}}</el-button>
+					type="primary" @click="addComputedHandler"><!-- 计算指标 -->{{$t('EtaBasePage.calculation_edb_btn')}}</el-button>
 				<el-button v-permission="permissionBtn.edbDataPermission.edbData_replaceEdb"
-					type="primary" @click="replaceEdbHandler">{{$t('EtaBasePage.replace_edb_btn')}}</el-button>
+					type="primary" @click="replaceEdbHandler"><!-- 替换指标 -->{{$t('EtaBasePage.replace_edb_btn')}}</el-button>
 				<el-button v-permission="permissionBtn.edbDataPermission.edbData_codeRun"
-					type="primary" @click="$router.push({path: '/codecount'})">{{$t('EtaBasePage.algorithm_btn')}}</el-button>
+					type="primary" @click="$router.push({path: '/codecount'})"><!-- 代码运算 -->{{$t('EtaBasePage.algorithm_btn')}}</el-button>
 				<el-button v-permission="permissionBtn.edbDataPermission.edbData_dataAdjust"
-					type="primary" @click="$router.push({path: '/adjustdata'})">{{$t('EtaBasePage.adjustment_btn')}}</el-button>
+					type="primary" @click="$router.push({path: '/adjustdata'})"><!-- 数据调整 -->{{$t('EtaBasePage.adjustment_btn')}}</el-button>
 				<!-- <el-button v-permission="permissionBtn.edbDataPermission.edbData_batchUpdate"
 					type="primary" plain @click="updateHandler">一键刷新</el-button> -->
 			</div>
@@ -198,7 +198,7 @@
 			</div>
 			<!-- 指标图表列表 -->
 			<div class="main-right right list" id="right" v-show="isShowList">
-				<p>{{Total||0}}个指标</p>
+				<p>{{$t('EtaBasePage.total_show',{limit: Total||0})}}</p>
 				<div class="list-wrap" ref="listRef" @scroll="loadMoreHandle" v-if="Total">
 					<div class="chart-list-item-wrap">
 						<div class="list-item" v-for="item in chartList" :key="item.EdbInfoId">
@@ -211,7 +211,7 @@
 								<!-- <img :src="item.ChartImage"/> -->
 							</div>
 							<div class="info">
-								创建时间:{{item.CreateTime.substring(0,10)}}
+								{{$t('EtaBasePage.time_show')}}:{{item.CreateTime.substring(0,10)}}
 							</div>
 						</div>
 					</div>
@@ -279,14 +279,14 @@
 								ref="createChart"
 								@editEnName="openEnNameDia"/>
 							<div class="info">
-								<span>{{$t('Edb.source')}}:{{EdbData.SourceName}}</span>
-								<span>{{$t('Edb.Creator')}}:{{EdbData.SysUserRealName}}</span>
+								<span>{{$t('Edb.Detail.source')}}:{{EdbData.SourceName}}</span>
+								<span>{{$t('Edb.creater')}}:{{EdbData.SysUserRealName}}</span>
 							</div>
 							<ul class="value-ul"
 								v-show="showTable&&dataList.length">
 								<li class="value-item" style="background-color: #EBEFF6;">
-									<span style="width:240px">{{$t('Edb.e_date')}}({{$t('Edb.e_fre')}}:{{EdbData.Frequency}})</span>
-									<span style="flex:1;">{{$t('Edb.e_value')}}</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"
 									v-for="item in dataList.slice(0,3)"
@@ -301,7 +301,7 @@
 										<span :class="['value-style',{'predict-act': EdbData.DataInsertConfig.Date===item.DataTime}]">{{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>
 						<div class="list" v-show="activeTab==='Data'">
@@ -597,25 +597,25 @@ export default {
 			/*表格列 */
 			tableColumsOne: [
 				{
-					label: this.$t('Edb.e_id'),
+					label: this.$t('Edb.Detail.e_id'),
 					key: 'EdbCode',
 					minwidthsty: '150px'
 				},
 				{
-					label: this.$t('Edb.e_name'),
+					label: this.$t('Edb.Detail.e_name'),
 					key: 'EdbName',
 					enKey:'EdbNameEn',
 					inputTip:'点击输入英文指标名称',
 					minwidthsty: '200px'
 				},
 				{
-					label: this.$t('Edb.e_fre'),
+					label: this.$t('Edb.Detail.e_fre'),
 					key: 'Frequency',
 					enKey:'FrequencyEn',
 					widthsty: '100px'
 				},
 				{
-					label: this.$t('Edb.e_unit'),
+					label: this.$t('Edb.Detail.e_unit'),
 					key: 'Unit',
 					enKey:'UnitEn',
 					inputTip:'英文单位',
@@ -623,24 +623,24 @@ export default {
 					widthsty: '100px'
 				},
 				{
-					label: this.$t('Edb.source'),
+					label: this.$t('Edb.Detail.source'),
 					key: 'SourceName',
 					widthsty: '160px'
 				},
 			],
 			tableColumsTwo: [
 				{
-					label: this.$t('Edb.e_menu'),
+					label: this.$t('Edb.Detail.e_menu'),
 					key: 'Menu',
 					minwidthsty: '150px',
 				},
 				{
-					label: this.$t('Edb.e_start_time'),
+					label: this.$t('Edb.Detail.e_start_time'),
 					key: 'StartDate',
 					minwidthsty: '115px',
 				},
 				{
-					label: this.$t('Edb.e_update_time'),
+					label: this.$t('Edb.Detail.e_update_time'),
 					key: 'ModifyTime',
 					minwidthsty: '120px',
 				},

+ 9 - 9
src/views/dataEntry_manage/mixins/chartPublic.js

@@ -199,52 +199,52 @@ export const chartSetMixin = {
     tableColums(){
       return [
         {
-          label: this.$t('Edb.e_name'),
+          label: this.$t('Edb.Detail.e_name'),
           key: 'EdbName',
           enKey:'EdbNameEn',
 					inputTip:'点击输入英文指标名称',
           minwidthsty: '150px',
         },
         {
-          label: this.$t('Edb.e_id'),
+          label: this.$t('Edb.Detail.e_id'),
           key: 'EdbCode',
           widthsty: '120px',
         },
         {
-          label: this.$t('Edb.e_fre'),
+          label: this.$t('Edb.Detail.e_fre'),
           key: 'Frequency',
           enKey:'FrequencyEn',
           minwidthsty: '60px',
         },
         {
-          label: this.$t('Edb.e_unit'),
+          label: this.$t('Edb.Detail.e_unit'),
           key: 'Unit',
           enKey:'UnitEn',
 					inputTip:'英文单位',
           minwidthsty: '50px',
         },
         {
-          label: this.$t('Edb.e_start_time'),
+          label: this.$t('Edb.Detail.e_start_time'),
           key: 'StartDate',
           minwidthsty: '100px',
         },
         {
-          label: this.$t('Edb.e_latest_time'),
+          label: this.$t('Edb.Detail.e_latest_date'),
           key: 'LatestDate',
           minwidthsty: '90px',
         },
         {
-          label: '最新值',
+          label: this.$t('Edb.Detail.e_latest_value'),
           key: 'LatestValue',
           minwidthsty: '90px',
         },
         {
-          label: '最近更新',
+          label: this.$t('Edb.Detail.e_recent_time'),
           key: 'ModifyTime',
           minwidthsty: '100px',
         },
         {
-          label: '数据来源',
+          label: this.$t('Edb.Detail.source'),
           key: 'SourceName',
         },
       ]

+ 1 - 1
src/views/dataEntry_manage/targetList.vue

@@ -50,7 +50,7 @@
 			<el-table 
 			:data="tableData" 
 			v-loading="isShowloadding"
-			element-loading-text="数据加载中..."
+			:element-loading-text="$t('Table.data_loading')" 
 			:default-sort = "{prop: 'date', order: 'descending'}"
 			border>
 				<!-- 指标表格 -->

+ 1 - 1
src/views/dataEntry_manage/thirdBase/DatabankBase.vue

@@ -29,7 +29,7 @@
         </div>
         <div class="table-box">
             <el-table :data="tableData" border  @sort-change="sortChange" 
-                v-loading="tableLoading" element-loading-text="数据加载中...">
+                v-loading="tableLoading" :element-loading-text="$t('Table.data_loading')" >
                 <el-table-column v-for="column in tableColumnList" 
                     align="center"
                     :key="column.key"

+ 34 - 27
src/views/ppt_manage/newVersion/components/ContextMenu.vue

@@ -2,7 +2,7 @@
   <div class="menu-wrap" :id="'menu'+menuId">
       <ul>
           <li v-for="item in menu" :key="item.id" @mousedown.stop="handleClick(item)" @mouseup.stop>
-            <span :style="`color:${item.text==='粘贴元素'&&!item.canClick?'#999':'#333'}`"><i class="el-icon-check" v-if="item.id===5&&modelName==='paint'"></i>{{item.text}}</span>
+            <span :style="`color:${item.text===$t('Slides.paste_element_btn')&&!item.canClick?'#999':'#333'}`"><i class="el-icon-check" v-if="item.id===5&&modelName==='paint'"></i>{{item.text}}</span>
             </li>
       </ul>
   </div>
@@ -15,31 +15,7 @@ export default {
             type:Array,
             default:()=>{
                 return [
-                    {
-                        id:1,
-                        text:'上一张',
-                        eventName:'prev'
-                    },
-                    {
-                        id:2,
-                        text:'下一张',
-                        eventName:'next'
-                    },
-                    /* {
-                      id:5,
-                      text:'画笔模式',
-                      eventName:'paint'
-                    }, */
-                    {
-                        id:3,
-                        text:'退出全屏',
-                        eventName:'exit'
-                    },
-                    {
-                        id:4,
-                        text:'取消',
-                        eventName:'cancel'
-                    }
+                   
                 ]
             }
         },
@@ -57,6 +33,37 @@ export default {
 
     };
   },
+  component:{
+    propsDefault(){
+      return [
+              {
+                   id:1,
+                   text:this.$t('Slides.previous_sheet_default'),
+                   eventName:'prev'
+               },
+               {
+                   id:2,
+                   text:this.$t('Slides.next_sheet_default'),
+                   eventName:'next'
+               },
+               /* {
+                 id:5,
+                 text:'画笔模式',
+                 eventName:'paint'
+               }, */
+               {
+                   id:3,
+                   text:this.$t('Slides.exit_full_screen_default'),
+                   eventName:'exit'
+               },
+               {
+                   id:4,
+                   text:this.$t('Slides.operations_cancel'),
+                   eventName:'cancel'
+               }
+      ]
+    }
+  },
   methods: {
       cancel(){
           //console.log('cancel')
@@ -78,7 +85,7 @@ export default {
         this.$emit('paste')
       },
       handleClick(item){
-          if((!item.canClick&&item.text==='粘贴元素')) return
+          if((!item.canClick&&item.text===this.$t('Slides.paste_element_btn'))) return
           this[`${item.eventName}`]()
       }
   },

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

@@ -31,16 +31,16 @@
               &nbsp;页
             </div>
             
-            <p class="page-index" v-else @dblclick.stop="editPage">第{{pageIndex+1}}页</p>  
+            <p class="page-index" v-else @dblclick.stop="editPage"> {{$i18n.locale == 'zh' ?`第${index+1}页`:` Slide${index+1}`}}</p>  
         </div>
         <el-popconfirm
             @onConfirm="deletePage"
-            confirmButtonText='删除'
-            cancelButtonText='取消'
+            :confirmButtonText="$t('Slides.operations_delete')"
+            :cancelButtonText="$t('Slides.operations_cancel')"
             confirmButtonType="text"
             icon="el-icon-info"
             iconColor="red"
-            title="确定删除该页ppt吗">
+            :title="$t('Slides.is_delete_ppt_msg')">
         <!-- <span class="close-btn el-icon-close" @click.stop="deletePage" ></span>  -->
             <span class="close-btn el-icon-close" slot="reference"  v-if="showCloseBtn" v-show="!ctrlKeyActive"></span>
         </el-popconfirm>

+ 1 - 1
src/views/ppt_manage/newVersion/components/catalog/pptContent.vue

@@ -30,7 +30,7 @@
                           type="show"
                           @addChart="handleAddChartToGallery"
               ></component>
-              <span class="page-num">第{{index}}</span>
+              <span class="page-num"> {{$i18n.locale == 'zh' ?`${index}页`:` Slide${index+1}`}}</span>
           </div>
       </template> 
     </div>

+ 1 - 1
src/views/ppt_manage/newVersion/components/catalog/pptContentEn.vue

@@ -28,7 +28,7 @@
                           type="show"
                           @addChart="handleAddChartToGallery"
               ></component>
-              <span class="page-num">第{{index}}</span>
+              <span class="page-num"> {{$i18n.locale == 'zh' ?`${index}页`:` Slide${index+1}`}}</span>
           </div>
       </template> 
     </div>

+ 1 - 1
src/views/ppt_manage/newVersion/components/catalog/pptContentOld.vue

@@ -22,7 +22,7 @@
 				<div v-for="(item,i) in pageitem" :key="i+1" style="position:relative; margin:20px auto;" :id="'wrapper'+i">
 					<p style="position:absolute; top:6.5%; left:11.5%;fontSize:24px;color:#666">{{item.title}}</p>
 					<!-- <img v-if="item.img_url" :src="item.img_url" style="width:70%; position:absolute; top:20%; left:15%;" /> -->
-					<p style="position:absolute; bottom:3%; right:20px; color:#666;">第{{i+1}}</p>
+					<p style="position:absolute; bottom:3%; right:20px; color:#666;"> {{$i18n.locale == 'zh' ?`${i+1}页`:` Slide${i+1}`}}</p>
 					<div class="container" :id="'container'+item.resource_id" v-if="item.resource_id"></div>
 					<div class="container" v-if="item.noSource">
 						<img src="https://hzstatic.hzinsights.com/static/ppt_default.png" alt="" style="width:400px;height:300px;">

+ 2 - 2
src/views/ppt_manage/newVersion/components/editor/ChooseCoverNew.vue

@@ -40,7 +40,7 @@
                     </div>
                     <div class="dialog-btn">
                         <el-button @click="changeBg">{{$t('Slides.change_the_template_cover')}}</el-button>
-                        <el-button @click="saveCover">保存</el-button>
+                        <el-button @click="saveCover">{{$t('Dialog.confirm_save_btn')}}</el-button>
                     </div>
                 </div>
             </div>
@@ -117,7 +117,7 @@ export default {
         //保存封面配置
         async saveCover() {
             if(!this.pageData.Title.length){
-                return this.$message.warning("请输入PPT标题")
+                return this.$message.warning(this.$t('Slides.input_ppt_title'))
             }
             const coverContent = JSON.stringify(this.coverElList);
             //this.coverLoading=true

+ 9 - 7
src/views/ppt_manage/newVersion/components/editor/DeletePageDialog.vue

@@ -11,7 +11,7 @@
     >
       <div slot="title" style="display: flex; alignitems: center">
         <span style="fontsize: 16px"
-          >批量删除</span
+          >{{$t('Slides.operations_batch_delete')}}</span
         >
       </div>
       <div class="dialog-container" 
@@ -32,7 +32,7 @@
                 }:{}"
               >
                 <div class="title-wrap">
-                  {{item.title||'无标题'}}
+                  {{item.title||$t('Slides.untitled_title')}}
                 </div>
                 <component  :is="getComponentName(item.modelId)"
                             :ref="`preview_${index}`"
@@ -43,13 +43,15 @@
                             :isPreview="true"         
                 ></component>
               </div>
-            <p class="preview-page">第{{index+1}}页</p>
+            <p class="preview-page">
+              {{$i18n.locale == 'zh' ?`第${index+1}页`:` Slide${index+1}`}}
+            </p>
           </div>
           </div>
           
         </div>
         <div class="select-box">
-          <h3>请选择PPT页</h3>
+          <h3>{{$t('Slides.please_select_slide')}}</h3>
           <div class="input-box">
             第&nbsp;
               <input type="text"
@@ -69,13 +71,13 @@
           <div class="choose-box">
             <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
             <el-checkbox-group v-model="checkedPages" @change="handleCheckedPagesChange">
-              <el-checkbox v-for="(page,index) in pageList" :label="index" :key="page.id">第{{index+1}}&nbsp;&nbsp;{{page.title||'无标题'}}</el-checkbox>
+              <el-checkbox v-for="(page,index) in pageList" :label="index" :key="page.id">{{$i18n.locale == 'zh' ?`${index+1}页`:` Slide${index+1}`}}&nbsp;&nbsp;{{page.title||'无标题'}}</el-checkbox>
             </el-checkbox-group>
           </div>
           <p style="margin-top:15px;height:20px;">{{checkedPages.length?`已选择${checkedPages.length}页,确认删除吗?`:``}}</p>
           <div class="btn-box">
-            <el-button type="primary" @click="saveHandle" >确 定</el-button>
-            <el-button @click="cancelHandle">取 消</el-button>
+            <el-button type="primary" @click="saveHandle" >{{$t('Dialog.confirm_btn')}}</el-button>
+            <el-button @click="cancelHandle">{{$t('Dialog.cancel_btn')}}</el-button>
           </div>
         </div>
       </div>

+ 3 - 3
src/views/ppt_manage/newVersion/components/editor/InsertCharts.vue

@@ -4,7 +4,7 @@
       <el-select
         v-model="selectMyChartClassify"
         filterable
-        placeholder="图分类名称"
+        :placeholder="$t('Slides.chart_category_name_select')"
         @change="handleChange"
       >
         <el-option
@@ -43,7 +43,7 @@
         <img :src="item.ChartImage" alt="" style="-webkit-user-drag:none;"/>
       </div>
     </div>
-    <div v-if="list.length == 0" class="empty-box">无数据</div>
+    <div v-if="list.length == 0" class="empty-box"> {{$t('Slides.no_data_empty')}}</div>
   </div>
 </template>
 
@@ -112,7 +112,7 @@ export default {
 
     handleImport: _.throttle(function () {
       if (!this.selectMyChartClassify) {
-        this.$message.warning("请选择分类");
+        this.$message.warning(this.$t('MsgPrompt.select_category'));
         return;
       }
       if (this.list.length == 0) {

+ 8 - 8
src/views/ppt_manage/newVersion/components/editor/InsertPageDialog.vue

@@ -10,14 +10,14 @@
       center
     >
     <div slot="title" style="display: flex; alignitems: center">
-      <span style="fontsize: 16px">插入PPT</span>
+      <span style="fontsize: 16px">{{$t('Slides.operations_insert')}}</span>
     </div>
     <div class="dialog-container">
       <div class="catalog-list" v-loading="listloading">
         <div class="select-wrap">
           <el-select
             filterable remote
-            placeholder="请输入PPT标题"
+            :placeholder="$t('Slides.operations_insert')"
             v-model="searchTitle"
             :remote-method="searchHandle"
             :loading="searchLoading"
@@ -53,10 +53,10 @@
       <div class="select-box" v-loading="dataloading">
         <p class="title">{{choosedItem.Title}}</p>
         <div class="trans-box">
-          <p class="hint">请选择PPT页</p>
+          <p class="hint">{{$t('Slides.please_select_slide')}}</p>
           <div class="trans-wrap">
               <el-transfer v-model="value" :data="transList" target-order="push"
-                :titles="['未选PPT页', '已选PPT页']"
+                :titles="[$t('Slides.unselected_ppt_slides'),$t('Slides.selected_ppt_slides_transfer')]"
               />
           </div>
         </div>
@@ -65,8 +65,8 @@
     <div slot="footer" class="foot-container">
         <div class="block"></div>
         <div class="btn-box">
-          <el-button type="primary" @click="saveHandle">确 定</el-button>
-          <el-button @click="cancelHandle">取 消</el-button>
+          <el-button type="primary" @click="saveHandle">{{$t('Dialog.confirm_btn')}}</el-button>
+          <el-button @click="cancelHandle">{{$t('Dialog.cancel_btn')}}</el-button>
         </div>
         
       </div>
@@ -139,7 +139,7 @@ export default {
     cancelHandle(){this.$emit('cancel')},
     saveHandle(){
       if(this.value.length===0){
-        this.$message.warning("请选择PPT页")
+        this.$message.warning(this.$t('Slides.please_select_slide'))
         return
       }
       //value里存的是pageList的index
@@ -185,7 +185,7 @@ export default {
       data.forEach((item,index)=>{
         let temp = {}
         temp.key = index
-        temp.label = `第${index+1}页 ${item.title||'无标题'}`
+        temp.label = `第${index+1}页 ${item.title||this.$t('Slides.untitled_title')}`
         temp.disabled = false
         list.push(temp)
       })

+ 1 - 1
src/views/ppt_manage/newVersion/components/editor/InsertSemantics.vue

@@ -16,7 +16,7 @@
             </div>
 		</div>
         <div v-if="list.length==0" class="empty-box">
-            无数据
+            {{$t('Slides.no_data_empty')}}
         </div>
     </div>
 </template>

+ 4 - 4
src/views/ppt_manage/newVersion/components/formatEl/ChartEl.vue

@@ -10,14 +10,14 @@
     <img :id="`${$parent.isPreview?'preview_':''}img_${index}_${position}`" />
   </div>
   <div class="tool-list">
-    <el-tooltip content="按住拖动" placement="bottom" v-if="isBtnShow">
+    <el-tooltip :content="$t('Slides.hold_down_drag_tooltip')" placement="bottom" v-if="isBtnShow">
       <div 
           class="dragBtn"
           style="left:5%;top:5%;"
           v-if="isBtnShow&&![1,6].includes($parent.modelId)"
       ></div>
     </el-tooltip>
-    <el-tooltip content="添加到我的图库" placement="bottom"  v-if="$parent.isAdd&&chartTitle.length&&item">
+    <el-tooltip :content="$t('Slides.add_to_my_gallery_tooltip')" placement="bottom"  v-if="$parent.isAdd&&chartTitle.length&&item">
       <div class="addBtn"
         style="margin-right:2%;"
         @click.stop="addChart(position)"
@@ -25,7 +25,7 @@
        <!--  <i class="el-icon-circle-plus-outline"></i> -->
       </div>
     </el-tooltip>
-    <el-tooltip content="复制名称" placement="bottom"  v-if="$parent.isCopy&&chartTitle.length&&item">
+    <el-tooltip :content="$t('Slides.copy_name_tooltip')" placement="bottom"  v-if="$parent.isCopy&&chartTitle.length&&item">
       <div class="copyBtn"
         style="margin-right:2%;"
         @click.stop="copyChartName(position)"
@@ -51,7 +51,7 @@
           color: ${ chartSourcesFrom.color };
           fontSize: ${ chartSourcesFrom.fontSize }px;
         `"
-        >来源:{{ chartSourcesFrom.text}}</span>
+        >{{$t('Slides.source_info')}}:{{ chartSourcesFrom.text}}</span>
     </div>
     <!-- 图表说明 -->
     <div 

+ 1 - 1
src/views/ppt_manage/newVersion/components/formatEl/ImageEl.vue

@@ -6,7 +6,7 @@
   >
     <img :id="`${$parent.isPreview?'preview_':''}image_${index}_${position}`" />
   </div>
-  <el-tooltip content="按住拖动" placement="bottom" v-if="isBtnShow">
+  <el-tooltip :content="$t('Slides.hold_down_drag_tooltip')" placement="bottom" v-if="isBtnShow">
     <div 
         class="dragBtn"
         style="left:5%;top:5%;"

+ 1 - 1
src/views/ppt_manage/newVersion/components/formatEl/SheetEl.vue

@@ -19,7 +19,7 @@
       </tbody>
     </table>
   </div>
-  <el-tooltip content="按住拖动" placement="bottom" v-if="isBtnShow">
+  <el-tooltip :content="$t('Slides.hold_down_drag_tooltip')" placement="bottom" v-if="isBtnShow">
     <div 
         class="dragBtn"
         style="left:5%;top:5%;"

+ 7 - 2
src/views/ppt_manage/newVersion/components/formatEl/TextEl.vue

@@ -25,7 +25,7 @@
     <template v-if="this.$parent.type === 'edit' && this.$parent.choosedId !== this.$parent.pageItem.id ">
       <div class="cover-box" @click="initEditor"></div>
     </template>
-    <el-tooltip content="按住拖动" placement="bottom" v-if="this.$parent.type === 'edit' 
+    <el-tooltip :content="$t('Slides.hold_down_drag_tooltip')" placement="bottom" v-if="this.$parent.type === 'edit' 
             && this.$parent.choosedId === this.$parent.pageItem.id &&![1,6].includes($parent.modelId)">
     <div 
         class="dragBtn"
@@ -84,7 +84,7 @@ export default {
         fixed_toolbar_container: ".richtext-tool",//将toolbar放到指定div上
         skin_url: "/static/css",
         content_url: "/static/css",
-        placeholder:"点击输入文本内容"
+       
       },
       content:'',
       initFlag: false,
@@ -132,6 +132,11 @@ export default {
       tinymce.editors[elementId].focus()
     },
   },
+  computed:{
+     placeholder(){
+      return this.$t('Slides.click_input_text_content')
+     }
+  }
 };
 </script>
 

+ 1 - 1
src/views/ppt_manage/newVersion/components/formatPage/mixins.js

@@ -177,7 +177,7 @@ export default {
                 };
 
             }else{
-                this.$message("已无位置,请删除现有图表/图片")
+                this.$message(this.$t("Slides.please_delete_existing_chartsmsg"))
             }
         },
         getText({val,richContent}, position) {

+ 10 - 5
src/views/ppt_manage/newVersion/components/layer/Element/ShapeContextMenu.vue

@@ -16,11 +16,7 @@ export default {
       type: Array,
       default: () => {
         return [
-          {
-            id: 1,
-            text: "删除元素",
-            eventName: 'deleteshape',
-          },
+         this.propsDefault
         ];
       },
     },
@@ -31,6 +27,15 @@ export default {
   data() {
     return {};
   },
+  computed:{
+    propsDefault(){
+      return {
+            id: 1,
+            text: this.$t('Slides.delete_element_contextmenus'),
+            eventName: 'deleteshape',
+      }
+    }
+  },
   methods: {
     deleteShape(){
       this.$emit('deleteShape')

+ 9 - 5
src/views/ppt_manage/newVersion/components/layer/Element/shapeMixin.js

@@ -32,14 +32,18 @@ export default {
       },
       isMouseDown:false,//鼠标是否按下
       eventType:'move',//当前进行的事件:move:移动元素,resize:缩放元素
-      contextmenus:[
-        {id:1,text:'删除元素',eventName:'deleteShape'},
-        {id:2,text:'复制元素',eventName:'copyShape'}
-      ],//右键菜单的菜单项
+     
       isContextMenusShow:false,//右键菜单是否显示
     }
   },
-  computed:{},
+  computed:{
+    contextmenus(){
+    return  [
+        {id:1,text:this.$t('Slides.delete_element_contextmenus'),eventName:'deleteShape'},
+        {id:2,text:this.$t('Slides.copy_element_contextmenus'),eventName:'copyShape'}
+      ]//右键菜单的菜单项
+    }
+  },
   methods:{
     //开始移动
     handleMoveStart(event){

+ 9 - 9
src/views/ppt_manage/newVersion/components/layer/layerEditTool.vue

@@ -4,7 +4,7 @@
     <template v-if="baseType==='shape'">
       <li class="disabled" v-show="!isActiveEl"></li>
       <li class="tool-item" style="border: 1px solid #DBDCDD;padding: 0 6px;border-radius: 4px;">
-        <el-tooltip class="item" effect="dark" content="边框粗细" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.border_thickness_tooltip')" placement="top">
           <el-select v-model="elInfo.outline.width">
             <el-option
               v-for="item in layerEditOptions.stokeSize"
@@ -19,7 +19,7 @@
         </el-tooltip>
       </li>
       <li class="tool-item">
-        <el-tooltip class="item" effect="dark" content="边框样式" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.border_style_tooltip')" placement="top">
           <el-dropdown trigger="click" @command="setShapeStyle">
             <div class="el-dropdown-link">
               <img src="~@/assets/icons/line.svg" width="20" height="20" style="vertical-align: middle;">
@@ -43,7 +43,7 @@
         </el-tooltip>
       </li>
       <li class="tool-item">
-        <el-tooltip class="item" effect="dark" content="边框颜色" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.border_color_tooltip')" placement="top">
           <el-color-picker
             v-model="elInfo.outline.color"
             size="mini"
@@ -53,7 +53,7 @@
         </el-tooltip>	
       </li>
       <li class="tool-item">
-        <el-tooltip class="item" effect="dark" content="填充颜色" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.fill_color_tooltip')" placement="top">
           <el-color-picker
           v-model="elInfo.fill"
           size="mini"
@@ -67,7 +67,7 @@
     <template v-if="baseType==='line'">
       <li class="disabled" v-show="!isActiveEl"></li>
       <li class="tool-item" style="border: 1px solid #DBDCDD;padding: 0 6px;border-radius: 4px;">
-        <el-tooltip class="item" effect="dark" content="线条粗细" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.line_thickness_tooltip')" placement="top">
           <el-select v-model="elInfo.strokeWidth">
             <el-option
               v-for="item in layerEditOptions.stokeSize"
@@ -82,7 +82,7 @@
         </el-tooltip>
       </li>
       <li class="tool-item">
-        <el-tooltip class="item" effect="dark" content="线条样式" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.line_style_tooltip')" placement="top">
           <el-dropdown trigger="click" @command="setLineStyle">
             <div class="el-dropdown-link">
               <img src="~@/assets/icons/line.svg" width="20" height="20" style="vertical-align: middle;">
@@ -106,7 +106,7 @@
         </el-tooltip>
       </li>
       <li class="tool-item">
-        <el-tooltip class="item" effect="dark" content="线条箭头" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.line_srrow_tooltip')" placement="top">
           <el-dropdown trigger="click" @command="setLinePointsStyle">
             <div class="el-dropdown-link">
               <img src="~@/assets/icons/arrow.svg" width="20" height="20" style="vertical-align: middle;">
@@ -142,7 +142,7 @@
         </el-tooltip>
       </li>
       <li class="tool-item">
-        <el-tooltip class="item" effect="dark" content="线条颜色" placement="top">
+        <el-tooltip class="item" effect="dark" :content="$t('Slides.line_color_tooltip')" placement="top">
           <el-color-picker
             v-model="elInfo.color"
             size="mini"
@@ -156,7 +156,7 @@
     <template v-if="baseType==='text'">
       <li class="tool-item editor">
         <div class="layer-text-toolbar"></div>
-        <p v-if="!isActiveEl">请选择文本元素</p>
+        <p v-if="!isActiveEl">{{$t('Slides.please_select_settings_cover')}}</p>
       </li>
     </template>
   </ul>

+ 10 - 7
src/views/ppt_manage/newVersion/components/layer/shapePreview.vue

@@ -42,13 +42,7 @@ export default {
     shape:{//图像信息
       type:Object,
       default:()=>{
-        return {
-          type:'line',
-          name:"直线",
-          path:'M 0 0 L 200 200 z',
-          viewBox:[200,200],
-          /* points:'arrow' */
-        }
+        return 
       }
     }
   },
@@ -58,6 +52,15 @@ export default {
       },
       BaseTrans(){
           return this.shape.shapeType==='Circle'?10:0
+      },
+      propsDefault(){
+          return {
+            type:'line',
+            name:this.$t('Slides.line_default'),
+            path:'M 0 0 L 200 200 z',
+            viewBox:[200,200],
+            /* points:'arrow' */
+          }
       }
   },
   data() {

+ 3 - 1
src/views/ppt_manage/newVersion/pptCatalog.vue

@@ -197,7 +197,9 @@
     </div>
     <div class="detail-wrap ppt-page-wrap" id="right">
       <div class="detail-list" v-if="model==='list'">
-        <div class="total">共{{catalogPPTList.length}}个PPT</div>
+        <div class="total">
+          {{$i18n.locale == 'zh' ? `共${catalogPPTList.length}个PPT`:`Numbers of PPTs:${catalogPPTList.length} `}}
+        </div>
         <div class="ppt-list">
           <draggable
             class="drag-cont"

+ 6 - 4
src/views/ppt_manage/newVersion/pptEditor.vue

@@ -9,7 +9,9 @@
         </div>
         <div class="hint-box"><div class="hint"  @click="showHint"><span class="el-icon-info" style="margin-right:5px;"></span>{{$t('Slides.operating_instructions')}}</div></div>
         <div style="display:flex;justify-content: space-between;">
-          <p style="text-align:start;color:#999999;">已添加{{pageList.length}}页</p>
+          <p style="text-align:start;color:#999999;">
+            {{$i18n.locale == 'zh' ? `已添加${pageList.length}页`:`${pageList.length}slides added successfully`}}
+          </p>
           <!-- <p class="hint-text" style="cursor: pointer;margin-left:auto;" @click="insertPageShow=true">插入PPT</p> -->
           <p class="hint-text" style="cursor: pointer;" @click="saveCopyPages('cut')">{{$t('Slides.operations_cut')}}</p>
           <p class="hint-text" style="cursor: pointer;" @click="saveCopyPages('copy')">{{$t('Slides.operations_copy')}}</p>
@@ -86,11 +88,11 @@
                             confirmButtonType="text"
                             icon="el-icon-info"
                             iconColor="red"
-                            title="确定删除该页ppt吗">
+                           :title="$t('Slides.is_delete_ppt_msg')">
                             <span class="close-btn" @click.stop slot="reference"></span>
                         </el-popconfirm>
                         <!-- 页码 -->
-                        <span class="page-num">第{{index+1}}</span>
+                        <span class="page-num"> {{this.$i18n.locale == 'zh' ?`${index+1}页`:` Slide${index+1}`}}</span>
                         <!-- 更新图表 -->
                         <span class="update-btn" v-show="item.modelId!==6&&item.elements.find((i)=>i.type==='chart')" @click.stop="updatePage(item)"><span class="update-ico"></span> {{$t('Slides.update_chart_btn')}}</span>
                     </div>
@@ -596,7 +598,7 @@ export default {
       //算出currentItem还有哪些位置可以插入图表
       const {isAdd,addPositions}=this.checkElements(this.currentItem.modelId,this.currentItem.elements,'chart')
       if(!isAdd){
-        this.$message("已无位置,请删除现有图表/图片")
+        this.$message(this.$t("Slides.please_delete_existing_chartsmsg"))
         return
       }
       

+ 3 - 1
src/views/ppt_manage/newVersion/pptEnCatalog.vue

@@ -192,7 +192,9 @@
     </div>
     <div class="detail-wrap ppt-page-wrap" id="right">
       <div class="detail-list" v-if="model==='list'">
-        <div class="total">共{{catalogPPTList.length}}个PPT</div>
+        <div class="total">
+           {{$i18n.locale == 'zh' ? `共${catalogPPTList.length}个PPT`:`Numbers of PPTs:${catalogPPTList.length} `}}
+        </div>
         <div class="ppt-list">
           <draggable
             class="drag-cont"

+ 6 - 4
src/views/ppt_manage/newVersion/pptEnEditor.vue

@@ -9,7 +9,9 @@
         </div>
         <div class="hint-box"><div class="hint"  @click="showHint"><span class="el-icon-info" style="margin-right:5px;"></span>{{$t('Slides.operating_instructions')}}</div></div>
         <div style="display:flex;justify-content: space-between;">
-          <p style="text-align:start;color:#999999;">已添加{{pageList.length}}页</p>
+          <p style="text-align:start;color:#999999;">
+              {{$i18n.locale == 'zh' ? `已添加${pageList.length}页`:`${pageList.length}slides added successfully`}}
+          </p>
           <p class="hint-text" style="cursor: pointer;" @click="saveCopyPages('cut')">{{$t('Slides.operations_cut')}}</p>
           <p class="hint-text" style="cursor: pointer;" @click="saveCopyPages('copy')">{{$t('Slides.operations_copy')}}</p>
           <p style="color:#B72E18;cursor: pointer;" @click="openDeletePageDialog">{{$t('Slides.operations_batch_delete')}}</p>
@@ -84,11 +86,11 @@
                         confirmButtonType="text"
                         icon="el-icon-info"
                         iconColor="red"
-                        title="确定删除该页ppt吗">
+                        :title="$t('Slides.is_delete_ppt_msg')">
                         <span class="close-btn" @click.stop slot="reference"></span>
                     </el-popconfirm>
                     <!-- 页码 -->
-                    <span class="page-num">第{{index+1}}</span>
+                    <span class="page-num"> {{this.$i18n.locale == 'zh' ?`${index+1}页`:` Slide${index+1}`}}</span>
                     <!-- 更新图表 -->
                     <span class="update-btn" v-show="item.modelId!==6&&item.elements.find((i)=>i.type==='chart')" @click.stop="updatePage(item)"><span class="update-ico"></span>{{$t('Slides.update_chart_btn')}}</span>
                 </div>
@@ -607,7 +609,7 @@ export default {
       //算出currentItem还有哪些位置可以插入图表
       const {isAdd,addPositions}=this.checkElements(this.currentItem.modelId,this.currentItem.elements,'chart')
       if(!isAdd){
-        this.$message("已无位置,请删除现有图表/图片")
+        this.$message(this.$t("Slides.please_delete_existing_chartsmsg"))
         return
       }
       //从clipboardData中获取图片

+ 23 - 13
src/views/ppt_manage/newVersion/pptEnPresent.vue

@@ -71,7 +71,7 @@
         </div>
         <div class="other">
           <div class="page-info">
-            <span>第{{currentIndex+1}}页PPT,共{{`${isShowBack?(pageList.length+2):(pageList.length+1)}`}}页</span>
+            <span>{{pptSlidePages}}</span>
           </div>
           <div class="btn-list">
             <el-button @click="(e)=>{FullScreen(e,'live')}" type="primary" class="btn">{{$t('Slides.portrait_mode_playback')}}</el-button>
@@ -188,18 +188,6 @@ export default {
   mixins:[pptmixin,mixins],
   data() {
     return {
-      coverInfo:{
-        index:{
-          id:0,
-          title:'封面',
-        },
-        /* page:{
-          Title:'ppt标题阿巴阿巴',
-          ReportType:'ppt副标题阿巴阿巴',
-          BackgroundImg:'https://hzstatic.hzinsights.com/ppt/bg3.jpg',
-          PptDate:'2022年7月'
-        } */
-      },//封面信息
       backInfo:{
         index:{
           id:-1,
@@ -243,6 +231,28 @@ export default {
     },
     isShowBack(){
         return Boolean(this.pptBackImage)
+    },
+    pptSlidePages(){
+      let str = this.$i18n.locale == 'zh'? 
+      `第${currentIndex+1}页PPT,共${isShowBack?(pageList.length+2):(pageList.length+1)}页` 
+      : `Slide${currentIndex+1} of ${isShowBack?(pageList.length+2):(pageList.length+1)}`
+      return str
+    },
+    //封面信息
+    coverInfo(){
+       return {
+         id:0,
+         title:this.$t('Slides.cover_info'),
+       }
+    },
+    //封底信息
+    backInfo(){
+     return {
+      index:{
+          id:-1,
+           title:this.$t('Slides.back_cover_info'),
+        }
+     }
     }
   },
   methods: {

+ 26 - 22
src/views/ppt_manage/newVersion/pptEnPublish.vue

@@ -72,26 +72,6 @@ export default {
   data() {
     return {
       isPublish:false,//是否在发布中
-      coverInfo:{
-        id:0,
-        title:'封面',
-        index:{
-          id:0,
-          title:'封面',
-          idName:'cover'
-        },
-        /* page:{
-          Title:'ppt标题阿巴阿巴',
-          ReportType:'ppt副标题阿巴阿巴',
-          BackgroundImg:'https://hzstatic.hzinsights.com/ppt/bg3.jpg',
-          PptDate:'2022年7月'
-        } */
-      },//封面信息
-      backInfo:{
-        id:-1,
-        title:'封底',
-        idName:'back'
-      },//封底信息
       pageList:[],//ppt数组(页面信息)
       pptFile:null,//
       base64Url:null,
@@ -99,7 +79,6 @@ export default {
       loadingAll:true,//是否加载全部,false代表使用虚拟列表加载
       LayoutType:1,//ppt比例,1:默认比例10:7,2:16:9,3:4:3
       coefficient:0.7,//宽高系数
-      layoutStr:`10:7${this.$t('Slides.default_publish')}`,
       ReportId:0,//ppt对应的双周报id,如果没转过,则为0
       transReportShow:false,//转双周报的弹窗是否显示
       transChartType:2,//生成PPT时,转换动态图表的方式:1.将svg传至服务端转换;2.调用changeUrl转换
@@ -112,6 +91,31 @@ export default {
       this.coefficient = coefficient
     }
   },
+  computed:{
+      layoutStr(){
+        return `10:7${this.$t('Slides.default_publish')}`
+      },
+    //封面信息
+      coverInfo(){
+        return {
+          id:0,
+            title:this.$t('Slides.cover_info'),
+            index:{
+              id:0,
+              title:this.$t('Slides.cover_info'),
+              idName:'cover'
+            },
+        }
+      },
+      //封底信息
+      backInfo(){
+      return {
+            id:-1,
+            title:this.$t('Slides.back_cover_info'),
+            idName:'back'
+      }
+      }
+  },
   methods: {
     async transHandle(){
       //需要校验PPT
@@ -123,7 +127,7 @@ export default {
       this.loadingInstance = this.$loading({
         lock:true,
         fullscreen: true,
-        text: "生成ppt中...",
+        text: this.$t('Slides.generating_powerPoint_msg'),
       });
       this.isPublish = true
       if(this.loadingAll){

+ 23 - 19
src/views/ppt_manage/newVersion/pptPresent.vue

@@ -71,7 +71,7 @@
         </div>
         <div class="other">
           <div class="page-info">
-            <span>第{{currentIndex+1}}页PPT,共{{`${isShowBack?(pageList.length+2):(pageList.length+1)}`}}页</span>
+            <span>{{pptSlidePages}}</span>
           </div>
           <div class="btn-list">
             <el-button @click="(e)=>{FullScreen(e,'live')}" type="primary" class="btn"> {{$t('Slides.portrait_mode_playback')}} </el-button>
@@ -187,24 +187,6 @@ export default {
   mixins:[pptmixin,mixins],
   data() {
     return {
-      coverInfo:{
-        index:{
-          id:0,
-          title:'封面',
-        },
-        /* page:{
-          Title:'ppt标题阿巴阿巴',
-          ReportType:'ppt副标题阿巴阿巴',
-          BackgroundImg:'https://hzstatic.hzinsights.com/ppt/bg3.jpg',
-          PptDate:'2022年7月'
-        } */
-      },//封面信息
-      backInfo:{
-        index:{
-          id:-1,
-          title:'尾页'
-        }
-      },//封底信息
       pageList:[],//ppt数组
       currentItem:null,//当前活跃的page
       currentIndex:0,//当前活跃的pageIndex
@@ -241,6 +223,28 @@ export default {
     },
     isShowBack(){
         return Boolean(this.pptBackImage)
+    },
+    pptSlidePages(){
+      let str = this.$i18n.locale == 'zh'? 
+      `第${currentIndex+1}页PPT,共${isShowBack?(pageList.length+2):(pageList.length+1)}页` 
+      : `Slide${currentIndex+1} of ${isShowBack?(pageList.length+2):(pageList.length+1)}`
+      return str
+    },
+    //封面信息
+    coverInfo(){
+        return {
+          id:0,
+          title:this.$t('Slides.cover_info'),
+        }
+    },
+    //封底信息
+    backInfo(){
+      return {
+      index:{
+          id:-1,
+           title:this.$t('Slides.back_cover_info'),
+        }
+      }
     }
   },
   methods: {

+ 24 - 22
src/views/ppt_manage/newVersion/pptPublish.vue

@@ -86,26 +86,6 @@ export default {
   data() {
     return {
       isPublish:false,//是否在发布中
-      coverInfo:{
-        id:0,
-        title:'封面',
-        index:{
-          id:0,
-          title:'封面',
-          idName:'cover'
-        },
-        /* page:{
-          Title:'ppt标题阿巴阿巴',
-          ReportType:'ppt副标题阿巴阿巴',
-          BackgroundImg:'https://hzstatic.hzinsights.com/ppt/bg3.jpg',
-          PptDate:'2022年7月'
-        } */
-      },//封面信息
-      backInfo:{
-        id:-1,
-        title:'封底',
-        idName:'back'
-      },//封底信息
       pageList:[],//ppt数组(页面信息)
       pptFile:null,//
       base64Url:null,
@@ -113,7 +93,6 @@ export default {
       loadingAll:true,//是否加载全部,false代表使用虚拟列表加载
       LayoutType:1,//ppt比例,1:默认比例10:7,2:16:9,3:4:3
       coefficient:0.7,//宽高系数
-      layoutStr:`10:7${this.$t('Slides.default_publish')}`,
       ReportId:0,//ppt对应的双周报id,如果没转过,则为0
       transReportShow:false,//转双周报的弹窗是否显示
       transChartType:2,//生成PPT时,转换动态图表的方式:1.将svg传至服务端转换;2.调用changeUrl转换
@@ -129,6 +108,29 @@ export default {
     lineClamp(){
         return this.LayoutType===2?2:3
     },
+    layoutStr(){
+        return `10:7${this.$t('Slides.default_publish')}`
+    },
+    //封面信息
+    coverInfo(){
+       return {
+         id:0,
+          title:this.$t('Slides.cover_info'),
+          index:{
+            id:0,
+            title:this.$t('Slides.cover_info'),
+            idName:'cover'
+          },
+       }
+    },
+    //封底信息
+    backInfo(){
+     return {
+          id:-1,
+          title:'封底',
+          idName:'back'
+     }
+    }
   },
   methods: {
     //计算title的字节数
@@ -145,7 +147,7 @@ export default {
       this.loadingInstance = this.$loading({
         lock:true,
         fullscreen: true,
-        text: "生成ppt中...",
+        text: this.$t('Slides.generating_powerPoint_msg'),
       });
       this.isPublish = true
       if(this.loadingAll){

+ 1 - 1
src/views/ppt_manage/pptlist.vue

@@ -28,7 +28,7 @@
         <el-table
           :data="tableData"
           v-loading="listLoading"
-          element-loading-text="数据加载中..."
+          :element-loading-text="$t('Table.data_loading')" 
           row-key="id"
           border
           default-expand-all

+ 8 - 4
src/views/report_manage/reportAuthor.vue

@@ -15,7 +15,7 @@
     </div>
     <div class="main-bottom" v-if="authTabsOpt.length">
       <ul class="tab-ul">
-        <li :class="['tab-li',default_tab===tab.key && 'act']" v-for="tab in authTabsOpt" :key="tab.key" @click="default_tab=tab.key">{{tab.label}}研报</li>
+        <li :class="['tab-li',default_tab===tab.key && 'act']" v-for="tab in authTabsOpt" :key="tab.key" @click="default_tab=tab.key">{{getContentMenuOptText(tab.label)}}</li>
       </ul>
       <el-table
         :data="tableData"
@@ -82,7 +82,7 @@
           ref="formRef" 
           label-position="left"
           hide-required-asterisk
-          label-width="80px">
+          label-width="95px">
           <el-form-item :label="ChineseEcnglish.author_input_name" prop="name" :rules="[{ required: true, message: ChineseEcnglish.add_author_rules, trigger: 'blur' }]">
             <el-input 
               type="text" 
@@ -91,10 +91,10 @@
               style="width:400px;"
             />
           </el-form-item>
-          <el-form-item label="研报类型" v-if="!authorForm.id">
+          <el-form-item :label="$t('ReportManage.AuthorManagement.research_report_type')" v-if="!authorForm.id">
             <el-select 
               v-model="authorForm.report_type"
-              placeholder="请选择研报类型"
+              :placeholder="$t('ReportManage.AuthorManagement.research_report_type_select')"
               style="width:400px;"
             >
               <el-option v-for="item in authTabsOpt" :key="item.key" :label="item.label" :value="item.key"/>
@@ -239,6 +239,10 @@ export default {
     } 
   },
   methods: {
+    getContentMenuOptText(val){
+      if(val =='中文' ) return this.$t('ReportManage.AuthorManagement.chinese_report_tab')
+      if(val =='英文' ) return this.$t('ReportManage.AuthorManagement.english_report_tab')
+    },
     /* 获取表格数据 */
     getTableData() {
       this.tableLoading = true;

+ 55 - 81
src/views/report_manage/reportEn/reportlist.vue

@@ -9,7 +9,7 @@
               type="primary"
               size="medium"
               @click="$router.push({ path: '/reportEnEditor' })"
-              >添加研报</el-button
+              >{{$t('ReportManage.smart_add_report')}}</el-button
             >
           </el-form-item>
           <el-form-item label="">
@@ -19,7 +19,7 @@
               size="medium"
               :loading="isPull" 
               @click="handlePullReport"
-            >同步策略报告</el-button>
+            >{{$t('ReportManage.smart_sync_policy_report')}}</el-button>
           </el-form-item>
           <!-- 整合的筛选项 -->
           <el-form-item label="">
@@ -30,23 +30,23 @@
                 popper-class="report-select-popover"
                 width="320" style="display: inline-block;">
                 <div class="select-wrap">
-                    <p>筛选项</p>
+                    <p>{{$t('ReportManage.smart_filter_options')}}</p>
                     <div class="select-item">
                         <el-select
                             v-model="searchform.timeType"
-                            placeholder="选择时间类型"
+                            :placeholder="$t('ReportManage.smart_select_time_type_btn')"
                             size="medium"
                             style="width:100%;"
                         >
-                            <el-option label="发布时间" value="publish_time"></el-option>
-                            <el-option label="审批时间" value="approve_time"></el-option>
-                            <el-option label="更新时间" value="modify_time"></el-option>
+                            <el-option :label="$t('ReportManage.smart_publish_time')" value="publish_time"></el-option>
+                            <el-option :label="$t('ReportManage.smart_approval_time')" value="approve_time"></el-option>
+                            <el-option :label="$t('ReportManage.smart_update_time')" value="modify_time"></el-option>
                         </el-select>
                     </div>
                     <div class="select-item">
                         <el-select
                             v-model="searchform.frequency"
-                            placeholder="更新频度筛选"
+                            :placeholder="$t('ReportManage.smart_update_frequency_filter')"
                             size="medium"
                             clearable
                             style="width:100%;"
@@ -64,43 +64,43 @@
                             }"
                             v-model="searchform.classifynameArr"
                             clearable
-                            placeholder="类型筛选"
+                            :placeholder="$t('ReportManage.smart_type_filtering')"
                             style="width:100%;"
                         ></el-cascader>
                     </div>
                     <div class="select-item">
                         <el-select
                             v-model.number="searchform.publishState"
-                            placeholder="发布筛选"
+                            :placeholder="$t('ReportManage.smart_publish_filter_select')"
                             size="medium"
                             clearable
                             style="width:100%;"
                         >
-                            <el-option label="未发布" :value="1" v-if="!isOtherApprove"></el-option>
-                            <el-option label="已发布" :value="2"></el-option>
-                            <el-option label="待提交" :value="3" v-if="isApprove"></el-option>
-                            <el-option label="待审批" :value="4" v-if="isApprove"></el-option>
-                            <el-option label="已驳回" :value="5"></el-option>
-                            <el-option label="已通过" :value="6"></el-option>
+                           <el-option :label="$t('ReportManage.smart_unpublished')" :value="1" v-if="!isOtherApprove"></el-option>
+                            <el-option :label="$t('ReportManage.smart_published')" :value="2"></el-option>
+                            <el-option :label="$t('ReportManage.smart_pending')" :value="3" v-if="isApprove"></el-option>
+                            <el-option :label="$t('ReportManage.smart_awaiting_approval')" :value="4" v-if="isApprove"></el-option>
+                            <el-option :label="$t('ReportManage.smart_rejected')" :value="5"></el-option>
+                            <el-option :label="$t('ReportManage.smart_approved')" :value="6"></el-option>
                         </el-select>
                     </div>
                     <div class="select-item">
                         <el-select
                             v-permission="permissionBtn.enReportManageBtn.enReport_sendEmail"
                             v-model.number="searchform.EmailState"
-                            placeholder="群发状态筛选"
+                            :placeholder="$t('ReportManage.smart_status_filtering_select')"
                             size="medium"
                             clearable
                             style="width:100%;"
                         >
-                            <el-option label="未群发邮件" :value="1"></el-option>
-                            <el-option label="已群发邮件" :value="2"></el-option>
+                            <el-option :label="$t('ReportManage.smart_emails_unsent_option')" :value="1"></el-option>
+                            <el-option :label="$t('ReportManage.smart_emails_sents_option')" :value="2"></el-option>
                         </el-select>
                     </div>
                 </div>
                 <div class="select-btn" slot="reference">
                     <img src="~@/assets/icons/filter.svg">
-                    <span>筛选条件</span>
+                    <span>{{$t('ReportManage.smart_filtering_criteria')}}</span>
                     <span class="select-num">+{{selectNum}}</span>
                 </div>
             </el-popover>
@@ -120,7 +120,7 @@
           </el-form-item>
           <el-form-item style="margin-left:auto;">
             <el-input
-              placeholder="标题 / 创建人"
+              :placeholder="$t('ReportManage.smart_title_creator_btn')"
               v-model="searchform.key_word"
               clearable
               size="medium"
@@ -136,7 +136,7 @@
 				border
 				:data="tableData"
 				v-loading="listLoading"
-				element-loading-text="加载中..."
+				:element-loading-text="$i18n.locale == 'zh'?'加载中...':'Loading'"
 				style="margin-top: 20px"
 			>
 				<el-table-column
@@ -158,7 +158,7 @@
               </el-tooltip>
             </span>
             <span v-else-if="item.key==='PublishTime'">
-                发布/审批时间
+                {{$t('ReportManage.smart_release_approval_time')}}
             </span>
             <span v-else>{{ item.label }}</span>
           </template>	
@@ -172,12 +172,12 @@
                 <!-- <span v-if="row.ClassifyNameSecond">/ {{row.ClassifyNameSecond}}</span> -->
               </span>
               <span v-else-if="item.key==='State'" :style="row.State===2 && 'color:#46C371;'">
-                <span v-if="row.State == '1'">未发布</span>
-                <span v-if="row.State == '2'">已发布</span>
-                <span v-if="row.State == '3'">待提交</span>
-                <span v-if="row.State == '4'">待审批</span>
-                <span v-if="row.State == '5'">已驳回</span>
-                <span v-if="row.State == '6'">已通过</span>
+               <span v-if="row.State == '1'">{{$t('ReportManage.smart_unpublished')}}</span>
+                <span v-if="row.State == '2'">{{$t('ReportManage.smart_published')}}</span>
+                <span v-if="row.State == '3'">{{$t('ReportManage.smart_pending')}}</span>
+                <span v-if="row.State == '4'">{{$t('ReportManage.smart_awaiting_approval')}}</span>
+                <span v-if="row.State == '5'">{{$t('ReportManage.smart_rejected')}}</span>
+                <span v-if="row.State == '6'">{{$t('ReportManage.smart_approved')}}</span>
               </span>
               <span v-else-if="item.key==='Stage'">第{{row.Stage}}期</span>
               <span v-else-if="item.key==='Pv'" style="cursor:pointer; color:#4099ef;" >
@@ -208,71 +208,45 @@
                     已驳回——撤销 -->
                     <template v-if="[1,3].includes(row.State)">
                         <span class="editsty" @click="reportHandle(row,'publish')" v-if="row.CanEdit&&row.State===1
-                                &&permissionBtn.isShowBtn('enReportManageBtn','enReport_publish')">发布</span>
+                                &&permissionBtn.isShowBtn('enReportManageBtn','enReport_publish')">{{$t('ReportManage.smart_btn.publish')}}</span>
                         <span class="editsty" @click="handleSubmitReport(row)" v-if="row.CanEdit&&row.State===3
-                                &&permissionBtn.isShowBtn('enReportManageBtn','enReport_publish')">提交</span>
+                                &&permissionBtn.isShowBtn('enReportManageBtn','enReport_publish')">{{$t('ReportManage.smart_btn.submission')}}</span>
                         <span v-permission="permissionBtn.enReportManageBtn.enReport_reportEdit" class="editsty"
                             @click="reportHandle(row,'edit')" v-if="row.CanEdit">编辑</span>
                         <span v-permission="permissionBtn.enReportManageBtn.enReport_reportEdit" class="editsty"
-                            @click="reportHandle(row,'edit')" v-else>{{row.Editor||''}}编辑中...</span>
+                            @click="reportHandle(row,'edit')" v-else>{{row.Editor||''}}{{$t('ReportManage.smart_btn.editing')}}</span>
                         <span v-permission="permissionBtn.enReportManageBtn.enReport_reportDel" class="deletesty"
                             @click="reportHandle(row,'del')" v-if="row.CanEdit">删除</span>
                     </template>
                     <template v-if="[2,6].includes(row.State)">
                         <span
                             v-if="permissionBtn.isShowBtn('enReportManageBtn','enReport_cancelPublish')&&row.State===2"
-                            @click="reportHandle(row,'cancelPublish')" class="deletesty">撤销</span><!-- 取消发布 -->
+                            @click="reportHandle(row,'cancelPublish')" class="deletesty">{{$t('ReportManage.smart_btn.withdraw')}}</span><!-- 取消发布 -->
                         <span
                             v-if="permissionBtn.isShowBtn('enReportManageBtn','enReport_cancelPublish')&&row.State===6"
-                            @click="cancelApprove(row)" class="deletesty">撤销</span>
+                            @click="cancelApprove(row)" class="deletesty">{{$t('ReportManage.smart_btn.withdraw')}}</span>
                         <span
                             v-if="row.EmailState===0&&row.EmailAuth&&permissionBtn.checkPermissionBtn(permissionBtn.enReportManageBtn.enReport_sendEmail)"
-                            class="editsty copylink" @click="reportHandle(row,'sendEmail')">群发邮件</span>
+                            class="editsty copylink" @click="reportHandle(row,'sendEmail')">{{$t('ReportManage.smart_btn.send_email')}}</span>
 
                         <span class="editsty copylink"
                             v-if="row.EmailState===1&&row.EmailAuth&&permissionBtn.checkPermissionBtn(permissionBtn.enReportManageBtn.enReport_sendEmail)"
                             @click="reportHandle(row,'view-log')" style="position: relative;">
-                            群发日志
+                            {{$t('ReportManage.smart_btn.send_log')}}
                             <span class="warn-tag" v-if="row.EmailHasFail"></span>
                         </span>
                     </template>
                     <template v-if="[4,5].includes(row.State)">
                         <span v-if="permissionBtn.isShowBtn('enReportManageBtn','enReport_cancelPublish')"
-                            @click="cancelApprove(row)" class="deletesty">撤销</span>
+                            @click="cancelApprove(row)" class="deletesty">{{$t('ReportManage.smart_btn.withdraw')}}</span>
                     </template>
-
-                  <!-- <template v-if="row.State===1">
-                      <span class="editsty" v-permission="permissionBtn.enReportManageBtn.enReport_publish"
-                          @click="reportHandle(row,'publish')" v-if="row.CanEdit">发布</span>
-                      <span v-permission="permissionBtn.enReportManageBtn.enReport_reportEdit" class="editsty"
-                          @click="reportHandle(row,'edit')" v-if="row.CanEdit">编辑</span>
-                      <span v-permission="permissionBtn.enReportManageBtn.enReport_reportEdit" class="editsty"
-                          @click="reportHandle(row,'edit')" v-else>{{row.Editor||''}}编辑中...</span>
-                      <span v-permission="permissionBtn.enReportManageBtn.enReport_reportDel" class="deletesty"
-                          @click="reportHandle(row,'del')" v-if="row.CanEdit">删除</span>
-                  </template>
-                  <template v-else>
-                      <span
-                          v-if="permissionBtn.checkPermissionBtn(permissionBtn.enReportManageBtn.enReport_cancelPublish)"
-                          @click="reportHandle(row,'cancelPublish')" class="deletesty">取消发布</span>
-                      <span
-                          v-if="row.EmailState===0&&row.EmailAuth&&permissionBtn.checkPermissionBtn(permissionBtn.enReportManageBtn.enReport_sendEmail)"
-                          class="editsty copylink" @click="reportHandle(row,'sendEmail')">群发邮件</span>
-
-                      <span class="editsty copylink"
-                          v-if="row.EmailState===1&&row.EmailAuth&&permissionBtn.checkPermissionBtn(permissionBtn.enReportManageBtn.enReport_sendEmail)"
-                          @click="reportHandle(row,'view-log')" style="position: relative;">
-                          群发日志
-                          <span class="warn-tag" v-if="row.EmailHasFail"></span>
-                      </span>
-                  </template> -->
-              </span>
+                 </span>
 
 							<span v-else>{{ row[item.key] || '' }}</span>
 						</template>
 				</el-table-column>
 				<div slot="empty" style="padding: 100px 0">
-           <tableNoData text="暂无数据" size="mini"/>
+           <tableNoData :text="$t('Table.prompt_slogan')" size="mini"/>
 				</div>
 			</el-table>
 
@@ -292,11 +266,11 @@
       :append-to-body="true" 
       :visible.sync="popData.show" 
       width="900px" 
-      title="群发邮件"
+      :title="$t('ReportManage.smart_btn.send_email')"
     >
       <div class="send-email-wrap">
         <el-form ref="form" :model="popData" label-width="100px">
-          <el-form-item label="邮件主题:">
+          <el-form-item :label="$t('ReportManage.ReportList.email_subject_btn')">
             <div>
               <el-input 
                 placeholder="请输入邮件主题" 
@@ -308,7 +282,7 @@
               ></el-input>
             </div>
           </el-form-item>
-          <el-form-item label="收件人:">
+          <el-form-item :label="$t('ReportManage.ReportList.Recipient_btn')">
             <div class="addressee-box">
               <div class="addressee-cancel-box">
                 <el-cascader
@@ -323,16 +297,16 @@
                     label:'EnPermissionName',
                     children:'Child'
                   }"
-                  placeholder="请选择品种权限"
+                  :placeholder="$t('ReportManage.ReportList.select_variety_permission')"
                   style="margin-bottom: 10px;"
                 />
-                <div class="user-box-hint">取消发送客户信息:</div>
+                <div class="user-box-hint">{{$t('ReportManage.ReportList.sending_customer_information')}}</div>
                 <el-select
                   v-model="popData.customValue"
                   multiple
                   filterable
                   collapse-tags
-                  placeholder="请选择客户"
+                  :placeholder="$t('ReportManage.ReportList.select_customer')"
                   value-key="CompanyId">
                   <el-option
                     v-for="item in popData.customOptions"
@@ -363,15 +337,15 @@
                 </div>
               </div>
               <div class="addressee-append-box">
-                <el-checkbox v-model="popData.checkUser" style="margin:0 0 10px 20px;width: 100px;">指定人员</el-checkbox>
-                <div class="user-box-hint" v-show="popData.checkUser">指定发送人员信息:</div>
+                <el-checkbox v-model="popData.checkUser" style="margin:0 0 10px 20px;width: 100px;">{{$t('ReportManage.ReportList.designated_personnel')}}</el-checkbox>
+                <div class="user-box-hint" v-show="popData.checkUser">{{$t('ReportManage.ReportList.designated_sender_information')}}</div>
                 <el-select
                   v-show="popData.checkUser"
                   v-model="popData.value"
                   multiple
                   filterable
                   collapse-tags
-                  placeholder="请选择人员"
+                  :placeholder="$t('ReportManage.ReportList.please_select_personnel')"
                   value-key="Id">
                   <el-option
                     v-for="item in popData.options"
@@ -404,8 +378,8 @@
           </div>
           </el-form-item>
           <div style="text-align:center;margin-bottom:30px;margin-top:40px">
-            <el-button type="primary" plain style="margin-right:10px" @click="popData.show=false">取消</el-button>
-            <el-button type="primary" @click="handleConfirmSendEmail">确定</el-button>
+            <el-button type="primary" plain style="margin-right:10px" @click="popData.show=false">{{$t('Dialog.cancel_btn')}}</el-button>
+            <el-button type="primary" @click="handleConfirmSendEmail">{{$t('Dialog.confirm_btn')}}</el-button>
           </div>
         </el-form>
       </div>
@@ -417,14 +391,14 @@
       :append-to-body="true" 
       :visible.sync="PVData.show" 
       width="900px" 
-      title="点击量详情"
+      :title="$t('ReportManage.ReportList.click_through_details')"
     >
       <div class="pv-static-wrap" style="padding-bottom:70px">
         <el-table :data="PVData.list" border height="600">
-          <el-table-column align="center" prop="Name" label="客户名称"></el-table-column>
-          <el-table-column align="center" prop="Email" label="邮箱地址"></el-table-column>
-          <el-table-column align="center" prop="RecentClickTime" label="最近点击时间"></el-table-column>
-          <el-table-column align="center" prop="ClickNum" label="点击量"></el-table-column>   
+          <el-table-column align="center" prop="Name" :label="$t('ReportManage.ReportList.click_through_details')"></el-table-column>
+          <el-table-column align="center" prop="Email" :label="$t('ReportManage.ReportList.email_address')"></el-table-column>
+          <el-table-column align="center" prop="RecentClickTime" :label="$t('ReportManage.ReportList.Last_click_time')"></el-table-column>
+          <el-table-column align="center" prop="ClickNum" :label="$t('ReportManage.ReportList.hits_btn')"></el-table-column>   
         </el-table>
         <el-pagination 
           layout="total,prev,pager,next,jumper" 

+ 2 - 2
src/views/report_manage/reportVariety.vue

@@ -12,7 +12,7 @@
                 style="border:1px solid #eaeaea;" 
                 :data="tableData" 
                 v-loading="listLoading"
-                element-loading-text="数据加载中..."
+                :element-loading-text="$t('Table.data_loading')" 
                 row-key="EnPermissionId" 
                 :tree-props="{children:'Child',hasChildren:'hasChildren'}"
             >
@@ -48,7 +48,7 @@
             width="600px"
         >
             <div class="edit-variety-wrap" style="padding-bottom:30px">
-                <el-form>
+                <el-form label-width="113px">
                     <el-form-item :label="ChineseEcnglish.product_type">
                         <el-input :placeholder="ChineseEcnglish.add_product_input" v-model="editBreedData.name" style="width:400px"></el-input>
                     </el-form-item>

+ 88 - 88
src/views/report_manage/reportlist.vue

@@ -9,14 +9,14 @@
               type="primary"
               size="medium"
               @click="$router.push({ path: '/addreportNew' })"
-              >添加研报</el-button
+              >{{$t('ReportManage.smart_add_report')}}</el-button
             >
             <el-button
               v-permission="permissionBtn.reportManageBtn.reportManage_dayWeekReportAdd"
               type="primary"
               size="medium"
               @click="$router.push({ path: '/dayorweek' })"
-              >添加晨报/周报</el-button
+              >{{$t('ReportManage.ReportList.add_morning_weekly_btn')}}</el-button
             >
             <template v-if="Role === 'rai_researcher'">
               <el-button
@@ -24,10 +24,10 @@
                 size="medium"
                 @click="downLoadReport"
                 v-if="!batches.length"
-                >下载阅读数据</el-button
+                >{{$t('ReportManage.ReportList.download_data_btn')}}</el-button
               >
               <a style="margin-left: 10px" :href="exportUrlDl" v-else download>
-                <el-button type="primary" size="medium">下载阅读数据</el-button>
+                <el-button type="primary" size="medium">{{$t('ReportManage.ReportList.download_data_btn')}}</el-button>
               </a>
             </template>
           </el-form-item>
@@ -40,38 +40,38 @@
                 popper-class="report-select-popover"
                 width="320" style="display: inline-block;">
                 <div class="select-wrap">
-                    <p>筛选项</p>
+                    <p>{{$t('ReportManage.smart_filter_options')}}</p>
                     <div class="select-item">
                         <el-select
                             v-model="searchform.timeType"
-                            placeholder="选择时间类型"
+                            :placeholder="$t('ReportManage.smart_select_time_type_btn')"
                             size="medium"
                             style="width:100%;"
                             @change="search"
                         >
-                            <el-option label="发布时间" value="publish_time"></el-option>
-                            <el-option label="审批时间" value="approve_time"></el-option>
-                            <el-option label="更新时间" value="modify_time"></el-option>
+                            <el-option :label="$t('ReportManage.smart_publish_time')" value="publish_time"></el-option>
+                            <el-option :label="$t('ReportManage.smart_approval_time')" value="approve_time"></el-option>
+                            <el-option :label="$t('ReportManage.smart_update_time')" value="modify_time"></el-option>
                         </el-select>
                     </div>
                     <div class="select-item">
                         <el-select
                             @change="search"
                             v-model="searchform.frequency"
-                            placeholder="更新频度筛选"
+                            :placeholder="$t('ReportManage.smart_update_frequency_filter')"
                             size="medium"
                             clearable
                             style="width:100%;"
                         >
-                            <el-option label="年度" value="年度"></el-option>
-                            <el-option label="半年度" value="半年度"></el-option>
-                            <el-option label="季度" value="季度"></el-option>
-                            <el-option label="月度" value="月度"></el-option>
-                            <el-option label="双周度" value="双周度"></el-option>
-                            <el-option label="周度" value="周度"></el-option>
-                            <el-option label="日度" value="日度"></el-option>
-                            <el-option label="不定时" value="不定时"></el-option>
-                        </el-select>
+                            <el-option :label="$t('ReportManage.smart_annually')" :value="$t('ReportManage.smart_annually')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_semi_annually')" :value="$t('ReportManage.smart_semi_annually')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_quarterly')" :value="$t('ReportManage.smart_quarterly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_monthly')" :value="$t('ReportManage.smart_monthly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_bi_weekly')" :value="$t('ReportManage.smart_bi_weekly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_weekly')" :value="$t('ReportManage.smart_weekly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_daily')" :value="$t('ReportManage.smart_daily')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_irregularly')" :value="$t('ReportManage.smart_irregularly')"></el-option>
+                            </el-select>
                     </div>
                     <div class="select-item">
                         <el-cascader
@@ -79,45 +79,45 @@
                             :options="optionsArr"
                             v-model="searchform.classifynameArr"
                             clearable
-                            placeholder="类型筛选"
+                            :placeholder="$t('ReportManage.smart_type_filtering')"
                             style="width:100%;"
                         ></el-cascader>
                     </div>
                     <div class="select-item">
                         <el-select
                             v-model.number="searchform.publishState"
-                            placeholder="状态筛选"
+                            :placeholder="$t('ReportManage.smart_status_filtering')"
                             size="medium"
                             clearable
                             style="width:100%;"
                             @change="search"
                         >
-                            <el-option label="未发布" :value="1" v-if="!isOtherApprove"></el-option>
-                            <el-option label="已发布" :value="2"></el-option>
-                            <el-option label="待提交" :value="3" v-if="isApprove"></el-option>
-                            <el-option label="待审批" :value="4" v-if="isApprove"></el-option>
-                            <el-option label="已驳回" :value="5"></el-option>
-                            <el-option label="已通过" :value="6"></el-option>
-                        </el-select>
+                          <el-option :label="$t('ReportManage.smart_unpublished')" :value="1" v-if="!isOtherApprove"></el-option>
+                            <el-option :label="$t('ReportManage.smart_published')" :value="2"></el-option>
+                            <el-option :label="$t('ReportManage.smart_pending')" :value="3" v-if="isApprove"></el-option>
+                            <el-option :label="$t('ReportManage.smart_awaiting_approval')" :value="4" v-if="isApprove"></el-option>
+                            <el-option :label="$t('ReportManage.smart_rejected')" :value="5"></el-option>
+                            <el-option :label="$t('ReportManage.smart_approved')" :value="6"></el-option>
+                          </el-select>
                     </div>
                     <div class="select-item">
                         <el-select
                             v-permission="permissionBtn.reportManageBtn.reportManage_reportList_sendTime"
                             @change="search"
                             v-model.number="searchform.msgIsSend"
-                            placeholder="推送消息状态"
+                            :placeholder="$t('ReportManage.smart_notification_status_btn')"
                             size="medium"
                             clearable
                             style="width:100%;"
                         >
-                            <el-option label="未推送消息" :value="1"></el-option>
-                            <el-option label="已推送消息" :value="2"></el-option>
+                            <el-option :label="$t('ReportManage.smart_notification_yet_pushed')" :value="1"></el-option>
+                            <el-option :label="$t('ReportManage.smart_notification_pushed')" :value="2"></el-option>
                         </el-select>
                     </div>
                 </div>
                 <div class="select-btn" slot="reference">
                     <img src="~@/assets/icons/filter.svg">
-                    <span>筛选条件</span>
+                    <span>{{$t('ReportManage.smart_filtering_criteria_btn')}}</span>
                     <span class="select-num">+{{selectNum}}</span>
                 </div>
             </el-popover>
@@ -139,7 +139,7 @@
           <el-form-item style="flex:1;text-align: right;">
             <el-input
               @input="search"
-              placeholder="标题 / 创建人"
+              :placeholder="$t('ReportManage.smart_title_creator_btn')"
               v-model="searchform.key_word"
               clearable
               size="medium"
@@ -150,20 +150,20 @@
         </el-form>
       </div>
       <template>
-        <!-- <el-table :data="tableData" v-loading="listLoading" @sort-change='sortChange' @selection-change="selectchange" :default-sort="{prop:'publish_time',order:'descending'}" element-loading-text="数据加载中..." border style="width:100%;"> -->
+        <!-- <el-table :data="tableData" v-loading="listLoading" @sort-change='sortChange' @selection-change="selectchange" :default-sort="{prop:'publish_time',order:'descending'}" :element-loading-text="$t('Table.data_loading')"  border style="width:100%;"> -->
         <el-table
           ref="table"
           :key="tableKey"
           :data="tableData"
           v-loading="listLoading"
           @sort-change="sortChange"
-          element-loading-text="数据加载中..."
+          :element-loading-text="$t('Table.data_loading')" 
           border
           style="width: 100%"
         >
           <el-table-column
             prop="Title"
-            label="报告标题"
+           :label="$t('ReportManage.smart_report_title')"
             align="center"
             min-width="140"
             fixed="left"
@@ -198,12 +198,12 @@
           </el-table-column>
           <el-table-column
             prop="Abstract"
-            label="摘要"
+            :label="$t('ReportManage.smart_abstract_table')"
             align="center"
             min-width="140"
             fixed="left"
           ></el-table-column>
-          <el-table-column label="报告类型" align="center" min-width="140">
+          <el-table-column :label="$t('ReportManage.smart_report_type')" align="center" min-width="140">
             <template slot-scope="scope"
               >{{ scope.row.ClassifyNameFirst }}
               <span v-if="scope.row.ClassifyNameSecond"
@@ -213,18 +213,18 @@
           </el-table-column>
           <el-table-column
             prop="AdminRealName"
-            label="创建人"
+            :label="$t('ReportManage.smart_creator_btn')"
             align="center"
             min-width="100"
           ></el-table-column>
-          <el-table-column label="状态" align="center" v-if="isApprove">
+          <el-table-column :label="$t('ReportManage.smart_status_table')" align="center" v-if="isApprove">
             <template slot-scope="scope">
-                <span v-if="scope.row.State == '1'">未发布</span>
-                <span v-if="scope.row.State == '2'">已发布</span>
-                <span v-if="scope.row.State == '3'">待提交</span>
-                <span v-if="scope.row.State == '4'">待审批</span>
-                <span v-if="scope.row.State == '5'">已驳回</span>
-                <span v-if="scope.row.State == '6'">已通过</span>
+                <span v-if="scope.row.State == '1'">{{$t('ReportManage.smart_unpublished')}}</span>
+                <span v-if="scope.row.State == '2'">{{$t('ReportManage.smart_published')}}</span>
+                <span v-if="scope.row.State == '3'">{{$t('ReportManage.smart_pending')}}</span>
+                <span v-if="scope.row.State == '4'">{{$t('ReportManage.smart_awaiting_approval')}}</span>
+                <span v-if="scope.row.State == '5'">{{$t('ReportManage.smart_rejected')}}</span>
+                <span v-if="scope.row.State == '6'">{{$t('ReportManage.smart_approved')}}</span>
             </template>
           </el-table-column>
 
@@ -255,7 +255,7 @@
                 <span>{{scope.row.ApproveTime|formatTime}}</span>
             </template>
           </el-table-column> -->
-          <el-table-column prop="PublishTime" label="发布/审批时间" min-width="124" align="center">
+          <el-table-column prop="PublishTime" :label="$t('ReportManage.smart_release_approval_time')" min-width="124" align="center">
             <template slot-scope="scope">
                 <template v-if="[1,2].includes(scope.row.State)">
                     <span>{{scope.row.PrePublishTime?scope.row.PrePublishTime:scope.row.PublishTime|formatTime}}</span>
@@ -271,7 +271,7 @@
 
           <el-table-column v-if="permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_reportList_sendTime)"
             prop="MsgSendTime"
-            label="报告推送时间"
+            :label="$t('ReportManage.smart_report_push_time_btn')"
             min-width="124"
             align="center"
           >
@@ -281,15 +281,15 @@
           </el-table-column>
           <el-table-column
             prop="ModifyTime"
-            label="更新时间"
+            :label="$t('ReportManage.smart_update_time')"
             min-width="124"
             align="center"
             :formatter="formatterColumn"
           ></el-table-column>
-          <el-table-column label="期数" align="center">
+          <el-table-column :label="$t('ReportManage.smart_issue_number_btn')" align="center">
             <template slot-scope="scope">第{{ scope.row.Stage }}期</template>
           </el-table-column>
-          <el-table-column label="频度" align="center">
+          <el-table-column :label="$t('ReportManage.smart_frequency_btn')" align="center">
             <template slot-scope="scope">{{ scope.row.Frequency }}</template>
           </el-table-column>
           <!-- <el-table-column label="音频" align="center">
@@ -308,7 +308,7 @@
               >{{ hasUV? scope.row.Pv+'/'+scope.row.Uv:scope.row.Pv }}</template
             >
           </el-table-column>
-          <el-table-column label="操作" align="center" min-width="130" fixed="right">
+          <el-table-column :label="$t('Table.column_operations')" align="center" min-width="130" fixed="right">
             <template slot-scope="scope">
               <div class="opt-btns">
                 <!-- 操作:未发布——发布、编辑、删除
@@ -323,50 +323,50 @@
                     <span class="editsty" @click="publishreport(scope.row)"
                         v-if="scope.row.CanEdit&&scope.row.State===1
                             &&permissionBtn.isShowBtn('reportManageBtn','reportManage_publish')"
-                    >发布</span>
+                    >{{$t('ReportManage.smart_btn.publish')}}</span>
                     <span class="editsty" @click="handleSubmitReport(scope.row)"
                         v-if="scope.row.CanEdit&&scope.row.State===3
                             &&permissionBtn.isShowBtn('reportManageBtn','reportManage_publish')"
-                    >提交</span>
+                    >{{$t('ReportManage.smart_btn.submission')}}</span>
                     <span v-permission="permissionBtn.reportManageBtn.reportManage_reportEdit" class="editsty"
-                        @click="editreport(scope.row, 'edit')" v-if="scope.row.CanEdit">编辑</span>
+                        @click="editreport(scope.row, 'edit')" v-if="scope.row.CanEdit">{{$t('Table.edit_btn')}}</span>
                     <span v-permission="permissionBtn.reportManageBtn.reportManage_reportEdit" class="editsty"
-                        @click="editreport(scope.row, 'editing')" v-else>{{ scope.row.Editor || "" }}编辑中...</span>
+                        @click="editreport(scope.row, 'editing')" v-else>{{ scope.row.Editor || "" }}{{$t('ReportManage.smart_btn.editing')}}</span>
                     <span v-permission="permissionBtn.reportManageBtn.reportManage_reportDel" class="deletesty"
-                        @click="deleteitem(scope.row)" v-if="scope.row.CanEdit">删除</span>
+                        @click="deleteitem(scope.row)" v-if="scope.row.CanEdit">{{$t('Table.delete_btn')}}</span>
                 </template>
                 <!-- 已发布,已通过 -->
                 <template v-if="[2,6].includes(scope.row.State)">
                     <span v-if="scope.row.State===2&&permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_cancelPublish)"
-                        @click="canclepublish(scope.row)" style="color: red; cursor: pointer">撤销</span><!-- 取消发布 -->
+                        @click="canclepublish(scope.row)" style="color: red; cursor: pointer">{{$t('ReportManage.smart_btn.withdraw')}}</span><!-- 取消发布 -->
                     <span v-if="scope.row.State===6&&permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_cancelPublish)"
-                        @click="cancelReport(scope.row)" style="color: red; cursor: pointer">撤销</span>
+                        @click="cancelReport(scope.row)" style="color: red; cursor: pointer">{{$t('ReportManage.smart_btn.withdraw')}}</span>
                     <span
                         v-if="scope.row.MsgIsSend == 0 && permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_sendMsg)"
-                        style="color: #4099ef; cursor: pointer" @click="messageSend(scope.row)">推送消息</span>
+                        style="color: #4099ef; cursor: pointer" @click="messageSend(scope.row)">{{$t('ReportManage.smart_push_notification_btn')}}</span>
                     <span
                         v-else-if="scope.row.MsgIsSend != 0&&permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_sendMsg)"
-                        style="color: red">已推送消息</span>
+                        style="color: red">{{$t('ReportManage.smart_notification_pushed')}}</span>
                 </template>
                 <!-- 待审批,已驳回 -->
                 <template v-if="[4,5].includes(scope.row.State)">
                     <span v-if="permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_cancelPublish)"
-                        @click="cancelReport(scope.row)" style="color: red; cursor: pointer">撤销</span>
+                        @click="cancelReport(scope.row)" style="color: red; cursor: pointer">{{$t('ReportManage.smart_btn.withdraw')}}</span>
                 </template>
                 <!-- 音频上传和下载,跟State无关 -->
                 <span style="color: #46c371; cursor: pointer"
-                    v-if="!['晨报', '周报'].includes(scope.row.ClassifyNameFirst)&&permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_audioUpload)"
-                    @click="openupload(scope.row.Id)">音频上传</span>
+                    v-if="![$t('ReportManage.smart_btn.morning_paper'), $t('ReportManage.smart_btn.weekly')].includes(scope.row.ClassifyNameFirst)&&permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_audioUpload)"
+                    @click="openupload(scope.row.Id)">{{$t('ReportManage.smart_audio_upload_btn')}}</span>
                 <a v-permission="permissionBtn.reportManageBtn.reportManage_audioDownload"
                     :href="hostapi + '?ReportId=' + parseInt(scope.row.Id)" v-if="
                     scope.row.VideoUrl &&
-                    !['晨报', '周报'].includes(scope.row.ClassifyNameFirst)
-                " :download="scope.row.VideoName" style="cursor: pointer; color: #4099ef">音频下载</a>
+                    ![$t('ReportManage.smart_btn.morning_paper'), $t('ReportManage.smart_btn.weekly')].includes(scope.row.ClassifyNameFirst)
+                " :download="scope.row.VideoName" style="cursor: pointer; color: #4099ef">{{$t('ReportManage.smart_audio_download_btn')}}</a>
                 <span v-permission="permissionBtn.reportManageBtn.reportManage_audioDownload"
                     style="cursor: pointer; color: #4099ef" v-if="
-                    ['晨报', '周报'].includes(scope.row.ClassifyNameFirst) &&
+                    [$t('ReportManage.smart_btn.morning_paper'), $t('ReportManage.smart_btn.weekly')].includes(scope.row.ClassifyNameFirst) &&
                     scope.row.ChapterVideoList.length > 0
-                " @click="handleShowDownloadAudio(scope.row)">音频下载</span>
+                " @click="handleShowDownloadAudio(scope.row)">{{$t('ReportManage.smart_audio_download_btn')}}</span>
               </div>
             </template>
           </el-table-column>
@@ -387,7 +387,7 @@
     </el-card>
     <!-- 添加账号弹框 -->
     <el-dialog
-      title="提 示"
+      :title="$t('Confirm.prompt')"
       :modal-append-to-body="false"
       :visible.sync="remarkDialog"
       :close-on-click-modal="false"
@@ -401,32 +401,32 @@
           :src="$icons.warn"
           style="color: #fff; width: 16px; height: 16px; margin-right: 5px"
         />
-        <span style="font-size: 16px">提 示</span>
+        <span style="font-size: 16px">{{$t('Confirm.prompt')}}</span>
       </div>
       <div>
         <el-input
           type="textarea"
           v-model="remarkForm.Remark"
           rows="4"
-          placeholder="请输入备注内容"
+          :placeholder="$t('ReportManage.smart_please_content_ipt')"
         ></el-input>
       </div>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" size="medium" @click.native="setremarkcontent"
-          >确 定</el-button
+          >{{$t('Dialog.confirm_btn')}}</el-button
         >
         <el-button
           type="primary"
           plain
           size="medium"
           @click.native="remarkDialog = false"
-          >取 消</el-button
+          >{{$t('Dialog.cancel_btn')}}</el-button
         >
       </div>
     </el-dialog>
     <!-- 上传音频弹框 -->
     <el-dialog
-      title="上传音频"
+      :title="$t('ReportManage.smart_audio_upload_btn')"
       :visible.sync="uploadDialog"
       :modal-append-to-body="false"
       :close-on-click-modal="false"
@@ -440,7 +440,7 @@
           :src="$icons.up"
           style="color: #fff; width: 16px; height: 16px; margin-right: 5px"
         />
-        <span style="font-size: 16px">上传音频</span>
+        <span style="font-size: 16px">{{$t('ReportManage.smart_audio_upload_btn')}}</span>
       </div>
       <el-form
         :model="uploadForm"
@@ -462,12 +462,12 @@
             type="text"
             v-model="uploadForm.audioname"
             readonly
-            placeholder="上传报告录音"
+            :placeholder="$t('ReportManage.smart_upload_recording_btn')"
             size="medium"
             style="width: 350px"
           ></el-input>
           <el-button type="primary" size="medium" @click.native="clickinput"
-            >选择文件</el-button
+            >{{$t('ReportManage.smart_select_file')}}</el-button
           >
         </el-form-item>
       </el-form>
@@ -477,21 +477,21 @@
           plain
           size="medium"
           @click.native="uploadDialog = false"
-          >取 消</el-button
+          >{{$t('Dialog.cancel_btn')}}</el-button
         >
         <el-button
           type="primary"
           size="medium"
           :loading="uploadloading"
           @click.native="uploadaudio"
-          >{{ uploadloading ? "上传中" : "上 传" }}</el-button
+          >{{ uploadloading ? $t('ReportManage.smart_btn.uploading') : $t('ReportManage.smart_btn.upload') }}</el-button
         >
       </div>
     </el-dialog>
 
     <!-- 音频下载弹窗(晨报周报多个音频情况) -->
     <el-dialog
-      title="音频下载"
+      :title="$t('ReportManage.smart_audio_download_btn')"
       :visible.sync="downloadAudio.show"
       :modal-append-to-body="false"
       :close-on-click-modal="false"
@@ -517,7 +517,7 @@
             v-model="checkAllAudio"
             style="margin-bottom: 10px"
             @change="handleDownloadAudioCheckAll"
-            >全选</el-checkbox
+            >{{$t('ReportManage.smart_btn.select_all')}}</el-checkbox
           >
           <el-checkbox-group v-model="downloadAudio.select">
             <el-checkbox
@@ -531,10 +531,10 @@
         </div>
         <div style="text-align: center; margin: 30px 0">
           <el-button type="primary" plain @click="downloadAudio.show = false"
-            >取消</el-button
+            >{{$t('Dialog.confirm_btn')}}</el-button
           >
           <el-button type="primary" @click="handelConfirmDownloadAudio"
-            >确定</el-button
+            >{{$t('Dialog.confirm_btn')}}</el-button
           >
         </div>
       </div>
@@ -542,7 +542,7 @@
 
     <!-- 批量发布弹窗 -->
     <el-dialog
-      title="发布提示"
+      :title="$t('ReportManage.smart_release_prompt_btn')"
       :visible.sync="showPublish"
       :modal-append-to-body="false"
       :close-on-click-modal="false"
@@ -558,7 +558,7 @@
             class="el-icon-warning"
             style="font-size: 24px; color: #e6a23c; vertical-align: middle"
           ></i>
-          {{isDSFB?'该报告已设置定时发布,是否立即发布报告并推送模板消息?':'是否立即发布报告,并推送模板消息?'}}
+          {{isDSFB?$t('ReportManage.smart_template_msg'):$t('ReportManage.smart_push_template_btn')}}
         </div>
         <div style="margin-bottom: 20px; text-align: center">
           <el-button
@@ -566,20 +566,20 @@
             plain
             style="width: 100px"
             @click="handleClosePublish"
-            >取消</el-button
+            >{{$t('ReportManage.cancel_btn')}}</el-button
           >
           <el-button
             type="primary"
             style="width: 100px; margin: 0 20px"
             @click="handlePublic(1)"
-            >仅发布</el-button
+            >{{$t('ReportManage.smart_btn.only_publish')}}</el-button
           >
           <el-button
             type="primary"
             style="width: 100px"
             :disabled="!canPushMsg"
             @click="handlePublic(2)"
-            >发布&推送</el-button
+            >{{$t('ReportManage.smart_btn.publish_push')}}</el-button
           >
         </div>
       </div>

+ 35 - 35
src/views/smartReport/reportList.vue

@@ -24,7 +24,7 @@
                             <div class="select-item">
                                 <el-select
                                     v-model="searchform.timeType"
-                                    placeholder="选择时间类型"
+                                    :placeholder="$t('ReportManage.smart_select_time_type_btn')"
                                     size="medium"
                                     style="width:100%"
                                     @change="search"
@@ -38,7 +38,7 @@
                                 <el-select
                                     @change="search"
                                     v-model="searchform.frequency"
-                                    :placeholder=" $t('ReportManage.smart_update_frequency_filter')"
+                                    :placeholder="$t('ReportManage.smart_update_frequency_filter')"
                                     size="medium"
                                     clearable
                                     style="width:100%"
@@ -122,7 +122,7 @@
                     :data="tableData"
                     v-loading="listLoading"
                     @sort-change="sortChange"
-                    element-loading-text="数据加载中..."
+                    :element-loading-text="$t('Table.data_loading')" 
                     border
                     style="width: 100%"
                 >
@@ -158,12 +158,12 @@
                 </el-table-column>
                 <el-table-column
                     prop="Abstract"
-                    label="摘要"
+                    :label="$t('ReportManage.smart_abstract_table')"
                     align="center"
                     min-width="140"
                     fixed
                 ></el-table-column>
-                <el-table-column label="报告类型" align="center" min-width="140">
+                <el-table-column :label="$t('ReportManage.smart_report_type')" align="center" min-width="140">
                     <template slot-scope="scope"
                     >{{ scope.row.ClassifyNameFirst }}
                     <span v-if="scope.row.ClassifyNameSecond"
@@ -173,7 +173,7 @@
                 </el-table-column>
                 <el-table-column
                     prop="AdminRealName"
-                    label="创建人"
+                    :label="$t('ReportManage.smart_creator_btn')"
                     align="center"
                     min-width="100"
                 ></el-table-column>
@@ -183,14 +183,14 @@
                     align="center"
                     min-width="100"
                 ></el-table-column>
-                <el-table-column label="状态" align="center">
+                <el-table-column :label="$t('ReportManage.smart_status_table')" align="center">
                     <template slot-scope="scope">
-                        <span v-if="scope.row.State == '1'">未发布</span>
-                        <span v-if="scope.row.State == '2'">已发布</span>
-                        <span v-if="scope.row.State == '3'">待提交</span>
-                        <span v-if="scope.row.State == '4'">待审批</span>
-                        <span v-if="scope.row.State == '5'">已驳回</span>
-                        <span v-if="scope.row.State == '6'">已通过</span>
+                        <span v-if="scope.row.State == '1'">{{$t('ReportManage.smart_unpublished')}}</span>
+                        <span v-if="scope.row.State == '2'">{{$t('ReportManage.smart_published')}}</span>
+                        <span v-if="scope.row.State == '3'">{{$t('ReportManage.smart_pending')}}</span>
+                        <span v-if="scope.row.State == '4'">{{$t('ReportManage.smart_awaiting_approval')}}</span>
+                        <span v-if="scope.row.State == '5'">{{$t('ReportManage.smart_rejected')}}</span>
+                        <span v-if="scope.row.State == '6'">{{$t('ReportManage.smart_approved')}}</span>
                     </template>
                 </el-table-column>
                 <!-- <el-table-column v-if="!isApprove"
@@ -219,7 +219,7 @@
                         <span>{{scope.row.ApproveTime|formatTime}}</span>
                     </template>
                 </el-table-column> -->
-                <el-table-column prop="PublishTime" label="发布/审批时间" min-width="124" align="center">
+                <el-table-column prop="PublishTime" :label="$t('ReportManage.smart_release_approval_time')" min-width="124" align="center">
                 <template slot-scope="scope">
                     <template v-if="[1,2].includes(scope.row.State)">
                         <span>{{scope.row.PrePublishTime?scope.row.PrePublishTime:scope.row.PublishTime|formatTime}}</span>
@@ -234,15 +234,15 @@
             </el-table-column>
                 <el-table-column
                     prop="ContentModifyTime"
-                    label="更新时间"
+                    :label="$t('ReportManage.smart_update_time')"
                     min-width="124"
                     align="center"
                     :formatter="formatterColumn"
                 ></el-table-column>
-                <el-table-column label="期数" align="center">
+                <el-table-column :label="$t('ReportManage.smart_issue_number_btn')" align="center">
                     <template slot-scope="scope">第{{ scope.row.Stage }}期</template>
                 </el-table-column>
-                <el-table-column label="频度" align="center">
+                <el-table-column :label="$t('ReportManage.smart_frequency_btn')" align="center">
                     <template slot-scope="scope">{{ scope.row.Frequency }}</template>
                 </el-table-column>
                 <el-table-column
@@ -255,7 +255,7 @@
                     >{{ hasUV? scope.row.Pv+'/'+scope.row.Uv:scope.row.Pv }}</template
                     >
                 </el-table-column>
-                <el-table-column label="操作" align="center" min-width="130" fixed="right">
+                <el-table-column :label="$t('Table.column_operations')" align="center" min-width="130" fixed="right">
                     <template slot-scope="scope">
                     <div class="opt-btns">
                         <!-- 操作:
@@ -269,47 +269,47 @@
                         <template v-if="[1,3].includes(scope.row.State)">
                             <span v-permission="permissionBtn.smartReportManageBtn.reportManage_publish"
                                 class="editsty" @click="handlePublishReportOpt(scope.row)"
-                                v-if="scope.row.CanEdit&&scope.row.State===1">发布</span>
+                                v-if="scope.row.CanEdit&&scope.row.State===1">{{$t('ReportManage.smart_btn.publish')}}</span>
                             <span v-permission="permissionBtn.smartReportManageBtn.reportManage_publish"
                                 class="editsty" @click="handleSubmitReport(scope.row)"
-                                v-if="scope.row.CanEdit&&scope.row.State===3">提交</span>
+                                v-if="scope.row.CanEdit&&scope.row.State===3">{{$t('ReportManage.smart_btn.Submission')}}</span>
                             <span v-permission="permissionBtn.smartReportManageBtn.reportManage_reportEdit"
                                 class="editsty" @click="editreport(scope.row, 'edit')"
-                                v-if="scope.row.CanEdit">编辑</span>
+                                v-if="scope.row.CanEdit">{{$t('Table.edit_btn')}}</span>
                             <span v-permission="permissionBtn.smartReportManageBtn.reportManage_reportEdit"
                                 class="editsty" @click="editreport(scope.row, 'editing')"
-                                v-else>{{ scope.row.Editor || "" }}编辑中...</span>
+                                v-else>{{ scope.row.Editor || "" }}{{$t('ReportManage.smart_btn.editing')}}</span>
                             <span v-permission="permissionBtn.smartReportManageBtn.reportManage_reportDel"
                                 class="deletesty" @click="handleDelReport(scope.row)"
-                                v-if="scope.row.CanEdit">删除</span>
+                                v-if="scope.row.CanEdit">{{$t('Table.delete_btn')}}</span>
                         </template>
                         <!-- 已发布,已通过 -->
                         <template v-if="[2,6].includes(scope.row.State)">
                             <span v-if="permissionBtn.isShowBtn('smartReportManageBtn','reportManage_cancelPublish')&&scope.row.State===2"
                                 @click="handleReportPublishCancel(scope.row)"
-                                style="color: red; cursor: pointer">撤销</span><!-- 取消发布 -->
+                                style="color: red; cursor: pointer">{{$t('ReportManage.smart_btn.withdraw')}}</span><!-- 取消发布 -->
                             <span v-if="permissionBtn.isShowBtn('smartReportManageBtn','reportManage_cancelPublish')&&scope.row.State===6"
                                 @click="cancelReport(scope.row)"
-                                style="color: red; cursor: pointer">撤销</span>
+                                style="color: red; cursor: pointer">{{$t('ReportManage.smart_btn.withdraw')}}</span>
                             <span v-if="scope.row.DetailImgUrl"
                                 v-permission="permissionBtn.smartReportManageBtn.reportManage_exportImg"
                                 @click="handleDownReportImg(scope.row.DetailImgUrl,scope.row.Title)"
-                                style="cursor: pointer; color: #4099ef;display:inline-block">图片下载</span>
+                                style="cursor: pointer; color: #4099ef;display:inline-block">{{$t('ReportManage.smart_btn.image_download')}}</span>
                         </template>
                         <!-- 待审批,已驳回 -->
                         <template v-if="[4,5].includes(scope.row.State)">
                             <span v-if="permissionBtn.isShowBtn('smartReportManageBtn','reportManage_cancelPublish')"
                                 @click="cancelReport(scope.row)"
-                                style="color: red; cursor: pointer">撤销</span>
+                                style="color: red; cursor: pointer">{{$t('ReportManage.smart_btn.withdraw')}}</span>
                         </template>
                         <!-- 音频上传、下载,与状态无关 -->
                         <span style="color: #46c371; cursor: pointer;display:inline-block"
                             v-if="permissionBtn.checkPermissionBtn(permissionBtn.smartReportManageBtn.reportManage_audioUpload)"
-                            @click="openupload(scope.row.SmartReportId)">音频上传</span>
+                            @click="openupload(scope.row.SmartReportId)">{{$t('ReportManage.smart_audio_upload_btn')}}</span>
                         <span style="cursor: pointer; color: #4099ef;display:inline-block"
                             v-permission="permissionBtn.smartReportManageBtn.reportManage_audioDownload"
                             v-if="scope.row.VideoUrl" @click="handleDownloadVoice(scope.row)">
-                            音频下载
+                            {{$t('ReportManage.smart_audio_download_btn')}}
                         </span>
                     </div>
                     </template>
@@ -331,7 +331,7 @@
         </el-card>
         <!-- 上传音频弹框 -->
         <el-dialog
-            title="上传音频"
+            :title="$t('ReportManage.smart_audio_upload_btn')"
             :visible.sync="uploadDialog"
             :modal-append-to-body="false"
             :close-on-click-modal="false"
@@ -345,7 +345,7 @@
                 :src="$icons.up"
                 style="color: #fff; width: 16px; height: 16px; margin-right: 5px"
                 />
-                <span style="font-size: 16px">上传音频</span>
+                <span style="font-size: 16px">{{$t('ReportManage.smart_audio_upload_btn')}}</span>
             </div>
             <el-form
                 :model="uploadForm"
@@ -367,12 +367,12 @@
                     type="text"
                     v-model="uploadForm.audioname"
                     readonly
-                    placeholder="上传报告录音"
+                    :placeholder="$t('ReportManage.smart_upload_recording_btn')"
                     size="medium"
                     style="width: 350px"
                 ></el-input>
                 <el-button type="primary" size="medium" @click.native="clickinput"
-                    >选择文件</el-button
+                    >{{$t('ReportManage.smart_select_file')}}</el-button
                 >
                 </el-form-item>
             </el-form>
@@ -382,14 +382,14 @@
                 plain
                 size="medium"
                 @click.native="uploadDialog = false"
-                >取 消</el-button
+                >{{$t('Dialog.cancel_btn')}}</el-button
                 >
                 <el-button
                 type="primary"
                 size="medium"
                 :loading="uploadloading"
                 @click.native="uploadaudio"
-                >{{ uploadloading ? "上传中" : "上 传" }}</el-button
+                >{{ uploadloading ? $t('ReportManage.smart_btn.uploading') : $t('ReportManage.smart_btn.upload') }}</el-button
                 >
             </div>
         </el-dialog>

+ 1 - 1
src/views/system_manage/departManage.vue

@@ -71,7 +71,7 @@
 				:data="tableData"
 				@row-click="getUserDetail"
 				v-loading="isShowloadding"
-				element-loading-text="数据加载中..."
+				:element-loading-text="$t('Table.data_loading')" 
 				highlight-current-row
 				border>
 					<el-table-column

+ 1 - 1
src/views/system_manage/roleManage.vue

@@ -21,7 +21,7 @@
 			ref="roleTable"
 			:data="tableData"
 			v-loading="isShowloadding"
-			element-loading-text="数据加载中..."
+			:element-loading-text="$t('Table.data_loading')" 
 			border>
 				<el-table-column
 				prop="no"