let app = new Vue({
el: '#app',
data () {
return {
goUrl: '',
env: 'prd',
fling: false, //水球光泽
centerOriginalConfig6: '',
rightAdd: {},// 左边新增筛选参数
projectNum: '', // 项目列表弹窗顶部类目筛选条件
centerType: true, // 中间3D饼图
boardType: '', // 哪边的项目看板
pullShow: false, // 选择年份弹窗
pollList: [],
mockData: false,// 是否使用修改的数据
year: '', // 选择的年份
boardUrl: '', // 跳转路径
boardTipShow: false, // 项目看板弹窗专用
lineCommonCompany: [], //双柱状图弹窗上面的折线图x轴
commonCompanyAll: [], // 公司包括编码
changeLine: true,
versions: true, // 是否使用接口数据数据
app_token: '',
centerShow: false, // 中间内容显示
echartR4Chart: '',// 倒数第二个专用
echartR5Chart: '', // 倒是第一个专用
myChartTip1: '', // 弹窗单个柱状图专用
myChartTip2: '', // 弹窗两个柱状图专用
myChartTip3: '', // 弹窗两个柱状图专用
echartEnterpriseShow: false, // 企业额度分析控制
mapChart: '',//地图专用echarts
chartCarousel: '',//做大屏轮播专用echarts
mapTipShow: false,
echartSingleTipShow: false,
echartDoubleTipShow: false,
projectListTipShow: false, //项目列表专属弹窗
titleUrl: '',
titleName: '',
yellowCount: 0, // 黄圈轮播参数
yellowPosition: 40,// 黄圈悬浮窗位置参数
yellowType: true, // 黄圈悬浮停止轮播
echartR1Fd: true,
echartR2Fd: true,
echartC2Fd: true,
echartR3Fd: true,
time: '', // 页面上绑定的时间
timer: '', // 页面上的时间一秒定时器
timer2: '', // 黄圈专用2秒定时器
pieTime1: '', // 饼图轮播专用
pieTime2: '', // 饼图轮播专用
pieTime3: '', // 饼图轮播专用
pieTime4: '', // 饼图轮播专用
pieTime5: '', // 饼图轮播专用
pieTime6: '', // 饼图轮播专用
pieTime7: '', // 饼图轮播专用
pieTime8: '', // 饼图轮播专用
center1: center1,
showTip2: false,
showTip3: false,
list: [],
count: 0,
countType: 0,
geoCoordMap: {},
storageRecordConfig2: center9,
titleList: right1,
centerLeftList: right3,
storageRecordConfig: left11,
config5: {
rowNum: 9,
waitTime: 2000,
headerHeight: '40',
header: ["项目名称", "所属组织", '实施主体', '建设性质(新建/续建)', '产业类别', '建设地点', '2022年投资完成额(万元)'],
data: [
["青银二广高速公路太原联络线建设PPP项目", "交控集团", "山西路桥建设集团有限公司", "新建", "交通运输业", "山西省太原市、晋中市", "148,086.00"],
["国道241、省道岚马线汾河水库段改线工程", "交控集团", "太原国省道汾河水库段建设管理有限公司", "续建", "交通运输业", "山西省 太原市、吕梁市", "165,314.33"],
["路桥科技中心", "交控集团", "山西路桥集团多经营有限公司", "续建", "建筑房地产", "山西省太原市", "8,098.26"],
["路桥科研基地", "交控集团", "山西路桥集团多经有限公司", "续建", "建筑房地产", "山西省太原市", "6,596.56"],
["武宿高速充电站建设", "交控集团", "山西交通运输投融资集团有限责任公司", "新建", "新能源", "山西省太原市", "100.00"],
["山西交通研创商务基地项目", "交控集团", "山西交通物流集团有限公司", "续建", "建筑房地产", "山西省太原市", "4,097.00"],
["山西省交通科学研究院产业化基地", "交控集团", "山西省交通科技研发有限公司", "续建", "建筑房地产", "山西省太原市武洛街27号", "3,242.00"],
["太长高速公路太原南收费站(二期工程暨龙城服务区)项目", "交控集团", "山西省交通开发投资集团有限公司龙城服务区发展分公司", "续建", "建筑房地产", "山西省太原市", "3,580.00"],
["山西转型综改示范区中小企业产业园项目", "交控集团", "山西交投综改园区开发有限公司", "续建", "建筑房地产", "山西省太原市", "14,432.00"]
],
align: ["center", "center", "center", "center", "center", "center", "center"],
headerBGC: "#153A62",
oddRowBGC: "#061F42",
evenRowBGC: "#0C284A",
},
originalConfig6: [],
config6: listPop
}
},
created () {
this.time = formatDate()
this.timer = setInterval(() => {
this.time = formatDate()
}, 1000)
this.timer2 = setInterval(() => {
this.yellowType && this.changeYellow()
}, 2000)
},
beforeDestroy () {
if (this.timer) {
clearInterval(this.timer);
}
if (this.timer2) {
clearInterval(this.timer2);
}
},
mounted () {
this.getUrlParams()
this.countYear()
},
methods: {
// 解决乘法失去精度
numMulti (num1, num2) {
var baseNum = 0;
try {
baseNum += num1.toString().split(".")[1].length;
} catch (e) {
}
try {
baseNum += num2.toString().split(".")[1].length;
} catch (e) {
}
return Number(num1.toString().replace(".", "")) * Number(num2.toString().replace(".", "")) / Math.pow(10, baseNum);
},
// 解决减法失去精度
numSub (num1, num2) {
var baseNum, baseNum1, baseNum2;
var precision;// 精度
try {
baseNum1 = num1.toString().split(".")[1].length;
} catch (e) {
baseNum1 = 0;
}
try {
baseNum2 = num2.toString().split(".")[1].length;
} catch (e) {
baseNum2 = 0;
}
baseNum = Math.pow(10, Math.max(baseNum1, baseNum2));
precision = (baseNum1 >= baseNum2) ? baseNum1 : baseNum2;
return ((num1 * baseNum - num2 * baseNum) / baseNum).toFixed(precision);
},
// 获取地址栏参数
getUrlParams (id) {
let url = window.location.href
// 通过 ? 分割获取后面的参数字符串
let urlStr = url.split('?')[1]
if (!urlStr) {
this.comeIn()
return
}
// 创建空对象存储参数
let obj = {};
// 再通过 & 将每一个参数单独分割出来
let paramsArr = urlStr.split('&')
for (let i = 0, len = paramsArr.length; i < len; i++) {
// 再通过 = 将每一个参数分割为 key:value 的形式
let arr = paramsArr[i].split('=')
obj[arr[0]] = arr[1];
}
if (obj.model) {
obj.model == 'A' || obj.model == 'a' ? this.mockData = false : this.mockData = true
}
obj.env && (this.env = obj.env)
this.goUrl = (obj.env == 'SIT' || obj.env == 'sit') ? '172.21.3.68:8081' : (obj.env == 'UAT' || obj.env == 'uat') ? '172.21.3.149:8081' : '172.21.3.149:8081'
this.comeIn()
},
// 计算展示的年份
countYear () {
this.year = new Date().getFullYear()
for (i = 2022; true; i++) {
if (i == this.year + 3) {
this.pollList.push(i)
return
} else {
this.pollList.push(i)
}
}
},
comeIn () {
if (this.versions) {
// 接口版
this.getAppToken()
setTimeout(() => {
this.changeTopColor()
// 大屏三
this.initChartR5()
this.changeYellow()
})
} else {
// 假数据版
setTimeout(() => {
this.initChartL1()
this.initChartL2()
this.initChartL3()
this.initChartL4()
this.initChartL5()
this.initChartL6()
this.initChartL7()
this.initChartL8()
this.initChartL10()
this.initChartL11()
this.changeTopColor()
// 大屏二
this.initChinaChart()
// 大屏三
this.initChartR1()
this.initChartR2()
this.initChartR3()
this.changeYellow()
})
}
},
chooseTime (value) {
let that = this
this.backChina()
this.year = value
that.fling = false
that.destroyCharts()
that.closeTap()
this.pullShow = false
setTimeout(item => {
that.comeIn()
})
},
destroyCharts () {
this.pieTime1 && clearInterval(this.pieTime1);
this.pieTime2 && clearInterval(this.pieTime2);
this.pieTime3 && clearInterval(this.pieTime3);
this.pieTime4 && clearInterval(this.pieTime4);
this.pieTime5 && clearInterval(this.pieTime5);
this.pieTime6 && clearInterval(this.pieTime6);
this.pieTime7 && clearInterval(this.pieTime7);
this.pieTime8 && clearInterval(this.pieTime8);
this.left10Chart ? this.left10Chart.dispose() : ''
this.left1Chart ? (this.left1Chart.destroy(), this.left1Chart = '') : ''
this.left2Chart ? (this.left2Chart.destroy(), this.left2Chart = '') : ''
this.left3Chart ? (this.left3Chart.destroy(), this.left3Chart = '') : ''
this.left4Chart ? (this.left4Chart.destroy(), this.left4Chart = '') : ''
this.left5Chart ? (this.left5Chart.destroy(), this.left5Chart = '') : ''
this.left6Chart ? (this.left6Chart.destroy(), this.left6Chart = '') : ''
this.left7Chart ? this.left7Chart.dispose() : ''
this.left8Chart ? this.left8Chart.dispose() : ''
this.left9Chart ? this.left9Chart.dispose() : ''
this.chartCarousel ? this.chartCarousel.dispose() : ''
this.myChartTip1 ? this.myChartTip1.dispose() : ''
this.myChartTip2 ? this.myChartTip2.dispose() : ''
this.myChartTip3 ? this.myChartTip3.dispose() : ''
this.left11Chart ? this.left11Chart.dispose() : ''
this.right1Chart ? this.right1Chart.dispose() : ''
this.right2Chart ? this.right2Chart.dispose() : ''
this.right3Chart ? this.right3Chart.dispose() : ''
this.echartR4Chart ? this.echartR4Chart.dispose() : ''
this.echartR5Chart ? this.echartR5Chart.dispose() : ''
this.center1Chart ? (this.center1Chart.destroy(), this.center1Chart = '') : ''
// this.center1Chart ? this.center1Chart.dispose() : ''
this.center2Chart ? this.center2Chart.dispose() : ''
this.center3Chart ? this.center3Chart.dispose() : ''
this.center4Chart ? (this.center4Chart.destroy(), this.center4Chart = '') : ''
// this.center4Chart ? this.center4Chart.dispose() : ''
this.mapChart ? this.mapChart.dispose() : ''
},
// 获取token
getAppToken () {
let value = {}
// dev环境
if (this.env == 'sit' || this.env == 'SIT') {
// SIT环境
value = {
"appId": "68dp",
"appSecret": "9ErhY^O{n?@Pc#eb7HYX",
"tenantid": "",
// "accountId": "1635498801198269440",
"accountId": "1686324824621711360", // 新
"language": "zh_CN"
}
} else if (this.env == 'uat' || this.env == 'UAT') {
// UAT环境
value = {
"appId": "68dp",
"appSecret": "9ErhY^O{n?@Pc#eb7HYX",
"tenantid": "",
// "accountId": "1635498801198269440",
"accountId": "1591303792463183872", // 新
"language": "zh_CN"
}
} else {
// prd环境
value = {
"appId": "68dp",
"appSecret": "9ErhY^O{n?@Pc#eb7HYX",
"tenantid": "",
// "accountId": "1635498801198269440",
"accountId": "1591303792463183872", // 新
"language": "zh_CN"
}
}
post('/ierp/api/getAppToken.do', value).then(res => {
this.app_token = res.data.app_token
this.getAccessToken()
})
},
// 获取AccessToken
getAccessToken () {
let value = {}
if (this.env == 'sit' || this.env == 'SIT') {
// SIT环境
value = {
// "user": "19900000001", //登录用户手机号
"user": "15835113238", // 新
"apptoken": this.app_token, //应用令牌
"tenantid": "", //租户id
// "accountId": "1635498801198269440",//数据中心id
"accountId": "1686324824621711360",// 新
"usertype": "Mobile"
}
} else if (this.env == 'uat' || this.env == 'UAT') {
// UAT环境
value = {
// "user": "19900000001", //登录用户手机号
"user": "15835113238", // 新
"apptoken": this.app_token, //应用令牌
"tenantid": "", //租户id
// "accountId": "1635498801198269440",//数据中心id
"accountId": "1591303792463183872",// 新
"usertype": "Mobile"
}
} else {
// PRD环境
value = {
// "user": "19900000001", //登录用户手机号
"user": "15835113238", // 新
"apptoken": this.app_token, //应用令牌
"tenantid": "", //租户id
// "accountId": "1635498801198269440",//数据中心id
"accountId": "1591303792463183872",// 新
"usertype": "Mobile"
}
}
post('/ierp/api/login.do', value).then(res => {
this.access_token = res.data.access_token
this.getOrg()
})
},
// 获取组织架构列表
getOrg () {
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
}
get('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getOrgName', value).then(res => {
this.commonCompanyAll = res.data
commonCompany = res.data.map(item => item.simplename)
// 左边
this.getDate1()
this.getDate2()
this.getDate3()
this.getDate4()
this.getDate5()
this.getDate6()
// 右边
this.getDate7()
this.getDate8()
this.getDate9()
this.getDate10()
// this.getDate11() // 右下A
this.getDate12() // 右下B
// 中间
this.getDate14()
resolve(1);
})
});
},
// 获取左边企业额度分析
getDate1 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
"mdnb_combofield": this.mockData ? 'B' : 'A',
"mdnb_datefield": this.year + '-01-01',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/tqqyedfx', value).then(res => {
if (res.data.rows.length > 0) {
let dataList = res.data.rows[0].entryentity
left3 = [[], [], []]
dataList.forEach(item => {
// 已用额度
left3[0].push(that.yuanChange(item.mdnb_amountfield26))
// 剩余额度
left3[1].push(that.yuanChange(item.mdnb_amountfield27))
// 总额度
left3[2].push(that.yuanChange(item.mdnb_amountfield25))
})
this.initChartL4(dataList)
}
resolve(1);
})
});
},
// 获取左边投资计划分析
getDate2 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
"mdnb_combofield": this.mockData ? 'B' : 'A',
"mdnb_datefield": this.year + '-01-01',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/tqtzjhfx', value).then(res => {
if (res.data.rows.length > 0) {
let dataList = res.data.rows[0]
left4 = []
left4[0] = dataList.mdnb_amountfield7
left4[1] = dataList.mdnb_amountfield13
left4[2] = dataList.mdnb_amountfield23
left4[3] = dataList.mdnb_amountfield33
left4[4] = dataList.mdnb_integerfield
left5[0].y = that.yuanChange(dataList.mdnb_amountfield9)
left5[0].num = dataList.mdnb_integerfield15
left5[1].y = that.yuanChange(dataList.mdnb_amountfield43)
left5[1].num = dataList.mdnb_integerfield14
left6[0].y = that.yuanChange(dataList.mdnb_amountfield15)
left6[0].num = dataList.mdnb_integerfield16
left6[1].y = that.yuanChange(dataList.mdnb_amountfield16)
left6[1].num = dataList.mdnb_integerfield17
that.initChartL2()
that.initChartL3()
}
resolve(1);
})
});
},
// 获取左边产业布局分析
getDate3 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
"mdnb_combofield": this.mockData ? 'B' : 'A',
"mdnb_datefield": this.year + '-01-01',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/tqcebjfx', value).then(res => {
if (res.data.rows.length > 0) {
let dataList = this.classify(res.data.rows[0].mdnb_entryentity, 'mdnb_textfield1')
// 传统产业分析
// if (dataList[0].data.length > left7.length || dataList[0].data.length == left7.length) {
// for (let i = 0; i < left7.length; i++) {
// left7[i].num = dataList[0].data[i].mdnb_integerfield13
// left7[i].y = dataList[0].data[i].mdnb_amountfield8
// }
// this.initChartL5()
// }
dataList[0].data.forEach((item, i) => {
left7[i] = {}
left7[i].num = item.mdnb_integerfield13
left7[i].y = that.yuanChange(item.mdnb_amountfield8)
left7[i].name = item.mdnb_textfield2
})
this.initChartL5()
// 战略性新兴产业
// if (dataList[1].data.length > left8.length || dataList[1].data.length == left8.length) {
// for (let i = 0; i < left8.length; i++) {
// left8[i].num = dataList[1].data[i].mdnb_integerfield13
// left8[i].y = dataList[1].data[i].mdnb_amountfield8
// }
// this.initChartL6()
// }
dataList[1].data.forEach((item, i) => {
left8[i] = {}
left8[i].num = item.mdnb_integerfield13
left8[i].y = that.yuanChange(item.mdnb_amountfield8)
left8[i].name = item.mdnb_textfield2
})
this.initChartL6()
// 特色优势产业
// if (dataList[2].data.length > left9.length || dataList[2].data.length == left9.length) {
// for (let i = 0; i < left9.length; i++) {
// left9[i].num = dataList[2].data[i].mdnb_integerfield13
// left9[i].y = dataList[2].data[i].mdnb_amountfield8
// }
// this.initChartL7()
// }
dataList[2].data.forEach((item, i) => {
left9[i] = {}
left9[i].num = item.mdnb_integerfield13
left9[i].y = that.yuanChange(item.mdnb_amountfield8)
left9[i].name = item.mdnb_textfield2
})
this.initChartL7()
// 公共基础等产业
// if (dataList[3].data.length > left10.length || dataList[3].data.length == left10.length) {
// for (let i = 0; i < left10.length; i++) {
// left10[i].num = dataList[3].data[i].mdnb_integerfield13
// left10[i].y = dataList[3].data[i].mdnb_amountfield8
// }
// this.initChartL8()
// }
dataList[3].data.forEach((item, i) => {
left10[i] = {}
left10[i].num = item.mdnb_integerfield13
left10[i].y = that.yuanChange(item.mdnb_amountfield8)
left10[i].name = item.mdnb_textfield2
})
this.initChartL8()
}
resolve(1);
})
});
},
// 获取左边项目阶段分析
getDate4 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
"mdnb_combofield": this.mockData ? 'B' : 'A',
"mdnb_datefield": this.year + '-01-01',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/tqxmjdfx', value).then(res => {
if (res.data.rows.length > 0) {
let dataList = res.data.rows[0]
// 固定资产进度分布
// 特别监管
left13[0][0][2] = dataList.mdnb_integerfield1
left13[0][0][3] = this.yuanChange(dataList.mdnb_amountfield241)
left13[0][1][2] = dataList.mdnb_integerfield3
left13[0][1][3] = this.yuanChange(dataList.mdnb_amountfield5)
left13[0][2][2] = dataList.mdnb_integerfield5
left13[0][2][3] = this.yuanChange(dataList.mdnb_amountfield21)
left13[0][3][2] = dataList.mdnb_integerfield7
left13[0][3][3] = this.yuanChange(dataList.mdnb_amountfield29)
// 备案
left13[1][0][2] = dataList.mdnb_integerfield2
left13[1][0][3] = this.yuanChange(dataList.mdnb_amountfield341)
left13[1][1][2] = dataList.mdnb_integerfield4
left13[1][1][3] = this.yuanChange(dataList.mdnb_amountfield11)
left13[1][2][2] = dataList.mdnb_integerfield6
left13[1][2][3] = this.yuanChange(dataList.mdnb_amountfield28)
left13[1][3][2] = dataList.mdnb_integerfield8
left13[1][3][3] = this.yuanChange(dataList.mdnb_amountfield30)
// 股权类进度分布
// 特别监管
left14[0][0][2] = dataList.mdnb_integerfield11
left14[0][0][3] = this.yuanChange(dataList.mdnb_amountfield2411)
left14[0][1][2] = dataList.mdnb_integerfield31
left14[0][1][3] = this.yuanChange(dataList.mdnb_amountfield51)
left14[0][2][2] = dataList.mdnb_integerfield51
left14[0][2][3] = this.yuanChange(dataList.mdnb_amountfield211)
left14[0][3][2] = dataList.mdnb_integerfield71
left14[0][3][3] = this.yuanChange(dataList.mdnb_amountfield291)
// 备案
left14[1][0][2] = dataList.mdnb_integerfield21
left14[1][0][3] = this.yuanChange(dataList.mdnb_amountfield3411)
left14[1][1][2] = dataList.mdnb_integerfield41
left14[1][1][3] = this.yuanChange(dataList.mdnb_amountfield111)
left14[1][2][2] = dataList.mdnb_integerfield61
left14[1][2][3] = this.yuanChange(dataList.mdnb_amountfield281)
left14[1][3][2] = dataList.mdnb_integerfield81
left14[1][3][3] = this.yuanChange(dataList.mdnb_amountfield301)
this.initChartL10()
this.initChartL11()
}
resolve(1);
})
});
},
// 获取左边投资额度分析
getDate5 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
"mdnb_combofield": this.mockData ? 'B' : 'A',
"mdnb_datefield": this.year + '-01-01',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/tqtzedfx', value).then(res => {
if (res.data.rows.length > 0) {
let dataList = res.data.rows[0]
that.fling = true
left1[0] = dataList.mdnb_amountfield
left1[1] = dataList.mdnb_amountfield1
left1[2] = dataList.mdnb_amountfield2
left2[0] = dataList.mdnb_decimalfield
left2[1] = dataList.mdnb_amountfield3
this.initChartL1()
}
resolve(1);
})
});
},
// 获取左边重点项目两线指标
getDate6 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
"mdnb_combofield": this.mockData ? 'B' : 'A',
"mdnb_datefield": this.year + '-01-01',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/tqzdlxzb', value).then(res => {
if (res.data.rows.length > 0) {
let dataList2 = this.classify(res.data.rows[0].mdnb_entryentity1, 'mdnb_textfield3')
// 左边的轮播
let dataList = []
dataList2.forEach((item, index) => {
dataList[index] = []
dataList[index][0] = item.data[0].mdnb_textfield18
dataList[index][1] = item.data[0].mdnb_textfield3
dataList[index][2] = that.numFormat(that.yuanChange(item.data[0].mdnb_amountfield24)) + '亿'
})
this.storageRecordConfig.data = dataList
this.storageRecordConfig = { ...this.storageRecordConfig }
// 右边的柱状图
left12 = []
dataList2.forEach((item, index) => {
left12[index] = [[], [], []]
for (let i = 0; i < item.data.length; i++) {
left12[index][0].push(item.data[i].mdnb_integerfield10)
left12[index][1].push(item.data[i].mdnb_integerfield12)
left12[index][2].push(item.data[i].mdnb_integerfield9)
}
})
that.initChartL9()
}
resolve(1);
})
});
},
// 获取右边顶部条数据
getDate7 () {
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getTabpageap', value).then(res => {
right1[0].number = res.data.mdnb_one_step
right1[2].number = res.data.mdnb_two_step
right1[4].number = res.data.mdnb_three_step
right1[6].number = res.data.mdnb_four_step
right1[8].number = res.data.mdnb_five_step
right1[10].number = res.data.mdnb_six_step
right1[12].number = res.data.mdnb_seven_step
right1[14].number = res.data.mdnb_eight_step
resolve(1);
})
});
},
// 获取右边中间左边的(正偏差/容差内/负偏差)
getDate8 () {
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getInvestSunstraction', value).then(res => {
right3[0].value = res.data.mdnb_projectnum_z
right3[0].value2 = res.data.mdnb_amountall_z
right3[1].value = res.data.mdnb_projectnum_r
right3[1].value2 = res.data.mdnb_amountall_r
right3[2].value = res.data.mdnb_projectnum_f
right3[2].value2 = res.data.mdnb_amountall_f
resolve(1);
})
});
},
// 获取右边中间右边的(预算额/已签合同额。。。)
getDate9 () {
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getUnitBudgetExecuteDate', value).then(res => {
res.data.forEach((item, index) => {
right4[index].value = this.yuanChange(item.mdnb_aheadmoney)
right4[index].value2 = this.yuanChange(item.mdnb_edmoney)
right4[index].value3 = this.yuanChange(item.mdnb_smoney)
right4[index].value4 = this.yuanChange(item.mdnb_jmoney)
right4[index].value5 = this.yuanChange(item.mdnb_fkmoney)
})
this.initChartR1()
resolve(1);
})
});
},
// 进度成本偏差
getDate10 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getInvestSunstractionGas', value).then(res => {
res.data.forEach((item, index) => {
right5[0][index][1] = that.numMulti(item.mdnb_amount_zb, 100)
right5[0][index][2] = that.yuanChange(item.mdnb_amount_z)
right5[1][index][1] = that.numMulti(item.mdnb_amount_nb, 100)
right5[1][index][2] = that.yuanChange(item.mdnb_amount_n)
right5[2][index][1] = that.numMulti(item.mdnb_amount_fb, 100)
right5[2][index][2] = that.yuanChange(item.mdnb_amount_f)
})
this.initChartR2()
resolve(1);
})
});
},
// 项目风险分析A
getDate11 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getUnitNoSolveDangerDate', value).then(res => {
res.data.forEach((item, index) => {
right6[index].value = that.numFormat(item.mdnb_height)
right6[index].value2 = that.numFormat(item.mdnb_midle)
right6[index].value3 = that.numFormat(item.mdnb_bottom)
})
this.initChartR3()
resolve(1);
})
});
},
// 项目风险分析B(雷达图)
getDate12 () {
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getUnitDangerPoraitDate', value).then(res => {
res.data.forEach((item, index) => {
right7[index][0] = item.mdnb_anquan
right7[index][1] = item.mdnb_fukuan
right7[index][2] = item.mdnb_hetong
right7[index][3] = item.mdnb_jiesuan
right7[index][4] = item.mdnb_jindu
right7[index][5] = item.mdnb_securty
})
this.getDate11()
resolve(1);
})
});
},
// 中间大屏数据
getDate14 () {
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
mock: this.mockData,
presetYear: this.year - 1
}
get('/ierp/kapi/v2/mdnb/mdnb_xmkb/presetdata/getKeyData', value).then(res => {
// 头部指标
if (!res.data) {
return
}
center4[0] = res.data.transformations.estateAmount
center4[1] = res.data.transformations.estateNum
center4[2] = res.data.transformations.figureAmount
center4[3] = res.data.transformations.figureNum
// 左投部指标
center1[0] = res.data.keyIndicators.totalSum
center1[1] = res.data.keyIndicators.total
center1[2] = res.data.keyIndicators.property
center1[3] = res.data.keyIndicators.invest
// 投资产业分布
if (res.data.distribution.length != 0) {
// for (let i = 0; i < center2.length; i++) {
// center2[i].y = that.yuanChange(res.data.distribution[i].amount)
// center2[i].value = that.yuanChange(res.data.distribution[i].amount)
// center2[i].num = res.data.distribution[i].count
// center2[i].typeno = res.data.distribution[i].typeno
// }
center2 = []
res.data.distribution.forEach((item, i) => {
center2[i] = {}
center2[i].name = item.type
center2[i].y = that.yuanChange(item.amount)
center2[i].value = that.yuanChange(item.amount)
center2[i].num = item.count
center2[i].typeno = item.typeno
})
}
// 投资执行情况
res.data.implementationStatus.forEach((item, index) => {
center3[index].value = that.yuanChange(item.plan)
center3[index].value2 = that.yuanChange(item.reality)
})
// 五个一体化
res.data.five.forEach((item, index) => {
center6[index] = { name: item.type, value: that.yuanChange(item.amount), typeno: item.typeno }
})
// 投资阶段分析
res.data.investmentStage.forEach((item, index) => {
center7[index] = { name: item.type, value: Number(item.num), value2: that.yuanChange(item.amount), typeno: item.typeno, sliced: false, selected: false }
})
// 重点项目监控
center8 = []
this.originalConfig6 = res.data.projectMonitoring
this.centerOriginalConfig6 = res.data.projectMonitoring
res.data.projectMonitoring.forEach((item, index) => {
center8.push({ value: item.amount, name: item.projectname, office: item.orgName })
})
// 中国地图
centerChina = []
res.data.investmentMap.forEach((item, index) => {
centerChina.push({ name: item.address, value: that.yuanChange(item.amount), value2: item.value2 })
})
// 项目状态
proState.projectStatus1 = that.numFormat(res.data.projectStatus.projectStatus1)
proState.projectStatus2 = that.numFormat(res.data.projectStatus.projectStatus2)
proState.projectStatus3 = that.numFormat(res.data.projectStatus.projectStatus3)
setTimeout(() => {
that.initChinaChart()
})
resolve(1);
})
});
},
// 右边穿透一级
rightPenetrateOne () {
let that = this
this.boardType = 'right'
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
projectStepCode: this.rightAdd.projectStepCode,
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getOneLevelData', value).then(res => {
res.data.forEach((item, index) => {
common4[index] = item.mdnb_projects
common5[index] = that.yuanChange(item.mdnb_amount_sl)
})
setTimeout(() => {
this.initChartLTip2('right')
this.initChartLTip3('right')
})
resolve(1);
})
});
},
// 右边穿透二级
rightPenetrateTwo (modelName, substraction, orgName) {
this.boardType = 'right'
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"request": {
isInsert: this.mockData ? '1' : '0',
modelName: this.rightAdd.modelName,
projectStepCode: this.rightAdd.projectStepCode,
substraction: this.rightAdd.substraction,
orgName
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_middle/getTwoLevelData', value).then(res => {
that.originalConfig6 = res.data
that.config6.data = []
if (this.projectNum == 311) {
that.config6.header = ["所属集团", "项目名称", '实施主体', '投中项目阶段', '投资总额(万元)']
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_unitcompany
that.config6.data[index][1] = item.mdnb_project_name
that.config6.data[index][2] = item.mdnb_implement_org
that.config6.data[index][3] = item.mdnb_projectstep_mid
that.config6.data[index][4] = that.numFormat(item.mdnb_investment_money / 10000)
})
} else if (this.projectNum == 312 || this.projectNum == 313) {
that.config6.header = ["所属集团", "项目名称", '实施主体', '容差百分比', '投资总额(万元)']
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_unitcompany
that.config6.data[index][1] = item.mdnb_project_name
that.config6.data[index][2] = item.mdnb_implement_org
that.config6.data[index][3] = that.numMulti(item.mdnb_percentagetolerance, 100) + '%'
that.config6.data[index][4] = that.numFormat(item.mdnb_investment_money / 10000)
})
} else if (this.projectNum == 314) {
that.config6.header = ["所属集团", "项目名称", '实施主体', '预算额(万元)', '已签订合同额(万元)', '产值认定额(万元)', '结算额(万元)', '付款申请额(万元)', '实际付款额(万元)']
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_unitcompany
that.config6.data[index][1] = item.mdnb_project_name
that.config6.data[index][2] = item.mdnb_implement_org
that.config6.data[index][3] = that.numFormat(item.mdnb_budgetamount / 10000)
that.config6.data[index][4] = that.numFormat(item.mdnb_contractamount / 10000)
that.config6.data[index][5] = that.numFormat(item.mdnb_outputamount / 10000)
that.config6.data[index][6] = that.numFormat(item.mdnb_settlementamount / 10000)
that.config6.data[index][7] = that.numFormat(item.mdnb_paymentamount / 10000)
that.config6.data[index][8] = that.numFormat(item.mdnb_actualpayamount / 10000)
})
} else if (this.projectNum == 315) {
that.config6.header = ["所属集团", "项目名称", '实施主体', '高风险项', '中风险项', '低风险项', '投资总额(万元)']
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_unitcompany
that.config6.data[index][1] = item.mdnb_project_name
that.config6.data[index][2] = item.mdnb_implement_org
that.config6.data[index][3] = item.mdnb_heigtdanger
that.config6.data[index][4] = item.mdnb_middledanger
that.config6.data[index][5] = item.mdnb_lowdanger
that.config6.data[index][6] = that.numFormat(item.mdnb_investment_money / 10000)
})
}
that.config6 = { ...that.config6 }
that.projectListTipShow = true
resolve(1);
})
});
},
// 排序方法
compare (property) {
return function (a, b) {
var value1 = a[property];
var value2 = b[property];
return value1 - value2; //降序只需要 return value2- value1
}
},
// 左边穿透一级
leftPenetrateOne (mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, typeNum, type, param, typeCTwo, paramCTwo) {
this.boardType = 'left'
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
mdnb_combofield: this.mockData ? 'B' : 'A',
mdnb_textfield11,
mdnb_textfield13,
mdnb_textfield16,
mdnb_textfield23,
mdnb_datefield: this.year + '-01-01'
},
pageSize: 1000
}
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/yjct', value).then(res => {
res.data.rows[0].mdnb_entryentity12.sort(that.compare('mdnb_integerfield19'))
if (res.data.rows.length > 0) {
if (typeNum == 2) {
common4 = []
common5 = []
res.data.rows[0].mdnb_entryentity12.forEach((item, index) => {
common4.push(item.mdnb_integerfield18)
common5.push(that.yuanChange(item.mdnb_amountfield12))
})
setTimeout(() => {
this.initChartLTip2('left', mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, type, param, typeCTwo, paramCTwo)
this.initChartLTip3('left', mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, type, param, typeCTwo, paramCTwo)
})
} else if (typeNum == 1) {
this.titleName == '项目数量' || this.titleName == '项目总数'
common3 = []
res.data.rows[0].mdnb_entryentity12.forEach((item, index) => {
(that.titleName == '项目数量' || that.titleName == '项目总数') ? common3.push(item.mdnb_integerfield18) : common3.push(that.yuanChange(item.mdnb_amountfield12))
})
this.initChartLTip('left', mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, type, param, typeCTwo, paramCTwo)
}
}
resolve(1);
})
});
},
// 左边穿透二级
leftPenetrateTwo (mdnb_textfield12, mdnb_textfield19, mdnb_textfield15, mdnb_textfield17, mdnb_textfield20, num) {
num && (this.projectNum = num)
this.boardType = 'left'
let that = this
if (that.versions) {
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
"data": {
mdnb_combofield: this.mockData ? 'B' : 'A',
mdnb_datefield: this.year + '-01-01',
mdnb_textfield12,
mdnb_textfield19,
mdnb_textfield15,
mdnb_textfield17,
mdnb_textfield20
},
pageSize: 1000
}
if (mdnb_textfield20) {
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/ejct', value).then(res => {
that.config6.data = []
if (res.data.rows.length > 0) {
that.originalConfig6 = res.data.rows[0].mdnb_entryentity11
that.config6.data = []
if (this.projectNum == 211 || this.projectNum == 212) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '已占用额度(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 2141) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 2142) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '是否主业', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = item.mdnb_textfield21
that.config6.data[index][6] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 2143) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '项目管理类型', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = item.mdnb_textfield22
that.config6.data[index][6] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 215) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '产业类别I级', '产业类别II级', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield9
that.config6.data[index][4] = item.mdnb_textfield10
that.config6.data[index][5] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 216) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '项目阶段', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = item.mdnb_textfield24
that.config6.data[index][6] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
}
}
that.config6 = { ...that.config6 }
that.projectListTipShow = true
resolve(1);
})
} else {
post('/ierp/kapi/v2/mdnb/mdnb_xmkb/mdnb_manager_preinvest/tzedfxzed', value).then(res => {
if (res.data.rows.length > 0) {
that.originalConfig6 = res.data.rows[0].mdnb_entryentity11
that.config6.data = []
if (this.projectNum == 211 || this.projectNum == 212) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '已占用额度(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 2141) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 2142) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '是否主业', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = item.mdnb_textfield21
that.config6.data[index][6] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 2143) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '项目管理类型', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = item.mdnb_textfield22
that.config6.data[index][6] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 215) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '产业类别I级', '产业类别II级', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield9
that.config6.data[index][4] = item.mdnb_textfield10
that.config6.data[index][5] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
} else if (this.projectNum == 216) {
that.config6.header = ["所属集团", "项目名称", '投资主体', '项目类型', '项目性质', '项目阶段', '本年度计划投资额(万元)']
res.data.rows[0].mdnb_entryentity11.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.mdnb_textfield7
that.config6.data[index][1] = item.mdnb_textfield6
that.config6.data[index][2] = item.mdnb_textfield8
that.config6.data[index][3] = item.mdnb_textfield25
that.config6.data[index][4] = item.mdnb_textfield26
that.config6.data[index][5] = item.mdnb_textfield24
that.config6.data[index][6] = that.numFormat(item.mdnb_amountfield22 / 10000)
})
}
that.config6 = { ...that.config6 }
that.projectListTipShow = true
}
resolve(1);
})
}
});
} else {
that.projectListTipShow = true
}
},
// 中间穿透一级 一个柱状图还是两个
centerPenetrateOne (type, param, typeNum, typeCTwo, paramCTwo, portType) {
this.boardType = 'center'
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
mock: this.mockData,
presetYear: this.year - 1,
type,
param
}
get('/ierp/kapi/v2/mdnb/mdnb_xmkb/presetdata/getPenetrationLevel1', value).then(res => {
if (typeNum == 1) {
common3 = []
res.data.keyIndicators.forEach((item, index) => {
if (param == 'cyplanamount') {
common3.push(that.yuanChange(item.cyplanamount))
}
if (param == 'cyplancount') {
common3.push(item.cyplancount)
}
if (param == 'szplanamount') {
common3.push(that.yuanChange(item.szplanamount))
}
if (param == 'szplancount') {
common3.push(item.szplancount)
}
if (param == 'investamount') {
common3.push(that.yuanChange(item.investamount))
}
if (param == 'projectcount') {
common3.push(item.projectcount)
}
if (param == 'gdzcamount') {
common3.push(that.yuanChange(item.gdzcamount))
}
if (param == 'gqtzamount') {
common3.push(that.yuanChange(item.gqtzamount))
}
if (param == 'ceiamount') {
common3.push(that.yuanChange(item.ceiamount))
}
if (param == 'cpneiamount') {
common3.push(that.yuanChange(item.cpneiamount))
}
if (param == 'ccheiamount') {
common3.push(that.yuanChange(item.ccheiamount))
}
if (param == 'cdiamount') {
common3.push(that.yuanChange(item.cdiamount))
}
if (param == 'cciamount') {
common3.push(that.yuanChange(item.cciamount))
}
})
setTimeout(() => {
this.initChartLTip('center', '', '', '', '', typeCTwo, paramCTwo, portType)
})
} else if (typeNum == 2) {
common4 = []
common5 = []
if (type == 'distribution') {
that.changeLine = false
that.lineCommonCompany = res.data.topData
common4 = res.data.topData.map(item => that.yuanChange(item.amount))
common5 = res.data.bottomData.map(item => that.yuanChange(item.amount))
} else {
if (param == 'new') {
res.data.keyIndicators.forEach((item, index) => {
common4.push(item.newcount)
common5.push(that.yuanChange(item.newamount))
})
} else if (param == 'renew') {
res.data.keyIndicators.forEach((item, index) => {
common4.push(item.renewcount)
common5.push(that.yuanChange(item.renewamount))
})
} else {
res.data.investmentMap.forEach((item, index) => {
common4.push(item.value2)
common5.push(that.yuanChange(item.amount))
})
}
}
setTimeout(() => {
this.initChartLTip2('center', '', '', '', '', type, param, typeCTwo, paramCTwo, portType)
this.initChartLTip3('center', '', '', '', '', type, param, typeCTwo, paramCTwo, portType)
})
} else if (typeNum == 3) {
// 山西地图
center5 = []
res.data.investmentMap.forEach((item, index) => {
center5.push({ name: item.address, value: that.yuanChange(item.amount), value2: item.value2 })
})
setTimeout(() => {
that.initProvinceChart()
});
}
resolve(1);
})
});
},
// 中间穿透二级
centerPenetrateTwo (type, param, orgNum, portType, proName) {
this.boardType = 'center'
let that = this
return new Promise((resolve, err) => {
let value = {
access_token: this.access_token,
mock: this.mockData,
presetYear: this.year - 1,
type,
param,
orgNum
}
that.config6.header[2] = '投资主体'
that.config6.header[5] = '年投资完成额(亿)'
if (portType == 1) {
get('/ierp/kapi/v2/mdnb/mdnb_xmkb/presetdata/MainPageMonthReportProject', value).then(res => {
that.config6.data = []
that.originalConfig6 = res.data
if (this.projectNum == 111) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "投资完成额(万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 112) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "产业类别I级", "产业类别II级", "投资完成额(万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.cylb
that.config6.data[index][4] = item.cylb2
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 1131) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "本年度计划投资额(万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 1132) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "投资完成额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 114) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "是否“两个转型”", "本年度计划投资额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.lgz
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 115) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "是否“五个一体化”", "本年度计划投资额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.wgy
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 116) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "建设阶段", "投资完成额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.stage
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 118) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "建设地点", "投资完成额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.buildaddr
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
}
that.config6 = { ...that.config6 }
that.projectListTipShow = true
resolve(1);
})
} else if (portType == 2) {
get('/ierp/kapi/v2/mdnb/mdnb_xmkb/presetdata/MainPagePlanProject', value).then(res => {
that.config6.data = []
that.originalConfig6 = res.data
if (this.projectNum == 111) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "投资完成额(万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 112) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "产业类别I级", "产业类别II级", "投资完成额(万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.cylb
that.config6.data[index][4] = item.cylb2
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 1131) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "本年度计划投资额(万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 1132) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "投资完成额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 114) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "是否“两个转型”", "本年度计划投资额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.lgz
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 115) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "是否“五个一体化”", "本年度计划投资额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.wgy
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 116) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "建设阶段", "投资完成额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.mdnb_quality
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
} else if (this.projectNum == 118) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "建设地点", "投资完成额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.buildaddr
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
}
that.config6 = { ...that.config6 }
that.projectListTipShow = true
resolve(1);
})
} else {
value = {
access_token: this.access_token,
mock: this.mockData,
presetYear: this.year - 1,
type: 'investmentMap',
param: proName,
orgNum
}
get('/ierp/kapi/v2/mdnb/mdnb_xmkb/presetdata/MainPageMonthReportProject', value).then(res => {
that.config6.data = []
that.originalConfig6 = res.data
if (this.projectNum == 118) {
that.config6.header = ["所属集团", "项目名称", "投资主体", "项目类型", "项目性质", "建设地点", "投资完成额 (万元)"]
res.data.forEach((item, index) => {
that.config6.data[index] = []
that.config6.data[index][0] = item.orgName
that.config6.data[index][1] = item.projectname
that.config6.data[index][2] = item.tzzt
that.config6.data[index][3] = item.projectkind
that.config6.data[index][4] = item.projectkinddetail
that.config6.data[index][5] = item.buildaddr
that.config6.data[index][6] = that.numFormat(item.amount / 10000)
})
}
that.config6 = { ...that.config6 }
that.projectListTipShow = true
resolve(1);
})
}
});
},
// 投中/投后黄圈轮播方法
yellowMouse (index) {
if (index % 2 == 0) {
this.yellowCount = index
this.yellowPosition = (index / 2 - 1) * 315 + 40
this.yellowType = false
this.changeYellow()
}
},
// 回到中国地图
backChina () {
this.centerShow = false
this.mapChart.dispose()
setTimeout(() => {
this.initChinaChart()
});
},
// 找企业编码
findCode (code) {
let a = this.commonCompanyAll.find((item, index) => {
return item.simplename == code
})
return a ? a.number.slice(0, 4) : ''
},
// 找项目编码
findProjectCode (a, b, type, e) {
if (type == 'center') {
return this.originalConfig6[e.rowIndex].projectno
// let c = this.originalConfig6.find(item => {
// return item.orgName == a && item.projectname == b
// })
// return c.projectno
} else if (type == 'right') {
return this.originalConfig6[e.rowIndex].mdnb_projectnumber
// let c = this.originalConfig6.find(item => {
// return item.mdnb_unitcompany == a && item.mdnb_project_name == b
// })
// return c.mdnb_projectnumber
} else if (type == 'left') {
return this.originalConfig6[e.rowIndex].mdnb_textfield14
// let c = this.originalConfig6.find(item => {
// return item.mdnb_textfield7 == a && item.mdnb_textfield6 == b
// })
// return c.mdnb_textfield14
} else if (type == 'center2') {
return this.centerOriginalConfig6[e.rowIndex].projectno
// let c = this.centerOriginalConfig6.find(item => {
// return item.orgName == a && item.projectname == b
// })
// return c.projectno
}
},
// 去项目看板
goLookBoard (e, f) {
if (f) {
this.boardType = f
}
// this.boardUrl = `http://${this.goUrl}/ierp/accessTokenLogin.do?access_token=${this.access_token}&redirect=http://${this.goUrl}/ierp/index.html?formId=mdnb_threetoproject&prj=${this.findProjectCode(e.row[0], e.row[1], this.boardType)}`
this.boardUrl = `http://${this.goUrl}/ierp/accessTokenLogin.do?access_token=${this.access_token}&redirect=http://${this.goUrl}/ierp/index.html?formId=mdnb_threetoproject&prj=${this.findProjectCode(e.row[0], e.row[1], this.boardType, e)}`
// this.findProjectCode(e.row[0],e.row[2])
// 当前页面打开
// window.location.href = `http://192.168.2.111:8080/ierp/accessTokenLogin.do?access_token=${this.access_token}&redirect=http://192.168.2.111:8080/ierp/index.html?formId=mdnb_threetoproject&prj=PL_ZZGY_0_2023_000036`
// 新页面打开
// window.open('http://192.168.2.111:8080/ierp/accessTokenLogin.do?access_token=${this.access_token}&redirect=http://192.168.2.111:8080/ierp/index.html?formId=mdnb_threetoproject&prj=PL_ZZGY_0_2023_000036')
this.boardTipShow = true
console.log(this.boardUrl, '跳转去的项目看板地址')
},
// 根据key分组
classify (arr, k) {
let map = {};
let myArr = [];
for (let i = 0; i < arr.length; i++) {
if (!map[arr[i][k]]) {
let a = {}
a[k] = arr[i][k]
a.data = [arr[i]]
myArr.push(a)
map[arr[i][k]] = arr[i]
} else {
for (let j = 0; j < myArr.length; j++) {
if (arr[i][k] === myArr[j][k]) {
myArr[j].data.push(arr[i]);
break
}
}
}
}
return myArr
},
// 两个柱状图的弹窗
showChartLTipDouble (e, location, mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, type, param, typeCTwo, paramCTwo, portType, num, modelName, projectStepCode, substraction) {
modelName ? this.rightAdd.modelName = modelName : this.rightAdd.modelName = ''
projectStepCode ? this.rightAdd.projectStepCode = projectStepCode : this.rightAdd.projectStepCode = ''
substraction ? this.rightAdd.substraction = substraction : this.rightAdd.substraction = ''
num && (this.projectNum = num)
this.titleName = e
this.closeTap()
this.echartDoubleTipShow = true
if (this.versions) {
if (location == 'right') {
this.rightPenetrateOne()
}
if (location == 'left') {
this.leftPenetrateOne(mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, 2)
}
if (location == 'center') {
this.centerPenetrateOne(type, param, 2, typeCTwo, paramCTwo, portType)
}
} else {
setTimeout(() => {
this.initChartLTip2()
this.initChartLTip3()
})
}
},
// 单个柱状图的弹窗
showChartLTipSingle (e, location, type, param, mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, typeCTwo, paramCTwo, portType, num) {
this.projectNum = num
this.closeTap()
this.titleName = e
this.echartSingleTipShow = true
if (this.versions) {
if (location == 'center') {
this.centerPenetrateOne(type, param, 1, typeCTwo, paramCTwo, portType)
}
if (location == 'left') {
this.leftPenetrateOne(mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, 1, type, param)
}
} else {
setTimeout(() => {
this.initChartLTip(location)
})
}
},
initChartLTip (location, mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, typeCTwo, paramCTwo, portType) {
this.myChartTip1 = echarts.init(document.getElementById("echartSingleTip"));
if (!(this.titleName == '项目数量' || this.titleName == '项目总数')) {
common3 = common3.map((item) => Number(item) + 1)
}
let option = {
grid: {
top: 40,
right: 0,
left: 60,
bottom: 70,
},
tooltip: {
show: true,
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
formatter: data => {
if (this.titleName == '项目数量' || this.titleName == '项目总数') {
return `${data[0].name}${data[0].seriesName}:${that.numFormat(data[0].value)}个`
} else {
return `${data[0].name}${data[0].seriesName}:${that.numFormat(that.numSub(data[0].value, 1))}亿`
}
},
textStyle: {
color: '#FFF', // 文字的颜色
fontSize: '20', // 文字字体大小
fontFamily: 'Microsoft YaHei'
},
},
xAxis: {
data: commonCompany,
axisTick: {
show: false,
},
// x轴的字体颜色
axisLabel: {
rotate: 40,
textStyle: {
color: "white",
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
},
yAxis: {
minInterval: 1,
// onZero:true,
name: (this.titleName == '项目数量' || this.titleName == '项目总数') ? '个' : '亿',
nameTextStyle: {//y轴上方单位的颜色
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
axisTick: {
lineStyle: {
color: "#18416F",
},
},
// y轴的字体颜色
axisLabel: {
textStyle: {
color: "white",
fontSize: '20'
},
formatter: function (value) {
if (that.titleName == '项目数量' || that.titleName == '项目总数') {
return value
} else {
return value === 1 ? 0 : value
}
}
},
splitLine: {
show: true,
lineStyle: {
color: '#68b4dd66',
type: 'dashed',
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
},
series: [
{
name: (this.titleName == '项目数量' || this.titleName == '项目总数') ? '总数量' : "总额度",
type: "bar",
data: common3,
showBackground: false,
backgroundStyle: {
color: "#18416F",
},
barWidth: "30%",
itemStyle: {
// barBorderRadius: [10, 10, 0, 0],
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0,
color: '#082550',
},
{
offset: 1,
color: '#957DFF',
},
]),
},
},
],
legend: {
// data: ["2022年额度", "2023年额度"],
data: (this.titleName == '项目数量' || this.titleName == '项目总数') ? ["总数量"] : ["总额度"],
textStyle: {
// 图列内容样式
color: "#fff", // 字体颜色
fontSize: "20",
fontFamily: 'Microsoft YaHei'
},
right: 'center',
y: 5,
// 小图标的宽高
},
};
if (!(this.titleName == '项目数量' || this.titleName == '项目总数')) {
option.yAxis.min = 1
option.yAxis.type = 'log'
option.yAxis.logBase = 5
}
tools.loopShowTooltip(this.myChartTip1, option, {
interval: 2000,
loopSeries: true,
})
let that = this
that.myChartTip1.on('click', function (param) {
if (that.versions) {
if (location == 'right') {
that.rightPenetrateTwo(that.rightPenetrateTwo.modelName, '', that.findCode(param.name))
} else if (location == 'left') {
that.leftPenetrateTwo(mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, param.name, that.projectNum)
} else if (location == 'center') {
that.centerPenetrateTwo(typeCTwo, paramCTwo, that.findCode(param.name), portType)
}
} else {
that.projectListTipShow = true
}
})
that.myChartTip1.setOption(option);
},
initChartLTip2 (location, mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, type, param, typeCTwo, paramCTwo, portType) {
let param2 = param
this.myChartTip2 = echarts.init(document.getElementById("echartSingleTip2"));
let option = {
grid: {
top: 40,
right: 0,
left: 60,
bottom: '15%',
},
tooltip: {
show: true,
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
formatter: data => {
return this.changeLine ? `${data[0].name}${data[0].seriesName}:${that.numFormat(data[0].value)}个` : `${data[0].name}${data[0].seriesName}:${that.numFormat(data[0].value)}亿`
},
textStyle: {
color: '#FFF', // 文字的颜色
fontSize: '20', // 文字字体大小
fontFamily: 'Microsoft YaHei'
},
},
xAxis: {
data: this.changeLine ? commonCompany : this.lineCommonCompany.map(item => item.type),
axisTick: {
show: false,
},
// x轴的字体颜色
axisLabel: {
rotate: this.changeLine ? 40 : 20,
textStyle: {
color: "white",
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
},
yAxis: {
minInterval: 1,
name: this.changeLine ? '个' : '亿',
nameTextStyle: {//y轴上方单位的颜色
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
axisTick: {
lineStyle: {
color: "#18416F",
},
},
// y轴的字体颜色
axisLabel: {
textStyle: {
color: "#fff",
fontSize: '20',
fontFamily: 'Microsoft YaHei'
}
},
splitLine: {
show: true,
lineStyle: {
color: '#68b4dd66',
type: 'dashed',
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
},
series: [
{
name: this.changeLine ? "总数量" : '总额度',
type: this.changeLine ? "bar" : 'line',
data: common4,
showBackground: false,
backgroundStyle: {
color: "#18416F",
},
barWidth: "30%",
itemStyle: {
// barBorderRadius: [10, 10, 0, 0],
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0,
color: '#082550',
},
{
offset: 1,
color: '#957DFF',
},
]),
},
lineStyle: {
color: '#957DFF',
width: 3,
},
},
],
legend: {
// data: ["2022年额度", "2023年额度"],
data: this.changeLine ? ["总数量"] : ["总额度"],
textStyle: {
// 图列内容样式
color: "#fff", // 字体颜色
fontSize: "20",
fontFamily: 'Microsoft YaHei'
},
right: 'center',
y: 0,
// 小图标的宽高
},
};
tools.loopShowTooltip(this.myChartTip2, option, {
interval: 2000,
loopSeries: true,
})
let that = this
that.myChartTip2.on('click', function (param) {
if (that.versions) {
if (location == 'right') {
that.rightPenetrateTwo(that.rightPenetrateTwo.modelName, '', that.findCode(param.name))
} else if (location == 'left') {
that.leftPenetrateTwo(mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, param.name, that.projectNum)
} else if (location == 'center') {
if (this.changeLine) {
that.centerPenetrateTwo(typeCTwo, paramCTwo, that.findCode(param.name), portType, param2)
} else {
let a = that.lineCommonCompany.find(item => item.type == param.name)
that.centerPenetrateTwo(typeCTwo, a.typeno, '', portType, param2)
}
}
} else {
that.projectListTipShow = true
}
})
that.myChartTip2.setOption(option);
},
initChartLTip3 (location, mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, type, param, typeCTwo, paramCTwo, portType) {
let param2 = param
this.myChartTip3 = echarts.init(document.getElementById("echartSingleTip3"));
common5 = common5.map((item) => Number(item) + 1)
let option = {
grid: {
top: 40,
right: 0,
left: 60,
bottom: '15%',
},
tooltip: {
show: true,
trigger: "axis",
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
formatter: data => {
return `${data[0].name}${data[0].seriesName}:${that.numFormat(that.numSub(data[0].value, 1))}亿`
},
textStyle: {
color: '#FFF', // 文字的颜色
fontSize: '20', // 文字字体大小
fontFamily: 'Microsoft YaHei'
},
},
xAxis: {
data: commonCompany,
axisTick: {
show: false,
},
// x轴的字体颜色
axisLabel: {
rotate: 40,
textStyle: {
color: "#fff",
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
},
yAxis: {
type: 'log',
min: 1,
logBase: 5,
name: '亿',
nameTextStyle: {//y轴上方单位的颜色
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
axisTick: {
lineStyle: {
color: "#18416F",
},
},
// y轴的字体颜色
axisLabel: {
textStyle: {
color: "#fff",
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
formatter: function (value) {
return value === 1 ? 0 : value
}
},
splitLine: {
show: true,
lineStyle: {
color: '#68b4dd66',
type: 'dashed',
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
},
series: [
{
name: "总额度",
type: "bar",
data: common5,
showBackground: false,
backgroundStyle: {
color: "#18416F",
},
barWidth: "30%",
itemStyle: {
// barBorderRadius: [10, 10, 0, 0],
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0,
color: '#082550',
},
{
offset: 1,
color: '#69c0ff',
},
]),
},
},
],
legend: {
data: ["总额度"],
textStyle: {
// 图列内容样式
color: "#fff", // 字体颜色
fontSize: "20",
fontFamily: 'Microsoft YaHei'
},
right: 'center',
y: 5,
},
};
let that = this
that.myChartTip3.on('click', function (param) {
if (that.versions) {
if (location == 'right') {
that.rightPenetrateTwo(that.rightPenetrateTwo.modelName, '', that.findCode(param.name))
} else if (location == 'left') {
that.leftPenetrateTwo(mdnb_textfield11, mdnb_textfield13, mdnb_textfield16, mdnb_textfield23, param.name, that.projectNum)
} else if (location == 'center') {
that.centerPenetrateTwo(typeCTwo, paramCTwo, that.findCode(param.name), portType, param2)
}
} else {
that.projectListTipShow = true
}
})
that.myChartTip3.setOption(option);
tools.loopShowTooltip(that.myChartTip3, option, {
interval: 2000,
loopSeries: true,
})
},
closeTap () {
this.changeLine = true
this.echartEnterpriseShow = false
this.mapTipShow = false
this.echartSingleTipShow = false
this.echartDoubleTipShow = false
this.projectListTipShow = false
this.myChartTip1 ? this.myChartTip1.dispose() : ''
this.myChartTip2 ? this.myChartTip2.dispose() : ''
this.myChartTip3 ? this.myChartTip3.dispose() : ''
},
//点击弹窗左半部分
popLeftClick () {
if (this.titleUrl == '2.png') {
this.titleUrl = '3.png'
} else if (this.titleUrl == '7.png') {
this.titleUrl = '8.png'
} else if (this.titleUrl == '3.png') {
this.titleUrl = '2.png'
} else if (this.titleUrl == '8.png') {
this.titleUrl = '7.png'
} else if (this.titleUrl == '5.png') {
this.titleUrl = '2.png'
} else if (this.titleUrl == '10.png') {
this.titleUrl = '7.png'
}
},
//点击弹窗右半部分
poprightClick () {
if (this.titleUrl == '2.png') {
this.titleUrl = '5.png'
} else if (this.titleUrl == '7.png') {
this.titleUrl = '10.png'
} else if (this.titleUrl == '5.png') {
this.titleUrl = '2.png'
} else if (this.titleUrl == '10.png') {
this.titleUrl = '7.png'
} else if (this.titleUrl == '3.png') {
this.titleUrl = '2.png'
} else if (this.titleUrl == '8.png') {
this.titleUrl = '7.png'
}
},
// 标题弹窗
showTitlePop (e, name) {
this.closeTap()
this.titleUrl = e
this.titleName = name
this.$nextTick(() => {
this.mapTipShow = true
})
},
changeYellow () {
this.titleList.forEach((item, index) => {
this.$set(this.titleList[index], 'type', 1)
})
this.$set(this.titleList[this.yellowCount], 'type', 2)
if (this.yellowCount == 14) {
this.yellowCount = 0
this.yellowPosition += 315
} else {
if (this.yellowCount != 0) {
this.yellowPosition += 315
} else {
this.yellowPosition = 40
}
this.yellowCount += 2
}
},
changeTopColor () {
this.list = document.getElementsByClassName('row-item')
for (var i = 0; i < this.list.length; i++) {
if (i == 1) {
this.list[i].classList.add('light')
} else {
this.list[i].classList.remove('light')
}
}
this.initChartL9()
},
scrollChange (index) {
if (index == 18) {
this.count = -1
} else {
this.count = index
}
if (this.count > 12 && this.count != 18) {
this.countType = 1
} else {
this.countType = 0
}
for (var i = 0; i < this.list.length; i++) {
if (i == 2) {
this.list[i].classList.add('light')
} else {
this.list[i].classList.remove('light')
}
}
this.chartCarousel ? this.chartCarousel.dispose() : ''
this.initChartL9()
},
initChartBall () {
this.left11Chart = echarts.init(this.$refs['echartBall'])
option = {
series: [
{
type: "liquidFill",
radius: "80%",
data: [common2[0], common2[0] + 0.02, common2[0] - 0.02],
amplitude: '4%',
waveLength: '20%', //波浪长度
// data: [
// {}
// ],
backgroundStyle: {
color: {
type: "radial",
x: 0.5,
y: 0.5,
r: 0.7,
// 水球体颜色
colorStops: [
{
offset: 0,
color: "#010a11",
},
{
offset: 0.9,
color: "#1a2f45",
},
{
offset: 1,
color: "#2b405a",
},
],
globalCoord: false,
},
},
outline: {
borderDistance: 0,
itemStyle: {
borderWidth: 0,
borderColor: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
],
globalCoord: false,
},
},
},
color: [
{
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#237386',
},
{
offset: 1,
color: '#0078C8',
},],
},
{
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#2F97A9',
},
{
offset: 1,
color: '#0078C8',
},],
},
{
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#48E0ED',
},
{
offset: 1,
color: '#0078C8',
},],
}
],
label: {
normal: {
textStyle: {
color: "#fff", // x轴文字颜色
fontSize: '70'
},
},
},
},
],
};
this.left11Chart.setOption(option)
},
initChartL1 () {
let that = this
this.left9Chart = echarts.init(this.$refs['echartL1'])
option = {
series: [
{
type: "liquidFill",
radius: "80%",
data: [left2[0], left2[0] + 0.02, left2[0] - 0.02],
amplitude: '4%',
// period:'1500',
waveLength: '20%', //波浪长度
// data: [
// {}
// ],
backgroundStyle: {
color: {
type: "radial",
x: 0.5,
y: 0.5,
r: 0.7,
// 水球体颜色
colorStops: [
{
offset: 0,
color: "#010a11",
},
{
offset: 0.9,
// color: "#203852",
color: "#1a2f45",
},
{
offset: 1,
// color: "#354e6d",
color: "#2b405a",
// color: "#314967",
},
],
globalCoord: false,
},
},
outline: {
borderDistance: 0,
itemStyle: {
borderWidth: 0,
borderColor: {
type: "linear",
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [
],
globalCoord: false,
},
},
},
color: [
{
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#237386',
},
{
offset: 1,
color: '#0078C8',
},],
},
{
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#2F97A9',
},
{
offset: 1,
color: '#0078C8',
},],
},
{
x: 0,
y: 0,
x2: 0,
y2: 1,
colorStops: [{
offset: 0,
color: '#48E0ED',
},
{
offset: 1,
color: '#0078C8',
},],
}
],
label: {
normal: {
textStyle: {
color: "#fff", // x轴文字颜色
},
formatter: data => {
return `${that.numMulti(data.value, 100).toFixed(2)}%`
},
},
},
},
],
};
this.left9Chart.setOption(option)
},
initChartL2 () {
var chartData = left5
var i = 0;
let that = this
var option = {
colors: ['#064F78', '#BDB35D', '#623726', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
chart: {
type: 'pie',
backgroundColor: 'rgba(0,0,0,0)',
options3d: {
enabled: true,
alpha: 45,
//beta: 0
},
events: {
// load,图表加载完成时触发
load: function () {
var chart = this;
var points = chart.series[0].points;
var len = points.length;
that.pieTime1 && clearInterval(that.pieTime1);
that.pieTime1 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
// item.sliced = true
// item.selected = true
}
})
that.left1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2142
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
chartData.forEach((item, index) => {
// item.sliced = false
// item.selected = false
})
that.left1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2142
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
}
}, 2000);
},
legendItemClick: function (event) {
return true;
}
}
},
credits: {
enabled: false //去掉hightchats水印
},
legend: {
// labelFormatter: function() {
// return 123;
// },
align: 'right',//横向位置
verticalAlign: 'middle', // 纵向位置
layout: "vertical",//横排还是竖排
x: -110,
y: 90,
symbolWidth: 50,
itemStyle: {
fontSize: '20px',
color: '#fff',
x: 20,
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
},
},
title: {
text: '主辅业计划占比',
style: {
color: '#fff',
fontSize: 24,
fontFamily: 'Microsoft YaHei',
},
align: 'center',
verticalAlign: "bottom",
x: -120
},
tooltip: {
crosshairs: false,
backgroundColor: 'rgba(0,0,0,0.5)',
// positioner: function(e){
// },
// useHTML: false, //开启html模式
style: {
color: '#fff',
fontSize: '20',
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
},
formatter: function (e) {
let num = chartData[this.colorIndex].num
this.percentage = this.percentage.toFixed(2) //Math.round(this.percentage)
return `${this.key}:${this.percentage}%
${that.numFormat(this.y)}亿,${that.numFormat(num)}个`
},
//pointFormat:
},
plotOptions: {
pie: {
allowPointSelect: true,
showInLegend: true, // 图例
cursor: 'pointer',
size: 220,
innerSize: 150, //环形图中间空白,0为饼图
depth: 25, //立体高度
slicedOffset: 21, //动画距离
dataLabels: {
enabled: false, // 是否展示指示线
format: '{point.name}: {point.percentage}'
}
},
},
series: [{
type: 'pie',
name: '占比',
center: ['50%', '50%'],
point: {
events: {
click: function (e) { //点击事件
that.projectNum = 2142
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
},
mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
chartData.forEach((item, index) => {
// item.sliced = false
// item.selected = false
})
// chartData[e.target.index].sliced = true
// chartData[e.target.index].selected = true
that.left1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2142
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
that.pieTime1 && clearInterval(that.pieTime1);
},
mouseOut: function () { // 鼠标移出后需要继续执行轮播
var points = that.left1Chart.series[0].points;
var len = points.length;
that.pieTime1 && clearInterval(that.pieTime1);
that.pieTime1 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
// item.sliced = false
// item.selected = false
if (index == i) {
// item.sliced = true
// item.selected = true
}
})
that.left1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2142
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
that.left1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2142
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
}
}, 2000);
}
}
},
data: chartData
}]
}
that.left1Chart = Highcharts.chart('echartL2', option);
function autoTooltip (point) {
that.left1Chart.tooltip.refresh(point);
}
},
initChartL3 () {
var chartData = left6
var i = 0;
let that = this
that.left2Chart = Highcharts.chart('echartL3', {
colors: ['#064F78', '#BDB35D', '#623726', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
chart: {
type: 'pie',
backgroundColor: 'rgba(0,0,0,0)',
options3d: {
enabled: true,
alpha: 45,
//beta: 0
},
events: {
// load,图表加载完成时触发
load: function () {
var chart = this;
var points = chart.series[0].points;
var len = points.length;
that.pieTime2 && clearInterval(that.pieTime2);
that.pieTime2 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
// item.sliced = true
// item.selected = true
}
})
that.left2Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2143
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
chartData.forEach((item, index) => {
// item.sliced = false
// item.selected = false
})
that.left2Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2143
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
}
}, 2000);
},
legendItemClick: function (event) {
that.projectNum = 2143
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
return true;
}
}
},
credits: {
enabled: false //去掉hightchats水印
},
legend: {
// labelFormatter: function() {
// return 123;
// },
align: 'right',//横向位置
verticalAlign: 'middle', // 纵向位置
layout: "vertical",//横排还是竖排
x: -70,
y: 90,
symbolWidth: 50,
itemStyle: {
fontSize: '20px',
color: '#fff',
x: 20,
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
},
},
title: {
text: '项目管理类型',
style: {
color: '#fff',
fontSize: 24,
fontFamily: 'Microsoft YaHei'
},
align: 'center',
verticalAlign: "bottom",
x: -120
},
tooltip: {
crosshairs: true,
backgroundColor: 'rgba(0,0,0,0.5)',
// positioner: function(e){
// },
useHTML: false, //开启html模式
style: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
formatter: function (e) {
let num = chartData[this.colorIndex].num
this.percentage = this.percentage.toFixed(2) //Math.round(this.percentage)
return `${this.key}:${this.percentage}%
${that.numFormat(this.y)}亿,${that.numFormat(num)}个`
},
//pointFormat:
},
plotOptions: {
pie: {
allowPointSelect: true,
showInLegend: true, // 图例
cursor: 'pointer',
size: 220,
innerSize: 150, //环形图中间空白,0为饼图
depth: 25, //立体高度
slicedOffset: 21, //动画距离
dataLabels: {
enabled: false, // 是否展示指示线
format: '{point.name}: {point.percentage}'
}
},
},
series: [{
type: 'pie',
name: '占比',
// center: ['70%', '50%'],
point: {
events: {
click: function (e) { //点击事件
that.projectNum = 2143
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
},
mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
// chartData[e.target.index].sliced = true
// chartData[e.target.index].selected = true
that.left2Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2143
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
that.pieTime2 && clearInterval(that.pieTime2);
},
mouseOut: function () { // 鼠标移出后需要继续执行轮播
var points = that.left2Chart.series[0].points;
var len = points.length;
that.pieTime2 && clearInterval(that.pieTime2);
that.pieTime2 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
// item.sliced = true
// item.selected = true
}
})
that.left2Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.projectNum = 2143
that.showChartLTipDouble(e.point.name, 'left', '投资计划分析', e.point.name, '', '')
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
that.left2Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
}
}
},
data: chartData
}]
})
}
}, 2000);
}
}
},
data: chartData
}]
});
function autoTooltip (point) {
that.left2Chart.tooltip.refresh(point);
}
},
initChartL4 (dataList) {
this.left10Chart = echarts.init(document.getElementById("echartL4"));
let option = {
grid: {
top: 45,
right: 0,
left: 80,
bottom: 80,
},
tooltip: {
show: true,
trigger: "axis",
formatter: data => {
return `${data[0].name}
${data[0].seriesName}:${that.numFormat(data[0].value)}亿
${data[1].seriesName}:${that.numFormat(data[1].value)}亿`
},
axisPointer: {
// 坐标轴指示器,坐标轴触发有效
type: "shadow", // 默认为直线,可选为:'line' | 'shadow'
},
textStyle: {
color: '#FFF', // 文字的颜色
fontSize: '20', // 文字字体大小
fontFamily: 'Microsoft YaHei'
},
},
xAxis: {
data: commonCompany,
axisTick: {
show: false,
},
// x轴的字体颜色
axisLabel: {
rotate: 40,
textStyle: {
color: "white",
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
},
yAxis: {
name: '亿',
axisTick: {
lineStyle: {
color: "#18416F",
},
},
// y轴的字体颜色
axisLabel: {
textStyle: {
color: "white",
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
splitLine: {
show: true,
lineStyle: {
color: "#68b4dd66",
width: 1,
type: "dashed",
},
},
//y轴线的颜色以及宽度
axisLine: {
show: true,
lineStyle: {
color: "#1E5389",
width: 1,
type: "solid",
},
},
nameTextStyle: {
color: '#fff',
fontSize: 20,
fontFamily: 'Microsoft YaHei'
},
},
series: [
{
name: "已用额度",
type: "bar",
data: left3[0],
// stack: 'Ad',
showBackground: false,
backgroundStyle: {
color: "#18416F",
},
barWidth: "15",
itemStyle: {
// barBorderRadius: [10, 10, 0, 0],
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0,
color: '#082550',
},
{
offset: 1,
color: '#3986F8',
},
]),
},
zlevel: 1
},
{
name: "总额度",
type: "bar",
data: left3[2],
// stack: 'Ad',
barGap: '-130%',
showBackground: false,
backgroundStyle: {
color: "#18416F",
},
barWidth: "25",
itemStyle: {
// barBorderRadius: [10, 10, 0, 0],
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0,
color: '#b9b7c060',
},
{
offset: 1,
color: '#b9b7c060',
},
]),
},
},
],
legend: {
// data: ["2022年额度", "2023年额度"],
data: ["2023年额度"],
textStyle: {
// 图列内容样式
color: "#fff", // 字体颜色
fontSize: "20",
fontFamily: 'Microsoft YaHei'
},
right: 'center',
y: 5,
// icon: "roundRect",
// 小图标的宽高
},
};
let that = this
tools.loopShowTooltip(that.left10Chart, option, {
nterval: 2000,
loopSeries: true,
})
that.left10Chart.on('click', function (param) {
that.titleName = param.name
that.echartEnterpriseShow = true
// 如果是接口版数据版
if (that.versions) {
let findData = dataList.find(item => {
return item.mdnb_textfield == param.name
})
common1[0] = findData.mdnb_amountfield18
common1[1] = findData.mdnb_amountfield20
common1[2] = findData.mdnb_amountfield19
common1[3] = findData.mdnb_amountfield26
common1[4] = findData.mdnb_amountfield27
common1[5] = findData.mdnb_amountfield25
common2[0] = findData.mdnb_decimalfield6
}
setTimeout(() => {
that.initChartBall()
});
})
that.left10Chart.setOption(option);
},
initChartL5 () {
var chartData = left7
var i = 0;
let that = this
var option = {
colors: ['#064F78', '#BDB35D', '#623726', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
chart: {
type: 'pie',
backgroundColor: 'rgba(0,0,0,0)',
options3d: {
enabled: true,
alpha: 45,
//beta: 0
},
events: {
// load,图表加载完成时触发
load: function () {
var chart = this;
var points = chart.series[0].points;
var len = points.length;
that.pieTime3 && clearInterval(that.pieTime3);
that.pieTime3 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left3Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '传统产业', e.point.name, '', '', '', '', '', '', 215)
// that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '优势特色产业', '体育产业', '')
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
},
legendItemClick: function (event) {
return true;
}
}
},
credits: {
enabled: false //去掉hightchats水印
},
legend: {
// labelFormatter: function() {
// return 123;
// },
align: 'right',//横向位置
verticalAlign: 'middle', // 纵向位置
layout: "vertical",//横排还是竖排
x: -30,
// y: 50,
symbolWidth: 50,
itemDistance: 50,
itemStyle: {
fontSize: '20px',
color: '#fff',
x: 20,
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
},
},
title: {
text: '传统产业分析',
style: {
color: '#fff',
fontSize: 24,
fontFamily: 'Microsoft YaHei'
},
align: 'center',
verticalAlign: "bottom",
x: -120
},
tooltip: {
crosshairs: true,
backgroundColor: 'rgba(0,0,0,0.5)',
// positioner: function(e){
// },
useHTML: false, //开启html模式
style: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
formatter: function (e) {
let num = chartData[this.colorIndex].num
this.percentage = this.percentage.toFixed(2) //Math.round(this.percentage)
return `${this.key}:${this.percentage}%
${that.numFormat(this.y)}亿,${that.numFormat(num)}个`
},
//pointFormat:
},
plotOptions: {
pie: {
allowPointSelect: true,
showInLegend: true, // 图例
cursor: 'pointer',
size: 220,
innerSize: 150, //环形图中间空白,0为饼图
depth: 25, //立体高度
slicedOffset: 21, //动画距离
dataLabels: {
enabled: false, // 是否展示指示线
format: '{point.name}: {point.percentage}'
}
},
},
series: [{
type: 'pie',
name: '占比',
//center: ['35%','50%'],
point: {
events: {
click: function (e) { //点击事件
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '传统产业', e.point.name, '', '', '', '', '', '', 215)
// that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '优势特色产业', '体育产业', '')
},
mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
chartData[e.target.index].sliced = true
chartData[e.target.index].selected = true
that.left3Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '传统产业', e.point.name, '', '', '', '', '', '', 215)
// that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '优势特色产业', '体育产业', '')
}
}
},
data: chartData
}]
})
that.pieTime3 && clearInterval(that.pieTime3);
},
mouseOut: function () { // 鼠标移出后需要继续执行轮播
var points = that.left3Chart.series[0].points;
var len = points.length;
that.pieTime3 && clearInterval(that.pieTime3);
that.pieTime3 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left3Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '传统产业', e.point.name, '', '', '', '', '', '', 215)
// that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '优势特色产业', '体育产业', '')
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
}
}
},
data: chartData
}]
}
that.left3Chart = Highcharts.chart('echartL5', option);
function autoTooltip (point) {
that.left3Chart.tooltip.refresh(point);
}
},
initChartL6 () {
var chartData = left8
var i = 0;
let that = this
var option = {
colors: ['#064F78', '#BDB35D', '#623726', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
chart: {
type: 'pie',
backgroundColor: 'rgba(0,0,0,0)',
options3d: {
enabled: true,
alpha: 45,
//beta: 0
},
events: {
// load,图表加载完成时触发
load: function () {
var chart = this;
var points = chart.series[0].points;
var len = points.length;
that.pieTime4 && clearInterval(that.pieTime4);
that.pieTime4 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left4Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '战略性新兴产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
},
legendItemClick: function (event) {
return true;
}
}
},
credits: {
enabled: false //去掉hightchats水印
},
legend: {
// labelFormatter: function() {
// return 123;
// },
align: 'right',//横向位置
verticalAlign: 'middle', // 纵向位置
layout: "vertical",//横排还是竖排
x: 12,
// y: 30,
symbolWidth: 50,
itemDistance: 50,
itemStyle: {
fontSize: '20px',
color: '#fff',
x: 20,
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
},
},
title: {
text: '战略性新兴产业',
style: {
color: '#fff',
fontSize: 24,
fontFamily: 'Microsoft YaHei'
},
align: 'center',
verticalAlign: "bottom",
x: -120
},
tooltip: {
crosshairs: true,
backgroundColor: 'rgba(0,0,0,0.5)',
// positioner: function(e){
// },
useHTML: false, //开启html模式
style: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
formatter: function (e) {
let num = chartData[this.colorIndex].num
this.percentage = this.percentage.toFixed(2) //Math.round(this.percentage)
return `${this.key}:${this.percentage}%
${that.numFormat(this.y)}亿,${that.numFormat(num)}个`
},
//pointFormat:
},
plotOptions: {
pie: {
allowPointSelect: true,
showInLegend: true, // 图例
cursor: 'pointer',
size: 220,
innerSize: 150, //环形图中间空白,0为饼图
depth: 25, //立体高度
slicedOffset: 21, //动画距离
dataLabels: {
enabled: false, // 是否展示指示线
format: '{point.name}: {point.percentage}'
}
},
},
series: [{
type: 'pie',
name: '占比',
//center: ['35%','50%'],
point: {
events: {
click: function (e) { //点击事件
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '战略性新兴产业', e.point.name, '', '', '', '', '', '', 215)
},
mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
chartData[e.target.index].sliced = true
chartData[e.target.index].selected = true
that.left4Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '战略性新兴产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
that.pieTime4 && clearInterval(that.pieTime4);
},
mouseOut: function () { // 鼠标移出后需要继续执行轮播
var points = that.left4Chart.series[0].points;
var len = points.length;
that.pieTime4 && clearInterval(that.pieTime4);
that.pieTime4 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left4Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '战略性新兴产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
}
}
},
data: chartData
}]
}
that.left4Chart = Highcharts.chart('echartL6', option);
function autoTooltip (point) {
that.left4Chart.tooltip.refresh(point);
}
},
initChartL7 () {
var chartData = left9
var i = 0;
let that = this
var option = {
colors: ['#064F78', '#BDB35D', '#623726', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
chart: {
type: 'pie',
backgroundColor: 'rgba(0,0,0,0)',
options3d: {
enabled: true,
alpha: 45,
//beta: 0
},
events: {
// load,图表加载完成时触发
load: function () {
var chart = this;
var points = chart.series[0].points;
var len = points.length;
that.pieTime5 && clearInterval(that.pieTime5);
that.pieTime5 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left5Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '特色优势产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
},
legendItemClick: function (event) {
return true;
}
}
},
credits: {
enabled: false //去掉hightchats水印
},
title: {
text: '特色优势产业',
style: {
color: '#fff',
fontSize: 24,
fontFamily: 'Microsoft YaHei'
},
align: 'center',
verticalAlign: "bottom",
x: -120
},
legend: {
// labelFormatter: function() {
// return 123;
// },
align: 'right',//横向位置
verticalAlign: 'middle', // 纵向位置
layout: "vertical",//横排还是竖排
x: -50,
// y: 30,
symbolWidth: 50,
itemDistance: 50,
itemStyle: {
fontSize: '20px',
color: '#fff',
x: 20,
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
},
},
tooltip: {
crosshairs: true,
backgroundColor: 'rgba(0,0,0,0.5)',
// positioner: function(e){
// },
useHTML: false, //开启html模式
style: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
formatter: function (e) {
let num = chartData[this.colorIndex].num
this.percentage = this.percentage.toFixed(2) //Math.round(this.percentage)
return `${this.key}:${this.percentage}%
${that.numFormat(this.y)}亿,${that.numFormat(num)}个`
},
//pointFormat:
},
plotOptions: {
pie: {
allowPointSelect: true,
showInLegend: true, // 图例
cursor: 'pointer',
size: 220,
innerSize: 150, //环形图中间空白,0为饼图
depth: 25, //立体高度
slicedOffset: 21, //动画距离
dataLabels: {
enabled: false, // 是否展示指示线
format: '{point.name}: {point.percentage}'
}
},
},
series: [{
type: 'pie',
name: '占比',
//center: ['35%','50%'],
point: {
events: {
click: function (e) { //点击事件
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '特色优势产业', e.point.name, '', '', '', '', '', '', 215)
},
mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
chartData[e.target.index].sliced = true
chartData[e.target.index].selected = true
that.left5Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '特色优势产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
that.pieTime5 && clearInterval(that.pieTime5);
},
mouseOut: function () { // 鼠标移出后需要继续执行轮播
var points = that.left5Chart.series[0].points;
var len = points.length;
that.pieTime5 && clearInterval(that.pieTime5);
that.pieTime5 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left5Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '特色优势产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
}
}
},
data: chartData
}]
}
that.left5Chart = Highcharts.chart('echartL7', option);
function autoTooltip (point) {
that.left5Chart.tooltip.refresh(point);
}
},
initChartL8 () {
var chartData = left10
var i = 0;
let that = this
var option = {
colors: ['#064F78', '#BDB35D', '#623726', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
chart: {
type: 'pie',
backgroundColor: 'rgba(0,0,0,0)',
options3d: {
enabled: true,
alpha: 45,
//beta: 0
},
events: {
// load,图表加载完成时触发
load: function () {
var chart = this;
var points = chart.series[0].points;
var len = points.length;
that.pieTime6 && clearInterval(that.pieTime6);
that.pieTime6 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left6Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '公共基础等产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
},
legendItemClick: function (event) {
return true;
}
}
},
credits: {
enabled: false //去掉hightchats水印
},
title: {
text: '公共基础等产业',
style: {
color: '#fff',
fontSize: 24,
fontFamily: 'Microsoft YaHei'
},
align: 'center',
verticalAlign: "bottom",
x: -120
},
legend: {
// labelFormatter: function() {
// return 123;
// },
align: 'right',//横向位置
verticalAlign: 'middle', // 纵向位置
layout: "vertical",//横排还是竖排
x: -70,
// y: 50,
symbolWidth: 50,
itemDistance: 50,
itemStyle: {
fontSize: '20px',
color: '#fff',
x: 20,
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
},
},
tooltip: {
crosshairs: true,
backgroundColor: 'rgba(0,0,0,0.5)',
// positioner: function(e){
// },
useHTML: false, //开启html模式
style: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
formatter: function (e) {
let num = chartData[this.colorIndex].num
this.percentage = this.percentage.toFixed(2) //Math.round(this.percentage)
return `${this.key}:${this.percentage}%
${that.numFormat(this.y)}亿,${that.numFormat(num)}个`
},
//pointFormat:
},
plotOptions: {
pie: {
allowPointSelect: true,
showInLegend: true, // 图例
cursor: 'pointer',
size: 220,
innerSize: 150, //环形图中间空白,0为饼图
depth: 25, //立体高度
slicedOffset: 21, //动画距离
dataLabels: {
enabled: false, // 是否展示指示线
format: '{point.name}: {point.percentage}'
}
},
},
series: [{
type: 'pie',
name: '占比',
// center: ['35%','50%'],
point: {
events: {
click: function (e) { //点击事件
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '公共基础等产业', e.point.name, '', '', '', '', '', '', 215)
},
mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
chartData[e.target.index].sliced = true
chartData[e.target.index].selected = true
that.left6Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '公共基础等产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
that.pieTime6 && clearInterval(that.pieTime6);
},
mouseOut: function () { // 鼠标移出后需要继续执行轮播
var points = that.left6Chart.series[0].points;
var len = points.length;
that.pieTime6 && clearInterval(that.pieTime6);
that.pieTime6 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.left6Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'left', '产业布局分析', '公共基础等产业', e.point.name, '', '', '', '', '', '', 215)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
}
}
},
data: chartData
}]
}
that.left6Chart = Highcharts.chart('echartL8', option);
function autoTooltip (point) {
that.left6Chart.tooltip.refresh(point);
}
},
initChartL9 () {
let that = this
this.chartCarousel = echarts.init(document.getElementById("echartL9"));
option = {
tooltip: {
trigger: 'axis',
formatter: '指标:' + '{c0}' + '
' + '发展线:' + '{c1}' + '
' + '生存线:' + '{c2}', //+ '
'+ '{a1}:{c1}' + '%',
axisPointer: {
type: 'shadow',
},
},
grid: {
top: '10%',
right: '5%',
left: '12%',
bottom: '15%',
},
xAxis: {
// data: ['总投资收益率', '销售利润率', '成本费用利润率', '总资产周转率', '财务内部收益率'],
data: left15[this.countType],
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: '#005094',
width: 1,
},
},
axisTick: {
show: true, //隐藏X轴刻度
},
axisLabel: {
show: true,
rotate: 30,
textStyle: {
color: '#fff', //X轴文字颜色
fontSize: 20,
fontFamily: 'Microsoft YaHei'
},
},
},
yAxis: [
{
type: 'value',
splitLine: {
show: true,
lineStyle: {
color: '#68b4dd66',
type: 'dashed',
},
},
axisLine: {
show: false
},
axisLabel: {
show: true,
formatter: '{value}%',
textStyle: {
color: '#fff',
fontSize: 20,
fontFamily: 'Microsoft YaHei'
},
},
nameTextStyle: {
color: '#ebf8ac',
fontSize: 16,
fontFamily: 'Microsoft YaHei'
},
},
],
series: [
{
name: '实际值',
type: 'bar',
barWidth: 20,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: '#69c0ff',
},
{
offset: 1,
color: '#082550',
},
]),
},
},
// data: [70, 52, 33, 41, 52],
data: this.storageRecordConfig.data.length == 0 ? [] : this.storageRecordConfig.data.length == 1 ? left12[this.count][2] : left12[this.count + 1][2]
},
{
name: '',
type: 'line',
barWidth: 15,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: '#69c0ff',
},
{
offset: 1,
color: 'green',
},
]),
},
},
// data: [20, 30, 15, 28, 36],
data: this.storageRecordConfig.data.length == 0 ? [] : this.storageRecordConfig.data.length == 1 ? left12[this.count][1] : left12[this.count + 1][1]
},
{
name: '',
type: 'line',
barWidth: 15,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: '#69c0ff',
},
{
offset: 1,
color: 'yellow',
},
]),
},
},
// data: [15, 22, 17, 33, 14],
data: this.storageRecordConfig.data.length == 0 ? [] : this.storageRecordConfig.data.length == 1 ? left12[this.count][0] : left12[this.count + 1][0]
},
],
}
// this.chartCarousel.on('click', function (param) {
// that.titleName = param.name
// that.echartSingleTipShow = true
// setTimeout(() => {
// that.initChartLTip()
// });
// })
// this.chartCarousel.on('mouseover', (params) => {
// that.$refs.indicator.handleHover(true, 1, 2, 3, 4)
// })
// this.chartCarousel.on('mouseout', (params) => {
// that.$refs.indicator.handleHover(false, 1, 2, 3, 4)
// })
this.chartCarousel.setOption(option)
// tools.loopShowTooltip(myChart, option, {
// nterval: 2000,
// loopSeries: true,
// })
},
initChartL10 () {
let that = this
this.left7Chart = echarts.init(document.getElementById("echartL10"));
let option = {
title: {
text: '固定资产进度分布',
textStyle: {
color: '#69C0FF',
fontSize: 30,
fontWeight: 500,
fontFamily: 'Microsoft YaHei'
},
top: '20',
left: '20'
},
textStyle: {
color: '#fff',
},
tooltip: {
trigger: "axis",
formatter: function (params) {
var tip = params[0].axisValue + '
' + params[0].marker + params[0].data[1] + ':' + that.numFormat(params[0].data[2]) + '个,' + that.numFormat(params[0].data[3]) + '亿' + '
' + params[1].marker + params[1].data[1] + ':' + that.numFormat(params[1].data[2]) + '个,' + that.numFormat(params[1].data[3]) + '亿';
return tip
},
textStyle: {
color: '#ffffff', // 文字的颜色
fontSize: '20', // 文字字体大小
fontFamily: 'Microsoft YaHei'
},
axisPointer: {
// lineStyle: {
// type: 'dashed',
// width: 2,
// color: 'rgba(255,255,255,0.6)'
// },
animation: false
}
},
grid: {
top: '0%',
right: '5%',
left: '15%',
bottom: '-10%',
},
yAxis: {
data: ['备案', '特别监管'],
splitLine: {
show: false,
lineStyle: {
color: '#68b4dd66',
type: 'dashed',
},
},
axisLine: {
show: false
},
axisLabel: {
show: true,
formatter: '{value}',
textStyle: {
color: '#fff',
fontSize: 20,
padding: [0, -10, 0, 0],
fontFamily: 'Microsoft YaHei',
},
},
nameTextStyle: {
color: '#ebf8ac',
fontSize: 16,
fontFamily: 'Microsoft YaHei'
},
},
xAxis: {
data: ['项目储备', '项目立项', '可研论证', '投资决策'],
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: '#005094',
width: 1,
},
},
axisTick: {
show: false, //隐藏X轴刻度
},
axisLabel: {
show: true,
textStyle: {
color: '#fff', //X轴文字颜色
fontSize: 20,
padding: [-320, 0, 0, 0],
fontFamily: 'Microsoft YaHei'
},
}
},
series: [
{
name: '特别监管',
type: 'scatter',
symbol: 'circle',//'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
symbolSize: function (data) {
return that.numMulti(Math.sqrt(Math.sqrt(data[2])), 5);
},
// label: {
// emphasis: {
// show: true,
// formatter: function (param) {
// return param.data[2];
// },
// position: 'top'
// }
// },
itemStyle: {
normal: {
color: '#69c0ff'
}
},
data: left13[0]
},
{
name: '备案',
type: 'scatter',
symbol: 'circle',//'circle', 'rect', 'roundRect', 'triangle', 'diamond', 'pin', 'arrow'
symbolSize: function (data) {
return that.numMulti(Math.sqrt(Math.sqrt(data[2])), 5);
},
// label: {
// emphasis: {
// show: true,
// formatter: function (param) {
// return param.data[2];
// },
// position: 'top'
// }
// },
itemStyle: {
normal: {
color: '#957DFF'
}
},
data: left13[1]
},
]
}
that.left7Chart.on('click', function (param) {
that.showChartLTipDouble(param.name, 'left', '项目阶段分析', '固定资产', param.name, param.seriesName, '', '', '', '', '', 216)
})
that.left7Chart.setOption(option)
tools.loopShowTooltip(that.left7Chart, option, {
nterval: 2000,
loopSeries: true,
})
},
initChartL11 () {
let that = this
this.left8Chart = echarts.init(document.getElementById("echartL11"));
let option = {
title: {
text: '股权类进度分布',
textStyle: {
color: '#69C0FF',
fontSize: 30,
fontWeight: 500,
fontFamily: 'Microsoft YaHei'
},
top: '20',
left: '20'
},
textStyle: {
color: '#fff',
},
tooltip: {
trigger: "axis",
formatter: function (params) {
var tip = params[0].axisValue + '
' + params[0].marker + params[0].data[1] + ':' + that.numFormat(params[0].data[2]) + '个,' + that.numFormat(params[0].data[3]) + '亿' + '
' + params[1].marker + params[1].data[1] + ':' + that.numFormat(params[1].data[2]) + '个,' + that.numFormat(params[1].data[3]) + '亿';
return tip
},
textStyle: {
color: '#FFF', // 文字的颜色
fontSize: '20', // 文字字体大小
fontFamily: 'Microsoft YaHei'
},
axisPointer: {
// lineStyle: {
// type: 'dashed',
// width: 2,
// color: 'rgba(255,255,255,0.6)'
// },
animation: true
}
},
grid: {
top: '0%',
right: '5%',
left: '15%',
bottom: '-10%',
},
yAxis: {
data: ['备案', '特别监管'],
splitLine: {
show: false,
lineStyle: {
color: '#68b4dd66',
type: 'dashed',
},
},
axisLine: {
show: false
},
axisLabel: {
show: true,
formatter: '{value}',
textStyle: {
fontSize: 20,
padding: [0, -10, 0, 0],
fontFamily: 'Microsoft YaHei'
},
},
nameTextStyle: {
color: '#ebf8ac',
fontSize: 16,
fontFamily: 'Microsoft YaHei'
},
},
xAxis: {
data: ['项目储备', '项目立项', '可研论证', '投资决策'],
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: '#005094',
width: 1,
},
},
axisTick: {
show: true, //隐藏X轴刻度
},
axisLabel: {
show: true,
textStyle: {
color: '#fff', //X轴文字颜色
fontSize: 20,
padding: [-320, 0, 0, 0],
fontFamily: 'Microsoft YaHei'
},
},
},
series: [
{
name: '特别监管',
type: 'scatter',
symbol: 'circle',
symbolSize: function (data) {
return that.numMulti(Math.sqrt(Math.sqrt(data[2])), 5);
},
// label: {
// emphasis: {
// show: true,
// formatter: function (param) {
// return param.data[2];
// },
// position: 'top'
// }
// },
itemStyle: {
normal: {
color: '#40A9FF'
}
},
data: left14[0]
},
{
name: '备案',
type: 'scatter',
symbol: 'circle',
symbolSize: function (data) {
return that.numMulti(Math.sqrt(Math.sqrt(data[2])), 5);
},
// label: {
// emphasis: {
// show: true,
// formatter: function (param) {
// return param.data[2];
// },
// position: 'top'
// }
// },
itemStyle: {
normal: {
color: '#957DFF'
}
},
data: left14[1]
},
]
}
that.left8Chart.on('click', function (param) {
that.showChartLTipDouble(param.name, 'left', '项目阶段分析', '股权类', param.name, param.seriesName, '', '', '', '', '', 216)
})
that.left8Chart.setOption(option)
tools.loopShowTooltip(that.left8Chart, option, {
nterval: 2000,
loopSeries: true,
})
},
// 大屏二
initChartC1 () {
if (this.centerType) {
//3D饼图
var chartData = center2
var i = 0;
let that = this
var option = {
colors: ['#064F78', '#BDB35D', '#623726', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
chart: {
type: 'pie',
backgroundColor: 'rgba(0,0,0,0)',
options3d: {
enabled: true,
alpha: 60,
//beta: 0
},
events: {
// load,图表加载完成时触发
load: function () {
var chart = this;
var points = chart.series[0].points;
var len = points.length;
that.pieTime7 && clearInterval(that.pieTime7);
that.pieTime7 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.center1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'center', '', '', '', '', 'distribution', e.point.options.typeno, 'industry', e.point.options.typeno, 1, 112)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
},
legendItemClick: function (event) {
return true;
}
}
},
credits: {
enabled: false //去掉hightchats水印
},
legend: {
layout: 'vertical',
align: 'right',
y: -10,
verticalAlign: 'bottom',
itemStyle: {
fontSize: '20px',
color: '#fff',
fontWeight: 0,
fontFamily: 'Microsoft YaHei'
}
},
tooltip: {
crosshairs: true,
backgroundColor: 'rgba(0,0,0,0.5)',
useHTML: false, //开启html模式
style: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
formatter: function (e) {
let num = chartData[this.colorIndex].num
this.percentage = this.percentage.toFixed(2) //Math.round(this.percentage)
return `${this.key}:${this.percentage}%
投资完成额:${this.y}亿
投资数量:${num}个`
},
//pointFormat:
},
plotOptions: {
pie: {
allowPointSelect: true,
showInLegend: true, // 图例
cursor: 'pointer',
size: 500,
// innerSize: 330, //环形图中间空白,0为饼图
innerSize: 0, //环形图中间空白,0为饼图
depth: 75, //立体高度
slicedOffset: 40, //动画距离
dataLabels: {
enabled: false, // 是否展示指示线
format: '{point.name}: {point.percentage}'
}
},
},
title: {
text: '',
style: {
color: '#fff',
fontSize: 24,
fontFamily: 'Microsoft YaHei'
},
align: 'center',
verticalAlign: "bottom",
x: -120
},
series: [{
type: 'pie',
name: '占比',
center: ['74%', '50%'],
point: {
events: {
click: function (e) { //点击事件
that.showChartLTipDouble(e.point.name, 'center', '', '', '', '', 'distribution', e.point.options.typeno, 'industry', e.point.options.typeno, 1, 112)
},
mouseOver: function (e) { //鼠标移入停止轮播并且找到移入的当前数据设为选中
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
})
chartData[e.target.index].sliced = true
chartData[e.target.index].selected = true
that.center1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'center', '', '', '', '', 'distribution', e.point.options.typeno, 'industry', e.point.options.typeno, 1, 112)
}
}
},
data: chartData
}]
})
that.pieTime7 && clearInterval(that.pieTime7);
},
mouseOut: function () { // 鼠标移出后需要继续执行轮播
var points = that.center1Chart.series[0].points;
var len = points.length;
that.pieTime7 && clearInterval(that.pieTime7);
that.pieTime7 = setInterval(function () {
autoTooltip(points[i]);
chartData.forEach((item, index) => {
item.sliced = false
item.selected = false
if (index == i) {
item.sliced = true
item.selected = true
}
})
that.center1Chart.update({
series: [{
type: 'pie',
name: '占比',
point: {
events: {
click: function (e) {
that.showChartLTipDouble(e.point.name, 'center', '', '', '', '', 'distribution', e.point.options.typeno, 'industry', e.point.options.typeno, 1, 112)
}
}
},
data: chartData
}]
})
i++;
if (i === len) {
i = 0;
}
}, 2000);
}
}
},
data: chartData
}]
}
that.center1Chart = Highcharts.chart('echartC1', option);
function autoTooltip (point) {
that.center1Chart.tooltip.refresh(point);
}
} else {
let that = this
that.center1Chart = echarts.init(this.$refs['echartC1'])
data = center2
arrName = getArrayValue(data, "name");
arrValue = getArrayValue(data, "value");
sumValue = eval(arrValue.join("+"));
objData = array2obj(data, "name");
optionData = getData(data);
function getArrayValue (array, key) {
var key = key || "value";
var res = [];
if (array) {
array.forEach(function (t) {
res.push(t[key]);
});
}
return res;
}
function array2obj (array, key) {
var resObj = {};
for (var i = 0; i < array.length; i++) {
resObj[array[i][key]] = array[i];
}
return resObj;
}
function getData (data) {
var res = {
series: [],
yAxis: [],
};
for (let i = 0; i < data.length; i++) {
res.series.push({
name: "",
type: "pie",
clockWise: false, //顺时加载
hoverAnimation: false, //鼠标移入变大
radius: [55 - i * 15 + "%", 50 - i * 15 + "%"],
center: ["25%", "60%"],
label: {
show: false,
},
itemStyle: {
label: {
show: false,
},
labelLine: {
show: false,
},
borderWidth: 5,
},
data: [
{
value: data[i].value,
name: data[i].name,
typeno: data[i].typeno
},
{
value: sumValue - data[i].value,
name: "",
itemStyle: {
color: "rgba(0,0,0,0)",
borderWidth: 0,
},
tooltip: {
show: false,
},
hoverAnimation: false,
},
],
});
res.series.push({
name: "",
type: "pie",
silent: true,
z: 1,
clockWise: false, //顺时加载
hoverAnimation: false, //鼠标移入变大
radius: [55 - i * 15 + "%", 50 - i * 15 + "%"],
center: ["25%", "60%"],
label: {
show: false,
},
itemStyle: {
label: {
show: false,
},
labelLine: {
show: false,
},
borderWidth: 5,
},
data: [
{
value: 7.5,
itemStyle: {
color: "#4d638050",
borderWidth: 0,
},
tooltip: {
show: false,
},
hoverAnimation: false,
},
{
value: 2.5,
name: "",
itemStyle: {
color: "rgba(0,0,0,0)",
borderWidth: 0,
},
tooltip: {
show: false,
},
hoverAnimation: false,
},
],
});
// res.yAxis.push(((data[i].value / sumValue) * 100).toFixed(2) + "%");
res.yAxis.push(that.numMulti(data[i].value / sumValue, 100).toFixed(2) + "%");
}
return res;
}
let option = {
// graphic: {
// elements: [{
// type: 'image',//需要填充图片,配置image,如果不需要图片可以配置其他的, text, circle, sector, ring, polygon, polyline, rect, line, bezierCurve, arc, group,
// style: {
// image: './images/loop.png', //这里添加图片地址
// width: 320,
// height: 320
// },
// left: '30',//
// top: 'middle' //配置图片居中
// }]
// },
legend: {
show: false,
trigger: 'item',
icon: "circle",
top: "center",
left: "70%",
data: arrName,
width: 50,
padding: [0, 5],
itemGap: 25,
formatter: function (data) {
let a = center2.find(item => item.name == data)
// return `${data}
${a.value}亿
${a.num}个`
return `${data}
`
},
textStyle: {
fontSize: 20,
color: '#fff',
fontFamily: 'Microsoft YaHei'
// rich: {
// title: {
// fontSize: 14,
// lineHeight: 15,
// color: "rgb(0, 178, 246)",
// },
// value: {
// fontSize: 18,
// lineHeight: 20,
// color: "#fff",
// },
// },
},
},
// tooltip: {
// show: false,
// normal: {
// show: false,
// trigger: "item",
// label: {
// margin: 10, // label 距离轴的距离
// color: '#FFF', // 文字的颜色
// fontStyle: 'normal', // 文字字体的风格('normal',无样式;'italic',斜体;'oblique',倾斜字体)
// fontWeight: 'normal', // 文字字体的粗细('normal',无样式;'bold',加粗;'bolder',加粗的基础上再加粗;'lighter',变细;数字定义粗细也可以,取值范围100至700)
// fontSize: '20', // 文字字体大小
// lineHeight: '50', // 行高
// },
// },
// // formatter: "{a}
{b}:{c}({d}%)666",
// textStyle: {
// color: '#FFF', // 文字的颜色
// fontStyle: 'normal', // 文字字体的风格('normal',无样式;'italic',斜体;'oblique',倾斜字体)
// fontWeight: 'normal', // 文字字体的粗细('normal',无样式;'bold',加粗;'bolder',加粗的基础上再加粗;'lighter',变细;数字定义粗细也可以,取值范围100至700)
// },
// formatter: data => {
// // 小圆点
// return `
${data.name}:${data.percent}`
// },
// },
color: ['#43a5f1', '#e9d443', '#5a78e0', '#955773', '#B57C63', '#73A88E', '#09736D', '#13400B', '#0D3265'],
grid: {
top: "30%",
bottom: "47%",
left: "26%",
containLabel: false,
},
yAxis: [
{
type: "category",
inverse: true,
axisLine: {
show: false,
},
axisTick: {
show: false,
},
axisLabel: {
interval: 0,
inside: true,
textStyle: {
color: "#fff",
fontSize: 20,
fontFamily: 'Microsoft YaHei'
},
show: true,
formatter: data => {
return `----- ${data}`
},
},
data: optionData.yAxis,
},
],
xAxis: [
{
show: false,
},
],
series: optionData.series,
}
that.center1Chart.on('click', (params) => {
that.showChartLTipDouble(params.data.name, 'center', '', '', '', '', 'distribution', params.data.typeno, 'industry', params.data.typeno, 1, 112)
})
that.center1Chart.setOption(option)
// tools.loopShowTooltip(myChart, option, {
// interval: 500,
// loopSeries: true,
// });
}
},
initChartC2 () {
let that = this
that.center2Chart = echarts.init(this.$refs['echartC2'])
that.center2Chart.on('showTip', (params) => {
// 如果是7或者15并且满足防抖则切换
if ((params.dataIndex == 5 || params.dataIndex == 11) && that.echartC2Fd) {
that.echartC2Fd = false
setTimeout(() => {
option.dataZoom[0].endValue = option.dataZoom[0].endValue + 6
option.dataZoom[0].startValue = option.dataZoom[0].startValue + 6
that.center2Chart.setOption(option);
// 防止勿刷新做的防抖
setTimeout(() => {
that.echartC2Fd = true
}, 2000)
}, 1900);
// 如果是17表示到了最后一个,那么重新来一遍
} else if (params.dataIndex == 17 && that.echartC2Fd) {
that.echartC2Fd = false
setTimeout(() => {
option.dataZoom[0].endValue = 0
option.dataZoom[0].startValue = 5
that.center2Chart.setOption(option);
// 防止勿刷新做的防抖
setTimeout(() => {
that.echartC2Fd = true
}, 2000)
}, 1900)
}
})
let option = {
tooltip: {
formatter: data => {
return `${data[0].name}
${data[0].seriesName}:${data[0].value}亿
${data[1].seriesName}:${data[1].value}亿`
},
trigger: 'axis',
axisPointer: {
// type: 'cross',',
},
textStyle: {
color: '#FFF', // 文字的颜色
fontSize: '20', // 文字字体大小
fontFamily: 'Microsoft YaHei'
},
},
dataZoom: [
{
// start: 9,//默认为@
// end: 100,//黑认认为1@0
type: "slider",
show: false,
// xAxisIndex: [0]
handlesize: 0,//滑动条的 左右2个滑动条的大小
startValue: 5,// 初始显示值
endValue: 0,// 结束显示值
height: 10,//组件高度
left: "5%",
right: "4%",//右边的距离
bottom: "25%",//底边的距离
borderColor: "#939",
fillerColor: "#269cdb",
borderRadius: 5,
backgroundColor: "#33384b",//两边未选中的滑动条区域的额色
showDataShadow: false,//是否显示数据阴影
showDetail: false,//即拖拽时候是否显示详细数值信息
truerealtime: true,//是否实时更新
filterMode: "filter"
}, {
type: 'inside',
show: true,
start: 1,
end: 100,
zoomOnMouseWheel: false, //滚轮是否触发缩放
moveOnMouseMove: false, //鼠标滚轮触发滚动
}
],
grid: {
top: '10%',
right: '3%',
left: '7%',
bottom: '15%',
},
legend: {
top: '1',
right: 'center',
textStyle: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
xAxis: {
data: commonCompany,
// data: center3.map(item => item.name),
axisLine: {
show: true, //隐藏X轴轴线
lineStyle: {
color: '#005094',
width: 1,
},
},
axisTick: {
show: false, //隐藏X轴刻度
},
axisLabel: {
show: true,
rotate: 40,
textStyle: {
color: '#fff',//'rgba(255,255,255,0.6)', //X轴文字颜色
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
},
yAxis: [
{
type: 'value',
name: '亿',
splitLine: {
show: true,
lineStyle: {
color: '#68b4dd66',
type: 'dashed',
},
},
axisLine: {
show: true,
lineStyle: {
color: '#3D7495',
},
},
axisLabel: {
show: true,
textStyle: {
color: '#fff',
fontSize: '20',
fontFamily: 'Microsoft YaHei'
},
},
nameTextStyle: {
color: '#fff',
fontSize: 20,
fontFamily: 'Microsoft YaHei'
},
},
],
series: [
{
name: '计划投资',
type: 'bar',
barWidth: 10,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: '#69c0ff',
},
{
offset: 1,
color: '#082550',
},
]),
},
},
data: center3.map(item => item.value),
},
{
name: '实际投资',
type: 'bar',
barWidth: 10,
itemStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: '#957DFF',
},
{
offset: 1,
color: '#082550',
},
]),
},
},
data: center3.map(item => item.value2),
},
],
}
that.center2Chart.on('click', function (param) {
param.seriesName == '计划投资' ? that.projectNum = 1131 : that.projectNum = 1132
that.centerPenetrateTwo('', '', that.findCode(param.name), param.seriesName == '计划投资' ? 2 : 1)
})
that.center2Chart.setOption(option)
tools.loopShowTooltip(that.center2Chart, option, {
nterval: 2000,
loopSeries: true,
})
// let arr = center3.map(item => item.value2)
// this.timeOut = setInterval(function () {
// let startValue = myChart.getModel().option.dataZoom[0].startValue;
// let endValue = myChart.getModel().option.dataZoom[0].endValue;
// let start = myChart.getModel().option.xAxis[0].data[startValue];//起始X轴
// let end = myChart.getModel().option.xAxis[0].data[endValue];//结束X轴
// // 每次向后滚动一个,最后一个从头开始。
// if (option.dataZoom[0].endValue >= 12) {
// option.dataZoom[0].endValue = 5
// option.dataZoom[0].startValue = 0
// } else {
// option.dataZoom[0].endValue = option.dataZoom[0].endValue + 6
// option.dataZoom[0].startValue = option.dataZoom[0].startValue + 6
// }
// // myChart.dispatchAction({
// // type: 'showTip',
// // seriesIndex: 0,
// // dataIndex: startValue +1,
// // });
// myChart.setOption(option);
// }, 12000);
},
// convertData (data) {
// var res = []
// for (var i = 0; i < data.length; i++) {
// var geoCoord = this.geoCoordMap[data[i].name]
// if (geoCoord) {
// res.push({
// name: data[i].name,
// value: geoCoord.concat(data[i].value),
// })
// }
// }
// return res
// },
yuanChange (value) {
return Number((value / 100000000).toFixed(2))
},
// 逢三折断
numFormat (value) {
if (!value) return '0'
// var intPart = Number(value).toFixed(0) // 获取整数部分
var intPart = parseInt(value)// 获取整数部分
var intPartFormat = intPart.toString().replace(/(\d)(?=(?:\d{3})+$)/g, '$1,') // 将整数部分逢三一断
var floatPart = '.00' // 预定义小数部分
var value2Array = value.toString().split('.')
// =2表示数据有小数位
if (value2Array.length === 2) {
floatPart = value2Array[1].toString() // 拿到小数部分
if (floatPart.length === 1) {
// 补0
return intPartFormat + '.' + floatPart + '0'
} else {
floatPart = floatPart.slice(0, 2)
return intPartFormat + '.' + floatPart
}
} else {
return intPartFormat
}
},
initProvinceChart () {
var data = center5
this.geoCoordMap = []
/*获取地图数据*/
this.mapChart = echarts.init(this.$refs['echarts-map'])
echarts.registerMap('shanxi', shanxi)
var mapFeatures = echarts.getMap('shanxi').geoJson.features
mapFeatures.forEach(v => {
// 地区名称
var name = v.properties.name
// 地区经纬度
this.geoCoordMap[name] = v.properties.centroid
// 按照地图乱序
// data.push({ name: v.properties.name, value: v.properties.centroid[0], value2: v.properties.centroid[1] })
})
let option = {
tooltip: {
padding: 15,
enterable: true,
transitionDuration: 1,
formatter: (params, ticket, callback) => {
// 清空所有轮播
for (var k in this.geoCoordMap) {
this.mapChart.dispatchAction({
// type: 'geoUnSelect',
type: 'downplay',
name: k,
})
}
// 如果鼠标滑动到线线上面,则返回空
this.mapChart.dispatchAction({
// type: 'geoSelect',
type: 'highlight',
name: params.name,
})
if (params.componentSubType == 'lines') {
return
}
if (params.componentSubType == 'scatter') {
let tipHtml = `
项目数量:${data[params.dataIndex].value2}个
总投资额:${params.data.value[2]}亿
项目数量:${data[params.dataIndex].value2}个
总投资额:${params.data.value}亿
项目数量:${that.numFormat(data[params.dataIndex].value2)}个
总投资额:${that.numFormat(params.data.value[2])}亿
项目数量:${that.numFormat(data[params.dataIndex].value2)}个
总投资额:${that.numFormat(params.data.value)}亿