Browse Source

Merge branch 'lang_dev'

Karsa 1 year ago
parent
commit
ae1d3f9c72
60 changed files with 1041 additions and 465 deletions
  1. 17 0
      src/lang/modules/EtaBase/commonLang.js
  2. 3 0
      src/lang/modules/ReportManagement/CategoryList.js
  3. 2 0
      src/lang/modules/ReportManagement/CommodityConfiguration.js
  4. 16 4
      src/lang/modules/ReportManagement/ReportList.js
  5. 2 0
      src/lang/modules/ReportManagement/SmartReport.js
  6. 74 17
      src/lang/modules/Slides/pptList.js
  7. 9 4
      src/lang/modules/Slides/pptPresent.js
  8. 10 0
      src/lang/modules/SupplyAnalysis/IndexEn.js
  9. 9 0
      src/lang/modules/SupplyAnalysis/IndexZh.js
  10. 85 0
      src/lang/modules/SupplyAnalysis/StockPlant.js
  11. 34 0
      src/lang/modules/ToolBox/AIQuestion.js
  12. 61 0
      src/lang/modules/ToolBox/CommodityPriceChart.js
  13. 13 0
      src/lang/modules/ToolBox/IndexEn.js
  14. 13 0
      src/lang/modules/ToolBox/IndexZh.js
  15. 57 0
      src/lang/modules/ToolBox/PositionAnalysis.js
  16. 41 39
      src/views/classify_manage/classifyEnlist.vue
  17. 7 0
      src/views/dataEntry_manage/components/barOptionSection.vue
  18. 11 11
      src/views/futures_manage/chartEditor.vue
  19. 16 16
      src/views/futures_manage/commodityChartBase.vue
  20. 10 10
      src/views/futures_manage/components/plateProfitDia.vue
  21. 6 6
      src/views/operation_manage/AIQA/AIQA.vue
  22. 3 3
      src/views/operation_manage/AIQA/components/newWindowHint.vue
  23. 2 2
      src/views/positionAnalysis_manage/components/chartBox.vue
  24. 60 30
      src/views/positionAnalysis_manage/components/chartDetail.vue
  25. 1 1
      src/views/positionAnalysis_manage/components/indexContent.vue
  26. 4 4
      src/views/positionAnalysis_manage/detail.vue
  27. 1 1
      src/views/ppt_manage/newVersion/components/catalog/chooseShareUserDia.vue
  28. 1 1
      src/views/ppt_manage/newVersion/components/catalog/mergePPTDialog.vue
  29. 2 2
      src/views/ppt_manage/newVersion/components/catalog/pptContent.vue
  30. 2 2
      src/views/ppt_manage/newVersion/components/catalog/pptContentEn.vue
  31. 2 2
      src/views/ppt_manage/newVersion/components/catalog/pptContentOld.vue
  32. 1 1
      src/views/ppt_manage/newVersion/components/catalog/transReport.vue
  33. 1 1
      src/views/ppt_manage/newVersion/components/editor/ChangeFormatDialog.vue
  34. 1 1
      src/views/ppt_manage/newVersion/components/editor/ChooseCoverNew.vue
  35. 1 1
      src/views/ppt_manage/newVersion/components/editor/DeletePageDialog.vue
  36. 2 2
      src/views/ppt_manage/newVersion/components/editor/InsertCharts.vue
  37. 2 2
      src/views/ppt_manage/newVersion/components/editor/InsertPageDialog.vue
  38. 1 1
      src/views/ppt_manage/newVersion/components/editor/InsertSemantics.vue
  39. 12 12
      src/views/ppt_manage/newVersion/pptCatalog.vue
  40. 36 25
      src/views/ppt_manage/newVersion/pptEditor.vue
  41. 13 13
      src/views/ppt_manage/newVersion/pptEnCatalog.vue
  42. 38 28
      src/views/ppt_manage/newVersion/pptEnEditor.vue
  43. 4 4
      src/views/ppt_manage/newVersion/pptEnPresent.vue
  44. 3 3
      src/views/ppt_manage/newVersion/pptEnPublish.vue
  45. 4 4
      src/views/ppt_manage/newVersion/pptPresent.vue
  46. 3 3
      src/views/ppt_manage/newVersion/pptPublish.vue
  47. 7 7
      src/views/report_manage/components/importMyChart.vue
  48. 2 2
      src/views/report_manage/components/importSemantics.vue
  49. 22 22
      src/views/report_manage/components/strategyReportEdit.vue
  50. 23 18
      src/views/report_manage/dayOrWeek.vue
  51. 2 2
      src/views/report_manage/reportAuthor.vue
  52. 53 50
      src/views/report_manage/reportEn/reportlist.vue
  53. 1 1
      src/views/report_manage/reportVariety.vue
  54. 6 6
      src/views/supply_manage/analyseVariety.vue
  55. 39 16
      src/views/supply_manage/components/addOtherPlantDia.vue
  56. 7 9
      src/views/supply_manage/components/createTargetDia.vue
  57. 84 29
      src/views/supply_manage/components/plantTable.vue
  58. 51 17
      src/views/supply_manage/components/targetTable.vue
  59. 11 11
      src/views/supply_manage/components/varietySetDia.vue
  60. 37 19
      src/views/supply_manage/stockPlant.vue

+ 17 - 0
src/lang/modules/EtaBase/commonLang.js

@@ -219,7 +219,24 @@ export default {
     predict_val: {
       zh:'预测值',
       en:'Predictive Value'
+    },
+    add_to_edb:{
+      zh:'添加指标库',
+      en:'Add indicator library'
+    },
+    create_chart_btn:{
+      zh:'一键成图',
+      en:'Graph'
+    },
+    add_indicator_btn:{
+      zh:'添加指标',
+      en:'Add indicator'
+    },
+    select_catalogue:{
+      zh:'所属目录',
+      en:'catalogue'
     }
+
   },
 
   /* 单位 */

+ 3 - 0
src/lang/modules/ReportManagement/CategoryList.js

@@ -11,6 +11,8 @@ export const CategoryListEn = {
   category_name_ipt: "Category Name",
   one_category_table: "First-level category",
   two_category_table: "Second-level category",
+  three_category_table: "Third-level category",
+
   configuration_btn: "Permission configuration",
   settings_chapter_btn: "Chapter Settings",
   please_input: "Please input",
@@ -81,6 +83,7 @@ export const CategoryListZh = {
   category_name_ipt: "分类名称",
   one_category_table: "一级分类",
   two_category_table: "二级分类",
+  three_category_table: "三级分类",
   configuration_btn: "权限配置",
   settings_chapter_btn: "章节设置",
   please_input: "请输入",

+ 2 - 0
src/lang/modules/ReportManagement/CommodityConfiguration.js

@@ -14,6 +14,7 @@ export const CommodityConfigurationEn = {
   column_top: "Top-level product",
   column_second: "Second-level product",
   column_edit_btn: "Edit Category",
+  edit_variety_title: "Edit variety",
   column_delete_btn: "Edit Category",
   delete_info_msg: "Are you sure you want to delete this file?",
   delete_success_msg: "Delete sucessful",
@@ -32,6 +33,7 @@ export const CommodityConfigurationZh = {
   column_top: "一级品种",
   column_second: "二级品种",
   column_edit_btn: "编辑分类",
+  edit_variety_title: "编辑品种",
   column_delete_btn: "删除",
   delete_info_msg: "确认删除吗?",
   delete_success_msg: "删除成功",

+ 16 - 4
src/lang/modules/ReportManagement/ReportList.js

@@ -96,6 +96,14 @@ export const ReportListEn = {
   no_one_charts: "There are no charts for this category",
   no_chart_msg: "Single chart insertion is not supported here",
   import_all_chart_msg: "This operation will batch import all charts under theselected chart category",
+  chapter_list_label: "Chapter List",
+  add_labels_section: "Add labels",
+  recorded_audio: "The recording has been uploaded.",
+  not_recorded_audio: "The recording has not been uploaded.",
+  weChat_share: "WeChat share",
+  set_tags_title: "Set tags",
+  select_ipt_pld: "Enter or select",
+  input_email_subject: "Please input email subject",
 };
 
 /* 中文 */
@@ -192,8 +200,12 @@ export const ReportListZh = {
   no_one_charts: "此处不支持单个插入图表",
   no_chart_msg: "该分类无图表",
   import_all_chart_msg: "该操作将批量导入所选图分类下所有图表",
-  chapter_list_label: "章节列表 Chapter List",
-  add_labels_section: "添加标签 Add labels",
-  recorded_section: "已传录音 Recorded",
-  add_labels_section: "微信分享 WeChat sharing",
+  chapter_list_label: "章节列表",
+  add_labels_section: "添加标签",
+  recorded_audio: "已传录音",
+  not_recorded_audio: "未传录音",
+  weChat_share: "微信分享",
+  set_tags_title: "设置标签",
+  select_ipt_pld: "输入或者选择",
+  input_email_subject: "请输入邮件主题",
 };

+ 2 - 0
src/lang/modules/ReportManagement/SmartReport.js

@@ -79,6 +79,7 @@ export const SmartReportEn = {
     not_push: "Do not push",
   },
   tooltip_pv_show: "The number of times the report has been opened, calculated once each time it is opened (only for authorized users)",
+  number_tooltip_pv_show: "Number of times the report has been opened, Counted each time it is opened",
   tooltip_uv_show: "The number of people accessing the report, and the same person accessing each report is only counted once (only authorized users are counted)",
   smart_msg: {
     no_edit: "This research report is currently being edited and cannot be duplicated",
@@ -200,6 +201,7 @@ export const SmartReportZh = {
     not_push: "不推送",
   },
   tooltip_pv_show: "报告被打开的次数,每次打开都计算一次(只统计有权限用户)",
+  number_tooltip_pv_show: "报告被打开的次数,每次打开都计算一次",
   tooltip_uv_show: "访问报告的人数,每篇报告同一个人访问只计算一次(只统计有权限用户)",
   smart_msg: {
     no_edit: "该研报正在编辑,不可重复编辑",

+ 74 - 17
src/lang/modules/Slides/pptList.js

@@ -7,7 +7,7 @@ export const listEn = {
   add_ppt_btn: "Add PPT",
   ppt_merge_btn: "Merge PPTs",
   input_ppt_title: "Please input slide title",
-  ppt_title_input:'PPT Title',
+  ppt_title_input: "PPT Title",
   visible_to_self_only: "Visible to self only",
   visible_to_everyone: "Visible to everyone",
   unshare_btn: "unshare",
@@ -52,7 +52,7 @@ export const listZh = {
   add_ppt_btn: "添加ppt",
   ppt_merge_btn: "合并ppt",
   input_ppt_title: "请输入PPT标题",
-  ppt_title_input:'PPT标题',
+  ppt_title_input: "PPT标题",
   visible_to_self_only: "仅自己可见",
   visible_to_everyone: "所有人可见",
   unshare_btn: "取消共享",
@@ -86,22 +86,79 @@ export const listZh = {
   edit_directory_dlg: "编辑目录",
   name_directory_dlg: "目录名称",
   input_directory_dlg: "请输入目录名称",
-  please_input_cover_title: "请输入封面标题",
+  please_input_cover_title: "请输入封面标题!",
   please_save_first: "请先保存",
   re_edit_slide: "第",
   please_re_edit: "页内容不完整,请重新编辑!",
-};
+  // ///////
+  view_report_btn: "查看报告 View report",
+  editing_progress_msg: "编辑中 Editing in progress.",
+  no_duplicated_edit_msg: "他人正在编辑中,不可重复编辑 Another user is currently editing, editing cannot be duplicated.",
+  exceed_ppt_msg: "PPT插入图表数量不能超过100张,请修改后重试 The number of charts inserted in PPT cannot exceed 100, please modify and retry.",
+  exceed_sixty_ppt_msg: "PPT页数不能超过60页,请修改后重试 PPT pages cannot exceed 60, please modify and retry.",
+  move_success_msg: "移动成功 Move successful.",
+  add_table_msg: "请先添加目录! Please add a table of contents first!",
+  add_main_text_empty: "添加正文后,会在这里生成 After adding the main text, it will be generated here.",
+  updating_chart_loading: "正在更新图表... Updating chart information...",
+  error_ppt_data_msg: "获取ppt数据失败! Failed to retrieve PowerPoint data!",
+  unable_files_msg: "剪贴板读取不到文件! Unable to read files from clipboard!",
+  uploading_images_msg: "上传图片中... Uploading images...",
+  all_loaded_completely_text: "已全部加载完 All loaded completely.",
+  please_add_page_msg: "请先添加页面 Please add a page first.",
+  please_ppt_title_msg: "请输入第{count}张PPT的标题! Please enter the title for slide number {count}!",
+  please_ppt_content_msg: "请填写第{count}张PPT的内容! Please fill in the content for slide number {count}!",
+  most_add_ppt_msg: "最多可添加{count}页PPT,请修改后再试! A maximum of {count} PowerPoint slides can be added, please modify and try again!",
+  most_add_chart_msg: "最多可添加{count}图表,请修改后再试! Up to {count} charts can be added. Please make the necessary modifications and try again",
+  please_add_one_page: "请至少添加一页 Please add at least one page.",
+  deleting_process_loading: "删除中... Deleting in process...",
+  upload_error_msg: "上传失败,请刷新重试 Upload failed, please refresh and retry.",
+  no_categories_empty: "暂无分类 No categories available",
+  internal_chart_no_msg: "内部图表,不允许插入ppt Internal chart, ppt insertion not allowed",
+  delete_chart_img_table: "已无位置,请删除现有图表/图片/表格 There is no place left, please delete existing charts/images/tables",
+  least_one_ppt_msg: "请至少添加一张PPT Please add at least one PPT",
+  ppt_edit_btn: "ppt编辑 PPT editing",
+  just_mine_radio: "只看我的 Just Mine",
+  no_corresponding_ppt_msg: "无对应的ppt数据! No corresponding PPT data available",
+  this_one_ppt_msg: "已是第一张PPT! This is already the first PPT",
+  this_last_ppt_msg: "已是最后一张PPT! This is already the last PPT",
+  please_select_researcher_msg: "请选择研究员 Please select a researcher",
+  please_select_directory_msg: "请选择一个目录 Please select a directory.",
+  powerPoint_data_loading: "正在加载ppt数据... Loading PowerPoint data...",
+  my_company_title: "弘则弥道(上海)投资咨询有限公司 Hongze Midi Dao (Shanghai) Investment Consulting Co., Ltd.",
+  ficc_department_title: "FICC研究部 FICC Research Department.",
+  get_report_data_loading: "获取报告列表中... Get report list...",
+  switch_template_title: "切换模板 Switch template.",
+  custom_cover_page_title: "自定义封面页 Custom Cover Page",
+  re_enter_entry_msg: "起始页数需小于等于终止页数,请重新输入 The starting page number must be less than or equal to the ending page number, please re-enter",
+  batch_import_all_chart:'该操作将批量导入所选图分类下所有图表 This operation will batch import all charts under the selected graph category',
+  no_charts_category_msg: "该分类无图表 No charts in this category",
+  keyword_search_ipt: "关键词搜索 Keyword search",
 
-/**
- * 暂无分类
- * 查看报告
- * 编辑中...
- * 他人正在编辑中,不可重复编辑
- * PPT插入图表数量不能超过100张,请修改后重试
- * PPT页数不能超过60页,请修改后重试
- * 移动成功
- * 预览报告
- * 请先添加目录
- *   {{$t('Slides.add_my_directory')}}
- *   this.$t('Slides.rename_successful')
- */
+  //?????
+  
+  please_re_edit: "复制ppt页成功 Copying PowerPoint page successful.",
+  please_re_edit: "指标名称 Indicator name.",
+  please_re_edit: "英文指标名称 English indicator name.",
+  please_re_edit: "请输入英文指标名称 Please enter an English indicator name.",
+  please_re_edit: "英文单位 Unit in English.",
+  please_re_edit: "英文期货名称 English futures name.",
+  please_re_edit: "请输入英文期货名称 Please enter an English futures name.",
+  please_re_edit: "盘面利润名称 Gross margin name (for futures).",
+  please_re_edit: "英文盘面利润名称 English gross margin name (for futures).",
+  please_re_edit: "请输入英文盘面利润名称 Please enter an English gross margin name (for futures).",
+  please_re_edit: "X轴名称 X-axis name",
+  please_re_edit: "英文X轴名称 English X-axis name",
+  please_re_edit: "请输入英文X轴名称 Please enter an English X-axis name",
+  please_re_edit: "加载缩略图中 Loading thumbnails",
+
+  please_re_edit: "按住拖动 Drag and hold",
+  please_re_edit: "标题/创建人 Title/Creator.",
+  please_re_edit: "下载pptx Download pptx file.",
+  please_re_edit: "该操作不可撤销,确定删除吗 This action cannot be undone, are you sure you want to delete?",
+  please_re_edit: "更新时间 Last updated time.",
+  please_re_edit: "创建人 Creator.",
+  please_re_edit: "转换ppt用时 Time taken to convert PowerPoint presentation.",
+  please_re_edit: "确定删除该页ppt吗 Are you sure you want to delete this PowerPoint slide?",
+  please_re_edit: "请至少添加一张 Please add at least one PowerPoint slide.",
+  please_re_edit: "预览报告 Preview report.",
+};

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

@@ -85,6 +85,9 @@ export const presentEn = {
   exit_full_screen_default: "Exit Full Screen",
   next_sheet_default: "Next sheet",
   previous_sheet_default: "Previous sheet",
+  table_analysis_semantic: "Semantic analysis insert",
+  table_chart: "Chart",
+
 };
 
 /* 中文 */
@@ -112,8 +115,10 @@ export const presentZh = {
   sandbox_name_category: "沙盘名称/品种",
   sandbox_name: "沙盘",
   table_name: "表格",
+  table_analysis_semantic: "语义分析插入",
   table_name_input: "表格名称",
   my_eta_batch: "MyETA批量",
+  table_chart: "图表",
   layer_element: "图层元素",
   line_settings: "线条设置",
   outline_element: "线框设置",
@@ -151,10 +156,10 @@ export const presentZh = {
   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",
+  hold_down_drag_tooltip: "按住拖动",
+  add_to_my_gallery_tooltip: "添加到我的图",
+  copy_name_tooltip: "复制名称",
+  source_info: "来源",
   click_input_text_content: "点击输入文本内容",
   delete_element_contextmenus: "删除元素",
   copy_element_contextmenus: "复制元素",

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

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

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

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

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

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

+ 34 - 0
src/lang/modules/ToolBox/AIQuestion.js

@@ -0,0 +1,34 @@
+/**
+ * 工具箱-AI问答
+ */
+
+/* 英文 */
+export const AIQuestionEn = {
+    title:'Researching AI Q&A Assistant',
+    add_new_window:'New Dialogue Window',
+    new_window:'New Dialogue Window',
+    AI_use_intro:'AI Assistant Instructions',
+    input_placeholder:'Please enter a question, Shift+Enter to change the line.',
+    send_btn:'Send',
+    use_intro_title:'Instructions',
+    use_intro01:'Maximum 500 Q&A per account per day.',
+    use_intro02:'History Q&A default named with the first question in the dialogue window, can be modified.'
+
+};
+  
+/* 中文 */
+export const AIQuestionZh = {
+    title:'研究AI问答小助手',
+    add_new_window:'新建对话窗口',
+    new_window:'新对话窗口',
+    AI_use_intro:'AI助手使用说明',
+    input_placeholder:'请输入提问,Shift+Enter换行',
+    send_btn:'发送',
+    use_intro_title:'使用说明',
+    use_intro01:'每账号每天最高500次问答。',
+    use_intro02:'历史问答默认用该对话窗口内第一个提问命名,可修改。'
+};
+  
+/**
+* $t('ToolBox.AIQuestion.XXX')
+*/

+ 61 - 0
src/lang/modules/ToolBox/CommodityPriceChart.js

@@ -0,0 +1,61 @@
+/**
+ * 工具箱-商品价格曲线
+ */
+
+/* 英文 */
+export const CommodityPriceChartEn = {
+    add_price_line_btn:'Add a price curve',
+    add_price_profit_btn:'Adding Profit Curves',
+    select_spot_price:'Select spot price indicators',
+    plate_profit_set:'Plate Profit Settings',
+    select_future:'select futures',
+    please_select_future:'please select futures',
+    chart_name:'Chart Name',
+    chart_classify:'Categories of Charts',
+    please_select_classify:'Please Select Categories',
+    add_date:'Add Date',
+    add_method:'Adding Methods',
+    latest_date:'Latest Date',
+    n_day_before:'N Days Ago',
+    fix_date:'Fixed Date',
+    day_num:'Number of Days',
+    day_num_placeholder:'Please enter number',
+    select_date:'Select Date',
+    add_params_btn:'Add more parameters',
+    formula_label:'Formula',
+    formula_label_placeholder:'Please enter the formula',
+    formula_exp:'Formula Example',
+    fun_support:'Functions Support',
+    plate_profit_name:'Plate Profit'
+};
+  
+/* 中文 */
+export const CommodityPriceChartZh = {
+    add_price_line_btn:'添加价格曲线',
+    add_price_profit_btn:'添加利润曲线',
+    select_spot_price:'选择现货价格指标',
+    plate_profit_set:'盘面利润设置',
+    select_future:'选择期货',
+    please_select_future:'请选择期货',
+    chart_name:'图表名称',
+    chart_classify:'图表分类',
+    please_select_classify:'请选择所属分类',
+    add_date:'添加日期',
+    add_method:'添加方式',
+    latest_date:'最新日期',
+    n_day_before:'N天前',
+    fix_date:'固定日期',
+    day_num:'天数',
+    day_num_placeholder:'请输入数字',
+    select_date:'选择日期',
+    add_params_btn:'添加更多参数',
+    formula_label:'计算公式',
+    formula_label_placeholder:'请输入公式',
+    formula_exp:'公式示例',
+    fun_support:'函数支持',
+    plate_profit_name:'盘面利润'
+};
+  
+/**
+* $t('ToolBox.CommodityPriceChart.XXX')
+*/

+ 13 - 0
src/lang/modules/ToolBox/IndexEn.js

@@ -0,0 +1,13 @@
+import { AIQuestionEn } from "./AIQuestion";
+import { CommodityPriceChartEn } from "./CommodityPriceChart";
+import { PositionAnalysisEn } from "./PositionAnalysis";
+
+
+export default {
+    // 工具箱
+    ToolBox: {
+        AIQuestion:AIQuestionEn,
+        CommodityPriceChart:CommodityPriceChartEn,
+        PositionAnalysis:PositionAnalysisEn
+    },
+};

+ 13 - 0
src/lang/modules/ToolBox/IndexZh.js

@@ -0,0 +1,13 @@
+import { AIQuestionZh } from "./AIQuestion";
+import { CommodityPriceChartZh } from "./CommodityPriceChart";
+import { PositionAnalysisZh } from "./PositionAnalysis";
+
+
+export default {
+    // 工具箱
+    ToolBox: {
+        AIQuestion:AIQuestionZh,
+        CommodityPriceChart:CommodityPriceChartZh,
+        PositionAnalysis:PositionAnalysisZh
+    },
+};

+ 57 - 0
src/lang/modules/ToolBox/PositionAnalysis.js

@@ -0,0 +1,57 @@
+/**
+ * 工具箱-持仓分析
+ */
+
+/* 英文 */
+export const PositionAnalysisEn = {
+    before_btn:'Previous Contract',
+    next_btn:'Next Contract',
+    position_list_label:'Position List',
+    history_contract:'History Contracts',
+    select_date_placeholder:'please select date',
+    see_before_day:'View the previous day',
+    see_next_day:' View the next day',
+    count_name:'Total',
+    compare_yesterday:'Compare with yesterday',
+    no_data:'no data',
+    variety:'varieties',
+    increase:'Increase',
+    decrease:'Decrease',
+    long_position:'Long Position',
+    short_position:'Short Position',
+    net_long_position:'Net Long Position',
+    net_short_position:'Net Short Position',
+    hold_long_position:'Number of Long Positions Held',
+    hold_short_position:'Number of Short Positions Held',
+    net_long_position_num:'Number of Net Long Position',
+    net_short_position_num:'Number of Net Short Position',
+};
+  
+/* 中文 */
+export const PositionAnalysisZh = {
+    before_btn:'上一个合约',
+    next_btn:'下一个合约',
+    position_list_label:'持仓列表',
+    history_contract:'历史合约',
+    select_date_placeholder:'请选择日期',
+    see_before_day:'查看前一天',
+    see_next_day:'查看后一天',
+    count_name:'总计',
+    compare_yesterday:'较昨日',
+    no_data:'该日期无数据',
+    variety:'品种',
+    increase:'增',
+    decrease:'减',
+    long_position:'多单',
+    short_position:'空单',
+    net_long_position:'净多单',
+    net_short_position:'净空单',
+    hold_long_position:'持多单量',
+    hold_short_position:'持空单量',
+    net_long_position_num:'净多单量',
+    net_short_position_num:'净空单量',
+};
+  
+/**
+* $t('ToolBox.PositionAnalysis.XXX')
+*/

+ 41 - 39
src/views/classify_manage/classifyEnlist.vue

@@ -3,16 +3,16 @@
     <el-card>
       <div class="header" slot="header">
         <div class="type-box">
-					<span @click="$emit('typeChange','1')" v-permission="permissionBtn.classifyBtn.classifyList_cnClassify">中文分类</span>
-					<span class="act" v-permission="permissionBtn.enClassifyBtn.classifyList_enClassify">英文分类</span>
+					<span @click="$emit('typeChange','1')" v-permission="permissionBtn.classifyBtn.classifyList_cnClassify">{{$t('ReportManage.CategoryList.chinese_tabs')}}</span>
+					<span class="act" v-permission="permissionBtn.enClassifyBtn.classifyList_enClassify">{{$t('ReportManage.CategoryList.english_tabs')}}</span>
 				</div>
         <div>
         <el-button v-if="isAddClassifyBtnShow"
         type="primary" size="small" @click="addClassify"
-          >添加分类</el-button
+          >{{$t('ReportManage.CategoryList.add_category_btn')}}</el-button
         >
         <el-input
-          placeholder="分类名称"
+          :placeholder="$t('ReportManage.CategoryList.category_name_ipt')"
           v-model="searchform.key_word"
           clearable
           size="small"
@@ -73,16 +73,16 @@
                 class="editsty"
                 v-if="row.level==3&&isAuthSetBtnShow" 
                 @click="handleShowSetVariety(row)"
-              >权限配置</span>
+              >{{$t('ReportManage.CategoryList.configuration_btn')}}</span>
               <span class="editsty" v-if="isEditBtnShow"
-                style="margin:0 20px" @click="itemHandle('edit',row)">编辑</span>
+                style="margin:0 20px" @click="itemHandle('edit',row)">{{$t('Dialog.title_prefix_edit')}}</span>
               <span class="deletesty" v-if="isDeleteBtnShow"
-                @click="itemHandle('del',row)">删除</span>
+                @click="itemHandle('del',row)">{{$t('Table.delete_btn')}}</span>
             </div>
           </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>
 
@@ -123,16 +123,16 @@
             </el-select>
 
           </el-form-item> -->
-          <el-form-item prop="classify_name" label="分类名称">
+          <el-form-item prop="classify_name" :label="$t('ReportManage.CategoryList.category_name_ipt')">
             <el-input 
               type="text" 
               v-model="classifyForm.classify_name" 
-              placeholder="请输入" 
+              :placeholder="$t('ReportManage.CategoryList.please_input')" 
               size="small" 
               style="width:400px;"
             />
           </el-form-item>
-          <el-form-item prop="parent_id" label="上级分类">
+          <el-form-item prop="parent_id" :label="$t('ReportManage.CategoryList.parent_category_label')">
             <!-- <el-select 
               v-model="classifyForm.parent_id"
               placeholder="请选择"
@@ -142,14 +142,14 @@
               <el-option label="无" :value="0"/>
               <el-option v-for="item in classifyparentArr" :key="item.ClassifyName" :label="item.ClassifyName" :value="item.Id"/>
             </el-select> -->
-            <el-cascader :options="classifyparentArr" v-model="classifyForm.parent_id" placeholder="请选择"
+            <el-cascader :options="classifyparentArr" v-model="classifyForm.parent_id" :placeholder="$t('ReportManage.CategoryList.please_select')"
             :props="{value:'Id',label:'ClassifyName',children:'Child',checkStrictly:true,emitPath:false}" style="min-width:400px;"></el-cascader>
           </el-form-item>
-          <el-form-item label="后台排序" prop="sort">
+          <el-form-item :label="$t('ReportManage.CategoryList.backend_sorting_label')" prop="sort">
             <el-input 
               type="number" 
               v-model="classifyForm.sort" 
-              placeholder="请输入数字" 
+              :placeholder="$t('ReportManage.CategoryList.please_number_input')" 
               size="small" 
               style="width:400px;"
             />
@@ -160,18 +160,18 @@
         <el-button
         @click="cancelClassify"
         style="width: 132px; height: 40px"
-        >取消</el-button>
+        >{{$t('Dialog.cancel_btn')}}</el-button>
         <el-button
           @click="setClassifyHandle"
           type="primary"
           style="width: 132px; height: 40px"
-          >保存</el-button>
+          >{{$t('Dialog.confirm_save_btn')}}</el-button>
       </div>
     </m-dialog>
 
     <!-- 配置权限 -->
     <el-dialog 
-      title="权限配置" 
+      :title="$t('ReportManage.CategoryList.configuration_btn')" 
       :visible.sync="showSetVariety" 
       width="705px"
       append-to-body 
@@ -181,8 +181,8 @@
       <reportVarietyEnSet ref="varietyIns" :checked="checkedVariety" v-if="showSetVariety" />
       </div>
       <div style="text-align:center;padding:10px 0 30px 0">
-        <el-button type="primary" plain @click="showSetVariety=false;checkedVariety=[]">取消</el-button>
-        <el-button type="primary" style="margin-left:20px" @click="handleSaveVariety">保存</el-button>
+        <el-button type="primary" plain @click="showSetVariety=false;checkedVariety=[]">{{$t('Dialog.cancel_btn')}}</el-button>
+        <el-button type="primary" style="margin-left:20px" @click="handleSaveVariety">{{$t('Dialog.confirm_save_btn')}}</el-button>
       </div>
     </el-dialog>
   </div>
@@ -271,36 +271,39 @@ export default {
       //   return authTabs
       // },
       //添加分类时的选项框
-  },
-  data() {
-    return {
-      searchform: {
-        key_word: "",
-      },
-
-      dataLoading: false,
-      page_no: 1,
-      total: 0,
-      tableData: [],
-      tableColums: [
+      tableColums(){
+      return [
         {
-          label: "一级分类",
+          label: this.$t('ReportManage.CategoryList.one_category_table') ||  "一级分类",
           prop: "ClassifyOne",
         },
         {
-          label: "二级分类",
+          label:this.$t('ReportManage.CategoryList.two_category_table') ||  "二级分类",
           prop: "ClassifyTwo",
         },
         {
-          label: "三级分类",
+          label:this.$t('ReportManage.CategoryList.three_category_table') || "三级分类",
           prop: "ClassifyThree",
         },
         {
-          label: "操作",
+          label:this.$t('Table.column_operations') ||  "操作",
           prop: "handle",
           align: "center",
         },
-      ],
+      ]
+    }
+  },
+  data() {
+    return {
+      searchform: {
+        key_word: "",
+      },
+
+      dataLoading: false,
+      page_no: 1,
+      total: 0,
+      tableData: [],
+
       
       classifyparentArr: [],
       classifyForm: {
@@ -431,7 +434,7 @@ export default {
 
     editHandle({ClassifyName,Id,ParentId,Sort,ClassifyType}) {
       this.classifyForm = {
-        title: '编辑分类',
+        title: this.$t('ReportManage.CategoryList.edit_category_btn'),
         show: true,
         classify_name: ClassifyName,
         parent_id: ParentId==0?0+'':ParentId,//数字的0,'无'不回显
@@ -443,7 +446,7 @@ export default {
 
     delHandle({Id,ParentId}) {
 
-      this.$confirm('确认删除吗?','提示',{type:'warning'}).then(() => {
+      this.$confirm( this.$t('ReportManage.smart_msg.delete_it'),this.$t('Confirm.prompt'),{type:'warning'}).then(() => {
 				classifyEnInterface.classifyDel({ClassifyId:Id,ParentId}).then(res =>{
 						if( res.Ret!==200 ) return
             
@@ -503,7 +506,6 @@ export default {
     //   this.getClassifyOne()
     // }
   },
-
   mounted() {
       // if(this.authTabsOpt.length){
       //   this.aTab = this.authTabsOpt[0].val

+ 7 - 0
src/views/dataEntry_manage/components/barOptionSection.vue

@@ -164,6 +164,13 @@ export default {
     isBaseBarShow() {
       const show_path = ['/addchart','/editchart']
       return show_path.includes(this.$route.path)
+    },
+    dateOptions(){
+      return [
+        { key: 1,label:this.$t('ToolBox.CommodityPriceChart.latest_date')/* '最新日期' */ },
+        { key: 2,label:this.$t('ToolBox.CommodityPriceChart.n_day_before')/* 'N天前' */ },
+        { key: 3,label:this.$t('ToolBox.CommodityPriceChart.fix_date')/* '固定日期' */ },
+      ]
     }
   },
   data() {

+ 11 - 11
src/views/futures_manage/chartEditor.vue

@@ -13,12 +13,12 @@
 					type="primary" 
 					@click="saveHandle"
 					:disabled="chartInfo.ChartType === 5 && tableData.length !== 2"
-				>保存</el-button>
-        <el-button type="primary" plain @click="$router.back()">取消</el-button>
+				>{{$t('Dialog.confirm_save_btn')}}</el-button>
+        <el-button type="primary" plain @click="$router.back()">{{$t('Dialog.cancel_btn')}}</el-button>
       </div>
 			<div class="left-min">
 				<div class="search-cont">
-					<label>选择现货价格指标</label>
+					<label>{{$t('ToolBox.CommodityPriceChart.select_spot_price')}}</label>
 					<el-select
 						v-model="search_txt"
 						v-loadMore="searchLoad"
@@ -26,7 +26,7 @@
 						:filterable="!search_txt"
 						remote
 						clearable
-						placeholder="选择现货价格指标"
+						:placeholder="$t('ToolBox.CommodityPriceChart.select_spot_price')"
 						style="width:90%;margin-top: 10px;display: block;"
 						:remote-method="searchHandle"
 						@click.native="inputFocusHandle"
@@ -45,7 +45,7 @@
 				
 				<!-- 盘面利润 -->
 				<div class="profit-set" v-if="chartInfo.Source===5">
-					<el-button type="text" @click="openProfitOption">盘面利润设置</el-button>
+					<el-button type="text" @click="openProfitOption">{{$t('ToolBox.CommodityPriceChart.plate_profit_set')}}</el-button>
 				</div>
 
 				<el-form
@@ -55,7 +55,7 @@
 					:model="chartInfo"
 					:rules="chartRules"
 				>
-					<el-form-item label="选择期货" prop="futures_id" v-if="chartInfo.Source===2">
+					<el-form-item :label="$t('ToolBox.CommodityPriceChart.select_future')" prop="futures_id" v-if="chartInfo.Source===2">
 						<el-cascader
 							v-model="chartInfo.futures_id"
 							:options="futuresOptions"
@@ -66,11 +66,11 @@
 								emitPath: false
 							}"
 							style="width: 90%"
-							placeholder="请选择期货"
+							:placeholder="$t('ToolBox.CommodityPriceChart.please_select_future')"
 							@change="changeFuturesHandle"
 						/>
 					</el-form-item>
-					<el-form-item label="图表名称" prop="ChartName">
+					<el-form-item :label="$t('ToolBox.CommodityPriceChart.chart_name')" prop="ChartName">
 						<el-input
 							v-model="chartInfo.ChartName"
 							style="width: 90%"
@@ -78,7 +78,7 @@
 							clearable
 						/>
 					</el-form-item>
-					<el-form-item label="图表分类" prop="classify">
+					<el-form-item :label="$t('ToolBox.CommodityPriceChart.chart_classify')" prop="classify">
 						<el-cascader
 							v-model="chartInfo.classify"
 							:options="classifyOptions"
@@ -89,7 +89,7 @@
 								emitPath: false
 							}"
 							style="width: 90%"
-							placeholder="请选择所属分类"
+							:placeholder="$t('ToolBox.CommodityPriceChart.please_select_classify')"
 						/>
 					</el-form-item>
 				</el-form>
@@ -152,7 +152,7 @@
 							</div>
 						</div>
 						<span class="chart-author"
-							>作者:{{ chartInfo.SysUserRealName || roleName }}</span
+							>{{$t('MsgPrompt.author')}}:{{ chartInfo.SysUserRealName || roleName }}</span
 						>
 					</div>
 				</div>

+ 16 - 16
src/views/futures_manage/commodityChartBase.vue

@@ -12,23 +12,23 @@
       <div class="main-left left" id="left" v-show="!isSlideLeft">
 				<div class="datasheet_top">
 						<el-button v-permission="permissionBtn.productPricePermission.goodsPrice_priceLine"
-							type="primary" @click="goAddChart('price')">添加价格曲线</el-button>
+							type="primary" @click="goAddChart('price')">{{$t('ToolBox.CommodityPriceChart.add_price_line_btn')}}</el-button>
 						<el-button v-permission="permissionBtn.productPricePermission.goodsPrice_incomeLine"
 							style="margin-left:0;"
-							type="primary" @click="goAddChart('profit')">添加利润曲线</el-button>
+							type="primary" @click="goAddChart('profit')">{{$t('ToolBox.CommodityPriceChart.add_price_profit_btn')}}</el-button>
 				</div>
 
 				<div class="search-cont">
 					<el-checkbox v-model="isShowMe"  
 						v-if="permissionBtn.isShowBtn('productPricePermission','goodsPrice_onlyMine')"
-						@change="() => { getTreeData();getPublicList() }">只看我的</el-checkbox>
+						@change="() => { getTreeData();getPublicList() }">{{$t('Chart.only_see_mine')}}</el-checkbox>
 					<el-select
 						v-model="search_txt"
 						v-loadMore="searchLoad"
 						:filterable="!search_txt"
 						remote
 						clearable
-						placeholder="请输入图表名称"
+						:placeholder="$t('Chart.search_chart_placeholder')"
 						style="width: 100%; margin-top: 20px"
 						:remote-method="searchHandle"
 						@click.native="inputFocusHandle"
@@ -123,7 +123,7 @@
 							alt=""
 							style="width: 16px; height: 16px; margin-right: 10px"
 						/>
-						<span>添加图表分类</span>
+						<span>{{$t('StatisticAnalysis.ChartRelevance.add_chart_classify')}}</span>
 					</div>
 				</div>
 				<span
@@ -180,7 +180,7 @@
                       />
                     </div>
                   </div>
-                  <span class="chart-author">作者:{{ chartInfo.SysUserRealName}}</span>
+                  <span class="chart-author">{{$t('MsgPrompt.author')}}:{{ chartInfo.SysUserRealName}}</span>
                 </div>
 
                 <!-- 异常显示 -->
@@ -447,7 +447,7 @@ export default {
 
 		/* 添加一级目录 */
 		addLevelOneHandle() {
-			this.dialog_title = '添加';
+			this.dialog_title = this.$t('Table.add_btn')||'添加';
 			this.classifyForm = {
 				classify_name: '',
 			}
@@ -457,7 +457,7 @@ export default {
     /* 编辑节点 */
     editNode(node, { ChartClassifyName,ChartClassifyId }) {
 
-      this.dialog_title = '编辑';
+      this.dialog_title = this.$t('Table.edit_btn')||'编辑';
       /* 编辑目录 */
       this.classifyForm = {
         classify_name: ChartClassifyName,
@@ -474,14 +474,14 @@ 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)
@@ -716,9 +716,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(() => {

+ 10 - 10
src/views/futures_manage/components/plateProfitDia.vue

@@ -3,7 +3,7 @@
 		:visible.sync="isShow"
 		:close-on-click-modal="false"
 		:modal-append-to-body="false"
-    title="盘面利润设置"
+    	:title="$t('ToolBox.CommodityPriceChart.plate_profit_set')"
 		@close="cancelHandle"
 		custom-class="profit-dialog"
 		center
@@ -27,7 +27,7 @@
             }"
             style="width: 90%"
             clearable
-            placeholder="请选择期货"
+            :placeholder="$t('ToolBox.CommodityPriceChart.select_future')"
           />
 					<i
 						class="el-icon-error del-tag"
@@ -41,18 +41,18 @@
 					class="el-icon-circle-plus-outline"
 					style="color: #5882ef; font-size: 16px"
 				/>
-				添加更多参数
+				{{$t('ToolBox.CommodityPriceChart.add_params_btn')}}
 			</span>
 			<div class="computed-min">
 				<div class="computed-top">
-					<span style="margin-right: 8px">计算公式</span>
-					<el-input placeholder="请输入公式" v-model="formula" clearable>
+					<span style="margin-right: 8px">{{$t('ToolBox.CommodityPriceChart.formula_label')}}</span>
+					<el-input :placeholder="$t('ToolBox.CommodityPriceChart.formula_label_placeholder')" v-model="formula" clearable>
 					</el-input>
 				</div>
-				<span class="example-txt">公式示例:A*0.5+B*C*1.2+120-MAX(A,B,C)</span>
-				<span class="example-txt">函数支持:MAX(),MIN(),ln(A),log(a,A)</span>
+				<span class="example-txt">{{$t('ToolBox.CommodityPriceChart.formula_exp')}}:A*0.5+B*C*1.2+120-MAX(A,B,C)</span>
+				<span class="example-txt">{{$t('ToolBox.CommodityPriceChart.fun_support')}}:MAX(),MIN(),ln(A),log(a,A)</span>
 				<div style="margin-top: 20px">
-					<span style="margin-right: 8px">盘面利润</span>
+					<span style="margin-right: 8px">{{$t('ToolBox.CommodityPriceChart.plate_profit_name')}}</span>
 					<span>{{profitName}}</span>
 				</div>
 			</div>
@@ -62,9 +62,9 @@
 				type="primary"
 				style="margin-right: 20px"
 				@click="saveHandle"
-				>保存</el-button
+				>{{$t('Dialog.confirm_save_btn')}}</el-button
 			>
-			<el-button type="primary" plain @click="cancelHandle">取消</el-button>
+			<el-button type="primary" plain @click="cancelHandle">{{$t('Dialog.cancel_btn')}}</el-button>
 		</div>
 	</el-dialog>
 </template>

+ 6 - 6
src/views/operation_manage/AIQA/AIQA.vue

@@ -4,11 +4,11 @@
             <div class="window-title">
                 <div class="title-wrap">
                     <p class="text-ellipsis" style="color: #333333;font-size: 20px;font-weight: 600;">{{companyName}}</p>
-                    <span style="color: #666666;font-size: 16px;">研究AI问答小助手</span>
+                    <span style="color: #666666;font-size: 16px;">{{$t('ToolBox.AIQuestion.title')}}</span>
                 </div>
                 <div class="icon"><img src="~@/assets/img/icons/ai_company.png"/></div>
             </div>
-            <div class="add-btn" @click="handleAddNewWindow"><i class="el-icon-circle-plus-outline"></i>新建对话窗口</div>
+            <div class="add-btn" @click="handleAddNewWindow"><i class="el-icon-circle-plus-outline"></i>{{$t('ToolBox.AIQuestion.add_new_window')}}</div>
             <div class="list-wrap hidden-scrollbar">
                 <Window-List-Item 
                     ref="windowListItem"
@@ -27,8 +27,8 @@
         <div class="content-wrap">
             <div class="content-header">
                 <div class="title-wrap">
-                    <p>{{activeWindowId<=0?'新对话窗口':activeWindow.TopicName||''}}</p>
-                    <span>{{activeWindowId<=0?'AI助手使用说明':`${historyList.length||0} messages`}}</span>
+                    <p>{{activeWindowId<=0?$t('ToolBox.AIQuestion.new_window'):activeWindow.TopicName||''}}</p>
+                    <span>{{activeWindowId<=0?$t('ToolBox.AIQuestion.AI_use_intro'):`${historyList.length||0} messages`}}</span>
                 </div>
                 <div class="select-box">
                     <!-- <el-select v-model="model" :class="{'hint':showHint}" :disabled="isTyping||(windowContentLoading&&windowContentLoading.visible)" ref="modelSelect" 
@@ -60,8 +60,8 @@
                 <New-Window-Hint v-if="activeWindowId===0"/>
             </div>
             <div class="input-box">
-                <textarea rows="6" v-model="inputText" placeholder="请输入提问,Shift+Enter换行" @keydown.enter="handleSendMsg"></textarea>
-                <div class="send-btn" @click="handleSendMsg"><img src="~@/assets/img/ai_m/send.png" />发送</div>
+                <textarea rows="6" v-model="inputText" :placeholder="$t('ToolBox.AIQuestion.input_placeholder')" @keydown.enter="handleSendMsg"></textarea>
+                <div class="send-btn" @click="handleSendMsg"><img src="~@/assets/img/ai_m/send.png" />{{$t('ToolBox.AIQuestion.send_btn')}}</div>
             </div>
         </div>
     </div>

+ 3 - 3
src/views/operation_manage/AIQA/components/newWindowHint.vue

@@ -1,8 +1,8 @@
 <template>
     <div class="new-window-hint-wrap">
-        <p class="title">使用说明:</p>
-        <p>1、每账号每天最高500次问答。</p>
-        <p>2、历史问答默认用该对话窗口内第一个提问命名,可修改。</p>
+        <p class="title">{{$t('ToolBox.AIQuestion.use_intro_title')}}:</p>
+        <p>1、{{$t('ToolBox.AIQuestion.use_intro01')}}</p>
+        <p>2、{{$t('ToolBox.AIQuestion.use_intro02')}}</p>
     </div>
 </template>
 

+ 2 - 2
src/views/positionAnalysis_manage/components/chartBox.vue

@@ -13,14 +13,14 @@
           class="color-box"
           :style="{ background: colorMap.get(keyVal)[1] }"
         ></span>
-        <span></span>
+        <span>{{$t('ToolBox.PositionAnalysis.increase')}}</span>
       </div>
       <div>
         <span
           class="color-box"
           :style="{ background: colorMap.get(keyVal)[2] }"
         ></span>
-        <span></span>
+        <span>{{$t('ToolBox.PositionAnalysis.decrease')}}</span>
       </div>
     </div>
     <div class="chart-content">

+ 60 - 30
src/views/positionAnalysis_manage/components/chartDetail.vue

@@ -27,14 +27,14 @@
             <el-date-picker
                 v-model="selectDate"
                 type="date"
-                placeholder="请选择日期"
+                :placeholder="$t('ToolBox.PositionAnalysis.select_date_placeholder')"
                 value-format="yyyy-MM-dd"
                 :picker-options="pickerOption"
                 @change="$emit('handleOpt','date')"
                 style="margin-right: 10px"
             />
-            <el-button type="primary" plain @click="$emit('handleOpt','beforeDate')">查看前一天</el-button>
-            <el-button type="primary" plain @click="$emit('handleOpt','nextDate')" :disabled="disabledNextBtn">查看后一天</el-button>
+            <el-button type="primary" plain @click="$emit('handleOpt','beforeDate')">{{$t('ToolBox.PositionAnalysis.see_before_day')}}</el-button>
+            <el-button type="primary" plain @click="$emit('handleOpt','nextDate')" :disabled="disabledNextBtn">{{$t('ToolBox.PositionAnalysis.see_next_day')}}</el-button>
         </div>
       </div>
       <div
@@ -45,11 +45,11 @@
           <span>{{$route.query.classify_type}}</span>
           <span>{{ chartItemInfo.name }}</span>
           <span
-            ><span style="color: #999; margin-right: 2px">总计 </span
+            ><span style="color: #999; margin-right: 2px">{{$t('ToolBox.PositionAnalysis.count_name')}} </span
             >{{ chartItemInfo.TotalDealValue }}</span
           >
           <span
-            ><span style="color: #999; margin-right: 2px">较昨日 </span
+            ><span style="color: #999; margin-right: 2px">{{$t('ToolBox.PositionAnalysis.compare_yesterday')}} </span
             >{{ chartItemInfo.TotalDealChange }}</span
           >
         </div>
@@ -57,7 +57,7 @@
       </div>
 
       <div class="empty-wrap" v-else>
-        <tableNoData text="该日期无数据" />
+        <tableNoData :text="$t('ToolBox.PositionAnalysis.no_data')" />
       </div>
     </div>
 
@@ -85,6 +85,36 @@ export default {
     selectDate:String,
     pickerOption:Object
   },
+  computed:{
+    tabKeys(){
+      return [
+        { label: this.$t('ToolBox.PositionAnalysis.long_position')/* "多单" */, key: "BuyList" },
+        { label: this.$t('ToolBox.PositionAnalysis.short_position')/* "空单" */, key: "SoldList" },
+        { label: this.$t('ToolBox.PositionAnalysis.net_long_position')/* "净多单" */, key: "CleanBuyList" },
+        { label: this.$t('ToolBox.PositionAnalysis.net_short_position')/* "净空单" */, key: "CleanSoldList" },
+      ]
+    },
+    chartListState(){
+      return {
+        BuyList: {
+          name: this.$t('ToolBox.PositionAnalysis.long_position')/* "多单" */,
+          labelName: this.$t('ToolBox.PositionAnalysis.hold_long_position')/* "持多单量" */,
+        },
+        SoldList: {
+          name: this.$t('ToolBox.PositionAnalysis.short_position')/* "空单" */,
+          labelName: this.$t('ToolBox.PositionAnalysis.hold_short_position')/* "持空单量" */,
+        },
+        CleanBuyList: {
+          name:this.$t('ToolBox.PositionAnalysis.net_long_position') /* "净多单" */,
+          labelName: this.$t('ToolBox.PositionAnalysis.net_long_position_num')/* "净多单量" */,
+        },
+        CleanSoldList: {
+          name: this.$t('ToolBox.PositionAnalysis.net_short_position')/* "净空单" */,
+          labelName: this.$t('ToolBox.PositionAnalysis.net_short_position_num')/* "净空单量" */,
+        },
+      }
+    }
+  },
   data() {
     return {
       isPcShow: true,
@@ -98,31 +128,31 @@ export default {
       allClassifyTypeList: [],
 
       pageLoading: false,
-      chartListState: {
-        BuyList: {
-          name: "多单",
-          labelName: "持多单量",
-        },
-        SoldList: {
-          name: "空单",
-          labelName: "持空单量",
-        },
-        CleanBuyList: {
-          name: "净多单",
-          labelName: "净多单量",
-        },
-        CleanSoldList: {
-          name: "净空单",
-          labelName: "净空单量",
-        },
-      },
+      // chartListState: {
+      //   BuyList: {
+      //     name: "多单",
+      //     labelName: "持多单量",
+      //   },
+      //   SoldList: {
+      //     name: "空单",
+      //     labelName: "持空单量",
+      //   },
+      //   CleanBuyList: {
+      //     name: "净多单",
+      //     labelName: "净多单量",
+      //   },
+      //   CleanSoldList: {
+      //     name: "净空单",
+      //     labelName: "净空单量",
+      //   },
+      // },
 
-      tabKeys: [
-        { label: "多单", key: "BuyList" },
-        { label: "空单", key: "SoldList" },
-        { label: "净多单", key: "CleanBuyList" },
-        { label: "净空单", key: "CleanSoldList" },
-      ],
+      // tabKeys: [
+      //   { label: "多单", key: "BuyList" },
+      //   { label: "空单", key: "SoldList" },
+      //   { label: "净多单", key: "CleanBuyList" },
+      //   { label: "净空单", key: "CleanSoldList" },
+      // ],
       tabKey: "BuyList",
       chartItemInfo: null,
     };

+ 1 - 1
src/views/positionAnalysis_manage/components/indexContent.vue

@@ -1,7 +1,7 @@
 <template>
     <div class="index-content-wrap">
         <div class="top-box">
-            <span style="margin-right:20px">{{num}}品种</span>
+            <span style="margin-right:20px">{{num}}{{$t('ToolBox.PositionAnalysis.variety')}}</span>
             <span>{{time}}</span>
         </div>
         <div class="list-wrap">

+ 4 - 4
src/views/positionAnalysis_manage/detail.vue

@@ -4,8 +4,8 @@
         <div class="detail-top">
             <div>
                 <!-- <el-button type="primary" @click="refreshData" plain>一键刷新</el-button> -->
-                <el-button type="primary" @click="handleOpt('beforeClassifyType')">上一个合约</el-button>
-                <el-button type="primary" @click="handleOpt('nextClassifyType')">下一个合约</el-button>
+                <el-button type="primary" @click="handleOpt('beforeClassifyType')">{{$t('ToolBox.PositionAnalysis.before_btn')}}</el-button>
+                <el-button type="primary" @click="handleOpt('nextClassifyType')">{{$t('ToolBox.PositionAnalysis.next_btn')}}</el-button>
             </div>
         </div>
         <div class="content-box detail-content">
@@ -20,8 +20,8 @@
     </div>
     <div class="list" :class="{'expand-list':isSlide}">
         <div class="header">
-            <span>持仓列表</span>
-            <div>历史合约
+            <span>{{$t('ToolBox.PositionAnalysis.position_list_label')}}</span>
+            <div>{{$t('ToolBox.PositionAnalysis.history_contract')}}
                 <el-switch
                     v-model="isHistory"
                     size="large"

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

@@ -122,7 +122,7 @@ export default {
 
     /* 保存 */
     async saveHandle() {
-      if(this.share_type === 2 && !this.select_users.length) return this.$message.warning('请选择研究员')
+      if(this.share_type === 2 && !this.select_users.length) return this.$message.warning(this.$t('Slides.please_select_researcher_msg') )
       const { ppt_id } = this.data;
       const res = this.$parent.currentLang!=='en'
         ? await pptInterface.setShareAuth({

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

@@ -195,7 +195,7 @@ export default {
         return {result:false,msg:'请选择日期'}
       } */
       if(this.selectedCatalogId===0){
-        return {result:false,msg:'请选择一个目录'}
+        return {result:false,msg:this.$t('Slides.please_select_directory_msg') }
       }
       return {result:true,msg:''}
     },

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

@@ -177,7 +177,7 @@ export default {
           this.pptTime = this.pptItem.PptxUrl?PublishTime:ModifyTime
           this.$emit('resetToolList',this.result)
         }else{
-          this.$message.error('获取ppt数据失败!')
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') )
           this.dataLoading.close();
         }
       }else{
@@ -200,7 +200,7 @@ export default {
 			if(e.target.scrollHeight-e.target.clientHeight-e.target.scrollTop<30&&!this.isloading){
         this.dataLoading = this.$loading({
 					lock: true,
-					text: '正在加载ppt数据...',
+					text:`${this.$t('Slides.please_re_edit')}...`,
 					spinner: 'el-icon-loading',
 					customClass:'loading',
           target:document.querySelector('.ppt-content-wrap'),

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

@@ -172,7 +172,7 @@ export default {
           this.pptTime = this.pptItem.PptxUrl?PublishTime:ModifyTime
           this.$emit('resetToolList',this.result)
         }else{
-          this.$message.error('获取ppt数据失败!')
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') )
           this.dataLoading.close();
         }
       }else{
@@ -195,7 +195,7 @@ export default {
 			if(e.target.scrollHeight-e.target.clientHeight-e.target.scrollTop<30&&!this.isloading){
         this.dataLoading = this.$loading({
 					lock: true,
-					text: '正在加载ppt数据...',
+					text: this.$t('Slides.powerPoint_data_loading') ,
 					spinner: 'el-icon-loading',
 					customClass:'loading',
           target:document.querySelector('.ppt-content-wrap'),

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

@@ -9,12 +9,12 @@
 						<p style="font-size:28px;">{{firstform.title}}</p>
 						<p style="display:flex; align-items:center; justify-content:center;margin:10px 0;">
 							<span style="display:inline-block; width:15px; margin-right:5px; border-top:1px solid #fff;"></span>
-							<span>弘则弥道(上海)投资咨询有限公司</span>
+							<span>{{$t('Slides.my_company_title')}}</span>
 							<span style="display:inline-block; width:14px; height:14px; background:#fff; border-radius:100%; margin:0 5px;"></span>
 							<span>{{firstform.report_type}}</span>
 							<span style="display:inline-block; width:15px; margin-left:5px; border-top:1px solid #fff;"></span>
 						</p>
-						<p>FICC研究部</p>
+						<p>{{$t('Slides.ficc_department_title')}}</p>
 						<p>{{firstform.ppt_date}}</p>
 						<p style="width:80%; height:1px; border-bottom:1px solid #fff; margin:21px auto 0;"></p>
 					</div>

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

@@ -9,7 +9,7 @@
     <div slot="title" style="display: flex; alignitems: center">
       <span style="fontsize: 16px">{{$t('Slides.convert_to_report_dlg')}}</span>
     </div>
-    <div class="dialog-container" v-loading="getListLoading" element-loading-text="获取报告列表中...">
+    <div class="dialog-container" v-loading="getListLoading" :element-loading-text="$t('Slides.get_report_data_loading')">
       <div class="input-item">
         {{$t('Slides.report_type_select')}}:<!-- <el-select  placeholder="请选择报告类型" v-model="reportItem.type" required >
                     <el-option

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

@@ -11,7 +11,7 @@
     >
       <div slot="title" style="display: flex; alignitems: center">
         <span style="fontsize: 16px"
-          >切换模板</span
+          >{{$t('Slides.switch_template_title')}}</span
         >
       </div>
       <div class="dialog-container" >

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

@@ -4,7 +4,7 @@
         :visible.sync="isShowChooseCover" 
         :close-on-click-modal="false" 
         :modal-append-to-body="false"
-        title="自定义封面页"
+        :title="$t('Slides.custom_cover_page_title')"
         custom-class="choose-cover-new-wrap"
         v-dialogDrag center width="75%" top="5vh"
         @close="$emit('close')"

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

@@ -217,7 +217,7 @@ export default {
       if(this.isStartInput&&this.isEndInput){
         //开始数字是否小于等于结束数字
         if(this.startPageNum>this.endPageNum){
-          this.$message.warning('起始页数需小于等于终止页数,请重新输入!')
+          this.$message.warning(this.$t('Slides.re_enter_entry_msg') )
           this.isStartInput = false
           this.startPageNum = null
           return

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

@@ -19,7 +19,7 @@
       <el-tooltip
         class="search-hint"
         effect="dark"
-        content="该操作将批量导入所选图分类下所有图表"
+        :content="$t('Slides.batch_import_all_chart')"
         placement="top-start"
       >
         <i style="font-size: 24px; color: #666" class="el-icon-question"></i>
@@ -116,7 +116,7 @@ export default {
         return;
       }
       if (this.list.length == 0) {
-        this.$message.warning("该分类无图表");
+        this.$message.warning(this.$t('Slides.no_charts_category_msg') );
         return;
       }
       this.$emit("handleImportMyChart", this.list);

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

@@ -37,7 +37,7 @@
           <el-tree
             ref="privateTree"
             class="target-tree"
-            empty-text="暂无分类"
+            :empty-text="$t('Slides.no_categories_empty-')"
             :data="privateList"
             node-key="nodeKeyId"
             :expand-on-click-node="false"
@@ -185,7 +185,7 @@ export default {
       data.forEach((item,index)=>{
         let temp = {}
         temp.key = index
-        temp.label = `第${index+1}页 ${item.title||this.$t('Slides.untitled_title')}`
+        temp.label = `${this.$i18n.locale == 'zh' ?`第${index+1}页`:` Slide${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

@@ -2,7 +2,7 @@
     <div class="import-mychart-wrap">
         <div>
             <el-input
-				placeholder="关键词搜索"
+				:placeholder="$t('Slides.keyword_search_ipt')"
 				v-model="keyword"
 				size="medium"
 				prefix-icon="el-icon-search"

+ 12 - 12
src/views/ppt_manage/newVersion/pptCatalog.vue

@@ -44,7 +44,7 @@
             <el-tree
               ref="publicTree"
               class="target-tree"
-              empty-text="暂无分类"
+              :empty-text="$t('Slides.no_categories_empty')"
               :data="publicList"
               node-key="nodeKeyId"
               :expand-on-click-node="false"
@@ -80,7 +80,7 @@
             <el-tree
               ref="privateTree"
               class="target-tree"
-              empty-text="暂无分类"
+              :empty-text="$t('Slides.no_categories_empty')"
               :data="privateList"
               node-key="nodeKeyId"
               :expand-on-click-node="false"
@@ -152,7 +152,7 @@
             <el-tree
               ref="sharedTree"
               class="target-tree"
-              empty-text="暂无分类"
+              :empty-text="$t('Slides.no_categories_empty')"
               :data="sharedList"
               node-key="nodeKeyId"
               :expand-on-click-node="false"
@@ -582,7 +582,7 @@ export default {
         })
       }
       //ppt3.0 除旧版的ppt以外,增加 转报告/查看报告按钮
-      const labelName = this.pptItem.isTrans?'查看报告': this.$t('Slides.convert_to_report')
+      const labelName = this.pptItem.isTrans?this.$t('Slides.view_report_btn') : this.$t('Slides.convert_to_report')
       this.pptToolList.map(i=>{
         if(i.key==='transform'){
           i.label = labelName
@@ -614,7 +614,7 @@ export default {
         const {Editor={}} = pptDetail
         let labelName = this.$t('Slides.edit_lable_name')
         if(Editor.IsEditing&&Editor.AdminId!==Number(localStorage.getItem('AdminId'))){
-            labelName = `${Editor.Editor}编辑中...`
+            labelName = `${Editor.Editor}${this.$t('Slides.editing_progress_msg') }...`
         }
         this.pptToolList.map(i=>{
             if(i.key==='edit'){
@@ -764,7 +764,7 @@ export default {
           if(!this.pptItem.overLimit||item.key!=='publish'){
             if(item.key==='edit'){
                 if(item.label.length>2){
-                    this.$message.warning("他人正在编辑中,不可重复编辑")
+                    this.$message.warning(this.$t('Slides.no_duplicated_edit_msg') )
                     return
                 }
                 //调接口加锁然后跳转
@@ -775,11 +775,11 @@ export default {
           }else if(item.key==='publish'){
             //this.$message.warning('该PPT页数超过60页或图表数量超过100张,无法发布,请修改后重试')
             if(!this.pptItem.overLimitHint.chartNum){
-              this.$message.warning('PPT插入图表数量不能超过100张,请修改后重试')
+              this.$message.warning(this.$t('Slides.exceed_ppt_msg') )
               return
             }
             if(!this.pptItem.overLimitHint.pageNum){
-              this.$message.warning('PPT页数不能超过60页,请修改后重试')
+              this.$message.warning(this.$t('Slides.exceed_sixty_ppt_msg') )
               return
             }
           }     
@@ -979,7 +979,7 @@ export default {
         GroupId:item.data.GroupId
       }).then(res=>{
         if(res.Ret===200){
-          this.$message.success('移动成功')
+          this.$message.success(this.$t('Slides.move_success_msg') )
           this.getCatalogsList()
         }
       })
@@ -1042,7 +1042,7 @@ export default {
         NextGroupPptId:nextGroupPptId
       }).then(res=>{
         if(res.Ret===200){
-          this.$message.success('移动成功')
+          this.$message.success(this.$t('Slides.move_success_msg') )
           this.getCatalogsList()
         }
       })
@@ -1089,7 +1089,7 @@ export default {
         NextGroupPptId:this.dragNextPpt?this.dragNextPpt.GroupPptId:0
       }).then(res=>{
         if(res.Ret===200){
-          this.$message.success('移动成功')
+          this.$message.success(this.$t('Slides.move_success_msg') )
           this.getCatalogsList()
         }
       })
@@ -1211,7 +1211,7 @@ export default {
     //检测当前账号是否有私有目录
     handleOpenMergeDialog(){
       if(this.privateList.length===0){
-        this.$message.warning('请先添加目录!')
+        this.$message.warning(this.$t('Slides.add_table_msg') )
       }else{
         this.mergePptShow = true
       }

+ 36 - 25
src/views/ppt_manage/newVersion/pptEditor.vue

@@ -21,7 +21,7 @@
         <div class="index-list" ref="pptList" v-click-outside="resetCopyPages">
             <div class="empty" v-if="pageList.length===0">
                 <img src="~@/assets/img/ppt_m/ppt-empty.png" alt="">
-                <p>添加正文后,会在这里生成</p>
+                <p>{{$t('Slides.add_main_text_empty')}}</p>
             </div>
             <transition-group name="flip-list">
                 <index-item 
@@ -53,7 +53,7 @@
                 <div class="ppt-editor-item flex-column" v-for="(item,index) in pageList" :key="item.id">
                     <AddFormat @addPage="addPage($event,index)" :chooseModalId="chooseModalId"/>
                     <div class="ppt-item" :class="{'choose':currentItem.id===item.id}" 
-                        v-loading="item.isUpdating" element-loading-text="正在更新图表..."
+                        v-loading="item.isUpdating" :element-loading-text="$t('Slides.updating_chart_loading')"
                         @click="changeCurrentItem(item)">
                         <!-- 标题 -->
                         <div class="title-wrap">
@@ -113,13 +113,13 @@
                 <el-button v-permission="permissionBtn.pptPermission.ppt_publish"
                  type="primary" @click="handlePublish">{{$t('Slides.go_to_publish')}}</el-button>
                 <el-button @click="handleSave('save')">{{$t('Slides.operations_save')}}</el-button>
-                <el-button type="text" @click="handleChangeEditModal"><i class="el-icon-sort" style="transform: rotate(90deg);margin-right:5px;"></i>{{isEditLayer?'ppt编辑':$t('Slides.layer_editing')}}</el-button>
+                <el-button type="text" @click="handleChangeEditModal"><i class="el-icon-sort" style="transform: rotate(90deg);margin-right:5px;"></i>{{isEditLayer? $t('Slides.ppt_edit_btn'):$t('Slides.layer_editing')}}</el-button>
             </div>
             <div class="richtext-tool"></div>
             <!-- 防止el-tabs未渲染时触发scrollToActiveTab 报错,v-if改为v-show-->
             <div class="addppt-right-box" v-show="!isEditLayer">
               <el-tabs v-model="tabsactive">
-                <el-tab-pane :label="tab" :name="tab" v-for="tab in panelTabs" :key="tab"></el-tab-pane>
+                <el-tab-pane :label="tab.label" :name="tab.val" v-for="tab in panelTabs" :key="tab.val"></el-tab-pane>
               </el-tabs>
               <div class="chart-tool flex-column" v-show="tabsactive == '图表'">
                 <div class="chart-search">
@@ -146,7 +146,7 @@
                     <tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
                 </div>
               </div>
-              <div v-show="tabsactive == $t('Slides.sandbox_name')" class="chart-tool flex-column">
+              <div v-show="tabsactive == '沙盘'" class="chart-tool flex-column">
                 <div class="chart-search">
                     <el-input :placeholder="$t('Slides.sandbox_name_category')" v-model="sandTabelQuery.Keyword" size="medium" prefix-icon="el-icon-search" style="max-width:420px;"></el-input>
                 </div>
@@ -161,7 +161,7 @@
                   <tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
                 </div>
               </div>
-              <div v-show="tabsactive == $t('Slides.table_name')" class="chart-tool flex-column">
+              <div v-show="tabsactive == '表格'" class="chart-tool flex-column">
                 <div class="chart-search">
                     <el-input :placeholder="$t('Slides.table_name_input')" v-model="sheetSearchObj.Keyword" size="medium" prefix-icon="el-icon-search" style="max-width:420px;" @input="getSheetList"></el-input>
                 </div>
@@ -175,7 +175,7 @@
                   <tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
                 </div>
               </div>
-              <div v-show="tabsactive == $t('Slides.my_eta_batch')" class="chart-tool flex-column">
+              <div v-show="tabsactive == 'MyETA批量'" class="chart-tool flex-column">
                 <insert-charts @handleImportMyChart="handleImportMyChart"/>
               </div>
               <div v-show="tabsactive == '语义分析插入'" class="chart-tool flex-column">
@@ -358,7 +358,7 @@ export default {
         catalogId:0,//ppt目录id,添加ppt时需要
         ReportId:0,//ppt对应的双周报id,如果没转过,则为0
         isChartLoading:false,//是否正在加载图表/图片
-        panelTabs: [ '图表',this.$t('Slides.my_eta_batch'),this.$t('Slides.sandbox_name'),this.$t('Slides.table_name'),'语义分析插入' ],
+        
         sheetSearchList:[],
         sheetSearchObj: {
           Keyword:''
@@ -375,6 +375,17 @@ export default {
         isShowMe: false
     };
   },
+  computed:{
+    panelTabs(){
+      return  [ 
+        {val:'图表',lable:this.$t('Slides.table_chart') },
+        {val:'MyETA批量',lable:this.$t('Slides.my_eta_batch')},
+        {val:'沙盘', lable:this.$t('Slides.sandbox_name')},
+        {val:'表格', lable:this.$t('Slides.table_name')},
+        {val:'语义分析插入', lable:this.$t('Slides.table_analysis_semantic')},
+      ]
+    },
+  },
   created() {
     //获取图表,沙盘,表格数据
     this.getreportlist()
@@ -466,7 +477,7 @@ export default {
           //开启自动保存
           this.autoSave()
         }else{
-          this.$message.error('获取ppt数据失败!')
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') )
           this.dataLoading.close();
           window.close()
         }
@@ -620,7 +631,7 @@ export default {
       try{
           clipboardItems = await navigator.clipboard.read()
       }catch(error){
-          this.$message.error("剪贴板读取不到文件!")
+          this.$message.error(this.$t('Slides.unable_files_msg') )
           return
       }
       const blob = await checkClipboardItems(clipboardItems)
@@ -634,7 +645,7 @@ export default {
        */
       //这里进行上传操作
       if(this.isChartLoading) return
-      this.chartLoadingText = "上传图片中..."
+      this.chartLoadingText = this.$t('Slides.uploading_images_msg') 
       this.isChartLoading = true
 
       // const params = new FormData();
@@ -785,7 +796,7 @@ export default {
           console.log(this.sandTableList.length,this.sandTableTotal);
 					if(this.sandTableList.length>=this.sandTableTotal){
             
-						this.loadedText = '已全部加载完'
+						this.loadedText = this.$t('Slides.all_loaded_completely_text') 
 					}else{
 						this.loadedText=''
 					}
@@ -799,7 +810,7 @@ export default {
 		// 沙盘列表滚动事件,触底加载下一页数据
 		sandTableHandleScroll:_.debounce(function (e) {
 			if(this.sandTableList.length>=this.sandTableTotal){
-				this.loadedText = '已全部加载完'
+				this.loadedText = this.$t('Slides.all_loaded_completely_text') 
 				return
 			}
 			if(e.target.scrollHeight-e.target.clientHeight-e.target.scrollTop<10 && !this.isRequesting){
@@ -810,10 +821,10 @@ export default {
     //点击右侧图表/沙盘图/表格
     chooseChart:_.throttle(async function(item,type){
         if(this.pageList.length===0||!this.currentItem){
-          this.$message.warning("请先添加页面");
+          this.$message.warning(this.$t('Slides.please_add_page_msg') );
           return;
         }
-        if(item.Disabled&&type==='chart') return this.$message.warning('内部图表,不允许插入ppt') 
+        if(item.Disabled&&type==='chart') return this.$message.warning(this.$t('Slides.internal_chart_no_msg') ) 
         if(this.isChartLoading) return
         //获取当前活动页
         const { elements, modelId } = this.currentItem;
@@ -824,7 +835,7 @@ export default {
             "chart"
         );
         if (!isAdd) {
-            this.$message.warning("已无位置,请删除现有图表/图片/表格");
+            this.$message.warning(this.$t('Slides.delete_chart_img_table') );
             return;
         }
 
@@ -1082,7 +1093,7 @@ export default {
         return {result:false,hintText:'请输入ppt类型!'}
       } */
       if(this.pageList.length===0){
-        return {result:false,hintText:'请至少添加一张PPT!'}
+        return {result:false,hintText:this.$t('Slides.least_one_ppt_msg') }
       }
       return {result:true,hintText:''}
     },
@@ -1095,16 +1106,16 @@ export default {
         return {result:false,hintText:'请输入ppt类型!'}
       } */
       if(this.pageList.length===0){
-        return {result:false,hintText:'请至少添加一张PPT!'}
+        return {result:false,hintText:this.$t('Slides.least_one_ppt_msg') }
       }
       //检验每一页
       for(let i=0;i<this.pageList.length;i++){
         if(!this.pageList[i].title){
-          return {result:false,hintText:`请输入第${i+1}张PPT的标题!`}
+          return {result:false,hintText:this.$t('Slides.please_ppt_title_msg',{count:i+1}) }
         }
         //无内容
         if(this.pageList[i].elements.length===0){
-          return {result:false,hintText:`请填写第${i+1}张PPT的内容!`}
+          return {result:false,hintText:this.$t('Slides.please_ppt_content_msg',{count:i+1}) }
         }
         //有文本框,但是文本框无内容
       }
@@ -1124,11 +1135,11 @@ export default {
       await this.handleSave('pub')
       //ppt4.0后,合并后的PPT可能会超出页数or图表限制,在这里做个校验
       if(this.pageList.length>this.maxPageNum){
-        this.$message.warning(`最多可添加${this.maxPageNum}页PPT,请修改后再试!`)
+        this.$message.warning(this.$t('Slides.most_add_ppt_msg',{count:this.maxPageNum}))
         return
       }
       if(this.chartNum>this.maxPageChart){
-        this.$message.warning(`最多可添加${this.maxPageChart}图表,请修改后再试!`);
+        this.$message.warning(this.$t('Slides.most_add_chart_msg',{count:this.maxPageChart}));
         return;
       }
       this.$router.push({path:'/pptpublish',query:{id:this.pptId}})
@@ -1148,7 +1159,7 @@ export default {
             // 在列表中目标位置增加新的节点
             newItems.splice(newIndex, 0, this.oldNum);
             this.pageList = [...newItems];
-            this.$message.success('移动成功')
+            this.$message.success(this.$t('Slides.move_success_msg') )
             //如果拖动的是当前选中的item,就定位到该item
             if(this.oldNum.id===this.currentItem.id){
               this.changeCurrentItem(this.currentItem)
@@ -1208,13 +1219,13 @@ export default {
     openDeletePageDialog(){
       //添加一页才能打开弹窗
       if(this.pageList.length===0){
-        this.$message.warning('请至少添加一页!')
+        this.$message.warning(this.$t('Slides.please_add_one_page') )
         return
       }
       this.deletePageShow = true
     },
     async handleDeletePages(list){
-      this.$refs.deletePage.loadingText="删除中..."
+      this.$refs.deletePage.loadingText= this.$t('Slides.deleting_process_loading') 
       this.$refs.deletePage.dataLoading=true
       this.deletePages(list)
     },

+ 13 - 13
src/views/ppt_manage/newVersion/pptEnCatalog.vue

@@ -43,7 +43,7 @@
             <el-tree
               ref="publicTree"
               class="target-tree"
-              empty-text="暂无分类"
+              :empty-text="$t('Slides.no_categories_empty')"
               :data="publicList"
               node-key="nodeKeyId"
               :expand-on-click-node="false"
@@ -77,7 +77,7 @@
             <el-tree
               ref="privateTree"
               class="target-tree"
-              empty-text="暂无分类"
+              :empty-text="$t('Slides.no_categories_empty')"
               :data="privateList"
               node-key="nodeKeyId"
               :expand-on-click-node="false"
@@ -147,7 +147,7 @@
             <el-tree
               ref="sharedTree"
               class="target-tree"
-              empty-text="暂无分类"
+              :empty-text="$t('Slides.no_categories_empty')"
               :data="sharedList"
               node-key="nodeKeyId"
               :expand-on-click-node="false"
@@ -226,7 +226,7 @@
             </div>
           </draggable>
           <div class="empty" v-if="catalogPPTList.length===0">
-            <tableNoData text="暂无数据"/>
+            <tableNoData :text="$t('Confirm.prompt_slogan')"/>
           </div>
         </div>
       </div>
@@ -541,7 +541,7 @@ export default {
       }
       //去掉转英文PPT按钮
       this.pptToolList = this.pptToolList.filter(_=>_.key!=='transEn')
-      const labelName = this.pptItem.isTrans?'查看报告': this.$t('Slides.convert_to_report')
+      const labelName = this.pptItem.isTrans?this.$t('Slides.view_report_btn') : this.$t('Slides.convert_to_report')
       this.pptToolList.map(i=>{
         if(i.key==='transform'){
           i.label = labelName
@@ -573,7 +573,7 @@ export default {
         const {Editor={}} = pptDetail
         let labelName = this.$t('Slides.edit_lable_name')
         if(Editor.IsEditing&&Editor.AdminId!==Number(localStorage.getItem('AdminId'))){
-            labelName = `${Editor.Editor}编辑中...`
+            labelName = `${Editor.Editor}${this.$t('Slides.editing_progress_msg') }...`
         }
         this.pptToolList.map(i=>{
             if(i.key==='edit'){
@@ -720,7 +720,7 @@ export default {
         if(!this.pptItem.overLimit||item.key!=='publish'){
             if(item.key==='edit'){
                 if(item.label.length>2){
-                    this.$message.warning("他人正在编辑中,不可重复编辑")
+                    this.$message.warning(this.$t('Slides.no_duplicated_edit_msg') )
                     return
                 }
                 //调接口加锁然后跳转
@@ -730,11 +730,11 @@ export default {
           window.open(urlMap[item.key],'_blank');
         }else if(item.key==='publish'){
           if(!this.pptItem.overLimitHint.chartNum){
-            this.$message.warning('PPT插入图表数量不能超过100张,请修改后重试')
+            this.$message.warning(this.$t('Slides.exceed_ppt_msg') )
             return
           }
           if(!this.pptItem.overLimitHint.pageNum){
-            this.$message.warning('PPT页数不能超过60页,请修改后重试')
+            this.$message.warning(this.$t('Slides.exceed_sixty_ppt_msg') )
             return
           }
         }     
@@ -895,7 +895,7 @@ export default {
         GroupId:item.data.GroupId
       }).then(res=>{
         if(res.Ret===200){
-          this.$message.success('移动成功')
+          this.$message.success(this.$t('Slides.move_success_msg') )
           this.getCatalogsList()
         }
       })
@@ -956,7 +956,7 @@ export default {
         NextGroupPptId:nextGroupPptId
       }).then(res=>{
         if(res.Ret===200){
-          this.$message.success('移动成功')
+          this.$message.success(this.$t('Slides.move_success_msg') )
           this.getCatalogsList()
         }
       })
@@ -1000,7 +1000,7 @@ export default {
         NextGroupPptId:this.dragNextPpt?this.dragNextPpt.GroupPptId:0
       }).then(res=>{
         if(res.Ret===200){
-          this.$message.success('移动成功')
+          this.$message.success(this.$t('Slides.move_success_msg') )
           this.getCatalogsList()
         }
       })
@@ -1123,7 +1123,7 @@ export default {
     //检测当前账号是否有私有目录
     handleOpenMergeDialog(){
       if(this.privateList.length===0){
-        this.$message.warning('请先添加目录!')
+        this.$message.warning(this.$t('Slides.add_table_msg') )
       }else{
         this.mergePptShow = true
       }

+ 38 - 28
src/views/ppt_manage/newVersion/pptEnEditor.vue

@@ -20,7 +20,7 @@
         <div class="index-list" ref="pptList" v-click-outside="resetCopyPages">
             <div class="empty" v-if="pageList.length===0">
                 <img src="~@/assets/img/ppt_m/ppt-empty.png" alt="">
-                <p>添加正文后,会在这里生成</p>
+                <p>{{$t('Slides.add_main_text_empty')}}</p>
             </div>
             <transition-group name="flip-list">
                 <index-item 
@@ -51,7 +51,7 @@
               <div class="ppt-editor-item flex-column" v-for="(item,index) in pageList" :key="item.id">
                 <AddFormat @addPage="addPage($event,index)" :chooseModalId="chooseModalId"/>
                 <div class="ppt-item" :class="{'choose':currentItem.id===item.id}" 
-                  v-loading="item.isUpdating" element-loading-text="正在更新图表..."
+                  v-loading="item.isUpdating" :element-loading-text="$t('Slides.updating_chart_loading')"
                   @click="changeCurrentItem(item)">
                     <!-- 标题 -->
                     <div class="title-wrap" style="left:8%;width:62%;">
@@ -110,7 +110,7 @@
                 <el-button v-permission="permissionBtn.enPPTPermission.pptEn_publish"
                  type="primary" @click="handlePublish">{{$t('Slides.go_to_publish')}}</el-button>
                 <el-button @click="handleSave('save')">{{$t('Slides.operations_save')}}</el-button>
-                <el-button type="text" @click="handleChangeEditModal"><i class="el-icon-sort" style="transform: rotate(90deg);margin-right:5px;"></i>{{isEditLayer?'ppt编辑':$t('Slides.layer_editing')}}</el-button>
+                <el-button type="text" @click="handleChangeEditModal"><i class="el-icon-sort" style="transform: rotate(90deg);margin-right:5px;"></i>{{isEditLayer? $t('Slides.ppt_edit_btn'):$t('Slides.layer_editing')}}</el-button>
             </div>
             <div class="richtext-tool"></div>
             <div class="addppt-right-box" v-show="!isEditLayer">
@@ -131,7 +131,7 @@
                   <el-radio :label="10">{{$t('Slides.intercommodity_analysis')}}</el-radio>
                 </el-radio-group>
                 <div style="margin: 10px 0">
-                  <el-checkbox v-model="isShowMe" @change="() => {search_page=1;$refs.chartListRef.scrollTop = 0;getreportlist()}">只看我的</el-checkbox>
+                  <el-checkbox v-model="isShowMe" @change="() => {search_page=1;$refs.chartListRef.scrollTop = 0;getreportlist()}">{{$t('Slides.just_mine_radio')}}</el-checkbox>
                 </div>
                 <div class="chart-list" v-infinite-scroll="loadReportHandle" :infinite-scroll-immediate="false" ref="chartListRef">
                     <template v-if="chartList.length">
@@ -147,7 +147,7 @@
                     <tableNoData  :text="$t('Table.prompt_slogan')" size="mini" v-else/>
                 </div>
               </div>
-              <div v-show="tabsactive == $t('Slides.sandbox_name')" class="chart-tool flex-column">
+              <div v-show="tabsactive == '沙盘'" class="chart-tool flex-column">
                 <div class="chart-search">
                     <el-input :placeholder="$t('Slides.sandbox_name_category')" v-model="sandTabelQuery.Keyword" size="medium" prefix-icon="el-icon-search" style="max-width:420px;"></el-input>
                 </div>
@@ -163,7 +163,7 @@
                   <tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
                 </div>
               </div>
-              <div v-show="tabsactive == $t('Slides.table_name')" class="chart-tool flex-column">
+              <div v-show="tabsactive == '表格'" class="chart-tool flex-column">
                 <div class="chart-search">
                     <el-input :placeholder="$t('Slides.table_name_input')" v-model="sheetSearchObj.Keyword" size="medium" prefix-icon="el-icon-search" style="max-width:420px;" @input="getSheetList"></el-input>
                 </div>
@@ -177,7 +177,7 @@
                   <tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
                 </div>
               </div>
-              <div v-show="tabsactive == $t('Slides.my_eta_batch')" class="chart-tool flex-column">
+              <div v-show="tabsactive == 'MyETA批量'" class="chart-tool flex-column">
                 <insert-charts 
                   @handleImportMyChart="handleImportMyChart"
                   :showEnMark="true"
@@ -382,7 +382,6 @@ export default {
         catalogId:0,//ppt目录id,添加ppt时需要
         ReportId:0,//ppt对应的双周报id,如果没转过,则为0
         isChartLoading:false,//是否正在加载图表/图片
-        panelTabs: [ '图表',this.$t('Slides.my_eta_batch'),this.$t('Slides.sandbox_name'),this.$t('Slides.table_name'),'语义分析插入' ],
         sheetSearchList:[],
         sheetSearchObj: {
           Keyword:''
@@ -403,6 +402,17 @@ export default {
   created() {
 		this.getSandTable()
 	},
+  computed:{
+    panelTabs(){
+      return  [ 
+        {val:'图表',lable:this.$t('Slides.table_chart') },
+        {val:'MyETA批量',lable:this.$t('Slides.my_eta_batch')},
+        {val:'沙盘', lable:this.$t('Slides.sandbox_name')},
+        {val:'表格', lable:this.$t('Slides.table_name')},
+        {val:'语义分析插入', lable:this.$t('Slides.table_analysis_semantic')},
+      ]
+    },
+  },
   mounted(){
       if(Highcharts.charts){
         Highcharts.charts.length=0
@@ -488,7 +498,7 @@ export default {
           //开启自动保存
           this.autoSave()
         }else{
-          this.$message.error('获取ppt数据失败!')
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') )
           this.dataLoading.close();
           window.close()
         }
@@ -630,7 +640,7 @@ export default {
       try{
           clipboardItems = await navigator.clipboard.read()
       }catch(error){
-          this.$message.error("剪贴板读取不到文件!")
+          this.$message.error(this.$t('Slides.unable_files_msg') )
           return
       }
       const blob = await checkClipboardItems(clipboardItems)
@@ -644,7 +654,7 @@ export default {
        */
       //这里进行上传操作
       if(this.isChartLoading) return
-      this.chartLoadingText = "上传图片中..."
+      this.chartLoadingText = this.$t('Slides.uploading_images_msg') 
       this.isChartLoading = true
       // const params = new FormData();
 			// params.append('Image',$event.src)
@@ -793,7 +803,7 @@ export default {
           console.log(this.sandTableList.length,this.sandTableTotal);
 					if(this.sandTableList.length>=this.sandTableTotal){
             
-						this.loadedText = '已全部加载完'
+						this.loadedText = this.$t('Slides.all_loaded_completely_text') 
 					}else{
 						this.loadedText=''
 					}
@@ -807,7 +817,7 @@ export default {
 		// 沙盘列表滚动事件,触底加载下一页数据
 		sandTableHandleScroll:_.debounce(function (e) {
 			if(this.sandTableList.length>=this.sandTableTotal){
-				this.loadedText = '已全部加载完'
+				this.loadedText = this.$t('Slides.all_loaded_completely_text') 
 				return
 			}
 			if(e.target.scrollHeight-e.target.clientHeight-e.target.scrollTop<10 && !this.isRequesting){
@@ -818,10 +828,10 @@ export default {
     //点击右侧图表或者沙盘图
     chooseChart:_.throttle(async function(item,type){
         if(this.pageList.length===0||!this.currentItem){
-          this.$message.warning("请先添加页面");
+          this.$message.warning(this.$t('Slides.please_add_page_msg') );
           return;
         }
-        if(item.Disabled&&type==='chart') return this.$message.warning('内部图表,不允许插入ppt') 
+        if(item.Disabled&&type==='chart') return this.$message.warning(this.$t('Slides.internal_chart_no_msg') ) 
         if(this.isChartLoading) return
         //获取当前活动页
         const { elements, modelId } = this.currentItem;
@@ -832,7 +842,7 @@ export default {
             "chart"
         );
         if (!isAdd) {
-            this.$message.warning("已无位置,请删除现有图表/图片/表格");
+            this.$message.warning(this.$t('Slides.delete_chart_img_table') );
             return;
         }
 
@@ -1056,12 +1066,12 @@ export default {
     //保存时的校验规则:封面信息,至少一页
     save_checkPPT(){
       if(!this.firstPage.Title){
-        return {result:false,hintText:'请输入封面标题!'}
+        return {result:false,hintText:this.$t('Slides.please_input_cover_title') }
       }/* else if(!this.firstPage.ReportType){
         return {result:false,hintText:'请输入ppt类型!'}
       } */
       if(this.pageList.length===0){
-        return {result:false,hintText:'请至少添加一张PPT!'}
+        return {result:false,hintText:this.$t('Slides.least_one_ppt_msg') }
       }
       return {result:true,hintText:''}
     },
@@ -1069,28 +1079,28 @@ export default {
     checkPPT(){
       //检验首页
       if(!this.firstPage.Title){
-        return {result:false,hintText:'请输入封面标题!'}
+        return {result:false,hintText:this.$t('Slides.please_input_cover_title') }
       }/* else if(!this.firstPage.ReportType){
         return {result:false,hintText:'请输入ppt类型!'}
       } */
       if(this.pageList.length===0){
-        return {result:false,hintText:'请至少添加一张PPT!'}
+        return {result:false,hintText:this.$t('Slides.least_one_ppt_msg') }
       }
       //检验每一页
       for(let i=0;i<this.pageList.length;i++){
         if(!this.pageList[i].title){
-          return {result:false,hintText:`请输入第${i+1}张PPT的标题!`}
+          return {result:false,hintText:this.$t('Slides.please_ppt_title_msg',{count:i+1}) }
         }
         //无内容
         if(this.pageList[i].elements.length===0){
-          return {result:false,hintText:`请填写第${i+1}张PPT的内容!`}
+          return {result:false,hintText:this.$t('Slides.please_ppt_content_msg',{count:i+1})}
         }
       }
       return {result:true,hintText:''}
     },
     async handlePublish(){
       if(!this.isSave){
-        this.$message.warning("请先保存!")
+        this.$message.warning(this.$t('Slides.please_save_first') )
         return
       }else{
         const {result,hintText} = this.checkPPT()
@@ -1102,11 +1112,11 @@ export default {
       await this.handleSave('pub')
       //ppt4.0后,合并后的PPT可能会超出页数or图表限制,在这里做个校验
       if(this.pageList.length>this.maxPageNum){
-        this.$message.warning(`最多可添加${this.maxPageNum}页PPT,请修改后再试!`)
+        this.$message.warning(this.$t('Slides.most_add_ppt_msg',{count:this.maxPageNum}))
         return
       }
       if(this.chartNum>this.maxPageChart){
-        this.$message.warning(`最多可添加${this.maxPageChart}图表,请修改后再试!`);
+        this.$message.warning(this.$t('Slides.most_add_chart_msg',{count:this.maxPageNum}));
         return;
       }
       this.$router.push({path:'/pptenpublish',query:{id:this.pptId}})
@@ -1126,7 +1136,7 @@ export default {
             // 在列表中目标位置增加新的节点
             newItems.splice(newIndex, 0, this.oldNum);
             this.pageList = [...newItems];
-            this.$message.success('移动成功')
+            this.$message.success(this.$t('Slides.move_success_msg') )
             //如果拖动的是当前选中的item,就定位到该item
             if(this.oldNum.id===this.currentItem.id){
               this.changeCurrentItem(this.currentItem)
@@ -1186,13 +1196,13 @@ export default {
     openDeletePageDialog(){
       //添加一页才能打开弹窗
       if(this.pageList.length===0){
-        this.$message.warning('请至少添加一页!')
+        this.$message.warning(this.$t('Slides.please_add_one_page') )
         return
       }
       this.deletePageShow = true
     },
     async handleDeletePages(list){
-      this.$refs.deletePage.loadingText="删除中..."
+      this.$refs.deletePage.loadingText= this.$t('Slides.deleting_process_loading') 
       this.$refs.deletePage.dataLoading=true
       this.deletePages(list)
     },

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

@@ -329,12 +329,12 @@ export default {
           this.currentItem = this.coverInfo.index
           this.currentIndex=0
         }else{
-          this.$message.error('获取ppt数据失败!');
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') );
           this.dataLoading.close();
           window.close()
         }
       }else{
-        this.$message.error('无对应的ppt数据!')
+        this.$message.error(this.$t('Slides.no_corresponding_ppt_msg') )
         window.close()
       }
       /* this.pageList = pageList
@@ -503,9 +503,9 @@ export default {
     //全屏的message提示
     showHint(type){
       if(type==='prev'){
-        this.hintText='已是第一张PPT!'
+        this.hintText= this.$t('Slides.this_one_ppt_msg') 
       }else{
-        this.hintText='已是最后一张PPT!'
+        this.hintText= this.$t('Slides.this_last_ppt_msg') 
       }
       setTimeout(()=>{
         this.hintText = null

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

@@ -182,12 +182,12 @@ export default {
           this.coverInfo.page.imgLocalUrl = pptCoverEn[FirstPage.TemplateType-1]
           this.ReportId = ReportId
         }else{
-          this.$message.error('获取ppt数据失败!')
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') )
           this.dataLoading.close();
           window.close()
         }
       }else{
-        this.$message.error('无对应的ppt数据!')
+        this.$message.error(this.$t('Slides.no_corresponding_ppt_msg') )
         window.close()
       }
       //this.pageList = pageList
@@ -590,7 +590,7 @@ export default {
         }
       } catch (error) {
         console.log(error);
-        this.$message.warning('上传失败,请刷新重试')
+        this.$message.warning(this.$t('Slides.upload_error_msg') )
       }
     },
     //chart->svg

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

@@ -327,12 +327,12 @@ export default {
           this.currentItem = this.coverInfo.index
           this.currentIndex=0
         }else{
-          this.$message.error('获取ppt数据失败!');
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') );
           this.dataLoading.close();
           window.close()
         }
       }else{
-        this.$message.error('无对应的ppt数据!')
+        this.$message.error(this.$t('Slides.no_corresponding_ppt_msg') )
         window.close()
       }
       /* this.pageList = pageList
@@ -501,9 +501,9 @@ export default {
     //全屏的message提示
     showHint(type){
       if(type==='prev'){
-        this.hintText='已是第一张PPT!'
+        this.hintText= this.$t('Slides.this_one_ppt_msg') 
       }else{
-        this.hintText='已是最后一张PPT!'
+        this.hintText= this.$t('Slides.this_last_ppt_msg') 
       }
       setTimeout(()=>{
         this.hintText = null

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

@@ -206,12 +206,12 @@ export default {
           this.coverInfo.page.imgLocalUrl = this.bgList[FirstPage.TemplateType-1]
           this.ReportId = ReportId
         }else{
-          this.$message.error('获取ppt数据失败!')
+          this.$message.error(this.$t('Slides.error_ppt_data_msg') )
           this.dataLoading.close();
           window.close()
         }
       }else{
-        this.$message.error('无对应的ppt数据!')
+        this.$message.error(this.$t('Slides.no_corresponding_ppt_msg') )
         window.close()
       }
       //this.pageList = pageList
@@ -641,7 +641,7 @@ export default {
         }
       } catch (error) {
         console.log(error);
-        this.$message.warning('上传失败,请刷新重试')
+        this.$message.warning(this.$t('Slides.upload_error_msg') )
       }
     },
     //chart->svg

+ 7 - 7
src/views/report_manage/components/importMyChart.vue

@@ -5,7 +5,7 @@
 				style="width:300px" 
 				v-model="selectMyChartClassify" 
 				filterable 
-				placeholder="图分类名称"
+				:placeholder="$t('ReportManage.ReportList.chart_category_name')"
 				@change="handleChange"
 			>
 				<el-option
@@ -16,8 +16,8 @@
 				>
 				</el-option>
 			</el-select>
-			<el-button type="primary" @click="handleImport">一键导入</el-button>
-			<el-tooltip class="item" effect="dark" content="该操作将批量导入所选图分类下所有图表" placement="top-start">
+			<el-button type="primary" @click="handleImport">{{$t('ReportManage.ReportList.click_import')}}</el-button>
+			<el-tooltip class="item" effect="dark" :content="$t('ReportManage.ReportList.import_all_chart_msg')" placement="top-start">
 				<i style="font-size:24px;color: #666;" class="el-icon-question"></i>
 			</el-tooltip>
 		</div>
@@ -29,7 +29,7 @@
             </div>
 		</div>
         <div v-if="list.length==0" class="empty-box">
-            无数据
+            {{$t('Table.prompt_slogan')}}
         </div>
     </div>
 </template>
@@ -100,11 +100,11 @@ export default {
 
         handleImport:_.throttle(function(){
             if(!this.selectMyChartClassify){
-                this.$message.warning('请选择分类')
+                this.$message.warning(this.$t('ReportManage.ReportList.please_select_category'))
                 return
             }
             if(this.list.length==0){
-                this.$message.warning('该分类无图表')
+                this.$message.warning(this.$t('ReportManage.ReportList.no_chart_msg'))
                 return
             }
             this.$emit('handleImportMyChart',this.list)
@@ -118,7 +118,7 @@ export default {
         },1000),
 
         handleClickItem(){
-            this.$message.warning('此处不支持单个插入图表')
+            this.$message.warning(this.$t('ReportManage.ReportList.no_one_charts'))
         }
     },
 }

+ 2 - 2
src/views/report_manage/components/importSemantics.vue

@@ -2,7 +2,7 @@
     <div class="import-mychart-wrap">
         <div>
             <el-input
-				placeholder="关键词搜索"
+			    :placeholder="$t('ReportManage.ReportList.keyword_search')"
 				v-model="keyword"
 				size="medium"
 				prefix-icon="el-icon-search"
@@ -16,7 +16,7 @@
             </div>
 		</div>
         <div v-if="list.length==0" class="empty-box">
-            无数据
+              {{$t('Table.prompt_slogan')}}
         </div>
     </div>
 </template>

+ 22 - 22
src/views/report_manage/components/strategyReportEdit.vue

@@ -10,22 +10,22 @@
       id="login-container"
       @submit.native.prevent
     >
-      <el-form-item prop="classifynameArr" label="分类">
+      <el-form-item prop="classifynameArr" :label="$t('ReportManage.ReportList.classificiation_selest')">
         <el-cascader
           @change="userclassidreportdetail"
           :options="optionsArr"
           v-model="aeForm.classifynameArr"
-          placeholder="类型筛选"
+          :placeholder="$t('ReportManage.smart_type_filtering')"
           size="medium"
           style="width: 500px"
           disabled
         ></el-cascader>
       </el-form-item>
-      <el-form-item prop="title" label="标题">
+      <el-form-item prop="title" :label="$t('ReportManage.ReportList.title_ipt')">
         <el-input
           type="textarea"
           :rows="2"
-          placeholder="请输入"
+          :placeholder="$t('ReportManage.smart_msg.please_enter')"
           v-model="aeForm.title"
           size="medium"
           style="width: 500px"
@@ -35,17 +35,17 @@
         <el-input
           type="textarea"
           :rows="2"
-          placeholder="请输入"
+          :placeholder="$t('ReportManage.smart_msg.please_enter')"
           v-model="aeForm.abstract"
           size="medium"
           style="width: 500px"
         ></el-input>
       </el-form-item>
-      <el-form-item label="作者">
+      <el-form-item :label="$t('ReportManage.ReportList.author_select')">
         <el-select
           v-model="aeForm.author"
           multiple
-          placeholder="请选择"
+          :placeholder="$t('ReportManage.ReportList.please_select_author')"
           size="medium"
           style="width: 500px"
         >
@@ -57,37 +57,37 @@
           ></el-option>
         </el-select>
       </el-form-item>
-      <el-form-item label="频度">
+      <el-form-item :label="$t('ReportManage.ReportList.frequency_select')">
         <el-select
           v-model="aeForm.frequency"
-          placeholder="请选择"
+         :placeholder="$t('ReportManage.CategoryList.please_select')"
           size="medium"
           style="width: 500px"
         >
-          <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-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>
       </el-form-item>
-      <el-form-item label="创建时间">
+      <el-form-item :label="$t('ReportManage.ReportList.creation_time_select')">
         <el-date-picker
           v-model="aeForm.create_time"
           type="date"
           value-format="yyyy-MM-dd"
-          placeholder="选择日期"
+					:placeholder="$t('ReportManage.ReportList.select_date')" 
           size="medium"
           :clearable="false"
           style="width: 500px"
         ></el-date-picker>
       </el-form-item>
       <div style="text-align:center;margin-top:30px;margin-bottom:30px">
-          <el-button type="primary" plain @click="close">取消</el-button>
-          <el-button type="primary" @click="handleConfirm">确定</el-button>
+          <el-button type="primary" plain @click="close">{{$t('Dialog.cancel_btn')}}</el-button>
+          <el-button type="primary" @click="handleConfirm">{{$t('Dialog.confirm_btn')}}</el-button>
       </div>
     </el-form>
   </div>
@@ -245,7 +245,7 @@ export default {
                 CreateTime: this.aeForm.create_time //创建时间
             }).then(res=>{
                 if(res.Ret===200){
-                    this.$message.success('编辑成功')
+                    this.$message.success(this.$t('MsgPrompt.edit_msg'))
                     this.$emit('refresh')
                     this.close()
                 }

+ 23 - 18
src/views/report_manage/dayOrWeek.vue

@@ -25,12 +25,12 @@
                     <el-input placeholder="请填写作者" v-model="form.auth" style="width:80%"></el-input>
                 </el-form-item>
                 <div v-if="!$route.query.isEdit">
-                    <el-button type="primary" plain @click="$router.go(-1)">取消</el-button>
-                    <el-button type="primary" @click="handleSave">保存</el-button>
+                    <el-button type="primary" plain @click="$router.go(-1)">{{$t('Dialog.cancel_btn')}}</el-button>
+                    <el-button type="primary" @click="handleSave">{{$t('Dialog.confirm_save_btn')}}</el-button>
                 </div>
             </section>
             <section class="section" v-if="$route.query.isEdit">
-                <div style="font-size:16px;margin-bottom:20px">章节列表</div>
+                <div style="font-size:16px;margin-bottom:20px">{{$t('ReportManage.ReportList.chapter_list_label')}}</div>
                 <div class="list-box">
                     <div class="list-item" v-for="(item,index) in list" :key="item.ReportChapterId">
                         <div class="item-image-box">
@@ -40,11 +40,11 @@
                         <div style="border-bottom:1px solid #ededed;padding-bottom:5px;margin-bottom:5px">{{item.TypeName}}</div>
                         <div class="bot">
                             <p>
-                                <span :style="{color:item.PublishState==2&&'#67C23A'}">{{item.PublishState==1?'未发布':'已发布'}}</span>
-                                <span style="float:right;color:#4099ef;cursor: pointer;" @click.stop="handleShowEditTag(item)">{{item.Trend||'添加标签'}}</span>
+                                <span :style="{color:item.PublishState==2&&'#67C23A'}">{{item.PublishState==1? $t('ReportManage.smart_unpublished') : $t('ReportManage.smart_published') }}</span>
+                                <span style="float:right;color:#4099ef;cursor: pointer;" @click.stop="handleShowEditTag(item)">{{item.Trend||$t('ReportManage.ReportList.add_labels_section')}}</span>
                             </p>
                             <p style="margin-top:5px">
-                                <span :style="{color:item.VideoUrl&&item.VideoKind==1?'#67C23A':''}" v-if="form.type=='week'">{{item.VideoUrl&&item.VideoKind==1?'已传录音':'未传录音'}}</span>
+                                <span :style="{color:item.VideoUrl&&item.VideoKind==1?'#67C23A':''}" v-if="form.type=='week'">{{item.VideoUrl&&item.VideoKind==1? $t('ReportManage.ReportList.recorded_audio'):$t('ReportManage.ReportList.not_recorded_audio')}}</span>
                                 <el-popover
                                     placement="bottom"
                                     trigger="click"
@@ -55,7 +55,7 @@
                                         style="float:right;color:#4099ef;cursor: pointer;" 
                                         v-if="item.PublishState==2" 
                                         @click="handleGetWechatImg(item,index)"
-                                    >微信分享</span>
+                                    >{{$t('ReportManage.ReportList.weChat_share')}}</span>
                                 </el-popover>
                             </p>
                             <p style="margin-top:5px"><span>{{item.ModifyTime}}</span></p>
@@ -63,9 +63,9 @@
                     </div>
                 </div>
                 <div>
-                    <el-button type="primary" style="width:120px" @click="handleEditDayWeekReport">保存</el-button>
+                    <el-button type="primary" style="width:120px" @click="handleEditDayWeekReport">{{$t('Dialog.confirm_save_btn')}}</el-button>
                     <el-button v-if="permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_publish)"
-                        type="primary" style="width:120px" @click="handlePublishValid">发布</el-button>
+                        type="primary" style="width:120px" @click="handlePublishValid">{{$t('Dialog.ReportList.publish_btn')}}</el-button>
                 </div>
             </section>
         </el-form>
@@ -75,7 +75,7 @@
         :visible.sync="editTag.show"
 		:modal-append-to-body='false'
 		width="400px"
-        title="设置标签"
+        :title="$t('ReportManage.ReportList.set_tags_title')"
         v-dialogDrag
       >
         <div class="edit-tag-wrap">
@@ -85,7 +85,7 @@
                 filterable
                 allow-create
                 default-first-option
-                placeholder="输入或者选择">
+                :placeholder="$t('ReportManage.ReportList.select_ipt_pld')">
                 <el-option
                     v-for="item in TagOptions"
                     :key="item.value"
@@ -94,8 +94,8 @@
                 </el-option>
             </el-select>
             <div style="margin:30px 0;text-align:center">
-                <el-button type="primary" plain @click="editTag.show=false">取消</el-button>
-                <el-button type="primary" @click="handleEditTrendTag">确定</el-button>
+                <el-button type="primary" plain @click="editTag.show=false">{{$t('Dialog.cancel_btn')}}</el-button>
+                <el-button type="primary" @click="handleEditTrendTag">{{$t('Dialog.confirm_btn')}}</el-button>
             </div>
         </div>
       </el-dialog>
@@ -132,11 +132,7 @@ export default {
                 time:'',
                 auth:''
             },
-            rules:{
-                type:[{required:true,message:'请选择报告类型',trigger:'change'}],
-                title:[{required:true,message:'请填写报告标题',trigger:'blur'}],
-                time:[{required:true,message:'请选择日期',trigger:'change'}]
-            },
+            
             list:[],
             reportId:this.$route.query.reportid||'',
             isEdit:this.$route.query.isEdit,
@@ -149,6 +145,15 @@ export default {
             TagOptions:[]
         }
     },
+    computed:{
+        rules(){
+           return {
+                type:[{required:true,message:this.$t('ReportManage.ReportList.please_report_type_select'),trigger:'change'}],
+                title:[{required:true,message:this.$t('ReportManage.ReportList.please_report_title_input'),trigger:'blur'}],
+                time:[{required:true,message:this.$t('ReportManage.ReportList.please_select_date'),trigger:'change'}]
+            } 
+        }
+    },
     created () {
         if(this.reportId){
             this.getChapterList(this.reportId)

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

@@ -287,7 +287,7 @@ export default {
 
     editHandle({ReportAuthor,Id}) {
       this.authorForm = {
-        title: '编辑作者',
+        title: this.$t('ReportManage.AuthorManagement.edit_author_btn') ,
         name: ReportAuthor,
         id: Id
       }
@@ -295,7 +295,7 @@ export default {
     },
 
     delHandle({Id}) {
-      this.$confirm("删除不可恢复,确认删除该作者名称吗?", "提示", {
+      this.$confirm(this.$t('ReportManage.AuthorManagement.delete_info_msg') , this.$t('Confirm.prompt') , {
         type: "warning"
       }).then(() => {
         reportAuthorInterface.authorDel({Id}).then(res => {

+ 53 - 50
src/views/report_manage/reportEn/reportlist.vue

@@ -153,7 +153,7 @@
           <template #header>
             <span v-if="item.key==='Pv'">
               PV
-              <el-tooltip class="item" effect="dark" content="pv:报告被打开的次数,每次打开都计算一次" placement="top-start">
+              <el-tooltip class="item" effect="dark" :content="`pv:${$t('ReportManage.number_tooltip_pv_show')}`" placement="top-start">
                 <i class="el-icon-warning"/>
               </el-tooltip>
             </span>
@@ -212,11 +212,11 @@
                         <span class="editsty" @click="handleSubmitReport(row)" v-if="row.CanEdit&&row.State===3
                                 &&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>
+                            @click="reportHandle(row,'edit')" v-if="row.CanEdit">{{$t('Table.edit_btn')}}</span>
                         <span v-permission="permissionBtn.enReportManageBtn.enReport_reportEdit" class="editsty"
                             @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>
+                            @click="reportHandle(row,'del')" v-if="row.CanEdit">{{$t('Table.delete_btn')}}</span>
                     </template>
                     <template v-if="[2,6].includes(row.State)">
                         <span
@@ -418,7 +418,7 @@
       :append-to-body="true" 
       :visible.sync="showEdit" 
       width="700px" 
-      title="编辑"
+      :title="$t('Dialog.title_prefix_edit')"
     >
       <strategyReportEdit v-if="showEdit" :id="editId" @close="showEdit=false,editId=0" @refresh="getTableData"/>
     </el-dialog>
@@ -484,50 +484,86 @@ export default {
       tableData: [],
       page_no: 1,
       total: 0,
-      tableColums:[
+
+      popData:{
+        show:false,
+        checkUser:false,//是否选择指定人员
+        options: [],
+        value: [],
+        customOptions:[],
+        customValue:[],
+        theme:'',
+        reportId:0,
+        varietyOpt:[],
+        varietyVal:[],
+      },
+
+      PVData:{
+        show:false,
+        list:[],
+        page:1,
+        pageSize:15,
+        total:0,
+        reportId:0
+      },
+
+      showEdit:false,//显示编辑策略报告弹窗
+      editId:0,//编辑策略报告id
+
+      isPull:false,//是否正在同步获取报告
+      selectNum:1,
+    };
+  },
+  mounted() {
+    this.getclassifylist();
+    this.getTableData()
+  },
+  computed:{
+    tableColums(){
+      return [
         {
-            label: '报告标题',
+            label:this.$t('ReportManage.smart_report_title') || '报告标题',
             key: 'Title',
             minwidthsty: 150,
             fixed:'left'
         },
         {
-            label: '摘要',
+            label: this.$t('ReportManage.smart_abstract_table') || '摘要',
             key: 'Abstract',
             minwidthsty: 150,
             fixed:'left'
         },
         {
-            label: '报告类型',
+            label:this.$t('ReportManage.smart_report_type') || '报告类型',
             key: 'FullClassifyName',
             minwidthsty: 120
         },
         {
-            label: '创建人',
+            label: this.$t('ReportManage.smart_creator_btn') ||'创建人',
             key: 'AdminRealName',
             minwidthsty: 100
         },
         {
-            label: '状态',
+            label:this.$t('ReportManage.smart_status_table') || '状态',
             key: 'State',
         },
         {
-            label: '发布时间',
+            label:this.$t('ReportManage.smart_publish_time') || '发布时间',
             key: 'PublishTime',
             minwidthsty: 120
         },
         {
-            label: '更新时间',
+            label:this.$t('ReportManage.smart_update_time') || '更新时间',
             key: 'ModifyTime',
             minwidthsty: 120
         },
         {
-            label: '期数',
+            label:this.$t('ReportManage.smart_issue_number_btn') || '期数',
             key: 'Stage',
             widthsty: 100
         },
         {
-            label: '频度',
+            label:this.$t('ReportManage.smart_frequency_btn') || '频度',
             key: 'Frequency',
         },
         {
@@ -535,47 +571,14 @@ export default {
             key: 'Pv',
         },
         {
-            label: '操作',
+            label:this.$t('Table.column_operations') || '操作',
             key: 'handle',
             widthsty: 150,
             fixed:'right',
         },
-      ],
-
-      popData:{
-        show:false,
-        checkUser:false,//是否选择指定人员
-        options: [],
-        value: [],
-        customOptions:[],
-        customValue:[],
-        theme:'',
-        reportId:0,
-        varietyOpt:[],
-        varietyVal:[],
-      },
-
-      PVData:{
-        show:false,
-        list:[],
-        page:1,
-        pageSize:15,
-        total:0,
-        reportId:0
-      },
-
-      showEdit:false,//显示编辑策略报告弹窗
-      editId:0,//编辑策略报告id
-
-      isPull:false,//是否正在同步获取报告
-      selectNum:1,
-    };
-  },
-  mounted() {
-    this.getclassifylist();
-    this.getTableData()
+      ]
+    }
   },
-
   methods: {
     //获取分类列表
     getclassifylist(){

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

@@ -40,7 +40,7 @@
         <!-- 品种编辑弹窗 -->
         <el-dialog 
             :modal-append-to-body='false' 
-            :title="!editBreedData.id?ChineseEcnglish.add_product_btn:'编辑品种'" 
+            :title="!editBreedData.id?ChineseEcnglish.add_product_btn:$t('ReportManage.CommodityConfiguration.edit_variety_title')" 
             :visible.sync="showEditBreed" 
             :close-on-click-modal="false"
             :center="true" 

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

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

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

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

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

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

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

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

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

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

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

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

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

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