bding 1 rok temu
rodzic
commit
036b6408de

+ 1 - 1
src/views/ppt_manage/newVersion/pptEditor.vue

@@ -92,7 +92,7 @@
                             <span class="close-btn" @click.stop slot="reference"></span>
                         </el-popconfirm>
                         <!-- 页码 -->
-                        <span class="page-num"> {{this.$i18n.locale == 'zh' ?`第${index+1}页`:` Slide${index+1}`}}</span>
+                        <span class="page-num"> {{$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>

+ 0 - 1119
src/views/report_manage/reportEn/index.vue

@@ -1,1119 +0,0 @@
-<template>
-	<div id="editreport">
-    <div class="leftitems" :class="{'full':!isRightFormShow,'block':isRightFormShow}">
-      <div class="overview" :style="{marginBottom:value?'20px':'0'}">
-        <p @click="value=!value">Overview
-          <span><i :class="value?'el-icon-arrow-down':'el-icon-arrow-up'"></i></span>
-        </p>
-        <div id="leftoverview" v-show="value">
-          <froala :id="`overview-editor`" :style="{display:'none'}"
-                :ref="`overviewEditor`" 
-                :tag="'textarea'" 
-                :config="overviewConfig" v-model="aeForm.overview">
-          </froala> 
-        </div>
-      </div>
-      <div 
-        id="leftfroala"
-        v-loading="importChartNum>0" 
-        :element-loading-text="$t('ReportManage.ReportList.chart_insertion_progress')"
-        element-loading-spinner="el-icon-loading"
-        element-loading-background="rgba(0, 0, 0, 0.8)"
-		  >
-        <froala
-          id="froala-editor"
-          ref="froalaEditor"
-          :tag="'textarea'"
-          :config="{...froalaConfig,quickInsertEnabled: false,}"
-          v-model="aeForm.content"
-        ></froala>
-		  </div>
-    </div>
-		
-		<div id="rightitems" v-show="isRightFormShow">
-			<div v-if="!pageLoading"
-				style="
-					text-align: right;
-					padding: 0px 0 15px 0;
-					box-sizing: border-box;
-				"
-			>
-				<div v-show="lastsavetime" style="color: #666; margin-bottom: 15px">
-					{{$t('ReportManage.ReportList.last_save_time')}}:{{ lastsavetime }}
-				</div>
-				<el-button
-					type="primary"
-					size="medium"
-					plain
-					@click.native="refreshReport"
-				>
-					{{$t('ReportManage.ReportList.click_refresh_btn')}}
-				</el-button>
-				<el-button v-permission="permissionBtn.enReportManageBtn.enReport_reportView"
-					type="primary"
-					size="medium"
-					plain
-					@click.native="clickreportadd('yl')"
-					>{{$t('ReportManage.ReportList.preview_btn')}}</el-button
-				>
-				<el-button
-					type="primary"
-					size="medium"
-					plain
-					@click.native="clickreportadd('cg')"
-					>{{$t('ReportManage.ReportList.save_draft_btn')}}</el-button
-				>
-				<template v-if="!isApprove||!hasApproveFlow">
-					<el-button v-permission="permissionBtn.enReportManageBtn.enReport_publish"
-						type="primary"
-						size="medium"
-						:disabled="checkLoading"
-						@click.native="clickreportadd('dsfb')"
-						>{{$t('ReportManage.ReportList.scheduled_publish_btn')}}</el-button
-					>
-					<el-button v-permission="permissionBtn.enReportManageBtn.enReport_publish"
-						type="primary"
-						size="medium"
-						:disabled="checkLoading"
-						@click.native="clickreportadd('fb')"
-						:loading="isPublishloading"
-						>{{$t('ReportManage.ReportList.publish_btn')}}</el-button
-					>
-				</template>
-				<template v-if="isApprove&&hasApproveFlow">
-					<el-button v-permission="permissionBtn.enReportManageBtn.enReport_publish"
-						:disabled="checkLoading"
-						type="primary" size="medium" @click="clickreportadd('submit')">{{$t('ReportManage.ReportList.submission_btn')}}</el-button>
-				</template>
-			</div>
-			<div
-				style="margin: 0px 0 0 20px;padding: 10px 20px;box-sizing: border-box;background: #fff;border: 1px solid #3464e0;"
-			>
-				<el-tabs v-model="tabsactive">
-					<el-tab-pane :label="tab.label" :name="tab.key" v-for="tab in panelTabs" :key="tab.key"></el-tab-pane>
-				</el-tabs>
-				<div
-					v-if="tabsactive == '基础信息'"
-					style="height: calc(100vh - 315px); overflow-y: auto"
-				>
-					<el-form
-						:model="aeForm"
-						:rules="formRules"
-						ref="aeForm"
-						label-position="right"
-						label-width="90px"
-						class="demo-aeForm"
-						id="login-container"
-						@submit.native.prevent
-					>
-						<el-form-item prop="add_type" :label="$t('ReportManage.ReportList.new_method_btn')">
-							<el-select
-								v-model="aeForm.add_type"
-								@change="userclassidreportdetail"
-								:placeholder="$t('ReportManage.CategoryList.please_select')"
-								size="medium"
-								:disabled="report_id?true:false"
-								style="width: 270px"
-							>
-								<el-option :label="$t('ReportManage.ReportList.new_report_radio')" :value="1"></el-option>
-								<el-option :label="$t('ReportManage.ReportList.inherit_report_radio')" :value="2"></el-option>
-							</el-select>
-						</el-form-item>
-						<el-form-item prop="classifynameArr" :label="$t('ReportManage.ReportList.classificiation_selest')">
-							<el-cascader
-								@change="userclassidreportdetail"
-								:options="optionsArr"
-								:props="{
-									children:'Child'
-								}"
-								v-model="aeForm.classifynameArr"
-								:placeholder="$t('ReportManage.smart_type_filtering')"
-								size="medium"
-								style="width: 270px"
-							></el-cascader>
-						</el-form-item>
-						<el-form-item prop="title" :label="$t('ReportManage.ReportList.title_ipt')">
-							<el-input
-								type="textarea"
-								:rows="2"
-								:placeholder="$t('ReportManage.CategoryList.please_input')"
-								v-model="aeForm.title"
-								size="medium"
-							></el-input>
-						</el-form-item>
-						<el-form-item prop="abstract" label="摘要">
-							<el-input
-								type="textarea"
-								:rows="2"
-								:placeholder="$t('ReportManage.CategoryList.please_input')"
-								v-model="aeForm.abstract"
-								size="medium"
-							></el-input>
-              <span class="limit">{{aeForm.abstract.length}}</span>
-						</el-form-item>
-						<el-form-item :label="$t('ReportManage.ReportList.author_select')">
-							<el-select
-								v-model="aeForm.author"
-								multiple
-								:placeholder="$t('ReportManage.CategoryList.please_select')"
-								size="medium"
-								style="width: 270px"
-							>
-								<el-option
-									v-for="(item, i) in authorlist"
-									:key="i"
-									:label="item.ReportAuthor"
-									:value="item.ReportAuthor"
-								></el-option>
-							</el-select>
-						</el-form-item>
-						<el-form-item :label="$t('ReportManage.ReportList.frequency_select')">
-							<el-select
-								v-model="aeForm.frequency"
-								:placeholder="$t('ReportManage.CategoryList.please_select')"
-								size="medium"
-								style="width: 270px"
-							> 
-							   <el-option :label="$t('ReportManage.smart_annually')" :value="$t('ReportManage.smart_annually')"></el-option>
-                               <el-option :label="$t('ReportManage.smart_semi_annually')" :value="$t('ReportManage.smart_semi_annually')"></el-option>
-                               <el-option :label="$t('ReportManage.smart_quarterly')" :value="$t('ReportManage.smart_quarterly')"></el-option>
-                               <el-option :label="$t('ReportManage.smart_monthly')" :value="$t('ReportManage.smart_monthly')"></el-option>
-                               <el-option :label="$t('ReportManage.smart_bi_weekly')" :value="$t('ReportManage.smart_bi_weekly')"></el-option>
-                               <el-option :label="$t('ReportManage.smart_weekly')" :value="$t('ReportManage.smart_weekly')"></el-option>
-                               <el-option :label="$t('ReportManage.smart_daily')" :value="$t('ReportManage.smart_daily')"></el-option>
-                               <el-option :label="$t('ReportManage.smart_irregularly')" :value="$t('ReportManage.smart_irregularly')"></el-option>
-							</el-select>
-						</el-form-item>
-						<el-form-item :label="$t('ReportManage.ReportList.creation_time_select')">
-							<el-date-picker
-								v-model="aeForm.create_time"
-								type="date"
-								value-format="yyyy-MM-dd"
-								:placeholder="$t('ReportManage.ReportList.select_date')"
-								size="medium"
-								:clearable="false"
-								style="width: 270px"
-							></el-date-picker>
-						</el-form-item>
-					</el-form>
-				</div>
-				<div v-if="tabsactive == '图表插入'">
-					<el-input
-						:placeholder="$t('ReportManage.ReportList.chart_name')"
-						v-model="key_word"
-						size="medium"
-						prefix-icon="el-icon-search"
-						@input="() => {search_page=1;$refs.chartListRef.scrollTop = 0;getreportlist(key_word)}"
-					>
-					</el-input>
-					<el-radio-group v-model="chart_source" @change="() => {search_page=1;$refs.chartListRef.scrollTop = 0;getreportlist()}" style="margin-top: 10px;">
-						<el-radio :label="1">{{$t('ReportManage.ReportList.chart_inventory_radio')}}</el-radio>
-						<el-radio :label="2">{{$t('ReportManage.ReportList.price_curve_radio')}}</el-radio> 
-						<el-radio :label="3">{{$t('ReportManage.ReportList.related_charts_radio')}}</el-radio>
-						<el-radio :label="6">{{$t('ReportManage.ReportList.curve_fitting_radio')}}</el-radio>
-						<el-radio :label="7">{{$t('ReportManage.ReportList.statistical_feature_radio')}}</el-radio>
-						<el-radio :label="10">{{$t('ReportManage.ReportList.intercommodity_analysis_radio')}}</el-radio>
-					</el-radio-group>
-					<div style="margin: 10px 0">
-						<el-checkbox v-model="isShowMe" @change="() => {search_page=1;$refs.chartListRef.scrollTop = 0;getreportlist(key_word)}">只看我的</el-checkbox>
-					</div>
-					<div
-						style="height: calc(100vh - 370px);overflow-x: hidden;overflow-y: auto;"
-						v-infinite-scroll="loadReportHandle"
-						:infinite-scroll-immediate="false"
-						ref="chartListRef"
-					>
-						<template v-if="newreportlist.length">
-							<div
-								v-for="(item, index) in newreportlist"
-								:key="item.ChartInfoId"
-								:style="item.Disabled && 'cursor: not-allowed;'"
-								class="liststy"
-							>
-								<div class="chartEn-mark" style="top: 0;left:0;" @click="setEnHandle(item)">
-									<span v-if="item.IsEnChart">En</span>
-									<i class="el-icon-edit" v-else style="font-size:18px"/>
-								</div>
-								<p class="color_primary">{{ chart_source===1 ? (item.ChartNameEn||item.ChartName) : item.ChartName }}</p>
-								<img
-									:src="item.ChartImage"
-									:id="'listnode' + index"
-									@click="insertHtml(item)"
-								/>
-							</div>
-						</template>
-						<tableNoData text="暂无图表" size="mini" v-else/>
-					</div>
-				</div>
-				<div v-if="tabsactive == '沙盘插入'">
-					<el-input
-						:placeholder="$t('ReportManage.ReportList.no_reports_msg')"
-						v-model="sandTabelQuery.Keyword"
-						size="medium"
-						prefix-icon="el-icon-search"
-					>
-					</el-input>
-					<div
-						id="sandTable-container"
-						ref="sandTable"
-						style="
-							height: calc(100vh - 370px);
-							overflow-x: hidden;
-							overflow-y: auto;
-						"
-						@scroll="sandTableHandleScroll"
-					>
-						<template v-if="sandTableList.length">
-							<div
-								v-for="(item, index) in sandTableList"
-								:key="item.SandboxId"
-								class="liststy"
-							>
-								<p class="color_primary">{{ item.Name }}</p>
-								<img
-									:src="item.PicUrl"
-									:id="'sandTable' + index"
-									@click="insertHtml(item,'image')"
-								/>
-								<!-- <p class="source-identification">来源:弘则研究</p> -->
-							</div>
-						</template>
-						<tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
-					</div>
-				</div>
-				<div v-if="tabsactive == '表格插入'">
-					<el-input
-						:placeholder="$t('ReportManage.ReportList.table_name_tabs')"
-						v-model="sheetSearchObj.Keyword"
-						size="medium"
-						prefix-icon="el-icon-search"
-						@input="getSheetList"
-					>
-					</el-input>
-					<div
-						style="
-							height: calc(100vh - 320px);
-							overflow-x: hidden;
-							overflow-y: auto;
-						"
-					>
-						<template v-if="sheetSearchList.length">
-							<div
-								v-for="item in sheetSearchList"
-								:key="item.ExcelInfoId"
-								class="liststy"
-							>
-								<p class="color_primary">{{ item.ExcelName }}</p>
-								<img
-									:src="item.ExcelImage"
-									:id="'sheet' + item.ExcelInfoId"
-									style="object-fit: contain;height: 250px;"
-									@click="insertHtml(item,'sheet')"
-								/>
-							</div>
-						</template>
-						<tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
-					</div>
-				</div>
-				<div v-if="tabsactive == 'MyETA批量插入'">
-					<importMyChart @handleImportMyChart="handleImportMyChart" :showEnMark="true" />
-				</div>
-				<div v-if="tabsactive == '语义分析插入'">
-					<importSemantics @handleImportSemantic="(item)=>insertHtml(item,'image')"/>
-				</div>
-			</div>
-		</div>
-		<span
-			class="slide-icon"
-			:class="{'slide-left':!isRightFormShow,'slide-right':isRightFormShow}"
-			@click="isRightFormShow = !isRightFormShow"
-		>
-			<i :class="{'el-icon-d-arrow-left':!isRightFormShow,'el-icon-d-arrow-right':isRightFormShow}"></i>
-		</span>
-
-		<!-- 设置英文信息弹窗 -->
-		<set-en-name-dia 
-			:isOpenDialog="setEnName" 
-			:formData="formItemArray"
-			@cancel="setEnName=false" 
-			@updateEnName="updateEnName" 
-			:chartType="enChartInfo.ChartType"
-      :datainfo="enChartInfo.ChartType===10?JSON.parse(enChartInfo.ExtraConfig):null"
-      :edblist="enChartInfo.ChartType===10?enEdblist:[]"
-		/>
-
-		<!-- 定时发布弹窗 -->
-		<el-dialog 
-			v-dialogDrag 
-			:append-to-body="true" 
-			:visible.sync="showDSFB" 
-			width="500px" 
-		    :title="$t('ReportManage.ReportList.scheduled_publish_btn')"
-		>
-			<div>
-				<div>
-					<span>{{$t('ReportManage.ReportList.publish_time')}}</span>
-					<el-date-picker
-						v-model="taskTime"
-						type="datetime"
-						:placeholder="$t('ReportManage.ReportList.select_date_and_time')"
-						value-format="yyyy-MM-dd HH:mm"
-						:picker-options="timePickerOpt"
-					/>
-				</div>
-				<p style="margin:15px 0">{{$t('ReportManage.ReportList.the_report_will_be_posted_on_time')}}</p>
-				<div style="text-align:right;margin:20px 0">
-					<el-button type="primary" plain @click="showDSFB=false">{{$t('Dialog.cancel_btn')}}</el-button>
-					<el-button type="primary" @click="handleConfirmDSFB">{{$t('Dialog.confirm_btn')}}</el-button>
-				</div>
-			</div>
-		</el-dialog>
-
-	</div>
-</template>
-
-<script>
-import {
-	reportauthor,
-	dataBaseInterface,
-	sandInterface
-} from 'api/api.js';
-import {authorEn} from '@/api/modules/reportAuthorApi.js';
-import * as reportEnInterface from '@/api/modules/reportEnApi';
-import {approveInterence} from '@/api/modules/approve.js';
-import http from '@/api/http.js';
-import mixinMsg from '../mixins/messagePush'
-import reportMixin from '../mixins/reportMixin';
-import reportApproveConfig from "@/mixins/reportApproveConfig.js"
-import importMyChart from '../components/importMyChart.vue'
-import setEnNameDia from '@/views/dataEntry_manage/components/setEnNameDia.vue'
-import importSemantics from '../components/importSemantics.vue';
-export default {
-	mixins:[mixinMsg,reportMixin,reportApproveConfig],
-	data() {
-		return {
-			//批量导入图表
-			importChartNum:0,//批量导入图表的数量 如果大于0则说明在加载
-			report_id: this.$route.query.id || '',
-			tabsactive: '基础信息',
-			optionsArr: [],
-			key_word: '',
-			// 沙盘插入 ----------start
-			sandTabelQuery:{
-				PageSize: 13,
-				CurrentIndex: 1,
-				Keyword: '',
-			}, // 沙盘图查询参数
-			sandTableLoading:false,
-			sandTableTotal:0,//沙盘总共条数
-			sandTableList:[],
-			isRequesting:false,
-			loadedText:'', // 全部加载完的文字提示
-			// 沙盘插入 ------------- end
-			originreportlist: [],
-			newreportlist: [],
-			authorlist: [],
-			aeForm: {
-				add_type: 1,
-				classify_name: 1,
-				classifynameArr: [],
-				title: '',
-				abstract: '',
-				author: ['Horizon Insights FICC Team'],
-				frequency: '日度',
-				create_time: http.dateFormatter(new Date(), false),
-				content: '',
-			},
-			formRules: {
-				add_type: [
-					{
-						required: true,
-						message: '',
-						trigger: 'blur',
-					},
-				],
-				classifynameArr: [
-					{
-						required: true,
-						message: '',
-						trigger: 'blur',
-					},
-				],
-				title: [
-					{
-						required: true,
-						message: '请输入',
-						trigger: 'blur',
-					},
-				],
-        abstract: [
-					{
-						required: true,
-						message: '请输入',
-						trigger: 'blur',
-					},
-				],
-			},
-			lastEditRange: null,
-			reportloadding: false,
-			lastsavetime: '',
-			timer: null,
-			ischange: false,
-			isPublishloading: false,
-      value:true,
-      overviewConfig:{
-        toolbarButtons: [
-					'textColor',
-					'bold',
-					'italic',
-					'underline',
-					'strikeThrough',
-					'subscript',
-					'superscript',
-					'fontFamily',
-					'fontSize',
-					'color',
-					'inlineClass',
-					'inlineStyle',
-					'paragraphStyle',
-					'lineHeight',
-					'paragraphFormat',
-					'align',
-					'outdent',
-					'indent',
-					'quote',
-					'specialCharacters',
-					'insertHR',
-					'selectAll',
-					'clearFormatting',
-					'undo',
-					'redo',
-        ],
-        fontSize: ["12", "14", "16", "18", "20", "24", "28", "32", "36", "40"],
-        height:300,
-        fontSizeDefaultSelection: "16",
-        quickInsertEnabled: false,
-        theme: "dark", //主题
-        placeholderText:'请输入overview',
-        language: "zh_cn",
-        //允许粘贴的样式
-        pasteAllowedStyleProps: ['font-family', 'font-size', 'color']
-      },
-
-			showDSFB:false,//显示定时发布弹窗
-			taskTime:'',//定时发布的时间
-			timePickerOpt:{
-				disabledDate(e){
-					return e.getTime()< new Date().getTime()-24 * 60 * 60 * 1000
-				},
-				selectableRange:'00:00:00 - 23:59:59'
-			},
-		};
-	},
-	beforeRouteEnter(to, from, next) {
-        if(to.query.id){
-            to.matched[1].name= this.$t('ReportManage.ReportList.edit_en_report')
-		}else{
-			to.matched[1].name= this.$t('ReportManage.ReportList.add_ch_report')
-		}
-        next()
-    },
-	mounted() {
-		this.$route.query.id && this.getreportdetail();
-		this.getclassifylist();
-		this.getreportlist('');
-		this.getreportauthor();
-		this.getSandTable();
-		this.getSheetList();
-		this.timer = setInterval(() => {
-			this.autoSave();
-		}, 6000);
-
-		window.addEventListener('message',this.reInitIframe)
-	},
-	updated() {
-    // const height = this.value?(screen.height - 642):(screen.height - 400)
-		$('#leftfroala').find('p').css({ fontSize: '16px' });
-    $('#leftoverview').find('p').css({ fontSize: '16px' });
-    // $('#leftfroala .fr-wrapper').css({height:height+'px'})
-    // $('#leftfroala .fr-element').css({minHeight:height+'px'})
-	},
-	destroyed() {
-		window.removeEventListener('message',this.reInitIframe)
-		if (this.timer) {
-			clearInterval(this.timer);
-		}
-	},
-	watch: {
-		'sandTabelQuery.Keyword'(newval,oldval){
-			this.$refs.sandTable.scrollTop=0
-			this.sandTabelQuery.CurrentIndex = 1
-			this.getSandTable()
-		},
-		'taskTime'(){
-			const date = this.$moment(this.taskTime).startOf('day').format('x');
-	        const nowDate = this.$moment().startOf('day').format('x');
-	        // 如果选择的是今天 则需要禁用已经过去的时间节点
-	        if (date <= nowDate) {
-	            // 默认选择的最新时间 是当前时间的两分钟后 (留出2分钟的富裕时间)
-	            this.timePickerOpt.selectableRange = (
-	                `${this.$moment().add(2,'m').format('HH:mm:ss')} - 23:59:59`
-	            );
-	        }else {
-				// 如果是以后的日期,则不需要禁用时间节点
-	            this.timePickerOpt.selectableRange = '00:00:00 - 23:59:59';
-	        }
-		}
-	},
-	methods: {
-		// 每十秒自动保存
-		autoSave() {
-			console.log(this.ischange);
-			if (this.report_id&&this.autoSaveFlag) {
-				//如果富文本中有未上传完成的图片,去除这个dom
-				$('#leftfroala .fr-element').find('img.fr-uploading').length&&$('#leftfroala .fr-element').find('img.fr-uploading').remove()
-				reportEnInterface.reportAutoSave({
-					ReportId: Number(this.report_id),
-					Content: $('#leftfroala .fr-element').html(),
-					NoChange:this.ischange?0:1
-				}).then((res) => {
-					if (res.Ret !== 200) return
-						this.lastsavetime = http.dateFormatter(new Date(), true);
-				});
-				this.ischange = false;
-			}
-		},
-
-		userclassidreportdetail() {
-			//检查classifynameArr是否有审批流
-			let classify = this.aeForm.classifynameArr.map(i=>{
-				return JSON.parse(i).v||0
-			})
-			this.checkClassifyNameArr(2,classify)
-			// console.log(this.aeForm.classifynameArr,'this.aeForm.classifynameArr');
-			if (this.aeForm.add_type == 1) {
-				if (this.aeForm.classifynameArr.length == 3) {
-					this.aeForm.title = JSON.parse(this.aeForm.classifynameArr[2]).l;
-				}else{
-          this.aeForm.title = ''
-        }
-				return false;
-			}
-			if (this.aeForm.classifynameArr.length == 0) {
-				return false;
-			} 
-			let params = {
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[1]).v,
-			};
-			if (this.aeForm.classifynameArr.length === 3) {
-				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[2]
-				).v;
-			} else {
-				params.ClassifyIdSecond = 0;
-			}
-
-			reportEnInterface.reportDetailByclassify(params).then((res) => {
-				if (res.Ret == 200) {
-					if (res.Data == null) {
-						this.$message.error(this.$t('ReportManage.ReportList.no_reports_msg'));
-						return false;
-					}
-					this.aeForm = {
-						add_type: 2,
-						classify_name: 1,
-						classifynameArr:[
-							JSON.stringify({
-								l: res.Data.ClassifyNameRoot,
-								v: parseInt(res.Data.ClassifyIdRoot),
-							}),
-							JSON.stringify({
-								l: res.Data.ClassifyNameFirst,
-								v: parseInt(res.Data.ClassifyIdFirst),
-							}),
-							JSON.stringify({
-								l: res.Data.ClassifyNameSecond,
-								v: parseInt(res.Data.ClassifyIdSecond),
-						})],
-						title: res.Data.Title,
-						abstract: res.Data.Abstract,
-						author: res.Data.Author ? res.Data.Author.split(',') : '',
-						frequency: res.Data.Frequency,
-						create_time: res.Data.CreateTime,
-						content: res.Data.Content,
-            			overview:res.Data.Overview||''
-					};
-				}
-			});
-		},
-
-		getreportauthor() {
-			authorEn({}).then((res) => {
-				if (res.Ret == 200) {
-					this.authorlist = res.Data.List || [];
-				}
-			});
-		},
-
-		//报告详情
-		getreportdetail() {
-			reportEnInterface.reportDetail({ ReportId: parseInt(this.report_id) }).then((res) => {
-				if (res.Ret === 200 && res.Data) {
-					let data = res.Data;
-					this.aeForm = {
-						add_type: parseInt(data.AddType),
-						classify_name: 1,
-						classifynameArr:[
-							JSON.stringify({
-								l: data.ClassifyNameRoot,
-								v: parseInt(data.ClassifyIdRoot),
-							}),
-							JSON.stringify({
-								l: data.ClassifyNameFirst,
-								v: parseInt(data.ClassifyIdFirst),
-							}),
-							JSON.stringify({
-								l: data.ClassifyNameSecond,
-								v: parseInt(data.ClassifyIdSecond),
-						})],
-						title: data.Title,
-						abstract: data.Abstract,
-						author: data.Author ? data.Author.split(',') : '',
-						frequency: data.Frequency,
-						create_time: data.CreateTime,
-						content: data.Content,
-            overview:data.Overview||''
-					};
-					// 回显定时发布时间
-					if(data.PrePublishTime){
-						this.taskTime=data.PrePublishTime
-					}
-					let classify = [data.ClassifyIdRoot,data.ClassifyIdFirst,data.ClassifyIdSecond]
-					this.checkClassifyNameArr(2,classify)
-				}
-			});
-		},
-
-		async clickreportadd(tp) {
-			if (
-				!this.aeForm.classifynameArr ||
-				this.aeForm.classifynameArr.length == 0
-			) {
-				this.$message.warning(this.$t('ReportManage.ReportList.please_select_category'));
-				return false;
-			}
-			if (!this.aeForm.title) {
-				this.$message.warning(this.$t('ReportManage.ReportList.input_title_please'));
-				return false;
-			}
-			if(!this.aeForm.overview){
-				this.$message.warning(this.$t('ReportManage.smart_msg.please_enter')+'overview')
-				return false;
-			}
-			if(!this.aeForm.content){
-				this.$message.warning(this.$t('ReportManage.smart_msg.please_enter')+'content')
-				return false;
-			}
-			if(!this.aeForm.abstract){
-				this.$message.warning(this.$t('ReportManage.ReportList.please_input_abstract'))
-				return false;
-			}
-			if(!this.autoSaveFlag){
-				this.$message.error(this.$t('ReportManage.smart_msg.img_wait'))
-				return false
-			}
-			//如果富文本中有未上传完成的图片,去除这个dom
-			$('#leftfroala .fr-element').find('img.fr-uploading').length&&$('#leftfroala .fr-element').find('img.fr-uploading').remove()
-			let params = {
-				AddType: this.aeForm.add_type,
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[1]).v,
-				ClassifyNameFirst: JSON.parse(this.aeForm.classifynameArr[1]).l,
-				Title: this.aeForm.title,
-				Abstract: this.aeForm.abstract,
-				Author:
-					this.aeForm.author.length > 0
-						? this.aeForm.author.join(',')
-						: '',
-				Frequency: this.aeForm.frequency,
-				Content: $('#leftfroala .fr-element').html(),
-				CreateTime: this.aeForm.create_time,
-				State: 1,
-				ReportVersion: 2,
-        Overview:this.aeForm.overview.replace(/<p data-f-id=\"pbf\".*?<\/p>/g,'')
-			};
-			if (this.aeForm.classifynameArr.length == 3) {
-				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[2]
-				).v;
-				params.ClassifyNameSecond = JSON.parse(
-					this.aeForm.classifynameArr[2]
-				).l;
-			}
-
-			const res = this.report_id 
-				? await reportEnInterface.reportEdit({ReportId: parseInt(this.report_id),...params}) 
-				: await reportEnInterface.reportAdd(params)
-
-				if(res.Ret !== 200) return
-
-				this.$message.success(res.Msg);
-        this.report_id = res.Data.ReportId;
-
-				if (tp === "yl") {
-					let { href } = this.$router.resolve({
-						name: "预览报告",
-						query: { id: this.report_id,fromPage:'en' },
-					});
-					window.open(href, "_blank");
-				} else if (tp === "fb") {
-					this.$confirm(this.$t('ReportManage.smart_msg.report_publish_immediately'),this.$t('Confirm.prompt'),{type: 'warning'}).then(()=>{
-						this.publishreport(this.report_id);
-					})
-				}else if(tp==='dsfb'){
-					//定时发布
-					this.showDSFB=true
-				}else if(tp==='submit'){
-					this.submitReport()
-				}
-			// if (tp == 'yl') { //预览
-			// 	sessionStorage.setItem('reportdtl', JSON.stringify(params));
-			// 	let { href } = this.$router.resolve({ name: '预览报告' });
-			// 	window.open(href, '_blank');
-			// 	return false;
-			// }
-			// if (tp == 'fb') {
-			// 	this.isPublishloading = true;
-			// }else { //存草稿
-			// 	this.reporteditMsg(params,tp)
-			// }
-		},
-		submitReport(){
-			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(this.report_id)
-				}).then(res=>{
-					if(res.Ret!==200) return
-					this.$message.success(this.$t('ReportManage.smart_msg.submit_success'))
-					this.$router.push({ path: '/reportEnList' });
-				})
-			})
-		},
-
-		publishreport(id) {
-			//发布报告
-			reportEnInterface.reportPublish({ ReportIds: String(id) }).then((res) => {
-				if (res.Ret !== 200) return
-				this.isPublishloading = false;
-				this.$router.push({ path: '/reportEnList' });
-			});
-		},
-
-		//定时发布报告
-		handleConfirmDSFB(){
-			if(!this.taskTime){
-				this.$message.warning(this.$t('ReportManage.smart_msg.select_push_time'))
-				return
-			}
-			const now=this.$moment().format('YYYY-MM-DD HH:mm:ss')
-			console.log(now);
-			console.log(this.taskTime);
-			if(this.$moment(this.taskTime).isBefore(now,'second')){
-				this.$message.warning(this.$t('ReportManage.smart_msg.than_current_time'))
-				return
-			}
-			reportEnInterface.enReportPrepblish({
-				ReportId:this.report_id,
-				PrePublishTime:this.taskTime
-			}).then(res=>{
-				if(res.Ret===200){
-					this.$message.success(this.$t('ReportManage.smart_msg.timed_success'))
-					this.$router.push({ path: '/reportEnList' });
-				}
-			})
-		},
-
-		//批量插入我的图表
-		handleImportMyChart(data){
-			//设置编辑器获取焦点
-			this.editor.events.focus();
-			// 获取选定对象
-			const selection = getSelection();
-			// 判断是否有最后光标对象存在
-			if (this.lastEditRange) {
-				// 存在最后光标对象,选定对象清除所有光标并添加最后光标还原之前的状态
-				selection.removeAllRanges();
-				selection.addRange(this.lastEditRange);
-			}
-			//插入内容
-			let htmlStr=''
-			const LINK_CHART_URL = this.$setting.dynamicOutLinks.ChartViewUrl+'/chartshow';
-			let fromPage = this.$route.path === '/reportEnEditor' ? 'en' :'';
-			
-			data.forEach(item=>{
-				const t=new Date().getTime()
-				item.domId=item.UniqueCode+t //避免多次添加同一图表 id相同
-				htmlStr=htmlStr+`<p style='text-align:left; margin-top:10px;'>
-							<iframe id='${item.domId}' src='${LINK_CHART_URL}?code=${item.UniqueCode}&fromPage=${fromPage}' width='100%' height='350' style='border-width:0px; min-height:350px;'></iframe>
-						</p>`
-			})
-			this.$nextTick(()=>{
-				console.log('import start',data);
-				this.importChartNum=data.length
-				this.editor.html.insert(htmlStr)
-				this.handleListenIframeLoad(data)
-			})
-			
-			this.lastEditRange = selection.getRangeAt(0);
-		},
-
-		// 监听批量导入的iframe是否加载完
-		handleListenIframeLoad(list){
-			list.forEach(item=>{
-				let ifm=document.getElementById(item.domId)
-				ifm.onload=(e)=>{
-					this.importChartNum--
-					console.log('一个iframe加载了',e.path[0]);
-				}
-			})
-		},
-
-		// 获取沙盘图列表 分页
-		getSandTable(){
-			this.sandTableLoading = true
-			this.isRequesting = true
-			sandInterface.sandlistByQuote(this.sandTabelQuery).then(({Data:{List,Paging}})=>{
-				if(this.sandTabelQuery.CurrentIndex>1){
-					this.sandTableList = [...this.sandTableList,...List]
-				}else{
-					this.sandTableList = List
-					this.sandTableTotal = Paging.Totals
-					if(this.sandTableList.length ==0){
-						this.loadedText = this.$t('Table.prompt_slogan')
-					}else if(this.sandTableList.length>=this.sandTableTotal){
-						this.loadedText=this.$t('ReportManage.smart_msg.all_loaded_have')
-					}else{
-
-					}
-				}		
-			})
-			.finally(()=>{
-				this.sandTableLoading = false
-				this.isRequesting = false
-			})
-		},
-		// 沙盘列表滚动事件,触底加载下一页数据 防抖
-		sandTableHandleScroll:_.debounce(function (e) {
-			if(this.sandTableList.length>=this.sandTableTotal){
-				this.loadedText = this.$t('ReportManage.smart_msg.all_loaded_have')
-				return
-			}
-			if(e.target.scrollHeight-e.target.clientHeight-e.target.scrollTop<10 && !this.isRequesting){
-				this.sandTabelQuery.CurrentIndex++
-				this.getSandTable()
-			}
-		},100),
-
-		getclassifylist() {
-			//获取分类列表
-			let params = { CurrentIndex: 1, PageSize: 1000, KeyWord: '' };
-			reportEnInterface.classifyList(params).then((res) => {
-				if (res.Ret == 200 && Array.isArray(res.Data.List)) {
-					this.optionsArr = res.Data.List|| []
-					// res.Data.List.forEach(item => {
-					// 	let newitem = {
-					// 		label: item.ClassifyName,
-					// 		value: JSON.stringify({
-					// 			l: item.ClassifyName,
-					// 			v: parseInt(item.Id),
-					// 		}),
-					// 		HasTeleconference:item.HasTeleconference
-					// 	};
-					// 	if (item.Child&&item.Child.length > 0) {
-					// 		let childnode = [];
-					// 		item.Child.forEach((itemchild, i) => {
-					// 			childnode.push({
-					// 				label: itemchild.ClassifyName,
-					// 				value: JSON.stringify({
-					// 					l: itemchild.ClassifyName,
-					// 					v: parseInt(itemchild.Id),
-					// 				}),
-					// 				HasTeleconference:itemchild.HasTeleconference
-					// 			});
-					// 		});
-					// 		newitem.children = childnode;
-					// 	} else {
-					// 		newitem.children = undefined;
-					// 		newitem.disabled=true
-					// 	}
-					// 	this.optionsArr.push(newitem);
-					// });
-					this.optionsArr.map(itemOne =>{
-						itemOne.label = itemOne.ClassifyName
-						itemOne.value = JSON.stringify({
-							l: itemOne.ClassifyName,
-							v: parseInt(itemOne.Id),
-						})
-						itemOne.disabled = !(itemOne.Child && itemOne.Child.length>0)
-						if(itemOne.Child){
-							itemOne.Child.map(itemTwo =>{
-								itemTwo.label = itemTwo.ClassifyName
-								itemTwo.value = JSON.stringify({
-									l: itemTwo.ClassifyName,
-									v: parseInt(itemTwo.Id),
-								})
-								itemTwo.disabled = !(itemTwo.Child && itemTwo.Child.length>0)
-								if(itemTwo.Child){
-									itemTwo.Child.map(itemThree =>{
-										itemThree.label = itemThree.ClassifyName
-										itemThree.value = JSON.stringify({
-											l: itemThree.ClassifyName,
-											v: parseInt(itemThree.Id),
-										})
-									})
-								}
-							})
-						}
-					})
-				}
-			});
-		},
-	},
-	components: {importMyChart,setEnNameDia,importSemantics},
-};
-</script>
-
-<style scoped lang="scss">
-#editreport {
-	display: flex;
-	overflow: hidden;
-  padding: 20px 30px;
-  background: #fff;
-  border: 1px solid #ececec;
-  border-radius: 4px;
-  box-shadow: 0 3px 6px rgba(0, 0, 0, 0.05);
-  box-sizing: border-box;
-  .leftitems{
-    flex: 1;
-    display: flex;
-    flex-direction: column;
-	&.full{
-		max-width: calc(100vw - 200px - 120px);
-	}
-	&.block{
-		max-width: calc(100vw - 200px - 120px - 500px);
-	}
-    .overview{
-		overflow: hidden;
-      p{
-        margin-bottom: 35px;
-      }
-    }
-    #leftfroala{
-		overflow: hidden;
-      flex: 1;
-      #froala-editor{
-
-      }
-    }
-  }
-	/* #leftfroala {
-		flex: 1;
-		max-width: calc(100vw - 750px);
-	} */
-	#rightitems {
-		width: 500px;
-		flex: 500px 0 0;
-		overflow: hidden;
-		position: fixed;
-		right: 70px;
-		/* bottom:30px; */
-		#tabs {
-			padding: 0px 20px;
-			box-sizing: border-box;
-			margin-bottom: 15px;
-			overflow: hidden;
-			> p {
-				/* display: inline-block; */
-				float: left;
-				width: 25%;
-				font-size: 18px;
-				cursor: pointer;
-				color: #1f2e4d;
-				padding: 10px 0;
-				text-align: center;
-			}
-			> p.active {
-				border-bottom: 2px solid #3464e0;
-				color: #3464e0;
-			}
-		}
-		.liststy {
-			width: 100%;
-			margin: 20px 0;
-			padding: 30px 20px 20px 20px;
-			box-sizing: border-box;
-			border: 1px solid #eaeaea;
-			border-radius: 10px;
-			position: relative;
-			overflow: hidden;
-			> p {
-				text-align: center;
-				font-size: 16px;
-				margin-bottom: 10px;
-			}
-			> img {
-				width: 100%;
-				height: auto;
-			}
-			// .source-identification{
-			// 	text-align: left;
-			// }
-		}
-		.loaded-text{
-			height: 20px;
-			text-align: center;
-			color: #666;
-			font-size: 14px;
-		}
-    .limit{
-      position: absolute;
-      right: 5px;
-      bottom: 0;
-      font-size: 12px;
-      color: #C0C4CC;
-    }
-	}
-	.slide-icon {
-		padding: 20px 0;
-		box-shadow: 0px 3px 6px rgba(0, 0, 0, 0.3);
-		border-radius: 5px;
-		background-color: #fff;
-		cursor: pointer;
-		position: fixed;
-		top: 50%;
-		transform: translateY(-50%);
-		z-index: 99;
-		&:hover {
-			background-color: #e0e0e0;
-		}
-		&.slide-left {
-			right: 30px;
-		}
-		&.slide-right {
-			right: 540px;
-		}
-	}
-}
-</style>
-<style lang="scss">
-#editreport {
-	.el-tabs__nav-wrap::after {
-		height: 0;
-	}
-	.el-tabs__item { font-size: 16px; }
-}	
-</style>

+ 68 - 68
src/views/report_manage/reportEn/reportEditor.vue

@@ -16,7 +16,7 @@
       <div 
         id="leftfroala"
         v-loading="importChartNum>0" 
-        element-loading-text="图表批量插入中..."
+        :element-loading-text="$t('ReportManage.ReportList.chart_insertion_progress')"
         element-loading-spinner="el-icon-loading"
         element-loading-background="rgba(0, 0, 0, 0.8)"
 		  >
@@ -39,7 +39,7 @@
 				"
 			>
 				<div v-show="lastsavetime" style="color: #666; margin-bottom: 15px">
-					最近保存时间:{{ lastsavetime }}
+					{{$t('ReportManage.ReportList.last_save_time')}}:{{ lastsavetime }}
 				</div>
 				<el-button
 					type="primary"
@@ -47,21 +47,21 @@
 					plain
 					@click.native="refreshReport"
 				>
-					一键刷新
+					{{$t('ReportManage.ReportList.click_refresh_btn')}}
 				</el-button>
 				<el-button v-permission="permissionBtn.enReportManageBtn.enReport_reportView"
 					type="primary"
 					size="medium"
 					plain
 					@click.native="clickreportadd('yl')"
-					>预览</el-button
+					>{{$t('ReportManage.ReportList.preview_btn')}}</el-button
 				>
 				<el-button
 					type="primary"
 					size="medium"
 					plain
 					@click.native="clickreportadd('cg')"
-					>存草稿</el-button
+					>{{$t('ReportManage.ReportList.save_draft_btn')}}</el-button
 				>
 				<template v-if="!isApprove||!hasApproveFlow">
 					<el-button v-permission="permissionBtn.enReportManageBtn.enReport_publish"
@@ -69,7 +69,7 @@
 						size="medium"
 						:disabled="checkLoading"
 						@click.native="clickreportadd('dsfb')"
-						>定时发布</el-button
+						>{{$t('ReportManage.ReportList.scheduled_publish_btn')}}</el-button
 					>
 					<el-button v-permission="permissionBtn.enReportManageBtn.enReport_publish"
 						type="primary"
@@ -77,20 +77,20 @@
 						:disabled="checkLoading"
 						@click.native="clickreportadd('fb')"
 						:loading="isPublishloading"
-						>发布</el-button
+						>{{$t('ReportManage.ReportList.publish_btn')}}</el-button
 					>
 				</template>
 				<template v-if="isApprove&&hasApproveFlow">
 					<el-button v-permission="permissionBtn.enReportManageBtn.enReport_publish"
 						:disabled="checkLoading"
-						type="primary" size="medium" @click="clickreportadd('submit')">提交</el-button>
+						type="primary" size="medium" @click="clickreportadd('submit')">{{$t('ReportManage.ReportList.submission_btn')}}</el-button>
 				</template>
 			</div>
 			<div
 				style="margin: 0px 0 0 20px;padding: 10px 20px;box-sizing: border-box;background: #fff;border: 1px solid #3464e0;"
 			>
 				<el-tabs v-model="tabsactive">
-					<el-tab-pane :label="tab" :name="tab" v-for="tab in panelTabs" :key="tab"></el-tab-pane>
+					<el-tab-pane :label="tab.label" :name="tab.key" v-for="tab in panelTabs" :key="tab.key"></el-tab-pane>
 				</el-tabs>
 				<div
 					v-if="tabsactive == '基础信息'"
@@ -106,20 +106,20 @@
 						id="login-container"
 						@submit.native.prevent
 					>
-						<el-form-item prop="add_type" label="新增方式">
+						<el-form-item prop="add_type" :label="$t('ReportManage.ReportList.new_method_btn')">
 							<el-select
 								v-model="aeForm.add_type"
 								@change="userclassidreportdetail"
-								placeholder="请选择"
+								:placeholder="$t('ReportManage.CategoryList.please_select')"
 								size="medium"
 								:disabled="report_id?true:false"
 								style="width: 270px"
 							>
-								<el-option label="新增报告" :value="1"></el-option>
-								<el-option label="继承报告" :value="2"></el-option>
+								<el-option :label="$t('ReportManage.ReportList.new_report_radio')" :value="1"></el-option>
+								<el-option :label="$t('ReportManage.ReportList.inherit_report_radio')" :value="2"></el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item prop="classifynameArr" label="分类">
+						<el-form-item prop="classifynameArr" :label="$t('ReportManage.ReportList.classificiation_selest')">
 							<el-cascader
 								@change="userclassidreportdetail"
 								:options="optionsArr"
@@ -127,16 +127,16 @@
 									children:'Child'
 								}"
 								v-model="aeForm.classifynameArr"
-								placeholder="类型筛选"
+								:placeholder="$t('ReportManage.smart_type_filtering')"
 								size="medium"
 								style="width: 270px"
 							></el-cascader>
 						</el-form-item>
-						<el-form-item prop="title" label="标题">
+						<el-form-item prop="title" :label="$t('ReportManage.ReportList.title_ipt')">
 							<el-input
 								type="textarea"
 								:rows="2"
-								placeholder="请输入"
+								:placeholder="$t('ReportManage.CategoryList.please_input')"
 								v-model="aeForm.title"
 								size="medium"
 							></el-input>
@@ -145,17 +145,17 @@
 							<el-input
 								type="textarea"
 								:rows="2"
-								placeholder="请输入"
+								:placeholder="$t('ReportManage.CategoryList.please_input')"
 								v-model="aeForm.abstract"
 								size="medium"
 							></el-input>
               <span class="limit">{{aeForm.abstract.length}}</span>
 						</el-form-item>
-						<el-form-item label="作者">
+						<el-form-item :label="$t('ReportManage.ReportList.author_select')">
 							<el-select
 								v-model="aeForm.author"
 								multiple
-								placeholder="请选择"
+								:placeholder="$t('ReportManage.CategoryList.please_select')"
 								size="medium"
 								style="width: 270px"
 							>
@@ -167,29 +167,29 @@
 								></el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="频度">
+						<el-form-item :label="$t('ReportManage.ReportList.frequency_select')">
 							<el-select
 								v-model="aeForm.frequency"
-								placeholder="请选择"
+								:placeholder="$t('ReportManage.CategoryList.please_select')"
 								size="medium"
 								style="width: 270px"
 							> 
-								<el-option label="年度" value="年度"></el-option>
-								<el-option label="半年度" value="半年度"></el-option>
-								<el-option label="季度" value="季度"></el-option>
-								<el-option label="月度" value="月度"></el-option>
-								<el-option label="双周度" value="双周度"></el-option>
-								<el-option label="周度" value="周度"></el-option>
-								<el-option label="日度" value="日度"></el-option>
-								<el-option label="不定时" value="不定时"></el-option>
+							   <el-option :label="$t('ReportManage.smart_annually')" :value="$t('ReportManage.smart_annually')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_semi_annually')" :value="$t('ReportManage.smart_semi_annually')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_quarterly')" :value="$t('ReportManage.smart_quarterly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_monthly')" :value="$t('ReportManage.smart_monthly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_bi_weekly')" :value="$t('ReportManage.smart_bi_weekly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_weekly')" :value="$t('ReportManage.smart_weekly')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_daily')" :value="$t('ReportManage.smart_daily')"></el-option>
+                               <el-option :label="$t('ReportManage.smart_irregularly')" :value="$t('ReportManage.smart_irregularly')"></el-option>
 							</el-select>
 						</el-form-item>
-						<el-form-item label="创建时间">
+						<el-form-item :label="$t('ReportManage.ReportList.creation_time_select')">
 							<el-date-picker
 								v-model="aeForm.create_time"
 								type="date"
 								value-format="yyyy-MM-dd"
-								placeholder="选择日期"
+								:placeholder="$t('ReportManage.ReportList.select_date')"
 								size="medium"
 								:clearable="false"
 								style="width: 270px"
@@ -199,7 +199,7 @@
 				</div>
 				<div v-if="tabsactive == '图表插入'">
 					<el-input
-						placeholder="图表名称"
+						:placeholder="$t('ReportManage.ReportList.chart_name')"
 						v-model="key_word"
 						size="medium"
 						prefix-icon="el-icon-search"
@@ -207,12 +207,12 @@
 					>
 					</el-input>
 					<el-radio-group v-model="chart_source" @change="() => {search_page=1;$refs.chartListRef.scrollTop = 0;getreportlist()}" style="margin-top: 10px;">
-						<el-radio :label="1">ETA图库</el-radio>
-						<el-radio :label="2">商品价格曲线</el-radio> 
-						<el-radio :label="3">相关性图表</el-radio> 
-						<el-radio :label="6">拟合方程曲线</el-radio>
-						<el-radio :label="7">统计特征</el-radio>
-						<el-radio :label="10">跨品种分析</el-radio>
+						<el-radio :label="1">{{$t('ReportManage.ReportList.chart_inventory_radio')}}</el-radio>
+						<el-radio :label="2">{{$t('ReportManage.ReportList.price_curve_radio')}}</el-radio> 
+						<el-radio :label="3">{{$t('ReportManage.ReportList.related_charts_radio')}}</el-radio>
+						<el-radio :label="6">{{$t('ReportManage.ReportList.curve_fitting_radio')}}</el-radio>
+						<el-radio :label="7">{{$t('ReportManage.ReportList.statistical_feature_radio')}}</el-radio>
+						<el-radio :label="10">{{$t('ReportManage.ReportList.intercommodity_analysis_radio')}}</el-radio>
 					</el-radio-group>
 					<div style="margin: 10px 0">
 						<el-checkbox v-model="isShowMe" @change="() => {search_page=1;$refs.chartListRef.scrollTop = 0;getreportlist(key_word)}">只看我的</el-checkbox>
@@ -247,7 +247,7 @@
 				</div>
 				<div v-if="tabsactive == '沙盘插入'">
 					<el-input
-						placeholder="沙盘名称/品种"
+						:placeholder="$t('ReportManage.ReportList.no_reports_msg')"
 						v-model="sandTabelQuery.Keyword"
 						size="medium"
 						prefix-icon="el-icon-search"
@@ -278,12 +278,12 @@
 								<!-- <p class="source-identification">来源:弘则研究</p> -->
 							</div>
 						</template>
-						<tableNoData text="暂无数据" size="mini" v-else/>
+						<tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
 					</div>
 				</div>
 				<div v-if="tabsactive == '表格插入'">
 					<el-input
-						placeholder="表格名称"
+						:placeholder="$t('ReportManage.ReportList.table_name_tabs')"
 						v-model="sheetSearchObj.Keyword"
 						size="medium"
 						prefix-icon="el-icon-search"
@@ -312,7 +312,7 @@
 								/>
 							</div>
 						</template>
-						<tableNoData text="暂无数据" size="mini" v-else/>
+						<tableNoData :text="$t('Table.prompt_slogan')" size="mini" v-else/>
 					</div>
 				</div>
 				<div v-if="tabsactive == 'MyETA批量插入'">
@@ -348,23 +348,23 @@
 			:append-to-body="true" 
 			:visible.sync="showDSFB" 
 			width="500px" 
-			title="定时发布"
+		    :title="$t('ReportManage.ReportList.scheduled_publish_btn')"
 		>
 			<div>
 				<div>
-					<span>发送时间</span>
+					<span>{{$t('ReportManage.ReportList.publish_time')}}</span>
 					<el-date-picker
 						v-model="taskTime"
 						type="datetime"
-						placeholder="选择日期时间"
+						:placeholder="$t('ReportManage.ReportList.select_date_and_time')"
 						value-format="yyyy-MM-dd HH:mm"
 						:picker-options="timePickerOpt"
 					/>
 				</div>
-				<p style="margin:15px 0">设置成功之后,研报将定时进行发送。</p>
+				<p style="margin:15px 0">{{$t('ReportManage.ReportList.the_report_will_be_posted_on_time')}}</p>
 				<div style="text-align:right;margin:20px 0">
-					<el-button type="primary" plain @click="showDSFB=false">取消</el-button>
-					<el-button type="primary" @click="handleConfirmDSFB">确定</el-button>
+					<el-button type="primary" plain @click="showDSFB=false">{{$t('Dialog.cancel_btn')}}</el-button>
+					<el-button type="primary" @click="handleConfirmDSFB">{{$t('Dialog.confirm_btn')}}</el-button>
 				</div>
 			</div>
 		</el-dialog>
@@ -616,7 +616,7 @@ export default {
 			reportEnInterface.reportDetailByclassify(params).then((res) => {
 				if (res.Ret == 200) {
 					if (res.Data == null) {
-						this.$message.error('此分类暂无报告');
+						this.$message.error(this.$t('ReportManage.ReportList.no_reports_msg'));
 						return false;
 					}
 					this.aeForm = {
@@ -641,7 +641,7 @@ export default {
 						frequency: res.Data.Frequency,
 						create_time: res.Data.CreateTime,
 						content: res.Data.Content,
-            overview:res.Data.Overview||''
+            			overview:res.Data.Overview||''
 					};
 				}
 			});
@@ -699,27 +699,27 @@ export default {
 				!this.aeForm.classifynameArr ||
 				this.aeForm.classifynameArr.length == 0
 			) {
-				this.$message.warning('请选择分类');
+				this.$message.warning(this.$t('ReportManage.ReportList.please_select_category'));
 				return false;
 			}
 			if (!this.aeForm.title) {
-				this.$message.warning('请输入标题');
+				this.$message.warning(this.$t('ReportManage.ReportList.input_title_please'));
 				return false;
 			}
 			if(!this.aeForm.overview){
-				this.$message.warning('请输入overview')
+				this.$message.warning(this.$t('ReportManage.smart_msg.please_enter')+'overview')
 				return false;
 			}
 			if(!this.aeForm.content){
-				this.$message.warning('请输入content')
+				this.$message.warning(this.$t('ReportManage.smart_msg.please_enter')+'content')
 				return false;
 			}
 			if(!this.aeForm.abstract){
-				this.$message.warning('请输入摘要')
+				this.$message.warning(this.$t('ReportManage.ReportList.please_input_abstract'))
 				return false;
 			}
 			if(!this.autoSaveFlag){
-				this.$message.error('有图片未上传完成,请稍等')
+				this.$message.error(this.$t('ReportManage.smart_msg.img_wait'))
 				return false
 			}
 			//如果富文本中有未上传完成的图片,去除这个dom
@@ -766,7 +766,7 @@ export default {
 					});
 					window.open(href, "_blank");
 				} else if (tp === "fb") {
-					this.$confirm('是否确定立即发布报告?','提示',{type: 'warning'}).then(()=>{
+					this.$confirm(this.$t('ReportManage.smart_msg.report_publish_immediately'),this.$t('Confirm.prompt'),{type: 'warning'}).then(()=>{
 						this.publishreport(this.report_id);
 					})
 				}else if(tp==='dsfb'){
@@ -788,16 +788,16 @@ export default {
 			// }
 		},
 		submitReport(){
-			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(this.report_id)
 				}).then(res=>{
 					if(res.Ret!==200) return
-					this.$message.success("提交成功")
+					this.$message.success(this.$t('ReportManage.smart_msg.submit_success'))
 					this.$router.push({ path: '/reportEnList' });
 				})
 			})
@@ -815,14 +815,14 @@ export default {
 		//定时发布报告
 		handleConfirmDSFB(){
 			if(!this.taskTime){
-				this.$message.warning('请选择定时发布的时间')
+				this.$message.warning(this.$t('ReportManage.smart_msg.select_push_time'))
 				return
 			}
 			const now=this.$moment().format('YYYY-MM-DD HH:mm:ss')
 			console.log(now);
 			console.log(this.taskTime);
 			if(this.$moment(this.taskTime).isBefore(now,'second')){
-				this.$message.warning('定时发布不得早于当前时间')
+				this.$message.warning(this.$t('ReportManage.smart_msg.than_current_time'))
 				return
 			}
 			reportEnInterface.enReportPrepblish({
@@ -830,7 +830,7 @@ export default {
 				PrePublishTime:this.taskTime
 			}).then(res=>{
 				if(res.Ret===200){
-					this.$message.success('定时发布成功!')
+					this.$message.success(this.$t('ReportManage.smart_msg.timed_success'))
 					this.$router.push({ path: '/reportEnList' });
 				}
 			})
@@ -892,9 +892,9 @@ export default {
 					this.sandTableList = List
 					this.sandTableTotal = Paging.Totals
 					if(this.sandTableList.length ==0){
-						this.loadedText = '暂无数据'
+						this.loadedText = this.$t('Table.prompt_slogan')
 					}else if(this.sandTableList.length>=this.sandTableTotal){
-						this.loadedText='已全部加载完'
+						this.loadedText=this.$t('ReportManage.smart_msg.all_loaded_have')
 					}else{
 
 					}
@@ -908,7 +908,7 @@ export default {
 		// 沙盘列表滚动事件,触底加载下一页数据 防抖
 		sandTableHandleScroll:_.debounce(function (e) {
 			if(this.sandTableList.length>=this.sandTableTotal){
-				this.loadedText = '已全部加载完'
+				this.loadedText = this.$t('ReportManage.smart_msg.all_loaded_have')
 				return
 			}
 			if(e.target.scrollHeight-e.target.clientHeight-e.target.scrollTop<10 && !this.isRequesting){