Kaynağa Gözat

Merge branch 'bug5367'

Karsa 3 ay önce
ebeveyn
işleme
897704c9f8

+ 70 - 70
src/routes/modules/oldRoutes.js

@@ -125,16 +125,16 @@ export default [
         name_en:"RepMgmt"
     },
     children: [
-      {
-        path: "reportlist",
-        component: reportlist,
-        name: "研报列表",
-        hidden: false,
-        meta: {
-          keepAlive: false,
-          name_en:"Report list"
-        },
-      },
+      // {
+      //   path: "reportlist",
+      //   component: reportlist,
+      //   name: "研报列表",
+      //   hidden: false,
+      //   meta: {
+      //     keepAlive: false,
+      //     name_en:"Report list"
+      //   },
+      // },
       {
         path: "classifylist",
         component: classifylist,
@@ -167,58 +167,58 @@ export default [
           name_en:"EveryDay",
         },
       },
-      {
-        path: "addreportNew",
-        component: () => import("@/views/report_manage/addreportNew.vue"),
-        name: "添加研报",
-        hidden: true,
-        meta: {
-          pathFrom: "reportlist",
-          pathName: "研报列表",
-          keepAlive: false,
-          name_en:"Add Report",
-          pathName_en:"Report list"
-        },
-      },
-      {
-        path: "editreportNew",
-        component: () => import("@/views/report_manage/editreportNew.vue"),
-        name: "编辑研报",
-        hidden: true,
-        meta: {
-          pathFrom: "reportlist",
-          pathName: "研报列表",
-          keepAlive: false,
-          name_en:"Edit Report",
-          pathName_en:"Report list"
-        },
-      },
-      {
-        path: "dayorweek",
-        component: () => import("@/views/report_manage/dayOrWeek.vue"),
-        name: "添加晨报/周报",
-        hidden: true,
-        meta: {
-          pathFrom: "reportlist",
-          pathName: "研报列表",
-          keepAlive: false,
-          name_en:"Add/Edit Day or Week Report",
-          pathName_en:"Report list"
-        },
-      },
-      {
-        path: "editchapterreport",
-        component: () => import("@/views/report_manage/editChapterReport.vue"),
-        name: "晨报/周报",
-        hidden: true,
-        meta: {
-          keepAlive: false,
-          pathFrom: "dayorweek",
-          pathName: "晨报/周报",
-          name_en:"Day or Week Report",
-          pathName_en:"Add/Edit Day or Week Report"
-        },
-      },
+      // {
+      //   path: "addreportNew",
+      //   component: () => import("@/views/report_manage/addreportNew.vue"),
+      //   name: "添加研报",
+      //   hidden: true,
+      //   meta: {
+      //     pathFrom: "reportlist",
+      //     pathName: "研报列表",
+      //     keepAlive: false,
+      //     name_en:"Add Report",
+      //     pathName_en:"Report list"
+      //   },
+      // },
+      // {
+      //   path: "editreportNew",
+      //   component: () => import("@/views/report_manage/editreportNew.vue"),
+      //   name: "编辑研报",
+      //   hidden: true,
+      //   meta: {
+      //     pathFrom: "reportlist",
+      //     pathName: "研报列表",
+      //     keepAlive: false,
+      //     name_en:"Edit Report",
+      //     pathName_en:"Report list"
+      //   },
+      // },
+      // {
+      //   path: "dayorweek",
+      //   component: () => import("@/views/report_manage/dayOrWeek.vue"),
+      //   name: "添加晨报/周报",
+      //   hidden: true,
+      //   meta: {
+      //     pathFrom: "reportlist",
+      //     pathName: "研报列表",
+      //     keepAlive: false,
+      //     name_en:"Add/Edit Day or Week Report",
+      //     pathName_en:"Report list"
+      //   },
+      // },
+      // {
+      //   path: "editchapterreport",
+      //   component: () => import("@/views/report_manage/editChapterReport.vue"),
+      //   name: "晨报/周报",
+      //   hidden: true,
+      //   meta: {
+      //     keepAlive: false,
+      //     pathFrom: "dayorweek",
+      //     pathName: "晨报/周报",
+      //     name_en:"Day or Week Report",
+      //     pathName_en:"Add/Edit Day or Week Report"
+      //   },
+      // },
       {
         path: "reportEnList",
         component: () =>
@@ -302,14 +302,14 @@ export default [
             name_en:"Variety Mgmt"
         }
       },
-      {
-        path: "smartReportList",
-        name: "智能研报",
-        component: () => import("@/views/smartReport/reportList.vue"),
-        meta:{
-            name_en:"Smart Report"
-        }
-      },
+      // {
+      //   path: "smartReportList",
+      //   name: "智能研报",
+      //   component: () => import("@/views/smartReport/reportList.vue"),
+      //   meta:{
+      //       name_en:"Smart Report"
+      //   }
+      // },
       {
         path: 'reportNew',
         name:'研报中心',

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

@@ -1178,7 +1178,7 @@ export default {
 				this.getDataList();
 			}
 		},200),
-
+		
 		openLangInfoDia(type='table') {
 				this.updateType = type
 				this.formItemArray=[

+ 0 - 208
src/views/dataEntry_manage/mixins/chartPublic.js

@@ -262,214 +262,6 @@ export const chartSetMixin = {
 
       sourceMap[this.chartInfo.Source]&&sourceMap[this.chartInfo.Source]()
 		},
-    // // 打开设置英文信息弹窗
-    // async openEnNameDia(){
-    //   this.formItemArray={}
-    //   this.formItemArray.chartInfo=[]
-    //   this.formItemArray.chartsList=[]
-    //   this.formItemArray.chartInfo.push({
-    //     label:/* '图表名称' */this.$t('Chart.Detail.chart_name'),
-    //     value:this.chartInfo.ChartName,
-    //     key:'ChartName',
-    //     id:this.chartInfo.ChartInfoId,
-    //     source: this.chartInfo.Source,
-    //     notEdit:true
-    //   },
-    //   {
-    //     label:/* '英文图表名称' */this.$t('Chart.Detail.chart_en_name'),
-    //     value:this.chartInfo.ChartNameEn,
-    //     key:'ChartNameEn',
-    //     id:this.chartInfo.ChartInfoId,
-    //     placeholder:/* '请输入英文图表名称' */this.$t('Chart.InputHolderAll.input_en_name')
-    //   })
-
-    //   if([1,2,5].includes(this.chartInfo.Source)){ //需要设置指标的
-    //     this.tableData.map(item =>{
-    //       if(item.Unit){
-    //         this.formItemArray.chartsList.push([
-    //           {
-    //             label:/* '指标名称' */this.$t('Edb.Detail.e_name'),
-    //             value:item.EdbName,
-    //             key:'EdbName',
-    //             id:item.EdbInfoId,
-    //             notEdit:true
-    //           },
-    //           {
-    //             label:/* '单位' */this.$t('Edb.Detail.e_unit'),
-    //             value:item.Unit,
-    //             key:'Unit',
-    //             id:item.EdbInfoId,
-    //             notEdit:true
-    //           },
-    //           {
-    //             label:/* '英文指标名称' */this.$t('Edb.Detail.e_en_name'),
-    //             value:item.EdbNameEn,
-    //             key:'EdbNameEn',
-    //             id:item.EdbInfoId,
-    //             placeholder:/* '请输入英文指标名称' */ this.$t('Edb.InputHolderAll.input_common',{label: this.$t('Edb.Detail.e_en_name')})
-    //           },
-    //           {
-    //             label:/* '英文单位' */this.$t('Edb.Detail.e_en_unit'),
-    //             value:item.UnitEn,
-    //             key:'UnitEn',
-    //             id:item.EdbInfoId,
-    //             placeholder:/* '请输入英文单位' */this.$t('Edb.InputHolderAll.input_common',{label: this.$t('Edb.Detail.e_en_unit')})
-    //           }
-    //         ])
-    //       }else{
-    //         this.formItemArray.chartsList.push([
-    //           {
-    //             label:/* '指标名称' */this.$t('Edb.Detail.e_name'),
-    //             value:item.EdbName,
-    //             key:'EdbName',
-    //             id:item.EdbInfoId,
-    //             notEdit:true
-    //           },
-    //           {
-    //             label:/* '英文指标名称' */this.$t('Edb.Detail.e_en_name'),
-    //             value:item.EdbNameEn,
-    //             key:'EdbNameEn',
-    //             id:item.EdbInfoId,
-    //             placeholder:this.$t('Edb.InputHolderAll.input_common',{label: this.$t('Edb.Detail.e_en_name')})
-    //           }
-    //         ])
-    //       }
-    //     })
-    //   }
-
-    //   //价格曲线
-    //   if(this.chartInfo.Source===2) {
-    //     this.formItemArray.chartInfo.push({
-    //       label:/* '期货名称' */this.$t('Chart.Detail.good_name'),
-    //       value:this.commodityEdbList[1].EdbName,
-    //       key:'FutureGoodName',
-    //       id:this.chartInfo.ChartInfoId,
-    //       notEdit:true
-    //     },
-    //     {
-    //       label:/* '英文期货名称' */this.$t('Chart.Detail.good_en_name'),
-    //       value:this.commodityEdbList[1].EdbNameEn,
-    //       key:'FutureGoodNameEn',
-    //       id:this.chartInfo.ChartInfoId,
-    //       placeholder:/* '请输入英文期货名称' */this.$t('Chart.InputHolderAll.input_common',{label:this.$t('Chart.Detail.good_en_name')})
-    //     })
-    //   }
-
-    //   //利润曲线
-    //   else if(this.chartInfo.Source===5) {
-    //     this.formItemArray.chartInfo.push({
-    //       label:/* '盘面利润名称' */this.$t('Chart.Detail.profit_name'),
-    //       value:this.chartInfo.ProfitName,
-    //       key:'ProfitName',
-    //       id:this.chartInfo.ChartInfoId,
-    //       notEdit:true
-    //     },
-    //     {
-    //       label:/* '英文盘面利润名称' */this.$t('Chart.Detail.profit_en_name'),
-    //       value:this.chartInfo.ProfitNameEn,
-    //       key:'ProfitNameEn',
-    //       id:this.chartInfo.ChartInfoId,
-    //       placeholder:/* '请输入英文盘面利润名称' */this.$t('Chart.InputHolderAll.input_common',{label:this.$t('Chart.Detail.profit_en_name')})
-    //     })
-    //   }
-
-    //   //跨品种分析
-    //   else if(this.chartInfo.Source===10) {
-    //     let { Data } = await crossVarietyInterface.chartLangOption({ChartInfoId: this.chartInfo.ChartInfoId})
-
-    //     const { TagList,VarietyList } = Data;
-
-    //     this.formItemArray.chartInfo.push({
-    //       label:/* 'X轴名称' */this.$t('Chart.Detail.x_name'),
-    //       value:this.crossVarietyChartData.XName,
-    //       key:'XName',
-    //       id:TagList[0].ChartTagId,
-    //       notEdit:true
-    //     },
-    //     {
-    //       label:/* '英文X轴名称' */this.$t('Chart.Detail.x_en_name'),
-    //       value:this.crossVarietyChartData.XNameEn,
-    //       key:'XNameEn',
-    //       id:TagList[0].ChartTagId,
-    //       placeholder:/* '请输入英文X轴名称' */this.$t('Chart.InputHolderAll.input_common',{label:this.$t('Chart.Detail.x_en_name')})
-    //     },{
-    //       label:/* 'Y轴名称' */this.$t('Chart.Detail.y_name'),
-    //       value:this.crossVarietyChartData.YName,
-    //       key:'YName',
-    //       id:TagList[1].ChartTagId,
-    //       notEdit:true
-    //     },
-    //     {
-    //       label:/* '英文Y轴名称' */this.$t('Chart.Detail.y_en_name'),
-    //       value:this.crossVarietyChartData.YNameEn,
-    //       key:'YNameEn',
-    //       id:TagList[1].ChartTagId,
-    //       placeholder:/* '请输入英文Y轴名称' */this.$t('Chart.InputHolderAll.input_common',{label:this.$t('Chart.Detail.y_en_name')})
-    //     })
-
-    //     VarietyList.forEach(item => {
-    //       this.formItemArray.chartsList.push([
-    //         {
-    //           label:/* '品种名称' */this.$t('Chart.Detail.variety_name'),
-    //           value:item.ChartVarietyName,
-    //           key:'ChartVarietyName',
-    //           id:item.ChartVarietyId,
-    //           notEdit:true
-    //         },
-    //         {
-    //           label:/* '英文品种名称' */this.$t('Chart.Detail.variety_en_name'),
-    //           value:item.ChartVarietyNameEn,
-    //           key:'ChartVarietyNameEn',
-    //           id:item.ChartVarietyId,
-    //           placeholder:/* '请输入英文品种名称' */this.$t('Chart.InputHolderAll.input_common',{label:this.$t('Chart.Detail.variety_en_name')})
-    //         }
-    //       ])
-    //     })
-    //   }
-
-
-    //   this.setEnName = true
-    // },
-    // // 更新英文信息
-    // async updateEnName(enNameData){
-    //   // console.log(enNameData)
-    //   let res=null
-    //   if([2,5].includes(this.chartInfo.Source)){//商品价格
-    //     res=await futuresInterface.editChartEn({
-    //       ChartInfoId: enNameData.ChartInfoId,
-    //       ChartNameEn: enNameData.ChartNameEn,
-    //       UnitEn: enNameData.ChartEdbInfoList[0].UnitEn || '',
-    //       EdbNameEn: enNameData.ChartEdbInfoList[0].EdbNameEn || '',
-    //       FutureGoodNameEn: enNameData.FutureGoodNameEn || '',
-    //       ProfitNameEn: enNameData.ProfitNameEn || ''
-    //     })
-    //   }else if(this.chartInfo.Source===3){//相关性
-    //     res=await chartRelevanceApi.editChartEn({
-    //       ChartInfoId: enNameData.ChartInfoId,
-    //       ChartNameEn: enNameData.ChartNameEn
-    //     })
-    //   }else if(this.chartInfo.Source===6){//拟合方程
-    //     res=await fittingEquationInterface.editChartEn({
-    //       ChartInfoId: enNameData.ChartInfoId,
-    //       ChartNameEn: enNameData.ChartNameEn
-    //     })
-    //   }else if([7,8,9].includes(this.chartInfo.Source)){//统计特征
-    //     res=await statisticFeatureInterface.editChartEn({
-    //       ChartInfoId: enNameData.ChartInfoId,
-    //       ChartNameEn: enNameData.ChartNameEn
-    //     })
-    //   }else if(this.chartInfo.Source === 10) {//跨品种分析
-    //     res=await crossVarietyInterface.editChartEn(enNameData)
-    //   }else{
-    //     res = await dataBaseInterface.chartInfoEditEn(enNameData)
-    //   }
-
-		// 	if(res.Ret !==200) return
-
-		// 	this.$message.success(this.$t('MsgPrompt.edit_msg'))
-    //   this.getChartInfo()
-		// 	this.setEnName = false
-    // },
 
     /* 打开编辑信息弹窗 */
     async openLangInfoDia() {

+ 0 - 1059
src/views/report_manage/addreportNew.vue

@@ -1,1059 +0,0 @@
-<template>
-	<div id="addreport">
-		<div 
-			id="leftfroala" 
-			:class="{'full':!isRightFormShow,'block':isRightFormShow}"
-			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="CNEditorConfig"
-				v-model="aeForm.content"
-			></froala>
-		</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.reportManageBtn.reportManage_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.reportManageBtn.reportManage_publish"
-						type="primary"
-						size="medium"
-						:disabled="checkLoading"
-						@click.native="clickreportadd('dsfb')"
-						>{{$t('ReportManage.ReportList.scheduled_publish_btn')}}</el-button
-					>
-					<el-button v-permission="permissionBtn.reportManageBtn.reportManage_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.reportManageBtn.reportManage_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 - 280px); overflow-y: auto"
-				>
-					<el-form
-						:model="aeForm"
-						:rules="aerules"
-						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"
-								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"
-								ref="cascader"
-								:options="optionsArr"
-								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 :label="$t('ReportManage.ReportList.abstract_ipt')">
-							<el-input
-								type="textarea"
-								:rows="2"
-								:placeholder="$t('ReportManage.CategoryList.please_input')"
-								v-model="aeForm.abstract"
-								size="medium"
-							></el-input>
-						</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="年度"></el-option>
-								<el-option :label="$t('ReportManage.smart_semi_annually')" value="半年度"></el-option>
-								<el-option :label="$t('ReportManage.smart_quarterly')" value="季度"></el-option>
-								<el-option :label="$t('ReportManage.smart_monthly')" value="月度"></el-option>
-								<el-option :label="$t('ReportManage.smart_bi_weekly')" value="双周度"></el-option>
-								<el-option :label="$t('ReportManage.smart_weekly')" value="周度"></el-option>
-								<el-option :label="$t('ReportManage.smart_daily')" value="日度"></el-option>
-								<el-option :label="$t('ReportManage.smart_irregularly')" value="不定时"></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)}">{{$t('ReportManage.ReportList.just_mine_radio')}}</el-checkbox>
-					</div>
-					<div
-						id="reportwin"
-						ref="chartListRef"
-						style="
-							height: calc(100vh - 370px);
-							overflow-x: hidden;
-							overflow-y: auto;
-						"
-						v-infinite-scroll="loadReportHandle"
-						:infinite-scroll-immediate="false"
-					>
-						<template v-if="newreportlist.length">
-							<div
-								v-for="(item, index) in newreportlist"
-								:key="item.ChartInfoId"
-								:style="item.Disabled && 'cursor: not-allowed;'"
-								class="liststy"
-							>
-								<p class="color_primary">{{ item.ChartName }}</p>
-								<img
-									:src="!item.HaveOperaAuth?$icons.lock_big:item.ChartImage"
-									:id="'listnode' + index"
-									@click="insertHtml(item)"
-								/>
-							</div>
-						</template>
-
-						<tableNoData :text="$t('ReportManage.ReportList.no_chart_table_available')" 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 - 370px);
-							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.HaveOperaAuth?$icons.lock_big: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"/>
-				</div>
-				<div v-if="tabsactive == '语义分析插入'">
-					<importSemantics @handleImportSemantic="(item)=>insertHtml(item,'image')"/>
-				</div>
-			</div>
-		</div>
-		<span
-			class="slide-icon slide-btn-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>
-
-		<!-- 定时发布弹窗 -->
-		<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="handleSetReportPrepublish">{{$t('Dialog.confirm_btn')}}</el-button>
-				</div>
-			</div>
-		</el-dialog>
-	</div>
-</template>
-
-<script>
-import {
-	autosave,
-	reportadd,
-	reportedit,
-	classifylist,
-	classifyIdDetail,
-	reportpublish,
-	reportauthor,
-	getDraft,
-	dataBaseInterface,
-	sandInterface,
-	reportSetPrepublish,
-	departInterence
-} from '@/api/api.js';
-import http from '@/api/http.js';
-import VueFroala from 'vue-froala-wysiwyg';
-import urlSlug from 'url-slug';
-import mixinMsg from './mixins/messagePush'
-import reportMixin from './mixins/reportMixin';
-import reportApproveConfig from "@/mixins/reportApproveConfig.js"
-import importMyChart from './components/importMyChart.vue'
-import importSemantics from './components/importSemantics.vue';
-export default {
-	mixins:[mixinMsg,reportMixin,reportApproveConfig],
-	data() {
-		var that = this;
-		return {
-			//批量导入图表
-			importChartNum:0,//批量导入图表的数量 如果大于0则说明在加载
-			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: ['投研团队'],
-				frequency: '日度',
-				create_time: http.dateFormatter(new Date(), false).replace(/\./g,'-'),
-				content: '',
-			},
-			aerules: {
-				add_type: [
-					{
-						required: true,
-						message: '',
-						trigger: 'blur',
-					},
-				],
-				classifynameArr: [
-					{
-						required: true,
-						message: '',
-						trigger: 'blur',
-					},
-				],
-				title: [
-					{
-						required: true,
-						message: '请输入',
-						trigger: 'blur',
-					},
-				],
-			},
-			lastEditRange: null,
-			report_draft_id: 0,
-			waterMarkStr:''
-		};
-	},
-	mounted() {
-		this.getclassifylist();
-		this.getreportlist('');
-		this.getreportauthor();
-		this.getSandTable();
-		this.getSheetList();
-		this.getSystemUserInfo()
-		this.timer = setInterval(() => {
-			this.autoSave();
-		}, 6000);
-
-		window.addEventListener('message',this.reInitIframe)
-	},
-	destroyed() {
-		window.removeEventListener('message',this.reInitIframe)
-		if (this.timer) {
-			clearInterval(this.timer);
-		}
-	},
-	updated() {
-		$('#leftfroala').find('p').css({ fontSize: '16px',width:'100%' });
-		$('#leftfroala').find('p strong span').css({ fontSize: '16px' });
-		$('#leftfroala')
-			.find('.fr-placeholder')
-			.css({ fontSize: '16px', lineHeight: '25.6px' });
-	},
-	methods: {
-		// 每十秒自动保存
-		autoSave() {
-			console.log(this.ischange,this.autoSaveFlag);
-			if (this.report_draft_id&&this.autoSaveFlag) {
-				//如果富文本中有未上传完成的图片,去除这个dom
-				$('.fr-element').find('img.fr-uploading').length&&$('.fr-element').find('img.fr-uploading').remove()
-				autosave({
-					ReportId: Number(this.report_draft_id),
-					Content: $('.fr-element').html(),
-					NoChange:this.ischange?0:1
-				}).then((res) => {
-					if (res.Ret === 200) {
-						this.report_id = res.Data.ReportId;
-						this.lastsavetime = http.dateFormatter(new Date(), true);
-					}
-				});
-				this.ischange = false;
-			}
-		},
-		getDrafts() {
-			getDraft({}).then((res) => {
-				if (res.Ret == 200) {
-					this.report_draft_id = res.Data.Id;
-					this.aeForm = {
-						classifynameArr:
-							res.Data.ClassifyIdSecond && res.Data.ClassifyNameSecond
-								? [
-										JSON.stringify({
-											l: res.Data.ClassifyNameFirst,
-											v: parseInt(res.Data.ClassifyIdFirst),
-										}),
-										JSON.stringify({
-											l: res.Data.ClassifyNameSecond,
-											v: parseInt(res.Data.ClassifyIdSecond),
-										}),
-									]
-								: [
-										JSON.stringify({
-											l: res.Data.ClassifyNameFirst,
-											v: parseInt(res.Data.ClassifyIdFirst),
-										}),
-								  ],
-						title: res.Data.Title,
-						abstract: res.Data.Abstract,
-						author: res.Data.Author ? res.Data.Author.split(',') : '',
-						frequency: res.Data.Frequency,
-						content: res.Data.Content,
-					};
-					let classify = this.aeForm.classifynameArr.map(i=>{
-						return JSON.parse(i).v||0
-					})
-					this.checkClassifyNameArr(1,classify)
-				}
-			});
-		},
-		getreportauthor() {
-			reportauthor({}).then((res) => {
-				if (res.Ret == 200) {
-					this.authorlist = res.Data.List || [];
-				}
-			});
-		},
-		userclassidreportdetail() {
-			//检查classifynameArr是否有审批流
-			let classify = this.aeForm.classifynameArr.map(i=>{
-				return JSON.parse(i).v||0
-			})
-			this.checkClassifyNameArr(1,classify)
-
-			if (this.aeForm.add_type == 1) {
-				if (this.aeForm.classifynameArr.length == 2) {
-					this.aeForm.title = JSON.parse(this.aeForm.classifynameArr[1]).l;
-				}
-				return false;
-			}
-			if (this.aeForm.classifynameArr.length == 0) {
-				return false;
-			}
-			let params = {
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[0]).v,
-			};
-			if (this.aeForm.classifynameArr.length == 2) {
-				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
-				).v;
-			} else {
-				params.ClassifyIdSecond = 0;
-			}
-			classifyIdDetail(params).then((res) => {
-				if (res.Ret == 200) {
-					if (res.Data == null) {
-						this.$message.error(this.$t('ReportManage.ReportList.no_reports_msg'));
-						return false;
-					}
-					let obj=JSON.parse(JSON.stringify(this.aeForm.classifynameArr))
-					this.aeForm = {
-						add_type: 2,
-						classify_name: 1,
-						classifynameArr:obj,
-						title: res.Data.Title,
-						abstract: res.Data.Abstract,
-						author: res.Data.Author ? res.Data.Author.split(',') : '',
-						frequency: res.Data.Frequency,
-						create_time:
-							this.aeForm.add_type == 2
-								? http.dateFormatter(new Date(), false)
-								: res.Data.CreateTime,
-						content: res.Data.Content,
-					};
-				}
-			});
-		},
-		clickreportadd(tp) {
-			console.log(this.aeForm.classifynameArr);
-			if (
-				!this.aeForm.classifynameArr ||
-				this.aeForm.classifynameArr.length == 0
-			) {
-				this.$message.error(this.$t('ReportManage.ReportList.please_select_category'));
-				return false;
-			}
-			if (!this.aeForm.title) {
-				this.$message.error(this.$t('ReportManage.ReportList.input_title_please'));
-				return false;
-			}
-			if(!this.autoSaveFlag){
-				this.$message.error(this.$t('ReportManage.smart_msg.img_wait'))
-				return false
-			}
-			//如果富文本中有未上传完成的图片,去除这个dom
-			$('.fr-element').find('img.fr-uploading').length&&$('.fr-element').find('img.fr-uploading').remove()
-			let params = {
-				AddType: this.aeForm.add_type,
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[0]).v,
-				ClassifyNameFirst: JSON.parse(this.aeForm.classifynameArr[0]).l,
-				Title: this.aeForm.title,
-				Abstract: this.aeForm.abstract,
-				Author:
-					this.aeForm.author.length > 0
-						? this.aeForm.author.join(',')
-						: '',
-				Frequency: this.aeForm.frequency,
-				// content:this.aeForm.content,create_time:this.aeForm.create_time
-				Content: $('.fr-element').html(),
-				CreateTime: this.aeForm.create_time,
-				ReportVersion: 2
-			};
-
-			if (this.aeForm.classifynameArr.length == 2) {
-				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
-				).v;
-				params.ClassifyNameSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
-				).l;
-			}
-			params.State = 1;
-			if (tp == 'yl') {
-				sessionStorage.setItem('reportdtl', JSON.stringify(params));
-				let { href } = this.$router.resolve({ name: '预览报告' });
-				window.open(href, '_blank');
-				return false;
-			}
-			if (tp == 'fb'||tp == 'submit') {
-				this.isPublishloading = true;
-			}
-			const isPost = this.permissionBtn.checkPermissionBtn(this.permissionBtn.reportManageBtn.reportManage_sendMsg)&&(!this.isApprove)
-			// 如果已经添加过就修改 否则新增
-			if (this.isAddEnter) {
-				let params2 = {
-					ReportId: Number(this.report_draft_id),
-					State: 1,
-					AddType: this.aeForm.add_type,
-					ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[0]).v,
-					ClassifyNameFirst: JSON.parse(this.aeForm.classifynameArr[0]).l,
-					Title: this.aeForm.title,
-					Abstract: this.aeForm.abstract,
-					Author:
-						this.aeForm.author.length > 0
-							? this.aeForm.author.join(',')
-							: '',
-					Frequency: this.aeForm.frequency,
-					// content:this.aeForm.content,
-					Content: $('.fr-element').html(),
-					CreateTime: this.aeForm.create_time,
-				};
-				if (this.aeForm.classifynameArr.length == 2) {
-					params2.ClassifyIdSecond = JSON.parse(
-						this.aeForm.classifynameArr[1]
-					).v;
-					params2.ClassifyNameSecond = JSON.parse(
-						this.aeForm.classifynameArr[1]
-					).l;
-				}
-				if(tp=='fb') {   
-					const hasTel=this.aeForm.classifynameArr.length == 2?JSON.parse(this.aeForm.classifynameArr[1]).HasTeleconference:JSON.parse(this.aeForm.classifynameArr[0]).HasTeleconference
-					if(hasTel==1){
-						this.isMessagePost = false; 
-						this.reporteditMsg(params2,tp)
-					}else if(isPost){
-						this.$confirm(this.$t('ReportManage.smart_msg.publishing_messages'), this.$t('ReportManage.smart_release_prompt_btn'), {
-								confirmButtonText: this.$t('ReportManage.smart_btn.push'),
-								cancelButtonText: this.$t('ReportManage.smart_btn.not_push'),
-								type: 'warning',
-								distinguishCancelAndClose:true,
-								beforeClose:(action, instance,done)=>{
-									if(action=='close') {
-										//右上角
-										this.isPublishloading = false;
-									} else if(action=='cancel') {
-										//cancelButton
-										this.isMessagePost = false; 
-										this.reporteditMsg(params2,tp)
-									}else {
-										//confirmButton
-										this.isMessagePost = true; 
-										this.reporteditMsg(params2,tp)
-									}
-									done()
-								}
-						})
-					}else{
-						this.isMessagePost = false;
-						this.reporteditMsg(params2,tp)
-					}
-					
-				}else {
-					this.reporteditMsg(params2,tp)
-				}
-				
-			} else {
-				if(tp=='fb') {
-					const hasTel=this.aeForm.classifynameArr.length == 2?JSON.parse(this.aeForm.classifynameArr[1]).HasTeleconference:JSON.parse(this.aeForm.classifynameArr[0]).HasTeleconference
-					if(hasTel==1){
-						this.isMessagePost = false; 
-						this.reportaddMsg(params,tp)
-					}else if(isPost){
-						this.$confirm(this.$t('ReportManage.smart_msg.publishing_messages'), this.$t('ReportManage.smart_release_prompt_btn'), {
-								confirmButtonText: this.$t('ReportManage.smart_btn.push'),
-								cancelButtonText:  this.$t('ReportManage.smart_btn.not_push'),
-								type: 'warning',
-								distinguishCancelAndClose:true,
-								beforeClose:(action, instance,done)=>{
-									console.log(action, instance);
-									if(action==='close') {
-										//右上角
-										this.isPublishloading = false;
-									} else if(action==='cancel') {
-										//cancelButton
-										this.isMessagePost = false; 
-										this.reportaddMsg(params,tp)
-									}else {
-									//confirmButton
-										this.isMessagePost = true; 
-										this.reportaddMsg(params,tp)
-									}
-									done()
-								}
-						})
-					}else{
-						this.isMessagePost = false;
-						this.reportaddMsg(params,tp)
-					}
-						
-				}else {
-					this.reportaddMsg(params,tp)
-				}
-			}
-		},
-		publishreport(id,code) {
-			//发布报告
-			reportpublish({ ReportIds: String(id) ,ReportUrl:this.generatePdfLinks(code)}).then((res) => {
-				if (res.Ret == 200) {
-					this.isPublishloading = false;
-					this.$router.push({ path: '/reportlist' });
-				}
-			});
-		},
-		generatePdfLinks(Code){
-			const baseUrl= localStorage.getItem('dynamicOutLinks') ? JSON.parse(localStorage.getItem('dynamicOutLinks')).ReportViewUrl : '';
-			return `${baseUrl}/reportshare_pdf?code=${Code}&flag=${this.waterMarkStr}`
-		},
-		// 定时发布报告
-		handleSetReportPrepublish(){
-			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
-			}
-			const isPost = this.permissionBtn.checkPermissionBtn(this.permissionBtn.reportManageBtn.reportManage_sendMsg)
-			this.$confirm(isPost?this.$t('ReportManage.smart_msg.push_report_msg'):this.$t('ReportManage.smart_msg.is_push_timed'), this.$t('ReportManage.smart_release_prompt_btn'), {
-				confirmButtonText: isPost?this.$t('ReportManage.smart_btn.push'):this.$t('ReportManage.smart_btn.publish'),
-				cancelButtonText: isPost?this.$t('ReportManage.smart_btn.not_push'):this.$t('Dialog.cancel_btn'),
-				type: 'warning',
-				distinguishCancelAndClose:true,
-				beforeClose:(action, instance,done)=>{
-					console.log(action, instance);
-					if(action==='close'||action==='cancel') {
-						if(isPost) {
-							//右上角或者不推送
-							reportSetPrepublish({
-								ReportId:Number(this.report_draft_id),
-								PrePublishTime:this.taskTime,
-								PreMsgSend:0,
-								ReportUrl:this.generatePdfLinks(this.reportCode)
-							}).then(res=>{
-								if(res.Ret===200){
-									this.$message.success(this.$t('ReportManage.smart_msg.timed_success'))
-									this.$router.push({ path: '/reportlist' });
-								}
-							})
-						}
-					} else {
-						//confirmButton
-						reportSetPrepublish({
-							ReportId:Number(this.report_draft_id),
-							PrePublishTime:this.taskTime,
-							PreMsgSend:isPost?1:0,
-							ReportUrl:this.generatePdfLinks(this.reportCode)
-						}).then(res=>{
-							if(res.Ret===200){
-								this.$message.success(this.$t('ReportManage.smart_msg.timed_success'))
-								this.$router.push({ path: '/reportlist' });
-							}
-						})
-					}
-					done()
-				}
-			})
-
-		},
-		//批量插入我的图表
-		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';
-			
-			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}&lang=${this.currentLang}' 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--
-				}
-			})
-		},
-
-		// 获取沙盘图列表 分页
-		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 = { Enabled:1, KeyWord: '',HideDayWeek:1,/*不显示晨报/周报*/ };
-			classifylist(params).then((res) => {
-				if (res.Ret == 200 && Array.isArray(res.Data.List)) {
-					this.optionsArr = [];
-					res.Data.List.forEach((item, index) => {
-						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);
-					});
-					console.log(this.optionsArr);
-				}
-			});
-		},
-		getSystemUserInfo(){
-      departInterence.systemUserInfo().then(res=>{
-        if(res.Ret===200){
-          const systemUserInfo=res.Data
-          // 设置水印文案
-          let waterMarkString=''
-          if(systemUserInfo){
-            waterMarkString=`${systemUserInfo.RealName}${systemUserInfo.Mobile?systemUserInfo.Mobile:systemUserInfo.Email}`
-            waterMarkString=encodeURIComponent(waterMarkString)
-            this.waterMarkStr=Base64.encode(waterMarkString)
-          }
-        }
-      })
-    },
-	},
-	components: {importMyChart,importSemantics},
-	watch: {
-		'aeForm.add_type'(to, from) {
-			if (from == 2 && to == 1) {
-				this.aeForm = {
-					add_type: 1,
-					classify_name: 1,
-					classifynameArr: [],
-					title: '',
-					abstract: '',
-					author: ['投研团队'],
-					frequency: this.$t('ReportManage.smart_daily'),
-					create_time: http.dateFormatter(new Date(), false),
-					content: '',
-				};
-			}
-		},
-		'sandTabelQuery.Keyword'(newval,oldval){
-			this.$refs.sandTable.scrollTop=0
-			this.sandTabelQuery.CurrentIndex = 1
-			this.getSandTable()
-		}
-	},
-};
-</script>
-
-<style scoped lang="scss">
-#addreport {
-	display: flex;
-	overflow: hidden;
-	#leftfroala {
-		flex: 1;
-		overflow: hidden;
-		&.full{
-			max-width: calc(100vw - 200px - 60px);
-		}
-		&.block{
-			max-width: calc(100vw - 200px - 60px - 500px);
-		}
-	}
-	#rightitems {
-		width: 500px;
-		flex: 500px 0 0;
-		overflow: hidden;
-		position: fixed;
-		right: 30px;
-		#tabs {
-			padding: 0px 20px;
-			box-sizing: border-box;
-			margin-bottom: 15px;
-			overflow: hidden;
-			> p {
-				/* display: inline-block; */
-				float: left;
-				// width: 50%;
-				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: 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;
-		}
-	}
-	.slide-icon {
-		cursor: pointer;
-		position: fixed;
-		top: 50%;
-		transform: translateY(-50%);
-		z-index: 99;
-		&:hover {
-			background-color: #e0e0e0;
-		}
-		&.slide-left {
-			right: 30px;
-		}
-		&.slide-right {
-			right: 500px;
-		}
-	}
-}
-</style>
-<style lang="scss">
-#addreport {
-	.el-tabs__nav-wrap::after {
-		height: 0;
-	}
-	.el-tabs__item { font-size: 16px; }
-}	
-</style>

+ 0 - 447
src/views/report_manage/dayOrWeek.vue

@@ -1,447 +0,0 @@
-<template>
-    <div class="morning-week-page">
-        <el-form :model="form" :rules="rules" label-width="110px" ref="form" class="form-wrap">
-            <section class="section flex">
-                <el-form-item :label="$t('ReportManage.smart_report_type')" prop="type" style="width:50%">
-                    <el-select :disabled="$route.query.isEdit" v-model="form.type" @change="typeChange" :placeholder="$t('ReportManage.ReportList.please_report_type_select')" style="width:80%">
-                        <el-option :label="$t('ReportManage.smart_btn.weekly')" :value="'week'"></el-option>
-                        <el-option :label="$t('ReportManage.smart_btn.morning_paper')" :value="'day'"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item :label="$t('ReportManage.smart_report_title')" prop="title" style="width:50%">
-                    <el-input :placeholder="$t('ReportManage.ReportList.please_report_title_input')" v-model="form.title" style="width:80%"></el-input>
-                </el-form-item>
-                <el-form-item :label="$t('ReportManage.smart_publish_time')" prop="time" style="width:50%">
-                    <el-date-picker
-                        v-model="form.time"
-                        type="date"
-                        :placeholder="$t('ReportManage.ReportList.select_date')"
-                        style="width:80%"
-                        format="yyyy-MM-dd"
-                        value-format="yyyy-MM-dd">
-                    </el-date-picker>
-                </el-form-item>
-                <el-form-item :label="$t('ReportManage.ReportList.author_select')" prop="auth" style="width:50%">
-                    <el-input :placeholder="$t('ReportManage.ReportList.author_select_ipt')" v-model="form.auth" style="width:80%"></el-input>
-                </el-form-item>
-                <div v-if="!$route.query.isEdit">
-                    <el-button type="primary" plain @click="$router.go(-1)">{{$t('Dialog.cancel_btn')}}</el-button>
-                    <el-button type="primary" @click="handleSave">{{$t('Dialog.confirm_save_btn')}}</el-button>
-                </div>
-            </section>
-            <section class="section" v-if="$route.query.isEdit">
-                <div style="font-size:16px;margin-bottom:20px">{{$t('ReportManage.ReportList.chapter_list_label')}}</div>
-                <div class="list-box">
-                    <div class="list-item" v-for="(item,index) in list" :key="item.ReportChapterId">
-                        <div class="item-image-box">
-                            <img :src="item.TypeEditImg" alt="" @click="goEditChapterReport(item)">
-                            <p>{{item.TypeName}}</p>
-                        </div>
-                        <div style="border-bottom:1px solid #ededed;padding-bottom:5px;margin-bottom:5px">{{item.TypeName}}</div>
-                        <div class="bot">
-                            <p>
-                                <span :style="{color:item.PublishState==2&&'#67C23A'}">{{item.PublishState==1? $t('ReportManage.smart_unpublished') : $t('ReportManage.smart_published') }}</span>
-                                <span style="float:right;color:#4099ef;cursor: pointer;" @click.stop="handleShowEditTag(item)">{{item.Trend||$t('ReportManage.ReportList.add_labels_section')}}</span>
-                            </p>
-                            <p style="margin-top:5px">
-                                <span :style="{color:item.VideoUrl&&item.VideoKind==1?'#67C23A':''}" v-if="form.type=='week'">{{item.VideoUrl&&item.VideoKind==1? $t('ReportManage.ReportList.recorded_audio'):$t('ReportManage.ReportList.not_recorded_audio')}}</span>
-                                <el-popover
-                                    placement="bottom"
-                                    trigger="click"
-                                >   
-                                    <img style="width:150px" :src="item.QRCodeImg" alt="">
-                                    <span 
-                                        slot="reference" 
-                                        style="float:right;color:#4099ef;cursor: pointer;" 
-                                        v-if="item.PublishState==2" 
-                                        @click="handleGetWechatImg(item,index)"
-                                    >{{$t('ReportManage.ReportList.weChat_share')}}</span>
-                                </el-popover>
-                            </p>
-                            <p style="margin-top:5px"><span>{{item.ModifyTime}}</span></p>
-                        </div>
-                    </div>
-                </div>
-                <div>
-                    <el-button type="primary" style="width:120px" @click="handleEditDayWeekReport">{{$t('Dialog.confirm_save_btn')}}</el-button>
-                    <el-button v-if="permissionBtn.checkPermissionBtn(permissionBtn.reportManageBtn.reportManage_publish)"
-                        type="primary" style="width:120px" @click="handlePublishValid">{{$t('ReportManage.ReportList.publish_btn')}}</el-button>
-                </div>
-            </section>
-        </el-form>
-
-      <!-- 章节标签 -->
-      <el-dialog
-        :visible.sync="editTag.show"
-		:modal-append-to-body='false'
-		width="400px"
-        :title="$t('ReportManage.ReportList.set_tags_title')"
-        v-dialogDrag
-      >
-        <div class="edit-tag-wrap">
-            <span>{{editTag.type}}</span>
-            <el-select
-                v-model="editTag.text"
-                filterable
-                allow-create
-                default-first-option
-                :placeholder="$t('ReportManage.ReportList.select_ipt_pld')">
-                <el-option
-                    v-for="item in TagOptions"
-                    :key="item.value"
-                    :label="item.label"
-                    :value="item.value">
-                </el-option>
-            </el-select>
-            <div style="margin:30px 0;text-align:center">
-                <el-button type="primary" plain @click="editTag.show=false">{{$t('Dialog.cancel_btn')}}</el-button>
-                <el-button type="primary" @click="handleEditTrendTag">{{$t('Dialog.confirm_btn')}}</el-button>
-            </div>
-        </div>
-      </el-dialog>
-    </div>
-</template>
-<script>
-import moment from 'moment'
-import {
-    dayWeekChapterList,
-    addDayWeekReport,
-    chapterTrendTagList,
-    editChapterTrendTag,
-    editDayWeekReport,
-    publishDayOrWeekReport,
-    messagePushPost,
-    chapterQRCodeImg,
-    reportMessageSend,
-    weekReportValidAudio
-} from '@/api/api.js'
-export default {
-    beforeRouteEnter(to, from, next) {
-        if(to.query.type){
-            to.matched[1].name=`编辑${to.query.type=='day'?'晨报':'周报'}`
-        }else{
-            to.matched[1].name='添加晨报/周报'
-        }
-        next()
-    },
-    data () {
-        return {
-            form:{
-                type:'',
-                title:'',
-                time:'',
-                auth:''
-            },
-            
-            list:[],
-            reportId:this.$route.query.reportid||'',
-            isEdit:this.$route.query.isEdit,
-            editTag:{
-                show:false,
-                ReportChapterId:0,
-                text:'',
-                type:''//编辑的章节名称
-            },//编辑标签
-            TagOptions:[]
-        }
-    },
-    computed:{
-        rules(){
-           return {
-                type:[{required:true,message:this.$t('ReportManage.ReportList.please_report_type_select'),trigger:'change'}],
-                title:[{required:true,message:this.$t('ReportManage.ReportList.please_report_title_input'),trigger:'blur'}],
-                time:[{required:true,message:this.$t('ReportManage.ReportList.please_select_date'),trigger:'change'}]
-            } 
-        }
-    },
-    created () {
-        if(this.reportId){
-            this.getChapterList(this.reportId)
-            const data=JSON.parse(sessionStorage.getItem('dayWeek'))
-            this.form.type=data.ChapterType
-            this.form.title=data.Title
-            this.form.time=moment(data.CreateTime).format('YYYY-MM-DD')
-            this.form.auth=data.Author
-        }  
-    },
-    methods:{
-        typeChange(){
-            this.form.title=`【弘则FICC${this.form.type=='day'?'晨报':'周报'}】`
-            this.form.time=moment().format('YYYY-MM-DD')
-            this.form.auth='弘则研究'
-        },
-        
-        //保存
-        handleSave(){
-            this.$refs.form.validate((valid)=>{
-                if(valid){
-                    addDayWeekReport({
-                        Title:this.form.title,
-                        ReportType:this.form.type,
-                        CreateTime:this.form.time,
-                        Author:this.form.auth
-                    }).then(res=>{
-                        if(res.Ret===200){
-                            this.reportId=res.Data.ReportId
-                            this.getChapterList(res.Data.ReportId)
-                            const formData={
-                                ChapterType:this.form.type,
-                                Title:this.form.title,
-                                CreateTime:this.form.time,
-                                Author:this.form.auth
-                            }
-                            sessionStorage.setItem('dayWeek',JSON.stringify(formData))
-                            this.$router.replace({
-                                query:{
-                                    reportid:res.Data.ReportId,
-                                    isEdit:true,
-                                    type:this.form.type
-                                }
-                            })
-                        }
-                    })
-                }
-            })
-        },
-
-        // 获取章节列表
-        async getChapterList(reportId){
-            const res=await dayWeekChapterList({ReportId:reportId})
-            if(res.Ret===200){
-                this.list=res.Data
-                this.getChapterTrendTagList()
-            }
-        },
-
-        //获取章节标签数据(仅在获取章节列表成功后获取一次)
-        async getChapterTrendTagList(){
-            const res=await chapterTrendTagList()
-            if(res.Ret===200){
-                let arr=res.Data||[]
-                this.TagOptions=arr.map(item=>{
-                    return {value:item.KeyWord,label:item.KeyWord}
-                })
-            }
-        },
-
-        // 点击修改标签
-        handleShowEditTag(item){
-            this.editTag={
-                show:true,
-                ReportChapterId:item.ReportChapterId,
-                text:item.Trend,
-                type:item.TypeName
-            }
-        },
-
-        //确定修改标签
-        async handleEditTrendTag(){
-            const res=await editChapterTrendTag({
-                ReportChapterId:Number(this.editTag.ReportChapterId),
-                Trend:this.editTag.text
-            })
-            if(res.Ret===200){
-                this.$message.success('修改成功')
-                this.editTag.show=false
-                this.getChapterList(this.reportId)
-            }
-        },
-
-        //修改晨报周报
-        async handleEditDayWeekReport(){
-            this.$refs.form.validate((valid)=>{
-                if(valid){
-                    editDayWeekReport({
-                        ReportId:Number(this.reportId),
-                        Title:this.form.title,
-                        ReportType:this.form.type,
-                        CreateTime:this.form.time,
-                        Author:this.form.auth
-                    }).then(res=>{
-                        if(res.Ret===200){
-                            this.$message.success(this.$t('MsgPrompt.saved_msg'))
-                        }
-                    })
-                }
-            })
-        },
-
-        //前往编辑章节详情
-        goEditChapterReport(item){
-            this.$router.push({
-                path:'/editchapterreport',
-                query:{
-                    id:item.ReportChapterId,
-                    type:item.ReportType,
-                    typename:item.TypeName
-                }
-            })
-        },
-
-        //周报校验音频是否都上传了
-        async handlePublishValid(){
-            if(this.form.type==='week'){
-                const validRes=await weekReportValidAudio({ReportId:Number(this.reportId)})
-                if(validRes.Ret===200){
-                    if(validRes.Data){
-                        this.$confirm(`${this.$t('ReportManage.smart_msg.report_recording')}${validRes.Data.join('、')},${this.$t('ReportManage.smart_msg.publish_it')}`, this.$t('ReportManage.smart_release_prompt_btn'), {
-                            confirmButtonText:  this.$t('Dialog.confirm_btn'),
-                            cancelButtonText: this.$t('Dialog.cancel_btn'),
-                            type: 'warning'
-                        }).then(()=>{
-                            this.handlePublishReport()
-                        }).catch(()=>{})
-                    }else{
-                        this.handlePublishReport()
-                    }
-                    
-                }
-                return
-            }else{
-                this.handlePublishReport()
-            }
-        },
-
-        //发布报告 晨报提示是否推送客群
-        async handlePublishReport(){
-            const res=await publishDayOrWeekReport({
-                ReportId:Number(this.reportId)
-            })
-            if(res.Ret===200){
-                if(this.form.type=='day'){
-                    if(res.Data){
-                        this.$alert(res.Data, this.$t('ReportManage.smart_release_prompt_btn'), {
-                            confirmButtonText: '确定',
-                            callback: action => {
-                                this.$confirm(this.$t('ReportManage.smart_msg.publishing_is_push'), this.$t('ReportManage.smart_release_prompt_btn'), {
-                                    confirmButtonText: this.$t('ReportManage.smart_btn.push'),
-								    cancelButtonText: this.$t('ReportManage.smart_btn.not_push'),
-                                    type: 'warning'
-                                }).then(async ()=>{
-                                    const pushRes=await reportMessageSend({ReportId:this.reportId})
-                                    if(pushRes.Ret===200){
-                                        this.$message.success(this.$t('ReportManage.smart_msg.push_success'))
-                                        setTimeout(() => {
-                                            this.$router.go(-1)
-                                        }, 1500);
-                                    }
-                                }).catch(()=>{
-                                    this.$message.success(this.$t('MsgPrompt.publish_msg'))
-                                    setTimeout(() => {
-                                        this.$router.go(-1)
-                                    }, 1500);
-                                })
-                            }
-                        });
-                    }else{
-                        this.$confirm(this.$t('ReportManage.smart_msg.publishing_is_push'), this.$t('ReportManage.smart_release_prompt_btn'), {
-                            confirmButtonText: this.$t('ReportManage.smart_btn.push'),
-							cancelButtonText: this.$t('ReportManage.smart_btn.not_push'),
-                            type: 'warning'
-                        }).then(async ()=>{
-                            const pushRes=await reportMessageSend({ReportId:this.reportId})
-                            if(pushRes.Ret===200){
-                                this.$message.success(this.$t('ReportManage.smart_msg.push_success'))
-                                setTimeout(() => {
-                                    this.$router.go(-1)
-                                }, 1500);
-                            }
-                        }).catch(()=>{
-                            this.$message.success(this.$t('MsgPrompt.publish_msg'))
-                            setTimeout(() => {
-                                this.$router.go(-1)
-                            }, 1500);
-                        })
-                    }
-
-                    
-
-
-                }else{
-                    this.$message.success(this.$t('MsgPrompt.publish_msg'))
-                    setTimeout(() => {
-                        this.$router.go(-1)
-                    }, 1500);
-                }
-            }
-
-        },
-
-        //获取章节太阳码
-        async handleGetWechatImg(item,index){
-            // 如果存在则不请求
-            if(item.QRCodeImg) return
-            const res=await chapterQRCodeImg({
-                CodeScene:JSON.stringify({chapterId:item.ReportChapterId.toString()}),
-                CodePage:'pages-report/chapterDetail'
-            })
-            if(res.Ret===200){
-                this.$set(this.list,index,{...item,QRCodeImg:res.Data})
-            }
-        }
-
-    }
-}
-</script>
-
-<style lang="scss" scoped>
-// .el-row{
-//     flex-wrap: wrap;
-// }
-.morning-week-page{
-    .section{
-        background: #FFFFFF;
-        border-radius: 4px;
-        border: 1px solid #ECECEC;
-        padding: 20px 30px;
-        margin-bottom: 30px;
-    }
-    .flex{
-        display: flex;
-        flex-wrap: wrap;
-    }
-    .list-box{
-    display: flex;
-    // align-items: center;
-    flex-wrap: wrap;
-    // justify-content: space-between;
-    margin-left: -20px;
-        .list-item{
-            margin-left: 20px;
-            padding: 10px;
-            border-radius: 4px;
-            margin-bottom: 20px;
-            border: 1px solid #ECECEC;
-            width: 160px;
-            // flex: 1;
-            .item-image-box{
-                position: relative;
-                width: 160px;
-                height: 160px;
-                margin: 0 auto;
-                img{
-                    width: 100%;
-                    display: block;
-                    height: 160px;
-                    background-color: gray;
-                }
-                p{
-                    // white-space: nowrap;
-                    word-break: break-all;
-                    font-size: 20px;
-                    color: white;
-                    font-weight: bolder;
-                    position: absolute;
-                    top: 50%;
-                    left: 50%;
-                    transform: translateX(-50%) translateY(-50%);
-                    cursor:default;
-                    pointer-events: none;
-                    min-width: 100%;
-                    text-align: center;
-                }
-            }
-        }
-    }
-}
-</style>

+ 0 - 997
src/views/report_manage/editChapterReport.vue

@@ -1,997 +0,0 @@
-<template>
-  <div id="editreport">
-    <div
-      id="leftfroala"
-      :class="{'full':!isRightFormShow,'block':isRightFormShow}"
-      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="CNEditorConfig"
-        v-model="aeForm.content"
-      ></froala>
-    </div>
-    <div id="rightitems" v-show="isRightFormShow">
-      <div
-        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
-          type="primary"
-          size="medium"
-          plain
-          @click.native="handlePreviewReport"
-          >{{$t('ReportManage.ReportList.preview_btn')}}</el-button
-        >
-        <el-button
-          type="primary"
-          size="medium"
-          plain
-          @click.native="autoSave('cg')"
-          >{{$t('ReportManage.ReportList.save_draft_btn')}}</el-button
-        >
-        <el-button
-          type="primary"
-          size="medium"
-          @click.native="handlePublishReport"
-          :loading="isPublishloading"
-          >{{$t('ReportManage.ReportList.publish_btn')}}</el-button
-        >
-      </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 - 280px); overflow-y: auto"
-        >
-          <el-form
-            :model="aeForm"
-            :rules="aerules"
-            ref="aeForm"
-            label-position="right"
-            label-width="90px"
-            class="demo-aeForm"
-            id="login-container"
-            @submit.native.prevent
-          >
-            <el-form-item prop="type" :label="$t('ReportManage.CategoryList.form_product_option')">
-              <el-input v-model="aeForm.type" size="medium" disabled></el-input>
-            </el-form-item>
-            <el-form-item prop="title" :label="$t('ReportManage.ReportList.title_ipt')">
-              <el-input
-                v-model="aeForm.title"
-                size="medium"
-                :placeholder="$t('ReportManage.ReportList.input_title_please')"
-              ></el-input>
-            </el-form-item>
-            <el-form-item prop="addType" :label="$t('ReportManage.ReportList.new_method_btn')">
-              <el-select
-                v-model="aeForm.addType"
-                :placeholder="$t('ReportManage.CategoryList.please_select')"
-                @change="handleAddTypeChange"
-                size="medium"
-                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="ticket"
-              :label="$t('ReportManage.ReportList.display_metrics_lable')"
-              v-if="$route.query.type == 'day'"
-            >
-              <el-select
-                v-model="aeForm.ticket"
-                :placeholder="$t('ReportManage.CategoryList.please_select')"
-                multiple
-                collapse-tags
-                size="medium"
-                style="width: 270px"
-              >
-                <el-option
-                  v-for="item in ticketList"
-                  :key="item.BaseColumnTicker"
-                  :label="item.BaseColumnName"
-                  :value="item.BaseColumnTicker"
-                ></el-option>
-              </el-select>
-            </el-form-item>
-            <el-form-item prop="author" :label="$t('ReportManage.smart_creator_btn')">
-              <el-input :placeholder="$t('ReportManage.CategoryList.please_input')" v-model="aeForm.author"></el-input>
-            </el-form-item>
-            <el-form-item :label="$t('ReportManage.ReportList.creation_time_select')">
-              <el-date-picker
-                v-model="aeForm.createTime"
-                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-item :label="$t('ReportManage.ReportList.recording_lable')" v-if="$route.query.type == 'week'">
-              <el-input
-                v-model="aeForm.audioUrl"
-                readonly
-                style="width: 65%"
-                :placeholder="$t('ReportManage.ReportList.upload_audio_file')"
-              ></el-input>
-              <el-upload
-                style="display: inline-block; margin-left: 10px"
-                action=""
-                accept=".mp3,.m4a"
-                :http-request="handleUpload"
-                :before-upload="handelBeforeUploadAudio"
-                :show-file-list="false"
-                :disabled="startUploadAudio"
-              >
-                <el-button type="primary" :loading="startUploadAudio"
-                  >{{$t('ReportManage.ReportList.up_recording_lable')}}</el-button
-                >
-              </el-upload>
-
-              <p style="color: #999; font-size: 12px">
-                {{$t('ReportManage.ReportList.note_audio_minutes')}}
-              </p>
-            </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)}">{{$t('ReportManage.ReportList.just_mine_radio')}}</el-checkbox>
-          </div>
-          <div
-            id="reportwin"
-            ref="chartListRef"
-            style="
-              height: calc(100vh - 370px);
-              overflow-x: hidden;
-              overflow-y: auto;
-            "
-            v-infinite-scroll="loadReportHandle"
-            :infinite-scroll-immediate="false"
-          >
-          <template v-if="newreportlist.length">
-            <div
-              v-for="(item, index) in newreportlist"
-              :key="item.ChartInfoId"
-              class="liststy"
-              :style="item.Disabled && 'cursor: not-allowed;'"
-            >
-              <p class="color_primary">{{ item.ChartName }}</p>
-              <img
-                :src="!item.HaveOperaAuth?$icons.lock_big:item.ChartImage"
-                :id="'listnode' + index"
-                @click="insertHtml(item)"
-              />
-            </div>
-          </template>
-          <tableNoData :text="$t('ReportManage.ReportList.no_chart_table_available')" 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 - 370px);
-							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.HaveOperaAuth?$icons.lock_big: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" />
-        </div>
-        <div v-if="tabsactive == '语义分析插入'">
-					<importSemantics @handleImportSemantic="(item)=>insertHtml(item,'image')"/>
-				</div>
-      </div>
-    </div>
-    <span
-            class="slide-icon slide-btn-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>
-  </div>
-</template>
-
-<script>
-import {
-  autosave,
-  chapterDetail,
-  reportedit,
-  dayTicketList,
-  dataBaseInterface,
-  saveChapterReport,
-  getChapterReportBefore,
-  getChapterReportIsLast,
-  publishChapterReport,
-  sandInterface,
-  getOSSSign,
-} from "api/api.js";
-import MD5 from "js-md5";
-import futuresInterface from "@/api/modules/futuresBaseApi";
-import chartRelevanceApi from "@/api/modules/chartRelevanceApi";
-import {
-  fittingEquationInterface,
-  statisticFeatureInterface,
-} from "@/api/modules/chartRelevanceApi";
-import http from "@/api/http.js";
-import mixinMsg from "./mixins/messagePush";
-import reportMixin from './mixins/reportMixin';
-import moment from "moment";
-import importMyChart from "./components/importMyChart.vue";
-import importSemantics from './components/importSemantics.vue';
-import {uploadFileDirect} from "@/utils/common.js"
-
-export default {
-  beforeRouteEnter(to, from, next) {
-    // 设置面包屑
-    to.matched[1].meta.pathName = `编辑${
-      to.query.type == "day" ? "晨报" : "周报"
-    }`;
-    to.matched[1].name = to.query.typename;
-    next();
-  },
-  mixins: [mixinMsg,reportMixin],
-  data() {
-    let that=this
-    return {
-      isRightFormShow:true,
-      weekPanelTabs:[
-        "基础信息",
-        "图表插入",
-        "MyETA批量插入",
-        "沙盘插入",
-        "语义分析插入"
-      ],
-      //批量导入图表
-      importChartNum: 0, //批量导入图表的数量 如果大于0则说明在加载
-
-      report_id: this.$route.query.id,
-      tabsactive: "基础信息",
-      ticketList: [], //指标列表
-      key_word: "",
-      newreportlist: [],
-
-      // 沙盘插入 ----------start
-      sandTabelQuery: {
-        PageSize: 13,
-        CurrentIndex: 1,
-        Keyword: "",
-      }, // 沙盘图查询参数
-      sandTableLoading: false,
-      sandTableTotal: 0, //沙盘总共条数
-      sandTableList: [],
-      isRequesting: false,
-      loadedText: "", // 全部加载完的文字提示
-      // 沙盘插入 ------------- end
-      chartlist: [],
-      aeForm: {
-        type: "", //品种
-        title: "", //标题
-        addType: 2, //新增方式
-        ticket: [], //指标
-        author: localStorage.getItem("userName") || "",
-        createTime: http.dateFormatter(new Date(), false),
-        content: "",
-        audioUrl: "",
-        audioDuration: 0,
-        audioSize: 0,
-      },
-      aerules: {
-        title: [
-          {
-            required: true,
-            message: "请输入",
-            trigger: "blur",
-          },
-        ],
-        addType: [{ required: true, message: "请选择", trigger: "change" }],
-      },
-      lastEditRange: null,
-      reportloadding: false,
-      timer: null,
-      ischange: false,
-
-      chapterTypeId: 0, //章节类型id
-
-      search_page: 1,
-      search_page_sizes: 20,
-      search_have_more: true,
-
-      startUploadAudio: false,
-
-      autoSaveFlag: true, //是否开启自动保存
-    };
-  },
-  mounted() {
-    this.getreportdetail();
-    this.getreportlist("");
-
-		this.getSandTable();
-		this.getSheetList();
-    this.timer = setInterval(() => {
-      this.autoSave();
-    }, 6000);
-
-    window.addEventListener('message',this.reInitIframe)
-  },
-  updated() {
-    $("#leftfroala").find("p").css({ fontSize: "16px" });
-  },
-  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();
-    },
-  },
-  methods: {
-    handelBeforeUploadAudio(e) {
-      // console.log(e);
-      if (
-        e.name.indexOf(".mp3") == -1 &&
-        e.name.indexOf(".wav") == -1 &&
-        e.name.indexOf(".wma") == -1 &&
-        e.name.indexOf(".m4a") == -1
-      ) {
-        // this.$message.warning("上传失败,上传音频格式不正确");
-        this.$message.warning(this.$t('ReportManage.ReportList.upload_audio_error_msg'));
-        upload_audio_error_msg
-        return false;
-      }
-    },
-    async handleUpload(e) {
-      const duration = await this.handleGetDuration(e.file);
-      if (duration > 60 * 15) {
-        //this.$message.warning("音频时长不得超过15分钟");
-        this.$message.warning(this.$t('ReportManage.ReportList.audio_minutes_exceed'));
-        return;
-      }
-      this.aeForm.audioDuration = duration;
-      this.aeForm.audioSize = e.file.size / 1024 / 1024; //单位MB
-      this.startUploadAudio = true;
-
-      const t = new Date().getTime().toString();
-      const temName = `static/yb/audio/${process.env.NODE_ENV}/${MD5(t)}.${
-        e.file.type.split("/")[1]
-      }`;
-      // const temName = `testOne.${
-      //   e.file.type.split("/")[1]
-      // }`;
-
-      let clientType = this.$setting.dynamicOutLinks.ObjectStorageClient ||
-                        this.$store.state.dynamicOutLinks.ObjectStorageClient ||
-                        JSON.parse(localStorage.getItem('dynamicOutLinks')).ObjectStorageClient
-      uploadFileDirect(clientType,e.file,temName).then(res=>{
-        console.log(res);
-        this.aeForm.audioUrl = res;
-      })
-      .finally(()=>{
-        this.startUploadAudio = false;
-      })
-      // const res = await getOSSSign({StorageSource:1});
-      // if (res.Ret === 200) {
-        // this.handleUploadToOSS(e.file, res.Data);
-      // }
-    },
-    //上传到阿里云
-    async handleUploadToOSS(file, ossRes) {
-
-       let oss_params = {
-        // yourRegion填写Bucket所在地域。以华东1(杭州)为例,Region填写为oss-cn-hangzhou。
-        region: ossRes.RegionId,
-        // 从STS服务获取的临时访问密钥(AccessKey ID和AccessKey Secret)。
-        accessKeyId: ossRes.AccessKeyId,
-        accessKeySecret: ossRes.AccessKeySecret,
-        // 从STS服务获取的安全令牌(SecurityToken)。
-        stsToken: ossRes.SecurityToken,
-        // 填写Bucket名称,例如examplebucket。
-        bucket: ossRes.Bucketname,
-        endpoint: ossRes.Endpoint,
-        cname:true,
-        timeout:6000000
-      }
-
-      let imgHost = ossRes.Imghost;
-
-      ALOSSINS = new OSS(oss_params);
-      // 生成文件名
-      const t = new Date().getTime().toString();
-      const temName = `static/yb/audio/${process.env.NODE_ENV}/${MD5(t)}.${
-        file.type.split("/")[1]
-      }`;
-      console.log(temName);
-
-      try {
-        const res = await ALOSSINS.put(temName, file);
-        console.log("上传结果", res);
-        if (res.res.status === 200) {
-          this.aeForm.audioUrl = imgHost + res.name;
-          this.startUploadAudio = false;
-        }
-      } catch (error) {
-        console.log("上传到阿里云失败", error);
-        if (error.name !== "cancel") {
-          //不是取消上传的则给错误提示
-          this.$message.warning("上传失败,请刷新重试");
-        }
-        this.startUploadAudio = false;
-      }
-    },
-
-    //获取音频时长的promise
-    handleGetDuration(file) {
-      return new Promise((resolve, reject) => {
-        const fileUrl = URL.createObjectURL(file);
-        const audioEl = new Audio(fileUrl);
-        audioEl.addEventListener("loadedmetadata", (e) => {
-          console.log("e.path", e.path);
-          console.log("e.composedPath", e.composedPath());
-          console.log("获取视频时长", e.composedPath()[0].duration);
-          console.log(audioEl.duration);
-          const t = e.composedPath()[0].duration;
-          resolve(t);
-        });
-      });
-    },
-
-    // 每十秒自动保存
-    autoSave(e) {
-      // if(!this.aeForm.title&&e=='cg'){
-      // 	this.$message.warning('请填写标题')
-      // 	return
-      // }
-      // if(!e){//自动保存情况
-      // 	if(!this.ischange||!this.aeForm.title) return
-      // }
-      // if(e!='cg'||!this.ischange||!this.aeForm.title) return
-
-      //去除校验title等必填项
-      if (!e && !this.ischange) return;
-
-      if (!this.autoSaveFlag) {
-        e === "cg" && this.$message.error(/*"有图片未上传完成,请稍等"*/this.$t('ReportManage.ReportList.upload_img_error_msg'));
-        return;
-      }
-
-      let arr = [];
-      this.ticketList.forEach((item) => {
-        let obj = {
-          ticker: "",
-          sort: 1,
-          lable: "",
-        };
-        if (this.aeForm.ticket.includes(item.BaseColumnTicker)) {
-          obj.ticker = item.BaseColumnTicker;
-          obj.sort = arr.length + 1;
-          obj.lable = item.BaseColumnName;
-          arr.push(obj);
-        }
-      });
-      //如果富文本中有未上传完成的图片,去除这个dom
-      $(".fr-element").find("img.fr-uploading").length &&
-        $(".fr-element").find("img.fr-uploading").remove();
-
-      saveChapterReport({
-        ReportChapterId: Number(this.$route.query.id),
-        Title: this.aeForm.title,
-        AddType: this.aeForm.addType,
-        Author: this.aeForm.author,
-        CreateTime: this.aeForm.createTime,
-        TickerList: arr,
-        Content: $(".fr-element").html(),
-        VideoUrl: this.aeForm.audioUrl,
-        VideoName: `${this.aeForm.title}(${moment().format("MMDD")})`,
-        VideoPlaySeconds: Number(this.aeForm.audioDuration)
-          .toFixed(2)
-          .toString(),
-        VideoSize: Number(this.aeForm.audioSize).toFixed(2).toString(),
-      }).then((res) => {
-        if (res.Ret === 200) {
-          // this.report_id = res.Data.ReportId;
-          this.lastsavetime = http.dateFormatter(new Date(), true);
-          if (e == "cg") {
-            // this.$message.success("保存成功");
-            this.$message.success( this.$t('MsgPrompt.saved_msg'));
-          }
-        }
-        this.ischange = false;
-      });
-    },
-    //章节详情
-    getreportdetail() {
-      chapterDetail({ ReportChapterId: parseInt(this.report_id) }).then(
-        (res) => {
-          if (res.Ret == 200) {
-            let data = res.Data;
-            this.aeForm.type = data.TypeName;
-            this.aeForm.title = data.Title;
-            this.aeForm.addType = data.AddType;
-            this.aeForm.author =
-              data.Author || localStorage.getItem("userName");
-            this.aeForm.createTime = moment(data.CreateTime).format(
-              "YYYY-MM-DD"
-            );
-            this.aeForm.content = data.Content;
-            if (data.VideoKind == 1) {
-              this.aeForm.audioUrl = data.VideoUrl;
-              this.aeForm.audioDuration = data.VideoPlaySeconds;
-              this.aeForm.audioSize = data.VideoSize;
-            }
-            this.chapterTypeId = data.TypeId;
-
-            // 晨报获取指标数据
-            if (data.ReportType == "day") {
-              this.getDayTicketList();
-            }
-          }
-        }
-      );
-    },
-
-    //预览
-    handlePreviewReport() {
-      if (!this.aeForm.title) {
-        this.$message.error(/* "请输入标题" */this.$t('ReportManage.ReportList.input_title_please'));
-        return false;
-      }
-      if (!this.autoSaveFlag) {
-        this.$message.error(/*"有图片未上传完成,请稍等"*/this.$t('ReportManage.ReportList.upload_img_error_msg'));
-        return;
-      }
-      //如果富文本中有未上传完成的图片,去除这个dom
-      $(".fr-element").find("img.fr-uploading").length &&
-        $(".fr-element").find("img.fr-uploading").remove();
-      let params = {
-        ReportId: parseInt(this.report_id),
-        AddType: this.aeForm.addType,
-        Title: this.aeForm.title,
-        Author: this.aeForm.author,
-        Content: $(".fr-element").html(),
-        CreateTime: this.aeForm.createTime,
-      };
-
-      sessionStorage.setItem("reportdtl", JSON.stringify(params));
-      let { href } = this.$router.resolve({ name: "预览报告" });
-      window.open(href, "_blank");
-    },
-
-    //点击发布 首先判断是否为最后一篇
-    async handlePublishReport() {
-      if (this.$route.query.type == "week" && !this.aeForm.audioUrl) {
-        const validRes = await this.handleWeekValidAudio();
-        if (!validRes) return;
-      }
-      if (!this.autoSaveFlag) {
-        this.$message.error(/*"有图片未上传完成,请稍等"*/this.$t('ReportManage.ReportList.upload_img_error_msg'));
-        return;
-      }
-      this.isPublishloading = true;
-      const res = await getChapterReportIsLast({
-        ReportChapterId: Number(this.report_id),
-      });
-      if (res.Ret === 200) {
-        if (res.Data) {
-          this.$confirm(
-            this.$t('ReportManage.ReportList.all_update_publish_msg'),
-            this.$t('ReportManage.smart_release_prompt_btn'),
-            {
-              confirmButtonText: this.$t('ReportManage.smart_btn.push'),
-							cancelButtonText: this.$t('ReportManage.smart_btn.not_push'),
-              type: "warning",
-              distinguishCancelAndClose: true,
-              beforeClose: (action, instance, done) => {
-                if (action == "cancel") {
-                  this.publishReport(0);
-                } else if (action == "confirm") {
-                  this.publishReport(1);
-                } else {
-                  this.isPublishloading = false;
-                }
-                done();
-              },
-            }
-          );
-        } else {
-          this.publishReport(0);
-        }
-      }
-    },
-
-    // 周报校验是否上传了音频
-    handleWeekValidAudio() {
-      return new Promise((resovle, reject) => {
-        this.$confirm(this.$t('ReportManage.ReportList.is_publish_report_msg'), this.$t('ReportManage.smart_release_prompt_btn'), {
-          confirmButtonText: this.$t('ReportManage.smart_btn.push'),
-					cancelButtonText: this.$t('ReportManage.smart_btn.not_push'),
-          type: "warning",
-          beforeClose: (action, instance, done) => {
-            if (action == "confirm") {
-              resovle(true);
-            } else {
-              resovle(false);
-            }
-            done();
-          },
-        });
-      });
-    },
-
-    async publishReport(PublishReport) {
-      let arr = [];
-      this.ticketList.forEach((item) => {
-        let obj = {
-          ticker: "",
-          sort: 1,
-          lable: "",
-        };
-        if (this.aeForm.ticket.includes(item.BaseColumnTicker)) {
-          obj.ticker = item.BaseColumnTicker;
-          obj.sort = arr.length + 1;
-          obj.lable = item.BaseColumnName;
-          arr.push(obj);
-        }
-      });
-      //如果富文本中有未上传完成的图片,去除这个dom
-      $(".fr-element").find("img.fr-uploading").length &&
-        $(".fr-element").find("img.fr-uploading").remove();
-      const res = await publishChapterReport({
-        ReportChapterId: Number(this.$route.query.id),
-        Title: this.aeForm.title,
-        AddType: this.aeForm.addType,
-        Author: this.aeForm.author,
-        CreateTime: this.aeForm.createTime,
-        TickerList: arr,
-        Content: $(".fr-element").html(),
-        PublishReport: PublishReport,
-        VideoUrl: this.aeForm.audioUrl,
-        VideoName: `${this.aeForm.title}(${moment().format("MMDD")})`,
-        VideoPlaySeconds: Number(this.aeForm.audioDuration)
-          .toFixed(2)
-          .toString(),
-        VideoSize: Number(this.aeForm.audioSize).toFixed(2).toString(),
-      });
-      if (res.Ret === 200) {
-         this.$message.success(this.$t('MsgPrompt.publish_msg'))
-        setTimeout(() => {
-          this.$router.go(-1);
-        }, 1000);
-      }
-      this.isPublishloading = false;
-    },
-
-    //批量插入我的图表
-    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';
-
-      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}&lang=${this.currentLang}' 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),
-    // 获取指标数据
-    async getDayTicketList() {
-      const res = await dayTicketList({
-        ReportChapterId: Number(this.report_id),
-      });
-      if (res.Ret === 200) {
-        this.ticketList = res.Data || [];
-        this.ticketList.forEach((item) => {
-          if (item.Selected) {
-            this.aeForm.ticket.push(item.BaseColumnTicker);
-          }
-        });
-      }
-    },
-
-    //选择继承报告时 获取上篇报告内容
-    async handleAddTypeChange() {
-      if (this.aeForm.addType == 2) {
-        const res = await getChapterReportBefore({
-          TypeId: Number(this.chapterTypeId),
-          ReportType: this.$route.query.type,
-        });
-        if (res.Ret === 200) {
-          let data = res.Data;
-          this.aeForm.type = data.TypeName;
-          this.aeForm.title = data.Title;
-          this.aeForm.author = data.Author || localStorage.getItem("userName");
-          this.aeForm.createTime = moment(data.CreateTime).format("YYYY-MM-DD");
-          this.aeForm.content = data.Content;
-          // 晨报获取指标数据
-          if (data.ReportType == "day") {
-            this.getDayTicketList();
-          }
-        }
-      }
-      if (this.aeForm.addType == 1) {
-        this.aeForm.content = "";
-      }
-    },
-  },
-  components: { importMyChart,importSemantics },
-};
-</script>
-
-<style scoped lang="scss">
-#editreport {
-  display: flex;
-  overflow: hidden;
-  #leftfroala {
-    flex: 1;
-    overflow: hidden;
-    &.full{
-        max-width: calc(100vw - 200px - 60px);
-    }
-    &.block{
-        max-width: calc(100vw - 200px - 60px - 500px);
-    }
-  }
-  #rightitems {
-    width: 500px;
-    flex: 500px 0 0;
-    overflow: hidden;
-    #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: 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;
-    }
-  }
-  .slide-icon{
-    position:fixed;
-    top: 50%;
-    transform: translateY(-50%);
-    z-index: 99;
-    &:hover {
-        background-color: #e0e0e0;
-    }
-    &.slide-left {
-        right: 30px;
-    }
-    &.slide-right {
-        right: 515px;
-    }
-  }
-}
-</style>
-<style lang="scss">
-#editreport {
-	.el-tabs__nav-wrap::after {
-		height: 0;
-	}
-	.el-tabs__item { font-size: 16px; }
-}	
-</style>

+ 0 - 1047
src/views/report_manage/editreportNew.vue

@@ -1,1047 +0,0 @@
-<template>
-	<div id="editreport">
-		<div 
-			id="leftfroala" 
-			:class="{'full':!isRightFormShow,'block':isRightFormShow}"
-			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="CNEditorConfig"
-				v-model="aeForm.content"
-			></froala>
-		</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.reportManageBtn.reportManage_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.reportManageBtn.reportManage_publish"
-						type="primary"
-						size="medium"
-						:disabled="checkLoading"
-						@click.native="clickreportadd('dsfb')"
-						>{{$t('ReportManage.ReportList.scheduled_publish_btn')}}</el-button
-					>
-					<el-button v-permission="permissionBtn.reportManageBtn.reportManage_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.reportManageBtn.reportManage_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 - 280px); overflow-y: auto"
-				>
-					<el-form
-						:model="aeForm"
-						:rules="aerules"
-						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"
-								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"
-								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 :label="$t('ReportManage.ReportList.abstract_ipt')">
-							<el-input
-								type="textarea"
-								:rows="2"
-								:placeholder="$t('ReportManage.CategoryList.please_input')"
-								v-model="aeForm.abstract"
-								size="medium"
-							></el-input>
-						</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="年度"></el-option>
-								<el-option :label="$t('ReportManage.smart_semi_annually')" value="半年度"></el-option>
-								<el-option :label="$t('ReportManage.smart_quarterly')" value="季度"></el-option>
-								<el-option :label="$t('ReportManage.smart_monthly')" value="月度"></el-option>
-								<el-option :label="$t('ReportManage.smart_bi_weekly')" value="双周度"></el-option>
-								<el-option :label="$t('ReportManage.smart_weekly')" value="周度"></el-option>
-								<el-option :label="$t('ReportManage.smart_daily')" value="日度"></el-option>
-								<el-option :label="$t('ReportManage.smart_irregularly')" value="不定时"></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)}">{{$t('ReportManage.ReportList.just_mine_radio')}}</el-checkbox>
-					</div>
-					<div
-						ref="chartListRef"
-						style="
-							height: calc(100vh - 370px);
-							overflow-x: hidden;
-							overflow-y: auto;
-						"
-						v-infinite-scroll="loadReportHandle"
-						:infinite-scroll-immediate="false"
-					>
-						<template v-if="newreportlist.length">
-							<div
-								v-for="(item, index) in newreportlist"
-								:key="item.ChartInfoId"
-								:style="item.Disabled && 'cursor: not-allowed;'"
-								class="liststy"
-							>
-								<p class="color_primary">{{ item.ChartName }}</p>
-								<img
-									:src="!item.HaveOperaAuth?$icons.lock_big:item.ChartImage"
-									:id="'listnode' + index"
-									@click="insertHtml(item)"
-								/>
-							</div>
-						</template>
-						<tableNoData :text="$t('ReportManage.ReportList.no_chart_table_available')" 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 - 370px);
-							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.HaveOperaAuth?$icons.lock_big: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"/>
-				</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>
-
-		<!-- 定时发布弹窗 -->
-		<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="handleSetReportPrepublish">{{$t('Dialog.confirm_btn')}}</el-button>
-				</div>
-			</div>
-		</el-dialog>
-	</div>
-</template>
-
-<script>
-import {
-	autosave,
-	reportdetail,
-	reportedit,
-	classifylist,
-	reportpublish,
-	reportauthor,
-	classifyIdDetail,
-	dataBaseInterface,
-	sandInterface,
-	reportSetPrepublish,
-	departInterence
-} from 'api/api.js';
-import VueFroala from 'vue-froala-wysiwyg';
-import urlSlug from 'url-slug';
-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 importSemantics from './components/importSemantics.vue';
-export default {
-	mixins:[mixinMsg,reportMixin,reportApproveConfig],
-	data() {
-		var that = this;
-		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: ['投研团队'],
-				frequency: '日度',
-				create_time: http.dateFormatter(new Date(), false),
-				content: '',
-			},
-			aerules: {
-				add_type: [
-					{
-						required: true,
-						message: '',
-						trigger: 'blur',
-					},
-				],
-				classifynameArr: [
-					{
-						required: true,
-						message: '',
-						trigger: 'blur',
-					},
-				],
-				title: [
-					{
-						required: true,
-						message: '请输入',
-						trigger: 'blur',
-					},
-				],
-			},
-			lastEditRange: null,
-			reportloadding: false,
-			lastsavetime: '',
-			timer: null,
-			ischange: false,
-			isPublishloading: false,
-			ThsMsgIsSend:'',//是否推送过客群
-		};
-	},
-	mounted() {
-		this.getreportdetail();
-		this.getclassifylist();
-		this.getreportlist('');
-		this.getreportauthor();
-		this.getSandTable();
-		this.getSheetList();
-		this.getSystemUserInfo()
-		this.timer = setInterval(() => {
-			this.autoSave();
-		}, 6000);
-
-		window.addEventListener('message',this.reInitIframe)
-	},
-	updated() {
-		$('#leftfroala').find('p').css({ fontSize: '16px',width:'100%'});
-	},
-	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()
-		}
-	},
-	methods: {
-		// 每十秒自动保存
-		autoSave() {
-			console.log(this.ischange);
-			// if (this.ischange) {
-				if(!this.autoSaveFlag) return
-				//如果富文本中有未上传完成的图片,去除这个dom
-				$('.fr-element').find('img.fr-uploading').length&&$('.fr-element').find('img.fr-uploading').remove()
-				autosave({
-					ReportId: Number(this.$route.query.id),
-					Content: $('.fr-element').html(),
-					NoChange:this.ischange?0:1
-				}).then((res) => {
-					if (res.Ret === 200) {
-						this.report_id = res.Data.ReportId;
-						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(1,classify)
-
-			if (this.aeForm.add_type == 1) {
-				if (this.aeForm.classifynameArr.length == 2) {
-					this.aeForm.title = JSON.parse(this.aeForm.classifynameArr[1]).l;
-				}
-				return false;
-			}
-			if (this.aeForm.classifynameArr.length == 0) {
-				return false;
-			}
-			console.log(this.aeForm.classifynameArr);
-			let params = {
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[0]).v,
-			};
-			if (this.aeForm.classifynameArr.length == 2) {
-				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
-				).v;
-			} else {
-				params.ClassifyIdSecond = 0;
-			}
-			classifyIdDetail(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:
-							res.Data.ClassifyIdSecond && res.Data.ClassifyNameSecond
-								? [
-										JSON.stringify({
-											l: res.Data.ClassifyNameFirst,
-											v: res.Data.ClassifyIdFirst,
-										}),
-										JSON.stringify({
-											l: res.Data.ClassifyNameSecond,
-											v: res.Data.ClassifyIdSecond,
-										}),
-								  ]
-								: [
-										JSON.stringify({
-											l: res.Data.ClassifyNameFirst,
-											v: res.Data.ClassifyIdFirst,
-										}),
-								  ],
-						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,
-					};
-				}
-			});
-		},
-		getreportauthor() {
-			reportauthor({}).then((res) => {
-				if (res.Ret == 200) {
-					this.authorlist = res.Data.List || [];
-				}
-			});
-		},
-		getreportdetail() {
-			reportdetail({ ReportId: parseInt(this.report_id) }).then((res) => {
-				if (res.Ret == 200) {
-					let data = res.Data;
-					this.aeForm = {
-						add_type: parseInt(data.AddType),
-						classify_name: 1,
-						classifynameArr:
-							data.ClassifyIdSecond && data.ClassifyNameSecond
-								? [
-										JSON.stringify({
-											l: data.ClassifyNameFirst,
-											v: parseInt(data.ClassifyIdFirst),
-										}),
-										JSON.stringify({
-											l: data.ClassifyNameSecond,
-											v: parseInt(data.ClassifyIdSecond),
-										}),
-								  ]
-								: [
-										JSON.stringify({
-											l: data.ClassifyNameFirst,
-											v: parseInt(data.ClassifyIdFirst),
-										}),
-								  ],
-						title: data.Title,
-						abstract: data.Abstract,
-						author: data.Author ? data.Author.split(',') : '',
-						frequency: data.Frequency,
-						create_time: data.CreateTime,
-						content: data.Content,
-					};
-					this.ThsMsgIsSend=data.ThsMsgIsSend
-					// 回显定时发布时间
-					if(data.PrePublishTime){
-						this.taskTime=data.PrePublishTime
-					}
-					let classify = [data.ClassifyIdFirst,data.ClassifyIdSecond]
-					this.checkClassifyNameArr(1,classify)
-				}
-			});
-		},
-		clickreportadd(tp) {
-			if (
-				!this.aeForm.classifynameArr ||
-				this.aeForm.classifynameArr.length == 0
-			) {
-				this.$message.error(this.$t('ReportManage.ReportList.please_select_category'));
-				return false;
-			}
-			if (!this.aeForm.title) {
-				this.$message.error(this.$t('ReportManage.ReportList.input_title_please'));
-				return false;
-			}
-			if(!this.autoSaveFlag){
-				this.$message.error(this.$t('ReportManage.smart_msg.img_wait'))
-				return false
-			}
-			//如果富文本中有未上传完成的图片,去除这个dom
-			$('.fr-element').find('img.fr-uploading').length&&$('.fr-element').find('img.fr-uploading').remove()
-			let params = {
-				ReportId: parseInt(this.report_id),
-				AddType: this.aeForm.add_type,
-				ClassifyIdFirst: JSON.parse(this.aeForm.classifynameArr[0]).v,
-				ClassifyNameFirst: JSON.parse(this.aeForm.classifynameArr[0]).l,
-				Title: this.aeForm.title,
-				Abstract: this.aeForm.abstract,
-				Author:
-					this.aeForm.author.length > 0
-						? this.aeForm.author.join(',')
-						: '',
-				Frequency: this.aeForm.frequency,
-				// content:this.aeForm.content,create_time:this.aeForm.create_time
-				Content: $('.fr-element').html(),
-				CreateTime: this.aeForm.create_time,
-			};
-			if (this.aeForm.classifynameArr.length == 2) {
-				params.ClassifyIdSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
-				).v;
-				params.ClassifyNameSecond = JSON.parse(
-					this.aeForm.classifynameArr[1]
-				).l;
-			}
-			params.State = 1;
-			if (tp == 'yl') {
-				sessionStorage.setItem('reportdtl', JSON.stringify(params));
-				let { href } = this.$router.resolve({ name: '预览报告' });
-				window.open(href, '_blank');
-				return false;
-			}
-			if(tp=='fb'||tp=='submit'){
-				this.isPublishloading = true;
-			}
-			const isPost = this.permissionBtn.checkPermissionBtn(this.permissionBtn.reportManageBtn.reportManage_sendMsg)&&(!this.isApprove)
-			if (tp == 'fb') {
-				// 判断是否要推送客群
-				let hasTel=0
-				if(this.aeForm.classifynameArr.length == 2){
-					this.optionsArr.forEach(item=>{
-						item.children&&item.children.forEach(childItem=>{
-							if(JSON.parse(item.value).v==params.ClassifyIdSecond){
-								hasTel=childItem.HasTeleconference
-							}
-						})
-					})
-				}else{
-					this.optionsArr.forEach(item=>{
-						if(JSON.parse(item.value).v==params.ClassifyIdFirst){
-							hasTel=item.HasTeleconference
-						}
-					})
-				}
-				console.log(hasTel);
-				if(hasTel==1||this.ThsMsgIsSend==1){
-					this.isMessagePost = false; 
-					this.reporteditMsg(params,tp)
-				}else if(isPost){
-					this.$confirm(this.$t('ReportManage.smart_msg.publishing_messages'), this.$t('ReportManage.smart_release_prompt_btn'), {
-								confirmButtonText: this.$t('ReportManage.smart_btn.push'),
-								cancelButtonText: this.$t('ReportManage.smart_btn.not_push'),
-								type: 'warning',
-						    distinguishCancelAndClose:true,
-						    beforeClose:(action, instance,done)=>{
-						        console.log(action, instance);
-						        if(action==='close') {
-						            //右上角
-									this.isPublishloading = false;
-						        } else if(action==='cancel') {
-						            //cancelButton
-									this.isMessagePost = false; 
-									this.reporteditMsg(params,tp)
-						        }else {
-						           //confirmButton
-								   	this.isMessagePost = true; 
-									this.reporteditMsg(params,tp)
-						        }
-						        done()
-						    }
-					})
-				}else{
-					this.isMessagePost = false; 
-					this.reporteditMsg(params,tp)
-				}
-			}else {
-				this.reporteditMsg(params,tp)
-			}
-			// reportedit(params).then((res) => {
-			// 	if (res.Ret == 200) {
-			// 		this.$message.success(res.Msg);
-			// 		if (tp == 'yl') {
-			// 			// this.$router.push({name:'预览报告',query:{id:res.report_id}});
-			// 			let { href } = this.$router.resolve({
-			// 				name: '预览报告',
-			// 				query: { id: res.Data.ReportId },
-			// 			});
-			// 			window.open(href, '_blank');
-			// 		} else if (tp == 'fb') {
-			// 			this.publishreport(res.Data.ReportId);
-			// 		} else {
-			// 			// this.$router.push({path:'/reportlist'});
-			// 		}
-			// 	}
-			// });
-		},
-		publishreport(id,code) {
-			//发布报告
-			reportpublish({ ReportIds: String(id) ,ReportUrl:this.generatePdfLinks(code)}).then((res) => {
-				if (res.Ret == 200) {
-					this.isPublishloading = false;
-					this.$router.push({ path: '/reportlist' });
-				}
-			});
-		},
-		generatePdfLinks(Code){
-			const baseUrl= localStorage.getItem('dynamicOutLinks') ? JSON.parse(localStorage.getItem('dynamicOutLinks')).ReportViewUrl : '';
-			return `${baseUrl}/reportshare_pdf?code=${Code}&flag=${this.waterMarkStr}`
-		},
-		// 定时发布报告
-		handleSetReportPrepublish(){
-			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')
-			if(this.$moment(this.taskTime).isBefore(now,'second')){
-				this.$message.warning(this.$t('ReportManage.smart_msg.than_current_time'))
-				return
-			}
-			// return console.log(this.reportCode,'reportCode');
-			// 如果改报告已经推送过模板消息
-			if(this.ThsMsgIsSend==1){
-				reportSetPrepublish({
-					ReportId:Number(this.report_id),
-					PrePublishTime:this.taskTime,
-					PreMsgSend:0,
-					ReportUrl:this.generatePdfLinks(this.reportCode)
-				}).then(res=>{
-					if(res.Ret===200){
-						this.$message.success(this.$t('ReportManage.smart_msg.timed_success'))
-						this.$router.push({ path: '/reportlist' });
-					}
-				})
-				return
-			}
-			const isPost = this.permissionBtn.checkPermissionBtn(this.permissionBtn.reportManageBtn.reportManage_sendMsg)
-
-			this.$confirm(isPost?this.$t('ReportManage.smart_msg.push_report_msg'):this.$t('ReportManage.smart_msg.is_push_timed'), this.$t('ReportManage.smart_release_prompt_btn'), {
-				confirmButtonText: isPost?this.$t('ReportManage.smart_btn.push'):this.$t('ReportManage.smart_btn.publish'),
-				cancelButtonText: isPost?this.$t('ReportManage.smart_btn.not_push'):this.$t('Dialog.cancel_btn'),
-				type: 'warning',
-				distinguishCancelAndClose:true,
-				beforeClose:(action, instance,done)=>{
-					console.log(action, instance);
-					if(action==='close'||action==='cancel') {
-						//右上角或者不推送
-						if(isPost){
-							reportSetPrepublish({
-								ReportId:Number(this.report_id),
-								PrePublishTime:this.taskTime,
-								PreMsgSend:0,
-								ReportUrl:this.generatePdfLinks(this.reportCode)
-							}).then(res=>{
-								if(res.Ret===200){
-									this.$message.success(this.$t('ReportManage.smart_msg.timed_success'))
-									this.$router.push({ path: '/reportlist' });
-								}
-							})
-						}
-					} else {
-						//confirmButton
-						reportSetPrepublish({
-							ReportId:Number(this.report_id),
-							PrePublishTime:this.taskTime,
-							PreMsgSend:isPost?1:0,
-							ReportUrl:this.generatePdfLinks(this.reportCode)
-						}).then(res=>{
-							if(res.Ret===200){
-								this.$message.success(this.$t('ReportManage.smart_msg.timed_success'))
-								this.$router.push({ path: '/reportlist' });
-							}
-						})
-					}
-					done()
-				}
-			})
-
-		},
-		//批量插入我的图表
-		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';
-			
-			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}&lang=${this.currentLang}' 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 = { Enabled:1, KeyWord: '' ,HideDayWeek:1,/*不显示晨报/周报*/ };
-			classifylist(params).then((res) => {
-				if (res.Ret == 200 && Array.isArray(res.Data.List)) {
-					this.optionsArr = [];
-					res.Data.List.forEach((item, index) => {
-						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);
-					});
-				}
-			});
-		},
-		getSystemUserInfo(){
-      departInterence.systemUserInfo().then(res=>{
-        if(res.Ret===200){
-          const systemUserInfo=res.Data
-          // 设置水印文案
-          let waterMarkString=''
-          if(systemUserInfo){
-            waterMarkString=`${systemUserInfo.RealName}${systemUserInfo.Mobile?systemUserInfo.Mobile:systemUserInfo.Email}`
-            waterMarkString=encodeURIComponent(waterMarkString)
-            this.waterMarkStr=Base64.encode(waterMarkString)
-          }
-        }
-      })
-    },
-	},
-	components: {importMyChart,importSemantics},
-};
-</script>
-
-<style scoped lang="scss">
-#editreport {
-	display: flex;
-	overflow: hidden;
-	#leftfroala {
-		flex: 1;
-		overflow: hidden;
-		&.full{
-			max-width: calc(100vw - 200px - 60px);
-		}
-		&.block{
-			max-width: calc(100vw - 200px - 60px - 500px);
-		}
-	}
-	#rightitems {
-		width: 500px;
-		flex: 500px 0 0;
-		overflow: hidden;
-		position: fixed;
-		right: 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: 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;
-		}
-	}
-	.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: 500px;
-		}
-	}
-}
-</style>
-<style lang="scss">
-#editreport {
-	.el-tabs__nav-wrap::after {
-		height: 0;
-	}
-	.el-tabs__item { font-size: 16px; }
-}	
-</style>

+ 4 - 4
src/views/system_manage/dataOperaAuth.vue

@@ -214,8 +214,8 @@
               v-model="transferForm.creatorIds"
               :options="userList"
               :props="{
-                value: 'ItemId',
-                label: 'ItemName',
+                value: 'NodeId',
+                label: 'NodeName',
                 children: 'Children',
                 emitPath: false,
                 multiple:true
@@ -237,8 +237,8 @@
               v-model="transferForm.newUser"
               :options="userList"
               :props="{
-                value: 'ItemId',
-                label: 'ItemName',
+                value: 'NodeId',
+                label: 'NodeName',
                 children: 'Children',
                 emitPath: false,
               }"