| @@ -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; | |||||
| }) | |||||
| } | |||||
| } | |||||
| } | } | ||||
| }; | }; | ||||