| @@ -116,3 +116,29 @@ export function analysisContractTypes (deptId, year) { | |||
| params: query | |||
| }) | |||
| } | |||
| // 资源一张图-右中-合同数量/金额排名分析 | |||
| export function rankinganalysisofcontractquantityandamount (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resource/htsljepmfx', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 资源一张图-右下-合同不规范管理排名分析 | |||
| export function Rankinganalysisofstandardcontractmanagement (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resource/htbgfglpmfx', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| @@ -1,3 +1,8 @@ | |||
| <Pannel title="合同不规范管理排名分析" height="340"> | |||
| <ScrollTable :headers="headers"></ScrollTable> | |||
| <Pannel title="合同不规范管理排名分析" height="340" | |||
| 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> | |||
| @@ -1,13 +1,33 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { Rankinganalysisofstandardcontractmanagement } from '../../../../api/index.js' | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| components: { | |||
| ScrollTable, | |||
| Pannel | |||
| }, | |||
| computed: { | |||
| ...mapGetters(['year', 'deptId']) | |||
| }, | |||
| watch: { | |||
| year: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| }, | |||
| deptId: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| } | |||
| }, | |||
| data () { | |||
| return { | |||
| data: [], | |||
| isLoad: false, | |||
| headers: ['部门名称', '合同数量', '排名'] | |||
| }; | |||
| }, | |||
| @@ -16,5 +36,17 @@ export default { | |||
| mounted () { | |||
| }, | |||
| methods: { | |||
| getData () { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| Rankinganalysisofstandardcontractmanagement(this.deptId, this.year).then(res => { | |||
| let data = res.data.map(item => { | |||
| return [item.name, item.value, item.index] | |||
| }) | |||
| this.data = data | |||
| this.isLoad = true; | |||
| }) | |||
| } | |||
| }, | |||
| } | |||
| }; | |||
| @@ -1,11 +1,16 @@ | |||
| <Pannel title="合同数量/金额排名分析" height="340"> | |||
| <Pannel title="合同数量/金额排名分析" height="340" | |||
| 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="top"> | |||
| <PannelTabs @change="tabChange" :data="pannelTabData"></PannelTabs> | |||
| </div> | |||
| <div class="buttom"> | |||
| <ScrollTable :headers="headers"></ScrollTable> | |||
| <ScrollTable v-if="isLoad" :data="data" :headers="headers"></ScrollTable> | |||
| </div> | |||
| </div> | |||
| </Pannel> | |||
| @@ -1,14 +1,36 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import PannelTabs from '@/components/pannel-tabs/index.vue'; | |||
| import { rankinganalysisofcontractquantityandamount } from '../../../../api/index.js' | |||
| import { mapGetters } from 'vuex' | |||
| export default { | |||
| components: { | |||
| PannelTabs, | |||
| ScrollTable, | |||
| Pannel | |||
| }, | |||
| computed: { | |||
| ...mapGetters(['year', 'deptId']) | |||
| }, | |||
| watch: { | |||
| year: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| }, | |||
| deptId: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| } | |||
| }, | |||
| data () { | |||
| return { | |||
| id: '1', | |||
| isLoad: false, | |||
| data: [], | |||
| headers: ['部门名称', '数量', '排名'], | |||
| pannelTabData: [ | |||
| { | |||
| @@ -19,7 +41,7 @@ export default { | |||
| id: '2', | |||
| name: '金额' | |||
| } | |||
| ], | |||
| ] | |||
| }; | |||
| }, | |||
| created () { | |||
| @@ -27,7 +49,28 @@ export default { | |||
| mounted () { | |||
| }, | |||
| methods: { | |||
| tabChange () { | |||
| getData () { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| rankinganalysisofcontractquantityandamount(this.deptId, this.year).then(res => { | |||
| if (this.id == 1) { | |||
| let data = res.data.sl.map(item => { | |||
| return [item.name, item.value, item.index] | |||
| }) | |||
| this.data = data; | |||
| } else if (this.id == 2) { | |||
| let data = res.data.je.map(item => { | |||
| return [item.name, item.value, item.index] | |||
| }) | |||
| this.data = data; | |||
| } | |||
| this.isLoad = true; | |||
| }) | |||
| } | |||
| }, | |||
| tabChange (info) { | |||
| this.id = info.id | |||
| this.getData() | |||
| } | |||
| } | |||
| @@ -35,7 +35,6 @@ export default { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| analysisContractTypes(this.deptId, this.year).then(res => { | |||
| console.log('analysisContractTypes', res); | |||
| this.data[0][0].value = res.data.numHt | |||
| this.data[0][1].value = res.data.zhte | |||
| this.data[1][0].value = res.data.yjk | |||