|
@@ -271,6 +271,11 @@ function getChartActions(chartInfo){
|
|
|
label:'分享',
|
|
|
show:!Boolean(chartInfo.Disabled)
|
|
|
},
|
|
|
+ {
|
|
|
+ type:'save',
|
|
|
+ label:'保存',
|
|
|
+ show:true,
|
|
|
+ },
|
|
|
{
|
|
|
type:'saveOther',
|
|
|
label:'另存为',
|
|
@@ -307,7 +312,8 @@ function handleActionClick(action){
|
|
|
'savePic':saveChartPic,
|
|
|
'setEnName':openSetChartEnNameDialog,
|
|
|
'addToMyETA':openAddToMyETADialog,
|
|
|
- 'delete':deleteChart
|
|
|
+ 'delete':deleteChart,
|
|
|
+ 'save':saveChart,
|
|
|
}
|
|
|
eventMap[action.type]()
|
|
|
//showMoreAction.value = false
|
|
@@ -372,7 +378,116 @@ function checkChartEnOption(){
|
|
|
}
|
|
|
return true
|
|
|
}
|
|
|
-
|
|
|
+//保存图表
|
|
|
+function saveChart(){
|
|
|
+ //获取每条线的指标配置
|
|
|
+ let arr = edbList.value.map((item)=>{
|
|
|
+ return {
|
|
|
+ ChartColor: item.ChartColor,
|
|
|
+ PredictChartColor: item.PredictChartColor,
|
|
|
+ ChartStyle: item.ChartStyle,
|
|
|
+ ChartWidth: Number(item.ChartWidth),
|
|
|
+ EdbInfoId: item.EdbInfoId,
|
|
|
+ EdbInfoType: item.EdbInfoType,
|
|
|
+ IsAxis: item.IsAxis,
|
|
|
+ IsOrder: item.IsOrder,
|
|
|
+ LeadUnit: item.EdbInfoType ? '' : item.LeadUnit,
|
|
|
+ LeadValue: item.EdbInfoType ? 0 : Number(item.LeadValue),
|
|
|
+ MaxData: Number(item.MaxData),
|
|
|
+ MinData: Number(item.MinData),
|
|
|
+ }
|
|
|
+ })
|
|
|
+ //所有图表的公共参数
|
|
|
+ let public_param = {
|
|
|
+ ChartClassifyId: chartInfo.value.ChartClassifyId,
|
|
|
+ ChartInfoId: chartInfo.value.ChartInfoId,
|
|
|
+ ChartEdbInfoList: arr,
|
|
|
+ }
|
|
|
+ //根据ChartType决定剩余参数
|
|
|
+ let type_param = {}
|
|
|
+ switch(chartInfo.value.ChartType){
|
|
|
+ case 2:
|
|
|
+ type_param = {
|
|
|
+ DateType: chartState.yearVal,
|
|
|
+ StartYear:chartState.startYear || 0,
|
|
|
+ Calendar: chartState.calendarType,
|
|
|
+ StartDate: chartState.startTime||'',
|
|
|
+ EndDate: chartState.endTime||'',
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case 7:
|
|
|
+ type_param = {
|
|
|
+ DateType: 6,
|
|
|
+ LeftMin: String(axisLimitState.leftMin),
|
|
|
+ LeftMax: String(axisLimitState.leftMax),
|
|
|
+ }
|
|
|
+ break
|
|
|
+ case 10:
|
|
|
+ type_param = {
|
|
|
+ DateType: 6,
|
|
|
+ Calendar: "公历",
|
|
|
+ ExtraConfig: JSON.stringify({
|
|
|
+ ...JSON.parse(chartInfo.value.ExtraConfig),
|
|
|
+ XMinValue: String(axisLimitState.xMin),
|
|
|
+ XMaxValue: String(axisLimitState.xMax),
|
|
|
+ YMinValue: String(axisLimitState.leftMin),
|
|
|
+ YMaxValue: String(axisLimitState.leftMax),
|
|
|
+ })
|
|
|
+ }
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if(sameOptionType.includes(chartInfo.value.ChartType)){
|
|
|
+ type_param = {
|
|
|
+ DateType: chartState.yearVal,
|
|
|
+ StartYear:chartState.startYear || 0,
|
|
|
+ StartDate:chartState.yearVal === 5 || chartState.yearVal === 6
|
|
|
+ ? chartState.startTime
|
|
|
+ : '',
|
|
|
+ EndDate: chartState.yearVal === 5 ? chartState.endTime : '',
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let params = {...public_param,...type_param}
|
|
|
+ //保存
|
|
|
+ apiChart.chartSave(params).then(async res=>{
|
|
|
+ if(res.Ret!==200) return
|
|
|
+ showToast("保存成功")
|
|
|
+ //更新缩略图
|
|
|
+ setChartImage()
|
|
|
+ //保存成功后修改route.query防止刷新后请求旧参数
|
|
|
+ router.replace({
|
|
|
+ path:'/chartETA/chartdetail',
|
|
|
+ query:{
|
|
|
+ id:route.query.id,
|
|
|
+ chartType:route.query.chartType,
|
|
|
+ chartClassifyId:route.query.chartClassifyId,
|
|
|
+ DateType:params.DateType,
|
|
|
+ StartDate:chartState.startTime,
|
|
|
+ EndDate:chartState.endTime,
|
|
|
+ Calendar:chartState.calendarType,
|
|
|
+ SeasonStartDate:chartState.startTime,
|
|
|
+ SeasonEndDate:chartState.endTime,
|
|
|
+ StartYear:chartState.startYear
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+
|
|
|
+}
|
|
|
+async function setChartImage(){
|
|
|
+ //打开保存图片弹窗
|
|
|
+ const svgData = highChart.value.getSVG({
|
|
|
+ chart: {
|
|
|
+ width: 340,
|
|
|
+ height: 230,
|
|
|
+ }
|
|
|
+ })
|
|
|
+ let form = new FormData();
|
|
|
+ form.append('Img', svgData);
|
|
|
+ let {Data} = await apiChart.uploadChartImg(form)
|
|
|
+ await apiChart.setChartImg({
|
|
|
+ ChartInfoId:Number(route.query.id),
|
|
|
+ ImageUrl:Data.ResourceUrl
|
|
|
+ })
|
|
|
+}
|
|
|
let isShowSaveOtherDialog = ref(false)
|
|
|
let catalogNodes = ref([])
|
|
|
//另存为
|