@@ -116,3 +116,29 @@ export function analysisContractTypes (deptId, year) { | |||||
params: query | 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> | </Pannel> |
@@ -1,13 +1,33 @@ | |||||
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 { Rankinganalysisofstandardcontractmanagement } 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 { | ||||
data: [], | |||||
isLoad: false, | |||||
headers: ['部门名称', '合同数量', '排名'] | headers: ['部门名称', '合同数量', '排名'] | ||||
}; | }; | ||||
}, | }, | ||||
@@ -16,5 +36,17 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | 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="full"> | ||||
<div class="top"> | <div class="top"> | ||||
<PannelTabs @change="tabChange" :data="pannelTabData"></PannelTabs> | <PannelTabs @change="tabChange" :data="pannelTabData"></PannelTabs> | ||||
</div> | </div> | ||||
<div class="buttom"> | <div class="buttom"> | ||||
<ScrollTable :headers="headers"></ScrollTable> | |||||
<ScrollTable v-if="isLoad" :data="data" :headers="headers"></ScrollTable> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</Pannel> | </Pannel> |
@@ -1,14 +1,36 @@ | |||||
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 PannelTabs from '@/components/pannel-tabs/index.vue'; | import PannelTabs from '@/components/pannel-tabs/index.vue'; | ||||
import { rankinganalysisofcontractquantityandamount } from '../../../../api/index.js' | |||||
import { mapGetters } from 'vuex' | |||||
export default { | export default { | ||||
components: { | components: { | ||||
PannelTabs, | PannelTabs, | ||||
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 { | ||||
id: '1', | |||||
isLoad: false, | |||||
data: [], | |||||
headers: ['部门名称', '数量', '排名'], | headers: ['部门名称', '数量', '排名'], | ||||
pannelTabData: [ | pannelTabData: [ | ||||
{ | { | ||||
@@ -19,7 +41,7 @@ export default { | |||||
id: '2', | id: '2', | ||||
name: '金额' | name: '金额' | ||||
} | } | ||||
], | |||||
] | |||||
}; | }; | ||||
}, | }, | ||||
created () { | created () { | ||||
@@ -27,7 +49,28 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | 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) { | if (this.year, this.deptId) { | ||||
this.isLoad = false; | this.isLoad = false; | ||||
analysisContractTypes(this.deptId, this.year).then(res => { | analysisContractTypes(this.deptId, this.year).then(res => { | ||||
console.log('analysisContractTypes', res); | |||||
this.data[0][0].value = res.data.numHt | this.data[0][0].value = res.data.numHt | ||||
this.data[0][1].value = res.data.zhte | this.data[0][1].value = res.data.zhte | ||||
this.data[1][0].value = res.data.yjk | this.data[1][0].value = res.data.yjk | ||||