@@ -2,11 +2,16 @@ import request from '@/utils/request' | |||||
import { usingExternalUploadService } from "@/api/system/config"; | import { usingExternalUploadService } from "@/api/system/config"; | ||||
//查询已上传附件 | //查询已上传附件 | ||||
export const attachmentList = (data) => { | |||||
export const attachmentList = (deptId, year, useType) => { | |||||
let query = { | |||||
deptId, | |||||
year, | |||||
useType | |||||
} | |||||
return request({ | return request({ | ||||
url: '/api/system/attachment/query', | |||||
url: 'api/home/xixia/asset/zcList', | |||||
method: 'get', | method: 'get', | ||||
params: data | |||||
params: query | |||||
}) | }) | ||||
} | } | ||||
@@ -51,7 +56,6 @@ export const extUploader = function () { | |||||
// 内部方式上传 | // 内部方式上传 | ||||
this._Upload_inner = (url, data) => { | this._Upload_inner = (url, data) => { | ||||
//console.log('使用内部上传: ' + process.env.VUE_APP_BASE_API + url); | |||||
return request({ | return request({ | ||||
url: url, | url: url, | ||||
method: 'post', | method: 'post', | ||||
@@ -66,7 +70,6 @@ export const extUploader = function () { | |||||
data.append('token', this._token); | data.append('token', this._token); | ||||
else | else | ||||
data.token = this._token; | data.token = this._token; | ||||
//console.log('使用外部上传: ' + this._remoteHost + url); | |||||
return request({ | return request({ | ||||
url: url, | url: url, | ||||
method: 'post', | method: 'post', | ||||
@@ -86,13 +89,11 @@ export const extUploader = function () { | |||||
this._token = resp.data; | this._token = resp.data; | ||||
this._remoteHost = resp.fileServerAddress; | this._remoteHost = resp.fileServerAddress; | ||||
this._usingExternal = true; | this._usingExternal = true; | ||||
//console.log('使用外部上传: ' + this._remoteHost); | |||||
} | } | ||||
else { | else { | ||||
this._token = null; | this._token = null; | ||||
this._remoteHost = null; | this._remoteHost = null; | ||||
this._usingExternal = false; | this._usingExternal = false; | ||||
//console.log('使用内部上传'); | |||||
} | } | ||||
this._supportExternal = true; | this._supportExternal = true; | ||||
}).catch(() => { | }).catch(() => { | ||||
@@ -100,7 +101,6 @@ export const extUploader = function () { | |||||
this._remoteHost = null; | this._remoteHost = null; | ||||
this._usingExternal = false; | this._usingExternal = false; | ||||
this._supportExternal = false; | this._supportExternal = false; | ||||
//console.log('未配置文件外部服务, 将使用内部上传'); | |||||
}); | }); | ||||
}; | }; | ||||
@@ -151,7 +151,6 @@ export const extUploader = function () { | |||||
throw '请先调用Init进行初始化'; | throw '请先调用Init进行初始化'; | ||||
if (this._UsingExternal()) { | if (this._UsingExternal()) { | ||||
return this._Upload_external(extUrl, data).catch(() => { | return this._Upload_external(extUrl, data).catch(() => { | ||||
//console.log('外部上传失败! 尝试转为内部上传'); | |||||
this.ForceDisableExternal(); | this.ForceDisableExternal(); | ||||
return this._Upload_inner(innerUrl, data); | return this._Upload_inner(innerUrl, data); | ||||
}); | }); | ||||
@@ -46,15 +46,14 @@ export default { | |||||
watch: { | watch: { | ||||
data: { | data: { | ||||
handler: function (val) { | handler: function (val) { | ||||
this.$nextTick(function(){ | |||||
setTimeout(()=>{ | |||||
this.$nextTick(function () { | |||||
setTimeout(() => { | |||||
this.initChart(); | this.initChart(); | ||||
},2000) | |||||
console.log(val) | |||||
}, 2000) | |||||
}); | }); | ||||
}, | }, | ||||
immediate: true, | immediate: true, | ||||
deep:true | |||||
deep: true | |||||
} | } | ||||
}, | }, | ||||
create () { | create () { | ||||
@@ -91,7 +90,6 @@ export default { | |||||
bgData.push(100) | bgData.push(100) | ||||
}); | }); | ||||
//console.log(data); | |||||
const option = { | const option = { | ||||
color: ["#3398DB"], | color: ["#3398DB"], | ||||
tooltip: { | tooltip: { | ||||
@@ -54,15 +54,14 @@ export default { | |||||
watch: { | watch: { | ||||
data: { | data: { | ||||
handler: function (val) { | handler: function (val) { | ||||
this.$nextTick(function(){ | |||||
setTimeout(()=>{ | |||||
this.$nextTick(function () { | |||||
setTimeout(() => { | |||||
this.initChart(); | this.initChart(); | ||||
},2000) | |||||
console.log(val) | |||||
}, 2000) | |||||
}); | }); | ||||
}, | }, | ||||
immediate: true, | immediate: true, | ||||
deep:true | |||||
deep: true | |||||
} | } | ||||
}, | }, | ||||
mounted () { | mounted () { | ||||
@@ -89,7 +88,6 @@ export default { | |||||
...this.data | ...this.data | ||||
]; | ]; | ||||
var that = this; | var that = this; | ||||
console.log(echartData) | |||||
var rich = { | var rich = { | ||||
yellow: { | yellow: { | ||||
color: "rgba(185, 211, 235, 1)", | color: "rgba(185, 211, 235, 1)", | ||||
@@ -25,7 +25,6 @@ export default { | |||||
watch: { | watch: { | ||||
'queryParams.deptId': { | 'queryParams.deptId': { | ||||
handler: function () { | handler: function () { | ||||
console.log(this.queryParams.deptId); | |||||
this.commitDept(this.queryParams.deptId); | this.commitDept(this.queryParams.deptId); | ||||
}, | }, | ||||
immediate: true, // 立即执行 | immediate: true, // 立即执行 | ||||
@@ -89,7 +88,6 @@ export default { | |||||
created () { | created () { | ||||
}, | }, | ||||
mounted () { | mounted () { | ||||
// console.log('当前年份', this.centerYear); | |||||
this.commitYear(this.centerYear); | this.commitYear(this.centerYear); | ||||
// 获取geoserver的地址 | // 获取geoserver的地址 | ||||
this.getGeoServerUrl(); | this.getGeoServerUrl(); | ||||
@@ -1,7 +1,7 @@ | |||||
const getters = { | const getters = { | ||||
sidebar: state => state.app.sidebar, | sidebar: state => state.app.sidebar, | ||||
year: state => state.user.year, | |||||
deptId: state => state.user.deptId, | |||||
year: state => { return state.user.year ? state.user.year : new Date().getFullYear() }, | |||||
deptId: state => { return state.user.deptId ? state.user.deptId : 100 }, | |||||
size: state => state.app.size, | size: state => state.app.size, | ||||
device: state => state.app.device, | device: state => state.app.device, | ||||
visitedViews: state => state.tagsView.visitedViews, | visitedViews: state => state.tagsView.visitedViews, | ||||
@@ -1,3 +1,8 @@ | |||||
<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)" | |||||
> | |||||
<ScrollTable v-if="isLoad" :data="data" :headers="['部门名称', '收入金额', '排名']"></ScrollTable> | <ScrollTable v-if="isLoad" :data="data" :headers="['部门名称', '收入金额', '排名']"></ScrollTable> | ||||
</Pannel> | </Pannel> |
@@ -65,7 +65,6 @@ export default { | |||||
} | } | ||||
}, | }, | ||||
tabChange (info) { | tabChange (info) { | ||||
console.log('222', info); | |||||
this.type = info.type; | this.type = info.type; | ||||
this.tabIndex = info.id | this.tabIndex = info.id | ||||
this.getData() | this.getData() | ||||
@@ -90,4 +90,176 @@ export function longTermIdleResourceWarning (deptId, year) { | |||||
method: 'get', | method: 'get', | ||||
params: query | params: query | ||||
}) | }) | ||||
} | |||||
// 资产一张图-债务分析-左上-债务概况分析 | |||||
export function debtOverviewAnalysis (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/assetAnalysis/zwhkfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-债务分析-左下-债务趋势分析 | |||||
export function debtTrendAnalysis (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/assetAnalysis/zwqsfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-债务分析-左下-债务趋势分析 | |||||
export function rankingOfDebtAmount (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/assetAnalysis/zwjepm', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-债务分析-右中-债务变化排名 | |||||
export function debtChangeRanking (deptId, year, type) { | |||||
let query = { | |||||
deptId, | |||||
year, | |||||
type | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/assetAnalysis/zwbhpm', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-债务分析-右下-债务超标分析 | |||||
export function analysisOfExcessiveDebt (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year, | |||||
zwRate: 40 | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/assetAnalysis/zwcbfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-债务分析-中下-7指标 | |||||
export function debtAnalysis (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year, | |||||
zwRate: 40 | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/assetAnalysis/zczwfxzb', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-左上-固定资产概况分析 | |||||
export function analysisOfFixedAssetOverview (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/asset/gdzcgkfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-左中-固定资产类型分析 | |||||
export function analysisOfFixedAssetTypes (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/asset/gdzclxfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-左下-经营性资产分析 | |||||
export function analysisOfOperatingAssets (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/asset/jyxzcfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-右上-合同类型分析 | |||||
export function analysisOfContractTypes (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/asset/htgkfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-右中-合同数量/金额排名分析 | |||||
export function analysisOfAmountRanking (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/asset/htsljepmfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-右下-合同不规范管理排名分析 | |||||
export function rankingAnalysisOfNonStandardContractManagement (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/asset/htbgfglpmfx', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 资产一张图-中下-7指标 | |||||
export function indicatorBelowAverage (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/asset/zczb', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | } |
@@ -1,5 +1,7 @@ | |||||
import BlockValue from '@/components/value/index.vue'; | import BlockValue from '@/components/value/index.vue'; | ||||
import data from './data.js'; | import data from './data.js'; | ||||
import { mapGetters } from 'vuex'; | |||||
import { indicatorBelowAverage } from '../../../api/index.js'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
BlockValue | BlockValue | ||||
@@ -9,10 +11,41 @@ export default { | |||||
data | data | ||||
}; | }; | ||||
}, | }, | ||||
created () { | |||||
computed: { | |||||
...mapGetters(['year', 'deptId']) | |||||
}, | }, | ||||
mounted () { | |||||
watch: { | |||||
year: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
}, | |||||
deptId: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
} | |||||
}, | }, | ||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
indicatorBelowAverage(this.deptId, this.year).then(res => { | |||||
this.data[0][0].value = res.data.cqtz | |||||
this.data[0][1].value = res.data.dqtz | |||||
this.data[0][2].value = res.data.ysk | |||||
this.data[1][0].value = res.data.kcwz | |||||
this.data[1][1].value = res.data.swzc | |||||
this.data[1][2].value = res.data.gdzc | |||||
this.data[1][3].value = res.data.wxzc | |||||
this.data = data | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
} | } | ||||
}; | }; |
@@ -1,9 +1,28 @@ | |||||
import BlockValue from '@/components/value/index.vue'; | import BlockValue from '@/components/value/index.vue'; | ||||
import data from './data.js'; | import data from './data.js'; | ||||
import { debtAnalysis } from '../../../api/index.js' | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
BlockValue | BlockValue | ||||
}, | }, | ||||
computed: { | |||||
...mapGetters(['year', 'deptId']) | |||||
}, | |||||
watch: { | |||||
year: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
}, | |||||
deptId: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
} | |||||
}, | |||||
data () { | data () { | ||||
return { | return { | ||||
data | data | ||||
@@ -14,5 +33,21 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
debtAnalysis(this.deptId, this.year, this.type).then(res => { | |||||
this.data[0][0].value = res.data.dqjk | |||||
this.data[0][1].value = res.data.yfk | |||||
this.data[0][2].value = res.data.yfgz | |||||
this.data[1][0].value = res.data.yflwf | |||||
this.data[1][1].value = res.data.cqjkjyfk | |||||
this.data[1][2].value = res.data.ysyyzj | |||||
this.data[1][3].value = res.data.zxyfk | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
} | } | ||||
}; | }; |
@@ -1,10 +1,15 @@ | |||||
<Pannel title="经营性资产分析" height="340" flexIble> | |||||
<Pannel title="经营性资产分析" height="340" flexIble | |||||
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"> | ||||
<Bar id="bar2"></Bar> | |||||
<Bar v-if="isLoad" :data="data" id="bar2"></Bar> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</Pannel> | </Pannel> |
@@ -1,15 +1,35 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import PannelTabs from '@/components/pannel-tabs/index.vue'; | import PannelTabs from '@/components/pannel-tabs/index.vue'; | ||||
import Bar from '@/components/charts/bar/index.vue'; | import Bar from '@/components/charts/bar/index.vue'; | ||||
import { analysisOfOperatingAssets } from '../../../../api/index.js'; | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
Bar, | Bar, | ||||
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 { | ||||
data: [], | |||||
isLoad: false, | |||||
pannelTabData: [ | pannelTabData: [ | ||||
{ | { | ||||
id: '1', | id: '1', | ||||
@@ -23,14 +43,25 @@ export default { | |||||
tabIndex: '1' | tabIndex: '1' | ||||
}; | }; | ||||
}, | }, | ||||
created () { | |||||
}, | |||||
mounted () { | |||||
}, | |||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year && this.deptId) { | |||||
this.isLoad = false; | |||||
analysisOfOperatingAssets(this.deptId, this.year).then(res => { | |||||
console.log(res, 999); | |||||
if (this.tabIndex == 1) { | |||||
this.data = res.data.jyx | |||||
} else if (this.tabIndex == 2) { | |||||
this.data = res.data.fjyx | |||||
} | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
}, | |||||
tabChange (info) { | tabChange (info) { | ||||
//console.log(info); | //console.log(info); | ||||
this.tabIndex = info.id | this.tabIndex = info.id | ||||
this.getData() | |||||
} | } | ||||
} | } | ||||
}; | }; |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="债务趋势分析" height="305"> | |||||
<Lines :color="['rgba(15, 252, 252, 1)', 'rgba(15, 252, 252, 1)', 'rgba(15, 252, 252, 1)']" :areaStyle="['rgba(15, 252, 252, 1)', 'rgba(15, 252, 252, 0.2)', 'rgba(15, 252, 252, 0)']"></Lines> | |||||
<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)" | |||||
> | |||||
<Lines v-if="isLoad" :data="data" :color="['rgba(15, 252, 252, 1)', 'rgba(15, 252, 252, 1)', 'rgba(15, 252, 252, 1)']" :areaStyle="['rgba(15, 252, 252, 1)', 'rgba(15, 252, 252, 0.2)', 'rgba(15, 252, 252, 0)']"></Lines> | |||||
</Pannel> | </Pannel> |
@@ -1,12 +1,44 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import Lines from '@/components/charts/line/index.vue'; | import Lines from '@/components/charts/line/index.vue'; | ||||
import { debtTrendAnalysis } from '../../../../api/index.js'; | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
Lines, | Lines, | ||||
Pannel | Pannel | ||||
}, | }, | ||||
computed: { | |||||
...mapGetters(['year', 'deptId']) | |||||
}, | |||||
watch: { | |||||
year: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
}, | |||||
deptId: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
} | |||||
}, | |||||
methods: { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
debtTrendAnalysis(this.deptId, this.year).then(res => { | |||||
this.data = res.data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
}, | |||||
data () { | data () { | ||||
return { | return { | ||||
data: [], | |||||
isLoad: false | |||||
}; | }; | ||||
} | } | ||||
}; | }; |
@@ -38,7 +38,6 @@ export default { | |||||
if (this.year, this.deptId) { | if (this.year, this.deptId) { | ||||
this.isLoad = false; | this.isLoad = false; | ||||
longTermIdleResourceWarning(this.deptId, this.year).then(res => { | longTermIdleResourceWarning(this.deptId, this.year).then(res => { | ||||
console.log('longTermIdleResourceWarning', res); | |||||
let data = res.data.map(item => { | let data = res.data.map(item => { | ||||
return [item.name, item.resourceSort, item.resourceType, item.deptName] | return [item.name, item.resourceSort, item.resourceType, item.deptName] | ||||
}) | }) | ||||
@@ -1,10 +1,15 @@ | |||||
<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"> | ||||
<Bar :color="['rgba(134, 91, 252, 1)', 'rgba(49, 129, 246, 1)']"></Bar> | |||||
<Bar v-if="isLoad" :data="data" :color="['rgba(134, 91, 252, 1)', 'rgba(49, 129, 246, 1)']"></Bar> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</Pannel> | </Pannel> |
@@ -1,15 +1,34 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import PannelTabs from '@/components/pannel-tabs/index.vue'; | import PannelTabs from '@/components/pannel-tabs/index.vue'; | ||||
import Bar from '@/components/charts/bar/index.vue'; | import Bar from '@/components/charts/bar/index.vue'; | ||||
import { analysisOfFixedAssetTypes } from '../../../../api/index.js'; | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
Bar, | Bar, | ||||
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 { | ||||
isLoad: false, | |||||
pannelTabData: [ | pannelTabData: [ | ||||
{ | { | ||||
id: '1', | id: '1', | ||||
@@ -20,16 +39,27 @@ export default { | |||||
name: '非经营性' | name: '非经营性' | ||||
} | } | ||||
], | ], | ||||
data: [], | |||||
tabIndex: '1' | tabIndex: '1' | ||||
}; | }; | ||||
}, | }, | ||||
created () { | |||||
}, | |||||
mounted () { | |||||
}, | |||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year && this.deptId) { | |||||
this.isLoad = false; | |||||
analysisOfFixedAssetTypes(this.deptId, this.year).then(res => { | |||||
if (this.tabIndex == 1) { | |||||
this.data = res.data.jyx | |||||
} else if (this.tabIndex == 2) { | |||||
this.data = res.data.fjyx | |||||
} | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
}, | |||||
tabChange (info) { | tabChange (info) { | ||||
this.tabIndex = info.id | this.tabIndex = info.id | ||||
this.getData() | |||||
} | } | ||||
} | } | ||||
}; | }; |
@@ -38,7 +38,6 @@ export default { | |||||
if (this.year, this.deptId) { | if (this.year, this.deptId) { | ||||
this.isLoad = false; | this.isLoad = false; | ||||
warningForNonStandardRentalOfResources(this.deptId, this.year).then(res => { | warningForNonStandardRentalOfResources(this.deptId, this.year).then(res => { | ||||
console.log('warningForNonStandardRentalOfResources', res); | |||||
let data = res.data.map(item => { | let data = res.data.map(item => { | ||||
return [item.name, item.resourceSort, item.resourceType, item.deptName] | return [item.name, item.resourceSort, item.resourceType, item.deptName] | ||||
}) | }) | ||||
@@ -3,24 +3,24 @@ export default [ | |||||
{ | { | ||||
name: '固定资产(个)', | name: '固定资产(个)', | ||||
icon: require('./1.png'), | icon: require('./1.png'), | ||||
value: '3420' | |||||
value: '0' | |||||
}, | }, | ||||
{ | { | ||||
name: '总原值(万元)', | name: '总原值(万元)', | ||||
icon: require('./2.png'), | icon: require('./2.png'), | ||||
value: '257' | |||||
value: '0' | |||||
} | } | ||||
], | ], | ||||
[ | [ | ||||
{ | { | ||||
name: '经营性固定资产(个)', | name: '经营性固定资产(个)', | ||||
icon: require('./3.png'), | icon: require('./3.png'), | ||||
value: '160' | |||||
value: '0' | |||||
}, | }, | ||||
{ | { | ||||
name: '总原值(万元)', | name: '总原值(万元)', | ||||
icon: require('./2.png'), | icon: require('./2.png'), | ||||
value: '101' | |||||
value: '0' | |||||
} | } | ||||
] | ] | ||||
] | ] |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="固定资产概况分析" height="232"> | |||||
<Pannel title="固定资产概况分析" height="232" | |||||
v-loading="!isLoad" | |||||
element-loading-text="拼命加载中" | |||||
element-loading-spinner="el-icon-loading" | |||||
element-loading-background="rgba(0, 0, 0, 0.1)" | |||||
> | |||||
<table> | <table> | ||||
<tr v-for="line in data"> | <tr v-for="line in data"> | ||||
<td v-for="item in line"> | <td v-for="item in line"> | ||||
@@ -1,14 +1,52 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import Block from '@/components/block/index.vue'; | import Block from '@/components/block/index.vue'; | ||||
import data from './data.js'; | import data from './data.js'; | ||||
import { analysisOfFixedAssetOverview } from '../../../../api/index.js'; | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
Block, | Block, | ||||
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, | |||||
data | data | ||||
}; | }; | ||||
} | |||||
}, | |||||
created () { | |||||
this.getData() | |||||
}, | |||||
methods: { | |||||
getData () { | |||||
if (this.year && this.deptId) { | |||||
this.isLoad = false; | |||||
analysisOfFixedAssetOverview(this.deptId, this.year).then(res => { | |||||
this.data[0][0].value = res.data.num | |||||
this.data[0][1].value = res.data.zyz | |||||
this.data[1][0].value = res.data.numJyx | |||||
this.data[1][1].value = res.data.jyxzyz | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
}, | |||||
}; | }; |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="债务概况分析" height="305"> | |||||
<Pies></Pies> | |||||
<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)" | |||||
> | |||||
<Pies v-if="isLoad" :data="data"></Pies> | |||||
</Pannel> | </Pannel> |
@@ -1,12 +1,61 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import Pies from '@/components/charts/pies/index.vue'; | import Pies from '@/components/charts/pies/index.vue'; | ||||
import { debtOverviewAnalysis } from '../../../../api/index.js'; | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
Pies, | Pies, | ||||
Pannel | Pannel | ||||
}, | }, | ||||
computed: { | |||||
...mapGetters(['year', 'deptId']) | |||||
}, | |||||
watch: { | |||||
year: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
}, | |||||
deptId: { | |||||
handler () { | |||||
this.getData(); | |||||
}, | |||||
immediate: true, // 立即执行 | |||||
} | |||||
}, | |||||
methods: { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
debtOverviewAnalysis(this.deptId, this.year).then(res => { | |||||
let data = [ | |||||
{ | |||||
name: '债务规模', | |||||
value: res.data.zwgm, | |||||
unit: '万' | |||||
}, | |||||
{ | |||||
name: '负债规模', | |||||
value: res.data.fzgm, | |||||
unit: '万' | |||||
}, | |||||
{ | |||||
name: '集体资产', | |||||
value: res.data.jtzc, | |||||
unit: '万' | |||||
} | |||||
] | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
}, | |||||
data () { | data () { | ||||
return { | return { | ||||
isLoad: false, | |||||
data: [] | |||||
}; | }; | ||||
} | } | ||||
}; | }; |
@@ -36,7 +36,6 @@ export default { | |||||
this.isLoad = false // 是否加载完成 | this.isLoad = false // 是否加载完成 | ||||
if (this.year, this.deptId) { | if (this.year, this.deptId) { | ||||
debtOverview(this.deptId, this.year).then(res => { | debtOverview(this.deptId, this.year).then(res => { | ||||
console.log('debtOverview', res); | |||||
this.data.topData[0][0].value = res.data.zbdz | this.data.topData[0][0].value = res.data.zbdz | ||||
this.data.topData[0][1].value = res.data.gfzl | this.data.topData[0][1].value = res.data.gfzl | ||||
this.data.topData[1][0].value = res.data.zfzl | this.data.topData[1][0].value = res.data.zfzl | ||||
@@ -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 { mapGetters } from 'vuex'; | |||||
import { rankingAnalysisOfNonStandardContractManagement } from '../../../../api/index.js'; | |||||
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, | |||||
data: [], | |||||
headers: ['部门名称', '合同数量', '排名'] | headers: ['部门名称', '合同数量', '排名'] | ||||
}; | }; | ||||
}, | }, | ||||
@@ -16,5 +36,17 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
rankingAnalysisOfNonStandardContractManagement(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,4 +1,9 @@ | |||||
<Pannel title="债务超标分析" height="305"> | |||||
<ScrollTable :headers="headers" :data="data"></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" :headers="headers" :data="data"></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 { analysisOfExcessiveDebt } 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: ['经济组织名称', '债务金额', '债务率'], | ||||
data: [['经济组织名称', '债务金额', '21%']] | data: [['经济组织名称', '债务金额', '21%']] | ||||
}; | }; | ||||
@@ -16,5 +36,17 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
analysisOfExcessiveDebt(this.deptId, this.year, this.type).then(res => { | |||||
let data = res.rows.map(item => { | |||||
return [item.name, item.zwje, item.zwl] | |||||
}) | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
}, | |||||
} | } | ||||
}; | }; |
@@ -1,10 +1,15 @@ | |||||
<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,35 @@ | |||||
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 { mapGetters } from 'vuex'; | |||||
import { analysisOfAmountRanking } from '../../../../api/index.js'; | |||||
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 { | ||||
tabIndex: '1', | |||||
isLoad: false, | |||||
headers: ['部门名称', '数量', '排名'], | headers: ['部门名称', '数量', '排名'], | ||||
pannelTabData: [ | pannelTabData: [ | ||||
{ | { | ||||
@@ -20,15 +41,32 @@ export default { | |||||
name: '金额' | name: '金额' | ||||
} | } | ||||
], | ], | ||||
data: [] | |||||
}; | }; | ||||
}, | }, | ||||
created () { | |||||
}, | |||||
mounted () { | |||||
}, | |||||
methods: { | methods: { | ||||
tabChange () { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
analysisOfAmountRanking(this.deptId, this.year).then(res => { | |||||
if (this.tabIndex == 1) { | |||||
let data = res.data.sl.map(item => { | |||||
return [item.name, item.value, item.index] | |||||
}) | |||||
this.data = data | |||||
} else if (this.tabIndex == 2) { | |||||
let data = res.data.je.map(item => { | |||||
return [item.name, item.value, item.index] | |||||
}) | |||||
this.data = data | |||||
} | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
}, | |||||
tabChange (info) { | |||||
this.tabIndex = info.id; | |||||
this.getData(); | |||||
} | } | ||||
} | } | ||||
}; | }; |
@@ -1,12 +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="pannelData"></PannelTabs> | <PannelTabs @change="tabChange" :data="pannelData"></PannelTabs> | ||||
</div> | </div> | ||||
<div class="buttom"> | <div class="buttom"> | ||||
<ScrollTable :headers="headers" :data="data" :bodyHeight="160"></ScrollTable> | |||||
<ScrollTable v-if="isLoad" :headers="headers" :data="data" :bodyHeight="160"></ScrollTable> | |||||
</div> | </div> | ||||
</div> | </div> | ||||
</Pannel> | </Pannel> |
@@ -1,14 +1,34 @@ | |||||
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 { debtChangeRanking } 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 { | ||||
type: '1', | |||||
pannelData: [ | pannelData: [ | ||||
{ | { | ||||
id: '1', | id: '1', | ||||
@@ -19,6 +39,7 @@ export default { | |||||
name: '增加' | name: '增加' | ||||
}, | }, | ||||
], | ], | ||||
isLoad: false, | |||||
headers: ['部门名称', '债务金额', '排名'], | headers: ['部门名称', '债务金额', '排名'], | ||||
data: [['部门名称', '债务金额', '1']] | data: [['部门名称', '债务金额', '1']] | ||||
}; | }; | ||||
@@ -28,8 +49,22 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | methods: { | ||||
tabChange () { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
debtChangeRanking(this.deptId, this.year, this.type).then(res => { | |||||
let data = res.rows.map(item => { | |||||
return [item.name, item.value, item.index] | |||||
}) | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
}, | |||||
tabChange (info) { | |||||
// console.log('indo', info); | |||||
this.type = info.id; | |||||
this.getData() | |||||
} | } | ||||
} | } | ||||
}; | }; |
@@ -40,7 +40,6 @@ export default { | |||||
if (this.year, this.deptId) { | if (this.year, this.deptId) { | ||||
this.isLoad = false; | this.isLoad = false; | ||||
contractExpirationWarning(this.deptId, this.year).then(res => { | contractExpirationWarning(this.deptId, this.year).then(res => { | ||||
console.log(2222, res); | |||||
let data = res.data.map(item => { | let data = res.data.map(item => { | ||||
return [item.code, item.name, item.endTime, item.deptName] | return [item.code, item.name, item.endTime, item.deptName] | ||||
}) | }) | ||||
@@ -1,24 +1,24 @@ | |||||
export default [ | export default [ | ||||
[ | [ | ||||
{ | { | ||||
name: '总资产(万元)', | |||||
name: '合同数量(个)', | |||||
icon: require('./1.png'), | icon: require('./1.png'), | ||||
value: '8000' | value: '8000' | ||||
}, | }, | ||||
{ | { | ||||
name: '总负债(万元)', | |||||
name: '总合同额(万元)', | |||||
icon: require('./2.png'), | icon: require('./2.png'), | ||||
value: '257' | value: '257' | ||||
} | } | ||||
], | ], | ||||
[ | [ | ||||
{ | { | ||||
name: '总收入(万元)', | |||||
name: '已结款(万元)', | |||||
icon: require('./3.png'), | icon: require('./3.png'), | ||||
value: '1460' | value: '1460' | ||||
}, | }, | ||||
{ | { | ||||
name: '总支出(万元)', | |||||
name: '待结款(万元)', | |||||
icon: require('./2.png'), | icon: require('./2.png'), | ||||
value: '1011' | value: '1011' | ||||
} | } | ||||
@@ -1,4 +1,9 @@ | |||||
<Pannel title="合同概况分析" height="232"> | |||||
<Pannel title="合同概况分析" height="232" | |||||
v-loading="!isLoad" | |||||
element-loading-text="拼命加载中" | |||||
element-loading-spinner="el-icon-loading" | |||||
element-loading-background="rgba(0, 0, 0, 0.1)" | |||||
> | |||||
<table> | <table> | ||||
<tr v-for="line in data"> | <tr v-for="line in data"> | ||||
<td v-for="item in line"> | <td v-for="item in line"> | ||||
@@ -1,14 +1,50 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import Block from '@/components/block/index.vue'; | import Block from '@/components/block/index.vue'; | ||||
import data from './data.js'; | import data from './data.js'; | ||||
import { analysisOfContractTypes } from '../../../../api/index.js'; | |||||
import { mapGetters } from 'vuex'; | |||||
export default { | export default { | ||||
components: { | components: { | ||||
Block, | Block, | ||||
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, | |||||
data | data | ||||
}; | }; | ||||
}, | |||||
methods: { | |||||
getData () { | |||||
this.isLoad = false // 是否加载完成 | |||||
if (this.year, this.deptId) { | |||||
analysisOfContractTypes(this.deptId, this.year).then(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 | |||||
this.data[1][1].value = res.data.djk | |||||
this.isLoad = true // 是否加载完成 | |||||
}) | |||||
} | |||||
} | |||||
} | } | ||||
}; | }; |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="债务金额排名" height="305"> | |||||
<ScrollTable :headers="headers" :data="data"></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" :headers="headers" :data="data"></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 { rankingOfDebtAmount } 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: ['部门名称', '债务金额', '排名'], | ||||
data: [['部门名称', '债务金额', '1']] | data: [['部门名称', '债务金额', '1']] | ||||
}; | }; | ||||
@@ -16,5 +36,17 @@ export default { | |||||
mounted () { | mounted () { | ||||
}, | }, | ||||
methods: { | methods: { | ||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
rankingOfDebtAmount(this.deptId, this.year).then(res => { | |||||
let data = res.rows.map(item => { | |||||
return [item.name, item.value, item.index] | |||||
}) | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
} | } | ||||
}; | }; |
@@ -9,6 +9,7 @@ import { attachmentList } from "@/api/common/uploadAttachment.js"; | |||||
let gis = null; | let gis = null; | ||||
import { treeselectByDeptId } from "@/api/system/dept"; | import { treeselectByDeptId } from "@/api/system/dept"; | ||||
import Legend from '@/components/legend/index.vue'; | import Legend from '@/components/legend/index.vue'; | ||||
import { mapGetters } from 'vuex'; | |||||
import { | import { | ||||
fromLonLat | fromLonLat | ||||
} from 'ol/proj' | } from 'ol/proj' | ||||
@@ -28,7 +29,6 @@ export default { | |||||
deptLayer: "", // 坐标点图层 | deptLayer: "", // 坐标点图层 | ||||
countyBorderLayerName: "", // 区县边界图层名称 | countyBorderLayerName: "", // 区县边界图层名称 | ||||
townBorderLayerName: "", // 乡镇边界图层名称 | townBorderLayerName: "", // 乡镇边界图层名称 | ||||
//villageBorderLayerName: "", // 村边界图层名称 | |||||
groupBorderLayerName: "", // 组边界图层名称 | groupBorderLayerName: "", // 组边界图层名称 | ||||
LegendData: [ | LegendData: [ | ||||
{ | { | ||||
@@ -223,6 +223,7 @@ export default { | |||||
}; | }; | ||||
}, | }, | ||||
computed: { | computed: { | ||||
...mapGetters(['year', 'deptId']) | |||||
}, | }, | ||||
created () { | created () { | ||||
// 获取geoserver的地址 | // 获取geoserver的地址 | ||||
@@ -544,43 +545,39 @@ export default { | |||||
}, | }, | ||||
openPermanentDialog (data) { | openPermanentDialog (data) { | ||||
data.fileList = []; | |||||
let parmasData = { | |||||
tableId: data.id, | |||||
tableName: 't_asset_permanent', | |||||
bizPath: 'asset', | |||||
}; | |||||
attachmentList(parmasData).then((res) => { | |||||
let useType = data.useType | |||||
attachmentList(this.deptId, this.year, useType).then((res) => { | |||||
console.log(res, 777); | |||||
if (res.code == 200) { | if (res.code == 200) { | ||||
let UattachmentList = res.rows; | |||||
for (let i = 0; i < UattachmentList.length; i++) { | |||||
let fileName = UattachmentList[i].fileName; | |||||
let subIndex = fileName.lastIndexOf("."); | |||||
let ext = fileName.substring(subIndex + 1, fileName.length); | |||||
let urls = ""; | |||||
let type = ""; | |||||
if (ext == "xlsx" || ext == "xls") { | |||||
urls = require("@/assets/images/icon_excel.jpg"); | |||||
type = 'excel'; | |||||
} else if (ext == "doc" || ext == "docx") { | |||||
urls = require("@/assets/images/icon_word.jpg"); | |||||
type = 'word'; | |||||
} else if (ext == "pdf") { | |||||
urls = require("@/assets/images/icon_pdf.jpg"); | |||||
type = 'pdf'; | |||||
} else if (ext == "zip") { | |||||
urls = require("@/assets/images/icon_zip.jpg"); | |||||
type = 'zip'; | |||||
} else { | |||||
urls = '/api' + UattachmentList[i].fileUrl; | |||||
type = 'image'; | |||||
} | |||||
data.fileList.push({ | |||||
url: urls, | |||||
urlApi: '/api' + UattachmentList[i].fileUrl, | |||||
type: type | |||||
}) | |||||
} | |||||
// let UattachmentList = res.rows; | |||||
// for (let i = 0; i < UattachmentList.length; i++) { | |||||
// let fileName = UattachmentList[i].fileName; | |||||
// let subIndex = fileName.lastIndexOf("."); | |||||
// let ext = fileName.substring(subIndex + 1, fileName.length); | |||||
// let urls = ""; | |||||
// let type = ""; | |||||
// if (ext == "xlsx" || ext == "xls") { | |||||
// urls = require("@/assets/images/icon_excel.jpg"); | |||||
// type = 'excel'; | |||||
// } else if (ext == "doc" || ext == "docx") { | |||||
// urls = require("@/assets/images/icon_word.jpg"); | |||||
// type = 'word'; | |||||
// } else if (ext == "pdf") { | |||||
// urls = require("@/assets/images/icon_pdf.jpg"); | |||||
// type = 'pdf'; | |||||
// } else if (ext == "zip") { | |||||
// urls = require("@/assets/images/icon_zip.jpg"); | |||||
// type = 'zip'; | |||||
// } else { | |||||
// urls = '/api' + UattachmentList[i].fileUrl; | |||||
// type = 'image'; | |||||
// } | |||||
// data.fileList.push({ | |||||
// url: urls, | |||||
// urlApi: '/api' + UattachmentList[i].fileUrl, | |||||
// type: type | |||||
// }) | |||||
// } | |||||
this.showPermanentDetail = true; | this.showPermanentDetail = true; | ||||
this.permanentDetail = data; | this.permanentDetail = data; | ||||
} | } | ||||
@@ -588,10 +585,11 @@ export default { | |||||
}, | }, | ||||
// 加载地图 | // 加载地图 | ||||
initMap (deptId) { | initMap (deptId) { | ||||
this.$store.commit('SET_DEPTID', deptId); | |||||
this.$store.commit('SET_YEAR', new Date().getFullYear()); | |||||
getDept(deptId).then(response => { | getDept(deptId).then(response => { | ||||
const dept = response.data; | |||||
let mapCenterLocation; | let mapCenterLocation; | ||||
const dept = response.data; | |||||
// 定义地图中心坐标 | // 定义地图中心坐标 | ||||
if (dept.lng && dept.lat) { | if (dept.lng && dept.lat) { | ||||
mapCenterLocation = [dept.lng, dept.lat]; | mapCenterLocation = [dept.lng, dept.lat]; | ||||
@@ -599,6 +597,7 @@ export default { | |||||
mapCenterLocation = [116.391458, 39.902377]; | mapCenterLocation = [116.391458, 39.902377]; | ||||
} | } | ||||
gis = new GisUtils('map2') | gis = new GisUtils('map2') | ||||
console.log('=============='); | |||||
gis.addTianDiTuLayer() | gis.addTianDiTuLayer() | ||||
gis.addAnnotationLayer() | gis.addAnnotationLayer() | ||||
// 添加村边界 | // 添加村边界 | ||||
@@ -0,0 +1,27 @@ | |||||
import request from '@/utils/request' | |||||
// 河南资源一张图-预警分析-左上-资源处置预警(分页) | |||||
export function resourceFisposalWarning (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/resourceWarning/zyczyj', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} | |||||
// 河南资源一张图-预警分析-左下-资源长期闲置预警 | |||||
export function longTermIdleResourceWarning (deptId, year) { | |||||
let query = { | |||||
deptId, | |||||
year | |||||
} | |||||
return request({ | |||||
url: 'api/home/xixia/resourceWarning/zccqxzyj', | |||||
method: 'get', | |||||
params: query | |||||
}) | |||||
} |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="资金往来不规范预警分析" height="305" flexIble> | |||||
<ScrollTable :headers="headers" :data="data"></ScrollTable> | |||||
<Pannel title="资金往来不规范预警分析" height="305" flexIble | |||||
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" :headers="headers" :data="data"></ScrollTable> | |||||
</Pannel> | </Pannel> |
@@ -1,16 +1,51 @@ | |||||
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 { mapGetters } from 'vuex'; | |||||
import { longTermIdleResourceWarning } from '../../../../api/index.js'; | |||||
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: ['资源名称', '类别', '面积(亩)', '部门'], | ||||
data: [ | data: [ | ||||
['资源名称', '类别', '面积(亩)', '部门'] | ['资源名称', '类别', '面积(亩)', '部门'] | ||||
] | ] | ||||
}; | }; | ||||
}, | |||||
methods: { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
longTermIdleResourceWarning(this.deptId, this.year).then(res => { | |||||
let data = res.data.map(item => { | |||||
return [item.name, item.resourceSort, item.totalArea, item.deptName] | |||||
}) | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
}, | |||||
} | } | ||||
}; | }; |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="资源不规范出租预警" height="305" flexIble> | |||||
<ScrollTable :headers="headers" :data="data"></ScrollTable> | |||||
<Pannel title="资源不规范出租预警" height="305" flexIble | |||||
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" :headers="headers" :data="data"></ScrollTable> | |||||
</Pannel> | </Pannel> |
@@ -1,16 +1,50 @@ | |||||
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 { longTermIdleResourceWarning } 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: ['资源名称', '类别', '面积(亩)', '部门'], | ||||
data: [ | data: [ | ||||
['资源名称', '类别', '面积(亩)', '部门'] | ['资源名称', '类别', '面积(亩)', '部门'] | ||||
] | ] | ||||
}; | }; | ||||
}, | |||||
methods: { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
longTermIdleResourceWarning(this.deptId, this.year).then(res => { | |||||
let data = res.data.map(item => { | |||||
return [item.name, item.resourceSort, item.totalArea, item.deptName] | |||||
}) | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
} | } | ||||
}; | }; |
@@ -1,5 +1,6 @@ | |||||
import Pannel from '@/components/pannel/index.vue'; | import Pannel from '@/components/pannel/index.vue'; | ||||
import HorizontalBar from '@/components/charts/horizontal-bar/index.vue'; | import HorizontalBar from '@/components/charts/horizontal-bar/index.vue'; | ||||
export default { | export default { | ||||
components: { | components: { | ||||
HorizontalBar, | HorizontalBar, | ||||
@@ -25,5 +26,7 @@ export default { | |||||
} | } | ||||
] | ] | ||||
}; | }; | ||||
}, | |||||
methods: { | |||||
} | } | ||||
}; | }; |
@@ -1,4 +1,9 @@ | |||||
<Pannel title="资源处置预警" height="305" flexIble> | |||||
<ScrollTable :headers="headers" :data="data"></ScrollTable> | |||||
<Pannel title="资源处置预警" height="305" flexIble | |||||
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" :headers="headers" :data="data"></ScrollTable> | |||||
</Pannel> | </Pannel> |
@@ -1,16 +1,50 @@ | |||||
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 { resourceFisposalWarning } 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: ['资源名称', '类别', '面积(亩)', '处置类型', '部门'], | ||||
data: [ | data: [ | ||||
['资源名称', '类别', '面积(亩)', '处置类型', '部门'] | ['资源名称', '类别', '面积(亩)', '处置类型', '部门'] | ||||
] | ] | ||||
}; | }; | ||||
}, | |||||
methods: { | |||||
getData () { | |||||
if (this.year, this.deptId) { | |||||
this.isLoad = false; | |||||
resourceFisposalWarning(this.deptId, this.year).then(res => { | |||||
let data = res.rows.map(item => { | |||||
return [item.assetName, item.assetType, 'null', item.assetStatus, item.deptId] | |||||
}) | |||||
this.data = data; | |||||
this.isLoad = true; | |||||
}) | |||||
} | |||||
} | |||||
} | } | ||||
}; | }; |
@@ -545,7 +545,6 @@ export default { | |||||
}, | }, | ||||
openResourceDialog (data) { | openResourceDialog (data) { | ||||
data.fileList = []; | data.fileList = []; | ||||
console.log(data) | |||||
let parmasData = { | let parmasData = { | ||||
tableId: data.id, | tableId: data.id, | ||||
tableName: 't_asset_three', | tableName: 't_asset_three', | ||||
@@ -617,7 +616,6 @@ export default { | |||||
resourceList.forEach(item => { | resourceList.forEach(item => { | ||||
if (item.theGeom != null && item.theGeom !== '') { | if (item.theGeom != null && item.theGeom !== '') { | ||||
const { threeAssetType } = item | const { threeAssetType } = item | ||||
// console.log(222, threeAssetType, item); | |||||
let color = this.LegendData[threeAssetType - 1 + ''] | let color = this.LegendData[threeAssetType - 1 + ''] | ||||
let fs = gis.getFeature3(item, color.iconStyle.background, color.iconStyle.borderColor) | let fs = gis.getFeature3(item, color.iconStyle.background, color.iconStyle.borderColor) | ||||
features.push(fs); | features.push(fs); | ||||