Karsa 1 рік тому
батько
коміт
ace95f4f72
79 змінених файлів з 2202 додано та 1046 видалено
  1. 2 0
      src/App.vue
  2. 1 1
      src/components/todo/roadShowFeedbackDia.vue
  3. 37 1
      src/lang/commonLang.js
  4. 1 0
      src/lang/en.js
  5. 10 0
      src/lang/modules/ReportManagement/AuthorManagement.js
  6. 135 2
      src/lang/modules/ReportManagement/CategoryList.js
  7. 41 0
      src/lang/modules/ReportManagement/ReportList.js
  8. 146 55
      src/lang/modules/ReportManagement/SmartReport.js
  9. 4 0
      src/lang/modules/ReportManagement/indexEn.js
  10. 4 0
      src/lang/modules/ReportManagement/indexZh.js
  11. 6 0
      src/lang/modules/Slides/commonLang.js
  12. 1 1
      src/lang/modules/Slides/indexZh.js
  13. 5 0
      src/lang/modules/Slides/pptMsg.js
  14. 61 9
      src/lang/modules/Slides/pptPresent.js
  15. 122 0
      src/lang/modules/systemManage/BaseConfig.js
  16. 35 0
      src/lang/modules/systemManage/DataAuth.js
  17. 49 0
      src/lang/modules/systemManage/DataSourceAccount.js
  18. 169 0
      src/lang/modules/systemManage/DepartManage.js
  19. 31 0
      src/lang/modules/systemManage/EnAuthSet.js
  20. 79 0
      src/lang/modules/systemManage/OperateAuth.js
  21. 31 0
      src/lang/modules/systemManage/OutLinkConfig.js
  22. 6 0
      src/lang/modules/systemManage/RoleManage.js
  23. 23 0
      src/lang/modules/systemManage/indexEn.js
  24. 22 0
      src/lang/modules/systemManage/indexZh.js
  25. 1 0
      src/lang/zh.js
  26. 1 1
      src/views/classify_manage/classifyEnlist.vue
  27. 173 170
      src/views/classify_manage/classifylist.vue
  28. 1 1
      src/views/dataEntry_manage/dataList.vue
  29. 1 1
      src/views/dataEntry_manage/targetList.vue
  30. 1 1
      src/views/dataEntry_manage/thirdBase/DatabankBase.vue
  31. 64 21
      src/views/dataSource_manage/accountList.vue
  32. 12 12
      src/views/dataSource_manage/components/EditAccount.vue
  33. 34 27
      src/views/ppt_manage/newVersion/components/ContextMenu.vue
  34. 4 4
      src/views/ppt_manage/newVersion/components/IndexItem.vue
  35. 1 1
      src/views/ppt_manage/newVersion/components/catalog/pptContent.vue
  36. 1 1
      src/views/ppt_manage/newVersion/components/catalog/pptContentEn.vue
  37. 1 1
      src/views/ppt_manage/newVersion/components/catalog/pptContentOld.vue
  38. 2 2
      src/views/ppt_manage/newVersion/components/editor/ChooseCoverNew.vue
  39. 9 7
      src/views/ppt_manage/newVersion/components/editor/DeletePageDialog.vue
  40. 3 3
      src/views/ppt_manage/newVersion/components/editor/InsertCharts.vue
  41. 8 8
      src/views/ppt_manage/newVersion/components/editor/InsertPageDialog.vue
  42. 1 1
      src/views/ppt_manage/newVersion/components/editor/InsertSemantics.vue
  43. 4 4
      src/views/ppt_manage/newVersion/components/formatEl/ChartEl.vue
  44. 1 1
      src/views/ppt_manage/newVersion/components/formatEl/ImageEl.vue
  45. 1 1
      src/views/ppt_manage/newVersion/components/formatEl/SheetEl.vue
  46. 7 2
      src/views/ppt_manage/newVersion/components/formatEl/TextEl.vue
  47. 1 1
      src/views/ppt_manage/newVersion/components/formatPage/mixins.js
  48. 10 5
      src/views/ppt_manage/newVersion/components/layer/Element/ShapeContextMenu.vue
  49. 9 5
      src/views/ppt_manage/newVersion/components/layer/Element/shapeMixin.js
  50. 9 9
      src/views/ppt_manage/newVersion/components/layer/layerEditTool.vue
  51. 10 7
      src/views/ppt_manage/newVersion/components/layer/shapePreview.vue
  52. 3 1
      src/views/ppt_manage/newVersion/pptCatalog.vue
  53. 6 4
      src/views/ppt_manage/newVersion/pptEditor.vue
  54. 3 1
      src/views/ppt_manage/newVersion/pptEnCatalog.vue
  55. 6 4
      src/views/ppt_manage/newVersion/pptEnEditor.vue
  56. 23 13
      src/views/ppt_manage/newVersion/pptEnPresent.vue
  57. 26 22
      src/views/ppt_manage/newVersion/pptEnPublish.vue
  58. 23 19
      src/views/ppt_manage/newVersion/pptPresent.vue
  59. 24 22
      src/views/ppt_manage/newVersion/pptPublish.vue
  60. 1 1
      src/views/ppt_manage/pptlist.vue
  61. 8 4
      src/views/report_manage/reportAuthor.vue
  62. 55 81
      src/views/report_manage/reportEn/reportlist.vue
  63. 2 2
      src/views/report_manage/reportVariety.vue
  64. 88 88
      src/views/report_manage/reportlist.vue
  65. 35 35
      src/views/smartReport/reportList.vue
  66. 109 52
      src/views/system_manage/components/addUserDialog.vue
  67. 11 11
      src/views/system_manage/components/authDialog.vue
  68. 26 17
      src/views/system_manage/components/authSetDialog.vue
  69. 28 28
      src/views/system_manage/components/smartReportImgSet.vue
  70. 9 9
      src/views/system_manage/components/targetClasifyDialog.vue
  71. 7 7
      src/views/system_manage/dataAuthManage.vue
  72. 95 95
      src/views/system_manage/departManage.vue
  73. 97 53
      src/views/system_manage/enAuthManage.vue
  74. 60 54
      src/views/system_manage/etaBaseConfig.vue
  75. 1 1
      src/views/system_manage/mixin/departManageMixin.js
  76. 6 6
      src/views/system_manage/newAuthManage.vue
  77. 39 30
      src/views/system_manage/operateAuthManage.vue
  78. 19 19
      src/views/system_manage/outlinkListConfig.vue
  79. 1 1
      src/views/system_manage/roleManage.vue

+ 2 - 0
src/App.vue

@@ -105,6 +105,8 @@ iframe {
   color: #0052D9;
   cursor: pointer;
   margin-right: 5px;
+  display: inline-block;
+  flex-shrink: 0;
 }
 .deletesty {
   font-size: 14px;

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

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

+ 37 - 1
src/lang/commonLang.js

@@ -20,6 +20,10 @@ export default {
       en: "Return",
       zh: "返回",
     },
+    set_btn:{
+      en:"Set",
+      zh:'设置'
+    },
   },
   Table: {
     add_btn: {
@@ -89,7 +93,11 @@ export default {
     loading: {
       en: '加载中...',
       zh: 'Loading...'
-    }
+    },
+    data_loading: {
+      en: "Data Loading",
+      zh: "数据加载中...",
+    },
   },
   Confirm: {
     prompt: {
@@ -162,12 +170,40 @@ export default {
       en: "The current protocol is not currently supported, only the HTTPS protocol is supported",
       zh: "当前协议暂不支持,仅支持https协议",
     },
+    http_not_support:{
+      en:'The current protocol is not currently supported, only the HTTPS protocol is supported',
+      zh:'当前协议暂不支持,仅支持https协议'
+    },
+    move_sort_success:{
+      en:'Rearranged successfully',
+      zh:'移动排序成功'
+    },
+    confirm_del_msg:{
+      en:'Are you sure you want to delete?',
+      zh:'确定要删除吗?'
+    },
+    set_success_msg:{
+      en:'Setting Successful',
+      zh:'设置成功'
+    }
   },
   Common: {
     category: {
       en: "categories",
       zh: "分类",
     },
+    all_select:{
+      en:'Select All',
+      zh:'全选'
+    },
+    enable:{
+      en:'Enable',
+      zh:'启用'
+    },
+    disable:{
+      en:'Disable',
+      zh:'禁用'
+    }
   },
   Edb,
   Chart

+ 1 - 0
src/lang/en.js

@@ -19,6 +19,7 @@ export default {
   Confirm: transformLanguageData(commonLang.Confirm, "en"),
   Table: transformLanguageData(commonLang.Table, "en"),
   MsgPrompt: transformLanguageData(commonLang.MsgPrompt, "en"),
+  Common:transformLanguageData(commonLang.Common,'en'),
   Edb: transformLanguageData(commonLang.Edb, "en"),
   Chart: transformLanguageData(commonLang.Chart, "en"),
 };

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ 122 - 0
src/lang/modules/systemManage/BaseConfig.js

@@ -0,0 +1,122 @@
+/**
+ * 系统设置-基本配置
+ */
+
+/* 英文 */
+export const BaseConfigEn = {
+    tab01:'General Setting',
+    tab02:'Resource Library',
+    sub_tab01:'Login Setting',
+    sub_tab02:'Research Report Setting',
+    sub_tab03:'PPT Configuration',
+    email_tem:'Email Template',
+    email_tips:'Login System or Retrieve Password or Identity Verification',
+    email_placeholder:'Please enter email title',
+    view_example_text:'View schematic diagram',
+    company_name:'Company Name',
+    company_name_placeholder:'Please Enter Company Name',
+    compay_mark:'Company Watermark',
+    report_chart:'Research Report Charts',
+    report_share:'Research Report Analysis',
+    report_share_tips:"report detail sharing page, the watermark content should be the sharer's username + mobile number (or email address if no phone number is available)",
+    upload_format:'Upload Format: png, jpg',
+    disclaimer:'Disclaimer',
+    disclaimer_placeholder:'Please enter a disclaimer',
+    iFLYTEK_service:'iFLYTEK Service',
+    please_enter:'Please enter',
+    report_approval:'Report Approval',
+    internal_approval:'ETA Internal Approval',
+    third_approval:'Third-party Approval',
+    third_approval_tips:"Chinese Research Report(Intelligent Research Report/Research Report List) connected to third-party approval systems via API interface",
+    report_share_title_zh:'Title of Chinese research report sharing',
+    report_share_title_zh_placeholder:'Please Enter Title of English research report sharing',
+    report_share_title_en:'Title of English research report sharing',
+    report_share_title_en_placeholder:'Please Enter Title of English research report sharing',
+    connect_wx:'Associated Public Account',
+    wx_original_id:'Please Enter Original ID',
+    wx_original_tips:'Note: When filling in associated public account, AppID, AppSecret and original ID must all be provided. ',
+
+    ppt_zh:'Chinese PPT',
+    ppt_en:'English PPT',
+    ppt_type01:'PPT Cover Image',
+    ppt_type02:'PPT Background Image',
+    ppt_type03:'PPT Back Cover Image',
+    ppt_tip01:'Upload Format: png, jpg. Maximum of three images can be uploaded, recommended image ratio: 10:7',
+    ppt_tip02:'Upload Format: png, jpg. Recommended image ratio: 10:7',
+    ppt_tip03:'Upload Format: png, jpg. Recommended image ratio: 10:7',
+
+    resource_placeholder01:'Please enter the image name',
+    resource_placeholder02:'Please select the image type',
+    resource_type01:'Header',
+    resource_type02:'Footer',
+    resource_btn01:'Upload Image',
+    resource_btn02:'Rename',
+    resource_btn03:'Deselect/Deselect All',
+    resource_des01:'has been selected',
+    resource_label01:'Image Name',
+    resource_label02:'Image Type',
+    upload_suggest:'Supports formats like jpg, jpeg, png, etc. It is recommended to upload headers of 800*200 and footers of 800*80',
+    resource_del_msg:'Are you sure to delete the selected image?',
+
+};
+  
+/* 中文 */
+export const BaseConfigZh = {
+    tab01:'通用设置',
+    tab02:'资源库',
+    sub_tab01:'登录设置',
+    sub_tab02:'研报设置',
+    sub_tab03:'PPT配置',
+    email_tem:'邮件模板',
+    email_tips:'登陆系统或找回密码或验证身份',
+    email_placeholder:'请输入邮件标题',
+    view_example_text:'查看示意图',
+    company_name:'公司名称',
+    company_name_placeholder:'请输入公司名称',
+    compay_mark:'公司水印',
+    report_chart:'研报图表',
+    report_share:'研报分享',
+    report_share_tips:'研报详情分享页水印,水印内容为分享人用户名称+手机号(无手机号时为邮箱地址)',
+    upload_format:'上传格式:png、jpg',
+    disclaimer:'免责声明',
+    disclaimer_placeholder:'请输入免责声明',
+    iFLYTEK_service:'科大讯飞服务',
+    please_enter:'请输入',
+    report_approval:'研报审批',
+    internal_approval:'ETA内部审批',
+    third_approval:'第三方审批',
+    third_approval_tips:'中文研报(智能研报/研报列表)通过API接口对接第三方审批系统',
+    report_share_title_zh:'中文研报分享抬头',
+    report_share_title_zh_placeholder:'请输入中文研报分享抬头',
+    report_share_title_en:'英文研报分享抬头',
+    report_share_title_en_placeholder:'请输入英文研报分享抬头',
+    connect_wx:'关联公众号',
+    wx_original_id:'请输入原始Id',
+    wx_original_tips:'注:关联公众号填写时,AppID、AppSecret原始ID均需填写。',
+
+    ppt_zh:'中文PPT',
+    ppt_en:'英文PPT',
+    ppt_type01:'PPT封面图',
+    ppt_type02:'PPT背景图',
+    ppt_type03:'PPT封底图',
+    ppt_tip01:'上传格式:png、jpg,最多上传三张,建议图片比例:10:7',
+    ppt_tip02:'上传格式:png、jpg,建议图片比例:10:7',
+    ppt_tip03:'上传格式:png、jpg,建议图片比例:10:7',
+
+    resource_placeholder01:'请输入图片名称',
+    resource_placeholder02:'请选择图片类型',
+    resource_type01:'版头',
+    resource_type02:'版尾',
+    resource_btn01:'上传图片',
+    resource_btn02:'重命名',
+    resource_btn03:'取消选择',
+    resource_des01:'已选择',
+    resource_label01:'图片名称',
+    resource_label02:'图片类型',
+    upload_suggest:'支持jpg、jpeg、png等格式,建议上传版头800*200,版尾800*80',
+    resource_del_msg:'是否确认删除选中图片?',
+};
+  
+/**
+* $t('SystemManage.BaseConfig.XXX')
+*/

+ 35 - 0
src/lang/modules/systemManage/DataAuth.js

@@ -0,0 +1,35 @@
+/**
+ * 系统设置-手工数据权限
+ */
+
+/* 英文 */
+export const DataAuthEn = {
+    placehloder_msg01:'User Name',
+    placehloder_msg02:'Please select a parent category',
+    msg01:'Please select a user',
+    msg02:'The category that contains subcategories cannot be deleted',
+    msg03:'Deletion is irreversible. Are you sure you want to proceed?',
+    title:'Manual Indicator Categories',
+    add_category:'Add Category',
+    edit_category:'Edit Category',
+    parent_classify:'Parent Category',
+    classify_name:'Category Name'
+};
+  
+/* 中文 */
+export const DataAuthZh = {
+    placehloder_msg01:'用户名称',
+    placehloder_msg02:'请选择上级分类',
+    msg01:'请选择用户',
+    msg02:'该分类下包含子分类不可删除',
+    msg03:'删除后不可恢复,是否确认删除?',
+    title:'手工指标分类',
+    add_category:'添加分类',
+    edit_category:'编辑分类',
+    parent_classify:'上级分类',
+    classify_name:'分类名称'
+};
+  
+/**
+* $t('SystemManage.DataAuth.XXX')
+*/

+ 49 - 0
src/lang/modules/systemManage/DataSourceAccount.js

@@ -0,0 +1,49 @@
+/**
+ * 系统设置-数据源终端管理
+ */
+
+/* 英文 */
+export const DataSourceAccountEn = {
+    add_btn:'Add terminal account',
+    edit_btn:'Edit terminal account',
+    table_col01:'Terminal Code',
+    table_col02:'Terminal Name',
+    table_col03:'Folder Path',
+    table_col04:'Terminal Address',
+    table_col05:'Terminal Token',
+    table_col06:'Data Source Type',
+    table_col07:'Status',
+    table_col08:'Indicator Data Volume',
+    table_col09:'Update Time',
+    placeholder01:'请输入终端名称',
+    placeholder02:'请输入文件夹路径',
+    placeholder03:'请输入终端地址',
+    placeholder04:'请输入终端token',
+    placeholder05:'Please select data source type',
+    placeholder06:'请输入指标数据量',
+};
+  
+/* 中文 */
+export const DataSourceAccountZh = {
+    add_btn:'新增终端账号',
+    edit_btn:'编辑终端账号',
+    table_col01:'终端编码',
+    table_col02:'终端名称',
+    table_col03:'文件夹路径',
+    table_col04:'终端地址',
+    table_col05:'终端token',
+    table_col06:'数据源类型',
+    table_col07:'状态',
+    table_col08:'指标数据量',
+    table_col09:'更新时间',
+    placeholder01:'请输入终端名称',
+    placeholder02:'请输入文件夹路径',
+    placeholder03:'请输入终端地址',
+    placeholder04:'请输入终端token',
+    placeholder05:'请选择数据源类型',
+    placeholder06:'请输入指标数据量',
+};
+  
+/**
+* $t('SystemManage.DataSourceAccount.XXX')
+*/

+ 169 - 0
src/lang/modules/systemManage/DepartManage.js

@@ -0,0 +1,169 @@
+/**
+ * 系统设置-部门管理
+ */
+
+/* 英文 */
+export const DepartManageEn = {
+    depart_info_title:"Department Information",
+    depart_create:'Create Department',
+    depart_edit:'Edit Department',
+    depart_name_placeholder:'Please enter the department name',
+    depart:'Department',
+    depart_del_success:'Department Deletion Successful',
+    delete_confirm:'Are you sure you want to delete',
+    group_add:'Add Group',
+    group:'Group',
+    group_name:'Group Name',
+    group_edit:'Edit Group',
+    group_name_placeholder:'Please Enter Group Name',
+    group_del_success:'Group Deletion Successful',
+    group_select:'Select Group',
+    group_select_placeholer:'Please Select Group',
+
+    user_add_btn:'Add User',
+    user_edit_btn:'Edit User',
+    user_login_accout:'Login Account',
+    user_login_pwd:'Login Password',
+    user_depart:'Department',
+    user_email:'Email',
+    user_role:'Assign Role',
+    user_add_placeholder01:'It is recommended to use the email prefix or phone number',
+    user_add_placeholder02:'6-12 characters combining numbers and letters',
+    user_add_placeholder03:'Please enter the user name',
+    user_add_placeholder04:'Please enter the phone number',
+    user_add_placeholder05:'Please select the department/group',
+    user_add_placeholder06:'Please enter the email',
+    user_add_placeholder07:'Please enter the employee ID',
+    user_add_placeholder08:'Please select the research direction',
+    user_add_placeholder09:'Please enter the position',
+
+    use_add_valid_msg01:'It is recommended to use the email prefix or phone number',
+    use_add_valid_msg02:'Please enter a new password',
+    use_add_valid_msg03:'Password must be 8 characters or more, including three of the following: numbers, uppercase letters, lowercase letters, special characters',
+    use_add_valid_msg04:'Name cannot be empty',
+    use_add_valid_msg05:'Either phone number or email must be filled',
+    use_add_valid_msg06:'Please enter the correct phone number format',
+    use_add_valid_msg07:'Please enter the correct email format',
+    use_add_valid_msg08:'Department/group cannot be empty',
+    use_add_valid_msg09:'Please enter four digits',
+    use_add_valid_msg10:'Role cannot be empty',
+
+    user_search_placeholder:'Name/Account/Phone Number Search',
+    user_table_name:'Name',
+    user_table_account:'Account',
+    user_table_mobile:'Phone Number',
+    user_table_role:'Role',
+    user_table_depart:'Department/Group',
+    user_table_status:'Status',
+    user_table_reset_pwd:'Reset Password',
+    user_table_move_group:'Move to Group',
+    user_table_status_ban:'Disable',
+    user_table_status_open:'Enable',
+    user_table_employee_id:'Employee ID',
+    user_table_position:'Position',
+    user_table_direct:'Research Direction',
+    user_table_address:'Work Location',
+    user_table_manage_auth:'Manage Permissions',
+    user_table_login_text:'Login account/Password',
+    use_tag01:'Super Admin',
+    use_tag02:'Admin',
+    use_tag03:'department manager',
+    use_tag04:'Team Leader',
+    use_tag05:'Supervisor',
+
+    look_auth:'View permissions',
+    no_auth:'No permission',
+    auth_text:'permission',
+
+    new_pwd:'New Password',
+    confirm_pwd:'Confirm Password',
+
+    del_msg:'Are you sure you want to delete user',
+};
+  
+/* 中文 */
+export const DepartManageZh = {
+    depart_info_title:"部门信息 ",
+    depart_create:'新建部门',
+    depart_edit:'编辑部门',
+    depart_name_placeholder:'请填写部门名称',
+    depart:'部门',
+    depart_del_success:'删除部门成功',
+    delete_confirm:'确定删除吗',
+    group_add:'添加分组',
+    group:'分组',
+    group_name:'分组名',
+    group_edit:'编辑分组',
+    group_name_placeholder:'请填写分组名称',
+    group_del_success:'删除分组成功',
+    group_select:'选择分组',
+    group_select_placeholer:'请选择部门分组',
+
+    user_add_btn:'添加用户',
+    user_edit_btn:'编辑用户',
+    user_login_accout:'登录账号',
+    user_login_pwd:'登录密码',
+    user_depart:'所属部门',
+    user_email:'邮箱',
+    user_role:'分配角色',
+    user_add_placeholder01:'建议使用邮箱前缀或者手机号码',
+    user_add_placeholder02:'6-12位数字与字母的组合',
+    user_add_placeholder03:'请输入用户名称',
+    user_add_placeholder04:'请输入手机号码',
+    user_add_placeholder05:'请选择部门分组',
+    user_add_placeholder06:'请输入邮箱',
+    user_add_placeholder07:'请输入工号',
+    user_add_placeholder08:'请选择研究方向',
+    user_add_placeholder09:'请输入职务',
+
+    use_add_valid_msg01:'登录账号不能为空',
+    use_add_valid_msg02:'请输入新密码',
+    use_add_valid_msg03:'密码要求8位及以上,包含数字、大写字母、小写字母、特殊字符中的三个类型',
+    use_add_valid_msg04:'姓名不能为空',
+    use_add_valid_msg05:'手机号码和邮箱至少填一个',
+    use_add_valid_msg06:'请输入正确的手机号格式',
+    use_add_valid_msg07:'请输入正确的邮箱格式',
+    use_add_valid_msg08:'部门分组不能为空',
+    use_add_valid_msg09:'请输入四位数字',
+    use_add_valid_msg10:'角色不能为空',
+
+
+
+    user_search_placeholder:'姓名/账号/手机号搜索',
+    user_table_name:'姓名',
+    user_table_account:'账号',
+    user_table_mobile:'手机号',
+    user_table_role:'角色',
+    user_table_depart:'部门/分组',
+    user_table_status:'状态',
+    user_table_reset_pwd:'重置密码',
+    user_table_move_group:'移动分组',
+    user_table_status_ban:'禁用',
+    user_table_status_open:'启用',
+    user_table_employee_id:'工号',
+    user_table_position:'职务',
+    user_table_direct:'研究方向',
+    user_table_address:'工作地点',
+    user_table_manage_auth:'管理权限',
+    user_table_login_text:'登录账号/密码',
+
+    use_tag01:'超管',
+    use_tag02:'管理员',
+    use_tag03:'部门经理',
+    use_tag04:'组长',
+    use_tag05:'主管',
+
+    look_auth:'查看权限',
+    no_auth:'暂无权限',
+    auth_text:'权限',
+
+    new_pwd:'新密码',
+    confirm_pwd:'确认新密码',
+
+    del_msg:'是否确认删除用户',
+
+};
+  
+/**
+* $t('SystemManage.DepartManage.XXX')
+*/

+ 31 - 0
src/lang/modules/systemManage/EnAuthSet.js

@@ -0,0 +1,31 @@
+/**
+ * 系统设置-英文权限配置
+ */
+
+/* 英文 */
+export const EnAuthSetEn = {
+    title:'English Permission List',
+    tips:'Deleting only removes English permissions for this user',
+    enable:'Disabled',
+    opened:'Enabled',
+    opt_text01:'English Customer List Administrator',
+    opt_text02:'English Research Report Administrator',
+    opt_text03:'English PPT Administrator',
+    opt_text04:'Daily News Administrator',
+};
+  
+/* 中文 */
+export const EnAuthSetZh = {
+    title:'英文权限列表',
+    tips:'删除操作仅删除该用户的英文权限',
+    enable:'已禁用',
+    opened:'已启用',
+    opt_text01:'英文客户列表管理员',
+    opt_text02:'英文研报管理员',
+    opt_text03:'英文PPT管理员',
+    opt_text04:'每日资讯管理员',
+};
+  
+/**
+* $t('SystemManage.EnAuthSet.XXX')
+*/

+ 79 - 0
src/lang/modules/systemManage/OperateAuth.js

@@ -0,0 +1,79 @@
+/**
+ * 系统设置-数据操作权限
+ */
+
+/* 英文 */
+export const OperateAuthEn = {
+    tab01:'Manual Data Indicators',
+    tab02:'My Steel Chemical Database',
+    tab03:'ETA Indicator Library',
+    tab04:'ETA Predictive Indicators',
+    tab05:'Image Library',
+
+    placeholder01:'请输入图表名称',
+    placeholder02:'Enter Indicator ID/Indicator Name',
+    placeholder03:'Select Category',
+    placeholder04:'Select User',
+
+    btn_text01:'Batch Edit',
+    btn_text02:'Permission Settings',
+
+    table_col_name01:'图表名称',
+    table_col_name02:'图分类',
+    table_col_name03:'Creator',
+    table_col_name04:'Indicator ID',
+    table_col_name05:'Indicator Name',
+
+    edit_title01:'Edit Permissions',
+    edit_title02:'Batch Edit Permissions',
+    original_creator:'Original Creator',
+    new_creator:'New Creator',
+
+    msg01:'Please select at least one',
+
+    permission_title01:'Permission Settings',
+    permission_title02:'批量权限设置',
+    invisible_users:'Invisible Users',
+    permission_confirm_msg:"Are you sure you want to delete the user's invisible permission?",
+    set_success:'Setting Successful'
+};
+  
+/* 中文 */
+export const OperateAuthZh = {
+    tab01:'手工数据指标',
+    tab02:'钢联化工数据库',
+    tab03:'ETA指标库',
+    tab04:'ETA预测指标',
+    tab05:'图库',
+
+    placeholder01:'请输入图表名称',
+    placeholder02:'请输入指标Id/指标名称',
+    placeholder03:'请选择分类',
+    placeholder04:'请选择用户',
+
+    btn_text01:'批量编辑',
+    btn_text02:'权限设置',
+
+    table_col_name01:'图表名称',
+    table_col_name02:'图分类',
+    table_col_name03:'创建人',
+    table_col_name04:'指标ID',
+    table_col_name05:'指标名称',
+
+    edit_title01:'编辑权限',
+    edit_title02:'批量编辑权限',
+    original_creator:'原创建人',
+    new_creator:'新创建人',
+
+    msg01:'请至少勾选一个',
+
+    permission_title01:'权限设置',
+    permission_title02:'批量权限设置',
+    invisible_users:'不可见用户',
+    permission_confirm_msg:'是否确认删除该用户的不可见权限?',
+    set_success:'配置成功'
+};
+  
+/**
+* $t('SystemManage.OperateAuth.XXX')
+*/

+ 31 - 0
src/lang/modules/systemManage/OutLinkConfig.js

@@ -0,0 +1,31 @@
+/**
+ * 系统设置-外部链接配置
+ */
+
+/* 英文 */
+export const OutLinkConfigEn = {
+    menu_add_btn:'Add menu',
+    menu_edit_btn:'Edit menu',
+    tale_col01:'Menu Name',
+    tale_col02:'Page Link',
+    tale_col03:'Creation Time',
+    placeholder01:'请输入菜单名称',
+    placeholder02:'请输入URL',
+    del_success_msg:'Delete menu successfully'
+};
+  
+/* 中文 */
+export const OutLinkConfigZh = {
+    menu_add_btn:'添加菜单',
+    menu_edit_btn:'编辑菜单',
+    tale_col01:'菜单名称',
+    tale_col02:'页面链接',
+    tale_col03:'创建时间',
+    placeholder01:'Please enter menu name',
+    placeholder02:'Please enter URL',
+    del_success_msg:'删除菜单成功'
+};
+  
+/**
+* $t('SystemManage.OutLinkConfig.XXX')
+*/

+ 6 - 0
src/lang/modules/systemManage/RoleManage.js

@@ -15,6 +15,9 @@ export const RoleManageEn = {
     input_role_placeholder:'Please Input Role Name',
     select_role_placeholder:'Please Select Role Type',
     delete_role_msg:'Are you sure you want to delete this role?',
+    permission_set:'Permission Settings',
+    set_permission_msg01:'Please select at least one permission',
+    set_permission_success:'Permission Settings Successful'
 };
   
 /* 中文 */
@@ -30,6 +33,9 @@ export const RoleManageZh = {
     input_role_placeholder:'请填写角色名称',
     select_role_placeholder:'选择角色类型',
     delete_role_msg:'是否确认删除该角色?',
+    permission_set:'权限设置',
+    set_permission_msg01:'请至少选择一个权限 ',
+    set_permission_success:'权限设置成功'
 };
   
 /**

+ 23 - 0
src/lang/modules/systemManage/indexEn.js

@@ -0,0 +1,23 @@
+import { DepartManageEn } from "./DepartManage";
+import { RoleManageEn } from "./RoleManage";
+import { OperateAuthEn } from "./OperateAuth";
+import {DataAuthEn} from './DataAuth'
+import {EnAuthSetEn} from './EnAuthSet'
+import {BaseConfigEn} from './BaseConfig'
+import {OutLinkConfigEn} from './OutLinkConfig'
+import {DataSourceAccountEn} from './DataSourceAccount'
+
+export default {
+  // 系统设置
+  SystemManage: {
+    DepartManage: DepartManageEn,
+    RoleManage: RoleManageEn,
+    OperateAuth:OperateAuthEn,
+    DataAuth:DataAuthEn,
+    EnAuthSet:EnAuthSetEn,
+    BaseConfig:BaseConfigEn,
+    OutLinkConfig:OutLinkConfigEn,
+    DataSourceAccount:DataSourceAccountEn
+  },
+};
+

+ 22 - 0
src/lang/modules/systemManage/indexZh.js

@@ -0,0 +1,22 @@
+import { DepartManageZh } from "./DepartManage";
+import { RoleManageZh } from "./RoleManage";
+import { OperateAuthZh } from "./OperateAuth";
+import {DataAuthZh} from './DataAuth'
+import {EnAuthSetZh} from './EnAuthSet'
+import {BaseConfigZh} from './BaseConfig'
+import { OutLinkConfigZh } from "./OutLinkConfig";
+import{DataSourceAccountZh} from './DataSourceAccount'
+
+export default {
+  // 系统设置
+  SystemManage: {
+    DepartManage: DepartManageZh,
+    RoleManage: RoleManageZh,
+    OperateAuth:OperateAuthZh,
+    DataAuth:DataAuthZh,
+    EnAuthSet:EnAuthSetZh,
+    BaseConfig:BaseConfigZh,
+    OutLinkConfig:OutLinkConfigZh,
+    DataSourceAccount:DataSourceAccountZh
+  },
+};

+ 1 - 0
src/lang/zh.js

@@ -20,6 +20,7 @@ export default {
   Confirm: transformLanguageData(commonLang.Confirm, "zh"),
   Table: transformLanguageData(commonLang.Table, "zh"),
   MsgPrompt: transformLanguageData(commonLang.MsgPrompt, "zh"),
+  Common:transformLanguageData(commonLang.Common,'zh'),
   Edb: transformLanguageData(commonLang.Edb, "zh"),
   Chart: transformLanguageData(commonLang.Chart, "zh"),
 };

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

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

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

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

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

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

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

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

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

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

+ 64 - 21
src/views/dataSource_manage/accountList.vue

@@ -5,7 +5,7 @@
             type="primary" 
             @click="showEditAccount=true;activeTermId=0;initData={}"
             v-permission="permissionBtn.dataSourcePermission.dataSource_account_add"
-        >新增终端账号</el-button>
+        >{{$t('SystemManage.DataSourceAccount.add_btn')}}</el-button>
         <el-table
             style="margin-top:30px"
             :data="tableData"
@@ -23,33 +23,33 @@
                     <span 
                         v-if="col.key==='Status'"
                         :style="{color:scope.row.Status===1?'':'#FF0000'}"
-                    >{{scope.row.Status===1?'启用':'禁用'}}</span>
+                    >{{scope.row.Status===1?$t('Common.enable'):$t('Common.disable')}}</span>
                     <span v-else>{{scope.row[col.key]}}</span>
                 </template>
             </el-table-column>
-            <el-table-column label="操作" align="center" width="100">
+            <el-table-column :label="$t('Table.column_operations')" align="center" width="100">
                 <template slot-scope="scope">
                     <span 
                         style="color:#409EFF;cursor: pointer;" 
                         @click="handleEditAccount(scope.row)"
                         v-permission="permissionBtn.dataSourcePermission.dataSource_account_edit"
-                    >编辑</span>
+                    >{{$t('Table.edit_btn')}}</span>
                     <span 
                         style="color:#409EFF;cursor: pointer;" 
                         @click="handleSetAccountStatus(scope.row,2)" 
                         v-if="scope.row.Status===1"
                         v-permission="permissionBtn.dataSourcePermission.dataSource_account_enable"
-                    >禁用</span>
+                    >{{$t('Common.disable')}}</span>
                     <span 
                         style="color:#409EFF;cursor: pointer;" 
                         @click="handleSetAccountStatus(scope.row,1)" 
                         v-if="scope.row.Status===2"
                         v-permission="permissionBtn.dataSourcePermission.dataSource_account_enable"
-                    >启用</span>
+                    >{{$t('Common.enable')}}</span>
                 </template>
             </el-table-column>
             <div slot="empty">
-                <tableNoData text="暂无数据"/>
+                <tableNoData :text="$t('Table.prompt_slogan')"/>
             </div>
         </el-table>
 
@@ -68,48 +68,91 @@ import EditAccount from './components/EditAccount.vue'
 import {apiDataSource} from '@/api/modules/dataSource.js'
 export default {
     components:{EditAccount},
-    data() {
-        return {
-            tableData:[],
-            tableColOpts:[
+    computed:{
+        tableColOpts(){
+            return [
                 {
-                    name:'终端编码',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col01'),
                     key:'TerminalCode',
                 },
                 {
-                    name:'终端名称',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col02'),
                     key:'Name',
                 },
                 {
-                    name:'文件夹路径',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col03'),
                     key:'DirPath',
                 },
                 {
-                    name:'终端地址',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col04'),
                     key:'ServerUrl',
                 },
                 {
-                    name:'终端token',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col05'),
                     key:'Value',
                 },
                 {
-                    name:'数据源类型',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col06'),
                     key:'Source',
                 },
                 {
-                    name:'状态',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col07'),
                     key:'Status',
                 },
                 {
-                    name:'指标数据量',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col08'),
                     key:'Num',
                 },
                 {
-                    name:'更新时间',
+                    name:this.$t('SystemManage.DataSourceAccount.table_col09'),
                     key:'ModifyTime',
                     sortable:true
                 },
-            ],
+            ]
+        }
+    },
+    data() {
+        return {
+            tableData:[],
+            // tableColOpts:[
+            //     {
+            //         name:'终端编码',
+            //         key:'TerminalCode',
+            //     },
+            //     {
+            //         name:'终端名称',
+            //         key:'Name',
+            //     },
+            //     {
+            //         name:'文件夹路径',
+            //         key:'DirPath',
+            //     },
+            //     {
+            //         name:'终端地址',
+            //         key:'ServerUrl',
+            //     },
+            //     {
+            //         name:'终端token',
+            //         key:'Value',
+            //     },
+            //     {
+            //         name:'数据源类型',
+            //         key:'Source',
+            //     },
+            //     {
+            //         name:'状态',
+            //         key:'Status',
+            //     },
+            //     {
+            //         name:'指标数据量',
+            //         key:'Num',
+            //     },
+            //     {
+            //         name:'更新时间',
+            //         key:'ModifyTime',
+            //         sortable:true
+            //     },
+            // ],
 
             showEditAccount:false,
             activeTermId:0,

+ 12 - 12
src/views/dataSource_manage/components/EditAccount.vue

@@ -1,6 +1,6 @@
 <template>
     <el-dialog
-      :title="TerminalId?'编辑终端账号':'新增终端账号'"
+      :title="TerminalId?$t('SystemManage.DataSourceAccount.edit_btn'):$t('SystemManage.DataSourceAccount.add_btn')"
       :visible.sync="show"
       :modal-append-to-body="false"
       :close-on-click-modal="false"
@@ -14,25 +14,25 @@
             :model="formState" 
             :rules="rules" 
             ref="formIns" 
-            label-width="120px" 
+            label-width="130px" 
             class="demo-ruleForm"
         >
-            <el-form-item label="终端名称" prop="name">
+            <el-form-item :label="$t('SystemManage.DataSourceAccount.table_col02')" prop="name">
                 <el-input placeholder="请输入终端名称" v-model="formState.name" style="width:300px"></el-input>
             </el-form-item>
-            <el-form-item label="文件夹路径" prop="dirUrl">
+            <el-form-item :label="$t('SystemManage.DataSourceAccount.table_col03')" prop="dirUrl">
                 <el-input placeholder="请输入文件夹路径" v-model="formState.dirUrl"  style="width:300px" :disabled="TerminalId"></el-input>
             </el-form-item>
-            <el-form-item label="终端地址" prop="url">
+            <el-form-item :label="$t('SystemManage.DataSourceAccount.table_col04')" prop="url">
                 <el-input placeholder="请输入终端地址" v-model="formState.url"  style="width:300px"></el-input>
             </el-form-item>
-            <el-form-item label="终端token" prop="token">
+            <el-form-item :label="$t('SystemManage.DataSourceAccount.table_col05')" prop="token">
                 <el-input placeholder="请输入终端token" v-model="formState.token"  style="width:300px"></el-input>
             </el-form-item>
-            <el-form-item label="数据源类型" prop="type">
+            <el-form-item :label="$t('SystemManage.DataSourceAccount.table_col06')" prop="type">
                 <el-select 
                     v-model="formState.type" 
-                    placeholder="请选择数据源类型"
+                    :placeholder="$t('SystemManage.DataSourceAccount.placeholder05')"
                     style="width:300px"
                     :disabled="TerminalId"
                 >
@@ -44,13 +44,13 @@
                     />
                 </el-select>
             </el-form-item>
-            <el-form-item label="指标数据量" prop="num">
+            <el-form-item :label="$t('SystemManage.DataSourceAccount.table_col08')" prop="num">
                 <el-input placeholder="请输入指标数据量" type="number" min="0" v-model.number="formState.num"  style="width:300px"></el-input>
             </el-form-item>
         </el-form>
         <div style="text-align:center;margin:30px 0">
-            <el-button type="primary" plain @click="handleClose">取消</el-button>
-            <el-button type="primary" @click="handleSave">确定</el-button>
+            <el-button type="primary" plain @click="handleClose">{{$t('Dialog.cancel_btn')}}</el-button>
+            <el-button type="primary" @click="handleSave">{{$t('Dialog.confirm_btn')}}</el-button>
         </div>
     </el-dialog>
 </template>
@@ -133,7 +133,7 @@ export default {
             console.log(params);
             const res=await apiDataSource.accountSave(params)
             if(res.Ret===200){
-                this.$message.success('保存成功')
+                this.$message.success(this.$t('MsgPrompt.saved_msg'))
                 this.$emit('change')
                 this.handleClose()
             }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

+ 109 - 52
src/views/system_manage/components/addUserDialog.vue

@@ -1,75 +1,75 @@
 <template>
     <el-dialog :visible.sync="isAddUserDialogShow" :close-on-click-modal="false" :modal-append-to-body='false' class="add-user-dialog-wrap"
-        @close="$emit('close')" center width="886px" v-dialogDrag>
+        @close="$emit('close')" center width="986px" v-dialogDrag>
         <div slot="title" style="display:flex;alignItems:center;">
-            <img :src="userForm.title=='添加用户'?$icons.add:$icons.edit"
+            <img :src="userForm.title==$t('SystemManage.DepartManage.user_add_btn')?$icons.add:$icons.edit"
                 style="color:#fff;width:16px;height:16px;marginRight:5px;">
             <span style="fontSize:16px;">{{userForm.title}}</span>
         </div>
-        <el-form @submit.native.prevent :model="userForm" :rules="userRule" ref="userForm" label-width="100px"
+        <el-form @submit.native.prevent :model="userForm" :rules="userRule" ref="userForm" label-width="160px"
             class="demo-ruleForm" style="marginTop:15px;">
-            <el-form-item label="登录账号" prop="account">
-                <el-input v-model="userForm.account" placeholder="建议使用邮箱前缀或者手机号码" :disabled="userForm.disabledForm" clearable>
+            <el-form-item :label="$t('SystemManage.DepartManage.user_login_accout')" prop="account">
+                <el-input v-model="userForm.account" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder01')" :disabled="userForm.disabledForm" clearable>
                 </el-input>
             </el-form-item>
-            <el-form-item label="登录密码" prop="pwd" v-if="userForm.title == '添加用户'">
-                <el-input v-model.trim="userForm.pwd" placeholder="6-12位数字与字母的组合" 
-                    :type="userForm.title == '添加用户' ? 'text' : 'password' " clearable></el-input>
+            <el-form-item :label="$t('SystemManage.DepartManage.user_login_pwd')" prop="pwd" v-if="userForm.title == $t('SystemManage.DepartManage.user_add_btn')">
+                <el-input v-model.trim="userForm.pwd" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder02')" 
+                    :type="userForm.title == $t('SystemManage.DepartManage.user_add_btn') ? 'text' : 'password' " clearable></el-input>
             </el-form-item>
-            <el-form-item label="姓名" prop="name">
-                <el-input v-model="userForm.name" placeholder="请输入用户名称"  clearable>
+            <el-form-item :label="$t('SystemManage.DepartManage.user_table_name')" prop="name">
+                <el-input v-model="userForm.name" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder03')"  clearable>
                 </el-input>
             </el-form-item>
-            <el-form-item label="手机号码" prop="mobile" class="mobile-input-item">
-                <el-input v-model.trim="userForm.mobile" placeholder="请输入手机号码" clearable class="mobile-input">
+            <el-form-item :label="$t('SystemManage.DepartManage.user_table_mobile')" prop="mobile" class="mobile-input-item">
+                <el-input v-model.trim="userForm.mobile" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder04')" clearable class="mobile-input">
                 </el-input>
                 <el-select v-model="userForm.areacode" class="mobile-select" placeholder="请选择">
                     <el-option v-for="item in areaCode" :key="item.Value"
                         :label="item.Name" :value="item.Value" />
                 </el-select>
             </el-form-item>
-            <el-form-item label="所属部门" prop="depart" v-if="userForm.title == '添加用户'">
+            <el-form-item :label="$t('SystemManage.DepartManage.user_depart')" prop="depart" v-if="userForm.title == $t('SystemManage.DepartManage.user_add_btn')">
                 <el-cascader :options="departArr" v-model="userForm.depart" :props="form_departProp"
-                    placeholder="请选择部门分组" :disabled="userForm.disabledForm" clearable>
+                    :placeholder="$t('SystemManage.DepartManage.user_add_placeholder05')" :disabled="userForm.disabledForm" clearable>
                 </el-cascader>
             </el-form-item>
-            <el-form-item label="邮箱" prop="email">
-                <el-input v-model="userForm.email" placeholder="请输入邮箱"></el-input>
+            <el-form-item :label="$t('SystemManage.DepartManage.user_email')" prop="email">
+                <el-input v-model="userForm.email" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder06')"></el-input>
             </el-form-item>
-            <el-form-item label="工号" prop="employeeNumber">
-                <el-input :disabled="hasEmployeeNo" v-model="userForm.employeeNumber" placeholder="请输入工号"></el-input>
+            <el-form-item :label="$t('SystemManage.DepartManage.user_table_employee_id')" prop="employeeNumber">
+                <el-input :disabled="hasEmployeeNo" v-model="userForm.employeeNumber" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder07')"></el-input>
             </el-form-item>
-            <el-form-item label="分配角色" prop="role">
-                <el-select v-model="userForm.role" placeholder="分配角色" :disabled="userForm.disabledForm" @change="roleChange">
+            <el-form-item :label="$t('SystemManage.DepartManage.user_role')" prop="role">
+                <el-select v-model="userForm.role" :placeholder="$t('SystemManage.DepartManage.user_role')" :disabled="userForm.disabledForm" @change="roleChange">
                     <el-option v-for="item in roleArr" :key="item.RoleId" :label="item.RoleName" :value="item.RoleId">
                     </el-option>
                 </el-select>
             </el-form-item>
-            <el-form-item label="研究方向" prop="direct" v-permission="permissionBtn.sysDepartPermission.sysDepart_saveUser_researchGroup">
+            <el-form-item :label="$t('SystemManage.DepartManage.user_table_direct')" prop="direct" v-permission="permissionBtn.sysDepartPermission.sysDepart_saveUser_researchGroup">
                 <el-cascader collapse-tags :show-all-levels="false" :options="researchGroup" v-model="userForm.direct"
-                    :props="form_directProp" placeholder="请选择研究方向" clearable></el-cascader>
+                    :props="form_directProp" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder08')" clearable></el-cascader>
             </el-form-item>
-            <el-form-item label="职务" prop="post">
-                <el-input v-model="userForm.post" placeholder="请输入职务" clearable>
+            <el-form-item :label="$t('SystemManage.DepartManage.user_table_position')" prop="post">
+                <el-input v-model="userForm.post" :placeholder="$t('SystemManage.DepartManage.user_add_placeholder09')" clearable>
                 </el-input>
             </el-form-item>
-            <el-form-item label="工作地点" prop="city"
+            <el-form-item :label="$t('SystemManage.DepartManage.user_table_address')" prop="city"
                 :rules="[2,6,18].includes(userForm.role)?{ required: true, message: '工作地点不能为空', trigger: 'change' }:{}">
                     <search-dist-picker 
                         :provinceInfo="userForm.province"
                         :cityInfo="userForm.city"
                         @selected="selectRegion"/>
             </el-form-item>
-            <el-form-item label="状态" prop="status">
+            <el-form-item :label="$t('SystemManage.DepartManage.user_table_status')" prop="status">
                 <el-radio-group v-model="userForm.status" :disabled="userForm.disabledStatus">
-                    <el-radio :label="1">启用</el-radio>
-                    <el-radio :label="0">禁用</el-radio>
+                    <el-radio :label="1">{{$t('SystemManage.DepartManage.user_table_status_open')}}</el-radio>
+                    <el-radio :label="0">{{$t('SystemManage.DepartManage.user_table_status_ban')}}</el-radio>
                 </el-radio-group>
             </el-form-item>
         </el-form>
         <div style="display:flex;justify-content:center;margin:0 0 26px;">
-            <el-button type="primary" style="width:80px;marginRight:24px;" @click="$emit('save')">保存</el-button>
-            <el-button style="width:80px;" @click="$emit('close')">取消</el-button>
+            <el-button type="primary" style="width:80px;marginRight:24px;" @click="$emit('save')">{{$t('Dialog.confirm_save_btn')}}</el-button>
+            <el-button style="width:80px;" @click="$emit('close')">{{$t('Dialog.cancel_btn')}}</el-button>
         </div>
     </el-dialog>
 </template>
@@ -111,42 +111,46 @@ import {patternEmail,isMobileNo,checkPassWord} from '@/utils/commonOptions';
             }
         },
         components:{searchDistPicker},
-        data() {
-            return {
-                userRule: {
-                    account:[{required: true, message: '登录账号不能为空', trigger: 'blur'}],
-                    pwd:[{validator:(rule,value,callback)=>{
-                        if(value===''){
-                            callback(new Error('请输入新密码'))
-                        }
-                        if(!checkPassWord(value)){
-                            callback(new Error('密码要求8位及以上,包含数字、大写字母、小写字母、特殊字符中的三个类型'))
-                        }else{
-                            callback()
+        computed:{
+            userRule() {
+                return {
+                account:[{required: true, message: this.$t('SystemManage.DepartManage.use_add_valid_msg01'), trigger: 'blur'}],
+                pwd:[
+                    {
+                        validator:(rule,value,callback)=>{
+                            if(value===''){
+                                callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg02')))
+                            }
+                            if(!checkPassWord(value)){
+                                callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg03')))
+                            }else{
+                                callback()
+                            }
                         }
-                    }}],
-                    name:[{ required: true, message: '姓名不能为空', trigger: 'blur' }],
+                    }
+                ],
+                name:[{ required: true, message: this.$t('SystemManage.DepartManage.use_add_valid_msg04'), trigger: 'blur' }],
                     mobile:[{ validator: (rule, value, callback) => {
                         if (value === ''&&!this.userForm.email) {
-                            callback(new Error('手机号码和邮箱至少填一个'));
+                            callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg05')));
                         }else if(value&&this.userForm.areacode==='86'&&!isMobileNo(value)) {
-                            callback(new Error('请输入正确的手机号格式'));
+                            callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg06')));
                         } else if(this.userForm.areacode!=='86'&&isNaN(value.trim())){
-                            callback(new Error('请输入正确的手机号格式'));
+                            callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg06')));
                         }else {
                             callback();
                         }
                     }, trigger: 'blur'}],
                     email:[{ validator: (rule, value, callback) => {
                         if (value === ''&&!this.userForm.mobile) {
-                            callback(new Error('手机号码和邮箱至少填一个'));
+                            callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg05')));
                         }else if(value&&!patternEmail.test(value)) {
-                            callback(new Error('请输入正确的邮箱格式'));
+                            callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg07')));
                         } else {
                             callback();
                         }
                     }, trigger: 'blur'}],
-                    depart:[{ required: true, message: '部门分组不能为空', trigger: 'change' }],
+                    depart:[{ required: true, message: this.$t('SystemManage.DepartManage.use_add_valid_msg08'), trigger: 'change' }],
                     employeeNumber:[{validator:(rule,value,callback)=>{
                         if(!value){
                             callback()
@@ -155,13 +159,66 @@ import {patternEmail,isMobileNo,checkPassWord} from '@/utils/commonOptions';
                         // 取消空格
                         let tempValue = parseInt(value.replaceAll(' ',''))
                         if(!tempValue || value.replaceAll(' ','').length!=4){
-                            callback(new Error('请输入四位数字'))
+                            callback(new Error(this.$t('SystemManage.DepartManage.use_add_valid_msg09')))
                         }else{
                             callback()
                         }
                     },trigger:'blur'}],
-                    role:[{ required: true, message: '角色不能为空', trigger: 'change' }],
+                    role:[{ required: true, message: this.$t('SystemManage.DepartManage.use_add_valid_msg10'), trigger: 'change' }],
+                }
                 },
+        },
+        data() {
+            return {
+                // userRule: {
+                //     account:[{required: true, message: '登录账号不能为空', trigger: 'blur'}],
+                //     pwd:[{validator:(rule,value,callback)=>{
+                //         if(value===''){
+                //             callback(new Error('请输入新密码'))
+                //         }
+                //         if(!checkPassWord(value)){
+                //             callback(new Error('密码要求8位及以上,包含数字、大写字母、小写字母、特殊字符中的三个类型'))
+                //         }else{
+                //             callback()
+                //         }
+                //     }}],
+                //     name:[{ required: true, message: '姓名不能为空', trigger: 'blur' }],
+                //     mobile:[{ validator: (rule, value, callback) => {
+                //         if (value === ''&&!this.userForm.email) {
+                //             callback(new Error('手机号码和邮箱至少填一个'));
+                //         }else if(value&&this.userForm.areacode==='86'&&!isMobileNo(value)) {
+                //             callback(new Error('请输入正确的手机号格式'));
+                //         } else if(this.userForm.areacode!=='86'&&isNaN(value.trim())){
+                //             callback(new Error('请输入正确的手机号格式'));
+                //         }else {
+                //             callback();
+                //         }
+                //     }, trigger: 'blur'}],
+                //     email:[{ validator: (rule, value, callback) => {
+                //         if (value === ''&&!this.userForm.mobile) {
+                //             callback(new Error('手机号码和邮箱至少填一个'));
+                //         }else if(value&&!patternEmail.test(value)) {
+                //             callback(new Error('请输入正确的邮箱格式'));
+                //         } else {
+                //             callback();
+                //         }
+                //     }, trigger: 'blur'}],
+                //     depart:[{ required: true, message: '部门分组不能为空', trigger: 'change' }],
+                //     employeeNumber:[{validator:(rule,value,callback)=>{
+                //         if(!value){
+                //             callback()
+                //             return 
+                //         }
+                //         // 取消空格
+                //         let tempValue = parseInt(value.replaceAll(' ',''))
+                //         if(!tempValue || value.replaceAll(' ','').length!=4){
+                //             callback(new Error('请输入四位数字'))
+                //         }else{
+                //             callback()
+                //         }
+                //     },trigger:'blur'}],
+                //     role:[{ required: true, message: '角色不能为空', trigger: 'change' }],
+                // },
                 form_departProp:{
                     value:'DepartmentId',
                     label:'DepartmentName',

+ 11 - 11
src/views/system_manage/components/authDialog.vue

@@ -15,15 +15,15 @@
 				ref="diaForm"
 				label-position="left"
 				hide-required-asterisk
-				label-width="80px"
+				label-width="120px"
 				:model="formData"
 				:rules="formRules">
-						<el-form-item label="上级分类" prop="classify">
+						<el-form-item :label="$t('SystemManage.DataAuth.parent_classify')" prop="classify">
 							<el-select 
 							v-model="formData.classify" 
-							placeholder="请选择上级分类" 
+							:placeholder="$t('SystemManage.DataAuth.placehloder_msg02')" 
 							style="width:80%"
-							:disabled="title==='编辑分类'&&!form.parentId">
+							:disabled="title===$t('SystemManage.DataAuth.edit_category')&&!form.parentId">
 								<el-option
 									v-for="item in classifyArr"
 									:key="item.ClassifyId"
@@ -32,17 +32,17 @@
 								</el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="分类名称" prop="nodeName">
+						<el-form-item :label="$t('SystemManage.DataAuth.classify_name')" prop="nodeName">
 							<el-input
 							v-model="formData.nodeName"
 							style="width: 80%"
-							placeholder="分类名称"></el-input>
+							:placeholder="$t('SystemManage.DataAuth.classify_name')"></el-input>
 						</el-form-item>
 				</el-form>
 			</div>
 			<div class="dia-bot">
-				<el-button type="primary" style="margin-right:20px" @click="saveHandle">保存</el-button>
-				<el-button type="primary" plain @click="cancelHandle">取消</el-button>
+				<el-button type="primary" style="margin-right:20px" @click="saveHandle">{{$t('Dialog.confirm_save_btn')}}</el-button>
+				<el-button type="primary" plain @click="cancelHandle">{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</el-dialog>
 	</div>
@@ -98,7 +98,7 @@ export default {
 			const res = await dataAuthInterface.classifyOne();
 			if(res.Ret !== 200) return
 			this.classifyArr = res.Data || [];
-			if(this.title === '添加分类' || !this.form.parentId) {
+			if(this.title === this.$t('SystemManage.DataAuth.add_category') || !this.form.parentId) {
 				this.classifyArr.unshift({
 					ClassifyId: 0,
 					ClassifyName: '无'
@@ -109,7 +109,7 @@ export default {
 		async saveHandle() {
 			await this.$refs.diaForm.validate();
 
-			const res = this.title === '添加分类' 
+			const res = this.title === this.$t('SystemManage.DataAuth.add_category') 
 				? await	dataAuthInterface.classifyAdd({
 						ParentId: this.formData.classify,
 						ClassifyName: this.formData.nodeName
@@ -121,7 +121,7 @@ export default {
 					})
 
 			if(res.Ret !== 200) return
-			this.$message.success('保存成功');
+			this.$message.success(this.$t('MsgPrompt.saved_msg'));
 			this.callbackHandle();
 		},
 		/* 成功回调 */

+ 26 - 17
src/views/system_manage/components/authSetDialog.vue

@@ -13,7 +13,7 @@
 	>
     <div class="cont">
       <div class="header">
-        <span>不可见用户</span>
+        <span>{{$t('SystemManage.OperateAuth.invisible_users')}}</span>
         <el-cascader
           v-model="filterUsers"
           :options="userList"
@@ -29,12 +29,12 @@
           :show-all-levels="false"
           clearable
           filterable
-          placeholder="请选择用户" 
+          :placeholder="$t('SystemManage.OperateAuth.placeholder04')" 
           style="margin: 0 20px"
         />
-        <el-button type="primary" @click="setAuthHandle">设置</el-button>
+        <el-button type="primary" @click="setAuthHandle">{{$t('Dialog.set_btn')}}</el-button>
       </div>
-      <template v-if="edbForm.title==='权限设置'">
+      <template v-if="edbForm.title===$t('SystemManage.OperateAuth.permission_title01')">
         <el-table
           :data="filterTable"
           border
@@ -45,13 +45,13 @@
               <span>{{ row[item.key] }}</span>
             </template>
           </el-table-column>
-          <el-table-column align="center" label="操作">
+          <el-table-column align="center" :label="$t('Table.column_operations')">
             <template slot-scope="{row}" >
               <el-popconfirm
-                title="是否确认删除该用户的不可见权限?"
+                :title="$t('SystemManage.OperateAuth.permission_confirm_msg')"
                 @onConfirm="removeUser(row)"
               >
-                <span slot="reference" class="deletesty">删除</span>
+                <span slot="reference" class="deletesty">{{$t('Table.delete_btn')}}</span>
               </el-popconfirm>
             </template>
           </el-table-column>
@@ -92,7 +92,16 @@ export default {
       let uers_arr = _.cloneDeep(this.users);
       this.disableCreaterHandle(uers_arr);
       this.userList = uers_arr;
-      this.edbForm.title==='权限设置' && this.getTableList()
+      this.edbForm.title===this.$t('SystemManage.OperateAuth.permission_title01') && this.getTableList()
+    }
+  },
+  computed:{
+    tableColums(){
+      return [
+        { label:this.$t('SystemManage.DepartManage.user_table_name'),key: 'RealName' },
+        { label:this.$t('SystemManage.DepartManage.user_table_role'),key: 'RoleName' },
+        { label:this.$t('SystemManage.DepartManage.user_table_depart'),key: 'DepartmentGroup' },
+      ]
     }
   },
   data() {
@@ -102,11 +111,11 @@ export default {
 
       tableData: [],
       filterTable: [],
-      tableColums:[
-        { label:'姓名',key: 'RealName' },
-        { label:'角色',key: 'RoleName' },
-        { label:'部门/分组',key: 'DepartmentGroup' },
-      ],
+      // tableColums:[
+      //   { label:'姓名',key: 'RealName' },
+      //   { label:'角色',key: 'RoleName' },
+      //   { label:'部门/分组',key: 'DepartmentGroup' },
+      // ],
       pageNo:1,
       pageSize: 10,
       total: 0,
@@ -158,14 +167,14 @@ export default {
             AdminId
           }).then(res => {
             if(res.Ret !== 200) return 
-            this.$message.success('删除成功');
+            this.$message.success(this.$t('MsgPrompt.delete_msg'));
             this.getTableList();
           })
     },
 
     /* 设置权限 */
     async setAuthHandle() {
-      if(!this.filterUsers.length) return this.$message.warning('请选择用户')
+      if(!this.filterUsers.length) return this.$message.warning(this.$t('SystemManage.OperateAuth.placeholder04'))
       // let res = this.edbForm.title === '权限设置' 
       //   ? await operateAuthInterface.edbNoAuthSet({
       //       EdbInfoId: Number(this.edbForm.ids[0]),
@@ -178,8 +187,8 @@ export default {
         })
 
       if(res.Ret !== 200) return 
-      this.$message.success('配置成功')
-      if(this.edbForm.title === '权限设置') {
+      this.$message.success(this.$t('SystemManage.OperateAuth.set_success'))
+      if(this.edbForm.title === this.$t('SystemManage.OperateAuth.permission_title01')) {
         this.filterUsers=[]
         this.getTableList()
       }else {

+ 28 - 28
src/views/system_manage/components/smartReportImgSet.vue

@@ -1,12 +1,12 @@
 <template>
     <div class="smart-report-img-set-page">
         <div class="top-wrap">
-            <el-input v-model="keyword" placeholder="请输入图片名称" clearable style="width:200px;margin-right:20px" @input="handleSearch"></el-input>
-            <el-select placeholder="请选择图片类型" v-model="type" clearable style="width:200px" @change="handleSearch">
-                <el-option label="版头" :value="1"></el-option>
-                <el-option label="版尾" :value="2"></el-option>
+            <el-input v-model="keyword" :placeholder="$t('SystemManage.BaseConfig.resource_placeholder01')" clearable style="width:200px;margin-right:20px" @input="handleSearch"></el-input>
+            <el-select :placeholder="$t('SystemManage.BaseConfig.resource_placeholder02')" v-model="type" clearable style="width:200px" @change="handleSearch">
+                <el-option :label="$t('SystemManage.BaseConfig.resource_type01')" :value="1"></el-option>
+                <el-option :label="$t('SystemManage.BaseConfig.resource_type02')" :value="2"></el-option>
             </el-select>
-            <el-button type="primary" style="float:right" @click="handleShowUploadPop" v-permission="permissionBtn.baseConfigPermission.etaBaseConfig_source_upload">上传图片</el-button>
+            <el-button type="primary" style="float:right" @click="handleShowUploadPop" v-permission="permissionBtn.baseConfigPermission.etaBaseConfig_source_upload">{{$t('SystemManage.BaseConfig.resource_btn01')}}</el-button>
         </div>
 
         <div class="select-status-box" v-if="selectIds.length>0">
@@ -16,8 +16,8 @@
                 @change="handleCheckAllChange"
             >全选</el-checkbox>
             <span>已选择{{selectIds.length}}项</span>
-            <span @click="selectIds=[]" style="color:#1146DB;margin-left:20px;cursor: pointer;">取消选择</span>
-            <span @click="handleBatchDel" style="color:#1146DB;margin-left:20px;cursor: pointer;">删除</span>
+            <span @click="selectIds=[]" style="color:#1146DB;margin-left:20px;cursor: pointer;">{{$t('SystemManage.BaseConfig.resource_btn03')}}</span>
+            <span @click="handleBatchDel" style="color:#1146DB;margin-left:20px;cursor: pointer;">{{$t('Table.delete_btn')}}</span>
         </div>
 
 
@@ -33,8 +33,8 @@
                         <img src="~@/assets/img/icons/more.png" alt="">
                     </div>
                     <el-dropdown-menu slot="dropdown">
-                        <el-dropdown-item :command="{type:'rename',data:item}">重命名</el-dropdown-item>
-                        <el-dropdown-item :command="{type:'del',data:item}">删除</el-dropdown-item>
+                        <el-dropdown-item :command="{type:'rename',data:item}">{{$t('SystemManage.BaseConfig.resource_btn02')}}</el-dropdown-item>
+                        <el-dropdown-item :command="{type:'del',data:item}">{{$t('Table.delete_btn')}}</el-dropdown-item>
                     </el-dropdown-menu>
                     </el-dropdown>
                 </div>
@@ -42,7 +42,7 @@
                 <p class="name">{{item.ImgName}}</p>
             </li>
         </ul>
-        <tableNoData text="暂无数据" v-if="list.length===0"/>
+        <tableNoData :text="$t('Table.prompt_slogan')" v-if="list.length===0"/>
         <!-- <el-col :span="24" class="toolbar">
             <el-pagination
                 layout="total,prev,pager,next"
@@ -57,13 +57,13 @@
         <!-- 上传图片弹窗 -->
         <el-dialog
             :visible.sync="uploadImgPop"
-            :title="formData.id?'重命名':'上传图片'"
+            :title="formData.id?$t('SystemManage.BaseConfig.resource_btn02'):$t('SystemManage.BaseConfig.resource_btn01')"
             :close-on-click-modal="false"
             :append-to-body="true"
             @close="cancelHandle"
             custom-class="classify-dialog"
             center
-            width="650px"
+            width="670px"
             v-dialogDrag
         >
             
@@ -71,20 +71,20 @@
                 :model="formData" 
                 :rules="formRules" 
                 ref="ruleForm" 
-                label-width="100px" 
+                label-width="120px" 
                 class="upload-img-form"
             >
-                <el-form-item label="图片名称" prop="name">
-                    <el-input v-model="formData.name" placeholder="请输入图片名称"></el-input>
+                <el-form-item :label="$t('SystemManage.BaseConfig.resource_label01')" prop="name">
+                    <el-input v-model="formData.name" :placeholder="$t('SystemManage.BaseConfig.resource_placeholder01')"></el-input>
                 </el-form-item>
-                <el-form-item label="图片类型" prop="type">
+                <el-form-item :label="$t('SystemManage.BaseConfig.resource_label02')" prop="type">
                     <el-radio-group v-model="formData.type" :disabled="formData.id">
-                        <el-radio :label="1">版头</el-radio>
-                        <el-radio :label="2">版尾</el-radio>
+                        <el-radio :label="1">{{$t('SystemManage.BaseConfig.resource_type01')}}</el-radio>
+                        <el-radio :label="2">{{$t('SystemManage.BaseConfig.resource_type02')}}</el-radio>
                     </el-radio-group>
                 </el-form-item>
                 <el-form-item 
-                    label="上传图片" 
+                    :label="$t('SystemManage.BaseConfig.resource_btn01')" 
                     prop="imgUrl"
                 >
                     <el-upload 
@@ -103,11 +103,11 @@
                             </template>
                         </div>
                     </el-upload>
-                    <p>支持jpg、jpeg、png等格式,建议上传版头800*200,版尾800*80</p>
+                    <p>{{$t('SystemManage.BaseConfig.upload_suggest')}}</p>
                 </el-form-item>
                 <div style="text-align: center;padding: 30px 0;">
-                    <el-button type="primary" plain style="width:120px;" @click="handleCloseImgUpload">取消</el-button>
-                    <el-button type="primary" style="margin-left:20px;width:120px;" @click="handleSave">确定</el-button>
+                    <el-button type="primary" plain style="width:120px;" @click="handleCloseImgUpload">{{$t('Dialog.cancel_btn')}}</el-button>
+                    <el-button type="primary" style="margin-left:20px;width:120px;" @click="handleSave">{{$t('Dialog.confirm_btn')}}</el-button>
                 </div>
             </el-form>
             
@@ -242,7 +242,7 @@ export default {
                             ImgName:this.formData.name
                         }).then(res=>{
                             if(res.Ret===200){
-                                this.$message.success('修改成功')
+                                this.$message.success(this.$t('MsgPrompt.edit_msg'))
                                 this.page=1
                                 this.getImgList()
                                 this.handleCloseImgUpload()
@@ -252,7 +252,7 @@ export default {
                     }
                     apiSmartReport.imgReourceAdd(params).then(res=>{
                         if(res.Ret===200){
-                            this.$message.success('新增成功')
+                            this.$message.success(this.$t('MsgPrompt.add_msg'))
                             this.page=1
                             this.getImgList()
                             this.handleCloseImgUpload()
@@ -302,14 +302,14 @@ export default {
         },
 
         handleImgDel(){
-            this.$confirm('是否确认删除选中图片?','提示',{
-                confirmButtonText: '确定',
-                cancelButtonText: '取消',
+            this.$confirm(this.$t('SystemManage.BaseConfig.resource_del_msg'),this.$t('Confirm.prompt'),{
+                // confirmButtonText: '确定',
+                // cancelButtonText: '取消',
                 type: 'warning'
             }).then(()=>{
                 apiSmartReport.imgReourceDel({ResourceIds:this.delIds.join(',')}).then(res=>{
                     if(res.Ret===200){
-                        this.$message.success('删除成功')
+                        this.$message.success(this.$t('MsgPrompt.delete_msg'))
                         this.page=1
                         this.getImgList()
                     }

+ 9 - 9
src/views/system_manage/components/targetClasifyDialog.vue

@@ -3,7 +3,7 @@
 		<!-- :modal-append-to-body='false' -->
 		<el-dialog
 		:visible.sync="isOpenDialog"
-		:title="title"
+		:title="$t('SystemManage.DataAuth.title')"
 		:close-on-click-modal="false"
 		:append-to-body="true"
 		@close="cancelHandle"
@@ -12,7 +12,7 @@
 		width="650px"
 		v-dialogDrag>
 			<div class="add-cont">
-				<el-button type="text" @click="() => {cancelHandle();$parent.editClassify()}">添加分类</el-button>
+				<el-button type="text" @click="() => {cancelHandle();$parent.editClassify()}">{{$t('SystemManage.DataAuth.add_category')}}</el-button>
 			</div>
 			<el-tree
 				:data="classifyArr"
@@ -27,14 +27,14 @@
 				<div class="custom-tree-node" slot-scope="{ data }">
 					<span>{{ data.ClassifyName }}</span>
 					<div>
-						<span class="editsty" style="margin-right: 10px;" @click.stop="editNode(data)">编辑</span>
-						<span class="deletesty" @click.stop="delNode(data)">删除</span>
+						<span class="editsty" style="margin-right: 10px;" @click.stop="editNode(data)">{{$t('Table.edit_btn')}}</span>
+						<span class="deletesty" @click.stop="delNode(data)">{{$t('Table.delete_btn')}}</span>
 					</div>
 				</div>
 			</el-tree>
 			<div class="dia-bot">
-				<el-button type="primary" style="margin-right:20px" @click="cancelHandle">确定</el-button>
-				<el-button type="primary" plain @click="cancelHandle">取消</el-button>
+				<el-button type="primary" style="margin-right:20px" @click="cancelHandle">{{$t('Dialog.confirm_btn')}}</el-button>
+				<el-button type="primary" plain @click="cancelHandle">{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</el-dialog>
 	</div>
@@ -85,9 +85,9 @@ export default {
 
 		/* 删除 */
 		async delNode(data) {
-			let message = !data.Child ? '删除后不可恢复,是否确认删除?' : '该分类下包含子分类不可删除'
+			let message = !data.Child ? this.$t('SystemManage.DataAuth.msg03') : this.$t('SystemManage.DataAuth.msg02')
 
-			await this.$confirm(message,'提示',{
+			await this.$confirm(message,this.$t('Confirm.prompt'),{
 				type: 'warning'
 			})
 
@@ -96,7 +96,7 @@ export default {
 			const {Ret} = await dataAuthInterface.classifyDel({ ClassifyId:data.ClassifyId })
 
 			if(Ret !== 200) return
-			this.$message.success('删除成功');
+			this.$message.success(this.$t('MsgPrompt.delete_msg'));
 			this.cancelHandle();
 			this.$emit('success');
 		},

+ 7 - 7
src/views/system_manage/dataAuthManage.vue

@@ -6,7 +6,7 @@
 		:props="classifyProp"
 		:show-all-levels="false"
 		style="width: 500px"
-		placeholder="用户名称"
+		:placeholder="$t('SystemManage.DataAuth.placehloder_msg01')"
 		filterable
 		clearable
 		@change="chooseUser"
@@ -61,18 +61,18 @@
 						class="el-icon-circle-plus-outline"
 						style="color: #5882ef; font-size: 16px"
 					/>
-					<span>手工指标分类</span>
+					<span>{{$t('SystemManage.DataAuth.title')}}</span>
 				</span>
 			</div>
 			<div class="btn-cont" v-if="userList.length">
-				<el-button type="primary" class="btn" @click="saveAuthHandle">保存</el-button>
-				<el-button type="primary" plain class="btn" @click="getAuth">取消</el-button>
+				<el-button type="primary" class="btn" @click="saveAuthHandle">{{$t('Dialog.confirm_save_btn')}}</el-button>
+				<el-button type="primary" plain class="btn" @click="getAuth">{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</div>
 
 		<!-- 修改分类弹窗 -->
 		<authDialog
-			:title="formData.classifyId?'编辑分类':'添加分类'"
+			:title="formData.classifyId?$t('SystemManage.DataAuth.edit_category'):$t('SystemManage.DataAuth.add_category')"
 			:isOpenDialog.sync="isOpenDialog"
 			:form="formData"
 			@closeDia="isOpenDialog=false"
@@ -229,7 +229,7 @@ export default {
 		/* 保存权限 */
 		saveAuthHandle() {
 			if(!this.default_user) {
-				this.$message.warning("请选择用户");
+				this.$message.warning(this.$t('SystemManage.DataAuth.msg01'));
 			}else {
 				let arr = [];
 				this.authList.map(item => {
@@ -246,7 +246,7 @@ export default {
 				}
 				dataAuthInterface.saveAuth(params).then(res => {
 					if(res.Ret === 200) {
-						this.$message.success('保存成功');
+						this.$message.success(this.$t('MsgPrompt.saved_msg'));
 					}
 				})
 			}

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

@@ -3,7 +3,7 @@
 		<div class="left_cont">
 			<div class="company_top" @click="initDepart">
 				<img src="~@/assets/img/set_m/home_ico.png" alt="" style="width:30px;height:30px;">
-				<span :class="!defaultGroup&&!defaultDepart?'act':''">部门信息</span>
+				<span :class="!defaultGroup&&!defaultDepart?'act':''">{{$t('SystemManage.DepartManage.depart_info_title')}}</span>
 			</div>
 			<el-tree
 				ref="departTree"
@@ -30,12 +30,12 @@
 						v-if="((!isTrail) || (data.canEdit||data.IsGroup))&&permissionBtn.isShowBtn('sysDepartPermission','sysDepart_classifyOpt_edit')">
 						<el-popconfirm
 						@onConfirm="removeNode(node,data)"
-						confirmButtonText='删除'
-						cancelButtonText='取消'
+						:confirmButtonText="$t('Table.delete_btn')"
+						:cancelButtonText="$t('Dialog.cancel_btn')"
 						confirmButtonType="text"
 						icon="el-icon-info"
 						iconColor="red"
-						title="确定删除吗"
+						:title="$t('SystemManage.DepartManage.delete_confirm')"
 						v-if="data.DepartmentId!=shareCustomDepartmentId && (!isTrail || (isTrail && (data.canEdit || data.IsGroup)))&&permissionBtn.isShowBtn('sysDepartPermission','sysDepart_classifyOpt_delete')"
 						>
 						<!-- 共享客户组不允许删除 -->
@@ -46,18 +46,18 @@
 			</el-tree>
 			<div class="noDepart" @click="addDepart" v-if="permissionBtn.isShowBtn('sysDepartPermission','sysDepart_classifyOpt_edit')">
 				<img src="~@/assets/img/set_m/add_ico.png" alt="" style="width:16px;height:16px;marginRight:10px;">
-				<span>新建部门</span>
+				<span>{{$t('SystemManage.DepartManage.depart_create')}}</span>
 			</div>
 		</div>
 		<div class="right_cont">
 			<div class="right_cont_top">
 				<div>
 					<el-button v-permission="permissionBtn.sysDepartPermission.sysDepart_saveUser"
-						type="primary" @click="addUser">添加用户</el-button>
+						type="primary" @click="addUser">{{$t('SystemManage.DepartManage.user_add_btn')}}</el-button>
 					<!-- <el-button type="primary" @click="synchronizationMEIKE" style="margin-left: 26px;">同步每刻</el-button> -->
 				</div>
 				<el-input
-					placeholder="姓名/账号/手机号搜索"
+					:placeholder="$t('SystemManage.DepartManage.user_search_placeholder')"
 					v-model="search_txt"
 					@input="searchHandle"
 					style="maxWidth:359px">
@@ -71,69 +71,69 @@
 				:data="tableData"
 				@row-click="getUserDetail"
 				v-loading="isShowloadding"
-				element-loading-text="数据加载中..."
+				:element-loading-text="$t('Table.data_loading')" 
 				highlight-current-row
 				border>
 					<el-table-column
 					prop="RealName"
-					label="姓名"
+					:label="$t('SystemManage.DepartManage.user_table_name')"
 					width="200"
 					align="center">
 						<template slot-scope="scope">
 							<el-tag size="small" 
 								v-if="scope.row.LabelVal&&permissionBtn.checkPermissionBtn(permissionBtn.sysDepartPermission.sysDepart_saveUser_LabelVal)" 
-								:style="scope.row.LabelVal==1||scope.row.LabelVal==2?'color:#fff;background:#409EFF':'color:#409EFF;background:#ECF5FF'" style="position:absolute;left:10px">{{scope.row.LabelVal==1?'超管':scope.row.LabelVal==2?'管理员':scope.row.LabelVal==3?'部门经理':scope.row.LabelVal==4?'组长':'主管'}}</el-tag>
+								:style="scope.row.LabelVal==1||scope.row.LabelVal==2?'color:#fff;background:#409EFF':'color:#409EFF;background:#ECF5FF'" style="position:absolute;left:10px">{{scope.row.LabelVal==1?$t('SystemManage.DepartManage.use_tag01'):scope.row.LabelVal==2?$t('SystemManage.DepartManage.use_tag02'):scope.row.LabelVal==3?$t('SystemManage.DepartManage.use_tag03'):scope.row.LabelVal==4?$t('SystemManage.DepartManage.use_tag04'):$t('SystemManage.DepartManage.use_tag05')}}</el-tag>
 							<span style="position: relative;">{{scope.row.RealName}}</span>
 						</template>
 					</el-table-column>
 					<el-table-column 
 						prop="AdminName"
-						label="账号"
+						:label="$t('SystemManage.DepartManage.user_table_account')"
 						align="center"
 					/>
 					<el-table-column
 					prop="Mobile"
-					label="手机号"
+					:label="$t('SystemManage.DepartManage.user_table_mobile')"
 					align="center">
 						<template slot-scope="scope"> <span>{{scope.row.Mobile||''}}</span> </template>
 					</el-table-column>
 					<el-table-column
 					prop="RoleName"
-					label="角色"
+					:label="$t('SystemManage.DepartManage.user_table_role')"
 					align="center">
 						<template slot-scope="scope"> <span>{{scope.row.RoleName||''}}</span> </template>
 					</el-table-column>
 					<el-table-column
 					prop="DepartmentGroup"
-					label="部门/分组"
+					:label="$t('SystemManage.DepartManage.user_table_depart')"
 					align="center">
 						<template slot-scope="scope"> <span>{{scope.row.DepartmentGroup||''}}</span> </template>
 					</el-table-column>
-					<el-table-column label="状态" align="center">
+					<el-table-column :label="$t('SystemManage.DepartManage.user_table_status')" align="center">
 						<template slot-scope="scope">
-							<span :style="{color:scope.row.Enabled===0?'#FF0000':null}">{{scope.row.Enabled===0?'禁用':'启用'}}</span>
+							<span :style="{color:scope.row.Enabled===0?'#FF0000':null}">{{scope.row.Enabled===0?$t('SystemManage.DepartManage.user_table_status_ban'):$t('SystemManage.DepartManage.user_table_status_open')}}</span>
 						</template>
 					</el-table-column>
-					<el-table-column label="操作" align="center" width="300" fixed="right">
+					<el-table-column :label="$t('Table.column_operations')" align="center" width="300" fixed="right">
 						<template slot-scope="scope">
-							<div style="color:#4099ef; font-size:24px;display: flex;gap:0 10px;">
+							<div style="color:#4099ef; font-size:24px;display: flex;gap:0 10px;flex-wrap: wrap">
 								<span  v-permission="permissionBtn.sysDepartPermission.sysDepart_saveUser"
-									class="editsty" @click.stop="editUser(scope.row)">编辑</span>
+									class="editsty" @click.stop="editUser(scope.row)">{{$t('Table.edit_btn')}}</span>
 								<span v-permission="permissionBtn.sysDepartPermission.sysDepart_resetPass"
-									class="editsty" @click.stop="resetPassWord(scope.row)">重置密码</span>
+									class="editsty" @click.stop="resetPassWord(scope.row)">{{$t('SystemManage.DepartManage.user_table_reset_pwd')}}</span>
 								<span v-permission="permissionBtn.sysDepartPermission.sysDepart_moveGroup"
-									class="editsty" @click.stop="moveDepart(scope.row)">移动分组</span>
+									class="editsty" @click.stop="moveDepart(scope.row)">{{$t('SystemManage.DepartManage.user_table_move_group')}}</span>
 								<span v-permission="permissionBtn.sysDepartPermission.sysDepart_enable"
 									class="editsty" 
 									@click.stop="handleChangeStatus(scope.row)"
-								>{{scope.row.Enabled===0?'启用':'禁用'}}</span>
+								>{{scope.row.Enabled===0?$t('SystemManage.DepartManage.user_table_status_open'):$t('SystemManage.DepartManage.user_table_status_ban')}}</span>
 								<span v-permission="permissionBtn.sysDepartPermission.sysDepart_del"
-									class="deletesty" @click.stop="delUser(scope.row)">删除</span>
+									class="deletesty" @click.stop="delUser(scope.row)">{{$t('Table.delete_btn')}}</span>
 							</div>
 						</template>
 					</el-table-column>
 					<div slot="empty" style="lineHeight:25px;margin:20px 0;color:#95A9C5;">
-						<tableNoData text="暂无数据" size="mini"/>
+						<tableNoData :text="$t('Table.prompt_slogan')" size="mini"/>
 					</div>
 				</el-table>
 				<el-col :span="24" class="toolbar">
@@ -157,46 +157,46 @@
 						</div>
 						<ul class="shadow_info">
 							<li class="info_item">
-								<h4 class="item_tit">手机号:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_mobile')}}:</h4>
 								<span>{{userObj.tel}}</span>
 							</li>
 							<li class="info_item">
-								<h4 class="item_tit">部门/分组:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_depart')}}:</h4>
 								<span>{{userObj.depart}}</span>
 							</li>
 							<li class="info_item">
-								<h4 class="item_tit">工号:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_employee_id')}}:</h4>
 								<span>{{userObj.employeeNumber}}</span>
 							</li>
 							<li class="info_item">
-								<h4 class="item_tit">职务:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_position')}}:</h4>
 								<span>{{userObj.post}}</span>
 							</li>
 							<li class="info_item">
-								<h4 class="item_tit">角色:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_role')}}:</h4>
 								<span>{{userObj.role}}</span>
 							</li>
 							<li v-permission="permissionBtn.sysDepartPermission.sysDepart_saveUser_researchGroup"
 								class="info_item" v-if="userObj.depart.includes('FICC研究部')">
-								<h4 class="item_tit">研究方向:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_direct')}}:</h4>
 								<span>{{userObj.direct.map(i=>i.join('/')).join('、')||'暂无'}}</span>
 							</li>
 							<li class="info_item">
-								<h4 class="item_tit">工作地点:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_address')}}:</h4>
 								<span>{{userObj.city?userObj.province+' '+userObj.city:'暂无'}}</span>
 							</li>
 							<li class="info_item">
-								<h4 class="item_tit">管理权限:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_manage_auth')}}:</h4>
 								<span>{{userObj.auth||'暂无'}}</span>
 							</li>
 							<li class="info_item">
-								<h4 class="item_tit">登录账号/密码:</h4>
+								<h4 class="item_tit">{{$t('SystemManage.DepartManage.user_table_login_text')}}:</h4>
 								<span>{{userObj.account+'/***'}}</span>
 							</li>
 						</ul>
 						<el-popover
 							placement="left"
-							:title="userObj.name+'权限'"
+							:title="userObj.name+$t('SystemManage.DepartManage.auth_text')"
 							width="560"
 							trigger="hover">
 							<div class="auth_cont" style="padding:30px 0;max-height: 70vh; overflow-y: auto;">
@@ -210,9 +210,9 @@
 										</div>
 									</div>
 								</template>
-								<span v-else style="fontSize:16px;color:#999;marginLeft:20px;">暂无权限</span>
+								<span v-else style="fontSize:16px;color:#999;marginLeft:20px;">{{$t('SystemManage.DepartManage.no_auth')}}</span>
 							</div>
-							<span slot="reference" style="fontSize:16px;color:#409EFF;cursior:pointer;">查看权限</span>
+							<span slot="reference" style="fontSize:16px;color:#409EFF;cursior:pointer;">{{$t('SystemManage.DepartManage.look_auth')}}</span>
 						</el-popover>
 						<img src="~@/assets/img/ppt_m/close.png" alt="" class="close_btn" @click="closeShadow">
 					</div>
@@ -230,17 +230,17 @@
 		width="30%"
 		v-dialogDrag>
 			<div slot="title" style="display:flex;alignItems:center;">
-				<img :src="departForm.title=='新建部门'?$icons.add:$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
+				<img :src="!departForm.depart_id?$icons.add:$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
 				<span style="fontSize:16px;">{{departForm.title}}</span>
 			</div>
-			<el-form :model="departForm" :rules="departRule" ref="departForm" label-width="100px" class="demo-ruleForm" style="marginTop:15px;">
-				<el-form-item label="部门" prop="name">
-					<el-input v-model="departForm.name" placeholder="请填写部门名称" style="width: 90%"></el-input>
+			<el-form :model="departForm" :rules="departRule" ref="departForm" label-width="120px" class="demo-ruleForm" style="marginTop:15px;">
+				<el-form-item :label="$t('SystemManage.DepartManage.depart')" prop="name">
+					<el-input v-model="departForm.name" :placeholder="$t('SystemManage.DepartManage.depart_name_placeholder')" style="width: 90%"></el-input>
 				</el-form-item>
 			</el-form>	
 			<div style="display:flex;justify-content:center;margin:75px 0 26px;">
-				<el-button type="primary" style="width:80px;marginRight:24px;" @click="saveDepart">保存</el-button>
-				<el-button  style="width:80px;" @click="cancelHandle(1)">取消</el-button>
+				<el-button type="primary" style="width:80px;marginRight:24px;" @click="saveDepart">{{$t('Dialog.confirm_save_btn')}}</el-button>
+				<el-button  style="width:80px;" @click="cancelHandle(1)">{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</el-dialog>
 		<!-- 添加分组弹窗 -->
@@ -254,14 +254,14 @@
 		width="30%"
 		v-dialogDrag>
 			<div slot="title" style="display:flex;alignItems:center;">
-				<img :src="groupForm.title=='添加分组'?$icons.add:$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
+				<img :src="groupForm.title==$t('SystemManage.DepartManage.group_add')?$icons.add:$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
 				<span style="fontSize:16px;">{{groupForm.title}}</span>
 			</div>
-			<el-form @submit.native.prevent :model="groupForm" :rules="groupRule" ref="groupForm" label-width="100px" class="demo-ruleForm" style="marginTop:15px;">
-				<el-form-item label="部门" prop="depart">
+			<el-form @submit.native.prevent :model="groupForm" :rules="groupRule" ref="groupForm" label-width="110px" class="demo-ruleForm" style="marginTop:15px;">
+				<el-form-item :label="$t('SystemManage.DepartManage.depart')" prop="depart">
 					<span style="fontSize:16px;">{{groupForm.depart}}</span>
 				</el-form-item>
-				<el-form-item label="分组" prop="group">
+				<el-form-item :label="$t('SystemManage.DepartManage.group')" prop="group">
 					<el-tag
 					:key="tag"
 					v-for="tag in groupForm.group"
@@ -274,7 +274,7 @@
 					class="input-new-tag"
 					v-if="inputVisible"
 					v-model="inputValue"
-					placeholder="分组名"
+					:placeholder="$t('SystemManage.DepartManage.group_name')"
 					ref="saveTagInput"
 					size="small"
 					style="width:120px"
@@ -282,17 +282,17 @@
 					@blur="handleInputConfirm"
 					>
 					</el-input>
-					<el-button v-else class="button-new-tag" size="small" @click="showInput">+添加分组</el-button>
+					<el-button v-else class="button-new-tag" size="small" @click="showInput">+{{$t('SystemManage.DepartManage.group_add')}}</el-button>
 				</el-form-item>
 			</el-form>	
 			<div style="display:flex;justify-content:center;margin:75px 0 26px;">
-				<el-button type="primary" style="width:80px;marginRight:24px;" @click="saveGroup">保存</el-button>
-				<el-button  style="width:80px;" @click="cancelHandle(2)">取消</el-button>
+				<el-button type="primary" style="width:80px;marginRight:24px;" @click="saveGroup">{{$t('Dialog.confirm_save_btn')}}</el-button>
+				<el-button  style="width:80px;" @click="cancelHandle(2)">{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</el-dialog>
 		<!-- 编辑分组 -->
 		<el-dialog
-		title="编辑分组"
+		:title="$t('SystemManage.DepartManage.group_edit')"
 		:visible.sync="isEditGroup"
 		:close-on-click-modal="false"
 		:modal-append-to-body='false'
@@ -301,7 +301,7 @@
 		width="30%">
 			<div slot="title" style="display:flex;alignItems:center;">
 				<img :src="$icons.edit" style="color:#fff;width:16px;height:16px;marginRight:5px;">
-				<span style="fontSize:16px;">编辑分组</span>
+				<span style="fontSize:16px;">{{$t('SystemManage.DepartManage.group_edit')}}</span>
 			</div>
 			<el-form :model="editGroupForm"  ref="editGroupForm" label-width="100px" class="demo-ruleForm" style="marginTop:15px;">
 				<!-- <el-form-item label="部门" prop="depart">
@@ -314,13 +314,13 @@
 						</el-option>
 					</el-select>
 				</el-form-item> -->
-				<el-form-item label="分组" prop="group">
-					<el-input v-model="editGroupForm.group" placeholder="请填写分组名称" style="width: 90%"></el-input>
+				<el-form-item :label="$t('SystemManage.DepartManage.group')" prop="group">
+					<el-input v-model="editGroupForm.group" :placeholder="$t('SystemManage.DepartManage.group_name_placeholder')" style="width: 90%"></el-input>
 				</el-form-item>
 			</el-form>	
 			<div style="display:flex;justify-content:center;margin:75px 0 26px;">
-				<el-button type="primary" style="width:80px;marginRight:24px;" @click="editGroupOver">保存</el-button>
-				<el-button  style="width:80px;" @click="cancelHandle(4)">取消</el-button>
+				<el-button type="primary" style="width:80px;marginRight:24px;" @click="editGroupOver">{{$t('Dialog.confirm_save_btn')}}</el-button>
+				<el-button  style="width:80px;" @click="cancelHandle(4)">{{$t('Dialog.cancel_btn')}}</el-button>
 			</div>
 		</el-dialog>
 		<!-- 添加用户弹窗 -->
@@ -340,33 +340,33 @@
 		<!-- 重置密码 -->
 		<el-dialog
 			class="custom-dialog"
-			title="重置密码"
+			:title="$t('SystemManage.DepartManage.user_table_reset_pwd')"
 			:visible.sync="isResetPasswordShow"
 			:close-on-click-modal="false" 
 			:modal-append-to-body="false"
-			@close="isResetPasswordShow=false" center width="460px" v-dialogDrag
+			@close="isResetPasswordShow=false" center width="560px" v-dialogDrag
 		>
 			<div class="dialog-container">
-				<el-form ref="resetForm" :model="resetForm" :rules="resetRules" label-width="100px">
-					<el-form-item label="账号">
+				<el-form ref="resetForm" :model="resetForm" :rules="resetRules" label-width="155px">
+					<el-form-item :label="$t('SystemManage.DepartManage.user_table_account')">
 						<span>{{modifyAdminName}}</span>
 					</el-form-item>
-					<el-form-item label="新密码" prop="password">
+					<el-form-item :label="$t('SystemManage.DepartManage.new_pwd')" prop="password">
 						<el-input v-model="resetForm.password" style="width:100%" :show-password="true"></el-input>
 					</el-form-item>
-					<el-form-item label="确认新密码" prop="check" style="margin-bottom: 40px;">
+					<el-form-item :label="$t('SystemManage.DepartManage.confirm_pwd')" prop="check" style="margin-bottom: 40px;">
 						<el-input v-model="resetForm.check" style="width:100%" :show-password="true"></el-input>
 					</el-form-item>
 				</el-form>
 				<div style="display:flex;justify-content:center;margin:26px 0">
-					<el-button type="primary" style="width:80px;margin-right:24px;" @click="resetPassWord(_,'execute')">保存</el-button>
-					<el-button style="width:80px;" @click="isResetPasswordShow=false">取消</el-button>
+					<el-button type="primary" style="width:80px;margin-right:24px;" @click="resetPassWord(_,'execute')">{{$t('Dialog.confirm_save_btn')}}</el-button>
+					<el-button style="width:80px;" @click="isResetPasswordShow=false">{{$t('Dialog.cancel_btn')}}</el-button>
 				</div>
 			</div>
 		</el-dialog>
 		<!-- 移动分组 -->
 		<el-dialog
-			title="移动分组"
+			:title="$t('SystemManage.DepartManage.user_table_move_group')"
 			:visible.sync="isMoveDepartShow"
 			:close-on-click-modal="false" 
 			:modal-append-to-body="false"
@@ -374,18 +374,18 @@
 		>
 			<div class="dialog-cotainer">
 				<div class="form-item" style="display: flex;align-items: center;margin-bottom:20px">
-					<p style="width:90px">账号</p>
+					<p style="width:120px">{{$t('SystemManage.DepartManage.user_table_account')}}</p>
 					<span>{{modifyAdminName}}</span>
 				</div>
 				<div class="form-item" style="display: flex;align-items: center;">
-					<p style="width:90px">选择分组</p>
+					<p style="width:120px">{{$t('SystemManage.DepartManage.group_select')}}</p>
 					<el-cascader :options="departArr" v-model="resetDepart" :props="form_departProp" style="width:100%"
-						placeholder="请选择部门分组">
+						:placeholder="$t('SystemManage.DepartManage.group_select_placeholer')">
 					</el-cascader>
 				</div>
 				<div style="display:flex;justify-content:center;margin:26px 0">
-					<el-button type="primary" style="width:80px;margin-right:24px;" @click="moveDepart(_,'execute')">保存</el-button>
-					<el-button style="width:80px;" @click="isMoveDepartShow=false">取消</el-button>
+					<el-button type="primary" style="width:80px;margin-right:24px;" @click="moveDepart(_,'execute')">{{$t('Dialog.confirm_save_btn')}}</el-button>
+					<el-button style="width:80px;" @click="isMoveDepartShow=false">{{$t('Dialog.cancel_btn')}}</el-button>
 				</div>
 			</div>
 		</el-dialog>
@@ -770,7 +770,7 @@ export default {
 					DepartmentId:data.DepartmentId
 				}).then(res =>{
 					if(res.Ret === 200) {
-						this.$message.success('删除部门成功')
+						this.$message.success(this.$t('SystemManage.DepartManage.depart_del_success'))
 						this.getDepartArr();
 					}
 				})
@@ -780,7 +780,7 @@ export default {
 					GroupId:data.DepartmentId
 				}).then(res =>{
 					if(res.Ret === 200) {
-						this.$message.success('删除分组成功')
+						this.$message.success(this.$t('SystemManage.DepartManage.group_del_success'))
 						this.getDepartArr();
 					}
 				})
@@ -789,7 +789,7 @@ export default {
 					TeamId:data.DepartmentId
 				}).then(res =>{
 					if(res.Ret === 200) {
-						this.$message.success('删除成功')
+						this.$message.success(this.$t('MsgPrompt.delete_msg'))
 						this.getDepartArr();
 					}
 				})
@@ -800,7 +800,7 @@ export default {
 			if(data.IsDepartment) {
 				this.isAddDepart = true;
 				this.departForm = {
-					title:"编辑部门",
+					title:this.$t('SystemManage.DepartManage.depart_edit'),
 					name:data.DepartmentName,
 					depart_id:data.DepartmentId
 				}
@@ -830,7 +830,7 @@ export default {
 				GroupName:this.editGroupForm.group,
 			})
 			if(res.Ret === 200) {
-					this.$message.success('编辑成功')
+					this.$message.success(this.$t('MsgPrompt.edit_msg'))
 					this.isEditGroup = false;
 					this.editGroupForm = {
 						group_id:'',
@@ -844,7 +844,7 @@ export default {
 			if(data.IsDepartment) {
 				this.isAddGroup = true;
 				this.groupForm = {
-					title:"添加分组",
+					title:this.$t('SystemManage.DepartManage.group_add'),
 					depart:data.DepartmentName,
 					depart_id:data.DepartmentId,
 					group:data.Child||[]
@@ -853,7 +853,7 @@ export default {
 				console.log(data);
 				this.isAddGroup = true;
 				this.groupForm = {
-					title:"添加分组",
+					title:this.$t('SystemManage.DepartManage.group_add'),
 					depart:data.DepartmentName,
 					depart_id:data.TopId,
 					group_id:data.DepartmentId,
@@ -902,10 +902,10 @@ export default {
 						GroupName:groupArr.join(',')
 					})
 						if(res.Ret === 200) {
-							this.$message.success('添加成功')
+							this.$message.success(this.$t('MsgPrompt.add_msg'))
 							this.isAddGroup = false;
 							this.groupForm = {
-								title:"添加分组",
+								title:this.$t('SystemManage.DepartManage.group_add'),
 								depart:'',
 								group:[],
 								depart_id:'',
@@ -919,7 +919,7 @@ export default {
 		addDepart() {
 			this.isAddDepart = true;
 			this.departForm = {
-				title:'新建部门',
+				title:this.$t('SystemManage.DepartManage.depart_create'),
 				name:''
 			}
 		},
@@ -928,15 +928,15 @@ export default {
 			this.$refs.departForm.validate((valid) => {
 				if (valid) {
 					// alert('submit!');
-					if(this.departForm.title == '新建部门') {
+					if(!this.departForm.depart_id) {
 						departInterence.addDepart({
 							DepartmentName:this.departForm.name
 						}).then(res => {
 							if(res.Ret === 200) {
-								this.$message.success('新建成功')
+								this.$message.success(this.$t('MsgPrompt.add_msg'))
 								this.isAddDepart = false;
 								this.departForm = {
-									title:'新建部门',
+									title:this.$t('SystemManage.DepartManage.depart_create'),
 									name:''
 								}
 								this.getDepartArr();
@@ -948,10 +948,10 @@ export default {
 							DepartmentName:this.departForm.name
 						}).then(res => {
 							if(res.Ret === 200) {
-								this.$message.success('编辑成功')
+								this.$message.success(this.$t('MsgPrompt.edit_msg'))
 								this.isAddDepart = false;
 								this.departForm = {
-									title:'新建部门',
+									title:this.$t('SystemManage.DepartManage.depart_create'),
 									name:''
 								}
 								this.getDepartArr();
@@ -971,7 +971,7 @@ export default {
 			this.isAddUser = true;
 			this.hasEmployeeNo=false
 			this.userForm = {
-				title:'添加用户',
+				title:this.$t('SystemManage.DepartManage.user_add_btn'),
 				account:'',
 				pwd:'',
 				employeeNumber:'',
@@ -1023,7 +1023,7 @@ export default {
 			this.$refs.addUserDialog.$refs.userForm.validate((valid) => {
 				if (valid) {
 					/* 新增 */
-					if(this.userForm.title == '添加用户') {				
+					if(this.userForm.title == this.$t('SystemManage.DepartManage.user_add_btn')) {				
 						let params = {
 							AdminName: this.userForm.account,
 							Password: new http.Base64().encode(this.userForm.pwd),
@@ -1049,7 +1049,7 @@ export default {
 								this.$message.success(res.Msg);
 								this.isAddUser = false;
 								this.userForm = {
-									title:'添加用户',
+									title:this.$t('SystemManage.DepartManage.user_add_btn'),
 									account:'',
 									pwd:'',
 									employeeNumber:'',
@@ -1098,10 +1098,10 @@ export default {
 						//console.log('testEdit',params)
 						departInterence.editUser(params).then(res => {
 							if(res.Ret === 200) {
-								this.$message.success('编辑成功');
+								this.$message.success(this.$t('MsgPrompt.edit_msg'));
 								this.isAddUser = false;
 								this.userForm = {
-									title:'添加用户',
+									title:this.$t('SystemManage.DepartManage.user_add_btn'),
 									account:'',
 									pwd:'',
 									employeeNumber:'',
@@ -1133,7 +1133,7 @@ export default {
 				this.isAddDepart = false;
 			}else if(type === 2) {
 				this.groupForm = {
-					title:"添加分组",
+					title:this.$t('SystemManage.DepartManage.group_add'),
 					depart:'',
 					depart_id:'',
 					group:[],
@@ -1142,7 +1142,7 @@ export default {
 				this.isAddGroup = false;
 			}else if(type === 3) {
 				this.userForm = {
-					title:'添加用户',
+					title:this.$t('SystemManage.DepartManage.user_add_btn'),
 					account:'',
 					pwd:'',
 					employeeNumber:'',
@@ -1235,7 +1235,7 @@ export default {
 				this.isExtraUserFormItemShow = false
 			} */
 			this.userForm = {
-				title:'编辑用户',
+				title:this.$t('SystemManage.DepartManage.user_edit_btn'),
 				admin_id:item.AdminId,
 				account:item.AdminName,
 				pwd:item.Password,
@@ -1262,14 +1262,14 @@ export default {
 		},
 		/* 删除用户 */
 		delUser(item) {
-			this.$confirm(`是否确认删除用户【${item.AdminName}】`,'提示',{
+			this.$confirm(`${this.$t('SystemManage.DepartManage.del_msg')}【${item.AdminName}】`,this.$t('Confirm.prompt'),{
 				type:'warning'
 			}).then(() => {
 				departInterence.delUser({
 					AdminId:item.AdminId
 				}).then(res => {
 					if(res.Ret === 200) {
-						this.$message.success('删除成功')
+						this.$message.success(this.$t('MsgPrompt.delete_msg'))
 						this.getTableUser();
 					}
 				})

+ 97 - 53
src/views/system_manage/enAuthManage.vue

@@ -4,7 +4,7 @@
       <div class="select">
         <el-cascader
           v-model="users"
-          placeholder="请选择用户"
+          :placeholder="$t('SystemManage.DataAuth.msg01')"
           :options="options"
           :props="props"
           collapse-tags
@@ -18,7 +18,7 @@
           type="primary"
           style="margin-left: 20px"
           @click="addAdmins"
-          >确 定</el-button
+          >{{$t('Dialog.confirm_btn')}}</el-button
         >
       </div>
       <div class="result-list">
@@ -30,7 +30,7 @@
     </div>
     <div class="operations-table">
       <div class="table-title">
-        <span>英文权限列表</span>
+        <span>{{$t('SystemManage.EnAuthSet.title')}}</span>
       </div>
       <el-table :data="tableData" border v-loading="isShowloadding">
         <el-table-column
@@ -43,7 +43,7 @@
         >
           <template slot-scope="{ row }">
             <span v-if="item.key === 'Enabled'">
-              {{ row[item.key] === 0 ? "已禁用" : "已启用" }}
+              {{ row[item.key] === 0 ? $t('SystemManage.EnAuthSet.enable') : $t('SystemManage.EnAuthSet.opened')  }}
             </span>
             <div v-else-if="item.key === 'RealName'">
               <el-tag
@@ -57,14 +57,14 @@
                 style="position: absolute; left: 10px"
                 >{{
                   row.LabelVal == 1
-                    ? "超管"
+                    ? $t('SystemManage.DepartManage.use_tag01')
                     : row.LabelVal == 2
-                    ? "管理员"
+                    ? $t('SystemManage.DepartManage.use_tag02')
                     : row.LabelVal == 3
-                    ? "部门经理"
+                    ? $t('SystemManage.DepartManage.use_tag03')
                     : row.LabelVal == 4
-                    ? "组长"
-                    : "主管"
+                    ? $t('SystemManage.DepartManage.use_tag04')
+                    : $t('SystemManage.DepartManage.use_tag05')
                 }}</el-tag
               >
               <span style="position: relative">{{ row.RealName }}</span>
@@ -72,13 +72,13 @@
             <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="header" slot-scope="{}">
-            <span>操作</span>
+            <span>{{$t('Table.column_operations')}}</span>
             <el-tooltip
               effect="dark"
               placement="top-start"
-              content="删除操作仅删除该用户的英文权限"
+              :content="$t('SystemManage.EnAuthSet.tips')"
             >
               <i class="el-icon-question" />
             </el-tooltip>
@@ -87,16 +87,16 @@
             <span v-permission="permissionBtn.sysDepartPermission.enAuthManage_settingAuth"
               @click="setAuth(row)"
               style="cursor: pointer; color:#409eff;margin-right: 5px;"
-            >设置权限</span>
+            >{{$t('SystemManage.RoleManage.set_permission')}}</span>
             <span v-permission="permissionBtn.sysDepartPermission.enAuthManage_del"
               @click="handleDeleteAuth(row)"
               style="cursor: pointer; color: #d1433a"
-              >删除</span
+              >{{$t('Table.delete_btn')}}</span
             >
           </template>
         </el-table-column>
         <div slot="empty" style="lineheight: 44px; margin: 60px 0; color: #999">
-          <tableNoData text="暂无数据" size="mini"/>
+          <tableNoData :text="$t('Table.prompt_slogan')" size="mini"/>
         </div>
       </el-table>
       <el-pagination
@@ -117,24 +117,24 @@
       :modal-append-to-body	="false"
       :visible.sync="setAuthData.show" 
       width="689px" 
-      title="设置权限"
+      :title="$t('SystemManage.RoleManage.set_permission')"
     >
       <div class="dialog-content-wrap">
         <div class="user-info">
-          <span>姓名:{{setAuthData.RealName}}</span>
-          <span>角色:{{setAuthData.RoleName}}</span>
-          <span>部门/组织:{{setAuthData.DepartmentGroup}}</span>
+          <span>{{$t('SystemManage.DepartManage.user_table_name')}}:{{setAuthData.RealName}}</span>
+          <span>{{$t('SystemManage.DepartManage.user_table_role')}}:{{setAuthData.RoleName}}</span>
+          <span>{{$t('SystemManage.DepartManage.user_table_depart')}}:{{setAuthData.DepartmentGroup}}</span>
         </div>
         <div class="select-list">
-          <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">全选</el-checkbox>
+          <el-checkbox :indeterminate="isIndeterminate" v-model="checkAll" @change="handleCheckAllChange">{{$t('Common.all_select')}}</el-checkbox>
             <el-checkbox-group v-model="setAuthData.selectList" @change="handleCheckedChange">
               <el-checkbox v-for="auth in authOptions" :label="auth.code" :key="auth.code" >{{auth.label}}</el-checkbox>
             </el-checkbox-group>
         </div>
       </div>
       <div slot="footer" class="foot-container">
-        <el-button type="primary" @click="saveChange">确 定</el-button>
-        <el-button @click="setAuthData.show=false">取 消</el-button>
+        <el-button type="primary" @click="saveChange">{{$t('Dialog.confirm_btn')}}</el-button>
+        <el-button @click="setAuthData.show=false">{{$t('Dialog.cancel_btn')}}</el-button>
       </div>
     </el-dialog>
   </div>
@@ -143,33 +143,77 @@
 <script>
 import { departInterence,enAuthInterence } from "@/api/api.js";
 export default {
-  data() {
-    return {
-      users: "",
-      selectList: [],
-      tableColumns: [
+  computed:{
+    tableColumns(){
+      return [
         {
-          label: "姓名",
+          label: this.$t('SystemManage.DepartManage.user_table_name'),
           key: "RealName",
           width:"200"
         },
         {
-          label: "手机号",
+          label: this.$t('SystemManage.DepartManage.user_table_mobile'),
           key: "Mobile",
         },
         {
-          label: "角色",
+          label: this.$t('SystemManage.DepartManage.user_table_role'),
           key: "RoleName",
         },
         {
-          label: "部门/分组",
+          label: this.$t('SystemManage.DepartManage.user_table_depart'),
           key: "DepartmentGroup",
         },
         {
-          label: "状态",
+          label: this.$t('SystemManage.DepartManage.user_table_status'),
           key: "Enabled",
         },
-      ],
+      ]
+    },
+    authOptions(){
+      return [
+        {
+          code:'english_company_admin',
+          label:this.$t('SystemManage.EnAuthSet.opt_text01')
+        },{
+          code:'english_report_admin',
+          label:this.$t('SystemManage.EnAuthSet.opt_text02')
+        },{
+          code:'english_ppt_admin',
+          label:this.$t('SystemManage.EnAuthSet.opt_text03')
+        },{
+          code:'english_day_new_admin',
+          label: this.$t('SystemManage.EnAuthSet.opt_text04')
+        }
+      ]
+    }
+  },
+  data() {
+    return {
+      users: "",
+      selectList: [],
+      // tableColumns: [
+      //   {
+      //     label: "姓名",
+      //     key: "RealName",
+      //     width:"200"
+      //   },
+      //   {
+      //     label: "手机号",
+      //     key: "Mobile",
+      //   },
+      //   {
+      //     label: "角色",
+      //     key: "RoleName",
+      //   },
+      //   {
+      //     label: "部门/分组",
+      //     key: "DepartmentGroup",
+      //   },
+      //   {
+      //     label: "状态",
+      //     key: "Enabled",
+      //   },
+      // ],
       options: [],
       props: {
         value: "AdminId",
@@ -192,20 +236,20 @@ export default {
         RoleName:'',
         selectList:[]
       },
-      authOptions:[
-        {
-          code:'english_company_admin',
-          label:'英文客户列表管理员'
-        },{
-          code:'english_report_admin',
-          label:'英文研报管理员'
-        },{
-          code:'english_ppt_admin',
-          label:'英文PPT管理员'
-        },{
-          code:'english_day_new_admin',
-          label: '每日资讯管理员'
-        }],//权限设置页面选项
+      // authOptions:[
+      //   {
+      //     code:'english_company_admin',
+      //     label:'英文客户列表管理员'
+      //   },{
+      //     code:'english_report_admin',
+      //     label:'英文研报管理员'
+      //   },{
+      //     code:'english_ppt_admin',
+      //     label:'英文PPT管理员'
+      //   },{
+      //     code:'english_day_new_admin',
+      //     label: '每日资讯管理员'
+      //   }],//权限设置页面选项
       isIndeterminate:false,//权限设置 全选样式
       checkAll:true,//权限设置 全选值
     };
@@ -254,11 +298,11 @@ export default {
     },
     handleDeleteAuth(item) {
       this.$confirm(
-          '确定要删除吗',
-          '提示',
+          this.$t('MsgPrompt.confirm_del_msg'),
+          this.$t('Confirm.prompt'),
           {
-              confirmButtonText: '确定',
-              cancelButtonText: '取消',
+              confirmButtonText: this.$t('Dialog.confirm_btn'),
+              cancelButtonText: this.$t('Dialog.cancel_btn'),
               type: 'warning',
           }
         ).then(()=>{
@@ -270,7 +314,7 @@ export default {
         AdminId: AdminId,
       });
       if (res.Ret === 200) {
-        this.$message.success("删除成功");
+        this.$message.success(this.$t('MsgPrompt.delete_msg'));
         this.page_no = 1
         this.getTableData();
       }
@@ -358,7 +402,7 @@ export default {
         RoleTypeCodes:selectList.join(',')
       })
       if(res.Ret!==200) return
-      this.$message.success('设置成功')
+      this.$message.success(this.$t('MsgPrompt.set_success_msg'))
       this.setAuthData.show = false
     }
   },

+ 60 - 54
src/views/system_manage/etaBaseConfig.vue

@@ -1,8 +1,8 @@
 <template>
     <div class="eta-base-config">
         <div class="nav-type-box">
-            <span :class="[sectionType===1?'active':'']" @click="sectionType=1">通用设置</span>
-            <span :class="[sectionType===2?'active':'']" @click="sectionType=2" v-if="isShowSource">资源库</span>
+            <span :class="[sectionType===1?'active':'']" @click="sectionType=1">{{$t('SystemManage.BaseConfig.tab01')}}</span>
+            <span :class="[sectionType===2?'active':'']" @click="sectionType=2" v-if="isShowSource">{{$t('SystemManage.BaseConfig.tab02')}}</span>
         </div>
         <!-- 通用设置 -->
         <template v-if="sectionType==1">
@@ -15,12 +15,12 @@
             ref="baseConfigForm"
         >
             <div class="part-type-box" style="margin-bottom:40px">
-                <el-button v-if="isShowLoginConfig" type="primary" :plain="partType===1?false:true" @click="partType=1" :style="{width:'120px',border:'none',color:partType==1?'#fff':'#333'}">登录设置</el-button>
-                <el-button type="primary" :plain="partType===2?false:true" @click="partType=2" :style="{width:'120px',border:'none',color:partType==2?'#fff':'#333'}">研报设置</el-button>
-                <el-button type="primary" :plain="partType===3?false:true" v-if="isShowPPT||isShowEnPPT" @click="partType=3" :style="{width:'120px',border:'none',color:partType==3?'#fff':'#333'}">PPT配置</el-button>
+                <el-button v-if="isShowLoginConfig" type="primary" :plain="partType===1?false:true" @click="partType=1" :style="{border:'none',color:partType==1?'#fff':'#333'}">{{$t('SystemManage.BaseConfig.sub_tab01')}}</el-button>
+                <el-button type="primary" :plain="partType===2?false:true" @click="partType=2" :style="{border:'none',color:partType==2?'#fff':'#333'}">{{$t('SystemManage.BaseConfig.sub_tab02')}}</el-button>
+                <el-button type="primary" :plain="partType===3?false:true" v-if="isShowPPT||isShowEnPPT" @click="partType=3" :style="{border:'none',color:partType==3?'#fff':'#333'}">{{$t('SystemManage.BaseConfig.sub_tab03')}}</el-button>
                 <div class="btn-wrap" style="text-align: center;float:right">
-                    <el-button type="primary" plain style="width:120px;" @click="cancel">取消</el-button>
-                    <el-button type="primary"  style="margin-left:20px;width:120px;" @click="saveBaseConfig">保存</el-button>
+                    <el-button type="primary" plain style="width:120px;" @click="cancel">{{$t('Dialog.cancel_btn')}}</el-button>
+                    <el-button type="primary"  style="margin-left:20px;width:120px;" @click="saveBaseConfig">{{$t('Dialog.confirm_save_btn')}}</el-button>
                 </div>
             </div>
             <!-- 登录设置模块 -->
@@ -54,11 +54,11 @@
                             <el-input type="text" v-model.trim="formData.SmsJhgjAppKey" placeholder="请输入国外短信模板appkey" style="width: calc(50% - 10px);" />
                         </div>
                     </el-form-item> -->
-                    <el-form-item label="邮件模板" prop="LoginEmailTemplateSubject" >
+                    <el-form-item :label="$t('SystemManage.BaseConfig.email_tem')" prop="LoginEmailTemplateSubject" >
                         <div class="form-item-type-two">
-                            <el-input type="text" v-model="formData.LoginEmailTemplateSubject" placeholder="请输入邮件标题" >
+                            <el-input type="text" v-model="formData.LoginEmailTemplateSubject" :placeholder="$t('SystemManage.BaseConfig.email_placeholder')" >
                                 <template slot="suffix">
-                                        <el-tooltip content="登陆系统或找回密码或验证身份" placement="top">
+                                        <el-tooltip :content="$t('SystemManage.BaseConfig.email_tips')" placement="top">
                                     <div class="input-suffix">
                                         <img src="~@/assets/img/icons/warn-circle-gray.png" />
                                     </div>
@@ -73,18 +73,18 @@
                             tag="textarea" 
                             :config="{...disclaimerConfig,...emailEditorConfig}" v-model="formData.LoginEmailTemplateContent">
                         </froala>
-                        <ConfigAnnotation picName="emailContentTemplate" @showImage="previewImage" picHintText=""/>
+                        <ConfigAnnotation picName="emailContentTemplate" @showImage="previewImage" picHintText="" :buttonText="$t('SystemManage.BaseConfig.view_example_text')"/>
                     </el-form-item>
                 </div>
             </div>
             <!-- 研报设置 -->
             <div class="part" v-show="partType===2">
                 <div class="side">
-                    <el-form-item label="公司名称" prop="CompanyName">
-                        <el-input type="text" v-model="formData.CompanyName" placeholder="请输入公司名称" />
-                        <ConfigAnnotation picHintText="" picName="CompanyName" @showImage="previewImage"/>
+                    <el-form-item :label="$t('SystemManage.BaseConfig.company_name')" prop="CompanyName">
+                        <el-input type="text" v-model="formData.CompanyName" :placeholder="$t('SystemManage.BaseConfig.company_name_placeholder')" />
+                        <ConfigAnnotation picHintText="" :buttonText="$t('SystemManage.BaseConfig.view_example_text')" picName="CompanyName" @showImage="previewImage"/>
                     </el-form-item>
-                    <el-form-item label="公司水印" prop="CompanyWatermark" class="watermark">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.compay_mark')" prop="CompanyWatermark" class="watermark">
                         <ImgUpload 
                             :imgUrl="formData.CompanyWatermark"
                             @showImage="showImage"
@@ -92,16 +92,16 @@
                             @remove="deleteFormImg('CompanyWatermark')"
                             />
                         <!-- 后面可能会有新的选项 -->
-                        <div style="position: absolute;top: -40px;left: 100px;display:flex;gap:0 20px">
+                        <div style="position: absolute;top: -40px;left: 140px;display:flex;gap:0 20px">
                             <el-checkbox-group v-if="isShowYBChart"
                                 v-model="checkList" >
-                                <el-checkbox label="研报图表"></el-checkbox>
+                                <el-checkbox label="研报图表">{{$t('SystemManage.BaseConfig.report_chart')}}</el-checkbox>
                             </el-checkbox-group>
                             <div v-if="isShowYBShare">
-                                <el-checkbox label="研报分享" v-model="formData.WatermarkReport"></el-checkbox>
+                                <el-checkbox label="研报分享" v-model="formData.WatermarkReport">{{$t('SystemManage.BaseConfig.report_share')}}</el-checkbox>
                                 <el-tooltip 
                                     effect="dark" 
-                                    content="研报详情分享页水印,水印内容为分享人用户名称+手机号(无手机号时为邮箱地址)" 
+                                    :content="$t('SystemManage.BaseConfig.report_share_tips')" 
                                     placement="top"
                                 >
                                     <i class="el-icon-warning"></i>
@@ -109,9 +109,9 @@
                             </div>
                             
                         </div>
-                        <ConfigAnnotation picName="CompanyWatermark" @showImage="previewImage"/>
+                        <ConfigAnnotation :picHintText="$t('SystemManage.BaseConfig.upload_format')" :buttonText="$t('SystemManage.BaseConfig.view_example_text')" picName="CompanyWatermark" @showImage="previewImage"/>
                     </el-form-item>
-                    <el-form-item label="免责声明" prop="Disclaimer" class="disclaimer">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.disclaimer')" prop="Disclaimer" class="disclaimer">
                         <div class="rich-editor-wrap">
                             <froala :id="`disclaimer-editor`"
                                 :ref="`disclaimerEditor`" 
@@ -119,42 +119,42 @@
                                 :config="disclaimerConfig" v-model="formData.Disclaimer">
                             </froala>
                         </div>
-                        <ConfigAnnotation picHintText="" picName="Disclaimer" @showImage="previewImage"/>
+                        <ConfigAnnotation picHintText="" :buttonText="$t('SystemManage.BaseConfig.view_example_text')" picName="Disclaimer" @showImage="previewImage"/>
                     </el-form-item>
                     <div v-if="isShowXunFei">
                         <!-- 科大讯飞 -->
                         <div style="width:100%;">
-                            <span style="color:#606266;">科大讯飞服务</span> 
+                            <span style="color:#606266;">{{$t('SystemManage.BaseConfig.iFLYTEK_service')}}</span> 
                             <el-switch v-model="Iflytek"></el-switch>
                         </div>
                         <template v-if="Iflytek">
                             <el-form-item label="APPID" prop="XfAppid">
-                                <el-input type="text" v-model="formData.XfAppid" placeholder="请输入APPID" />
+                                <el-input type="text" v-model="formData.XfAppid" :placeholder="$t('SystemManage.BaseConfig.please_enter')+'APPID'" />
                             </el-form-item>
                             <el-form-item label="APIKey" prop="XfApiKey">
-                                <el-input type="text" v-model="formData.XfApiKey" placeholder="请输入APIKey" />
+                                <el-input type="text" v-model="formData.XfApiKey" :placeholder="$t('SystemManage.BaseConfig.please_enter')+'APIKey'" />
                             </el-form-item>
                             <el-form-item label="APISecret" prop="XfApiSecret">
-                                <el-input type="text" v-model="formData.XfApiSecret" placeholder="请输入APISecret" />
+                                <el-input type="text" v-model="formData.XfApiSecret" :placeholder="$t('SystemManage.BaseConfig.please_enter')+'APISecret'" />
                             </el-form-item>
                             <el-form-item label="vcn(voice_name)" prop="XfVcn">
-                                <el-input type="text" v-model="formData.XfVcn" placeholder="请输入voice_name" />
+                                <el-input type="text" v-model="formData.XfVcn" :placeholder="$t('SystemManage.BaseConfig.please_enter')+'voice_name'" />
                             </el-form-item>
                         </template>
                     </div>
                     <!-- 研报审批 -->
                     <div v-if="isShowApprove">
                         <div style="width:100%;margin-bottom: 20px;">
-                            <span style="color:#606266;">研报审批</span> 
+                            <span style="color:#606266;">{{$t('SystemManage.BaseConfig.report_approval')}}</span> 
                             <el-switch v-model="approve"></el-switch>
                         </div>
                         <div class="side" v-if="approve">
                             <el-form-item label="" prop="ReportApproveType">
                                 <el-radio-group v-model="formData.ReportApproveType">
-                                    <el-radio label="eta">ETA内部审批</el-radio>
+                                    <el-radio label="eta">{{$t('SystemManage.BaseConfig.internal_approval')}}</el-radio>
                                     <el-radio label="other">
-                                        <span>第三方审批</span>
-                                        <el-tooltip effect="dark" placement="top" content="中文研报(智能研报/研报列表)通过API接口对接第三方审批系统" >
+                                        <span>{{$t('SystemManage.BaseConfig.third_approval')}}</span>
+                                        <el-tooltip effect="dark" placement="top" :content="$t('SystemManage.BaseConfig.third_approval_tips')" >
                                             <span class="hint-text">
                                                 <i class="el-icon-warning-outline"></i>
                                             </span>
@@ -166,22 +166,22 @@
                     </div>
                 </div>
                 <div class="side">
-                    <el-form-item label="中文研报分享抬头" prop="H5ShareName">
-                        <el-input type="text" v-model="formData.H5ShareName" placeholder="请输入中文研报分享抬头" />
+                    <el-form-item :label="$t('SystemManage.BaseConfig.report_share_title_zh')" prop="H5ShareName">
+                        <el-input type="text" v-model="formData.H5ShareName" :placeholder="$t('SystemManage.BaseConfig.report_share_title_zh_placeholder')" />
                     </el-form-item>
-                    <el-form-item label="英文研报分享抬头" prop="H5ShareEnName">
-                        <el-input type="text" v-model="formData.H5ShareEnName" placeholder="请输入英文研报分享抬头" />
+                    <el-form-item :label="$t('SystemManage.BaseConfig.report_share_title_en')" prop="H5ShareEnName">
+                        <el-input type="text" v-model="formData.H5ShareEnName" :placeholder="$t('SystemManage.BaseConfig.report_share_title_en_placeholder')" />
                     </el-form-item>
-                    <el-form-item label="关联公众号" prop="WxAppId">
-                        <el-input type="text" v-model.trim="formData.WxAppId" placeholder="请输入AppID" />
+                    <el-form-item :label="$t('SystemManage.BaseConfig.connect_wx')" prop="WxAppId">
+                        <el-input type="text" v-model.trim="formData.WxAppId" :placeholder="$t('SystemManage.BaseConfig.please_enter')+'AppID'" />
                     </el-form-item>
                     <el-form-item prop="WxAppSecret">
-                        <el-input type="text" v-model.trim="formData.WxAppSecret" placeholder="请输入AppSecret" />
+                        <el-input type="text" v-model.trim="formData.WxAppSecret" :placeholder="$t('SystemManage.BaseConfig.please_enter')+'AppSecret'" />
                     </el-form-item>
                     <el-form-item prop="WxId">
-                        <el-input type="text" v-model.trim="formData.WxId" placeholder="请输入原始Id" />
+                        <el-input type="text" v-model.trim="formData.WxId" :placeholder="$t('SystemManage.BaseConfig.wx_original_id')" />
                     </el-form-item>
-                    <div class="input-hint">注:关联公众号填写时,AppID、AppSecret原始ID均需填写。</div>
+                    <div class="input-hint">{{$t('SystemManage.BaseConfig.wx_original_tips')}}</div>
                     <el-form-item  prop="H5ReportShareImg">
                         <ImgUpload 
                             :imgUrl="formData.H5ReportShareImg"
@@ -197,8 +197,8 @@
             <!-- PPT配置 -->
             <div class="part" v-if="isShowPPT||isShowEnPPT" v-show="partType===3">
                 <el-radio-group v-model="pptLang" style="margin-bottom: 22px;">
-                    <el-radio-button label="cn">中文PPT</el-radio-button>
-                    <el-radio-button label="en">英文PPT</el-radio-button>
+                    <el-radio-button label="cn">{{$t('SystemManage.BaseConfig.ppt_zh')}}</el-radio-button>
+                    <el-radio-button label="en">{{$t('SystemManage.BaseConfig.ppt_en')}}</el-radio-button>
                 </el-radio-group>
                 <div v-if="isShowPPT" v-show="pptLang === 'cn'" class="ppt-form-item-wrap">
                     <!-- <div class="inner-input-wrap">
@@ -213,7 +213,7 @@
                         </el-form-item>
                     </div> -->
                     
-                    <el-form-item label="PPT封面图" prop="CnPptCoverImgs" style="min-width:400px;">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.ppt_type01')" prop="CnPptCoverImgs" style="min-width:400px;">
                         <div class="input-line" style="display:flex;">
                             <ImgUpload 
                                 :imgUrl="formData.CnPptCoverImgs.length===3?formData.CnPptCoverImgs[2]:''"
@@ -227,9 +227,10 @@
                                 @deleteImg="(index)=>{deleteFormImg('CnPptCoverImgs',index)}"/>
                         </div>
                         <ConfigAnnotation picName="pptCoverList" @showImage="previewImage"
-                            picHintText="上传格式:png、jpg,最多上传三张,建议图片比例:10:7"/>
+                            :picHintText="$t('SystemManage.BaseConfig.ppt_tip01')"
+                            :buttonText="$t('SystemManage.BaseConfig.view_example_text')"/>
                     </el-form-item>
-                    <el-form-item label="PPT背景图" prop="CnPptBackgroundImg">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.ppt_type02')" prop="CnPptBackgroundImg">
                         <ImgUpload 
                             :imgUrl="formData.CnPptBackgroundImg"
                             @showImage="showImage"
@@ -237,9 +238,10 @@
                             @remove="deleteFormImg('CnPptBackgroundImg')"
                             />
                         <ConfigAnnotation picName="pptBgPic" @showImage="previewImage"
-                            picHintText="上传格式:png、jpg,建议图片比例:10:7"/>
+                            :picHintText="$t('SystemManage.BaseConfig.ppt_tip02')"
+                            :buttonText="$t('SystemManage.BaseConfig.view_example_text')"/>
                     </el-form-item>
-                    <el-form-item label="PPT封底图" prop="CnPptBottomImg">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.ppt_type03')" prop="CnPptBottomImg">
                         <ImgUpload 
                             :imgUrl="formData.CnPptBottomImg"
                             @showImage="showImage"
@@ -247,7 +249,8 @@
                             @remove="deleteFormImg('CnPptBottomImg')"
                             />
                         <ConfigAnnotation picName="pptBackPic" @showImage="previewImage"
-                            picHintText="上传格式:png、jpg,建议图片比例:10:7"/>
+                            :picHintText="$t('SystemManage.BaseConfig.ppt_tip03')"
+                            :buttonText="$t('SystemManage.BaseConfig.view_example_text')"/>
                     </el-form-item>
                 </div>
                 <div v-if="isShowEnPPT" v-show="pptLang === 'en'" class="ppt-form-item-wrap">
@@ -262,7 +265,7 @@
                             <el-input type="color" style="width:64px;" v-model="formData.PptFontColorEn"></el-input>
                         </el-form-item>
                     </div> -->
-                    <el-form-item label="PPT封面图" prop="EnPptCoverImgs" style="min-width:400px;">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.ppt_type01')" prop="EnPptCoverImgs" style="min-width:400px;">
                         <div class="input-line" style="display:flex;">
                             <ImgUpload 
                                 :imgUrl="formData.EnPptCoverImgs.length===3?formData.EnPptCoverImgs[2]:''"
@@ -276,9 +279,10 @@
                                 @deleteImg="(index)=>{deleteFormImg('EnPptCoverImgs',index)}"/>
                         </div>
                         <ConfigAnnotation picName="pptCoverList" @showImage="previewImage"
-                            picHintText="上传格式:png、jpg,最多上传三张,建议图片比例:10:7"/>
+                            :picHintText="$t('SystemManage.BaseConfig.ppt_tip01')"
+                            :buttonText="$t('SystemManage.BaseConfig.view_example_text')"/>
                     </el-form-item>
-                    <el-form-item label="PPT背景图" prop="EnPptBackgroundImg">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.ppt_type02')" prop="EnPptBackgroundImg">
                         <ImgUpload 
                             :imgUrl="formData.EnPptBackgroundImg"
                             @showImage="showImage"
@@ -286,9 +290,10 @@
                             @remove="deleteFormImg('EnPptBackgroundImg')"
                             />
                         <ConfigAnnotation picName="pptBgPic" @showImage="previewImage"
-                            picHintText="上传格式:png、jpg,建议图片比例:10:7"/>
+                            :picHintText="$t('SystemManage.BaseConfig.ppt_tip02')"
+                            :buttonText="$t('SystemManage.BaseConfig.view_example_text')"/>
                     </el-form-item>
-                    <el-form-item label="PPT封底图" prop="EnPptBottomImg">
+                    <el-form-item :label="$t('SystemManage.BaseConfig.ppt_type03')" prop="EnPptBottomImg">
                         <ImgUpload 
                             :imgUrl="formData.EnPptBottomImg"
                             @showImage="showImage"
@@ -296,7 +301,8 @@
                             @remove="deleteFormImg('EnPptBottomImg')"
                             />
                         <ConfigAnnotation picName="pptBackPic" @showImage="previewImage"
-                            picHintText="上传格式:png、jpg,建议图片比例:10:7"/>
+                            :picHintText="$t('SystemManage.BaseConfig.ppt_tip03')"
+                            :buttonText="$t('SystemManage.BaseConfig.view_example_text')"/>
                     </el-form-item>
                 </div>
             </div>

+ 1 - 1
src/views/system_manage/mixin/departManageMixin.js

@@ -173,7 +173,7 @@ export default {
             }
             departInterence.sortDepart(params).then(res=>{
                 if(res.Ret!==200) return 
-                this.$message.success('移动排序成功')
+                this.$message.success(this.$t('MsgPrompt.move_sort_success'))
                 this.getDepartArr()
             })
         },

+ 6 - 6
src/views/system_manage/newAuthManage.vue

@@ -2,21 +2,21 @@
     <div class="authManage_container">
         <div class="auth_cont_top">
             <div>
-                <span>角色:</span>
+                <span>{{$t('SystemManage.RoleManage.role_name')}}:</span>
                 <span>{{Role.RoleName}}</span>
                 <!-- <el-select v-model="role" placeholder="请选择角色" style="width:360px;marginLeft:30px;">
                     <el-option v-for="item in roleList" :key="item.RoleId" :label="item.RoleName" :value="item.RoleId">
                     </el-option>
                 </el-select> -->
             </div>
-            <el-button style="margin-left:auto;marginRight:50px;width:140px;" @click="$router.back()" v-if="!isLook">取消
+            <el-button style="margin-left:auto;marginRight:50px;width:140px;" @click="$router.back()" v-if="!isLook">{{$t('Dialog.cancel_btn')}}
             </el-button>
-            <el-button type="primary" style="marginRight:50px;width:140px;" @click="saveAuth" v-if="!isLook">保存
+            <el-button type="primary" style="marginRight:50px;width:140px;" @click="saveAuth" v-if="!isLook">{{$t('Dialog.confirm_save_btn')}}
             </el-button>
         </div>
         <div class="auth_bot">
             <div class="menu_auth_cont">
-                <h3 style="color:#333;fontSize:14px;">权限设置</h3>
+                <h3 style="color:#333;fontSize:14px;">{{$t('SystemManage.RoleManage.permission_set')}}</h3>
                 <div class="auth-wrap">
                     <el-tree ref="checkboxTree" :data="authList" :props="{label:'Name',children:'Children',disabled:'Disabled'}"
                         :default-expand-all="false" show-checkbox node-key="MenuId"
@@ -103,7 +103,7 @@ export default {
             const keys = this.$refs.checkboxTree.getCheckedKeys()
             const halfKeys = this.$refs.checkboxTree.getHalfCheckedKeys()
             if(!keys.length&&!halfKeys.length){
-                this.$message.warning('请至少选择一个权限')
+                this.$message.warning(this.$t('SystemManage.RoleManage.set_permission_msg01'))
                 return
             }
             const ChoiceList = Array.from(new Set([...keys,...halfKeys]))
@@ -113,7 +113,7 @@ export default {
                 HalfMenuIds:halfKeys
             }).then(res=>{
                 if(res.Ret!==200) return 
-                this.$message.success('权限设置成功')
+                this.$message.success(this.$t('SystemManage.RoleManage.set_permission_success'))
                 this.$router.back()
             })
         },

+ 39 - 30
src/views/system_manage/operateAuthManage.vue

@@ -10,7 +10,7 @@
         <div v-if="authTabs.length">
             <el-input 
             v-model="searchForm.key_word" 
-            :placeholder="default_tab === 5 ? '请输入图表名称' : '请输入指标Id/指标名称'" 
+            :placeholder="default_tab === 5 ? this.$t('SystemManage.OperateAuth.placeholder01') : this.$t('SystemManage.OperateAuth.placeholder02')" 
             style="width: 300px;margin-right:20px;"
             @change="changeUser"
             clearable
@@ -35,7 +35,7 @@
             clearable
             filterable
             @change="changeUser"
-            placeholder="请选择分类" 
+            :placeholder="this.$t('SystemManage.OperateAuth.placeholder03')" 
             style="width: 250px;"
           />
           <el-cascader
@@ -52,15 +52,15 @@
             clearable
             @change="changeUser"
             filterable
-            placeholder="请选择用户" 
+            :placeholder="this.$t('SystemManage.OperateAuth.placeholder04')" 
             style="margin: 0 20px"
           />
         </div>
         <div>
           <el-button type="primary" @click="editAuthHandle({},'multiple')" 
-          v-if="[3,4].includes(default_tab)?authBtn('edit'):authTabs.length">批量编辑</el-button>
+          v-if="[3,4].includes(default_tab)?authBtn('edit'):authTabs.length">{{$t('SystemManage.OperateAuth.btn_text01')}}</el-button>
           <el-button type="primary" @click="edbAuthSetHandle({},'multiple')" v-if="[3,4].includes(default_tab
-        )&&authBtn('auth')">权限设置</el-button>
+        )&&authBtn('auth')">{{$t('SystemManage.OperateAuth.btn_text02')}}</el-button>
         </div>
     </div>
      <el-table
@@ -97,7 +97,7 @@
         </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>
     <el-col :span="24" style="height:35px;text-align: right;float: none;">
@@ -126,10 +126,10 @@
           :rules="dialogFormRules"
           @close="cancelDialogHandle"
         >
-          <el-form-item label="原创建人">
+          <el-form-item :label="$t('SystemManage.OperateAuth.original_creator')">
             <span>{{ dialogForm.old_user_name }}</span>
           </el-form-item>
-          <el-form-item label="新创建人" prop="new_user">
+          <el-form-item :label="$t('SystemManage.OperateAuth.new_creator')" prop="new_user">
             <el-cascader
               v-model="dialogForm.new_user"
               :options="userList"
@@ -143,7 +143,7 @@
               :show-all-levels="false"
               clearable
               filterable
-              placeholder="请选择用户" 
+              :placeholder="$t('SystemManage.OperateAuth.placeholder04')" 
               style="width: 250px"
             />
           </el-form-item>
@@ -154,10 +154,10 @@
           type="primary"
           style="margin-right: 60px"
           @click="saveHandle"
-          >保存</el-button
+          >{{$t('Dialog.confirm_save_btn')}}</el-button
         >
         <el-button type="primary" plain @click="cancelDialogHandle"
-          >取消</el-button
+          >{{$t('Dialog.cancel_btn')}}</el-button
         >
       </div>
     </m-dialog>
@@ -184,15 +184,15 @@ export default {
   computed: {
     tableColums() {
       return this.default_tab === 5 ? [
-        { label: '图表名称',key: 'Name' },
-        { label: '图分类',key: 'ClassifyName' },
-        { label: '创建人',key: 'CreateUserName' },
-        { label: '操作',key: 'handle' },
+        { label: this.$t('SystemManage.OperateAuth.table_col_name01'),key: 'Name' },
+        { label: this.$t('SystemManage.OperateAuth.table_col_name02'),key: 'ClassifyName' },
+        { label: this.$t('SystemManage.OperateAuth.table_col_name03'),key: 'CreateUserName' },
+        { label: this.$t('Table.column_operations'),key: 'handle' },
       ] : [
-        { label: '指标ID',key: 'Code' },
-        { label: '指标名称',key: 'Name' },
-        { label: '创建人',key: 'CreateUserName' },
-        { label: '操作',key: 'handle' },
+        { label: this.$t('SystemManage.OperateAuth.table_col_name04'),key: 'Code' },
+        { label: this.$t('SystemManage.OperateAuth.table_col_name05'),key: 'Name' },
+        { label: this.$t('SystemManage.OperateAuth.table_col_name03'),key: 'CreateUserName' },
+        { label: this.$t('Table.column_operations'),key: 'handle' },
       ]
     },
     //权限配置化后的tabs
@@ -214,17 +214,26 @@ export default {
         }
         return temp
     },
+    tabs(){
+      return [
+        { label: this.$t('SystemManage.OperateAuth.tab01'), key: 1 },
+        { label: this.$t('SystemManage.OperateAuth.tab02'), key: 2 },
+        { label: this.$t('SystemManage.OperateAuth.tab03'), key: 3 },
+        { label: this.$t('SystemManage.OperateAuth.tab04'), key: 4 },
+        { label: this.$t('SystemManage.OperateAuth.tab05'), key: 5 }
+      ]
+    }
   },
   data() {
     return {
       default_tab: 1,
-      tabs:[
-        { label: '手工数据指标', key: 1 },
-        { label: '钢联化工数据库', key: 2 },
-        { label: 'ETA指标库', key: 3 },
-        { label: 'ETA预测指标', key: 4 },
-        { label: '图库', key: 5 }
-      ],
+      // tabs:[
+      //   { label: '手工数据指标', key: 1 },
+      //   { label: '钢联化工数据库', key: 2 },
+      //   { label: 'ETA指标库', key: 3 },
+      //   { label: 'ETA预测指标', key: 4 },
+      //   { label: '图库', key: 5 }
+      // ],
       selectedArr: [],//多选数组
       tableLoading: false,
       tableData:[],
@@ -341,10 +350,10 @@ export default {
 
     /* 编辑 */
     editAuthHandle({DataId,CreateUserName,},type='single') {
-      if(type === 'multiple' && !this.selectedArr.length) return this.$message.warning('请至少勾选一个')
+      if(type === 'multiple' && !this.selectedArr.length) return this.$message.warning(this.$t('SystemManage.OperateAuth.msg01'))
 
       this.dialogForm = {
-        title: type === 'multiple' ? '批量编辑权限' : '编辑权限',
+        title: type === 'multiple' ? this.$t('SystemManage.OperateAuth.edit_title02') : this.$t('SystemManage.OperateAuth.edit_title01'),
         old_user_name: type === 'multiple' ? this.selectedArr[0].CreateUserName : CreateUserName,
         ids: type === 'multiple' ? this.selectedArr.map(_ => _.DataId) : [DataId],
         new_user: ''
@@ -369,11 +378,11 @@ export default {
 
     /* 指标权限配置 */
     edbAuthSetHandle({DataId,CreateUserId},type='') {
-      if(type === 'multiple' && !this.selectedArr.length) return this.$message.warning('请至少勾选一个')
+      if(type === 'multiple' && !this.selectedArr.length) return this.$message.warning(this.$t('SystemManage.OperateAuth.msg01'))
       if(type === 'multiple' && this.selectedArr.some(_ => this.selectedArr[0].CreateUserId!==_.CreateUserId)) return this.$message.warning('所选指标创建人不是同一用户,请重新选择!')
 
       this.edbForm = {
-        title: type === 'multiple' ? '批量权限设置' : '权限设置',
+        title: type === 'multiple' ? this.$t('SystemManage.OperateAuth.permission_title02') : this.$t('SystemManage.OperateAuth.permission_title01'),
         createId: type === 'multiple' ? this.selectedArr[0].CreateUserId : CreateUserId,
         ids: type === 'multiple' ? this.selectedArr.map(_ => _.DataId) : [DataId],
       }

+ 19 - 19
src/views/system_manage/outlinkListConfig.vue

@@ -2,34 +2,34 @@
   <div id="outlink-list-config" class="outlink-list-config">
     <div class="outlink-top-button-zone">
       <el-button type="primary" @click="addOutlink" 
-      v-permission="permissionBtn.outlinkConfigPermission.outlinkListConfig_add">添加菜单</el-button>
+      v-permission="permissionBtn.outlinkConfigPermission.outlinkListConfig_add">{{$t('SystemManage.OutLinkConfig.menu_add_btn')}}</el-button>
     </div>
     <el-table :data="outlinkData" border @sort-change="sortChange">
-      <el-table-column label="菜单名称" prop="Title" align="center">
+      <el-table-column :label="$t('SystemManage.OutLinkConfig.tale_col01')" prop="Title" align="center">
         <template slot-scope="{ row }">
           {{ row.Title }}
         </template>
       </el-table-column>
-      <el-table-column label="页面链接" prop="Url" align="center">
+      <el-table-column :label="$t('SystemManage.OutLinkConfig.tale_col02')" prop="Url" align="center">
         <template slot-scope="{ row }">
           {{ row.Url }}
         </template>
       </el-table-column>
-      <el-table-column label="创建时间" prop="CreateTime" align="center" sortable >
+      <el-table-column :label="$t('SystemManage.OutLinkConfig.tale_col03')" prop="CreateTime" align="center" sortable >
         <template slot-scope="{ row }">
           {{ row.CreateTime }}
         </template>
       </el-table-column>
-      <el-table-column label="操作" align="center">
+      <el-table-column :label="$t('Table.column_operations')" align="center">
         <template slot-scope="{ row }">
           <span class="table-button" @click="editOutlink(row)" 
-          v-permission="permissionBtn.outlinkConfigPermission.outlinkListConfig_edit">编辑</span>
+          v-permission="permissionBtn.outlinkConfigPermission.outlinkListConfig_edit">{{$t('Table.edit_btn')}}</span>
           <span class="table-button" style="color: #C54322;" @click="deleteOutlink(row)"
-          v-permission="permissionBtn.outlinkConfigPermission.outlinkListConfig_del">删除</span>
+          v-permission="permissionBtn.outlinkConfigPermission.outlinkListConfig_del">{{$t('Table.delete_btn')}}</span>
         </template>
       </el-table-column>
       <div slot="empty" style="line-height: 44px; margin: 60px 0; color: #999">
-        <tableNoData text="暂无数据" size="mini"/>
+        <tableNoData :text="$t('Table.prompt_slogan')" size="mini"/>
       </div>
     </el-table>
     <m-page
@@ -50,16 +50,16 @@
         <el-form
         :model="outlinkForm"
         ref="outlinkFormRef"
-        label-width="90px">
-          <el-form-item prop="Title" label="菜单名称" :rules="{required:true,message:'菜单名称不能为空',trigger:'blur'}">
-              <el-input v-model="outlinkForm.Title" placeholder="请输入菜单名称" style="width: 295px;"></el-input>
+        label-width="100px">
+          <el-form-item prop="Title" :label="$t('SystemManage.OutLinkConfig.tale_col01')" :rules="{required:true,message:'菜单名称不能为空',trigger:'blur'}">
+              <el-input v-model="outlinkForm.Title" :placeholder="$t('SystemManage.OutLinkConfig.placeholder01')" style="width: 295px;"></el-input>
           </el-form-item>
-          <el-form-item prop="Url" label="页面链接" :rules="{required:true,message:'URL不能为空',trigger:'blur'}">
-              <el-input v-model="outlinkForm.Url" placeholder="请输入URL" style="width: 295px;"></el-input>
+          <el-form-item prop="Url" :label="$t('SystemManage.OutLinkConfig.tale_col02')" :rules="{required:true,message:'URL不能为空',trigger:'blur'}">
+              <el-input v-model="outlinkForm.Url" :placeholder="$t('SystemManage.OutLinkConfig.placeholder02')" style="width: 295px;"></el-input>
           </el-form-item>
           <div class="form-box-buttons-zone">
-            <el-button style="width: 120px;height: 40px;" @click="addOutlinkShow=false">取消</el-button>
-            <el-button type="primary" @click="addOutlinkSave" style="margin-left:30px;width: 120px;height: 40px;">确定</el-button>
+            <el-button style="width: 120px;height: 40px;" @click="addOutlinkShow=false">{{$t('Dialog.cancel_btn')}}</el-button>
+            <el-button type="primary" @click="addOutlinkSave" style="margin-left:30px;width: 120px;height: 40px;">{{$t('Dialog.confirm_btn')}}</el-button>
           </div>
         </el-form>
       </div>
@@ -115,12 +115,12 @@ import mPage from '@/components/mPage.vue';
         this.getOutlinkData()
       },
       addOutlink(){
-        this.dialogTitle="添加菜单"
+        this.dialogTitle=this.$t('SystemManage.OutLinkConfig.menu_add_btn')
         this.addOutlinkShow=true
       },
       editOutlink(item){
         this.outlinkForm=item
-        this.dialogTitle="编辑菜单"
+        this.dialogTitle=this.$t('SystemManage.OutLinkConfig.menu_edit_btn')
         this.addOutlinkShow=true
       },
       resetForm(){
@@ -144,12 +144,12 @@ import mPage from '@/components/mPage.vue';
         })
       },
       deleteOutlink(item){
-        this.$confirm("删除后不可恢复,确认删除吗?", "提示", {
+        this.$confirm(this.$t('MsgPrompt.delete_info_msg'), this.$t('Confirm.prompt'), {
           type: "warning"
         }).then(() => {
           outlinkConfigInterence.outlinkDelete({Id:item.Id}).then(res=>{
             if(res.Ret == 200){
-              this.$message.success("删除菜单成功")
+              this.$message.success(this.$t('SystemManage.OutLinkConfig.del_success_msg'))
               this.getOutlinkData()
             }
           })

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

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