Conflicts: src/views/sanqing/main-gis/index.jsdev
| @@ -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); | |||
| }); | |||
| @@ -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: { | |||
| @@ -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)", | |||
| @@ -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(); | |||
| @@ -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, | |||
| @@ -53,7 +53,8 @@ service.interceptors.response.use(res => { | |||
| try { | |||
| const code = res.data.code || 200; | |||
| // 获取错误信息 | |||
| const msg = errorCode[code] || res.data.msg || errorCode['default'] | |||
| // const msg = errorCode[code] || res.data.msg || errorCode['default'] | |||
| const msg = errorCode[code] | |||
| if (code === 401) { | |||
| MessageBox.confirm('登录状态已过期,请重新登录', '系统提示', { | |||
| confirmButtonText: '重新登录', | |||
| @@ -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> | |||
| @@ -29,13 +29,16 @@ export default { | |||
| data () { | |||
| return { | |||
| data: [], | |||
| type: 'zc', | |||
| pannelTabsData: [ | |||
| { | |||
| id: '1', | |||
| type: 'zc', | |||
| name: '支出' | |||
| }, | |||
| { | |||
| id: '2', | |||
| type: 'sr', | |||
| name: '收入' | |||
| } | |||
| ], | |||
| @@ -52,7 +55,7 @@ export default { | |||
| getData () { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| rankingOfNonStandardFundTransactionsWarning(this.deptId, this.year, this.tabIndex).then(res => { | |||
| rankingOfNonStandardFundTransactionsWarning(this.deptId, this.year, this.type).then(res => { | |||
| let data = res.rows.map(item => { | |||
| return [item.name, item.value, item.index] | |||
| }) | |||
| @@ -62,6 +65,7 @@ export default { | |||
| } | |||
| }, | |||
| tabChange (info) { | |||
| this.type = info.type; | |||
| this.tabIndex = info.id | |||
| this.getData() | |||
| } | |||
| @@ -0,0 +1,265 @@ | |||
| import request from '@/utils/request' | |||
| // 资产一张图-债务预警-左上-负债概况 | |||
| export function debtOverview (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/assetLiabilities/fzgk', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 河南资产一张图-预警分析-右上-合同结款到期预警(分页) | |||
| export function contractPaymentDueWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/assetWarning/htjkdqyj', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 河南资产一张图-预警分析-右中-合同到期预警(分页) | |||
| export function contractExpirationWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/assetWarning/htdqyj', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| //河南资产一张图-预警分析-右下-合同长期未执行预警 | |||
| export function longTermContractNonExecutionWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year, | |||
| days: 60 | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/assetWarning/htcqwzxyj', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 河南资源一张图-预警分析-左上-资源处置预警(分页) | |||
| export function resourceDisposalWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resourceWarning/zyczyj', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 河南资源一张图-预警分析-左中-资源不规范出租预警 | |||
| export function warningForNonStandardRentalOfResources (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resourceWarning/zybgfczyj', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 河南资源一张图-预警分析-左下-资源长期闲置预警(分 | |||
| export function longTermIdleResourceWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resourceWarning/zybgfczyj', | |||
| 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 | |||
| }) | |||
| } | |||
| @@ -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; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -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; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -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() | |||
| } | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -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 | |||
| }; | |||
| } | |||
| }; | |||
| @@ -1,4 +1,9 @@ | |||
| <Pannel title="资产长期闲置预警" height="305" flexIble> | |||
| <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 :headers="headers" :data="data"></ScrollTable> | |||
| </Pannel> | |||
| @@ -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.resourceType, item.deptName] | |||
| }) | |||
| 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="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> | |||
| @@ -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() | |||
| } | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -1,16 +1,50 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { warningForNonStandardRentalOfResources } 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; | |||
| warningForNonStandardRentalOfResources(this.deptId, this.year).then(res => { | |||
| let data = res.data.map(item => { | |||
| return [item.name, item.resourceSort, item.resourceType, item.deptName] | |||
| }) | |||
| this.data = data; | |||
| this.isLoad = true; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -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' | |||
| } | |||
| ] | |||
| ] | |||
| @@ -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"> | |||
| @@ -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; | |||
| }) | |||
| } | |||
| } | |||
| }, | |||
| }; | |||
| @@ -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> | |||
| @@ -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: [] | |||
| }; | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -1,16 +1,50 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { resourceDisposalWarning } 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; | |||
| resourceDisposalWarning(this.deptId, this.year).then(res => { | |||
| let data = res.rows.map(item => { | |||
| return [item.assetName, item.assetType, item.applyAt, item.assetStatus, item.bookName] | |||
| }) | |||
| this.data = data; | |||
| this.isLoad = true; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -1,5 +1,10 @@ | |||
| <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"> | |||
| <table> | |||
| @@ -1,14 +1,50 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import BlockIcon from '@/components/block-icon/index.vue'; | |||
| import data from './data.js'; | |||
| import { debtOverview } from '../../../../api/index.js'; | |||
| import { mapGetters } from 'vuex'; | |||
| export default { | |||
| components: { | |||
| BlockIcon, | |||
| 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) { | |||
| debtOverview(this.deptId, this.year).then(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 | |||
| this.data.topData[1][1].value = res.data.dfzl | |||
| this.isLoad = true // 是否加载完成 | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -1,3 +1,8 @@ | |||
| <Pannel title="合同不规范管理排名分析" height="340"> | |||
| <ScrollTable :headers="headers"></ScrollTable> | |||
| <Pannel title="合同不规范管理排名分析" height="340" | |||
| v-loading="!isLoad" | |||
| element-loading-text="拼命加载中" | |||
| element-loading-spinner="el-icon-loading" | |||
| element-loading-background="rgba(0, 0, 0, 0.1)" | |||
| > | |||
| <ScrollTable v-if="isLoad" :data="data" :headers="headers"></ScrollTable> | |||
| </Pannel> | |||
| @@ -1,13 +1,33 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { 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; | |||
| }) | |||
| } | |||
| }, | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -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; | |||
| }) | |||
| } | |||
| }, | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -1,5 +1,7 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { longTermContractNonExecutionWarning } from '../../../../api/index.js'; | |||
| import { mapGetters } from 'vuex'; | |||
| export default { | |||
| components: { | |||
| ScrollTable, | |||
| @@ -7,14 +9,44 @@ export default { | |||
| }, | |||
| data () { | |||
| return { | |||
| isLoad: false, | |||
| headers: ['合同编码', '合同名称', '合同截止日期', '部门'], | |||
| data: [['合同编码', '合同名称', '合同截止日期', '部门']] | |||
| data: [] | |||
| }; | |||
| }, | |||
| computed: { | |||
| ...mapGetters(['year', 'deptId']) | |||
| }, | |||
| watch: { | |||
| year: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| }, | |||
| deptId: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| } | |||
| }, | |||
| created () { | |||
| }, | |||
| mounted () { | |||
| }, | |||
| methods: { | |||
| getData () { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| longTermContractNonExecutionWarning(this.deptId, this.year).then(res => { | |||
| let data = res.data.map(item => { | |||
| return [item.code, item.name, item.endTime, item.deptName] | |||
| }) | |||
| 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="top"> | |||
| <PannelTabs @change="tabChange" :data="pannelTabData"></PannelTabs> | |||
| </div> | |||
| <div class="buttom"> | |||
| <ScrollTable :headers="headers"></ScrollTable> | |||
| <ScrollTable v-if="isLoad" :data="data" :headers="headers"></ScrollTable> | |||
| </div> | |||
| </div> | |||
| </Pannel> | |||
| @@ -1,14 +1,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(); | |||
| } | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -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() | |||
| } | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -1,5 +1,7 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { contractExpirationWarning } from '../../../../api/index.js'; | |||
| import { mapGetters } from 'vuex'; | |||
| export default { | |||
| components: { | |||
| ScrollTable, | |||
| @@ -7,14 +9,44 @@ export default { | |||
| }, | |||
| data () { | |||
| return { | |||
| isLoad: false, | |||
| headers: ['合同编码', '合同名称', '合同截止日期', '部门'], | |||
| data: [['合同编码', '合同名称', '合同截止日期', '部门']] | |||
| }; | |||
| }, | |||
| watch: { | |||
| year: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| }, | |||
| deptId: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| } | |||
| }, | |||
| computed: { | |||
| ...mapGetters(['year', 'deptId']) | |||
| }, | |||
| created () { | |||
| }, | |||
| mounted () { | |||
| }, | |||
| methods: { | |||
| getData () { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| contractExpirationWarning(this.deptId, this.year).then(res => { | |||
| let data = res.data.map(item => { | |||
| return [item.code, item.name, item.endTime, item.deptName] | |||
| }) | |||
| this.data = data; | |||
| this.isLoad = true; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -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' | |||
| } | |||
| @@ -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"> | |||
| @@ -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 // 是否加载完成 | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -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; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -1,12 +1,32 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { contractPaymentDueWarning } 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: [['合同编码', '合同名称', '预结款日期', '结款金额', '部门']] | |||
| }; | |||
| @@ -16,5 +36,17 @@ export default { | |||
| mounted () { | |||
| }, | |||
| methods: { | |||
| getData () { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| contractPaymentDueWarning(this.deptId, this.year).then(res => { | |||
| let data = res.data.map(item => { | |||
| return [item.code, item.name, item.settlementDate, item.settlementAmount, item.deptName] | |||
| }) | |||
| this.data = data; | |||
| this.isLoad = true; | |||
| }) | |||
| } | |||
| }, | |||
| } | |||
| }; | |||
| @@ -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() | |||
| // 添加村边界 | |||
| @@ -0,0 +1,66 @@ | |||
| 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 | |||
| }) | |||
| } | |||
| // 河南资源一张图-预警分析-右上-合同结款到期预警(分页) | |||
| export function contractPaymentDueWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resourceWarning/htjkdqyj', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 河南资源一张图-预警分析-右中-合同到期预警 | |||
| export function contractExpirationWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resourceWarning/htdqyj', | |||
| method: 'get', | |||
| params: query | |||
| }) | |||
| } | |||
| // 河南资源一张图-预警分析-右下-合同长期未执行预警 | |||
| export function longTermContractNonExecutionWarning (deptId, year) { | |||
| let query = { | |||
| deptId, | |||
| year | |||
| } | |||
| return request({ | |||
| url: 'api/home/xixia/resourceWarning/htcqwzxyj', | |||
| 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> | |||
| @@ -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; | |||
| }) | |||
| } | |||
| }, | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -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; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -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: { | |||
| } | |||
| }; | |||
| @@ -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> | |||
| @@ -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; | |||
| }) | |||
| } | |||
| } | |||
| } | |||
| }; | |||
| @@ -1,4 +1,10 @@ | |||
| <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> | |||
| @@ -1,5 +1,7 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { longTermContractNonExecutionWarning } from '../../../../api/index.js'; | |||
| import { mapGetters } from 'vuex'; | |||
| export default { | |||
| components: { | |||
| ScrollTable, | |||
| @@ -7,14 +9,40 @@ export default { | |||
| }, | |||
| data () { | |||
| return { | |||
| isLoad: false, | |||
| headers: ['合同编码', '合同名称', '合同截止日期', '部门'], | |||
| data: [['合同编码', '合同名称', '合同截止日期', '部门']] | |||
| 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; | |||
| longTermContractNonExecutionWarning(this.deptId, this.year).then(res => { | |||
| let data = res.data.map(item => { | |||
| return [item.code, item.name, item.endTime, 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> | |||
| @@ -1,5 +1,7 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { mapGetters } from 'vuex'; | |||
| import { contractExpirationWarning } from '../../../../api/index.js'; | |||
| export default { | |||
| components: { | |||
| ScrollTable, | |||
| @@ -7,14 +9,41 @@ export default { | |||
| }, | |||
| data () { | |||
| return { | |||
| isLoad: false, | |||
| headers: ['合同编码', '合同名称', '合同截止日期', '部门'], | |||
| 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; | |||
| contractExpirationWarning(this.deptId, this.year).then(res => { | |||
| // console.log('contractExpirationWarning', res); | |||
| let data = res.data.map(item => { | |||
| return [item.code, item.name, item.endTime, 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> | |||
| @@ -1,5 +1,7 @@ | |||
| import Pannel from '@/components/pannel/index.vue'; | |||
| import ScrollTable from '@/components/scroll-table/index.vue'; | |||
| import { mapGetters } from 'vuex'; | |||
| import { contractPaymentDueWarning } from '../../../../api/index.js'; | |||
| export default { | |||
| components: { | |||
| ScrollTable, | |||
| @@ -7,14 +9,44 @@ export default { | |||
| }, | |||
| data () { | |||
| return { | |||
| isLoad: false, | |||
| headers: ['合同编码', '合同名称', '预结款日期', '结款金额', '部门'], | |||
| data: [['合同编码', '合同名称', '预结款日期', '结款金额', '部门']] | |||
| }; | |||
| }, | |||
| computed: { | |||
| ...mapGetters(['year', 'deptId']) | |||
| }, | |||
| watch: { | |||
| year: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| }, | |||
| deptId: { | |||
| handler () { | |||
| this.getData(); | |||
| }, | |||
| immediate: true, // 立即执行 | |||
| } | |||
| }, | |||
| created () { | |||
| }, | |||
| mounted () { | |||
| }, | |||
| methods: { | |||
| getData () { | |||
| if (this.year, this.deptId) { | |||
| this.isLoad = false; | |||
| contractPaymentDueWarning(this.deptId, this.year).then(res => { | |||
| let data = res.data.map(item => { | |||
| return [item.code, item.name, item.settlementDate, item.settlementAmount, item.deptName] | |||
| }) | |||
| this.data = data; | |||
| this.isLoad = true; | |||
| }) | |||
| } | |||
| }, | |||
| } | |||
| }; | |||
| @@ -439,7 +439,7 @@ export default { | |||
| features.push(fs); | |||
| }); | |||
| gis.getVectorLayerByFs(features) | |||
| gis.mapSetFit(features) | |||
| // gis.mapSetFit(features) | |||
| }, | |||
| // 获取资源列表 | |||
| getResourceList (deptId) { | |||
| @@ -460,7 +460,7 @@ export default { | |||
| resourceList.forEach(item => { | |||
| if (item.theGeom != null && item.theGeom !== '') { | |||
| const { threeAssetType } = item | |||
| console.log(222, 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); | |||