|
@@ -3,100 +3,103 @@
|
|
<div class="page_week_main">
|
|
<div class="page_week_main">
|
|
<!-- 选择月报时间 -->
|
|
<!-- 选择月报时间 -->
|
|
<div class="week_time">
|
|
<div class="week_time">
|
|
- <SelectMonth :getTypeTime="{judgeTime: 'month'}" @selectYm="selectYear"></SelectMonth>
|
|
|
|
|
|
+ <SelectMonth :queryDate="getQueryTime" :getTypeTime="{judgeTime: 'month'}" @selectYm="selectYear"></SelectMonth>
|
|
</div>
|
|
</div>
|
|
- <!-- 数据报告-周报 -->
|
|
|
|
- <div class="dataReport">
|
|
|
|
- <div class="dataReport_main">
|
|
|
|
- <div class="data_r_head">
|
|
|
|
- <div class="data_r_title">数据报告-月报</div>
|
|
|
|
- <div class="data_r_week">({{dateFormatter(start * 1000, 'MM月dd日')}}-{{dateFormatter(end * 1000, 'MM月dd日')}})</div>
|
|
|
|
|
|
+ <Empty v-if="nodata"></Empty>
|
|
|
|
+ <div v-else>
|
|
|
|
+ <!-- 数据报告-周报 -->
|
|
|
|
+ <div class="dataReport">
|
|
|
|
+ <div class="dataReport_main">
|
|
|
|
+ <div class="data_r_head">
|
|
|
|
+ <div class="data_r_title">数据报告-月报</div>
|
|
|
|
+ <div class="data_r_week">({{dateFormatter(start * 1000, 'MM月dd日')}}-{{dateFormatter(end * 1000, 'MM月dd日')}})</div>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="data_keys">
|
|
|
|
+ <span class="keys_label">订阅关键词组:</span>
|
|
|
|
+ <span class="list_key">{{keywordsGroup}}</span>
|
|
|
|
+ </div>
|
|
|
|
+ <div class="data_line"></div>
|
|
|
|
+ <div class="data_item">
|
|
|
|
+ <p class="item_handle">数据来源:已为您推送的招标项目信息</p>
|
|
|
|
+ <p class="item_handle">项目预算/项目规模:少量预算金额、中标金额未公开或为空的项目,将通过剑鱼标讯预测模型进行填补,可能会与实际项目预算、项目规模略有差距;</p>
|
|
|
|
+ <p class="item_handle">项目重复统计:一个招标项目可能同属于多个关键词组,故各关键词组的数据统计之和可能大于整体市场的统计。</p>
|
|
|
|
+ </div>
|
|
</div>
|
|
</div>
|
|
- <div class="data_keys">
|
|
|
|
- <span class="keys_label">订阅关键词组:</span>
|
|
|
|
- <span class="list_key">{{keywordsGroup}}</span>
|
|
|
|
|
|
+ </div>
|
|
|
|
+ <div class="echartsView" v-if="isFinish">
|
|
|
|
+ <!-- 项目数量 -->
|
|
|
|
+ <div class="chart" v-if="pCount.show">
|
|
|
|
+ <div class="chart_title">项目数量</div>
|
|
|
|
+ <BarLineChart :datas="pCount.data" :options="pCount.options"></BarLineChart>
|
|
</div>
|
|
</div>
|
|
- <div class="data_line"></div>
|
|
|
|
- <div class="data_item">
|
|
|
|
- <p class="item_handle">数据来源:已为您推送的招标项目信息</p>
|
|
|
|
- <p class="item_handle">项目预算/项目规模:少量预算金额、中标金额未公开或为空的项目,将通过剑鱼标讯预测模型进行填补,可能会与实际项目预算、项目规模略有差距;</p>
|
|
|
|
- <p class="item_handle">项目重复统计:一个招标项目可能同属于多个关键词组,故各关键词组的数据统计之和可能大于整体市场的统计。</p>
|
|
|
|
|
|
+ <!-- 项目规模 -->
|
|
|
|
+ <div class="chart" v-if="pScale.show">
|
|
|
|
+ <div class="chart_title">项目规模</div>
|
|
|
|
+ <BarLineChart :datas="pScale.data" :options="pScale.options"></BarLineChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目数量 -->
|
|
|
|
+ <div class="chart" v-if="curMonthCount.show">
|
|
|
|
+ <div class="chart_title">本月项目数量</div>
|
|
|
|
+ <DuoToneChart :datas="curMonthCount.data"></DuoToneChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目规模 -->
|
|
|
|
+ <div class="chart" v-if="curMonthScale.show">
|
|
|
|
+ <div class="chart_title">本月项目规模</div>
|
|
|
|
+ <BarLineChart :datas="curMonthScale.data" :options="curMonthScale.options"></BarLineChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目数量分布 -->
|
|
|
|
+ <div class="chart" v-if="curMonthCountArea.show">
|
|
|
|
+ <div class="chart_title">本月项目数量分布</div>
|
|
|
|
+ <MapChart :datas="curMonthCountArea.data" :options="curMonthCountArea.options"></MapChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目规模分布 -->
|
|
|
|
+ <div class="chart" v-if="curMonthScaleArea.show">
|
|
|
|
+ <div class="chart_title">本月项目规模分布</div>
|
|
|
|
+ <MapChart :datas="curMonthScaleArea.data" :options="curMonthScaleArea.options"></MapChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目数量TOP10采购行业 7-->
|
|
|
|
+ <div class="chart" v-if="countTop.show">
|
|
|
|
+ <div class="chart_title">本月项目数量TOP10采购行业</div>
|
|
|
|
+ <DuoToneChart :datas="countTop.data"></DuoToneChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目规模TOP10采购行业 8-->
|
|
|
|
+ <div class="chart" v-if="scaleTop.show">
|
|
|
|
+ <div class="chart_title">本月项目规模TOP10采购行业</div>
|
|
|
|
+ <DuoToneChart :datas="scaleTop.data"></DuoToneChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目平均规模TOP10采购行业 9-->
|
|
|
|
+ <div class="chart" v-if="averageTop.show">
|
|
|
|
+ <div class="chart_title">本月项目平均规模TOP10采购行业</div>
|
|
|
|
+ <DuoToneChart :datas="averageTop.data"></DuoToneChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月中标企业注册地分布 10-->
|
|
|
|
+ <div class="chart" v-if="curMonthRegArea.show">
|
|
|
|
+ <div class="chart_title">本月中标企业注册地分布</div>
|
|
|
|
+ <MapChart :datas="curMonthRegArea.data" :options="curMonthRegArea.options"></MapChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月中标企业注册资本分布 11-->
|
|
|
|
+ <div class="chart" v-if="capitalTop.show">
|
|
|
|
+ <div class="chart_title">本月中标企业注册资本分布</div>
|
|
|
|
+ <DuoToneChart :datas="capitalTop.data" :single="true"></DuoToneChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月中标企业中标项目数量分布 12-->
|
|
|
|
+ <div class="chart" v-if="curMonthBidCount.show">
|
|
|
|
+ <div class="chart_title">本月中标企业中标项目数量分布</div>
|
|
|
|
+ <BarLineChart :datas="curMonthBidCount.data" :options="curMonthBidCount.options"></BarLineChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月采购单位排行榜 13-->
|
|
|
|
+ <div class="chart" v-if="unitTop.show">
|
|
|
|
+ <div class="chart_title">本月采购单位排行榜</div>
|
|
|
|
+ <DuoToneChart :datas="unitTop.data"></DuoToneChart>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月中标企业排行榜 14 -->
|
|
|
|
+ <div class="chart" v-if="bidEntTop.show">
|
|
|
|
+ <ProjectTop type="winner" title="本月中标企业排行榜" :data="bidEntTop.data"></ProjectTop>
|
|
|
|
+ </div>
|
|
|
|
+ <!-- 本月项目规模排行榜 15 -->
|
|
|
|
+ <div class="chart" v-if="curScaleTop.show">
|
|
|
|
+ <ProjectTop type="bidamount" title="本月项目规模排行榜" :data="curScaleTop.data"></ProjectTop>
|
|
</div>
|
|
</div>
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="echartsView" v-if="isFinish">
|
|
|
|
- <!-- 项目数量 -->
|
|
|
|
- <div class="chart" v-if="pCount.show">
|
|
|
|
- <div class="chart_title">项目数量</div>
|
|
|
|
- <BarLineChart :datas="pCount.data" :options="pCount.options"></BarLineChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 项目规模 -->
|
|
|
|
- <div class="chart" v-if="pScale.show">
|
|
|
|
- <div class="chart_title">项目规模</div>
|
|
|
|
- <BarLineChart :datas="pScale.data" :options="pScale.options"></BarLineChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目数量 -->
|
|
|
|
- <div class="chart" v-if="curMonthCount.show">
|
|
|
|
- <div class="chart_title">本月项目数量</div>
|
|
|
|
- <DuoToneChart :datas="curMonthCount.data"></DuoToneChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目规模 -->
|
|
|
|
- <div class="chart" v-if="curMonthScale.show">
|
|
|
|
- <div class="chart_title">本月项目规模</div>
|
|
|
|
- <BarLineChart :datas="curMonthScale.data" :options="curMonthScale.options"></BarLineChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目数量分布 -->
|
|
|
|
- <div class="chart" v-if="curMonthCountArea.show">
|
|
|
|
- <div class="chart_title">本月项目数量分布</div>
|
|
|
|
- <MapChart :datas="curMonthCountArea.data" :options="curMonthCountArea.options"></MapChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目规模分布 -->
|
|
|
|
- <div class="chart" v-if="curMonthScaleArea.show">
|
|
|
|
- <div class="chart_title">本月项目规模分布</div>
|
|
|
|
- <MapChart :datas="curMonthScaleArea.data" :options="curMonthScaleArea.options"></MapChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目数量TOP10采购行业 7-->
|
|
|
|
- <div class="chart" v-if="countTop.show">
|
|
|
|
- <div class="chart_title">本月项目数量TOP10采购行业</div>
|
|
|
|
- <DuoToneChart :datas="countTop.data"></DuoToneChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目规模TOP10采购行业 8-->
|
|
|
|
- <div class="chart" v-if="scaleTop.show">
|
|
|
|
- <div class="chart_title">本月项目规模TOP10采购行业</div>
|
|
|
|
- <DuoToneChart :datas="scaleTop.data"></DuoToneChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目平均规模TOP10采购行业 9-->
|
|
|
|
- <div class="chart" v-if="averageTop.show">
|
|
|
|
- <div class="chart_title">本月项目平均规模TOP10采购行业</div>
|
|
|
|
- <DuoToneChart :datas="averageTop.data"></DuoToneChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月中标企业注册地分布 10-->
|
|
|
|
- <div class="chart" v-if="curMonthRegArea.show">
|
|
|
|
- <div class="chart_title">本月中标企业注册地分布</div>
|
|
|
|
- <MapChart :datas="curMonthRegArea.data" :options="curMonthRegArea.options"></MapChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月中标企业注册资本分布 11-->
|
|
|
|
- <div class="chart" v-if="capitalTop.show">
|
|
|
|
- <div class="chart_title">本月中标企业注册资本分布</div>
|
|
|
|
- <DuoToneChart :datas="capitalTop.data" :single="true"></DuoToneChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月中标企业中标项目数量分布 12-->
|
|
|
|
- <div class="chart" v-if="curMonthBidCount.show">
|
|
|
|
- <div class="chart_title">本月中标企业中标项目数量分布</div>
|
|
|
|
- <BarLineChart :datas="curMonthBidCount.data" :options="curMonthBidCount.options"></BarLineChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月采购单位排行榜 13-->
|
|
|
|
- <div class="chart" v-if="unitTop.show">
|
|
|
|
- <div class="chart_title">本月采购单位排行榜</div>
|
|
|
|
- <DuoToneChart :datas="unitTop.data"></DuoToneChart>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月中标企业排行榜 14 -->
|
|
|
|
- <div class="chart" v-if="bidEntTop.show">
|
|
|
|
- <ProjectTop type="winner" title="本月中标企业排行榜" :data="bidEntTop.data"></ProjectTop>
|
|
|
|
- </div>
|
|
|
|
- <!-- 本月项目规模排行榜 15 -->
|
|
|
|
- <div class="chart" v-if="curScaleTop.show">
|
|
|
|
- <ProjectTop type="bidamount" title="本月项目规模排行榜" :data="curScaleTop.data"></ProjectTop>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -112,6 +115,8 @@ import { dateFormatter } from '@/utils/globalFunctions'
|
|
import BarLineChart from '@/components/chart/BarLineChart'
|
|
import BarLineChart from '@/components/chart/BarLineChart'
|
|
import DuoToneChart from '@/components/chart/DuoToneChart'
|
|
import DuoToneChart from '@/components/chart/DuoToneChart'
|
|
import MapChart from '@/components/chart/MapChart'
|
|
import MapChart from '@/components/chart/MapChart'
|
|
|
|
+import Empty from '@/components/common/Empty'
|
|
|
|
+
|
|
export default {
|
|
export default {
|
|
name: 'page_week',
|
|
name: 'page_week',
|
|
components: {
|
|
components: {
|
|
@@ -120,14 +125,17 @@ export default {
|
|
ProjectTop,
|
|
ProjectTop,
|
|
BarLineChart,
|
|
BarLineChart,
|
|
DuoToneChart,
|
|
DuoToneChart,
|
|
|
|
+ Empty,
|
|
MapChart
|
|
MapChart
|
|
},
|
|
},
|
|
data () {
|
|
data () {
|
|
return {
|
|
return {
|
|
|
|
+ canQuery: true,
|
|
isWeekIndex: 0,
|
|
isWeekIndex: 0,
|
|
yearmonth: '', // 第一个月报的年份
|
|
yearmonth: '', // 第一个月报的年份
|
|
start: 0,
|
|
start: 0,
|
|
end: 0,
|
|
end: 0,
|
|
|
|
+ nodata: false,
|
|
keywordsGroup: '', // 关键词组
|
|
keywordsGroup: '', // 关键词组
|
|
// 项目数量 1
|
|
// 项目数量 1
|
|
pCount: {
|
|
pCount: {
|
|
@@ -272,11 +280,25 @@ export default {
|
|
isFinish: false
|
|
isFinish: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- computed: {},
|
|
|
|
- created () {
|
|
|
|
|
|
+ computed: {
|
|
|
|
+ getQueryTime () {
|
|
|
|
+ const paramsDate = this.$route.query.start
|
|
|
|
+ if (paramsDate) {
|
|
|
|
+ const paramsData = {
|
|
|
|
+ year: dateFormatter(paramsDate * 1000, 'yyyy'),
|
|
|
|
+ month: Number(dateFormatter(paramsDate * 1000, 'MM')).toString(),
|
|
|
|
+ ym: dateFormatter(paramsDate * 1000, 'yyyyMM'),
|
|
|
|
+ start: this.$route.query.start,
|
|
|
|
+ end: this.$route.query.end
|
|
|
|
+ }
|
|
|
|
+ return paramsData
|
|
|
|
+ }
|
|
|
|
+ return false
|
|
|
|
+ }
|
|
|
|
+ },
|
|
|
|
+ mounted () {
|
|
this.getFirst()
|
|
this.getFirst()
|
|
},
|
|
},
|
|
- mounted () {},
|
|
|
|
methods: {
|
|
methods: {
|
|
dateFormatter,
|
|
dateFormatter,
|
|
getFirst () {
|
|
getFirst () {
|
|
@@ -297,9 +319,12 @@ export default {
|
|
if (month < 10) {
|
|
if (month < 10) {
|
|
month = '0' + month
|
|
month = '0' + month
|
|
}
|
|
}
|
|
- console.log(year, month)
|
|
|
|
const preTime = year + '' + month
|
|
const preTime = year + '' + month
|
|
- this.getReportList(preTime)
|
|
|
|
|
|
+ let time = preTime
|
|
|
|
+ if (this.getQueryTime) {
|
|
|
|
+ time = this.getQueryTime.ym
|
|
|
|
+ }
|
|
|
|
+ this.getReportList(time)
|
|
},
|
|
},
|
|
// 选择月报
|
|
// 选择月报
|
|
selectYear (data) {
|
|
selectYear (data) {
|
|
@@ -307,24 +332,32 @@ export default {
|
|
this.getReportList(data)
|
|
this.getReportList(data)
|
|
},
|
|
},
|
|
getReportList (time) {
|
|
getReportList (time) {
|
|
- console.log(time)
|
|
|
|
|
|
+ console.log(time, 'times')
|
|
const setyear = time.slice(0, 4)
|
|
const setyear = time.slice(0, 4)
|
|
const that = this
|
|
const that = this
|
|
getReportIndex({ ym: setyear }).then((res) => {
|
|
getReportIndex({ ym: setyear }).then((res) => {
|
|
if (res.data && res.data.list && res.data.list.length !== 0) {
|
|
if (res.data && res.data.list && res.data.list.length !== 0) {
|
|
- res.data.list.forEach(function (item) {
|
|
|
|
|
|
+ let resultStatus = false
|
|
|
|
+ res.data.list.forEach(function (item, index) {
|
|
if (item.pushtime) {
|
|
if (item.pushtime) {
|
|
item.pushtime = dateFormatter(item.pushtime * 1000, 'yyyy/MM/dd')
|
|
item.pushtime = dateFormatter(item.pushtime * 1000, 'yyyy/MM/dd')
|
|
} else {
|
|
} else {
|
|
item.pushtime = ''
|
|
item.pushtime = ''
|
|
}
|
|
}
|
|
if (dateFormatter(item.startdate * 1000, 'yyyyMM') === time) {
|
|
if (dateFormatter(item.startdate * 1000, 'yyyyMM') === time) {
|
|
|
|
+ resultStatus = true
|
|
|
|
+ that.isWeekIndex = index
|
|
console.log(time)
|
|
console.log(time)
|
|
that.start = item.startdate
|
|
that.start = item.startdate
|
|
that.end = item.enddate
|
|
that.end = item.enddate
|
|
that.getDetail(that.start, that.end)
|
|
that.getDetail(that.start, that.end)
|
|
}
|
|
}
|
|
})
|
|
})
|
|
|
|
+ if (!resultStatus) {
|
|
|
|
+ this.nodata = true
|
|
|
|
+ } else {
|
|
|
|
+ this.nodata = false
|
|
|
|
+ }
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
@@ -427,7 +460,7 @@ export default {
|
|
v.name = v.item
|
|
v.name = v.item
|
|
v.value = v.count + '个'
|
|
v.value = v.count + '个'
|
|
v.parent = v.count / data[0].count * 100 + '%'
|
|
v.parent = v.count / data[0].count * 100 + '%'
|
|
- })
|
|
|
|
|
|
+ })
|
|
this.curMonthCount.show = true
|
|
this.curMonthCount.show = true
|
|
this.curMonthCount.data = data
|
|
this.curMonthCount.data = data
|
|
}
|
|
}
|
|
@@ -489,7 +522,7 @@ export default {
|
|
v.name = v.buyerclass
|
|
v.name = v.buyerclass
|
|
v.value = v.count + '个'
|
|
v.value = v.count + '个'
|
|
v.parent = v.count / data[0].count * 100 + '%'
|
|
v.parent = v.count / data[0].count * 100 + '%'
|
|
- })
|
|
|
|
|
|
+ })
|
|
this.countTop.show = true
|
|
this.countTop.show = true
|
|
this.countTop.data = data
|
|
this.countTop.data = data
|
|
}
|
|
}
|
|
@@ -544,7 +577,7 @@ export default {
|
|
this.capitalTop.data = data
|
|
this.capitalTop.data = data
|
|
}
|
|
}
|
|
},
|
|
},
|
|
- //
|
|
|
|
|
|
+ //
|
|
formatCurMonthBidCountData (data) {
|
|
formatCurMonthBidCountData (data) {
|
|
if (data && data.length > 0) {
|
|
if (data && data.length > 0) {
|
|
const rows = []
|
|
const rows = []
|