|
@@ -89,153 +89,9 @@
|
|
|
</el-row>
|
|
|
</div>
|
|
|
<div v-if="siteid == 'HY' || siteid == 'YOSTEST1'">
|
|
|
- <p class="title">{{$t(`项目预计成交统计`)}}</p>
|
|
|
- <div style="display: flex;justify-content: space-between">
|
|
|
- <div class="statistics-box">
|
|
|
- <div style="margin: 10px 20px 10px 20px">
|
|
|
- <div class="statistics-box-title">
|
|
|
- {{$t(`前12个月成交项目数据`)}}
|
|
|
- <el-tooltip effect="dark" placement="top-start">
|
|
|
- <div slot="content">
|
|
|
- {{
|
|
|
- $t(
|
|
|
- "统计当前月份之前(不包含当前月份)的12个月的(已成交、结案状态)的项目预计成交准确率、偏差金额"
|
|
|
- )
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <!-- <i class="el-icon-question" style="color: #afb0be;float: right"></i>-->
|
|
|
- <img
|
|
|
- width="14px"
|
|
|
- height="14px"
|
|
|
- src="../../../assets/icons/prompt_icon.svg"
|
|
|
- />
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div class="justify-between-flex-style">
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`准确率`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style2">
|
|
|
- {{Math.round((previousYearData.dealaccuracyrate * 100)*100)/100}}%
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`偏差金额`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style2">
|
|
|
- {{tool.formatAmount(tool.unitConversion(previousYearData.totaldeviationamount,10000),2)}}
|
|
|
- <span class="title-font-style4">{{$t(`万元`)}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`项目成交金额`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style3">
|
|
|
- {{tool.formatAmount(tool.unitConversion(previousYearData.totaldealamount,10000),2)}}
|
|
|
- <span>{{$t(`万元`)}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`预计签约金额`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style3">
|
|
|
- {{tool.formatAmount(tool.unitConversion(previousYearData.totalsignamount_due,10000),2)}}
|
|
|
- <span>{{$t(`万元`)}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- <div class="statistics-box">
|
|
|
- <div style="margin: 10px 20px 10px 20px">
|
|
|
- <div class="statistics-box-title">
|
|
|
- {{$t(`前12个月项目总数据`)}}
|
|
|
- <el-tooltip effect="dark" placement="top-start">
|
|
|
- <div slot="content">
|
|
|
- {{
|
|
|
- $t(
|
|
|
- "统计当前月份之前(不包含当前月份)的12个月的(已成交、结案状态)的项目预计成交准确率、偏差金额"
|
|
|
- )
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <!-- <i class="el-icon-question" style="color: #afb0be;float: right"></i>-->
|
|
|
- <img
|
|
|
- width="14px"
|
|
|
- height="14px"
|
|
|
- src="../../../assets/icons/prompt_icon.svg"
|
|
|
- />
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div class="justify-between-flex-style">
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`准确率`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style2">
|
|
|
- {{Math.round((previousYearAllData.dealaccuracyrate * 100)*100)/100}}%
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`偏差金额`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style2">
|
|
|
- {{tool.formatAmount(tool.unitConversion(previousYearAllData.totaldeviationamount,10000),2)}}
|
|
|
- <span class="title-font-style4">{{$t(`万元`)}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`项目成交金额`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style3">
|
|
|
- {{tool.formatAmount(tool.unitConversion(previousYearAllData.totaldealamount,10000),2)}}
|
|
|
- <span>{{$t(`万元`)}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="title-margin-15">
|
|
|
- <div class="title-font-style1">
|
|
|
- {{$t(`预计签约金额`)}}
|
|
|
- </div>
|
|
|
- <div class="title-margin-5 title-font-style3">
|
|
|
- {{tool.formatAmount(tool.unitConversion(previousYearAllData.totalsignamount_due,10000),2)}}
|
|
|
- <span>{{$t(`万元`)}}</span>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="screen-box">
|
|
|
- <div style="margin: 20px">
|
|
|
- <div class="title-font-style5">
|
|
|
- {{$t(`未来12月项目预计签约金额统计(单位:万)`)}}
|
|
|
- <el-tooltip effect="dark" placement="top-start">
|
|
|
- <div slot="content">
|
|
|
- {{
|
|
|
- $t(
|
|
|
- "统计当前月份往后(包含当前月份)的12个月的每个月份的(跟进中状态)的项目预计签约金额"
|
|
|
- )
|
|
|
- }}
|
|
|
- </div>
|
|
|
- <!-- <i class="el-icon-question" style="color: #afb0be;float: right"></i>-->
|
|
|
- <img
|
|
|
- width="14px"
|
|
|
- height="14px"
|
|
|
- src="../../../assets/icons/prompt_icon.svg"
|
|
|
- />
|
|
|
- </el-tooltip>
|
|
|
- </div>
|
|
|
- <div style="margin-top: 10px">
|
|
|
- <chartTemplate ref="chartColumn" chartRef="signChart" :param="paramChart" height-chart="232px" width-chart="100%"></chartTemplate>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ <p class="title">{{$t(`项目预计成交分析`)}}</p>
|
|
|
+ <previousTwelveMonths :data="previousData"></previousTwelveMonths>
|
|
|
+ <futureTwelveMonths ref="futureTwelveMonthsRef" style="margin-top: 15px"></futureTwelveMonths>
|
|
|
</div>
|
|
|
<div style="margin-top: 40px">
|
|
|
<p class="title">{{projectTile}}</p>
|
|
@@ -317,8 +173,10 @@ import tableNewTemp from '@/components/table/index10'
|
|
|
import { Funnel,G2 } from '@antv/g2plot';
|
|
|
const G = G2.getEngine('canvas');
|
|
|
import chartTemplate from '@/template/chartG2Template/Column'
|
|
|
+import previousTwelveMonths from './previousTwelveMonths'
|
|
|
+import futureTwelveMonths from './futureTwelveMonths'
|
|
|
export default {
|
|
|
- components:{tableTemp,tableNewTemp,chartTemplate},
|
|
|
+ components:{tableTemp,tableNewTemp,chartTemplate,previousTwelveMonths,futureTwelveMonths},
|
|
|
data () {
|
|
|
return {
|
|
|
chartPie:null,
|
|
@@ -392,20 +250,9 @@ export default {
|
|
|
isleave:'1',
|
|
|
tradefields:[],
|
|
|
unfinish:'1',
|
|
|
- previousYearData:{},
|
|
|
- previousYearAllData:{},
|
|
|
- paramChart:{
|
|
|
- "id": 20241028162004,
|
|
|
- "content": {
|
|
|
- "type": "0",
|
|
|
- "dataid": "0",
|
|
|
- "where": {
|
|
|
- "tradefield": "",
|
|
|
- "isleave":""
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid
|
|
|
+ siteid:JSON.parse(sessionStorage.getItem('active_account')).siteid,
|
|
|
+ previousData:[],
|
|
|
+ futreData:[]
|
|
|
}
|
|
|
},
|
|
|
methods:{
|
|
@@ -421,12 +268,7 @@ export default {
|
|
|
this.tableData = res.data
|
|
|
sessionStorage.setItem('flagIndex',res.data.length)
|
|
|
if (this.siteid == 'HY' || this.siteid == 'YOSTEST1'){
|
|
|
- this.paramChart.content.type = this.dataParam.content.type
|
|
|
- this.paramChart.content.dataid = this.dataParam.content.dataid
|
|
|
- this.paramChart.content.where.tradefield = this.dataParam.content.where.tradefield
|
|
|
- this.paramChart.content.where.isleave = this.dataParam.content.where.isleave
|
|
|
- this.$refs.chartColumn.chartData(true)
|
|
|
- this.previousYear()
|
|
|
+ this.expectedTransaction(true)
|
|
|
}
|
|
|
this.renderPie()
|
|
|
|
|
@@ -963,21 +805,15 @@ export default {
|
|
|
this.flagIndex = dataList.length
|
|
|
this.chartPie.changeData(res.data)
|
|
|
dataList.splice(dataList.length-1)
|
|
|
+ if (this.siteid == 'HY' || this.siteid == 'YOSTEST1'){
|
|
|
+ this.expectedTransaction(false)
|
|
|
+ }
|
|
|
},
|
|
|
async getProjectList(){
|
|
|
this.projectParam.content.type = this.dataParam.content.type
|
|
|
this.projectParam.content.dataid = this.dataParam.content.dataid
|
|
|
/*this.projectParam.content.dateType = this.dataParam.content.dateType*/
|
|
|
this.projectParam.content.sa_projstagemagid = this.sa_projstagemagid
|
|
|
- if (this.siteid == 'HY' || this.siteid == 'YOSTEST1'){
|
|
|
- this.paramChart.content.type = this.dataParam.content.type
|
|
|
- this.paramChart.content.dataid = this.dataParam.content.dataid
|
|
|
- this.paramChart.content.where.tradefield = this.dataParam.content.where.tradefield
|
|
|
- this.paramChart.content.where.isleave = this.dataParam.content.where.isleave
|
|
|
- this.$refs.chartColumn.chartData(false)
|
|
|
- this.previousYear()
|
|
|
- this.previousAllYear()
|
|
|
- }
|
|
|
const res = await this.$api.requested(this.projectParam)
|
|
|
this.projectList = res.data
|
|
|
this.total = res.total
|
|
@@ -997,8 +833,8 @@ export default {
|
|
|
const res = await this.$store.dispatch('optiontypeselect','tradefield')
|
|
|
this.tradefields = res.data
|
|
|
},
|
|
|
- /*前12个月项目成交数据*/
|
|
|
- async previousYear(){
|
|
|
+ /*项目成交数据*/
|
|
|
+ async expectedTransaction(init){
|
|
|
let param = {
|
|
|
"id": 20241028162104,
|
|
|
"content": {
|
|
@@ -1015,28 +851,76 @@ export default {
|
|
|
param.content.where.tradefield = this.dataParam.content.where.tradefield
|
|
|
param.content.where.isleave = this.dataParam.content.where.isleave
|
|
|
const res = await this.$api.requested(param)
|
|
|
- this.previousYearData = res.data
|
|
|
+ console.log(res.data,'数据项目成交')
|
|
|
+ this.previousData = [
|
|
|
+ {
|
|
|
+ title:'成交项目数',
|
|
|
+ value:res.data.dealTotalCount,
|
|
|
+ unit:'个',
|
|
|
+ description:'当前状态为已成交,并且项目成交时间在前12个月(不含当前月)的项目数量',
|
|
|
+ color:'#3874F6'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title:'预计成交正偏差',
|
|
|
+ title1:'项目',
|
|
|
+ value1:res.data.positiveCount,
|
|
|
+ unit1:'个',
|
|
|
+ title2:'金额',
|
|
|
+ value2:this.tool.formatAmount(this.tool.unitConversion(res.data.positiveOffsetAmount,10000),2),
|
|
|
+ unit2:'万元',
|
|
|
+ description:'依据:每个项目的偏差金额 = 项目成交金额 - 预计签约金额',
|
|
|
+ color:'#E6A23C'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title:'项目成交金额合计',
|
|
|
+ value:this.tool.formatAmount(this.tool.unitConversion(res.data.dealAmount,10000),2),
|
|
|
+ unit:'万元',
|
|
|
+ description:'合计所有项目成交金额',
|
|
|
+ color: '#009966'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title:'失败项目数',
|
|
|
+ value:res.data.failTotalCount,
|
|
|
+ unit:'个',
|
|
|
+ description:'当前状态为已失败,并且失败操作时间在前12个月(不含当前月)的项目数量',
|
|
|
+ color:'#3874F6'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title:'预计成交负偏差',
|
|
|
+ title1:'项目',
|
|
|
+ value1:res.data.negativeCount,
|
|
|
+ unit1:'个',
|
|
|
+ title2:'金额',
|
|
|
+ value2:this.tool.formatAmount(this.tool.unitConversion(res.data.negativeOffsetAmount,10000),2),
|
|
|
+ unit2:'万元',
|
|
|
+ description:'依据:每个项目的偏差金额 = 项目成交金额 - 预计签约金额',
|
|
|
+ color:'#E6A23C'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title:'预计签约金额合计',
|
|
|
+ value:this.tool.formatAmount(this.tool.unitConversion(res.data.signAmount,10000),2),
|
|
|
+ unit:'万元',
|
|
|
+ description:'合计前12个月(不含当前月)的成交项目的预计签约金额',
|
|
|
+ color: '#009966'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title:'项目成交率',
|
|
|
+ value:Math.round((res.data.dealRate * 100)*100)/100,
|
|
|
+ unit:'%',
|
|
|
+ description:'成交项目数 ÷ (成交项目数 + 失败项目数)×100%',
|
|
|
+ color:'#3874F6'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ title:'预计成交准确率',
|
|
|
+ value:Math.round((res.data.rightRate * 100)*100)/100,
|
|
|
+ unit:'%',
|
|
|
+ description:'预计成交准确项目数 ÷ 成交项目数 ×100%',
|
|
|
+ color:'#E6A23C'
|
|
|
+ },
|
|
|
+ ]
|
|
|
+ this.futreData = res.data.array
|
|
|
+ this.$refs.futureTwelveMonthsRef.chartData(init,this.futreData)
|
|
|
},
|
|
|
- /*前12个月项目总数据*/
|
|
|
- async previousAllYear(){
|
|
|
- let param = {
|
|
|
- "id": 2024112813172602,
|
|
|
- "content": {
|
|
|
- "type": "0",
|
|
|
- "dataid": "0",
|
|
|
- "where": {
|
|
|
- "tradefield": "",
|
|
|
- "isleave":""
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- param.content.type = this.dataParam.content.type
|
|
|
- param.content.dataid = this.dataParam.content.dataid
|
|
|
- param.content.where.tradefield = this.dataParam.content.where.tradefield
|
|
|
- param.content.where.isleave = this.dataParam.content.where.isleave
|
|
|
- const res = await this.$api.requested(param)
|
|
|
- this.previousYearAllData = res.data
|
|
|
- }
|
|
|
},
|
|
|
mounted () {
|
|
|
/* this.renderPie()*/
|