@@ -68,20 +68,15 @@ export default { | |||||
const option = { | const option = { | ||||
color: ["#3398DB"], | color: ["#3398DB"], | ||||
tooltip: { | tooltip: { | ||||
trigger: "axis", | |||||
axisPointer: { | |||||
type: "line", | |||||
lineStyle: { | |||||
opacity: 0, | |||||
}, | |||||
} | |||||
show: true, | |||||
trigger: "item", | |||||
}, | }, | ||||
legend: { | legend: { | ||||
data: ["直接访问", "背景"], | data: ["直接访问", "背景"], | ||||
show: false, | show: false, | ||||
}, | }, | ||||
grid: { | grid: { | ||||
left: "0%", | |||||
left: "10%", | |||||
right: "0%", | right: "0%", | ||||
bottom: "5%", | bottom: "5%", | ||||
top: "15%", | top: "15%", | ||||
@@ -179,6 +174,23 @@ export default { | |||||
shadowBlur: 10, | shadowBlur: 10, | ||||
color: 'rgba(18, 40, 83, 1)' | color: 'rgba(18, 40, 83, 1)' | ||||
}, | }, | ||||
renderItem: function (params, api) { | |||||
//获取对应类目的axisTick中心点坐标 | |||||
var start = api.coord([api.value(0)]); | |||||
//通过坐标系的宽度和类目数,计算单个类目的背景 | |||||
var width = (params.coordSys.width / 7) * 0.6; | |||||
return { | |||||
type: 'rect', | |||||
shape: { | |||||
// 相对左上角坐标 | |||||
x: start[0] - width / 2, | |||||
y: params.coordSys.y, | |||||
width: width, | |||||
height: params.coordSys.height, | |||||
}, | |||||
style: api.style() | |||||
}; | |||||
}, | |||||
itemStyle: { | itemStyle: { | ||||
normal: { | normal: { | ||||
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [ | ||||
@@ -213,31 +225,7 @@ export default { | |||||
}, | }, | ||||
data: data, | data: data, | ||||
zlevel: 11, | zlevel: 11, | ||||
}, | |||||
{ | |||||
type: 'custom', | |||||
itemStyle: { | |||||
color: 'rgba(18, 40, 83, 0.4)' | |||||
}, | |||||
renderItem: function (params, api) { | |||||
//获取对应类目的axisTick中心点坐标 | |||||
var start = api.coord([api.value(0)]); | |||||
//通过坐标系的宽度和类目数,计算单个类目的背景 | |||||
var width = (params.coordSys.width / 7) * 0.6; | |||||
return { | |||||
type: 'rect', | |||||
shape: { | |||||
// 相对左上角坐标 | |||||
x: start[0] - width / 2, | |||||
y: params.coordSys.y, | |||||
width: width, | |||||
height: params.coordSys.height, | |||||
}, | |||||
style: api.style() | |||||
}; | |||||
}, | |||||
data: [100, 100, 100, 100, 100, 100, 100] | |||||
}, | |||||
} | |||||
], | ], | ||||
};; | };; | ||||
@@ -130,3 +130,30 @@ export function analysisOfLargeFundExpenditureWarning (deptId, year) { | |||||
}) | }) | ||||
} | } | ||||
// 资金一张图-预警分析-左下-资金往来不规范预警分析 | |||||
export function warninganalysisofnonstandardfund (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year, | |||||
voucherAmountMin: 10000 | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/financeWarning/zjwlbgfyjfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资金一张图-预警分析-右上-资金支出大额预警排名 | |||||
export function rankingOfLargeFundExpenditureWarning (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year, | |||||
voucherAmountMin: 10000 | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/financeWarning/zjzcdeyjpm', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} |
@@ -1,11 +1,16 @@ | |||||
<Pannel title="资金往来不规范预警分析" height="305"> | |||||
<Pannel title="资金往来不规范预警分析" height="305" | |||||
v-loading="!isLoad" | |||||
element-loading-text="拼命加载中" | |||||
element-loading-spinner="el-icon-loading" | |||||
element-loading-background="rgba(0, 0, 0, 0.1)" | |||||
> | |||||
<div class="full"> | <div class="full"> | ||||
<div class="top"> | <div class="top"> | ||||
<PannelTabs @change="tabChange" :data="pannelTabsData"></PannelTabs> | <PannelTabs @change="tabChange" :data="pannelTabsData"></PannelTabs> | ||||
</div> | </div> | ||||
<div class="buttom"> | <div class="buttom"> | ||||
<BarSign id="bar3"></BarSign> | |||||
<BarSign v-if="isLoad" id="bar3" :data="data"></BarSign> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</Pannel> | </Pannel> |
@@ -1,12 +1,31 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import BarSign from '@/components/charts/bar-sign/index.vue'; | import BarSign from '@/components/charts/bar-sign/index.vue'; | ||||
import PannelTabs from '@/components/pannel-tabs/index.vue'; | import PannelTabs from '@/components/pannel-tabs/index.vue'; | ||||
import { mapGetters } from 'vuex'; | |||||
import { warninganalysisofnonstandardfund } from '../../../../api/index.js'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
BarSign, | BarSign, | ||||
PannelTabs, | PannelTabs, | ||||
Pannel | Pannel | ||||
}, | }, | ||||
computed: { | |||||
...mapGetters(['year', 'deptId']) | |||||
}, | |||||
watch: { | |||||
year: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
}, | |||||
deptId: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
} | |||||
}, | |||||
data () { | data () { | ||||
return { | return { | ||||
pannelTabsData: [ | pannelTabsData: [ | ||||
@@ -18,16 +37,41 @@ export default { | |||||
id: '2', | id: '2', | ||||
name: '收入' | name: '收入' | ||||
} | } | ||||
] | |||||
], | |||||
data: [], | |||||
isLoad: false, | |||||
tabIndex: '1' | |||||
}; | }; | ||||
}, | }, | ||||
created () { | |||||
}, | |||||
mounted () { | |||||
}, | |||||
methods: { | methods: { | ||||
tabChange () { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
warninganalysisofnonstandardfund(this.deptId, this.year).then(res => { | |||||
if (this.tabIndex == 1) { | |||||
let arr = res.data.zc.map(item => { | |||||
return { | |||||
name: item.name, | |||||
name: item.value | |||||
} | |||||
}) | |||||
this.data = arr | |||||
} else if (this.tabIndex == 2) { | |||||
let arr = res.data.sr.map(item => { | |||||
return { | |||||
name: item.name, | |||||
name: item.value | |||||
} | |||||
}) | |||||
this.data = arr | |||||
} | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
}, | |||||
tabChange (info) { | |||||
this.tabIndex = info.id | |||||
this.getData() | |||||
} | } | ||||
} | } | ||||
}; | }; |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="资金支出大额预警排名" height="305"> | |||||
<ScrollTable :headers="headers"></ScrollTable> | |||||
<Pannel title="资金支出大额预警排名" height="305" | |||||
v-loading="!isLoad" | |||||
element-loading-text="拼命加载中" | |||||
element-loading-spinner="el-icon-loading" | |||||
element-loading-background="rgba(0, 0, 0, 0.1)" | |||||
> | |||||
<ScrollTable v-if="isLoad" :data="data" :headers="headers"></ScrollTable> | |||||
</Pannel> | </Pannel> |
@@ -1,12 +1,32 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import ScrollTable from '@/components/scroll-table/index.vue'; | import ScrollTable from '@/components/scroll-table/index.vue'; | ||||
import { rankingOfLargeFundExpenditureWarning } from '../../../../api/index.js'; | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
ScrollTable, | ScrollTable, | ||||
Pannel | Pannel | ||||
}, | }, | ||||
computed: { | |||||
...mapGetters(['year', 'deptId']) | |||||
}, | |||||
watch: { | |||||
year: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
}, | |||||
deptId: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
} | |||||
}, | |||||
data () { | data () { | ||||
return { | return { | ||||
isLoad: false, | |||||
headers: ['部门名称', '支出金额', '排名'] | headers: ['部门名称', '支出金额', '排名'] | ||||
}; | }; | ||||
}, | }, | ||||
@@ -15,5 +35,18 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
rankingOfLargeFundExpenditureWarning(this.deptId, this.year).then(res => { | |||||
console.log(1111, res); | |||||
let data = res.rows.map(item => { | |||||
return [item.name, item.value, item.index] | |||||
}) | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
} | } | ||||
}; | }; |