bding 1 year ago
parent
commit
02e7366363
34 changed files with 387 additions and 275 deletions
  1. 3 0
      src/lang/modules/ReportManagement/CategoryList.js
  2. 2 0
      src/lang/modules/ReportManagement/CommodityConfiguration.js
  3. 16 4
      src/lang/modules/ReportManagement/ReportList.js
  4. 2 0
      src/lang/modules/ReportManagement/SmartReport.js
  5. 74 17
      src/lang/modules/Slides/pptList.js
  6. 9 4
      src/lang/modules/Slides/pptPresent.js
  7. 41 39
      src/views/classify_manage/classifyEnlist.vue
  8. 1 1
      src/views/ppt_manage/newVersion/components/catalog/chooseShareUserDia.vue
  9. 1 1
      src/views/ppt_manage/newVersion/components/catalog/mergePPTDialog.vue
  10. 2 2
      src/views/ppt_manage/newVersion/components/catalog/pptContent.vue
  11. 2 2
      src/views/ppt_manage/newVersion/components/catalog/pptContentEn.vue
  12. 2 2
      src/views/ppt_manage/newVersion/components/catalog/pptContentOld.vue
  13. 1 1
      src/views/ppt_manage/newVersion/components/catalog/transReport.vue
  14. 1 1
      src/views/ppt_manage/newVersion/components/editor/ChangeFormatDialog.vue
  15. 1 1
      src/views/ppt_manage/newVersion/components/editor/ChooseCoverNew.vue
  16. 1 1
      src/views/ppt_manage/newVersion/components/editor/DeletePageDialog.vue
  17. 2 2
      src/views/ppt_manage/newVersion/components/editor/InsertCharts.vue
  18. 2 2
      src/views/ppt_manage/newVersion/components/editor/InsertPageDialog.vue
  19. 1 1
      src/views/ppt_manage/newVersion/components/editor/InsertSemantics.vue
  20. 12 12
      src/views/ppt_manage/newVersion/pptCatalog.vue
  21. 36 25
      src/views/ppt_manage/newVersion/pptEditor.vue
  22. 13 13
      src/views/ppt_manage/newVersion/pptEnCatalog.vue
  23. 38 28
      src/views/ppt_manage/newVersion/pptEnEditor.vue
  24. 4 4
      src/views/ppt_manage/newVersion/pptEnPresent.vue
  25. 3 3
      src/views/ppt_manage/newVersion/pptEnPublish.vue
  26. 4 4
      src/views/ppt_manage/newVersion/pptPresent.vue
  27. 3 3
      src/views/ppt_manage/newVersion/pptPublish.vue
  28. 7 7
      src/views/report_manage/components/importMyChart.vue
  29. 2 2
      src/views/report_manage/components/importSemantics.vue
  30. 22 22
      src/views/report_manage/components/strategyReportEdit.vue
  31. 23 18
      src/views/report_manage/dayOrWeek.vue
  32. 2 2
      src/views/report_manage/reportAuthor.vue
  33. 53 50
      src/views/report_manage/reportEn/reportlist.vue
  34. 1 1
      src/views/report_manage/reportVariety.vue

+ 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: "复制元素",

+ 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

+ 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"