瀏覽代碼

task 产业一张图

dev
庞东旭 2 月之前
父節點
當前提交
6fb1ce160c
共有 99 個文件被更改,包括 2555 次插入47 次删除
  1. +1
    -0
      src/components/charts/bar-stack/index.html
  2. +269
    -0
      src/components/charts/bar-stack/index.js
  3. +6
    -0
      src/components/charts/bar-stack/index.scss
  4. +3
    -0
      src/components/charts/bar-stack/index.vue
  5. +81
    -29
      src/components/charts/lines/index.js
  6. +6
    -0
      src/router/index.js
  7. +6
    -4
      src/views/capital/api/index.js
  8. +1
    -1
      src/views/capital/comps/right/bottom/1/index.js
  9. +1
    -1
      src/views/capital/comps/right/middle/1/index.js
  10. 二進制
      src/views/industry/comps/buttom/1/bg.png
  11. 二進制
      src/views/industry/comps/buttom/1/bg2.png
  12. +34
    -0
      src/views/industry/comps/buttom/1/data.js
  13. +52
    -0
      src/views/industry/comps/buttom/1/index.html
  14. +24
    -0
      src/views/industry/comps/buttom/1/index.js
  15. +94
    -0
      src/views/industry/comps/buttom/1/index.scss
  16. +4
    -0
      src/views/industry/comps/buttom/1/index.vue
  17. 二進制
      src/views/industry/comps/buttom/2/bg.png
  18. 二進制
      src/views/industry/comps/buttom/2/bg2.png
  19. +34
    -0
      src/views/industry/comps/buttom/2/data.js
  20. +13
    -0
      src/views/industry/comps/buttom/2/index.html
  21. +24
    -0
      src/views/industry/comps/buttom/2/index.js
  22. +93
    -0
      src/views/industry/comps/buttom/2/index.scss
  23. +4
    -0
      src/views/industry/comps/buttom/2/index.vue
  24. +12
    -0
      src/views/industry/comps/left/bottom/1/index.html
  25. +37
    -0
      src/views/industry/comps/left/bottom/1/index.js
  26. +17
    -0
      src/views/industry/comps/left/bottom/1/index.scss
  27. +4
    -0
      src/views/industry/comps/left/bottom/1/index.vue
  28. +12
    -0
      src/views/industry/comps/left/middle/1/index.html
  29. +32
    -0
      src/views/industry/comps/left/middle/1/index.js
  30. +17
    -0
      src/views/industry/comps/left/middle/1/index.scss
  31. +4
    -0
      src/views/industry/comps/left/middle/1/index.vue
  32. +12
    -0
      src/views/industry/comps/left/top/1/index.html
  33. +29
    -0
      src/views/industry/comps/left/top/1/index.js
  34. +17
    -0
      src/views/industry/comps/left/top/1/index.scss
  35. +4
    -0
      src/views/industry/comps/left/top/1/index.vue
  36. +13
    -0
      src/views/industry/comps/right/bottom/1/index.html
  37. +37
    -0
      src/views/industry/comps/right/bottom/1/index.js
  38. +17
    -0
      src/views/industry/comps/right/bottom/1/index.scss
  39. +4
    -0
      src/views/industry/comps/right/bottom/1/index.vue
  40. +12
    -0
      src/views/industry/comps/right/middle/1/index.html
  41. +60
    -0
      src/views/industry/comps/right/middle/1/index.js
  42. +17
    -0
      src/views/industry/comps/right/middle/1/index.scss
  43. +4
    -0
      src/views/industry/comps/right/middle/1/index.vue
  44. +11
    -0
      src/views/industry/comps/right/top/1/index.html
  45. +57
    -0
      src/views/industry/comps/right/top/1/index.js
  46. +17
    -0
      src/views/industry/comps/right/top/1/index.scss
  47. +4
    -0
      src/views/industry/comps/right/top/1/index.vue
  48. +29
    -0
      src/views/industry/data.js
  49. 二進制
      src/views/industry/icon/yellow.png
  50. +17
    -0
      src/views/industry/index.html
  51. +148
    -0
      src/views/industry/index.js
  52. +12
    -0
      src/views/industry/index.scss
  53. +4
    -0
      src/views/industry/index.vue
  54. 二進制
      src/views/industry/main-gis/close.png
  55. +32
    -0
      src/views/industry/main-gis/data.js
  56. 二進制
      src/views/industry/main-gis/icon/blue.png
  57. 二進制
      src/views/industry/main-gis/icon/cyan.png
  58. 二進制
      src/views/industry/main-gis/icon/gc_icon.png
  59. 二進制
      src/views/industry/main-gis/icon/green.png
  60. 二進制
      src/views/industry/main-gis/icon/ld_icon.png
  61. 二進制
      src/views/industry/main-gis/icon/ljd_icon.png
  62. 二進制
      src/views/industry/main-gis/icon/map_icon_1.png
  63. 二進制
      src/views/industry/main-gis/icon/map_icon_2.png
  64. 二進制
      src/views/industry/main-gis/icon/map_icon_3.png
  65. 二進制
      src/views/industry/main-gis/icon/map_icon_4.png
  66. 二進制
      src/views/industry/main-gis/icon/map_icon_5.png
  67. 二進制
      src/views/industry/main-gis/icon/map_icon_6.png
  68. 二進制
      src/views/industry/main-gis/icon/map_icon_7.png
  69. 二進制
      src/views/industry/main-gis/icon/pink.png
  70. 二進制
      src/views/industry/main-gis/icon/red.png
  71. 二進制
      src/views/industry/main-gis/icon/sxt_icon.png
  72. 二進制
      src/views/industry/main-gis/icon/wsz_icon.png
  73. 二進制
      src/views/industry/main-gis/icon/yellow copy.png
  74. 二進制
      src/views/industry/main-gis/icon/yellow.png
  75. 二進制
      src/views/industry/main-gis/icon/zc_icon copy.png
  76. 二進制
      src/views/industry/main-gis/icon/zc_icon.png
  77. 二進制
      src/views/industry/main-gis/icon_excel.jpg
  78. 二進制
      src/views/industry/main-gis/icon_pdf.jpg
  79. 二進制
      src/views/industry/main-gis/icon_rest.jpg
  80. 二進制
      src/views/industry/main-gis/icon_word.jpg
  81. 二進制
      src/views/industry/main-gis/icon_zip.jpg
  82. +103
    -0
      src/views/industry/main-gis/index.html
  83. +516
    -0
      src/views/industry/main-gis/index.js
  84. +277
    -0
      src/views/industry/main-gis/index.scss
  85. +30
    -0
      src/views/industry/main-gis/index.vue
  86. 二進制
      src/views/industry/popover/icon.png
  87. +90
    -0
      src/views/industry/popover/index.html
  88. +26
    -0
      src/views/industry/popover/index.js
  89. +46
    -0
      src/views/industry/popover/index.scss
  90. +4
    -0
      src/views/industry/popover/index.vue
  91. 二進制
      src/views/industry/popover/tit_bg.png
  92. 二進制
      src/views/nav/5.png
  93. +5
    -0
      src/views/nav/data.js
  94. +6
    -4
      src/views/property/api/index.js
  95. +1
    -1
      src/views/property/comps/right/bottom/1/index.js
  96. +1
    -1
      src/views/property/comps/right/middle/1/index.js
  97. +6
    -4
      src/views/resources/api/index.js
  98. +1
    -1
      src/views/resources/comps/right/bottom/1/index.js
  99. +1
    -1
      src/views/resources/comps/right/middle/1/index.js

+ 1
- 0
src/components/charts/bar-stack/index.html 查看文件

@@ -0,0 +1 @@
<div :id="id" class="chart"></div>

+ 269
- 0
src/components/charts/bar-stack/index.js 查看文件

@@ -0,0 +1,269 @@
import * as echarts from 'echarts';
import elementResizeDetectorMaker from 'element-resize-detector';
export default {
props: {
id: {
type: String,
default: 'bar'
},
data: {
type: Array,
default: function () {
return [
{
name: '1月',
value: '10'
},
{
name: '2月',
value: '19'
}
];
}
},
unit: {
type: String,
default: '单位:万元'
},
interval: {
type: Number,
default: null
},
rotate: {
type: Number,
default: 0
},
serverName: {
type: String,
default: '面积'
},
color: {
type: Array,
default: function () {
return ['rgba(15, 252, 252, 1)', 'rgba(53, 197, 124, 1)']
}
},
barBorderRadius: {
type: Array,
default: function () {
return [0, 0, 0, 0]
}
}
},
data () {
return {
chart: null
};
},
watch: {
data: {
handler: function (val) {
this.$nextTick(function () {
setTimeout(() => {
this.initChart();
}, 2000)
});
},
immediate: true,
deep: true
}
},
create () {

},
mounted () {
// setTimeout(()=>{
// this.initChart();
// },2000)
},
computed: {
},
methods: {
// 设置监听器 页面尺寸变化重新绘制图表
initResizeCallBack () {
const erd = elementResizeDetectorMaker();
erd.listenTo(document.getElementById(this.id), () => {
this.$nextTick(() => {
if (document.getElementById(this.id).offsetWidth > 500){
this.rotate = 60;
}else{
this.rotate = 0;
}
this.chart.resize();
this.chart.setOption({
// 新的配置项,例如:
xAxis: {
axisLabel: {
rotate: this.rotate
},
}
});
});
});
},
initChart () {
this.chart = echarts.init(document.getElementById(this.id));
this.chartSetOption();
},
chartSetOption () {
let xAxisData = [];
let data = [];
let bgData = [];
this.data.forEach(item => {
xAxisData.push(item.name)
data.push(item.value)
bgData.push(100)
});

const option = {
color: ["#2195fe","#04e26f","#f7cc3a","#f77e3f"],
tooltip: {
trigger: "axis",
axisPointer: {
type: "line",
lineStyle: {
opacity: 0,
},
}
},
legend: {
data: ["村集体", "农民", "公司", "其它"],
top: '3%',
right: '5%',
textStyle: {
color: 'rgba(210, 238, 255, 1)',
},
},
grid: {
left: "5%",
right: "5%",
bottom: "5%",
top: "15%",
containLabel: true,
z: 22,
},
xAxis: [
{
splitArea: {
show: false,
areaStyle: {
color: ['RGBA(13, 31, 64, 1)']
}
},
splitLine: {
show: false,
lineStyle: {
color: ['rgba(18, 40, 83, 1)'],
width: 100
}
},
type: "category",
gridIndex: 0,
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],//xAxisData
axisTick: {
alignWithLabel: true,
},
axisLine: {
lineStyle: {
color: "#0c3b71",
},
},
axisLabel: {
show: true,
rotate: this.rotate,
color: 'rgba(185, 211, 235, 1)'
},
},
],
yAxis: [
{
type: "value",
name: this.unit,
nameTextStyle: {
color: 'rgba(185, 211, 235, 1)'
},
axisLabel: {
formatter: "{value}",
textStyle: {
color: "rgba(185, 211, 235, 1)",
},
},
axisLine: {
lineStyle: {
color: "#27b4c2",
},
},
axisTick: {
show: false,
},
splitLine: {
show: true,
lineStyle: {
color: "#11366e",
},
},
},
{
type: "value",
gridIndex: 0,
max: 100,
splitNumber: 12,
splitLine: {
show: false,
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
axisLabel: {
show: false,
}
},
],
series: [
{
name: '村集体',
barWidth: 20,
type: 'bar',
stack: 'Ad',
emphasis: {
focus: 'series'
},
data: [320, 332, 301, 334, 390, 330, 320]
},
{
name: '农民',
type: 'bar',
stack: 'Ad',
emphasis: {
focus: 'series'
},
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: '公司',
type: 'bar',
stack: 'Ad',
emphasis: {
focus: 'series'
},
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: '其它',
type: 'bar',
stack: 'Ad',
emphasis: {
focus: 'series'
},
data: [150, 232, 201, 154, 190, 330, 410]
},
]
};
this.chart.setOption(option);
this.initResizeCallBack();
}
}
};

+ 6
- 0
src/components/charts/bar-stack/index.scss 查看文件

@@ -0,0 +1,6 @@
.chart {
overflow: visible;
width: 100%;
height: 100%;
z-index: 2;
}

+ 3
- 0
src/components/charts/bar-stack/index.vue 查看文件

@@ -0,0 +1,3 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped></style>

+ 81
- 29
src/components/charts/lines/index.js 查看文件

@@ -4,7 +4,7 @@ export default {
props: {
id: {
type: String,
default: 'lines'
default: 'line'
},
data: {
type: Array,
@@ -60,12 +60,12 @@ export default {
},
chartSetOption () {

let xAxisData = [];
let data = [];
this.data.forEach(item => {
xAxisData.push(item.name)
data.push(item.value)
});
// let xAxisData = [];
// let data = [];
// this.data.forEach(item => {
// xAxisData.push(item.name)
// data.push(item.value)
// });
const option = {
grid: {
left: "5%",
@@ -90,11 +90,7 @@ export default {
{
offset: 0.5,
color: this.color[1],
},
{
offset: 0,
color: this.color[2],
},
}
]),
},
xAxis: [
@@ -113,7 +109,7 @@ export default {
splitLine: {
show: false
},
data: xAxisData
data: ['鸭池镇','梨树镇','岔河镇','田坝镇','长春镇堡','八寨镇','林口镇'] //xAxisData
},
],
yAxis: [
@@ -147,10 +143,10 @@ export default {
],
series: [
{
name: "",
type: "line",
name: 'Email',
type: 'line',
stack: 'Total',
smooth: true,
symbolSize: 12,
itemStyle: {
normal: {
color: this.color[0],
@@ -162,31 +158,87 @@ export default {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 1,
color: this.areaStyle[0],
},
{
offset: 0.5,
color: this.areaStyle[1],
color: this.color[0],
},
{
offset: 0,
color: this.areaStyle[2],
color: 'rgba(0,0,0,0)',
},
]),
},
},
},
markPoint: {
itemStyle: {
normal: {
color: "red",
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: 'Union Ads',
type: 'line',
stack: 'Total',
smooth: true,
itemStyle: {
normal: {
color: this.color[1],
lineStyle: {
color: this.color[1],
width: 1,
},
areaStyle: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 1,
color: this.color[1],
},
{
offset: 0,
color: 'rgba(0,0,0,0)',
},
]),
},
},
},
data: data
}
data: [220, 182, 191, 234, 290, 330, 310]
},
// {
// name: "",
// type: "line",
// smooth: true,
// symbolSize: 12,
// itemStyle: {
// normal: {
// color: this.color[0],
// lineStyle: {
// color: this.color[0],
// width: 1,
// },
// areaStyle: {
// color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
// {
// offset: 1,
// color: this.areaStyle[0],
// },
// {
// offset: 0.5,
// color: this.areaStyle[1],
// },
// {
// offset: 0,
// color: this.areaStyle[2],
// },
// ]),
// },
// },
// },
// markPoint: {
// itemStyle: {
// normal: {
// color: "red",
// },
// },
// },
// data: data
// }
],
};;
};
this.chart.setOption(option);
this.initResizeCallBack();



+ 6
- 0
src/router/index.js 查看文件

@@ -42,6 +42,12 @@ const routes = [
path: '/sanqing',
name: 'sanqing',
component: () => import('@/views/sanqing/index.vue')
},
// // 三清五治
{
path: '/industry',
name: 'industry',
component: () => import('@/views/industry/index.vue')
}
];



+ 6
- 4
src/views/capital/api/index.js 查看文件

@@ -78,10 +78,11 @@ export function assetLiabilityAnalysis (deptId, year) {
}

// 资金一张图-右中-资金收入排名
export function rankingOfFundIncome (deptId, year) {
export function rankingOfFundIncome (deptId, year, num) {
let query = {
deptId,
year
year,
num
}
return request({
url: 'api/home/xixia/finance/zjsrpm',
@@ -91,10 +92,11 @@ export function rankingOfFundIncome (deptId, year) {
}

// 资金一张图-右下-资金支出排名
export function rankingOfCapitalExpenditure (deptId, year) {
export function rankingOfCapitalExpenditure (deptId, year, num) {
let query = {
deptId,
year
year,
num
}
return request({
url: 'api/home/xixia/finance/zjzhcpm',


+ 1
- 1
src/views/capital/comps/right/bottom/1/index.js 查看文件

@@ -33,7 +33,7 @@ export default {
getData () {
if (this.year, this.deptId) {
this.isLoad = false;
rankingOfCapitalExpenditure(this.deptId, this.year).then(res => {
rankingOfCapitalExpenditure(this.deptId, this.year, 100).then(res => {
let data = res.data.map(item => {
return [item.name, item.value, item.index]
})


+ 1
- 1
src/views/capital/comps/right/middle/1/index.js 查看文件

@@ -38,7 +38,7 @@ export default {
getData () {
if (this.year, this.deptId) {
this.isLoad = false;
rankingOfFundIncome(this.deptId, this.year).then(res => {
rankingOfFundIncome(this.deptId, this.year, 100).then(res => {
let data = res.data.map(item => {
return [item.name, item.value, item.index]
})


二進制
src/views/industry/comps/buttom/1/bg.png 查看文件

Before After
Width: 162  |  Height: 116  |  Size: 16 KiB

二進制
src/views/industry/comps/buttom/1/bg2.png 查看文件

Before After
Width: 166  |  Height: 80  |  Size: 1.9 KiB

+ 34
- 0
src/views/industry/comps/buttom/1/data.js 查看文件

@@ -0,0 +1,34 @@
export default [
[
{
show: true,
name: '农用地(亩)',
value: '716'
},
{
show: true,
name: '建设用地(亩)',
value: '716'
},
{
show: true,
name: '未利用地(亩)',
value: '716'
},
{
show: true,
name: '农用地(宗)',
value: '716'
},
{
show: true,
name: '建设用地(宗)',
value: '716'
},
{
show: true,
name: '未利用地(宗)',
value: '103'
}
]
]

+ 52
- 0
src/views/industry/comps/buttom/1/index.html 查看文件

@@ -0,0 +1,52 @@
<div class="buttom2">
<div style="display: flex;justify-content: space-between;">
<div class="flex_main">
<i></i>
<p class="tt">集体资源资产统计</p>
<div class="flex_block">
<p>数量</p>
<p>{{data.jtzyzc.num}}个</p>
</div>
<div class="flex_block">
<p>用地面积</p>
<p>{{data.jtzyzc.ydmj}}亩</p>
</div>
<div class="flex_block">
<p>建筑面积</p>
<p>{{data.jtzyzc.jzmj}}㎡</p>
</div>
</div>
<div class="flex_main">
<i></i>
<p class="tt">农业设施设备统计</p>
<div class="flex_block">
<p>数量</p>
<p>{{data.nysssb.num}}个</p>
</div>
<div class="flex_block">
<p>用地面积</p>
<p>{{data.nysssb.ydmj}}亩</p>
</div>
<div class="flex_block">
<p>建筑面积</p>
<p>{{data.nysssb.jzmj}}㎡</p>
</div>
</div>
<div class="flex_main">
<i></i>
<p class="tt">农户资产统计</p>
<div class="flex_block">
<p>数量</p>
<p>{{data.nhzc.num}}个</p>
</div>
<div class="flex_block">
<p>用地面积</p>
<p>{{data.nhzc.ydmj}}亩</p>
</div>
<div class="flex_block">
<p>建筑面积</p>
<p>{{data.nhzc.jzmj}}㎡</p>
</div>
</div>
</div>
</div>

+ 24
- 0
src/views/industry/comps/buttom/1/index.js 查看文件

@@ -0,0 +1,24 @@
import BlockValue from '@/components/value/index.vue';
export default {
components: {
BlockValue
},
props: {
data: {
type: Object,
default: function () {
return {}
}
}
},
data () {
return {
};
},
created () {
},
mounted () {
},
methods: {
}
};

+ 94
- 0
src/views/industry/comps/buttom/1/index.scss 查看文件

@@ -0,0 +1,94 @@
.buttom2 {
width: 100%;
display: flex;
justify-content: space-between;
position: absolute;
bottom: 30px;
left: 460px;
z-index: 2;
flex: 1;
.flex_main{
background: url("bg.png") no-repeat 10px center;
background-size: calc(100% - 10px) 100%;
width: 220px;
height: 150px;
padding: 15px 15px 15px 25px;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-bottom: 15px;
position: relative;
.flex_block{
display: flex;
align-items: center;
justify-content: space-between;
p:nth-child(1){
color: #e6f1ff;
}
}
.tt{
text-shadow: 2px 2px 4px #000000;
font-size: 18px;
font-weight: bold;
}
i{
display: block;
height: 100%;
width: 5px;
position: absolute;
top: 0;
left: 0;
}
&:nth-child(1){
i{
background-color: #00d6f8;
}
.flex_block{
p:nth-child(2){
color: #00d6f8;
}
}
}
&:nth-child(2){
i{
background-color: #f7cc3a;
}
.flex_block{
p:nth-child(2){
color: #f7cc3a;
}
}
}
&:nth-child(3){
i{
background-color: #04e26f;
}
.flex_block{
p:nth-child(2){
color: #04e26f;
}
}
}
}

.flex_main_right{
background: url("bg2.png") no-repeat center;
background-size: 100% 100%;
width: 220px;
height: 100px;
margin-bottom: 15px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
p:nth-child(1){
color: #01d5f8;
font-size: 26px;
font-weight: bold;
span{
font-size: 14px;
}
}
}

}

+ 4
- 0
src/views/industry/comps/buttom/1/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

二進制
src/views/industry/comps/buttom/2/bg.png 查看文件

Before After
Width: 162  |  Height: 116  |  Size: 17 KiB

二進制
src/views/industry/comps/buttom/2/bg2.png 查看文件

Before After
Width: 166  |  Height: 80  |  Size: 1.9 KiB

+ 34
- 0
src/views/industry/comps/buttom/2/data.js 查看文件

@@ -0,0 +1,34 @@
export default [
[
{
show: true,
name: '农用地(亩)',
value: '716'
},
{
show: true,
name: '建设用地(亩)',
value: '716'
},
{
show: true,
name: '未利用地(亩)',
value: '716'
},
{
show: true,
name: '农用地(宗)',
value: '716'
},
{
show: true,
name: '建设用地(宗)',
value: '716'
},
{
show: true,
name: '未利用地(宗)',
value: '103'
}
]
]

+ 13
- 0
src/views/industry/comps/buttom/2/index.html 查看文件

@@ -0,0 +1,13 @@
<div class="buttom2">
<div>
<div class="flex_main_right">
<p>{{data.xy23}}<span>万元</span></p>
<p>2023年盘活效益</p>
</div>

<div class="flex_main_right">
<p>{{data.xy24}}<span>万元</span></p>
<p>2024年盘活效益</p>
</div>
</div>
</div>

+ 24
- 0
src/views/industry/comps/buttom/2/index.js 查看文件

@@ -0,0 +1,24 @@
import BlockValue from '@/components/value/index.vue';
export default {
components: {
BlockValue
},
props: {
data: {
type: Object,
default: function () {
return {}
}
}
},
data () {
return {
};
},
created () {
},
mounted () {
},
methods: {
}
};

+ 93
- 0
src/views/industry/comps/buttom/2/index.scss 查看文件

@@ -0,0 +1,93 @@
.buttom2 {
width: 220px;
display: flex;
justify-content: space-between;
position: absolute;
top: 100px;
right: 460px;
z-index: 2;
.flex_main{
background: url("bg.png") no-repeat 10px center;
background-size: calc(100% - 10px) 100%;
width: 220px;
height: 150px;
padding: 15px 15px 15px 25px;
display: flex;
flex-direction: column;
justify-content: space-between;
margin-bottom: 15px;
position: relative;
.flex_block{
display: flex;
align-items: center;
justify-content: space-between;
p:nth-child(1){
color: #e6f1ff;
}
}
.tt{
text-shadow: 2px 2px 4px #000000;
font-size: 18px;
font-weight: bold;
}
i{
display: block;
height: 100%;
width: 5px;
position: absolute;
top: 0;
left: 0;
}
&:nth-child(1){
i{
background-color: #00d6f8;
}
.flex_block{
p:nth-child(2){
color: #00d6f8;
}
}
}
&:nth-child(2){
i{
background-color: #f7cc3a;
}
.flex_block{
p:nth-child(2){
color: #f7cc3a;
}
}
}
&:nth-child(3){
i{
background-color: #04e26f;
}
.flex_block{
p:nth-child(2){
color: #04e26f;
}
}
}
}

.flex_main_right{
background: url("bg2.png") no-repeat center;
background-size: 100% 100%;
width: 220px;
height: 100px;
margin-bottom: 15px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-evenly;
p:nth-child(1){
color: #01d5f8;
font-size: 26px;
font-weight: bold;
span{
font-size: 14px;
}
}
}

}

+ 4
- 0
src/views/industry/comps/buttom/2/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

+ 12
- 0
src/views/industry/comps/left/bottom/1/index.html 查看文件

@@ -0,0 +1,12 @@
<Pannel title="产业类型分析" height="340" flexIble>
<div class="full">
<div class="buttom">
<Pie
:title="'总资产'"
:titleNum="countNum + '万元'"
:showTit="false"
:data="data"
></Pie>
</div>
</div>
</Pannel>

+ 37
- 0
src/views/industry/comps/left/bottom/1/index.js 查看文件

@@ -0,0 +1,37 @@
import Pannel from '@/components/pannelNew/index.vue';
import Pie from '@/components/charts/pie/index.vue';

export default {
components: {
Pie,
Pannel
},
props: {
data: {
type: Array,
default: function () {
return []
}
},
countNum: {
type: Number,
default: 0
}
},
data () {
return {
tabIndex: '1'
};
},
created () {
},
mounted () {
console.log(this.countNum)
},
methods: {
tabChange (info) {
//console.log(info);
this.tabIndex = info.id
}
}
};

+ 17
- 0
src/views/industry/comps/left/bottom/1/index.scss 查看文件

@@ -0,0 +1,17 @@
.full {
display: flex;
flex-direction: column;

.top {
height: 50px !important;
width: 100%;
display: flex !important;
align-items: center !important;
justify-content: flex-end;
}

.buttom {
flex: 1;
width: 100%;
}
}

+ 4
- 0
src/views/industry/comps/left/bottom/1/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

+ 12
- 0
src/views/industry/comps/left/middle/1/index.html 查看文件

@@ -0,0 +1,12 @@
<Pannel title="产业规模分析" height="300" flexIble>
<div class="full">
<div class="buttom">
<LinesCharts id="bar3"
:color="['#f7cc3a', '#01d5f8']"
:barBorderRadius="[15, 15, 15, 15]"
:data="data"
unit="单位:亩"
></LinesCharts>
</div>
</div>
</Pannel>

+ 32
- 0
src/views/industry/comps/left/middle/1/index.js 查看文件

@@ -0,0 +1,32 @@
import Pannel from '@/components/pannelNew/index.vue';
import LinesCharts from '@/components/charts/lines/index.vue';

export default {
components: {
LinesCharts,
Pannel
},
props: {
data: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
nysssbDeptList:[]
};
},
created () {
},
mounted () {

},
methods: {
tabChange (info) {
this.tabIndex = info.id
}
}
};

+ 17
- 0
src/views/industry/comps/left/middle/1/index.scss 查看文件

@@ -0,0 +1,17 @@
.full {
display: flex;
flex-direction: column;

.top {
height: 50px !important;
width: 100%;
display: flex !important;
align-items: center !important;
justify-content: flex-end;
}

.buttom {
flex: 1;
width: 100%;
}
}

+ 4
- 0
src/views/industry/comps/left/middle/1/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

+ 12
- 0
src/views/industry/comps/left/top/1/index.html 查看文件

@@ -0,0 +1,12 @@
<Pannel title="产业权属分布" height="300" flexIble>
<div class="full">
<div class="buttom">
<Bar
:color="['#f7cc3a', '#f7803f']"
:barBorderRadius="[15, 15, 15, 15]"
:data="data"
unit="单位:亩"
></Bar>
</div>
</div>
</Pannel>

+ 29
- 0
src/views/industry/comps/left/top/1/index.js 查看文件

@@ -0,0 +1,29 @@
import Pannel from '@/components/pannelNew/index.vue';
import Bar from '@/components/charts/bar-stack/index.vue';

export default {
components: {
Bar,
Pannel
},
props: {
data: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {

};
},
created () {
},
mounted () {

},
methods: {
}
};

+ 17
- 0
src/views/industry/comps/left/top/1/index.scss 查看文件

@@ -0,0 +1,17 @@
.full {
display: flex;
flex-direction: column;

.top {
height: 50px !important;
width: 100%;
display: flex !important;
align-items: center !important;
justify-content: flex-end;
}

.buttom {
flex: 1;
width: 100%;
}
}

+ 4
- 0
src/views/industry/comps/left/top/1/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

+ 13
- 0
src/views/industry/comps/right/bottom/1/index.html 查看文件

@@ -0,0 +1,13 @@
<Pannel title="产业权属分析" height="340" flexIble>
<div class="full">
<div class="buttom">
<Pie
id="bar6"
:title="'总资产'"
:titleNum="countNum + '万元'"
:showTit="false"
:data="data"
></Pie>
</div>
</div>
</Pannel>

+ 37
- 0
src/views/industry/comps/right/bottom/1/index.js 查看文件

@@ -0,0 +1,37 @@
import Pannel from '@/components/pannelNew/index.vue';
import Pie from '@/components/charts/pie/index.vue';

export default {
components: {
Pie,
Pannel
},
props: {
data: {
type: Array,
default: function () {
return []
}
},
countNum: {
type: Number,
default: 0
}
},
data () {
return {
tabIndex: '1'
};
},
created () {
},
mounted () {
console.log(this.countNum)
},
methods: {
tabChange (info) {
//console.log(info);
this.tabIndex = info.id
}
}
};

+ 17
- 0
src/views/industry/comps/right/bottom/1/index.scss 查看文件

@@ -0,0 +1,17 @@
.full {
display: flex;
flex-direction: column;

.top {
height: 50px !important;
width: 100%;
display: flex !important;
align-items: center !important;
justify-content: flex-end;
}

.buttom {
flex: 1;
width: 100%;
}
}

+ 4
- 0
src/views/industry/comps/right/bottom/1/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

+ 12
- 0
src/views/industry/comps/right/middle/1/index.html 查看文件

@@ -0,0 +1,12 @@
<Pannel title="产业经营分析" height="300" flexIble>
<div class="full">
<div class="buttom">
<LinesCharts id="bar5"
:color="['#f7cc3a', '#01d5f8']"
:barBorderRadius="[15, 15, 15, 15]"
:data="data"
unit="单位:亩"
></LinesCharts>
</div>
</div>
</Pannel>

+ 60
- 0
src/views/industry/comps/right/middle/1/index.js 查看文件

@@ -0,0 +1,60 @@
import Pannel from '@/components/pannelNew/index.vue';
import LinesCharts from '@/components/charts/lines/index.vue';

export default {
components: {
LinesCharts,
Pannel
},
props: {
data: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
chartData: [
{
name: 'A镇',
value: '100'
},
{
name: 'A镇',
value: '190'
},
{
name: 'A镇',
value: '180'
},
{
name: 'A镇',
value: '170'
},
{
name: 'A镇',
value: '160'
},
{
name: 'A镇',
value: '150'
},
{
name: 'A镇',
value: '240'
}
]
};
},
created () {
},
mounted () {
},
methods: {
tabChange (info) {
this.tabIndex = info.id
}
}
};

+ 17
- 0
src/views/industry/comps/right/middle/1/index.scss 查看文件

@@ -0,0 +1,17 @@
.full {
display: flex;
flex-direction: column;

.top {
height: 50px !important;
width: 100%;
display: flex !important;
align-items: center !important;
justify-content: flex-end;
}

.buttom {
flex: 1;
width: 100%;
}
}

+ 4
- 0
src/views/industry/comps/right/middle/1/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

+ 11
- 0
src/views/industry/comps/right/top/1/index.html 查看文件

@@ -0,0 +1,11 @@
<Pannel title="产业类型分布" height="300" flexIble>
<div class="full">
<div class="buttom">
<Bar id="bar4"
:color="['#f7cc3a', '#f7803f']"
:data="data"
unit="单位:亩"
></Bar>
</div>
</div>
</Pannel>

+ 57
- 0
src/views/industry/comps/right/top/1/index.js 查看文件

@@ -0,0 +1,57 @@
import Pannel from '@/components/pannelNew/index.vue';
import Bar from '@/components/charts/bar-stack/index.vue';

export default {
components: {
Bar,
Pannel
},
props: {
data: {
type: Array,
default: function () {
return []
}
}
},
data () {
return {
chartData: [
{
name: 'A镇',
value: '100'
},
{
name: 'A镇',
value: '190'
},
{
name: 'A镇',
value: '180'
},
{
name: 'A镇',
value: '170'
},
{
name: 'A镇',
value: '160'
},
{
name: 'A镇',
value: '150'
},
{
name: 'A镇',
value: '240'
}
]
};
},
created () {
},
mounted () {
},
methods: {
}
};

+ 17
- 0
src/views/industry/comps/right/top/1/index.scss 查看文件

@@ -0,0 +1,17 @@
.full {
display: flex;
flex-direction: column;

.top {
height: 50px !important;
width: 100%;
display: flex !important;
align-items: center !important;
justify-content: flex-end;
}

.buttom {
flex: 1;
width: 100%;
}
}

+ 4
- 0
src/views/industry/comps/right/top/1/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

+ 29
- 0
src/views/industry/data.js 查看文件

@@ -0,0 +1,29 @@
export const comps = {
'1': {
left: [{
name: 'Left11',
data: []
},{
name: 'Left21',
data: []
},{
countNum: 0,
name: 'Left31',
data: []
}],
right: [{
name: 'Right11',
data: []
},{
name: 'Right21',
data: []
},{
name: 'Right31',
data: []
}],
buttom: [{
name: 'Bottom1',
data: {}
}]
}
}

二進制
src/views/industry/icon/yellow.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.7 KiB

+ 17
- 0
src/views/industry/index.html 查看文件

@@ -0,0 +1,17 @@
<div class="page">
<MainGis @getData="getData"></MainGis>
<Header title="产业一张图" callBack></Header>
<!-- 项目初始化 -->
<div class="row">
<component :is="item.name" v-for="(item, index) in currentComp.buttom" :key="index" :data="item.data"></component>
</div>
<div class="left_side col space_between zIndextop">
<component :is="item.name" v-for="(item, index) in currentComp.left" :key="index" :data="item.data" :countNum="item.name == 'Left31'?item.countNum:0"></component>
</div>
<div class="right_side col space_between zIndextop">
<component :is="item.name" v-for="(item, index) in currentComp.right" :key="index" :data="item.data"></component>
</div>
<Left></Left>
<Right></Right>
<Footer></Footer>
</div>

+ 148
- 0
src/views/industry/index.js 查看文件

@@ -0,0 +1,148 @@
import Header from '@/components/headerNew/index.vue';
import Footer from '@/components/footer/index.vue';
import Left from '@/components/left/index.vue';
import Right from '@/components/right/index.vue';
import Tabs from '@/components/tabs/index.vue';

import Left11 from './comps/left/top/1/index.vue';
import Left21 from './comps/left/middle/1/index.vue';
import Left31 from './comps/left/bottom/1/index.vue';
import Right11 from './comps/right/top/1/index.vue';
import Right21 from './comps/right/middle/1/index.vue';
import Right31 from './comps/right/bottom/1/index.vue';
import Bottom1 from './comps/buttom/1/index.vue';
import Bottom2 from './comps/buttom/2/index.vue';

import Popover from './popover/index.vue';
import MainGis from './main-gis/index.vue';

import { comps } from './data.js'

import { getStatistic } from "@/api/index";
import { getInfo } from "@/api/login";
import {mapGetters} from "vuex";

export default {
components: {
MainGis,
Header,
Footer,
Left,
Right,
Tabs,
Left11,
Left21,
Left31,
Right11,
Right21,
Right31,
Popover,
Bottom2,
Bottom1
},
data () {
return {
comps,
tab: '1',
allData: {},
deptIdPage:100
};
},
watch: {
// year: {
// handler () {
// this.getData(this.deptIdPage);
// },
// immediate: true, // 立即执行
// },
// deptId: {
// handler () {
// this.getData(this.deptIdPage);
// },
// immediate: true, // 立即执行
// }
},
computed: {
...mapGetters(['year', 'deptId']),
currentComp: function () {
return this.comps[this.tab]
}
},
created () {
getInfo().then(res => {
this.deptIdPage = res.user.deptId;
this.getData(res.user.deptId);
})
},
mounted () {

},
methods: {
getData(deptId){
this.currentComp.right[0].data = [];
this.currentComp.right[1].data = [];
this.currentComp.right[2].data = [];

this.currentComp.left[0].data = [];
this.currentComp.left[1].data = [];
this.currentComp.left[2].data = [];
getStatistic({deptId: deptId}).then((response) => {
response.data.jtzyzcDeptList.map(rr => {
this.currentComp.right[0].data.push({
name: rr.deptName,
value: rr.ydmj
})
})
response.data.nysssbDeptList.map(rr => {
this.currentComp.right[1].data.push({
name: rr.deptName,
value: rr.ydmj
})
})
response.data.nhzcDeptList.map(rr => {
this.currentComp.right[2].data.push({
name: rr.deptName,
value: rr.ydmj
})
})

response.data.jtzyzcTypeList.map(rr => {
this.currentComp.left[0].data.push({
name: rr.threeDetailType,
value: rr.ydmj
})
})
response.data.nysssbTypeList.map(rr => {
this.currentComp.left[1].data.push({
name: rr.threeDetailType,
value: rr.ydmj
})
})
response.data.nhzcTypeList.map(rr => {
this.currentComp.left[2].data.push({
name: rr.threeDetailType,
value: rr.ydmj,
unit: '万元'
})
})

this.currentComp.buttom[0].data = {
jtzyzc: response.data.jtzyzc,//集体资源资产
nysssb: response.data.nysssb,//农业设施设备
nhzc: response.data.nhzc,
}

this.currentComp.buttom[1].data = {
xy23: response.data.xy23,
xy24: response.data.xy24
}

console.log(this.currentComp)
this.allData = response.data;
});
},
tabChange (info) {
this.tab = info.id;
}
}
};

+ 12
- 0
src/views/industry/index.scss 查看文件

@@ -0,0 +1,12 @@
.map {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
}
.buttom_side {
top: 100px;
bottom: auto;
left: 685px;
}

+ 4
- 0
src/views/industry/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

二進制
src/views/industry/main-gis/close.png 查看文件

Before After
Width: 10  |  Height: 10  |  Size: 352 B

+ 32
- 0
src/views/industry/main-gis/data.js 查看文件

@@ -0,0 +1,32 @@
export const comps = {
'1': {
'left': [
'Left11',
'Left21',
'Left31',
],
'right': [
'Right11',
'Right21',
'Right31',
],
'buttom': [
'Bottom1'
]
},
'2': {
'left': [
'Left12',
'Left22',
'Left32'
],
'right': [
'Right12',
'Right22',
'Right32'
],
'buttom': [
'Bottom2'
]
}
}

二進制
src/views/industry/main-gis/icon/blue.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.3 KiB

二進制
src/views/industry/main-gis/icon/cyan.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.3 KiB

二進制
src/views/industry/main-gis/icon/gc_icon.png 查看文件

Before After
Width: 54  |  Height: 63  |  Size: 3.2 KiB

二進制
src/views/industry/main-gis/icon/green.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.3 KiB

二進制
src/views/industry/main-gis/icon/ld_icon.png 查看文件

Before After
Width: 54  |  Height: 63  |  Size: 3.2 KiB

二進制
src/views/industry/main-gis/icon/ljd_icon.png 查看文件

Before After
Width: 54  |  Height: 63  |  Size: 3.3 KiB

二進制
src/views/industry/main-gis/icon/map_icon_1.png 查看文件

Before After
Width: 50  |  Height: 56  |  Size: 4.1 KiB

二進制
src/views/industry/main-gis/icon/map_icon_2.png 查看文件

Before After
Width: 50  |  Height: 56  |  Size: 3.9 KiB

二進制
src/views/industry/main-gis/icon/map_icon_3.png 查看文件

Before After
Width: 50  |  Height: 56  |  Size: 4.2 KiB

二進制
src/views/industry/main-gis/icon/map_icon_4.png 查看文件

Before After
Width: 50  |  Height: 56  |  Size: 4.1 KiB

二進制
src/views/industry/main-gis/icon/map_icon_5.png 查看文件

Before After
Width: 50  |  Height: 56  |  Size: 3.9 KiB

二進制
src/views/industry/main-gis/icon/map_icon_6.png 查看文件

Before After
Width: 50  |  Height: 56  |  Size: 3.9 KiB

二進制
src/views/industry/main-gis/icon/map_icon_7.png 查看文件

Before After
Width: 50  |  Height: 56  |  Size: 3.8 KiB

二進制
src/views/industry/main-gis/icon/pink.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.3 KiB

二進制
src/views/industry/main-gis/icon/red.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.3 KiB

二進制
src/views/industry/main-gis/icon/sxt_icon.png 查看文件

Before After
Width: 54  |  Height: 62  |  Size: 3.3 KiB

二進制
src/views/industry/main-gis/icon/wsz_icon.png 查看文件

Before After
Width: 54  |  Height: 63  |  Size: 3.4 KiB

二進制
src/views/industry/main-gis/icon/yellow copy.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.7 KiB

二進制
src/views/industry/main-gis/icon/yellow.png 查看文件

Before After
Width: 19  |  Height: 31  |  Size: 1.7 KiB

二進制
src/views/industry/main-gis/icon/zc_icon copy.png 查看文件

Before After
Width: 54  |  Height: 63  |  Size: 3.8 KiB

二進制
src/views/industry/main-gis/icon/zc_icon.png 查看文件

Before After
Width: 54  |  Height: 63  |  Size: 3.8 KiB

二進制
src/views/industry/main-gis/icon_excel.jpg 查看文件

Before After
Width: 70  |  Height: 70  |  Size: 3.9 KiB

二進制
src/views/industry/main-gis/icon_pdf.jpg 查看文件

Before After
Width: 70  |  Height: 70  |  Size: 4.6 KiB

二進制
src/views/industry/main-gis/icon_rest.jpg 查看文件

Before After
Width: 70  |  Height: 70  |  Size: 2.1 KiB

二進制
src/views/industry/main-gis/icon_word.jpg 查看文件

Before After
Width: 70  |  Height: 70  |  Size: 4.5 KiB

二進制
src/views/industry/main-gis/icon_zip.jpg 查看文件

Before After
Width: 70  |  Height: 70  |  Size: 3.3 KiB

+ 103
- 0
src/views/industry/main-gis/index.html 查看文件

@@ -0,0 +1,103 @@
<div class="map border" id="map2">
<!-- <Legend class="legend_pos">-->
<!-- <div class="legend_full">-->
<!-- <div v-for="item in LegendData" class="legend_item">-->
<!-- <div class="icon" :style="[item.iconStyle]"></div>-->
<!-- <p>{{item.name}}</p>-->
<!-- </div>-->
<!-- </div>-->
<!-- </Legend>-->
<div v-if="false" class="gl_pop_cash pop_statistical_desc">
<div class="head_main">
<div class="title">{{resourceDetail.name}}详情</div>
<div class="close" @click="showResourceDetail = false"></div>
<div class="xs_main">
<div class="block">
<div class="point p1"></div>
<div class="point p2"></div>
<div class="point p3"></div>
</div>
<div class="xs_x"></div>
</div>
</div>
<div class="echarts_main">
<div>
<p>资源编码</p>
<p>{{resourceDetail.code}}</p>
</div>
<div>
<p>资源名称</p>
<p>{{resourceDetail.name}}</p>
</div>
<div>
<p>资源类型</p>
<p>{{resourceDetail.resourceSort}}</p>
</div>
<div>
<p>总面积(亩)</p>
<p>{{resourceDetail.totalArea}}</p>
</div>
<div>
<p>资产状态</p>
<p>{{resourceDetail.status}}</p>
</div>
<div>
<p>使用情况</p>
<p>{{resourceDetail.useType}}</p>
</div>
<div>
<p>坐落位置</p>
<p>{{resourceDetail.location}}</p>
</div>
<div>
<p>东至</p>
<p>{{resourceDetail.east}}</p>
</div>
<div>
<p>西至</p>
<p>{{resourceDetail.west}}</p>
</div>
<div>
<p>南至</p>
<p>{{resourceDetail.south}}</p>
</div>
<div>
<p>北至</p>
<p>{{resourceDetail.north}}</p>
</div>
<div>
<p>备注</p>
<p>{{resourceDetail.remark}}</p>
</div>
<div>
<p>附件</p>
<p>
<block v-for="(item,index) in resourceDetail.fileList">
<a :href="item.urlApi" v-if="item.type != 'image'">
<img :src="item.url" style="width: 3vw;height: 3vw;margin-right: 0.5vw;" alt="">
</a>
<img v-else :src="item.url" style="width: 3vw;height: 3vw;margin-right: 0.3vw;" alt="" @click="openImage(item.url)">
</block>
</p>
</div>
</div>

</div>
<div class="mask" style="position: absolute; width: 100%; height: 100%;pointer-events: none;"></div>
<Popover v-if="showResourceDetail" :data="resourceDetail" @closePopover="closePopover" @openImage="openImage"></Popover>
<div class="imgBox" v-if="showImg">
<div class="box_bg" @click="showImg = false"></div>
<img :src="fileUrl" alt="">
</div>
<!--选择地址-->
<div class="select_address">
<div class="dot left"></div>
<div class="dot right"></div>
<el-cascader :popper-append-to-body="false" :options="addrOptions" v-model="addrText" :props="deptTreeProps" popper-class="header-cascader-drop" @change="selectAddress" ref="cascader">
<template slot-scope="{ node, data }">
<span>{{ data.label }}</span>
<span v-if="!node.isLeaf"> ({{ data.children.length }}) </span>
</template>
</el-cascader>
</div>
</div>

+ 516
- 0
src/views/industry/main-gis/index.js 查看文件

@@ -0,0 +1,516 @@

import GisUtils from '@/utils/gis.js';
import {
fromLonLat
} from 'ol/proj'
import { getPermanentListByDeptId, listPermanent } from "@/api/asset/permanent.js";
import { getInfo } from "@/api/login";
import { getResourceListByDeptId, listResource, attachmentQuery } from "@/api/asset/resource.js";
import Legend from '@/components/legend/index.vue';
import { attachmentList } from "@/api/common/uploadAttachment.js";
import { treeselect, getDept, listDeptExcludeChild } from "@/api/system/dept";
import { getConfigKey } from "@/api/system/config";
import { treeselectByDeptId } from "@/api/system/dept";
import { getThreeList } from "@/api/index";

import Popover from '../popover/index.vue';
let gis = null;
export default {
components: {
Legend,
Popover
},
data () {
return {
yellowIcon: require('./icon/yellow.png'),
//三务公开请求参数
queryParams: {
pageNum: 1,
pageSize: 10,
title: null,
openType: '1',
detailedCategoriesType: null,
villageType: null,
openItems: null,
meetingOpenType: null,
deptId: null,
isWechat: null,
status: null,
translate_dict: 1,
},
addrText: [100,],
deptTreeProps: {
checkStrictly: true,
},
addrOptions: [],
resourceDetail: {},
//资产信息详情弹窗
showResourceDetail: false,
mapGeoServerUrl: "", // geoserver地址
mapBorder: "", // 地图边界
deptLayer: "", // 坐标点图层
countyBorderLayerName: "", // 区县边界图层名称
townBorderLayerName: "", // 乡镇边界图层名称
villageBorderLayerName: "", // 村边界图层名称
groupBorderLayerName: "", // 组边界图层名称
LegendData: [
{
iconStyle: {
background: 'rgba(38,252,128,0.45)',
borderColor: '#26FC80',
border: '2px solid #26FC80'
},
name: '自用'
},
{
iconStyle: {
background: 'rgba(232,246,0,0.45)',
borderColor: '#E8F600',
border: '2px solid #E8F600'
},
name: '闲置'
},
{
iconStyle: {
background: 'rgba(16,252,252,0.45)',
borderColor: '#10FCFC',
border: '2px solid #10FCFC'
},
name: '出租'
},
{
iconStyle: {
background: 'rgba(198,0,255,0.45)',
borderColor: '#C600FF',
border: '2px solid #C600FF'
},
name: '其他'
}
],
threeAssetTypeOptions: [],
threeJtzyzcTypeOptions: [],
threeNysssbTypeOptions: [],
threeNhTypeOptions: [],
natureOwnershipTypeOptions: [],
sysYesNoOptions: [],
fileList: [],
fileUrl:'',
showImg:false,
};
},
watch: {
'queryParams.deptId': {
handler: function () {
this.commitDept(this.queryParams.deptId);
},
immediate: true, // 立即执行

},
deptLength: {
handler: function () {
//console.log(this.deptLength);
this.commitDeptLength(this.deptLength);
},
immediate: true, // 立即执行
}
},
computed: {
},
created () {
this.getDicts("three_asset_type").then((response) => {
this.threeAssetTypeOptions = response.data;
});
this.getDicts("three_jtzyzc_type").then((response) => {
this.threeJtzyzcTypeOptions = response.data;
});
this.getDicts("three_nysssb_type").then((response) => {
this.threeNysssbTypeOptions = response.data;
});
this.getDicts("three_nh_type").then((response) => {
this.threeNhTypeOptions = response.data;
});
this.getDicts("nature_ownership").then((response) => {
this.natureOwnershipTypeOptions = response.data;
});
this.getDicts("sys_yes_no").then((response) => {
this.sysYesNoOptions = response.data;
});
this.getGeoServerUrl();
},
mounted () {
getInfo().then(res => {
treeselectByDeptId({ deptId: res.user.deptId }).then((resp) => {
this.addrOptions = resp.data;
this.headerTitle = res.user.deptName + '阳光村务一张图';
//loginDeptId
listDeptExcludeChild(res.user.deptId).then((resp) => {
//loginDeptId
let deptOptions = [res.user.deptId];
resp.data.map(resm => {
if (res.user.parentDeptName == resm.deptName) {
deptOptions.unshift(resm.deptId)
deptOptions.unshift(resm.parentId)
}
})
this.addrText = deptOptions;
});
this.queryParams.deptId = res.user.deptId;//loginDeptId
//列表请求
// this.getAllList(res.user.deptId);
// 加载地图
this.initMap(res.user.deptId);

// 获取村边界的图层名称
this.getVillageBorderLayerName();
});
})
// treeselect().then((resp) => {
// this.addrOptions = resp.data
// getInfo().then(res => {
// this.initMap(res.user.loginDeptId);
// // 加载地图
// })
// });


},
methods: {
commitDept (deptId) {
this.$store.commit('SET_DEPTID', deptId);
},
commitDeptLength (length) {
this.$store.commit('SET_DEPTIDLENGTH', length);
},
commitYear (year) {
this.$store.commit('SET_YEAR', year);
},
// 获取村边界的图层名称
getVillageBorderLayerName () {
getConfigKey("geoserver.layer.villageBorder").then(response => {
this.villageBorderLayerName = response.msg;
});
},
// 添加区县边界
addCountyBorder (deptIds) {
gis.addImageLayer(this.mapGeoServerUrl, this.countyBorderLayerName, deptIds)
},
// 添加乡镇边界
addTownBorder (deptIds) {
gis.addImageLayer(this.mapGeoServerUrl, this.townBorderLayerName, deptIds)
},
// // 添加村边界
// addVillageBorder (deptIds) {
// gis.addImageLayer(this.mapGeoServerUrl, this.villageBorderLayerName, deptIds)
// },
// // 获取资源列表
// getResourceList (deptId) {
// getResourceListByDeptId(deptId).then(response => {
// if (response.data && response.data.length > 0) {
// this.addResourceLayer(response.data);
// }
// });
// },
// 获取geoserver的地址
getGeoServerUrl () {
// 获取geoserver的地址
getConfigKey("system.geoServer.url").then(response => {
this.mapGeoServerUrl = response.msg;
});
// 获取区县边界图层名称
getConfigKey("geoserver.layer.countyBorder").then(response => {
this.countyBorderLayerName = response.msg;
});
// 获取乡镇边界的图层名称
getConfigKey("geoserver.layer.townBorder").then(response => {
this.townBorderLayerName = response.msg;
});
// 获取村边界的图层名称
getConfigKey("geoserver.layer.villageBorder").then(response => {
this.villageBorderLayerName = response.msg;
});
// 获取组边界的图层名称
getConfigKey("geoserver.layer.groupBorder").then(response => {
this.groupBorderLayerName = response.msg;
});
},
selectAddress (value) {
const deptId = value[value.length - 1];
this.queryParams.deptId = deptId;
this.getAllList(deptId);

gis.getMapContainer().removeLayer(this.villageBorder);
this.villageBorder = '';
// 添加村边界
this.addVillageBorder(deptId);
gis.getMapContainer().removeLayer(this.permanentLayer);
this.permanentLayer = '';
// 获取资产列表
this.getPermanentList(deptId);
gis.getMapContainer().removeLayer(this.resourceLayer);
this.resourceLayer = '';
// 获取资源列表
this.getResourceList(deptId);
let node = this.$refs["cascader"].panel.getNodeByValue(value);
const dept = node.data;
const deptData = {
deptId: dept.id,
deptName: dept.label,
lat: dept.lat,
lng: dept.lng,
deptLevel: dept.deptLevel,
orgCode: dept.orgCode
};
let deptList = [];
deptList.push(deptData);
gis.getMapContainer().removeLayer(this.deptLayer);
this.deptLayer = '';
// 添加坐标点图层
this.addDeptLayer(deptList, 'yellow.png');
gis.getMapContainer().getView().animate({
// 只设置需要的属性即可
center: fromLonLat([dept.lng, dept.lat]), // 中心点
duration: 500, // 缩放持续时间,默认不需要设置
});
},
// 添加村边界
addVillageBorder (deptIds) {
gis.addImageLayer(this.mapGeoServerUrl, this.villageBorderLayerName, deptIds)
},
// 加载地图
initMap (deptId) {
gis = new GisUtils('map2')
// // 获取资源列表
this.getResourceList(deptId);
gis.addTianDiTuLayer()
gis.addAnnotationLayer()
let dept2 = this.addrOptions[0];
//console.log(this.addrOptions, 'this.addrOptions');
console.log(dept2.deptLevel)
if (dept2.deptLevel === '5') {
// 登录身份为市级领导
this.userRole = 'cityLeader';
this.cityId = dept.id;
this.currentDeptLevel = '5';
// 添加区县边界
this.addCountyBorder(dept.children.map(item => item.id));
} else if (dept2.deptLevel === '4') {
// 登录身份为县级领导
this.userRole = 'countyLeader';
this.countyId = dept2.id;
this.currentDeptLevel = '4';
// 添加乡镇边界
this.addTownBorder(dept2.children.map(item => item.id));
gis.getView().setZoom(13);
} else if (dept2.deptLevel === '3') {
// 登录身份为镇级领导
this.userRole = 'townLeader';
this.townId = dept2.id;
this.currentDeptLevel = '3';
// 添加村边界
this.addVillageBorder(dept2.children.map(item => item.id));
gis.getView().setZoom(13);
}
// 添加坐标点图层
if (dept2.children) {
this.addDeptLayer(dept2.children);
}

// gis.getMapContainer().getView().setCenter(fromLonLat([dept2.lng, dept2.lat]));

gis.getMapContainer().on("click", (evt) => {
let feature = gis.getMapContainer().forEachFeatureAtPixel(
evt.pixel,
(feature) => feature
);
if (feature) {
// 镇级:加载村级坐标点
if (feature.get('deptLevel') === '3') {
gis.getMapContainer().getView().animate({
center: fromLonLat([feature.get('lng'), feature.get('lat')]), // 中心点
zoom: 12, // 缩放级别
rotation: undefined, // 缩放完成view视图旋转弧度
duration: 1000, // 缩放持续时间,默认不需要设置
});
} else {


feature.values_.detail.threeDetailType =
feature.values_.detail.threeAssetType == '1' ?
this.selectDictLabel(this.threeJtzyzcTypeOptions, feature.values_.detail.threeDetailType):
feature.values_.detail.threeAssetType == '2' ?
this.selectDictLabel(this.threeNysssbTypeOptions, feature.values_.detail.threeDetailType):
feature.values_.detail.threeAssetType == '3' ?
this.selectDictLabel(this.threeNhTypeOptions, feature.values_.detail.threeDetailType):''
;
feature.values_.detail.threeAssetType = this.selectDictLabel(this.threeAssetTypeOptions, feature.values_.detail.threeAssetType);
feature.values_.detail.natureOwnership = this.selectDictLabel(this.natureOwnershipTypeOptions, feature.values_.detail.natureOwnership);
feature.values_.detail.qssfczzy = this.selectDictLabel(this.sysYesNoOptions, feature.values_.detail.qssfczzy);
feature.values_.detail.sfwtdg = this.selectDictLabel(this.sysYesNoOptions, feature.values_.detail.sfwtdg);
feature.values_.detail.sfnzcsy = this.selectDictLabel(this.sysYesNoOptions, feature.values_.detail.sfnzcsy);

this.listDialogHidden('detail');
this.openResourceDialog(feature.values_.detail);
}
}
});

// 缩小地图,重新加载页面
gis.getMapContainer().on("moveend", (evt) => {
const zoom = gis.getMapContainer().getView().getZoom();
if (this.villagePointLayer && zoom < 10.5) {
gis.getMapContainer().removeLayer(this.villagePointLayer);
this.villagePointLayer = "";
}
});
},
listDialogHidden (type) {
if (type == 'detail') {
//合同信息详情弹窗
this.showInfoDetail = false;
//资源信息详情弹窗
this.showResourceDetail = false;
//资产信息详情弹窗
this.showPermanentDetail = false;
//农业补贴详情弹窗
this.showSubsidyFundsDetail = false;
//重大事项详情弹窗
this.showMajorEventDetail = false;
//零工公开详情弹窗
this.showTempWorkerDetail = false;
//三务公开详情弹窗
this.showAffairsDetail = false;
} else {
//三务公开列表弹窗
this.showAffairs = false;
//零工公开列表弹窗
this.showTempWorker = false;
//重大事项列表弹窗
this.showMajorEvent = false;
//农业补贴列表弹窗
this.showSubsidyFunds = false;
//资产信息列表弹窗
this.showPermanent = false;
//资源信息列表弹窗
this.showResource = false;
//合同信息列表弹窗
this.showInfo = false;
//合同信息详情弹窗
this.showInfoDetail = false;
//资源信息详情弹窗
this.showResourceDetail = false;
//资产信息详情弹窗
this.showPermanentDetail = false;
//农业补贴详情弹窗
this.showSubsidyFundsDetail = false;
//重大事项详情弹窗
this.showMajorEventDetail = false;
//零工公开详情弹窗
this.showTempWorkerDetail = false;
//三务公开详情弹窗
this.showAffairsDetail = false;
}

},
openResourceDialog (data) {
data.fileList = [];
console.log(data)
let parmasData = {
tableId: data.id,
tableName: 't_asset_three',
bizPath: 'asset',
};
attachmentQuery(parmasData).then((res) => {
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("./icon_excel.jpg");
type = 'excel';
} else if (ext == "doc" || ext == "docx") {
urls = require("./icon_word.jpg");
type = 'word';
} else if (ext == "pdf") {
urls = require("./icon_pdf.jpg");
type = 'pdf';
} else if (ext == "zip") {
urls = require("./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.showResourceDetail = true;
this.resourceDetail = data;
}
});
},
// 创建矢量数据源
addDeptLayer (nextDeptSet, locationIcon) {
//console.log('nextDeptSet', nextDeptSet);
let features = [];
nextDeptSet.forEach(item => {
let fs = gis.getFeature(item, this.yellowIcon)
features.push(fs);
});
gis.getVectorLayerByFs(features)
// gis.mapSetFit(features)
},
// 获取资源列表
getResourceList (deptId) {
getThreeList({ deptId: deptId }).then(response => {
if (response.rows && response.rows.length > 0) {
this.addResourceLayer(response.rows);
}
});
// getResourceListByDeptId(deptId).then(response => {
// if (response.data && response.data.length > 0) {
// this.addResourceLayer(response.data);
// }
// });
},
// 添加资源图层
addResourceLayer (resourceList) {
let features = [];
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);
}
});
gis.getVectorLayerByFs(features)
gis.mapSetFit(features)
},
// 获取资产列表
getPermanentList (deptId) {
getThreeList({ deptId: deptId }).then(response => {
if (response.data && response.data.length > 0) {
this.addPermanentLayer(response.data);
}
});
},
getAllList (deptId) {
this.$emit('getData',deptId);
},
closePopover(){
this.showResourceDetail = false;
},
openImage(url){
this.fileUrl = url;
this.showImg = true;
}
}
};

+ 277
- 0
src/views/industry/main-gis/index.scss 查看文件

@@ -0,0 +1,277 @@
.map {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;

.legend_pos {
z-index: 21 !important;
position: absolute;
top: 100px;
right: 480px;

.legend_full {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;

.legend_item {
display: flex;
justify-content: center;
// border: 1px solid red;
align-items: center;

.icon {
width: 16px;
height: 16px;
border-radius: 2px;
margin-right: 10px;
}
}

}
}

.mask {
z-index: 1;
width: 100%;
height: 100%;
box-shadow: inset 450px 0px 350px 10px RGBA(3, 12, 27, 1), inset -450px 0 350px 10px RGBA(3, 12, 27, 1); // 左
/* 四周黑色 */
pointer-events: none;
/* 允许地图事件穿透 */
}
}


//选择地址
.select_address {
width: 300px;
position: absolute;
left: 30px;
top: 40px;
z-index: 302;

box-shadow: inset 0 0 10px 2px rgba(27, 123, 204, 0.8); /* 添加内发光效果 */

.dot{
width: 0.46vh;
height: 0.46vh;
background: #0bf1cc;
border-radius: 50%;
position: absolute;
top: 2vh;
&.left{left:1vw}
&.right{right: 1vw;}
}
// <div class="dot left"></div>
// <div class="dot right"></div>
::v-deep {
.el-input--suffix {
// background: url('../../../../assets/images/dataScreen/bigDataMonitoring2/stockCooperative/addText_bg.png') center center no-repeat !important;
background-size: 100% 100% !important;
width: 280px;

.el-input__inner {
background: none !important;
border: 0 none !important;
color: #a7dbff;
font-size: 1.66vh;
text-align: center;
padding: 0;
}

.el-input__icon {
display: none !important;
}
}
}
}

.gl_pop_cash {
background: rgba(10, 25, 47, 0.8);
position: absolute;
border: 1px solid #063a95;
border-left: 0.15vw solid #357dfa;
padding: 0 1vw;
z-index: 11;

.head_main {
height: 4.62vh;
padding-top: 0.55vh;
display: flex;
align-items: center;
position: relative;
justify-content: space-between;

.title {
color: #ffad00;
font-size: 1.66vh;
}

.close {
background: url('./close.png');
// border: 1px solid red;
background-size: 100% 100%;
width: 1.48vh;
height: 1.48vh;
cursor: pointer;
}

.xs_main {
height: 0.55vh;
position: absolute;
width: 100%;
bottom: -0.55vh;
display: flex;
align-items: center;

.block {
width: 2.34vw;
display: flex;

.point {
width: .55vh;
height: .55vh;
margin-right: 0.36vw;

&.p1 {
background: rgba(53, 125, 250, 1)
}

&.p2 {
background: rgba(53, 125, 250, .7)
}

&.p3 {
background: rgba(53, 125, 250, .4)
}
}

}

.xs_x {
height: 1px;
flex: 1;
background: #214284;
}
}
}

.echarts_main {
.headers {
height: 3.33vh;
font-size: 1.48vh;
color: #0befca;
text-align: center;
display: flex;
justify-content: center;
align-items: center;
margin-right: 0.53vw;
background: rgba(11, 239, 202, .2);
margin-bottom: 0.9vh
}

.desc_main {
overflow-y: scroll;
padding-right: 0.33vw;

.analysisTable_list {
margin: 0;
padding: 0;
flex: 1;
display: flex;
flex-direction: column;

.flex_item {
cursor: pointer;
list-style: none;
margin: 0;
display: flex;
justify-content: center;
align-items: center;
text-align: center;
color: #fff;
font-size: 1.29vh;
position: relative;
height: 3.2vh;

&:nth-child(2n) {
background: rgba(53, 125, 250, .1);
}
}
}
}
}

}

.pop_statistical_desc {
width: 20.2vw;
margin: 0;
right: 23vw;
top: 35vh;
padding-bottom: 1.04vw !important;

.head_main {
.title {
color: #fff;
}
}

.echarts_main {
margin-top: 1.66vh;

div {
display: flex;
align-items: center;

&:nth-child(even) {
background: rgba(32, 89, 188, 0.2);
}

p {
&:nth-child(1) {
width: 8vw;
padding-left: 1vw;
flex-shrink: 0;
}

&:nth-child(2) {
color: #ffad00;
}

margin: 0;
color: #ffffff;
font-size:1.33vh;
line-height: 3.92vh;
}
}
}
}


.imgBox{
position: absolute;
left: 0;
top: 0;
z-index: 999999;
width: 100vw;
height: 100%;
.box_bg{
background-color: rgba(0,0,0,0.5);
width: 100%;
height: 100%;
}
img{
height: 60vh;
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
}
}


+ 30
- 0
src/views/industry/main-gis/index.vue 查看文件

@@ -0,0 +1,30 @@
<style lang="scss">
.el-cascader__dropdown{
background: rgba(1,11,34,.6);
border:1px solid #0096ff;
li{
color: #fff;
}
}
.header-cascader-drop{
background: rgba(1,11,34,.6);
border:1px solid #0096ff;
.el-cascader-panel{
.el-scrollbar {
color: #fff;
.el-cascader-menu__wrap{
.el-scrollbar__view{
li{
&:hover{
color: #1890ff;
}
}
}
}
}
}
}
</style>
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped></style>

二進制
src/views/industry/popover/icon.png 查看文件

Before After
Width: 46  |  Height: 52  |  Size: 2.6 KiB

+ 90
- 0
src/views/industry/popover/index.html 查看文件

@@ -0,0 +1,90 @@
<div class="popover_main">
<h1><i></i>{{data.zcmc}}<span @click="closePopover">×</span></h1>
<div>
<p>资产编码</p>
<p>{{data.zcdm}}</p>
<p>资产名称</p>
<p>{{data.zcmc}}</p>
</div>
<div>
<p>三清类型</p>
<p>{{data.threeAssetType}}</p>
<p>资产类型</p>
<p>{{data.threeDetailType}}</p>
</div>
<div>
<p>用地面积(亩)</p>
<p>{{data.ydmj}}</p>
<p>建筑面积(㎡)</p>
<p>{{data.jzmj}}</p>
</div>
<div>
<p>所在组</p>
<p>{{data.szz}}</p>
<p>权属性质</p>
<p>{{data.natureOwnership}}</p>
</div>
<div>
<p>权属是否存在争议</p>
<p>{{data.qssfczzy}}</p>
<p>权属主体</p>
<p>{{data.qszt}}</p>
</div>
<div>
<p>是否委托代管</p>
<p>{{data.sfwtdg}}</p>
<p>联系电话</p>
<p>{{data.lxdh}}</p>
</div>
<div>
<p>23年盘活方式</p>
<p>{{data.phfs23}}</p>
<p>23年效益(万元)</p>
<p>{{data.xy23}}</p>
</div>
<div>
<p>24年盘活方式</p>
<p>{{data.phfs24}}</p>
<p>24年效益(万元)</p>
<p>{{data.xy24}}</p>
</div>
<div>
<p>盘活情况</p>
<p>{{data.phqk}}</p>
<p>资产闲置原因</p>
<p>{{data.xzyy}}</p>
</div>
<div>
<p>是否能正常使用</p>
<p>{{data.sfnzcsy}}</p>
<p>完善后使用</p>
<p>{{data.wshsy}}</p>
</div>
<div>
<p>不能使用</p>
<p>{{data.bnsy}}</p>
<p>盘活措施</p>
<p>{{data.phcs}}</p>
</div>
<div>
<p>盘活时限</p>
<p>{{data.phsx}}</p>
<p>资产统计年度</p>
<p>{{data.zctjnd}}</p>
</div>
<div>
<p>备注</p>
<p style="width: 75%;">{{data.bz}}</p>
</div>
<div style="justify-content: left">
<p>附件</p>
<p style="width: 75%;">
<block v-for="(item,index) in data.fileList">
<a :href="item.urlApi" v-if="item.type != 'image'">
<img :src="item.url" style="width: 3vw;height: 3vw;margin-right: 0.5vw;" alt="">
</a>
<img v-else :src="item.url" style="width: 3vw;height: 3vw;margin-right: 0.3vw;" alt="" @click="openImage(item.url)">
</block>
</p>
</div>
</div>

+ 26
- 0
src/views/industry/popover/index.js 查看文件

@@ -0,0 +1,26 @@
export default {
props: {
data: {
type: Object,
default: function () {
return {}
}
}
},
data () {
return {
};
},
created () {
},
mounted () {
},
methods: {
closePopover(){
this.$emit('closePopover');
},
openImage(url){
this.$emit('openImage', url);
}
}
};

+ 46
- 0
src/views/industry/popover/index.scss 查看文件

@@ -0,0 +1,46 @@
.popover_main{
width: 800px;
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50% , -50%);
background-color: rgba(11,36,79,.9);
z-index: 99;
padding-bottom: 25px;
border: 1px solid #0b61b7;
h1{
background: url("./tit_bg.png") no-repeat center;
background-size: 100% 100%;
padding: 10px 25px 10px 10px;
display: flex;
align-items: center;
font-size: 18px;
font-weight: initial;
i{
display: block;
width: 25px;
height: 25px;
background: url("./icon.png") no-repeat center;
background-size: 200% 200%;
}
span{
margin-left: auto;
font-size: 24px;
cursor: pointer;
}
}
div{
display: flex;
//justify-content: space-between;
p{
width: 25%;
padding: 10px 25px;
&:nth-child(odd){
color: #80aacf;
};
&:nth-child(even){
color: #01d5f8;
}
}
}
}

+ 4
- 0
src/views/industry/popover/index.vue 查看文件

@@ -0,0 +1,4 @@
<template src='./index.html'/>
<script lang='js' src='./index.js'></script>
<style lang='scss' src='./index.scss' scoped>
</style>

二進制
src/views/industry/popover/tit_bg.png 查看文件

Before After
Width: 587  |  Height: 34  |  Size: 11 KiB

二進制
src/views/nav/5.png 查看文件

Before After
Width: 240  |  Height: 277  |  Size: 97 KiB

+ 5
- 0
src/views/nav/data.js 查看文件

@@ -21,6 +21,11 @@ export default [
icon: require('./4.png'),
path: '/sanqing',
name: '三清一张图'
},
{
icon: require('./5.png'),
path: '/industry',
name: '产业一张图'
}
]
]

+ 6
- 4
src/views/property/api/index.js 查看文件

@@ -226,10 +226,11 @@ export function analysisOfContractTypes (deptId, year) {
}

// 资产一张图-右中-合同数量/金额排名分析
export function analysisOfAmountRanking (deptId, year) {
export function analysisOfAmountRanking (deptId, year, num) {
let query = {
deptId,
year
year,
num
}
return request({
url: 'api/home/xixia/asset/htsljepmfx',
@@ -239,10 +240,11 @@ export function analysisOfAmountRanking (deptId, year) {
}

// 资产一张图-右下-合同不规范管理排名分析
export function rankingAnalysisOfNonStandardContractManagement (deptId, year) {
export function rankingAnalysisOfNonStandardContractManagement (deptId, year, num) {
let query = {
deptId,
year
year,
num
}
return request({
url: 'api/home/xixia/asset/htbgfglpmfx',


+ 1
- 1
src/views/property/comps/right/bottom/1/index.js 查看文件

@@ -39,7 +39,7 @@ export default {
getData () {
if (this.year, this.deptId) {
this.isLoad = false;
rankingAnalysisOfNonStandardContractManagement(this.deptId, this.year).then(res => {
rankingAnalysisOfNonStandardContractManagement(this.deptId, this.year, 100).then(res => {
let data = res.data.map(item => {
return [item.name, item.value, item.index]
})


+ 1
- 1
src/views/property/comps/right/middle/1/index.js 查看文件

@@ -48,7 +48,7 @@ export default {
getData () {
if (this.year, this.deptId) {
this.isLoad = false;
analysisOfAmountRanking(this.deptId, this.year).then(res => {
analysisOfAmountRanking(this.deptId, this.year, 100).then(res => {
if (this.tabIndex == 1) {
this.headers = ['部门名称', '数量(个)', '排名'];
let data = res.data.sl.map(item => {


+ 6
- 4
src/views/resources/api/index.js 查看文件

@@ -118,10 +118,11 @@ export function analysisContractTypes (deptId, year) {
}

// 资源一张图-右中-合同数量/金额排名分析
export function rankinganalysisofcontractquantityandamount (deptId, year) {
export function rankinganalysisofcontractquantityandamount (deptId, year, num) {
let query = {
deptId,
year
year,
num
}
return request({
url: 'api/home/xixia/resource/htsljepmfx',
@@ -131,10 +132,11 @@ export function rankinganalysisofcontractquantityandamount (deptId, year) {
}

// 资源一张图-右下-合同不规范管理排名分析
export function Rankinganalysisofstandardcontractmanagement (deptId, year) {
export function Rankinganalysisofstandardcontractmanagement (deptId, year, num) {
let query = {
deptId,
year
year,
num
}
return request({
url: 'api/home/xixia/resource/htbgfglpmfx',


+ 1
- 1
src/views/resources/comps/right/bottom/1/index.js 查看文件

@@ -35,7 +35,7 @@ export default {
getData () {
if (this.year, this.deptId) {
this.isLoad = false;
Rankinganalysisofstandardcontractmanagement(this.deptId, this.year).then(res => {
Rankinganalysisofstandardcontractmanagement(this.deptId, this.year, 100).then(res => {
let data = res.data.map(item => {
return [item.name, item.value, item.index]
})


+ 1
- 1
src/views/resources/comps/right/middle/1/index.js 查看文件

@@ -52,7 +52,7 @@ export default {
getData () {
if (this.year, this.deptId) {
this.isLoad = false;
rankinganalysisofcontractquantityandamount(this.deptId, this.year).then(res => {
rankinganalysisofcontractquantityandamount(this.deptId, this.year, 100).then(res => {
if (this.id == 1) {
let data = res.data.sl.map(item => {
return [item.name, item.value, item.index]


Loading…
取消
儲存