Browse Source

资金往来不规范预警分析

dev
yuzongping 17 hours ago
parent
commit
25b4809f1d
48 changed files with 946 additions and 129 deletions
  1. +8
    -9
      src/api/common/uploadAttachment.js
  2. +4
    -6
      src/components/charts/bar/index.js
  3. +4
    -6
      src/components/charts/pie/index.js
  4. +0
    -2
      src/components/gis-map/index.js
  5. +2
    -2
      src/store/getters.js
  6. +6
    -1
      src/views/capital/comps/right/bottom/1/index.html
  7. +0
    -1
      src/views/capital/comps/right/bottom/2/index.js
  8. +172
    -0
      src/views/property/api/index.js
  9. +35
    -2
      src/views/property/comps/buttom/1/index.js
  10. +35
    -0
      src/views/property/comps/buttom/2/index.js
  11. +7
    -2
      src/views/property/comps/left/bottom/1/index.html
  12. +36
    -5
      src/views/property/comps/left/bottom/1/index.js
  13. +7
    -2
      src/views/property/comps/left/bottom/2/index.html
  14. +32
    -0
      src/views/property/comps/left/bottom/2/index.js
  15. +0
    -1
      src/views/property/comps/left/bottom/3/index.js
  16. +7
    -2
      src/views/property/comps/left/middle/1/index.html
  17. +35
    -5
      src/views/property/comps/left/middle/1/index.js
  18. +0
    -1
      src/views/property/comps/left/middle/3/index.js
  19. +4
    -4
      src/views/property/comps/left/top/1/data.js
  20. +6
    -1
      src/views/property/comps/left/top/1/index.html
  21. +39
    -1
      src/views/property/comps/left/top/1/index.js
  22. +7
    -2
      src/views/property/comps/left/top/2/index.html
  23. +49
    -0
      src/views/property/comps/left/top/2/index.js
  24. +0
    -1
      src/views/property/comps/left/top/4/index.js
  25. +7
    -2
      src/views/property/comps/right/bottom/1/index.html
  26. +33
    -1
      src/views/property/comps/right/bottom/1/index.js
  27. +7
    -2
      src/views/property/comps/right/bottom/2/index.html
  28. +32
    -0
      src/views/property/comps/right/bottom/2/index.js
  29. +7
    -2
      src/views/property/comps/right/middle/1/index.html
  30. +44
    -6
      src/views/property/comps/right/middle/1/index.js
  31. +7
    -3
      src/views/property/comps/right/middle/2/index.html
  32. +37
    -2
      src/views/property/comps/right/middle/2/index.js
  33. +0
    -1
      src/views/property/comps/right/middle/3/index.js
  34. +4
    -4
      src/views/property/comps/right/top/1/data.js
  35. +6
    -1
      src/views/property/comps/right/top/1/index.html
  36. +36
    -0
      src/views/property/comps/right/top/1/index.js
  37. +7
    -2
      src/views/property/comps/right/top/2/index.html
  38. +32
    -0
      src/views/property/comps/right/top/2/index.js
  39. +38
    -39
      src/views/property/main-gis/index.js
  40. +27
    -0
      src/views/resources/api/index.js
  41. +7
    -2
      src/views/resources/comps/left/bottom/2/index.html
  42. +35
    -0
      src/views/resources/comps/left/bottom/2/index.js
  43. +7
    -2
      src/views/resources/comps/left/middle/2/index.html
  44. +34
    -0
      src/views/resources/comps/left/middle/2/index.js
  45. +3
    -0
      src/views/resources/comps/left/top/1/index.js
  46. +7
    -2
      src/views/resources/comps/left/top/2/index.html
  47. +34
    -0
      src/views/resources/comps/left/top/2/index.js
  48. +0
    -2
      src/views/sanqing/main-gis/index.js

+ 8
- 9
src/api/common/uploadAttachment.js View File

@@ -2,11 +2,16 @@ import request from '@/utils/request'
import { usingExternalUploadService } from "@/api/system/config";

//查询已上传附件
export const attachmentList = (data) => {
export const attachmentList = (deptId, year, useType) => {
let query = {
deptId,
year,
useType
}
return request({
url: '/api/system/attachment/query',
url: 'api/home/xixia/asset/zcList',
method: 'get',
params: data
params: query
})
}

@@ -51,7 +56,6 @@ export const extUploader = function () {

// 内部方式上传
this._Upload_inner = (url, data) => {
//console.log('使用内部上传: ' + process.env.VUE_APP_BASE_API + url);
return request({
url: url,
method: 'post',
@@ -66,7 +70,6 @@ export const extUploader = function () {
data.append('token', this._token);
else
data.token = this._token;
//console.log('使用外部上传: ' + this._remoteHost + url);
return request({
url: url,
method: 'post',
@@ -86,13 +89,11 @@ export const extUploader = function () {
this._token = resp.data;
this._remoteHost = resp.fileServerAddress;
this._usingExternal = true;
//console.log('使用外部上传: ' + this._remoteHost);
}
else {
this._token = null;
this._remoteHost = null;
this._usingExternal = false;
//console.log('使用内部上传');
}
this._supportExternal = true;
}).catch(() => {
@@ -100,7 +101,6 @@ export const extUploader = function () {
this._remoteHost = null;
this._usingExternal = false;
this._supportExternal = false;
//console.log('未配置文件外部服务, 将使用内部上传');
});
};

@@ -151,7 +151,6 @@ export const extUploader = function () {
throw '请先调用Init进行初始化';
if (this._UsingExternal()) {
return this._Upload_external(extUrl, data).catch(() => {
//console.log('外部上传失败! 尝试转为内部上传');
this.ForceDisableExternal();
return this._Upload_inner(innerUrl, data);
});


+ 4
- 6
src/components/charts/bar/index.js View File

@@ -46,15 +46,14 @@ export default {
watch: {
data: {
handler: function (val) {
this.$nextTick(function(){
setTimeout(()=>{
this.$nextTick(function () {
setTimeout(() => {
this.initChart();
},2000)
console.log(val)
}, 2000)
});
},
immediate: true,
deep:true
deep: true
}
},
create () {
@@ -91,7 +90,6 @@ export default {
bgData.push(100)
});

//console.log(data);
const option = {
color: ["#3398DB"],
tooltip: {


+ 4
- 6
src/components/charts/pie/index.js View File

@@ -54,15 +54,14 @@ export default {
watch: {
data: {
handler: function (val) {
this.$nextTick(function(){
setTimeout(()=>{
this.$nextTick(function () {
setTimeout(() => {
this.initChart();
},2000)
console.log(val)
}, 2000)
});
},
immediate: true,
deep:true
deep: true
}
},
mounted () {
@@ -89,7 +88,6 @@ export default {
...this.data
];
var that = this;
console.log(echartData)
var rich = {
yellow: {
color: "rgba(185, 211, 235, 1)",


+ 0
- 2
src/components/gis-map/index.js View File

@@ -25,7 +25,6 @@ export default {
watch: {
'queryParams.deptId': {
handler: function () {
console.log(this.queryParams.deptId);
this.commitDept(this.queryParams.deptId);
},
immediate: true, // 立即执行
@@ -89,7 +88,6 @@ export default {
created () {
},
mounted () {
// console.log('当前年份', this.centerYear);
this.commitYear(this.centerYear);
// 获取geoserver的地址
this.getGeoServerUrl();


+ 2
- 2
src/store/getters.js View File

@@ -1,7 +1,7 @@
const getters = {
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,
device: state => state.app.device,
visitedViews: state => state.tagsView.visitedViews,


+ 6
- 1
src/views/capital/comps/right/bottom/1/index.html View File

@@ -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>
</Pannel>

+ 0
- 1
src/views/capital/comps/right/bottom/2/index.js View File

@@ -65,7 +65,6 @@ export default {
}
},
tabChange (info) {
console.log('222', info);
this.type = info.type;
this.tabIndex = info.id
this.getData()


+ 172
- 0
src/views/property/api/index.js View File

@@ -90,4 +90,176 @@ export function longTermIdleResourceWarning (deptId, year) {
method: 'get',
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
})
}

+ 35
- 2
src/views/property/comps/buttom/1/index.js View File

@@ -1,5 +1,7 @@
import BlockValue from '@/components/value/index.vue';
import data from './data.js';
import { mapGetters } from 'vuex';
import { indicatorBelowAverage } from '../../../api/index.js';
export default {
components: {
BlockValue
@@ -9,10 +11,41 @@ export default {
data
};
},
created () {
computed: {
...mapGetters(['year', 'deptId'])
},
mounted () {
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
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;
})
}
}
}
};

+ 35
- 0
src/views/property/comps/buttom/2/index.js View File

@@ -1,9 +1,28 @@
import BlockValue from '@/components/value/index.vue';
import data from './data.js';
import { debtAnalysis } from '../../../api/index.js'
import { mapGetters } from 'vuex';
export default {
components: {
BlockValue
},
computed: {
...mapGetters(['year', 'deptId'])
},
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
data () {
return {
data
@@ -14,5 +33,21 @@ export default {
mounted () {
},
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;
})
}
}
}
};

+ 7
- 2
src/views/property/comps/left/bottom/1/index.html View File

@@ -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="top">
<PannelTabs @change="tabChange" :data="pannelTabData"></PannelTabs>
</div>
<div class="buttom">
<Bar id="bar2"></Bar>
<Bar v-if="isLoad" :data="data" id="bar2"></Bar>
</div>
</div>
</Pannel>

+ 36
- 5
src/views/property/comps/left/bottom/1/index.js View File

@@ -1,15 +1,35 @@
import Pannel from '@/components/pannel/index.vue';
import PannelTabs from '@/components/pannel-tabs/index.vue';
import Bar from '@/components/charts/bar/index.vue';

import { analysisOfOperatingAssets } from '../../../../api/index.js';
import { mapGetters } from 'vuex';
export default {
components: {
Bar,
PannelTabs,
Pannel
},
computed: {
...mapGetters(['year', 'deptId'])
},
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
data () {
return {
data: [],
isLoad: false,
pannelTabData: [
{
id: '1',
@@ -23,14 +43,25 @@ export default {
tabIndex: '1'
};
},
created () {
},
mounted () {
},
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) {
//console.log(info);
this.tabIndex = info.id
this.getData()
}
}
};

+ 7
- 2
src/views/property/comps/left/bottom/2/index.html View File

@@ -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>

+ 32
- 0
src/views/property/comps/left/bottom/2/index.js View File

@@ -1,12 +1,44 @@
import Pannel from '@/components/pannel/index.vue';
import Lines from '@/components/charts/line/index.vue';
import { debtTrendAnalysis } from '../../../../api/index.js';
import { mapGetters } from 'vuex';
export default {
components: {
Lines,
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 () {
return {
data: [],
isLoad: false
};
}
};

+ 0
- 1
src/views/property/comps/left/bottom/3/index.js View File

@@ -38,7 +38,6 @@ export default {
if (this.year, this.deptId) {
this.isLoad = false;
longTermIdleResourceWarning(this.deptId, this.year).then(res => {
console.log('longTermIdleResourceWarning', res);
let data = res.data.map(item => {
return [item.name, item.resourceSort, item.resourceType, item.deptName]
})


+ 7
- 2
src/views/property/comps/left/middle/1/index.html View File

@@ -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="top">
<PannelTabs @change="tabChange" :data="pannelTabData"></PannelTabs>
</div>
<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>
</Pannel>

+ 35
- 5
src/views/property/comps/left/middle/1/index.js View File

@@ -1,15 +1,34 @@
import Pannel from '@/components/pannel/index.vue';
import PannelTabs from '@/components/pannel-tabs/index.vue';
import Bar from '@/components/charts/bar/index.vue';

import { analysisOfFixedAssetTypes } from '../../../../api/index.js';
import { mapGetters } from 'vuex';
export default {
components: {
Bar,
PannelTabs,
Pannel
},
computed: {
...mapGetters(['year', 'deptId'])
},
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
data () {
return {
isLoad: false,
pannelTabData: [
{
id: '1',
@@ -20,16 +39,27 @@ export default {
name: '非经营性'
}
],
data: [],
tabIndex: '1'
};
},
created () {
},
mounted () {
},
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) {
this.tabIndex = info.id
this.getData()
}
}
};

+ 0
- 1
src/views/property/comps/left/middle/3/index.js View File

@@ -38,7 +38,6 @@ export default {
if (this.year, this.deptId) {
this.isLoad = false;
warningForNonStandardRentalOfResources(this.deptId, this.year).then(res => {
console.log('warningForNonStandardRentalOfResources', res);
let data = res.data.map(item => {
return [item.name, item.resourceSort, item.resourceType, item.deptName]
})


+ 4
- 4
src/views/property/comps/left/top/1/data.js View File

@@ -3,24 +3,24 @@ export default [
{
name: '固定资产(个)',
icon: require('./1.png'),
value: '3420'
value: '0'
},
{
name: '总原值(万元)',
icon: require('./2.png'),
value: '257'
value: '0'
}
],
[
{
name: '经营性固定资产(个)',
icon: require('./3.png'),
value: '160'
value: '0'
},
{
name: '总原值(万元)',
icon: require('./2.png'),
value: '101'
value: '0'
}
]
]

+ 6
- 1
src/views/property/comps/left/top/1/index.html View File

@@ -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>
<tr v-for="line in data">
<td v-for="item in line">


+ 39
- 1
src/views/property/comps/left/top/1/index.js View File

@@ -1,14 +1,52 @@
import Pannel from '@/components/pannel/index.vue';
import Block from '@/components/block/index.vue';
import data from './data.js';
import { analysisOfFixedAssetOverview } from '../../../../api/index.js';
import { mapGetters } from 'vuex';
export default {
components: {
Block,
Pannel
},
computed: {
...mapGetters(['year', 'deptId'])
},
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
data () {
return {
isLoad: false,
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;
})
}
}
},
};

+ 7
- 2
src/views/property/comps/left/top/2/index.html View File

@@ -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>

+ 49
- 0
src/views/property/comps/left/top/2/index.js View File

@@ -1,12 +1,61 @@
import Pannel from '@/components/pannel/index.vue';
import Pies from '@/components/charts/pies/index.vue';
import { debtOverviewAnalysis } from '../../../../api/index.js';
import { mapGetters } from 'vuex';
export default {
components: {
Pies,
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 () {
return {
isLoad: false,
data: []
};
}
};

+ 0
- 1
src/views/property/comps/left/top/4/index.js View File

@@ -36,7 +36,6 @@ export default {
this.isLoad = false // 是否加载完成
if (this.year, this.deptId) {
debtOverview(this.deptId, this.year).then(res => {
console.log('debtOverview', res);
this.data.topData[0][0].value = res.data.zbdz
this.data.topData[0][1].value = res.data.gfzl
this.data.topData[1][0].value = res.data.zfzl


+ 7
- 2
src/views/property/comps/right/bottom/1/index.html View File

@@ -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>

+ 33
- 1
src/views/property/comps/right/bottom/1/index.js View File

@@ -1,13 +1,33 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';

import { mapGetters } from 'vuex';
import { rankingAnalysisOfNonStandardContractManagement } from '../../../../api/index.js';
export default {
components: {
ScrollTable,
Pannel
},
computed: {
...mapGetters(['year', 'deptId'])
},
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
data () {
return {
isLoad: false,
data: [],
headers: ['部门名称', '合同数量', '排名']
};
},
@@ -16,5 +36,17 @@ export default {
mounted () {
},
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;
})
}
},
}
};

+ 7
- 2
src/views/property/comps/right/bottom/2/index.html View File

@@ -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>

+ 32
- 0
src/views/property/comps/right/bottom/2/index.js View File

@@ -1,12 +1,32 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';
import { analysisOfExcessiveDebt } 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 {
isLoad: false,
headers: ['经济组织名称', '债务金额', '债务率'],
data: [['经济组织名称', '债务金额', '21%']]
};
@@ -16,5 +36,17 @@ export default {
mounted () {
},
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;
})
}
},
}
};

+ 7
- 2
src/views/property/comps/right/middle/1/index.html View File

@@ -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="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>

+ 44
- 6
src/views/property/comps/right/middle/1/index.js View File

@@ -1,14 +1,35 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';
import PannelTabs from '@/components/pannel-tabs/index.vue';
import { mapGetters } from 'vuex';
import { analysisOfAmountRanking } from '../../../../api/index.js';
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 {
tabIndex: '1',
isLoad: false,
headers: ['部门名称', '数量', '排名'],
pannelTabData: [
{
@@ -20,15 +41,32 @@ export default {
name: '金额'
}
],
data: []
};
},
created () {
},
mounted () {
},
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();
}
}
};

+ 7
- 3
src/views/property/comps/right/middle/2/index.html View File

@@ -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="top">
<PannelTabs @change="tabChange" :data="pannelData"></PannelTabs>
</div>
<div class="buttom">
<ScrollTable :headers="headers" :data="data" :bodyHeight="160"></ScrollTable>
<ScrollTable v-if="isLoad" :headers="headers" :data="data" :bodyHeight="160"></ScrollTable>
</div>
</div>
</Pannel>

+ 37
- 2
src/views/property/comps/right/middle/2/index.js View File

@@ -1,14 +1,34 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';
import PannelTabs from '@/components/pannel-tabs/index.vue';
import { debtChangeRanking } 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 {
type: '1',
pannelData: [
{
id: '1',
@@ -19,6 +39,7 @@ export default {
name: '增加'
},
],
isLoad: false,
headers: ['部门名称', '债务金额', '排名'],
data: [['部门名称', '债务金额', '1']]
};
@@ -28,8 +49,22 @@ export default {
mounted () {
},
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()
}
}
};

+ 0
- 1
src/views/property/comps/right/middle/3/index.js View File

@@ -40,7 +40,6 @@ export default {
if (this.year, this.deptId) {
this.isLoad = false;
contractExpirationWarning(this.deptId, this.year).then(res => {
console.log(2222, res);
let data = res.data.map(item => {
return [item.code, item.name, item.endTime, item.deptName]
})


+ 4
- 4
src/views/property/comps/right/top/1/data.js View File

@@ -1,24 +1,24 @@
export default [
[
{
name: '总资产(万元)',
name: '合同数量(个)',
icon: require('./1.png'),
value: '8000'
},
{
name: '总负债(万元)',
name: '总合同额(万元)',
icon: require('./2.png'),
value: '257'
}
],
[
{
name: '总收入(万元)',
name: '已结款(万元)',
icon: require('./3.png'),
value: '1460'
},
{
name: '总支出(万元)',
name: '待结款(万元)',
icon: require('./2.png'),
value: '1011'
}


+ 6
- 1
src/views/property/comps/right/top/1/index.html View File

@@ -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>
<tr v-for="line in data">
<td v-for="item in line">


+ 36
- 0
src/views/property/comps/right/top/1/index.js View File

@@ -1,14 +1,50 @@
import Pannel from '@/components/pannel/index.vue';
import Block from '@/components/block/index.vue';
import data from './data.js';
import { analysisOfContractTypes } from '../../../../api/index.js';
import { mapGetters } from 'vuex';
export default {
components: {
Block,
Pannel
},
computed: {
...mapGetters(['year', 'deptId'])
},
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
data () {
return {
isLoad: false,
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 // 是否加载完成
})
}

}
}
};

+ 7
- 2
src/views/property/comps/right/top/2/index.html View File

@@ -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>

+ 32
- 0
src/views/property/comps/right/top/2/index.js View File

@@ -1,12 +1,32 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';
import { rankingOfDebtAmount } 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 {
isLoad: false,
headers: ['部门名称', '债务金额', '排名'],
data: [['部门名称', '债务金额', '1']]
};
@@ -16,5 +36,17 @@ export default {
mounted () {
},
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;
})
}
}
}
};

+ 38
- 39
src/views/property/main-gis/index.js View File

@@ -9,6 +9,7 @@ import { attachmentList } from "@/api/common/uploadAttachment.js";
let gis = null;
import { treeselectByDeptId } from "@/api/system/dept";
import Legend from '@/components/legend/index.vue';
import { mapGetters } from 'vuex';
import {
fromLonLat
} from 'ol/proj'
@@ -28,7 +29,6 @@ export default {
deptLayer: "", // 坐标点图层
countyBorderLayerName: "", // 区县边界图层名称
townBorderLayerName: "", // 乡镇边界图层名称
//villageBorderLayerName: "", // 村边界图层名称
groupBorderLayerName: "", // 组边界图层名称
LegendData: [
{
@@ -223,6 +223,7 @@ export default {
};
},
computed: {
...mapGetters(['year', 'deptId'])
},
created () {
// 获取geoserver的地址
@@ -544,43 +545,39 @@ export default {

},
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) {
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.permanentDetail = data;
}
@@ -588,10 +585,11 @@ export default {
},
// 加载地图
initMap (deptId) {
this.$store.commit('SET_DEPTID', deptId);
this.$store.commit('SET_YEAR', new Date().getFullYear());
getDept(deptId).then(response => {
const dept = response.data;

let mapCenterLocation;
const dept = response.data;
// 定义地图中心坐标
if (dept.lng && dept.lat) {
mapCenterLocation = [dept.lng, dept.lat];
@@ -599,6 +597,7 @@ export default {
mapCenterLocation = [116.391458, 39.902377];
}
gis = new GisUtils('map2')
console.log('==============');
gis.addTianDiTuLayer()
gis.addAnnotationLayer()
// 添加村边界


+ 27
- 0
src/views/resources/api/index.js View File

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

+ 7
- 2
src/views/resources/comps/left/bottom/2/index.html View File

@@ -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>

+ 35
- 0
src/views/resources/comps/left/bottom/2/index.js View File

@@ -1,16 +1,51 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';
import { mapGetters } from 'vuex';
import { longTermIdleResourceWarning } from '../../../../api/index.js';
export default {
components: {
ScrollTable,
Pannel
},
computed: {
...mapGetters(['year', 'deptId'])
},
watch: {
year: {
handler () {
this.getData();
},
immediate: true, // 立即执行
},
deptId: {
handler () {
this.getData();
},
immediate: true, // 立即执行
}
},
data () {
return {
isLoad: false,
headers: ['资源名称', '类别', '面积(亩)', '部门'],
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;
})
}
},
}

};

+ 7
- 2
src/views/resources/comps/left/middle/2/index.html View File

@@ -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>

+ 34
- 0
src/views/resources/comps/left/middle/2/index.js View File

@@ -1,16 +1,50 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';
import { longTermIdleResourceWarning } 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 {
isLoad: false,
headers: ['资源名称', '类别', '面积(亩)', '部门'],
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;
})
}
}
}
};

+ 3
- 0
src/views/resources/comps/left/top/1/index.js View File

@@ -1,5 +1,6 @@
import Pannel from '@/components/pannel/index.vue';
import HorizontalBar from '@/components/charts/horizontal-bar/index.vue';

export default {
components: {
HorizontalBar,
@@ -25,5 +26,7 @@ export default {
}
]
};
},
methods: {
}
};

+ 7
- 2
src/views/resources/comps/left/top/2/index.html View File

@@ -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>

+ 34
- 0
src/views/resources/comps/left/top/2/index.js View File

@@ -1,16 +1,50 @@
import Pannel from '@/components/pannel/index.vue';
import ScrollTable from '@/components/scroll-table/index.vue';
import { resourceFisposalWarning } 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 {
isLoad: false,
headers: ['资源名称', '类别', '面积(亩)', '处置类型', '部门'],
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;
})
}
}
}
};

+ 0
- 2
src/views/sanqing/main-gis/index.js View File

@@ -545,7 +545,6 @@ export default {
},
openResourceDialog (data) {
data.fileList = [];
console.log(data)
let parmasData = {
tableId: data.id,
tableName: 't_asset_three',
@@ -617,7 +616,6 @@ export default {
resourceList.forEach(item => {
if (item.theGeom != null && item.theGeom !== '') {
const { threeAssetType } = item
// console.log(222, threeAssetType, item);
let color = this.LegendData[threeAssetType - 1 + '']
let fs = gis.getFeature3(item, color.iconStyle.background, color.iconStyle.borderColor)
features.push(fs);


Loading…
Cancel
Save