浏览代码

Merge branch 'lang_dev'

Karsa 1 年之前
父节点
当前提交
954d516694

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

@@ -84,6 +84,14 @@ export default {
     zh:'切换曲线图',
     en:'Switch to curve chart'
   },
+  eta_name:{
+    zh:'ETA指标',
+    en:'ETA index'
+  },
+  eta_predictor_name:{
+    zh:'ETA预测指标',
+    en:'ETA predictor index'
+  },
   formula_instru: {
     zh:'公式说明',
     en:'Formula Specification'
@@ -279,6 +287,26 @@ export default {
       zh:'年度',
       en:'Yearly'
     },
+    year_min:{
+      zh:'年',
+      en:'Year'
+    },
+    quarter_min: {
+      zh:'季',
+      en:'season'
+    },
+    month_min: {
+      zh:'月',
+      en:'month'
+    },
+    week_min: {
+      zh:'周',
+      en:'week'
+    },
+    day_min: {
+      zh:'天',
+      en:'day'
+    },
   },
 
   /* 计算方式 */
@@ -530,6 +558,10 @@ export default {
     input_common: {
       zh: '请输入{label}',
       en: 'Please input {label}'
+    },
+    select_edb_name:{
+      zh: '请选择指标名称',
+      en: 'Please select an indicator name'
     }
   },
   

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

@@ -95,6 +95,14 @@ export default {
     zh:'选择我的分类',
     en:'Select My Category Add New category'
   },
+  add_chart_btn:{
+    zh:'添加图表',
+    en:'Add chart'
+  },
+  only_see_mine:{
+    zh:'只看我的',
+    en:'Just look at mine'
+  },
 
   //操作提示文案
   OptMsg:{
@@ -113,7 +121,27 @@ export default {
     chart_del_confirm:{
       zh:'删除后该图表将不能再引用,确认删除吗?',
       en:'After deletion, this chart will no longer be referenced. Are you sure to delete it?'
-    }
+    },
+    graph_name:{
+      zh:'曲线图',
+      en:'graph'
+    },
+
 
   },
+
+  ChartType:{
+    graph_name:{
+      zh:'曲线图',
+      en:'graph'
+    },
+    correlation_name:{
+      zh:'相关性',
+      en:'correlation'
+    },
+    rolling_correlation_name:{
+      zh:'滚动相关性',
+      en:'Rolling correlation'
+    }
+  }
 }

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

@@ -19,6 +19,50 @@ export const ReportListEn = {
   email_address: "e-mail address",
   Last_click_time: "Last click time",
   hits_btn: "Hits",
+  information_title: "Basic information",
+  new_report_radio: "New report",
+  inherit_report_radio: "Inherit report",
+  please_select_category: "Please select a category",
+  input_title_please: "Please input title",
+  please_input_abstract: "Please input abstract",
+  please_select_author: "Please select the author",
+  please_select_frequency: "Please select the frequency",
+  please_select_date: "Please select date",
+  please_report_type_select: "Please select report type",
+  please_report_category_select: "Please select report category",
+  please_report_title_input: "Please input report title",
+  no_reports_msg: "There are currently no reports for this category",
+  chart_insertion_progress: "Batch chart insertion in progress",
+  last_save_time: "Last save time",
+  click_refresh_btn: "Refresh",
+  preview_btn: "Preview",
+  save_draft_btn: "Save Draft",
+  scheduled_publish_btn: "Scheduled Publish",
+  publish_btn: "Publish",
+  submission_btn: "Submission",
+  new_method_btn: "新增方式 New method",
+  title_ipt: "标题 Title",
+  abstract_ipt: "摘要 Abstract",
+  author_select: "作者 Author",
+  frequency_select: "频度 Frequency",
+  creation_time_select: "创建时间 Creation time",
+  insert_chart_tabs: "图表插入 Insert chart",
+  chart_inventory_radio: "ETA图库 ETA Chart Inventory",
+  price_curve_radio: "商品价格曲线 Commodity price curve",
+  related_charts_radio: "相关性图表 Related Charts",
+  curve_fitting_radio: "拟合方程曲线 Curve fitting",
+  statistical_feature_radio: "统计特征 Statistical Feature",
+  intercommodity_analysis_radio: "跨品种分析 Intercommodity Analysis",
+  just_mine_radio: "只看我的 Just Mine",
+  insert_sandbox_tabs: "沙盘插入 Insert Sandbox",
+  no_reports_msg: "沙盘名称/品种 Sandbox Name/Commodity",
+  insert_table_tabs: "表格插入 Insert Table",
+  table_name_tabs: "表格名称 Table Name",
+  bulk_insertion_tabs: "MyETA批量插入 Bulk Insertion of MyETA",
+  semantic_analysis_tabs: "语义分析插入 Semantic Analysis Insertion",
+  publish_time: "发送时间 Publish Time",
+  select_date_and_time: "选择日期时间 Select Date and Time",
+  the_report_will_be_posted_on_time: "设置成功之后,研报将定时进行发送 After the schedule confirmed, the report will be posted on time",
 };
 
 /* 中文 */
@@ -38,4 +82,48 @@ export const ReportListZh = {
   email_address: "邮箱地址",
   Last_click_time: "最近点击时间",
   hits_btn: "点击量",
+  information_title: "基础信息",
+  new_report_radio: "新增报告",
+  inherit_report_radio: "继承报告",
+  please_select_category: "请选择分类",
+  input_title_please: "请输入标题",
+  please_input_abstract: "请输入摘要",
+  please_select_author: "请选择作者",
+  please_select_frequency: "请选择频度",
+  please_select_date: "请选择日期",
+  please_report_type_select: "请选择报告类型",
+  please_report_category_select: "请选择报告分类",
+  please_report_title_input: "请填写报告标题",
+  no_reports_msg: "此分类暂无报告",
+  chart_insertion_progress: "图表批量插入中... Batch chart insertion in progress",
+  last_save_time: "最近保存时间 Last save time",
+  click_refresh_btn: "一键刷新 Refresh",
+  preview_btn: "预览 Preview",
+  save_draft_btn: "存草稿  Save Draft",
+  scheduled_publish_btn: "定时发布 Scheduled Publish",
+  publish_btn: "发布 Publish",
+  submission_btn: "提交 Submission",
+  new_method_btn: "新增方式 New method",
+  title_ipt: "标题 Title",
+  abstract_ipt: "摘要 Abstract",
+  author_select: "作者 Author",
+  frequency_select: "频度 Frequency",
+  creation_time_select: "创建时间 Creation time",
+  insert_chart_tabs: "图表插入 Insert chart",
+  chart_inventory_radio: "ETA图库 ETA Chart Inventory",
+  price_curve_radio: "商品价格曲线 Commodity price curve",
+  related_charts_radio: "相关性图表 Related Charts",
+  curve_fitting_radio: "拟合方程曲线 Curve fitting",
+  statistical_feature_radio: "统计特征 Statistical Feature",
+  intercommodity_analysis_radio: "跨品种分析 Intercommodity Analysis",
+  just_mine_radio: "只看我的 Just Mine",
+  insert_sandbox_tabs: "沙盘插入 Insert Sandbox",
+  no_reports_msg: "沙盘名称/品种 Sandbox Name/Commodity",
+  insert_table_tabs: "表格插入 Insert Table",
+  table_name_tabs: "表格名称 Table Name",
+  bulk_insertion_tabs: "MyETA批量插入 Bulk Insertion of MyETA",
+  semantic_analysis_tabs: "语义分析插入 Semantic Analysis Insertion",
+  publish_time: "发送时间 Publish Time",
+  select_date_and_time: "选择日期时间 Select Date and Time",
+  the_report_will_be_posted_on_time: "设置成功之后,研报将定时进行发送 After the schedule confirmed, the report will be posted on time",
 };

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

@@ -75,6 +75,40 @@ export const SmartReportEn = {
     send_email: "Send email to group",
     send_log: "Group send log",
     image_download: "Image Download",
+    tooltip_pv_show: "The number of times the report has been opened, calculated once each time it is opened (only for authorized users)",
+    tooltip_uv_show:
+      "The number of people accessing the report, and the same person accessing each report is only counted once (only authorized users are counted)",
+    smart_msg: {
+      no_edit: "This research report is currently being edited and cannot be duplicated",
+      unknown_error: "Unknown error, please try again later",
+      uploaded_limitation: "The size of the uploaded file cannot exceed 200M",
+      upload_format: "The upload file format is incorrect",
+      report_recording: "Report not uploaded recording",
+      published_success: "Successfully published and pushed",
+      submit_approval: "Are you sure to submit this report for approval?",
+      revoke_approval: "Are you sure you want to revoke the approval?",
+      revoke_success: "Revoke successful",
+      submit_success: "Submitted successfully",
+      sent_success: "Successfully sent",
+      push_success: "Push successful",
+      release_prompt: "Release prompt",
+      publish_it: "Are you sure to publish it?",
+      delete_it: "Are you sure to delete it?",
+      select_dl_report: "Please select the report that needs to be downloaded",
+      is_publish_immediately: "This report has been scheduled for publication. Would you like to change it to publish immediately?",
+      report_publish_immediately: "Are you sure you want to publish now?",
+      copy_success: "Copy link successful",
+      browser_supported: "Browser not currently supported",
+      select_email_person: "Please select email recipients ",
+      email_subject: "Please input email subject",
+      email_characters: "Email subject should be within 100 characters",
+      synchronization: "Synchronization successful",
+      upload_success: "Upload Successful",
+      please_select_file: "Please select file",
+      should_published_immediately: "Should the report be published immediately?",
+      timed_release_setup: "The report has been scheduled for publication. Do you want to publish the report now?",
+      please_manually_save: "Automatic image download failed, please manually save",
+    },
   },
 };
 
@@ -152,6 +186,40 @@ export const SmartReportZh = {
     send_log: "群发日志",
     image_download: "图片下载",
   },
+  tooltip_pv_show: "报告被打开的次数,每次打开都计算一次(只统计有权限用户)",
+  tooltip_uv_show:
+    "访问报告的人数,每篇报告同一个人访问只计算一次(只统计有权限用户)",
+  smart_msg: {
+    no_edit: "该研报正在编辑,不可重复编辑",
+    unknown_error: "未知错误,请稍后重试",
+    uploaded_limitation: "上传文件大小不能大于200M",
+    upload_format: "上传文件格式不正确",
+    report_recording: "报告未上传录音",
+    published_success: "发布且推送成功",
+    submit_approval: "是否确认提交该报告进入审批流程?",
+    revoke_approval: "确定要撤销审批吗?",
+    revoke_success: "撤销成功",
+    submit_success: "提交成功",
+    sent_success: "发送成功",
+    push_success: "推送成功",
+    release_prompt: "发布提示",
+    publish_it: "确定发布吗?",
+    delete_it: "确认删除吗?",
+    select_dl_report: "请选择需要下载的报告",
+    is_publish_immediately: "该报告已设置定时发布,是否修改为立即发布?",
+    report_publish_immediately: "是否确定立即发布报告?",
+    copy_success: "复制链接成功",
+    browser_supported: "浏览器暂不支持",
+    select_email_person: "请选择需要发送邮件的人员",
+    email_subject: "请填写邮件主题",
+    email_characters: "邮件主题请控制在100个字符以内",
+    synchronization: "同步成功",
+    upload_success: "上传成功",
+    please_select_file: "请选择文件",
+    should_published_immediately: "是否立即发布报告?",
+    timed_release_setup: "该报告已设置定时发布,是否立即发布报告?",
+    please_manually_save: "自动下载图片失败,请手动保存",
+  },
 };
 
 /**t('ReportManage.smart_add_report')

+ 38 - 0
src/lang/modules/StatisticAnalysis/ChartRelevance.js

@@ -13,6 +13,25 @@ export const ChartRelevanceEn = {
     edit_chart_classify:'Edit chart category',
     classify_name_tips:"The category name cannot be empty",
     opt_tip_btn:"Operation instruction",
+
+    edbTagA:'INDEX A',
+    edbTagB:'INDEX B',
+    time:'time',
+    left_axis:"Left axis",
+    right_axis:"Right axis",
+    to:'to',
+    reverse_sequence:'Reverse sequence',
+    standard_index:'Standard index',
+    leading_indicator:'Leading indicator',
+    lead_tag:'lead',
+
+    calculation_window:'Calculation window',
+    B_leads_A:'B leads A',
+    analysis_cycle:'Analysis cycle',
+    update_edb:'Update indicator',
+    save_other:'Indicator Save as',
+    save_edb:'Save indicator',
+    update_edb:'update'
 };
   
 /* 中文 */
@@ -27,6 +46,25 @@ export const ChartRelevanceZh = {
     classify_name_tips:"分类名称不能为空",
     opt_tip_btn:"操作说明",
 
+    edbTagA:'指标A',
+    edbTagB:'指标B',
+    time:'时间',
+    left_axis:"左轴",
+    right_axis:"右轴",
+    to:'至',
+    reverse_sequence:'逆序',
+    standard_index:'标准指标',
+    leading_indicator:'领先指标',
+    lead_tag:'领先',
+
+    calculation_window:'计算窗口',
+    B_leads_A:'B领先A',
+    analysis_cycle:'分析周期',
+    update_edb:'更新指标',
+    save_other:'指标另存为',
+    save_edb:'保存指标',
+    update_edb:'更新'
+
 };
   
 /**

+ 26 - 0
src/lang/modules/StatisticAnalysis/FittingEquationChart.js

@@ -0,0 +1,26 @@
+/**
+ * 统计分析-拟合方程曲线
+ */
+
+/* 英文 */
+export const FittingEquationChartEn = {
+    x_edb:'X-value index',
+    y_edb:'Y-value index',
+    msg01:'Please select an indicator',
+    msg02:'The number of indicators shall not be less than 2 groups',
+    msg03:'The number of indicators on the X-axis and Y-axis is inconsistent',
+};
+  
+/* 中文 */
+export const FittingEquationChartZh = {
+    x_edb:'X值指标',
+    y_edb:'Y轴指标',
+    msg01:'请先选择指标',
+    msg02:'指标数量不得少于2组',
+    msg03:'X轴与Y轴指标数量不一致',
+
+};
+  
+/**
+* $t('StatisticAnalysis.FittingEquationChart.XXX')
+*/

+ 3 - 1
src/lang/modules/StatisticAnalysis/IndexEn.js

@@ -1,9 +1,11 @@
 
 import { ChartRelevanceEn } from "./ChartRelevance";
+import { FittingEquationChartEn } from "./FittingEquationChart";
 
 export default {
   // 统计分析
   StatisticAnalysis: {
-    ChartRelevance:ChartRelevanceEn
+    ChartRelevance:ChartRelevanceEn,
+    FittingEquationChart:FittingEquationChartEn
   },
 };

+ 4 - 1
src/lang/modules/StatisticAnalysis/IndexZh.js

@@ -1,8 +1,11 @@
 import { ChartRelevanceZh } from "./ChartRelevance";
+import { FittingEquationChartZh } from "./FittingEquationChart";
+
 
 export default {
     // 统计分析
     StatisticAnalysis: {
-      ChartRelevance:ChartRelevanceZh
+      ChartRelevance:ChartRelevanceZh,
+      FittingEquationChart:FittingEquationChartZh
     },
   };

+ 13 - 12
src/utils/defaultOptions.js

@@ -1,3 +1,4 @@
+import bus from "@/api/bus";
 export const defaultOpts = {
 	//图表配置
 	chart: {
@@ -219,27 +220,27 @@ export const copyOtherOptions = {
 /* 图表年份筛选框 */
 export const yearSelector = [
 	{
-		name: '15年至今',
+		name: bus.$i18nt?bus.$i18nt.t('Chart.since_onefive'):'15年至今',//'15年至今'
 		value: 3,
 	},
-	// {
-	// 	name: '18年至今',
-	// 	value: 7,
-	// },
-	// {
-	// 	name: '19年至今',
-	// 	value: 8,
-	// },
+	// // {
+	// // 	name: '18年至今',
+	// // 	value: 7,
+	// // },
+	// // {
+	// // 	name: '19年至今',
+	// // 	value: 8,
+	// // },
 	{
-		name: '20年至今',
+		name: bus.$i18nt?bus.$i18nt.t('Chart.since_twozero'):'20年至今',//'20年至今'
 		value: 9,
 	},
 	{
-		name: '21年至今',
+		name: bus.$i18nt?bus.$i18nt.t('Chart.since_twoone'):'21年至今',//'21年至今'
 		value: 4,
 	},
 	{
-		name: '22年至今',
+		name: bus.$i18nt?bus.$i18nt.t('Chart.since_twotwo'):'22年至今',//'22年至今'
 		value: 11,
 	},
 ]

+ 6 - 6
src/views/chartRelevance_manage/components/chartCard.vue

@@ -13,12 +13,12 @@
             @click="updateEdbHandle(entryType)" 
             @command="edbCommandHandle"
           >
-            更新指标
+            {{$t('StatisticAnalysis.ChartRelevance.update_edb')}}
             <el-dropdown-menu slot="dropdown">
-              <el-dropdown-item :command="{entryType,scence:'saveOther'}">指标另存为</el-dropdown-item>
+              <el-dropdown-item :command="{entryType,scence:'saveOther'}">{{$t('StatisticAnalysis.ChartRelevance.save_other')}}</el-dropdown-item>
             </el-dropdown-menu>
           </el-dropdown>
-          <el-button type="primary" v-show="!isEdbAdd" @click="saveEdb(entryType)">保存指标</el-button>
+          <el-button type="primary" v-show="!isEdbAdd" @click="saveEdb(entryType)">{{$t('StatisticAnalysis.ChartRelevance.save_edb')}}</el-button>
         </template>
 
         <el-dropdown 
@@ -28,12 +28,12 @@
           @click="updateChartHandle(entryType)" 
           @command="chartCommandHandle"
         >
-          更新
+          {{$t('StatisticAnalysis.ChartRelevance.update_edb')}}
           <el-dropdown-menu slot="dropdown" v-show="isHaveSaveOtherHandle">
-            <el-dropdown-item :command="{entryType,scence:'saveOther'}">另存为</el-dropdown-item>
+            <el-dropdown-item :command="{entryType,scence:'saveOther'}">{{$t('Table.save_as')}}</el-dropdown-item>
           </el-dropdown-menu>
         </el-dropdown>
-        <el-button type="primary" @click="saveChart(entryType)" v-show="!isChartAdd">保存</el-button>
+        <el-button type="primary" @click="saveChart(entryType)" v-show="!isChartAdd">{{$t('Dialog.confirm_save_btn')}}</el-button>
 
       </div>
     </div>

+ 7 - 3
src/views/chartRelevance_manage/components/explainDialog.vue

@@ -7,7 +7,7 @@
         width="976px"
         v-dialogDrag
         top="8vh"
-        title="操作说明"
+        :title="$t('StatisticAnalysis.ChartRelevance.opt_tip_btn')"
         @close="$emit('close')"
     >
         <div class="dialog-container">
@@ -15,7 +15,7 @@
             </div>
         </div>
         <div class="dialog-btn">
-            <el-button type="primary" @click="$emit('close')">知道了</el-button>
+            <el-button type="primary" @click="$emit('close')">{{$t('MsgPrompt.known')}}</el-button>
         </div>
         
     </el-dialog>
@@ -36,7 +36,11 @@ export default {
     },
     computed:{
         textArray(){
-            return explainText[this.textArrName]
+            if(this.$i18n.locale == 'zh'){
+                return explainText[this.textArrName]
+            }else{
+                return explainText[this.textArrName+'En']
+            }
         }
     },
     data() {

+ 23 - 0
src/views/chartRelevance_manage/components/explainText.js

@@ -16,6 +16,23 @@ export const chartrelevanceTextArr = [
     <p>1、计算窗口:参与计算的时间段长度,从两个指标都有值的日期开始滚动的取计算窗口长度的值进行计算,如配置计算窗口1个月,则2023.7.28的值取2023.6.28~2023.7.28时间段,2023.7.27的值取2023.6.27~2023.7.27时间段;</p>
     <p>2、B领先A:B指标领先A指标的参数,为0时不领先;</p>`
 ]
+export const chartrelevanceTextArrEn=[
+    `<p style='font-weight:bold;'>Instruction for Correlation Calculation Processing Logic:</p>
+    <p>1、 Data Retrieval: Determine the time length of the calculation window, and move backwards from the current time by this duration to obtain a range of dates. Retrieve values for indicator A series and indicator B series within this date range.</p>
+    <p>2、Frequency Adjustment:</p>
+    <p>a. If indicator A is higher frequency, upsample indicator B (use linear equation interpolation to fill in data).</p>
+    <p>b. If indicator B is higher frequency, upsample indicator A (use linear equation interpolation to fill in data).</p>
+    <p>c. If indicator A and B are at the same frequency, no further processing is required.</p>
+    <p>Calculation: For each analysis period, use indicator A as a reference and shift indicator B by corresponding periods. Calculate the correlation for each period using the formula correlation coefficient R = SUM[(Xi-Mx)*(Yi-My)]/[(N-1)(SDx*SDy)].</p>
+    <p style='height:20px;'></p>
+    <p>Note: When shifting indicator B, if there's no value found for a date in the sequence of indicator A, search backward for the closest value within the time range of the calculation window moving back from the current date.</p>`,
+    `<p style='font-weight:bold;'>Correlation Configuration:</p>
+    <p>1. Calculation Window: The historical data time segment involved in the calculation.</p>
+    <p>2. Analysis Period: The number of periods that indicator B leads ahead of A; for instance, if configured with a parameter of 10 months, it indicates that B leads A by -10 months to +10 months, with correlation values calculated separately for each period.</p>`,
+    `<p style='font-weight:bold;'>Rolling Correlation Configuration:</p>
+    <p>1. Calculation Window: The length of time involved in calculations starts from when both indicators have available values and rolls forward taking values within the duration of the calculation window for computation. For example, if configured with a 1-month calculation window, then the value for July 28th, 2023 will be taken from June 28th to July 28th, 2023; while the value for July 27th will be taken from June 27th to July 27th.</p>
+    <p>2. B Leads A: The parameter by which indicator B leads ahead of indicator A; when set to 0, there is no lead.</p>`
+]
 
 //拟合方程曲线
 export const fittingEquationListTextArr = [
@@ -24,6 +41,12 @@ export const fittingEquationListTextArr = [
     <p>2、对两组在选定时间范围内的每一个时间节点,生成拟合方程Y=aX+b以及相关系数R²</p>
     <p>3、分别画出弹性系数a,截距b,相关系数R²,在选定时间范围内的曲线图</p>`,
 ]
+export const fittingEquationListTextArrEn = [
+    `<p style='font-weight:bold;'>Curve processing logic:</p>
+    <p>1、select two groups of relevant indicators</p>
+    <p>2、generate the fitting equation Y=aX+b and correlation coefficient R² for each time node in the selected time range of the two groups</p>
+    <p>3、and draw the curves of the elastic coefficient a, intercept b, and correlation coefficient R² within the selected time range respectively</p>`,
+]
 
 export const statisticFeatureListTextArr = [
     `<p style='font-weight:bold;'>标准差处理逻辑:</p>

+ 23 - 9
src/views/chartRelevance_manage/components/selectTarget.vue

@@ -46,7 +46,7 @@
         :filterable="!search_txt"
         remote
         clearable
-        placeholder="请选择指标名称"
+        :placeholder="$t('Edb.InputHolderAll.select_edb_name')"
         style="flex: 1;margin-left: 15px"
         :remote-method="searchHandle"
         @click.native="inputFocusHandle"
@@ -72,7 +72,7 @@
       :filterable="!search_txt"
       remote
       clearable
-      placeholder="请选择指标名称"
+      :placeholder="$t('Edb.InputHolderAll.select_edb_name')"
       :style="`width: 100%; ${filter?'margin-top: 20px':''}`"
       :remote-method="searchHandle"
       @click.native="inputFocusHandle"
@@ -123,19 +123,33 @@ export default {
         this.targetType=this.defaultType==1?'2':'1' //EdbInfoCategoryType 0普通 1预测
       }
     },
-    data() {
-        return {
-            targetType:'1',//1:ETA指标 2:ETA预测指标
-            etaTypeOpt:[
+    computed:{
+      etaTypeOpt(){
+        return [
                 {
-                    label:'ETA指标',
+                    label:this.$t('Edb.eta_name'),
                     val:'1'
                 },
                 {
-                    label:'ETA预测指标',
+                    label:this.$t('Edb.eta_predictor_name'),
                     val:'2'
                 },
-            ],
+            ]
+      }
+    },
+    data() {
+        return {
+            targetType:'1',//1:ETA指标 2:ETA预测指标
+            // etaTypeOpt:[
+            //     {
+            //         label:'ETA指标',
+            //         val:'1'
+            //     },
+            //     {
+            //         label:'ETA预测指标',
+            //         val:'2'
+            //     },
+            // ],
             search_txt: this.defaultId||'',
             searchOptions: this.defaultOpt||[],
             search_have_more: true,

+ 23 - 17
src/views/chartRelevance_manage/fittingEquation/fittingEquationChartEditor.vue

@@ -9,11 +9,11 @@
     </span>
     <div class="left-cont" v-show="!isSlideLeft" id="left">
       <div class="left-top">
-        <el-button type="primary" @click="saveHandle">保存</el-button>
+        <el-button type="primary" @click="saveHandle">{{$t('Dialog.confirm_save_btn')}}</el-button>
         <el-button style="margin-right:20px" type="primary" plain @click="$router.replace({
 					path: '/fittingEquationList',
 					query: $route.query
-				})">取消</el-button>
+				})">{{$t('Dialog.cancel_btn')}}</el-button>
 				<!-- <span style="color: #666;">
 						使用说明
 					<el-tooltip
@@ -29,12 +29,12 @@
 				</span> -->
 				<div style="color:#409EFF;font-size: 16px;cursor: pointer;" @click="showExplain = true">
 					<i class="el-icon-document" style="font-size:22px;"></i>
-					操作说明
+					{{$t('StatisticAnalysis.ChartRelevance.opt_tip_btn')}}
 				</div>
       </div>
 			<div class="left-min">
 				<div class="section-item">
-					<label style="display: block">时间:</label>
+					<label style="display: block">{{$t('StatisticAnalysis.ChartRelevance.time')}}:</label>
 					<el-select
 							style="width: 120px;margin: 10px 0"
 							v-model="leftOption.DateType"
@@ -65,7 +65,7 @@
             :name="0"
           >
             <template slot="title">
-              <el-button type="text" size="small" style="font-size: 15px;">X值指标</el-button>
+              <el-button type="text" size="small" style="font-size: 15px;">{{$t('StatisticAnalysis.FittingEquationChart.x_edb')}}</el-button>
             </template>
             <div class="setting-wrapper">
               <selectTarget
@@ -97,7 +97,7 @@
             :name="1"
           >
             <template slot="title">
-              <el-button type="text" size="small" style="font-size: 15px;">Y轴指标</el-button>
+              <el-button type="text" size="small" style="font-size: 15px;">{{$t('StatisticAnalysis.FittingEquationChart.y_edb')}}</el-button>
             </template>
             <div class="setting-wrapper">
               <selectTarget
@@ -126,7 +126,7 @@
           </el-collapse-item>
         </el-collapse>
         
-        <el-button type="primary" @click="getPreviewData">确定</el-button>
+        <el-button type="primary" @click="getPreviewData">{{$t('Dialog.confirm_btn')}}</el-button>
 			</div>
       <span
         class="move-btn resize"
@@ -209,6 +209,12 @@ export default {
 	computed: {
 		roleName() {
 			return localStorage.getItem('userName');
+		},
+		yearSelector(){
+			return [
+				...yearSelector,
+				{ name: this.$i18n.locale == 'zh'?'自定义':'custom',value: 5 }
+			]
 		}
 	},
   data() {
@@ -218,10 +224,10 @@ export default {
 			activeNames:[0],
 
 			chartBatchData: [],
-			yearSelector: [
-        ...yearSelector,
-        { name: '自定义',value: 5 }
-      ],
+	// 		yearSelector: [
+    //     ...yearSelector,
+    //     { name: '自定义',value: 5 }
+    //   ],
 			dateSelector: [
 				{ name: '过去1年',value: 1 },
 				{ name: '过去2年',value: 2 },
@@ -278,9 +284,9 @@ export default {
 
     /* 获取数据 */
 		getPreviewData() {
-			if(!this.leftOption.xEdbs.length || !this.leftOption.yEdbs.length) return this.$message.warning('请先选择指标');
-			if(this.leftOption.xEdbs.length < 2 || this.leftOption.yEdbs.length < 2) return this.$message.warning('指标数量不得少于2组')
-			if(this.leftOption.yEdbs.length !== this.leftOption.xEdbs.length) return this.$message.warning('X轴与Y轴指标数量不一致');
+			if(!this.leftOption.xEdbs.length || !this.leftOption.yEdbs.length) return this.$message.warning(this.$t('StatisticAnalysis.FittingEquationChart.msg01'));
+			if(this.leftOption.xEdbs.length < 2 || this.leftOption.yEdbs.length < 2) return this.$message.warning(this.$t('StatisticAnalysis.FittingEquationChart.msg02'))
+			if(this.leftOption.yEdbs.length !== this.leftOption.xEdbs.length) return this.$message.warning(this.$t('StatisticAnalysis.FittingEquationChart.msg03'));
 
 			const { DateType,date,xEdbs,yEdbs } = this.leftOption;
 			let params = {
@@ -353,9 +359,9 @@ export default {
 
 		/* 保存 */
 		async saveHandle() {
-			if(!this.leftOption.xEdbs.length || !this.leftOption.yEdbs.length) return this.$message.warning('请先选择指标');
-			if(this.leftOption.xEdbs.length < 2 || this.leftOption.yEdbs.length < 2) return this.$message.warning('指标数量不得少于2组')
-			if(this.leftOption.yEdbs.length !== this.leftOption.xEdbs.length) return this.$message.warning('X轴与Y轴指标数量不一致');
+			if(!this.leftOption.xEdbs.length || !this.leftOption.yEdbs.length) return this.$message.warning(this.$t('StatisticAnalysis.FittingEquationChart.msg01'));
+			if(this.leftOption.xEdbs.length < 2 || this.leftOption.yEdbs.length < 2) return this.$message.warning(this.$t('StatisticAnalysis.FittingEquationChart.msg02'))
+			if(this.leftOption.yEdbs.length !== this.leftOption.xEdbs.length) return this.$message.warning(this.$t('StatisticAnalysis.FittingEquationChart.msg03'));
       this.isSaveDialog = true;
 
 		},

+ 15 - 15
src/views/chartRelevance_manage/fittingEquation/fittingEquationList.vue

@@ -12,7 +12,7 @@
       <div class="main-left left" id="left" v-show="!isSlideLeft">
 				<div class="datasheet_top">
 						<el-button v-permission="permissionBtn.statisticPermission.fittingEq_addChart"
-							type="primary" @click="goAddChart">添加图表</el-button>
+							type="primary" @click="goAddChart">{{$t('Chart.add_chart_btn')}}</el-button>
 						<!-- <div style="color: #666">
 							 使用说明
 							<el-tooltip
@@ -31,14 +31,14 @@
 				<div class="search-cont">
 					<el-checkbox v-model="isShowMe"  
 						v-permission="permissionBtn.statisticPermission.fittingEq_onlyMine"
-						@change="() => { getTreeData();getPublicList() }">只看我的</el-checkbox>
+						@change="() => { getTreeData();getPublicList() }">{{$t('Chart.only_see_mine')}}</el-checkbox>
 					<el-select
 						v-model="search_txt"
 						v-loadMore="searchLoad"
 						:filterable="!search_txt"
 						remote
 						clearable
-						placeholder="请输入图表名称"
+						:placeholder="$t('Chart.search_chart_placeholder')"
 						style="width: 100%; margin-top: 20px"
 						:remote-method="searchHandle"
 						@click.native="inputFocusHandle"
@@ -133,7 +133,7 @@
 							alt=""
 							style="width: 16px; height: 16px; margin-right: 10px"
 						/>
-						<span>添加图表分类</span>
+						<span>{{$t('StatisticAnalysis.ChartRelevance.add_chart_classify')}}</span>
 					</div>
 				</div>
 				<span
@@ -168,7 +168,7 @@
 											ref="chartRef"
 										/>
                   </div>
-                  <span class="chart-author">作者:{{ chartInfo.SysUserRealName}}</span>
+                  <span class="chart-author">{{$t('MsgPrompt.author')}}:{{ chartInfo.SysUserRealName}}</span>
                 </div>
 
                 <!-- 异常显示 -->
@@ -396,7 +396,7 @@ export default {
 
 		/* 添加一级目录 */
 		addLevelOneHandle() {
-			this.dialog_title = '添加图表分类';
+			this.dialog_title = this.$t('StatisticAnalysis.ChartRelevance.add_chart_classify')||'添加图表分类';
 			this.classifyForm = {
 				classify_name: '',
 			}
@@ -406,7 +406,7 @@ export default {
     /* 编辑节点 */
     editNode(node, { ChartClassifyName,ChartClassifyId }) {
 
-      this.dialog_title = '编辑图表分类';
+      this.dialog_title = this.$t('StatisticAnalysis.ChartRelevance.edit_chart_classify')||'编辑图表分类';
       /* 编辑目录 */
       this.classifyForm = {
         classify_name: ChartClassifyName,
@@ -423,14 +423,14 @@ export default {
 			const { DeleteStatus } = Data;
 
 			DeleteStatus === 1 
-			? this.$confirm('该分类下关联表图表不可删除', '删除失败', {
-				confirmButtonText: '知道了',
+			? this.$confirm(this.$t('Chart.OptMsg.classify_del_fail'), this.$t('Chart.OptMsg.del_fail_tag'), {
+				confirmButtonText: this.$t('MsgPrompt.known'),
 				showCancelButton: false,
 				type: 'error',
 			}) : DeleteStatus === 0
-			?  this.$confirm('确定删除当前分类吗?', '提示', {
-				confirmButtonText: '确定',
-				cancelButtonText: '取消',
+			?  this.$confirm(this.$t('Chart.OptMsg.classify_del_confirm'), this.$t('Confirm.prompt'), {
+				// confirmButtonText: '确定',
+				// cancelButtonText: '取消',
 				type: 'warning',
 			}).then(() => {
 				this.delApi(ChartClassifyId,ChartInfoId)
@@ -538,9 +538,9 @@ export default {
 		/* 删除图表 */
 		delChartHandle() {
 			const { ChartClassifyId,ChartInfoId } = this.chartInfo;
-			this.$confirm('删除后该图表将不能再引用,确认删除吗?', '提示', {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
+			this.$confirm(this.$t('Chart.OptMsg.chart_del_confirm'), this.$t('Confirm.prompt'), {
+        // confirmButtonText: '确定',
+        // cancelButtonText: '取消',
         type: 'warning',
       })
         .then(() => {

+ 48 - 32
src/views/chartRelevance_manage/relevance/relevanceChartEditor.vue

@@ -23,7 +23,7 @@
           :model="chartInfo"
           :rules="chartRules"
         >
-          <el-form-item class="label-left" label="指标A" prop="EdbInfoIdA">
+          <el-form-item class="label-left" :label="$t('StatisticAnalysis.ChartRelevance.edbTagA')" prop="EdbInfoIdA">
               <selectTarget  
                 :defaultId="chartInfoData.EdbInfoList?chartInfoData.EdbInfoList[0].EdbInfoId:''"
                 :defaultOpt="chartInfoData.EdbInfoList?[chartInfoData.EdbInfoList[0]]:[]"
@@ -31,7 +31,7 @@
                 @select="handleSelectTargetA"
               />
           </el-form-item>
-          <el-form-item class="label-left" label="指标B" prop="EdbInfoIdB">
+          <el-form-item class="label-left" :label="$t('StatisticAnalysis.ChartRelevance.edbTagB')" prop="EdbInfoIdB">
               <selectTarget 
                 :defaultId="chartInfoData.EdbInfoList?chartInfoData.EdbInfoList[1].EdbInfoId:''"
                 :defaultOpt="chartInfoData.EdbInfoList?[chartInfoData.EdbInfoList[1]]:[]" 
@@ -42,9 +42,9 @@
         </el-form>
 
         <div class="section">
-          <div>曲线图</div>
+          <div>{{$t('Chart.ChartType.graph_name')}}</div>
           <div class="section-item">
-            <span style="flex-shrink:0;min-width:50px;">时间:</span>
+            <span style="flex-shrink:0;min-width:50px;">{{$t('StatisticAnalysis.ChartRelevance.time')}}:</span>
             <el-select
                 style="max-width: 120px;flex:1;"
                 v-model="chartInfo.Curve.DateType"
@@ -70,7 +70,7 @@
             />
           </div>
           <div class="section-item">
-            <span style="flex-shrink:0;min-width:50px;">左轴:</span>
+            <span style="flex-shrink:0;min-width:50px;">{{$t('StatisticAnalysis.ChartRelevance.left_axis')}}:</span>
             <el-input
               style="flex:2;margin-left:5px;margin-right:10px"
               :step="1"
@@ -78,7 +78,7 @@
               v-model="chartInfo.Curve.LeftMin"
               @change="val => { chartInfo.Curve.LeftMin=Number(val);changeSplineOption() }"
             />
-            <span></span>
+            <span>{{$t('StatisticAnalysis.ChartRelevance.to')}}</span>
             <el-input
               style="flex:2;margin-left:5px;"
               :step="1"
@@ -88,7 +88,7 @@
             />
           </div>
           <div class="section-item">
-            <span style="flex-shrink:0;min-width:50px;">右轴:</span>
+            <span style="flex-shrink:0;min-width:50px;">{{$t('StatisticAnalysis.ChartRelevance.right_axis')}}:</span>
             <el-input
               style="flex:2;margin-left:5px;margin-right:10px"
               :step="1"
@@ -96,7 +96,7 @@
               v-model="chartInfo.Curve.RightMin"
               @change="val => { chartInfo.Curve.RightMin=Number(val);changeSplineOption() }"
             />
-            <span></span>
+            <span>{{$t('StatisticAnalysis.ChartRelevance.to')}}</span>
             <el-input
               style="flex:2;margin-left:5px;"
               :step="1"
@@ -106,8 +106,8 @@
             />
           </div>
           <div class="section-item">
-            <span style="flex-shrink:0;min-width:50px;">指标B:</span>
-            <el-checkbox v-model="chartInfo.Curve.IsOrder"  @change="getPreviewSplineChart">逆序</el-checkbox>
+            <span style="flex-shrink:0;min-width:50px;">{{$t('StatisticAnalysis.ChartRelevance.edbTagB')}}:</span>
+            <el-checkbox v-model="chartInfo.Curve.IsOrder"  @change="getPreviewSplineChart">{{$t('StatisticAnalysis.ChartRelevance.reverse_sequence')}}</el-checkbox>
           </div>
           <div class="section-item" style="align-items: flex-start;margin-left:50px;">
             <el-radio
@@ -115,15 +115,15 @@
               :label="true"
               style="margin-right:10px;"
               @change="getPreviewSplineChart"
-            >标准指标</el-radio>
+            >{{$t('StatisticAnalysis.ChartRelevance.standard_index')}}</el-radio>
             <div>
               <el-radio
                 v-model="chartInfo.Curve.EdbInfoType"
                 :label="false"
                 @change="getPreviewSplineChart"
-              >领先指标</el-radio>
+              >{{$t('StatisticAnalysis.ChartRelevance.leading_indicator')}}</el-radio>
               <div style="margin-top: 10px;" v-if="chartInfo.Curve.EdbInfoType===false">
-                领先
+                {{$t('StatisticAnalysis.ChartRelevance.lead_tag')}}
                 <el-input
                   style="width: 60px"
                   size="mini"
@@ -151,7 +151,7 @@
         </div>  
 
         <div class="section">
-          <div>相关性
+          <div>{{$t('Chart.ChartType.correlation_name')}}
             <!-- <el-tooltip
               effect="dark"
             >
@@ -164,7 +164,7 @@
             </el-tooltip> -->
           </div>
           <div class="section-item">
-            <div style="flex-shrink:0;min-width:70px"><span style="color:red;font-size:18px;">*</span>计算窗口</div>
+            <div style="flex-shrink:0;min-width:70px"><span style="color:red;font-size:18px;">*</span>{{$t('StatisticAnalysis.ChartRelevance.calculation_window')}}</div>
             <el-input
               style="flex:2;margin-left:5px;margin-right:10px"
               :step="1"
@@ -186,7 +186,7 @@
             </el-select>
           </div>
           <div class="section-item">
-            <div style="flex-shrink:0;min-width:70px"><span style="color:red;font-size:18px;">*</span>分析周期</div>
+            <div style="flex-shrink:0;min-width:70px"><span style="color:red;font-size:18px;">*</span>{{$t('StatisticAnalysis.ChartRelevance.analysis_cycle')}}</div>
             <el-input
               style="flex:2;margin-left:5px;margin-right:10px"
               :step="1"
@@ -211,7 +211,7 @@
 
 
       <div class="section" v-for="(item,index) in chartInfo.RollingCorrelation" :key="index">
-        <div>滚动相关性{{index+1}}
+        <div>{{$t('Chart.ChartType.rolling_correlation_name')}}{{index+1}}
           <!-- <el-tooltip
             effect="dark"
           >
@@ -224,7 +224,7 @@
           </el-tooltip> -->
         </div>
         <div class="section-item">
-          <span style="flex-shrink:0;min-width:70px">计算窗口</span>
+          <span style="flex-shrink:0;min-width:70px">{{$t('StatisticAnalysis.ChartRelevance.calculation_window')}}</span>
           <el-input
             style="flex:2;margin-left:5px;margin-right:10px"
             :step="1"
@@ -246,7 +246,7 @@
           </el-select>
         </div>
         <div class="section-item">
-          <span style="flex-shrink:0;min-width:70px">B领先A</span>
+          <span style="flex-shrink:0;min-width:70px">{{$t('StatisticAnalysis.ChartRelevance.B_leads_A')}}</span>
           <el-input
             style="flex:2;margin-left:5px;margin-right:10px"
             :step="1"
@@ -269,7 +269,7 @@
         </div>
       </div>
 
-        <el-button type="primary" style="float:right" @click="handlePreviewChart">确定</el-button>
+        <el-button type="primary" style="float:right" @click="handlePreviewChart">{{$t('Dialog.confirm_btn')}}</el-button>
       </div>
       <span
         class="move-btn resize"
@@ -415,17 +415,33 @@ export default {
     }
     next()
   },
+  computed:{
+    unitOpt(){
+      return [
+          {label:this.$t('Edb.FreAll.year_min'),val:'年'},
+          {label:this.$t('Edb.FreAll.quarter_min'),val:'季'},
+          {label:this.$t('Edb.FreAll.month_min'),val:'月'},
+          {label:this.$t('Edb.FreAll.week_min'),val:'周'},
+          {label:this.$t('Edb.FreAll.day_min'),val:'天'},
+      ]
+    },
+    yearSelector(){
+      return [
+        ...yearSelector,
+        { name: this.$i18n.locale == 'zh'?'自定义':'custom',value: 5 }
+      ]
+    }
+  },
   data() {
     return {
       chart_code: this.$route.query.code || '',
       isSlideLeft: false,
       chartInfoData: {},
       chartBatchData:null,
-
-      yearSelector: [
-        ...yearSelector,
-        { name: '自定义',value: 5 }
-      ],
+      // yearSelector: [
+      //   ...yearSelector,
+      //   { name: '自定义',value: 5 }
+      // ],
       chartInfo: {
         MultipleGraphConfigId: 0,
         EdbInfoIdA: 0,
@@ -465,13 +481,13 @@ export default {
           }
         ]
       },
-      unitOpt:[
-          {label:'年',val:'年'},
-          {label:'季',val:'季'},
-          {label:'月',val:'月'},
-          {label:'周',val:'周'},
-          {label:'天',val:'天'},
-      ],
+      // unitOpt:[
+      //     {label:'年',val:'年'},
+      //     {label:'季',val:'季'},
+      //     {label:'月',val:'月'},
+      //     {label:'周',val:'周'},
+      //     {label:'天',val:'天'},
+      // ],
       operationType:'preview',
       chartRules: {
         EdbInfoIdA:[

+ 20 - 20
src/views/report_manage/reportEn/reportlist.vue

@@ -652,31 +652,31 @@ export default {
     },
     /* 提交报告 */
     handleSubmitReport(row){
-        this.$confirm("是否确认提交该报告进入审批流程?","提示",{
-            confirmButtonText:'确定',
-            cancelButtonText:'取消',
+        this.$confirm(this.$t('ReportManage.smart_msg.submit_approval'),this.$t('Confirm.prompt'),{
+            confirmButtonText: this.$t('Dialog.confirm_btn'),
+            cancelButtonText: this.$t('Dialog.cancel_btn'),
             type:'warning',
         }).then(()=>{
             approveInterence.reportEnSubmit({
                 ReportId:Number(row.Id)
             }).then(res=>{
                 if(res.Ret!==200) return 
-                this.$message.success("提交成功")
+                this.$message.success(this.$t('ReportManage.smart_msg.submit_success'))
                 this.getTableData()
             })
         })
     },
     //撤销提交报告
     cancelApprove(item){
-        this.$confirm("确定要撤销审批吗?","提示",{
-            confirmButtonText:'确定',
-            cancelButtonText:'取消'
+        this.$confirm(this.$t('ReportManage.smart_msg.revoke_approval'),this.$t('Confirm.prompt'),{
+            confirmButtonText: this.$t('Dialog.confirm_btn'),
+            cancelButtonText: this.$t('Dialog.cancel_btn'),
         }).then(()=>{
             approveInterence.reportEnCancel({
                 ReportId:Number(item.Id)
             }).then(res=>{
                 if(res.Ret!==200) return 
-                this.$message.success("撤销成功")
+                this.$message.success(this.$t('ReportManage.smart_msg.revoke_success'))
                 this.getTableData()
             })
         })
@@ -684,11 +684,11 @@ export default {
 
     /* 发布报告 */
     publishReport(item) {
-      this.$confirm(item.PrePublishTime?'该报告已设置定时发布,是否修改为立即发布?':'是否确定立即发布报告?','提示',{type: 'warning'}).then(()=>{
+      this.$confirm(item.PrePublishTime? this.$t('ReportManage.smart_msg.is_publish_immediately'):his.$t('ReportManage.smart_msg.report_publish_immediately'),this.$t('Confirm.prompt'),{type: 'warning'}).then(()=>{
 
 				reportEnInterface.reportPublish({ReportIds:String(item.Id)}).then(res=>{
           if(res.Ret!==200) return
-          this.$message.success('发布成功');
+          this.$message.success(this.$t('MsgPrompt.publish_msg'));
           this.getTableData();
         })
         
@@ -703,7 +703,7 @@ export default {
         // if(res.Ret!==200) return 
         if(res.Ret===200){
           if(res.Data.Status==1){
-            this.$message.warning(res.Data.Msg || '该研报正在编辑,不可重复编辑')
+            this.$message.warning(res.Data.Msg || this.$t('ReportManage.smart_msg.no_edit'))
             item.CanEdit=false;
             item.Editor=res.Data.Editor || ''
             return
@@ -712,7 +712,7 @@ export default {
             item.Editor=res.Data.Editor || ''
 				  }
 			  }else{
-          this.$message.error(res.ErrMsg || '未知错误,请稍后重试')
+          this.$message.error(res.ErrMsg || this.$t('ReportManage.smart_msg.unknown_error'))
           return
         }
         if(item.FromReportId>0){
@@ -732,7 +732,7 @@ export default {
 
     /* 删除报告 */
     delReport({Id}) {
-      this.$confirm('确认删除吗?','提示',{
+      this.$confirm(this.$t('ReportManage.smart_msg.delete_it'),this.$t('Confirm.prompt'),{
 				type:'warning'
 			}).then(() => {
 				reportEnInterface.reportDel({ReportIds: Id}).then(res =>{
@@ -757,13 +757,13 @@ export default {
     copyReportlink() {
       let clipboard = new this.Clipboard('.copylink')
 				clipboard.on('success', e => {
-					this.$message.success('复制链接成功')
+					this.$message.success(this.$t('ReportManage.smart_msg.copy_success'))
 					e.clearSelection() // 释放内存
 					clipboard.destroy()
 				})
 				// // 浏览器不支持
 				clipboard.on('error', e => {
-					this.$message.warning('浏览器暂不支持')
+					this.$message.warning(this.$t('ReportManage.smart_msg.browser_supported'))
 					// 释放内存
 					clipboard.destroy()
 				})
@@ -895,7 +895,7 @@ export default {
       })
 
       if(this.popData.checkUser&&ids.length===0){//指定人员
-        this.$message.warning('请选择需要发送邮件的人员')
+        this.$message.warning(this.$t('ReportManage.smart_msg.select_email_person'))
         return
       }
       if(!this.popData.checkUser){
@@ -903,11 +903,11 @@ export default {
       }
 
       if(!this.popData.theme){
-        this.$message.warning('请填写邮件主题')
+        this.$message.warning(this.$t('ReportManage.smart_msg.email_subject'))
         return
       }
       if(this.popData.theme.length>100){
-        this.$message.warning('邮件主题请控制在100个字符以内')
+        this.$message.warning(this.$t('ReportManage.smart_msg.email_characters'))
         return
       }
       const arr=[]
@@ -923,7 +923,7 @@ export default {
         NoCompanyIds:customIds,
       }).then(res=>{
         if(res.Ret===200){
-          this.$message.success('发送成功')
+          this.$message.success(this.$t('ReportManage.smart_msg.sent_success'))
           this.popData.show=false
           this.getTableData();
         }
@@ -938,7 +938,7 @@ export default {
         this.isPull=false
       }, 500);
       if(res.Ret===200){
-        this.$message.success('同步成功')
+        this.$message.success(this.$t('ReportManage.smart_msg.synchronization'))
         this.getTableData();
       }
     },

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

@@ -756,7 +756,7 @@ export default {
               slot: "content",
               attrs: { style: "display:block;padding:5px 0;width:420px;" },
             },
-            "pv:报告被打开的次数,每次打开都计算一次(只统计有权限用户)"
+            `pv:${this.$t('ReportManage.tooltip_pv_show')}`
           ),
           this.hasUV?h(
             "p",
@@ -764,7 +764,7 @@ export default {
               slot: "content",
               attrs: { style: "display:block;padding:5px 0;width:420px;" },
             },
-            "uv:访问报告的人数,每篇报告同一个人访问只计算一次(只统计有权限用户)"
+            `uv:${this.$t('ReportManage.tooltip_uv_show')}`
           ):h(''),
           h(
             "el-button",
@@ -850,7 +850,7 @@ export default {
         let hostfile = document.getElementById("file").files[0];
         let size = Math.floor(hostfile.size / 1024 / 1024);
         if (size > 200) {
-          that.$message.error("上传文件大小不能大于200M!");
+          that.$message.error(this.$t('ReportManage.smart_msg.uploaded_limitation'));
           hostfile = {};
           return false;
         }
@@ -865,7 +865,7 @@ export default {
           this.uploadForm.formdata = form;
           this.uploadForm.audioname = hostfile.name;
         } else {
-          that.$message.error("上传文件格式不正确!");
+          that.$message.error(this.$t('ReportManage.smart_msg.upload_format'));
         }
       }
     },
@@ -924,7 +924,7 @@ export default {
     },
     deleteitem(item) {
       //删除
-      this.$confirm("确认删除吗?", "提示", {
+      this.$confirm(this.$t('ReportManage.smart_msg.delete_it'), this.$t('Confirm.prompt'), {
         type: "warning",
       })
         .then(() => {
@@ -952,11 +952,11 @@ export default {
         if (validRes.Ret === 200) {
           if (validRes.Data) {
             this.$confirm(
-              `报告未上传录音:${validRes.Data.join("、")},确定发布吗?`,
-              "发布提示",
+              `${this.$t('ReportManage.smart_msg.report_recording')}:${validRes.Data.join("、")},${this.$t('ReportManage.smart_msg.publish_it')}`,
+              this.$t('ReportManage.smart_msg.release_prompt'),
               {
-                confirmButtonText: "确定",
-                cancelButtonText: "取消",
+                confirmButtonText: this.$t('Dialog.confirm_btn'),
+                cancelButtonText: this.$t('Dialog.cancel_btn'),
                 type: "warning",
               }
             )
@@ -995,7 +995,7 @@ export default {
               ReportId: this.batches[0],
             }).then((resMsg) => {
               if (resMsg.Ret == 200) {
-                this.$message.success("发布且推送成功");
+                this.$message.success(this.$t('ReportManage.smart_msg.published_success'));
                 this.batches = [];
                 this.getlist();
                 this.showPublish = false;
@@ -1004,12 +1004,12 @@ export default {
             });
           } else {
             if (res.Data) {
-              this.$alert(res.Data, "发布提示", {
-                confirmButtonText: "确定",
+              this.$alert(res.Data, this.$t('ReportManage.smart_msg.release_prompt'), {
+               confirmButtonText: this.$t('Dialog.confirm_btn'),
                 callback: (action) => {},
               });
             } else {
-              this.$message.success("发布成功");
+              this.$message.success(this.$t('MsgPrompt.publish_msg'));
             }
             this.batches = [];
             this.getlist();
@@ -1027,9 +1027,9 @@ export default {
     //提交报告
     handleSubmitReport(item){
         this.submitId = item.Id
-        this.$confirm("是否确认提交该报告进入审批流程?","提示",{
-            confirmButtonText:'确定',
-            cancelButtonText:'取消',
+        this.$confirm(this.$t('ReportManage.smart_msg.submit_approval'),this.$t('Confirm.prompt'),{
+            confirmButtonText: this.$t('Dialog.confirm_btn'),
+            cancelButtonText: this.$t('Dialog.cancel_btn'),
             type:'warning',
         }).then(()=>{
             this.submitReport("submit")
@@ -1043,22 +1043,22 @@ export default {
                 ReportId:Number(this.submitId)
             }).then(res=>{
                 if(res.Ret!==200) return
-                this.$message.success("提交成功")
+                this.$message.success(this.$t('ReportManage.smart_msg.submit_success'))
                 this.getlist()
             })
         /* } */
     },
     //撤销提交报告
     cancelReport(item){
-        this.$confirm("确定要撤销审批吗?","提示",{
-            confirmButtonText:'确定',
-            cancelButtonText:'取消'
+        this.$confirm(this.$t('ReportManage.smart_msg.revoke_approval'),this.$t('Confirm.prompt'),{
+           confirmButtonText: this.$t('Dialog.confirm_btn'),
+           cancelButtonText: this.$t('Dialog.cancel_btn'),
         }).then(()=>{
             approveInterence.reportCnCancel({
                 ReportId:Number(item.Id)
             }).then(res=>{
                 if(res.Ret!==200) return 
-                this.$message.success("撤销成功")
+                this.$message.success(this.$t('ReportManage.smart_msg.revoke_success'))
                 this.getlist()
             })
         })
@@ -1165,7 +1165,7 @@ export default {
     /* 下载阅读数据 */
     downLoadReport() {
       if (this.batches.length == 0) {
-        this.$confirm("请选择需要下载的报告", "提示", {
+        this.$confirm(this.$t('ReportManage.smart_msg.select_dl_report'), this.$t('Confirm.prompt'), {
           type: "warning",
           showCancelButton: false,
         })
@@ -1197,7 +1197,7 @@ export default {
       });
       if (res.Ret == 200) {
         item.ThsMsgIsSend = 1;
-        this.$message.success("发送成功");
+        this.$message.success(this.$t('ReportManage.smart_msg.sent_success'));
       }
     },
 
@@ -1205,7 +1205,7 @@ export default {
     messageSend(item) {
       reportMessageSend({ ReportId: item.Id }).then((res) => {
         if (res.Ret === 200) {
-          this.$message.success("推送成功");
+          this.$message.success(this.$t('ReportManage.smart_msg.push_success'));
           item.MsgIsSend = 1;
         }
       });

+ 30 - 26
src/views/smartReport/components/BaseInfo.vue

@@ -1,6 +1,6 @@
 <template>
     <el-dialog
-        title="基础信息"
+        :title="$t('ReportManage.ReportList.information_title')"
         :visible.sync="show"
         :modal-append-to-body="false"
         :close-on-click-modal="false"
@@ -18,8 +18,8 @@
         >  
             <el-form-item prop="type">
                 <el-radio-group v-model="formData.type" :disabled="id" @change="handleUpdateBaseInfo">
-                    <el-radio :label="1">新增报告</el-radio>
-                    <el-radio :label="2">继承报告</el-radio>
+                    <el-radio :label="1">{{$t('ReportManage.ReportList.new_report_radio')}}</el-radio>
+                    <el-radio :label="2">{{$t('ReportManage.ReportList.inherit_report_radio')}}</el-radio>
                 </el-radio-group>
             </el-form-item>
             <el-form-item prop="classify">
@@ -27,23 +27,23 @@
 					ref="cascader"
 					:options="classifyArr"
 					v-model="formData.classify"
-					placeholder="请选择分类"
+					:placeholder="$t('ReportManage.ReportList.please_select_category')"
 					size="medium"
                     style="width:340px"
                     @change="handleUpdateBaseInfo"
 				/>
             </el-form-item>
             <el-form-item prop="title">
-                <el-input placeholder="请输入标题" v-model="formData.title" style="width:340px"></el-input>
+                <el-input :placeholder="$t('ReportManage.ReportList.input_title_please')" v-model="formData.title" style="width:340px"></el-input>
             </el-form-item>
             <el-form-item prop="abstract">
-                <el-input type="textarea" placeholder="请输入摘要" v-model="formData.abstract" style="width:340px"></el-input>
+                <el-input type="textarea" :placeholder="$t('ReportManage.ReportList.please_input_abstract')" v-model="formData.abstract" style="width:340px"></el-input>
             </el-form-item>
             <el-form-item prop="author">
 				<el-select
 					v-model="formData.author"
 					multiple
-					placeholder="请选择作者"
+					:placeholder="$t('ReportManage.ReportList.please_select_author')"
 					size="medium"
 					style="width: 340px"
 				>
@@ -58,18 +58,18 @@
             <el-form-item prop="frequency">
                 <el-select
 					v-model="formData.frequency"
-					placeholder="请选择频度"
+					:placeholder="$t('ReportManage.ReportList.please_select_frequency')"
 					size="medium"
 					style="width: 340px"
 				>
-                    <el-option label="年度" value="年度"></el-option>
-                    <el-option label="半年度" value="半年度"></el-option>
-                    <el-option label="季度" value="季度"></el-option>
-                    <el-option label="月度" value="月度"></el-option>
-                    <el-option label="双周度" value="双周度"></el-option>
-                    <el-option label="周度" value="周度"></el-option>
-                    <el-option label="日度" value="日度"></el-option>
-                    <el-option label="不定时" value="不定时"></el-option>
+                    <el-option :label="$t('ReportManage.smart_annually')" :value="$t('ReportManage.smart_annually')"></el-option>
+                    <el-option :label="$t('ReportManage.smart_semi_annually')" :value="$t('ReportManage.smart_semi_annually')"></el-option>
+                    <el-option :label="$t('ReportManage.smart_quarterly')" :value="$t('ReportManage.smart_quarterly')"></el-option>
+                    <el-option :label="$t('ReportManage.smart_monthly')" :value="$t('ReportManage.smart_monthly')"></el-option>
+                    <el-option :label="$t('ReportManage.smart_bi_weekly')" :value="$t('ReportManage.smart_bi_weekly')"></el-option>
+                    <el-option :label="$t('ReportManage.smart_weekly')" :value="$t('ReportManage.smart_weekly')"></el-option>
+                    <el-option :label="$t('ReportManage.smart_daily')" :value="$t('ReportManage.smart_daily')"></el-option>
+                    <el-option :label="$t('ReportManage.smart_irregularly')" :value="$t('ReportManage.smart_irregularly')"></el-option>
                 </el-select>
             </el-form-item>
             <el-form-item prop="time">
@@ -77,7 +77,7 @@
 					v-model="formData.time"
 					type="date"
 					value-format="yyyy-MM-dd"
-					placeholder="选择日期"
+					:placeholder="$t('ReportManage.ReportList.please_select_date')"
 					size="medium"
 					:clearable="false"
 					style="width: 340px"
@@ -85,8 +85,8 @@
             </el-form-item>
         </el-form>
         <div style="text-align:center;margin-top:60px;margin-bottom:40px">
-            <el-button type="primary" plain style="width:120px" @click="handleClose">取消</el-button>
-            <el-button type="primary" style="width:120px" @click="handleConfirm">确定</el-button>
+            <el-button type="primary" plain style="width:120px" @click="handleClose">{{$t('Dialog.cancel_btn')}}</el-button>
+            <el-button type="primary" style="width:120px" @click="handleConfirm">{{$t('Dialog.confirm_btn')}}</el-button>
         </div>
     </el-dialog>
 </template>
@@ -140,11 +140,7 @@ export default {
     },
     data() {
         return {
-            rules:{
-                type:[{ required: true, message: '请选择报告类型', trigger: 'change' }],
-                classify:[{ required: true, message: '请选择报告分类', trigger: 'change' }],
-                title:[{ required: true, message: '请填写报告标题', trigger: 'blur' }],
-            },
+            
             formData:{
                 type:1,
                 classify:[],
@@ -158,7 +154,15 @@ export default {
             authorlist:[]
         }
     },
-   
+    computed:{
+        rules(){
+            return {
+                type:[{ required: true, message: this.$t('ReportManage.ReportList.please_report_type_select'), trigger: 'change' }],
+                classify:[{ required: true, message: this.$t('ReportManage.ReportList.please_report_type_select'), trigger: 'change' }],
+                title:[{ required: true, message: this.$t('ReportManage.ReportList.please_report_title_input'), trigger: 'blur' }],
+            }
+        }
+    },
     methods: {
         handleClose(){
             this.$emit('showChange', false)
@@ -228,7 +232,7 @@ export default {
             }).then(res=>{
                 if(res.Ret!==200) return
                 if (res.Data == null) {
-					this.$message.warning('此分类暂无报告');
+					this.$message.warning(this.$t('ReportManage.ReportList.no_reports_msg'));
 					return false;
 				}
                 this.formData.title=res.Data.Title

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

@@ -525,7 +525,7 @@ export default {
             }
             img.onerror=(e)=>{
                 console.log(e);
-                this.$message.warning("自动下载图片失败,请手动保存")
+                this.$message.warning(this.$t('ReportManage.smart_msg.please_manually_save'))
                 if(imgUrl){
                     this.reportImgUrl=imgUrl
                     this.showReportImg=true
@@ -536,7 +536,7 @@ export default {
         // 删除某个报告
         handleDelReport(item){
             //删除
-            this.$confirm("确认删除吗?", "提示", {
+            this.$confirm(this.$t('ReportManage.smart_msg.delete_it'),this.$t('Confirm.prompt'), {
                 type: "warning",
             }).then(() => {
                 apiSmartReport.delReport({ SmartReportId: item.SmartReportId }).then((res) => {
@@ -568,11 +568,11 @@ export default {
                 return
             }
             this.$confirm(
-                item.PrePublishTime?'该报告已设置定时发布,是否立即发布报告?':'是否立即发布报告?', 
+                item.PrePublishTime? this.$t('ReportManage.smart_msg.timed_release_setup'):this.$t('ReportManage.smart_msg.should_published_immediately'), 
                 '发布提示', 
                 {
                     confirmButtonText: '发布',
-                    cancelButtonText: '取消',
+                    cancelButtonText: this.$t('Dialog.cancel_btn'),
                     type: 'warning',
                     distinguishCancelAndClose:true,
                     beforeClose:(action, instance,done)=>{
@@ -606,31 +606,31 @@ export default {
         },
         //提交报告
         handleSubmitReport(item){
-            this.$confirm("是否确认提交该报告进入审批流程?","提示",{
-                confirmButtonText:'确定',
-                cancelButtonText:'取消',
+            this.$confirm(this.$t('ReportManage.smart_msg.submit_approval'),this.$t('Confirm.prompt'),{
+                confirmButtonText: this.$t('Dialog.confirm_btn'),
+                cancelButtonText: this.$t('Dialog.cancel_btn'),
                 type:'warning',
             }).then(()=>{
                 approveInterence.reportSmartSubmit({
                     ReportId:Number(item.SmartReportId)
                 }).then(res=>{
                     if(res.Ret!==200) return 
-                    this.$message.success("提交成功")
+                    this.$message.success(this.$t('ReportManage.smart_msg.submit_success'))
                     this.getReportList()
                 })
             })
         },
         cancelReport(item){
-            this.$confirm("确定要撤销审批吗?","提示",{
-                confirmButtonText:'确定',
-                cancelButtonText:'取消',
+            this.$confirm(this.$t('ReportManage.smart_msg.revoke_approval'),this.$t('Confirm.prompt'),{
+                confirmButtonText: this.$t('Dialog.confirm_btn'),
+                cancelButtonText: this.$t('Dialog.cancel_btn'),
                 type:'warning',
             }).then(()=>{
                 approveInterence.reportSmartCancel({
                     ReportId:Number(item.SmartReportId)
                 }).then(res=>{
                     if(res.Ret!==200) return 
-                    this.$message.success("撤销成功")
+                    this.$message.success(this.$t('ReportManage.smart_msg.revoke_success'))
                     this.getReportList()
                 })
             })
@@ -645,7 +645,7 @@ export default {
             });
             if (res.Ret === 200) {
                 if (res.Data.Status == 1) {
-                    this.$message.warning(res.Data.Msg || "该研报正在编辑,不可重复编辑");
+                    this.$message.warning(res.Data.Msg || this.$t('ReportManage.smart_msg.no_edit'));
                     item.CanEdit = false;
                     item.Editor = res.Data.Editor || "";
                     return;
@@ -654,7 +654,7 @@ export default {
                     item.Editor = res.Data.Editor || "";
                 }
             } else {
-                this.$message.error(res.ErrMsg || "未知错误,请稍后重试");
+                this.$message.error(res.ErrMsg || this.$t('ReportManage.smart_msg.unknown_error'));
                 return;
             }
             let { href } = this.$router.resolve({
@@ -760,7 +760,7 @@ export default {
                     slot: "content",
                     attrs: { style: "display:block;padding:5px 0;width:420px;" },
                     },
-                    "pv:报告被打开的次数,每次打开都计算一次(只统计有权限用户)"
+                    `pv:${this.$t('ReportManage.tooltip_pv_show')}`
                 ),
                 this.hasUV?h(
                     "p",
@@ -768,7 +768,7 @@ export default {
                     slot: "content",
                     attrs: { style: "display:block;padding:5px 0;width:420px;" },
                     },
-                    "uv:访问报告的人数,每篇报告同一个人访问只计算一次(只统计有权限用户)"
+                    `uv:${this.$t('ReportManage.tooltip_uv_show')}`
                 ):h(''),
                 h(
                     "el-button",
@@ -826,7 +826,7 @@ export default {
                 let hostfile = document.getElementById("file").files[0];
                 let size = Math.floor(hostfile.size / 1024 / 1024);
                 if (size > 200) {
-                    that.$message.error("上传文件大小不能大于200M!");
+                    that.$message.error(this.$t('ReportManage.smart_msg.uploaded_limitation'));
                     hostfile = {};
                     return false;
                 }
@@ -841,19 +841,19 @@ export default {
                     this.uploadForm.formdata = form;
                     this.uploadForm.audioname = hostfile.name;
                 } else {
-                    that.$message.error("上传文件格式不正确!");
+                    that.$message.error(this.$t('ReportManage.smart_msg.upload_format'));
                 }
             }
         },
         uploadaudio() {
             if (this.uploadForm.formdata == null) {
-                this.$message.error("请选择文件");
+                this.$message.error(this.$t('ReportManage.smart_msg.please_select_file'));
                 return false;
             }
             this.uploadloading = true;
             apiSmartReport.voiceupload(this.uploadForm.formdata).then((res) => {
                 if (res.Ret === 200) {
-                    this.$message.success("上传成功");
+                    this.$message.success(this.$t('ReportManage.smart_msg.upload_success'));
                     this.getReportList();
                 }
                 this.uploadloading = false;