|
@@ -112,7 +112,12 @@
|
|
/>
|
|
/>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="日期基准" prop="basisEdb">
|
|
<el-form-item label="日期基准" prop="basisEdb">
|
|
- <el-select placeholder="请选择日期基准" v-model="chartInfo.basisEdb" style="width: 90%">
|
|
|
|
|
|
+ <el-select
|
|
|
|
+ placeholder="请选择日期基准"
|
|
|
|
+ v-model="chartInfo.basisEdb"
|
|
|
|
+ style="width: 90%"
|
|
|
|
+ @change="handleBasisEdbChange"
|
|
|
|
+ >
|
|
<el-option
|
|
<el-option
|
|
v-for="item in tableData"
|
|
v-for="item in tableData"
|
|
:key="item.EdbInfoId"
|
|
:key="item.EdbInfoId"
|
|
@@ -129,7 +134,7 @@
|
|
<div class="targetset-cont">
|
|
<div class="targetset-cont">
|
|
<!-- 选择的指标模块 -->
|
|
<!-- 选择的指标模块 -->
|
|
<div class="basis-edb-wrap" v-if="tableData.length>0">
|
|
<div class="basis-edb-wrap" v-if="tableData.length>0">
|
|
- <div class="label-btn">横坐标设置</div>
|
|
|
|
|
|
+ <div class="label-btn" @click="isShowxAxisSet=true">横坐标设置</div>
|
|
<div
|
|
<div
|
|
class="item-basis-edb"
|
|
class="item-basis-edb"
|
|
v-for="item,index in tableData"
|
|
v-for="item,index in tableData"
|
|
@@ -141,7 +146,7 @@
|
|
class="icon"
|
|
class="icon"
|
|
:src="item.isHide?require('@/assets/img/icons/eyes-hide-active.png') : require('@/assets/img/icons/eyes-show-active.png')"
|
|
:src="item.isHide?require('@/assets/img/icons/eyes-hide-active.png') : require('@/assets/img/icons/eyes-show-active.png')"
|
|
alt=""
|
|
alt=""
|
|
- @click="handleChangeBasisEdbHide(item)"
|
|
|
|
|
|
+ @click="handleChangeBasisEdbHide(item,index)"
|
|
>
|
|
>
|
|
<img class="icon" src="~@/assets/img/icons/delete-red.png" alt="" @click="handleBasisEdbDel(index,item)">
|
|
<img class="icon" src="~@/assets/img/icons/delete-red.png" alt="" @click="handleBasisEdbDel(index,item)">
|
|
</div>
|
|
</div>
|
|
@@ -223,6 +228,12 @@
|
|
:data="profitInfo"
|
|
:data="profitInfo"
|
|
@ensure="setProfitBack"
|
|
@ensure="setProfitBack"
|
|
/>
|
|
/>
|
|
|
|
+ <!-- 横坐标设置 -->
|
|
|
|
+ <xAxisSet
|
|
|
|
+ :isShow.sync="isShowxAxisSet"
|
|
|
|
+ :opts="xAxisList"
|
|
|
|
+ @change="handleXAxisDataChange"
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
@@ -233,8 +244,9 @@ import { chartSetMixin } from '@/views/dataEntry_manage/mixins/chartPublic';
|
|
import Chart from '@/views/dataEntry_manage/components/chart';
|
|
import Chart from '@/views/dataEntry_manage/components/chart';
|
|
import barOption from '@/views/dataEntry_manage/components/barOptionSection.vue';
|
|
import barOption from '@/views/dataEntry_manage/components/barOptionSection.vue';
|
|
import plateProfitDia from './components/plateProfitDia.vue';
|
|
import plateProfitDia from './components/plateProfitDia.vue';
|
|
|
|
+import xAxisSet from './components/xAxisSet.vue';
|
|
export default {
|
|
export default {
|
|
- components: { Chart,barOption,plateProfitDia },
|
|
|
|
|
|
+ components: { Chart,barOption,plateProfitDia,xAxisSet },
|
|
directives: {
|
|
directives: {
|
|
drag(el, bindings) {
|
|
drag(el, bindings) {
|
|
el.onmousedown = function (e) {
|
|
el.onmousedown = function (e) {
|
|
@@ -315,11 +327,21 @@ export default {
|
|
profitInfo: {
|
|
profitInfo: {
|
|
list: [],
|
|
list: [],
|
|
formula: ''
|
|
formula: ''
|
|
- }
|
|
|
|
|
|
+ },
|
|
|
|
|
|
|
|
+ // 横坐标设置
|
|
|
|
+ isShowxAxisSet:false,
|
|
|
|
+ xAxisList:[],
|
|
};
|
|
};
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ // 刷新数据
|
|
|
|
+ handleRefreshChartData(){
|
|
|
|
+ // 价格曲线判断 this.chartInfo.futures_id
|
|
|
|
+ if(this.chartInfo.Source===2&&!this.chartInfo.futures_id) return
|
|
|
|
+ this.tableData.length && this.$refs.BarOptRef.getBarData();
|
|
|
|
+ console.log('刷新图表');
|
|
|
|
+ },
|
|
|
|
|
|
/* 获取图表详情 */
|
|
/* 获取图表详情 */
|
|
getChartInfo() {
|
|
getChartInfo() {
|
|
@@ -328,7 +350,7 @@ export default {
|
|
})
|
|
})
|
|
.then((res) => {
|
|
.then((res) => {
|
|
if (res.Ret !== 200) return;
|
|
if (res.Ret !== 200) return;
|
|
- const { ChartInfo,BarChartInfo,EdbInfoList,DataResp } = res.Data;
|
|
|
|
|
|
+ const { ChartInfo,BarChartInfo,EdbInfoList,DataResp,XDataList } = res.Data;
|
|
|
|
|
|
this.chartInfo = ChartInfo.Source===5 ? {
|
|
this.chartInfo = ChartInfo.Source===5 ? {
|
|
...ChartInfo,
|
|
...ChartInfo,
|
|
@@ -338,12 +360,27 @@ export default {
|
|
} : {
|
|
} : {
|
|
...ChartInfo,
|
|
...ChartInfo,
|
|
classify: ChartInfo.ChartClassifyId,
|
|
classify: ChartInfo.ChartClassifyId,
|
|
- futures_id: BarChartInfo.EdbInfoIdList.find(_ => _.Source===2).EdbInfoId
|
|
|
|
|
|
+ futures_id: BarChartInfo.EdbInfoIdList.find(_ => _.Source===2).EdbInfoId,
|
|
|
|
+ basisEdb:BarChartInfo.BaseEdbInfoId
|
|
};
|
|
};
|
|
|
|
|
|
- this.search_txt = EdbInfoList[0].EdbInfoId;
|
|
|
|
- this.tableData = [EdbInfoList[0]];
|
|
|
|
- this.searchOptions = this.tableData;
|
|
|
|
|
|
+ // this.tableData = [EdbInfoList[0]];
|
|
|
|
+ this.tableData=EdbInfoList.filter(_e=>_e.Source).map((_e,index)=>{
|
|
|
|
+ return{
|
|
|
|
+ EdbInfoId:_e.EdbInfoId,
|
|
|
|
+ EdbName:XDataList[index].Name,
|
|
|
|
+ EdbNameEn:XDataList[index].NameEn,
|
|
|
|
+ isHide:XDataList[index].IsHide?true:false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ this.xAxisList=XDataList.map((_item,index)=>{
|
|
|
|
+ return {
|
|
|
|
+ ..._item,
|
|
|
|
+ // 判断是否为选择的指标
|
|
|
|
+ EdbInfoId:EdbInfoList[index]&&EdbInfoList[index].Source?EdbInfoList[index].EdbInfoId:0,
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
|
|
this.initDateOptions = ChartInfo.Source===5 ? {
|
|
this.initDateOptions = ChartInfo.Source===5 ? {
|
|
DateList: DataResp.Extra.DateList,
|
|
DateList: DataResp.Extra.DateList,
|
|
@@ -368,39 +405,106 @@ export default {
|
|
}
|
|
}
|
|
|
|
|
|
this.tableData.push({...edb,isHide:false});
|
|
this.tableData.push({...edb,isHide:false});
|
|
|
|
+ console.log(this.xAxisList);
|
|
|
|
+ // 向横坐标配置项中插入值
|
|
|
|
+ if(this.xAxisList.length){
|
|
|
|
+ const index=this.xAxisList.findIndex(i=>i.EdbInfoId===0)
|
|
|
|
+ console.log(index);
|
|
|
|
+ if(index!=-1){
|
|
|
|
+ this.xAxisList.splice(index,0,{
|
|
|
|
+ EdbInfoId:edb.EdbInfoId,
|
|
|
|
+ IsHide:0,
|
|
|
|
+ Name:edb.EdbName,
|
|
|
|
+ NameEn:edb.EdbNameEn
|
|
|
|
+ })
|
|
|
|
+ }else{
|
|
|
|
+ this.xAxisList.push({
|
|
|
|
+ EdbInfoId:edb.EdbInfoId,
|
|
|
|
+ IsHide:0,
|
|
|
|
+ Name:edb.EdbName,
|
|
|
|
+ NameEn:edb.EdbNameEn
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ this.search_txt=''
|
|
|
|
+ this.search_page = 1;
|
|
|
|
+ this.searchOptions=[]
|
|
if(!this.chartInfo.basisEdb){
|
|
if(!this.chartInfo.basisEdb){
|
|
this.chartInfo.basisEdb=this.tableData[0].EdbInfoId
|
|
this.chartInfo.basisEdb=this.tableData[0].EdbInfoId
|
|
}
|
|
}
|
|
- this.commodityChartData.length && this.chartInfo.futures_id && this.$refs.BarOptRef.getBarData();
|
|
|
|
|
|
+ this.handleRefreshChartData()
|
|
},
|
|
},
|
|
|
|
|
|
// 选择的指标显示隐藏状态改变
|
|
// 选择的指标显示隐藏状态改变
|
|
- handleChangeBasisEdbHide(item){
|
|
|
|
|
|
+ handleChangeBasisEdbHide(item,index){
|
|
item.isHide=!item.isHide
|
|
item.isHide=!item.isHide
|
|
|
|
+ this.xAxisList[index].IsHide=item.isHide?1:0
|
|
|
|
+ this.handleRefreshChartData()
|
|
},
|
|
},
|
|
// 删除选择的指标
|
|
// 删除选择的指标
|
|
async handleBasisEdbDel(index,item){
|
|
async handleBasisEdbDel(index,item){
|
|
if(this.tableData.length===1){
|
|
if(this.tableData.length===1){
|
|
|
|
|
|
- await this.$confirm('现货指标全部删除后,图表会被清楚,确认操作吗?','提示',{
|
|
|
|
|
|
+ await this.$confirm('现货指标全部删除后,图表会被清除,确认操作吗?','提示',{
|
|
type:'warning'
|
|
type:'warning'
|
|
})
|
|
})
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ this.tableData.splice(index,1)
|
|
|
|
+ this.xAxisList.splice(index,1)
|
|
if(this.chartInfo.basisEdb===item.EdbInfoId){
|
|
if(this.chartInfo.basisEdb===item.EdbInfoId){
|
|
this.chartInfo.basisEdb=''
|
|
this.chartInfo.basisEdb=''
|
|
|
|
+ this.xAxisList=[]
|
|
|
|
+ return
|
|
}
|
|
}
|
|
- this.tableData.splice(index,1)
|
|
|
|
|
|
+ this.handleRefreshChartData()
|
|
|
|
+ },
|
|
|
|
+ // 横坐标设置修改回调
|
|
|
|
+ handleXAxisDataChange(arr){
|
|
|
|
+ console.log('横坐标修改回调',arr);
|
|
|
|
+ this.xAxisList=arr
|
|
|
|
+ // 修改tableData
|
|
|
|
+ const temArr=this.tableData.filter(_e=>arr.some(_i=>_i.EdbInfoId===_e.EdbInfoId))
|
|
|
|
+ console.log(temArr)
|
|
|
|
+
|
|
|
|
+ temArr.forEach(item=>{
|
|
|
|
+ arr.forEach(_item=>{
|
|
|
|
+ if(_item.EdbInfoId===item.EdbInfoId){
|
|
|
|
+ item.isHide=_item.IsHide?true:false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ })
|
|
|
|
+
|
|
|
|
+ this.tableData=temArr
|
|
|
|
+ if(temArr.length===0){
|
|
|
|
+ this.chartInfo.basisEdb=''
|
|
|
|
+ this.xAxisList=[]
|
|
|
|
+ return
|
|
|
|
+ }
|
|
|
|
+ this.handleRefreshChartData()
|
|
|
|
+
|
|
},
|
|
},
|
|
|
|
|
|
/* 选择期货 */
|
|
/* 选择期货 */
|
|
changeFuturesHandle(val) {
|
|
changeFuturesHandle(val) {
|
|
if(!val) return
|
|
if(!val) return
|
|
- this.commodityChartData.length && this.tableData.length && this.$refs.BarOptRef.getBarData();
|
|
|
|
|
|
+ this.handleRefreshChartData()
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ // 日期基准变更
|
|
|
|
+ handleBasisEdbChange(val){
|
|
|
|
+ if(!val) return
|
|
|
|
+ this.handleRefreshChartData()
|
|
},
|
|
},
|
|
|
|
|
|
/* 获取数据 */
|
|
/* 获取数据 */
|
|
async getPreviewData({sort,dateList}) {
|
|
async getPreviewData({sort,dateList}) {
|
|
- if(!dateList.length) this.commodityChartData = [];
|
|
|
|
|
|
+ if(!dateList.length) {
|
|
|
|
+ this.commodityChartData = []
|
|
|
|
+ this.xAxisList=[]
|
|
|
|
+ };
|
|
if(!this.tableData.length || !dateList.length) return
|
|
if(!this.tableData.length || !dateList.length) return
|
|
|
|
|
|
this.chartInfo.Source===2
|
|
this.chartInfo.Source===2
|
|
@@ -411,6 +515,13 @@ export default {
|
|
|
|
|
|
/* 价格曲线预览 */
|
|
/* 价格曲线预览 */
|
|
async getCommodityPreview(dateList) {
|
|
async getCommodityPreview(dateList) {
|
|
|
|
+ const xDataListArr=this.xAxisList.map(_item=>{
|
|
|
|
+ return {
|
|
|
|
+ Name:_item.Name,
|
|
|
|
+ NameEn:_item.NameEn,
|
|
|
|
+ IsHide:_item.IsHide
|
|
|
|
+ }
|
|
|
|
+ })
|
|
let params = {
|
|
let params = {
|
|
EdbInfoIdList: [
|
|
EdbInfoIdList: [
|
|
...this.tableData.map(_ => ({EdbInfoId: _.EdbInfoId,Name:'',Source: 1})),
|
|
...this.tableData.map(_ => ({EdbInfoId: _.EdbInfoId,Name:'',Source: 1})),
|
|
@@ -423,6 +534,8 @@ export default {
|
|
Name: '',
|
|
Name: '',
|
|
Color: _.Color
|
|
Color: _.Color
|
|
})),
|
|
})),
|
|
|
|
+ BaseEdbInfoId:this.chartInfo.basisEdb,
|
|
|
|
+ XDataList:xDataListArr||[]
|
|
}
|
|
}
|
|
|
|
|
|
const res = await futuresInterface.getChartData(params);
|
|
const res = await futuresInterface.getChartData(params);
|
|
@@ -432,6 +545,13 @@ export default {
|
|
this.commodityEdbList = EdbInfoList;
|
|
this.commodityEdbList = EdbInfoList;
|
|
this.commodityChartData = YDataList;
|
|
this.commodityChartData = YDataList;
|
|
this.commodityXData = XDataList;
|
|
this.commodityXData = XDataList;
|
|
|
|
+ this.xAxisList=XDataList.map((_item,index)=>{
|
|
|
|
+ return {
|
|
|
|
+ ..._item,
|
|
|
|
+ // 判断是否为选择的指标
|
|
|
|
+ EdbInfoId:EdbInfoList[index]&&EdbInfoList[index].Source?EdbInfoList[index].EdbInfoId:0,
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
|
|
//初始状态设置上下限极值
|
|
//初始状态设置上下限极值
|
|
if(!this.chartInfo.LeftMin) {
|
|
if(!this.chartInfo.LeftMin) {
|
|
@@ -448,11 +568,18 @@ export default {
|
|
async getProfitPreview(dateList) {
|
|
async getProfitPreview(dateList) {
|
|
if(!this.profitInfo.list.length) return this.$message.warning(this.$t('ToolBox.CommodityPriceChart.tips_msg04')||'请先设置盘面利润配置')
|
|
if(!this.profitInfo.list.length) return this.$message.warning(this.$t('ToolBox.CommodityPriceChart.tips_msg04')||'请先设置盘面利润配置')
|
|
|
|
|
|
|
|
+ const xDataListArr=this.xAxisList.map(_item=>{
|
|
|
|
+ return {
|
|
|
|
+ Name:_item.Name,
|
|
|
|
+ NameEn:_item.NameEn,
|
|
|
|
+ IsHide:_item.IsHide
|
|
|
|
+ }
|
|
|
|
+ })
|
|
const { list,formula } = this.profitInfo;
|
|
const { list,formula } = this.profitInfo;
|
|
let params = {
|
|
let params = {
|
|
FutureGoodEdbInfoIdList: list,
|
|
FutureGoodEdbInfoIdList: list,
|
|
CalculateFormula: formula,
|
|
CalculateFormula: formula,
|
|
- BaseEdbInfoId: this.tableData[0].EdbInfoId,
|
|
|
|
|
|
+ BaseEdbInfoId: this.chartInfo.basisEdb,
|
|
DateList: dateList.map(_ => ({
|
|
DateList: dateList.map(_ => ({
|
|
Type: _.Type,
|
|
Type: _.Type,
|
|
Date: _.Date,
|
|
Date: _.Date,
|
|
@@ -460,7 +587,10 @@ export default {
|
|
Name: '',
|
|
Name: '',
|
|
Color: _.Color
|
|
Color: _.Color
|
|
})),
|
|
})),
|
|
|
|
+ EdbInfoIdList:this.tableData.map(i=>i.EdbInfoId),
|
|
|
|
+ XDataList:xDataListArr||[]
|
|
}
|
|
}
|
|
|
|
+ console.log('刷新利润曲线');
|
|
|
|
|
|
const res = await futuresInterface.previewProfitData(params);
|
|
const res = await futuresInterface.previewProfitData(params);
|
|
if(res.Ret !== 200) return
|
|
if(res.Ret !== 200) return
|
|
@@ -471,6 +601,13 @@ export default {
|
|
this.commodityEdbList = EdbInfoList;
|
|
this.commodityEdbList = EdbInfoList;
|
|
this.commodityChartData = YDataList;
|
|
this.commodityChartData = YDataList;
|
|
this.commodityXData = XDataList;
|
|
this.commodityXData = XDataList;
|
|
|
|
+ this.xAxisList=XDataList.map((_item,index)=>{
|
|
|
|
+ return {
|
|
|
|
+ ..._item,
|
|
|
|
+ // 判断是否为选择的指标
|
|
|
|
+ EdbInfoId:EdbInfoList[index]&&EdbInfoList[index].Source?EdbInfoList[index].EdbInfoId:0,
|
|
|
|
+ }
|
|
|
|
+ })
|
|
this.chartInfo = {
|
|
this.chartInfo = {
|
|
...this.chartInfo,
|
|
...this.chartInfo,
|
|
ProfitName,
|
|
ProfitName,
|
|
@@ -563,13 +700,20 @@ export default {
|
|
|
|
|
|
/* 商品价格曲线保存 */
|
|
/* 商品价格曲线保存 */
|
|
async handleSaveCommodity(public_param) {
|
|
async handleSaveCommodity(public_param) {
|
|
|
|
+ const xDataListArr=this.xAxisList.map(_item=>{
|
|
|
|
+ return {
|
|
|
|
+ Name:_item.Name,
|
|
|
|
+ NameEn:_item.NameEn,
|
|
|
|
+ IsHide:_item.IsHide
|
|
|
|
+ }
|
|
|
|
+ })
|
|
let params = {
|
|
let params = {
|
|
...public_param,
|
|
...public_param,
|
|
LeftMin: String(this.chartLimit.min),
|
|
LeftMin: String(this.chartLimit.min),
|
|
LeftMax: String(this.chartLimit.max),
|
|
LeftMax: String(this.chartLimit.max),
|
|
BarChartInfo: {
|
|
BarChartInfo: {
|
|
EdbInfoIdList: [
|
|
EdbInfoIdList: [
|
|
- ...this.tableData.map(_ => ({EdbInfoId: _.EdbInfoId,Name:'',Source: 1})),
|
|
|
|
|
|
+ ...this.tableData.map(_ => ({EdbInfoId: _.EdbInfoId,Source: 1})),
|
|
{ EdbInfoId: this.chartInfo.futures_id,Name: '',Source: 2 }
|
|
{ EdbInfoId: this.chartInfo.futures_id,Name: '',Source: 2 }
|
|
],
|
|
],
|
|
DateList: this.$refs.BarOptRef.dateList.map(item => ({
|
|
DateList: this.$refs.BarOptRef.dateList.map(item => ({
|
|
@@ -578,8 +722,10 @@ export default {
|
|
Value: item.Value,
|
|
Value: item.Value,
|
|
Name: '',
|
|
Name: '',
|
|
Color: item.Color
|
|
Color: item.Color
|
|
- }))
|
|
|
|
- }
|
|
|
|
|
|
+ })),
|
|
|
|
+ BaseEdbInfoId:this.chartInfo.basisEdb,
|
|
|
|
+ XDataList:xDataListArr||[]
|
|
|
|
+ },
|
|
}
|
|
}
|
|
|
|
|
|
const { Ret,Data } = this.chart_code
|
|
const { Ret,Data } = this.chart_code
|