Browse Source

三搜三找,改了些问题

master
mk 2 years ago
parent
commit
2e61f15106
  1. 2
      .eslintrc.js
  2. 34
      src/App.vue
  3. 72
      src/api/screen-content-center.js
  4. 5
      src/api/screen-content-left.js
  5. BIN
      src/assets/images/back.png
  6. BIN
      src/assets/images/faceImg/0.jpg
  7. BIN
      src/assets/images/faceImg/1.jpg
  8. BIN
      src/assets/images/faceImg/10.jpg
  9. BIN
      src/assets/images/faceImg/11.jpg
  10. BIN
      src/assets/images/faceImg/2.jpg
  11. BIN
      src/assets/images/faceImg/3.jpg
  12. BIN
      src/assets/images/faceImg/4.jpg
  13. BIN
      src/assets/images/faceImg/5.jpg
  14. BIN
      src/assets/images/faceImg/6.jpg
  15. BIN
      src/assets/images/faceImg/7.jpg
  16. BIN
      src/assets/images/faceImg/8.jpg
  17. BIN
      src/assets/images/faceImg/9.jpg
  18. 0
      src/assets/images/screenImg-platform.png
  19. 10
      src/router/index.js
  20. 2
      src/style/theme/index.css
  21. 108
      src/views/next/dialog-module/cityFliterResi/index.vue
  22. 124
      src/views/next/dialog-module/companyDetail/index.vue
  23. 126
      src/views/next/dialog-module/companySearch/index.vue
  24. 361
      src/views/next/dialog-module/houseDetail/index.vue
  25. 120
      src/views/next/dialog-module/houseFliterResi/index.vue
  26. 20
      src/views/next/dialog-module/office-lead/index.vue
  27. 123
      src/views/next/dialog-module/searchResi/index.vue
  28. 8
      src/views/next/screen-content-left/volunteer-go-where/index.vue
  29. 1
      src/views/next/screen-content-map/AMapLocaClass.js
  30. 278
      src/views/next/screen-content-map/index.vue
  31. 1
      src/views/next/screen-content-right/human-room-analysis/index.vue
  32. 30
      src/views/next/screen-content-right/human-room-analysis/option.js
  33. 2
      src/views/protal/ThreejsEarth.js
  34. 12
      src/views/protal/index.vue
  35. 19
      src/views/protal/module-label.vue

2
.eslintrc.js

@ -13,6 +13,6 @@ module.exports = {
ignorePatterns: ['public/js/threejs-r135/'],
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
// 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
}
}

34
src/App.vue

@ -16,4 +16,38 @@ body {
overflow: hidden;
background: #000;
}
.el-dialog__body{
padding:10px !important;
}
.backDialog{
background: url("~@/assets/next-images/build-leader-attach-bg.png") no-repeat !important;
background-size: 100% 100% !important;
max-height: 668px;
overflow-y: scroll;
&::-webkit-scrollbar {
width: 3px;
}
&::-webkit-scrollbar-track {
border-radius: 10px;
background: rgba(12, 129, 254, 0.24);
}
&::-webkit-scrollbar-thumb {
border-radius: 10px;
background: linear-gradient(270deg, #0063fe, #0095ff);
}
}
.el-table{
&::-webkit-scrollbar {
width: 3px;
}
&::-webkit-scrollbar-track {
border-radius: 10px;
background: rgba(12, 129, 254, 0.24);
}
&::-webkit-scrollbar-thumb {
border-radius: 10px;
background: linear-gradient(270deg, #0063fe, #0095ff);
}
}
</style>

72
src/api/screen-content-center.js

@ -1,5 +1,5 @@
import request from 'utils/request'
const intranetApiUrl = 'https://epdc-jinshui.elinkservice.cn/epdc-api'
// 获取社区区划
export function getCommunityDistrict () {
return request({
@ -71,3 +71,73 @@ export function getGridDetail ({ gridId }) {
method: 'GET'
})
}
// 以城找人
export function getCityFilterResi (params) {
return request({
baseURL: intranetApiUrl,
url: `/app-user/populationinformation/screenJinShui/selectPeopleByCurrentAddress`,
method: 'GET',
params
})
}
// 以房找人
export function geHouseFilterResi (params) {
return request({
baseURL: intranetApiUrl,
url: `/app-user/housinginformation/screenJinShui/page`,
method: 'GET',
params
})
}
// 以人找人
export function geFilterResi (params) {
return request({
baseURL: intranetApiUrl,
url: `/app-user/populationinformation/screenJinShui/page`,
method: 'GET',
params
})
}
// 三搜
export function screencompany (params) {
return request({
baseURL: intranetApiUrl,
url: `/custom/screencompany/page`,
method: 'GET',
params
})
}
// 房屋详情
export function housinginformation (id) {
return request({
baseURL: intranetApiUrl,
url: `/app-user/housinginformation/screenJinShui/${id}`,
method: 'GET',
})
}
//居住人详情
export function getUserInfo (params) {
return request({
baseURL: intranetApiUrl,
url: `/app-user/populationinformation/screenJinShui/getHouseHeadInfo`,
method: 'GET',
params
})
}
// 家庭成员
export function houseresident (params) {
return request({
baseURL: intranetApiUrl,
url: `/app-user/houseresident/screenJinShui/page`,
method: 'GET',
params
})
}
//企业详情
export function customDetail (id) {
return request({
baseURL: intranetApiUrl,
url: `/custom/screencompany/${id}`,
method: 'GET',
})
}

5
src/api/screen-content-left.js

@ -1,5 +1,5 @@
import request from 'utils/request'
const intranetApiUrl = 'https://epdc-jinshui.elinkservice.cn/epdc-api/api/'
// 街道信息
export function getStreetInfo ({ streetId }) {
return request({
@ -27,7 +27,8 @@ export function getCommunityDetail ({ id }) {
// 红色党建-动力主轴-官小带个话-社区负责人列表
export function getOfficeLeadList (params) {
return request({
url: '/screen/communityHead/page',
baseURL:intranetApiUrl,
url: 'partyGroup/screenJinShui/officials/list',
method: 'GET',
params
})

BIN
src/assets/images/back.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

BIN
src/assets/images/faceImg/0.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

BIN
src/assets/images/faceImg/1.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

BIN
src/assets/images/faceImg/10.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

BIN
src/assets/images/faceImg/11.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
src/assets/images/faceImg/2.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
src/assets/images/faceImg/3.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 88 KiB

BIN
src/assets/images/faceImg/4.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
src/assets/images/faceImg/5.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

BIN
src/assets/images/faceImg/6.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

BIN
src/assets/images/faceImg/7.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

BIN
src/assets/images/faceImg/8.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
src/assets/images/faceImg/9.jpg

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

0
src/assets/images/screen-platform.png → src/assets/images/screenImg-platform.png

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

10
src/router/index.js

@ -1,7 +1,7 @@
import Vue from 'vue'
import VueRouter from 'vue-router'
import Router from 'vue-router'
Vue.use(VueRouter)
Vue.use(Router)
const routes = [
{
@ -22,12 +22,12 @@ const routes = [
{
path: '/portal',
name: 'protal',
component: () => import(/* webpackChunkName: "protal" */'views/protal/index.vue')
component: () => import(/* webpackChunkName: "protal" */'views/protal/index.vue'),
}
]
const router = new VueRouter({
const router = new Router({
routes
})
console.log(router);
export default router

2
src/style/theme/index.css

File diff suppressed because one or more lines are too long

108
src/views/next/dialog-module/cityFliterResi/index.vue

@ -0,0 +1,108 @@
<template>
<div class='table_box'>
<p>人员列表 {{ total }}</p>
<div class="loading-container" v-show="preloadVisible && tableData.length === 0">
<screen-loading>加载中请稍后...</screen-loading>
</div>
<el-table :data="tableData" style="width: 100%" border v-show="!preloadVisible && tableData.length > 0">
<el-table-column type="index" label="序号">
</el-table-column>
<el-table-column prop="residentName" label="居住人姓名" width="180">
</el-table-column>
<el-table-column prop="houseHeadAddress" label="房屋地址" width="">
</el-table-column>
</el-table>
<el-row type="flex" justify="center" style="margin-top: 10px;">
<el-col :span="24" align="center">
<el-pagination style="margin:0 auto;" layout="prev, pager, next" :total="total" @current-change="hadnelCurrenPage"
@next-click="hadnelCurrenPage" :current-page="page" :page-size="limit">
</el-pagination>
</el-col>
</el-row>
</div>
</template>
<script>
import { getCityFilterResi } from 'api/screen-content-center'
export default {
//
data() {
return {
total: 0,
limit: 10, //\
page: 1, //,
tableData: [],
preloadVisible: true,
};
},
props: {
searchValue: {
type: String,
default: ''
}
},
//
created() {
this.getCityFilterResi()
},
//
methods: {
hadnelCurrenPage(val) {
this.page = val
this.getCityFilterResi()
},
getCityFilterResi() {
this.preloadVisible = true
this.tableData = []
//
let params = {
houseAddress: this.searchValue,
limit: this.limit,
page: this.page,
}
getCityFilterResi(params).then(res => {
console.log(res);
this.total = res.data.total
this.tableData = res.data.list
}).catch(err => {
console.log(err);
}).finally(() => {
this.preloadVisible = false
})
}
},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
p {
position: relative;
padding-left: 10px;
margin-top: 0px;
&::after {
position: absolute;
left: -5px;
width: 5px;
height: 16px;
background: #0bb6f3;
top: 3px;
content: '';
}
}
.loading-container {
width: 100%;
height: calc(100% - 50px);
}
</style>

124
src/views/next/dialog-module/companyDetail/index.vue

@ -0,0 +1,124 @@
<template>
<div class='main'>
<h3 style="text-align: center;">{{detailObj.companyName}}</h3>
<el-row type="flex" justify="" >
<el-col :span="24">
<span class="label">{{typeName}}简介</span><span>{{detailObj.companyIntroduction}}</span>
</el-col>
</el-row>
<el-row type="flex" justify="" >
<el-col :span="24">
<span class="label">{{typeName}}联系人</span>{{detailObj.contactPerson}}
</el-col>
</el-row>
<el-row type="flex" justify="" >
<el-col :span="24">
<span class="label">{{typeName}}联系电话</span>{{detailObj.mobile}}
</el-col>
</el-row>
<el-row type="flex" justify="" >
<el-col :span="24">
<span class="label">{{typeName}}地址</span>{{detailObj.companyAddress}}
</el-col>
</el-row>
<el-row type="flex" justify="" >
<el-col :span="24">
<span class="label">{{typeName}}照片</span>
<img v-for="item in imageUrl" style="width: 200px;" :src="item"/>
</el-col>
</el-row>
</div>
</template>
<script>
import { customDetail} from 'api/screen-content-center'
export default {
//
data() {
return {
detailObj: {},
imageUrl:[]
};
},
props: {
companyId: {
type: String,
default: ''
},
formType:{
type: String,
default: ''
}
},
//
created() {
this.customDetail()
},
mounted(){
},
//
methods: {
customDetail() {
customDetail(this.companyId).then(res => {
this.imageUrl= []
this.detailObj = res.data
this.imageUrl = res.data.images.map(item=>item.url)
}).catch(err => {
console.log(err);
})
},
},
//
components: {},
//
computed: {
typeName(){
return this.formType == 'company'?'企业':this.formType == 'shops'?'商铺':'村居'
}
},
//
watch: {},
}
</script>
<style lang="scss">
p {
position: relative;
padding-left: 10px;
margin-top: 0px;
&::after {
position: absolute;
left: -5px;
width: 5px;
height: 16px;
background: #0bb6f3;
top: 3px;
content: '';
}
}
.main {
width: 100%;
height: auto;
padding: 15px;
box-sizing: border-box;
// position: absolute;
// top: calc(50% - 512px / 2);
// left: calc(50% - 644px / 2);
z-index: 200;
}
.label {
min-width: 65px;
color: #a4afc0;
}
.el-col {
display: flex;
}
</style>

126
src/views/next/dialog-module/companySearch/index.vue

@ -0,0 +1,126 @@
<template>
<div class='table_box'>
<p>{{type == 'villageLiving'?'村居':type == 'shops'?'商铺':'企业'}}列表 {{ total }}</p>
<div class="loading-container" v-show="preloadVisible && tableData.length === 0">
<screen-loading>加载中请稍后...</screen-loading>
</div>
<el-table :data="tableData" style="width: 100%" border v-show="!preloadVisible && tableData.length > 0">
<el-table-column type="index" label="序号">
</el-table-column>
<el-table-column prop="companyName" label="名称" width="80">
</el-table-column>
<el-table-column prop="companyIntroduction" label="简介" width="" show-overflow-tooltip>
</el-table-column>
<el-table-column prop="contactPerson" label="联系人" width="80">
</el-table-column>
<el-table-column prop="mobile" label="联系电话" width="100">
</el-table-column>
<el-table-column prop="companyAddress" label="地址" width="100">
</el-table-column>
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<span @click="handelClickLook(scope.row)" style="cursor: pointer;">查看</span>
</template>
</el-table-column>
</el-table>
<el-row type="flex" justify="center" style="margin-top: 10px;">
<el-col :span="24" align="center">
<el-pagination style="margin:0 auto;" layout="prev, pager, next" :total="total" @current-change="hadnelCurrenPage"
@next-click="hadnelCurrenPage" :current-page="page" :page-size="limit">
</el-pagination>
</el-col>
</el-row>
</div>
</template>
<script>
import { screencompany } from 'api/screen-content-center'
export default {
//
data() {
return {
total: 0,
limit: 10, //\
page: 1, //,
tableData: [],
preloadVisible: true,
};
},
props: {
searchValue: {
type: String,
default: ''
},
type:{
type:String,
default:''
}
},
//
created() {
this.screencompany()
},
//
methods: {
handelClickLook(item){
this.$emit('handelClickCompanyLook',item.id)
},
hadnelCurrenPage(val) {
this.page = val
this.screencompany()
},
screencompany() {
this.preloadVisible = true
this.tableData = []
//
let params = {
companyName: this.searchValue,
houseType: this.type,
limit: this.limit,
page: this.page,
}
screencompany(params).then(res => {
this.total = res.data.total
this.tableData = res.data.list
}).catch(err => {
console.log(err);
}).finally(() => {
this.preloadVisible = false
})
}
},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
p {
position: relative;
padding-left: 10px;
margin-top: 0px;
&::after {
position: absolute;
left: -5px;
width: 5px;
height: 16px;
background: #0bb6f3;
top: 3px;
content: '';
}
}
.loading-container {
width: 100%;
height: calc(100% - 50px);
}
</style>

361
src/views/next/dialog-module/houseDetail/index.vue

@ -0,0 +1,361 @@
<template>
<div class='main'>
<p>房屋信息</p>
<div>
<el-row type="flex">
<el-col :span="24">
<div class="label">房屋位置</div>
<div class="value">{{ detailObj.houseAddress }}</div>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12">
<div class="label">面积</div>
<div class="value">{{ detailObj.houseArea }}</div>
</el-col>
<el-col :span="12">
<div class="label">用途</div>
<div class="value">{{ detailObj.houseUse == '0' ? '自住' : detailObj.houseUse == '1' ? '租赁' : '经营' }}
</div>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12">
<div class="label">产权人</div>
<div class="value">{{ detailObj.propertyOwner }}</div>
</el-col>
<el-col :span="12">
<div class="label">产权人电话</div>
<div class="value">{{ detailObj.propertyOwnerMobile }}</div>
</el-col>
</el-row>
</div>
<p>人员信息</p>
<div>
<el-row type="flex">
<el-col :span="12">
<div class="label">户主姓名</div>
<div class="value">{{ detailObj.residentsName }}</div>
</el-col>
<el-col :span="12">
<div class="label">户主性别</div>
<div class="value">{{ detailObj.residentsSex == '1' ? '男' : '女' }}</div>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12">
<div class="label">户主生日</div>
<div class="value" v-if="detailObj.residentsBirthday">{{ detailObj.residentsBirthday.substr(0, 11) }}
</div>
</el-col>
<el-col :span="12">
<div class="label">户主电话</div>
<div class="value">{{ detailObj.residentsPhone }}</div>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12">
<div class="label">家庭类别</div>
<div class="value" v-if="detailObj.familyCategory">{{ familyCategory(detailObj.familyCategory) }}</div>
<div class="value" v-else>--</div>
</el-col>
<el-col :span="12">
<div class="label">就业情况</div>
<div class="value" v-if="detailObj.employmentStatus">{{ employmentStatus(detailObj.employmentStatus) }}</div>
<div class="value" v-else>--</div>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12">
<div class="label">文化程度</div>
<div class="value" v-if="detailObj.educationLevel">{{ educationLevel(detailObj.educationLevel) }}</div>
<div class="value" v-else>--</div>
</el-col>
<el-col :span="12">
<div class="label">政治面貌</div>
<div class="value">{{ detailObj.maritalStatus ? detailObj.maritalStatus == '0' ? '群众' : '党员' : '--' }}</div>
</el-col>
</el-row>
<el-row type="flex">
<el-col :span="12">
<div class="label">机动车数量</div>
<div class="value">{{ detailObj.motorVehicleNum }}</div>
</el-col>
<el-col :span="12">
<div class="label">宠物犬状况</div>
<div class="value">{{ detailObj.dogStatus ? '有' : '无' }}</div>
</el-col>
</el-row>
</div>
<p>家庭成员</p>
<el-table :data="tableData"
style="width: 400px;max-height: 200px;overflow-y: scroll;">
<el-table-column type="index" label="序号">
</el-table-column>
<el-table-column prop="houseHeadRelation"
label="与户主关系"
width="80">
<template slot-scope="scope">
<span>{{houseHeadRelation(scope.row.houseHeadRelation)}}</span>
</template>
</el-table-column>
<el-table-column prop="residentsName"
label="姓名"
width="80">
</el-table-column>
<el-table-column prop="currentAddress"
label="现居住地"
show-overflow-tooltip
width="">
</el-table-column>
</el-table>
</div>
</template>
<script>
import { housinginformation, getUserInfo ,houseresident} from 'api/screen-content-center'
export default {
//
data() {
return {
tableData:[],
detailObj: {},
educatiion: [
{
"dictName": "博士",
"dictValue": "0",
"remark": ""
},
{
"dictName": "硕士",
"dictValue": "1",
"remark": ""
},
{
"dictName": "本科",
"dictValue": "2",
"remark": ""
},
{
"dictName": "大专",
"dictValue": "3",
"remark": ""
},
{
"dictName": "中专或中技",
"dictValue": "4",
"remark": ""
},
{
"dictName": "技工学校",
"dictValue": "5",
"remark": ""
},
{
"dictName": "高中",
"dictValue": "6",
"remark": ""
},
{
"dictName": "初中",
"dictValue": "7",
"remark": ""
},
{
"dictName": "小学",
"dictValue": "8",
"remark": ""
},
{
"dictName": "文盲与半文盲",
"dictValue": "9",
"remark": ""
}
],
limit:10,
page:1,
familyCategoryList: [
{
"dictName": "普通家庭",
"dictValue": "0",
"remark": ""
},
{
"dictName": "军烈家庭",
"dictValue": "1",
"remark": ""
},
{
"dictName": "优抚家庭",
"dictValue": "2",
"remark": ""
},
{
"dictName": "困难家庭",
"dictValue": "3",
"remark": ""
}
],
employmentStatusList: [
{
"dictName": "在岗",
"dictValue": "0",
"remark": ""
},
{
"dictName": "失业",
"dictValue": "1",
"remark": ""
},
{
"dictName": "退休",
"dictValue": "2",
"remark": ""
},
{
"dictName": "无业",
"dictValue": "3",
"remark": ""
}
],
houseresidentList: [
{
"dictName": "子女",
"dictValue": "0",
"remark": ""
},
{
"dictName": "夫妻",
"dictValue": "1",
"remark": ""
},
{
"dictName": "父母",
"dictValue": "2",
"remark": ""
},
{
"dictName": "其他",
"dictValue": "3",
"remark": ""
}
]
};
},
props: {
houseId: {
type: String,
default: ''
},
},
//
created() {
this.housinginformation()
this.getUserInfo()
this.houseresident()
},
mounted(){
},
//
methods: {
educationLevel(val) {
let str = this.educatiion.filter(item => item.dictValue == val)[0].dictName
return str || '--'
},
familyCategory(val) {
let str = this.familyCategoryList.filter(item => item.dictValue == val)[0].dictName
return str || '--'
},
houseHeadRelation(val){
let str = this.houseresidentList.filter(item => item.dictValue == val)[0].dictName
return str || '--'
},
employmentStatus(val) {
let str = this.employmentStatusList.filter(item => item.dictValue == val)[0].dictName
return str || '--'
},
housinginformation() {
housinginformation(this.houseId).then(res => {
console.log(res);
this.detailObj = {...this.detailObj ,...res.data }
}).catch(err => {
console.log(err);
})
},
getUserInfo() {
let params = {
id: this.houseId
}
getUserInfo(params).then(res => {
this.detailObj = { ...res.data, ...this.detailObj }
console.log(this.detailObj);
}).catch(err => {
console.log(err);
})
},
houseresident() {
let params = {
houseId: this.houseId,
limit: this.limit,
page: this.page,
}
houseresident(params).then(res => {
this.tableData = res.data.list
}).catch(err => {
console.log(err);
})
},
},
//
components: {},
//
computed: {
},
//
watch: {},
}
</script>
<style lang="scss">
p {
position: relative;
padding-left: 10px;
margin-top: 0px;
&::after {
position: absolute;
left: -5px;
width: 5px;
height: 16px;
background: #0bb6f3;
top: 3px;
content: '';
}
}
.main {
width: 410px;
height: auto;
padding: 15px;
// position: absolute;
// top: calc(50% - 512px / 2);
// left: calc(50% - 644px / 2);
z-index: 200;
}
.label {
width: 70px;
color: #a4afc0;
}
.el-col {
display: flex;
}
</style>

120
src/views/next/dialog-module/houseFliterResi/index.vue

@ -0,0 +1,120 @@
<template>
<div class='table_box'>
<p>人员列表 {{ total }}</p>
<div class="loading-container" v-show="preloadVisible && tableData.length === 0">
<screen-loading>加载中请稍后...</screen-loading>
</div>
<el-table :data="tableData" style="width: 100%" border v-show="!preloadVisible && tableData.length > 0">
<el-table-column type="index" label="序号">
</el-table-column>
<el-table-column prop="propertyOwner" label="户主姓名" width="80">
</el-table-column>
<el-table-column prop="gridName" label="网格名称" width="180">
</el-table-column>
<el-table-column prop="houseAddress" label="房屋地址" width="">
</el-table-column>
<el-table-column prop="propertyOwnerMobile" label="户主电话" width="100">
</el-table-column>
<el-table-column label="操作" width="80">
<template slot-scope="scope">
<span @click="handelClickLook(scope.row)" style="cursor: pointer;">查看</span>
</template>
</el-table-column>
</el-table>
<el-row type="flex" justify="center" style="margin-top: 10px;">
<el-col :span="24" align="center">
<el-pagination style="margin:0 auto;" layout="prev, pager, next" :total="total" @current-change="hadnelCurrenPage"
@next-click="hadnelCurrenPage" :current-page="page" :page-size="limit">
</el-pagination>
</el-col>
</el-row>
</div>
</template>
<script>
import { geHouseFilterResi } from 'api/screen-content-center'
export default {
//
data() {
return {
total: 0,
limit: 10, //\
page: 1, //,
tableData: [],
preloadVisible: true,
};
},
props: {
searchValue: {
type: String,
default: ''
}
},
//
created() {
this.geHouseFilterResi()
},
//
methods: {
handelClickLook(item){
this.$emit('handelClickLook',item.id)
},
hadnelCurrenPage(val) {
this.page = val
this.geHouseFilterResi()
},
geHouseFilterResi() {
this.preloadVisible = true
this.tableData = []
//
let params = {
houseAddress: this.searchValue,
limit: this.limit,
page: this.page,
}
geHouseFilterResi(params).then(res => {
console.log(res);
this.total = res.data.total
this.tableData = res.data.list
}).catch(err => {
console.log(err);
}).finally(() => {
this.preloadVisible = false
})
}
},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
p {
position: relative;
padding-left: 10px;
margin-top: 0px;
&::after {
position: absolute;
left: -5px;
width: 5px;
height: 16px;
background: #0bb6f3;
top: 3px;
content: '';
}
}
.loading-container {
width: 100%;
height: calc(100% - 50px);
}
</style>

20
src/views/next/dialog-module/office-lead/index.vue

@ -19,7 +19,7 @@
:key="index"
>
<div class="avatar">
<img :src="item.photo" alt="" />
<img :src="item.faceImg" alt="" />
</div>
<div class="info">
<div class="info-item">
@ -28,15 +28,15 @@
</div>
<div class="info-item">
<div class="label">职责</div>
<div class="content">{{ item.position }}</div>
<div class="content">{{ item.duty }}</div>
</div>
<div class="info-item">
<div class="label">负责区域</div>
<div class="content">{{ item.region }}</div>
<div class="content">{{ item.areaResponsibility }}</div>
</div>
<div class="info-item">
<div class="label">电话</div>
<div class="content">{{ item.phone }}</div>
<div class="content">{{ item.mobile }}</div>
</div>
<div class="info-item long">
<div class="label">格言</div>
@ -76,19 +76,21 @@ export default {
showGlobalDialog: 'showGlobalDialog'
}),
emitOfficeLeadData (item) {
const { id } = item
const { partyGroupId } = item
this.item = item
this.getOfficeLeadList(id)
this.getOfficeLeadList(partyGroupId)
},
//
getOfficeLeadList (id) {
getOfficeLeadList (partyGroupId) {
const params = {
communityId: id
partyGroupId: partyGroupId,
pageIndex:1,
pageSize:99,
}
this.officeLeadList = []
getOfficeLeadList(params).then(({ data: res }) => {
console.log('获取官小带个长列表', res)
this.officeLeadList = res.list || []
this.officeLeadList = res || []
}).catch(err => {
console.error('获取官小带个长列表', err)
})

123
src/views/next/dialog-module/searchResi/index.vue

@ -0,0 +1,123 @@
<template>
<div class='table_box'>
<p>人员列表 {{ total }}</p>
<div class="loading-container" v-show="preloadVisible && tableData.length === 0">
<screen-loading>加载中请稍后...</screen-loading>
</div>
<el-table :data="tableData" style="width: 100%" border v-show="!preloadVisible && tableData.length > 0">
<el-table-column type="index" label="序号">
</el-table-column>
<el-table-column prop="residentsName" label="姓名" width="80">
</el-table-column>
<el-table-column prop="gridNames" show-overflow-tooltip label="辖区范围" width="">
</el-table-column>
<el-table-column prop="residentsNation" label="性别" width="50">
</el-table-column>
<el-table-column prop="residentsPhone" label="联系电话" width="100">
</el-table-column>
<el-table-column prop="residentsNation" label="民族" width="50">
</el-table-column>
<el-table-column prop="householdRegistrationPlace" show-overflow-tooltip label="户籍地" width="180">
</el-table-column>
<!-- <el-table-column label="操作" width="80">
<template slot-scope="scope">
<span @click="handelClickLook(scope.row)" style="cursor: pointer;">查看</span>
</template>
</el-table-column> -->
</el-table>
<el-row type="flex" justify="center" style="margin-top: 10px;">
<el-col :span="24" align="center">
<el-pagination style="margin:0 auto;" layout="prev, pager, next" :current-page="page" :page-size="limit" :total="total" @current-change="hadnelCurrenPage"
@next-click="hadnelCurrenPage">
</el-pagination>
</el-col>
</el-row>
</div>
</template>
<script>
import { geFilterResi } from 'api/screen-content-center'
export default {
//
data() {
return {
total: 0,
limit: 10, //\
page: 1, //,
tableData: [],
preloadVisible: true,
};
},
props: {
searchValue: {
type: String,
default: ''
}
},
//
created() {
this.geFilterResi()
},
//
methods: {
handelClickLook(item){
},
hadnelCurrenPage(val) {
this.page = val
this.geFilterResi()
},
geFilterResi() {
this.preloadVisible = true
this.tableData = []
//
let params = {
residentsName: this.searchValue,
limit: this.limit,
page: this.page,
}
geFilterResi(params).then(res => {
console.log(res);
this.total = res.data.total
this.tableData = res.data.list
}).catch(err => {
console.log(err);
}).finally(() => {
this.preloadVisible = false
})
}
},
//
components: {},
//
computed: {},
//
watch: {},
}
</script>
<style lang="scss" scoped>
p {
position: relative;
padding-left: 10px;
margin-top: 0px;
&::after {
position: absolute;
left: -5px;
width: 5px;
height: 16px;
background: #0bb6f3;
top: 3px;
content: '';
}
}
.loading-container {
width: 100%;
height: calc(100% - 50px);
}
</style>

8
src/views/next/screen-content-left/volunteer-go-where/index.vue

@ -268,7 +268,13 @@ export default {
replaceGetWelfareHourList(params).then(({ data: res }) => {
console.log('获取公益时长排名', res)
res.list.forEach((item, index) => {
if (index <= 99) {
if(index <= 11){
this.welfareHourList.push({
...item,
visible: false,
volunteerFaceImg:require(`@/assets/images/faceImg/${index}.jpg`)
})
}else if (index <= 99) {
this.welfareHourList.push({
...item,
visible: false

1
src/views/next/screen-content-map/AMapLocaClass.js

@ -210,7 +210,6 @@ class AMapLocaClass extends AMapBusinessClass {
this.map.on('dblclick', e => {
const feat = pl.queryFeature(e.pixel.toArray())
if (feat) {
console.log(feat.properties)
Bus.$emit('drowDownToGrid', feat.properties)
}
})

278
src/views/next/screen-content-map/index.vue

@ -1,34 +1,29 @@
<template>
<div class="screen-content-map">
<div class="top" style="position: absolute; top: 0; left: 0; width: 100%; height: 100px;background: linear-gradient(to bottom, #081c2f, rgba(0, 0, 0, 0)); z-index: 8;"></div>
<div class="bot" style="position: absolute; bottom: 0; left: 0; width: 100%; height: 100px;background: linear-gradient(to top, #081c2f, rgba(0, 0, 0, 0)); z-index: 8;"></div>
<div class="top"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100px;background: linear-gradient(to bottom, #081c2f, rgba(0, 0, 0, 0)); z-index: 8;">
</div>
<div class="bot"
style="position: absolute; bottom: 0; left: 0; width: 100%; height: 100px;background: linear-gradient(to top, #081c2f, rgba(0, 0, 0, 0)); z-index: 8;">
</div>
<div v-if="!show3D">
<div
id="amap-container"
:style="{ transform: `scale(${mapScale}) translate(-50%, -50%)`}"
>
<div class="loadmore-container">
<div class="loading"></div>
<div class="tip">地图初始化中请稍后...</div>
<div id="amap-container" :style="{ transform: `scale(${mapScale}) translate(-50%, -50%)` }">
<div class="loadmore-container">
<div class="loading"></div>
<div class="tip">地图初始化中请稍后...</div>
</div>
</div>
</div>
<div class="statistics-list">
<div
class="list-item"
v-for="(item, index) in statisticsList"
:key="index"
@click="showMapContent(item)"
>
<div class="title">{{ item.label }}</div>
<div class="num">{{ item.value }}</div>
<div class="statistics-list">
<div class="list-item" v-for="(item, index) in statisticsList" :key="index" @click="showMapContent(item)">
<div class="title">{{ item.label }}</div>
<div class="num">{{ item.value }}</div>
</div>
</div>
</div>
<div class="map-bottom-decoration"></div>
<div class="map-tab-list">
<div class="map-bottom-decoration"></div>
<!-- <div class="map-tab-list">
<div
:class="['tab-item', currentTab === item.label ? 'active' : '']"
v-for="(item, index) in mapTabList"
@ -43,38 +38,53 @@
</div>
<div class="label">{{ item.label }}</div>
</div>
</div>
</div> -->
<div
:class="['map-serch', collapse ? 'collapse' : '']"
@click.stop="collapse = false"
>
<el-select v-model="searchSelect">
<el-option
v-for="(item, index) in searchOptionList"
:key="index"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
<el-input v-model="searchValue" placeholder="请输入"></el-input>
<div class="search-icon" @click.stop="threeSearch">
<img src="@/assets/images/search-icon.png" alt="" />
<div :class="['map-serch', collapse ? 'collapse' : '']" @click.stop="collapse = false">
<el-select v-model="searchSelect">
<el-option v-for="(item, index) in searchOptionList" :key="index" :label="item.label"
:value="item.value"></el-option>
</el-select>
<el-input v-model="searchValue" placeholder="请输入"></el-input>
<div class="search-icon" @click.stop="threeSearch">
<img src="@/assets/images/search-icon.png" alt="" />
</div>
</div>
<div class="back_btn" v-if="mapBack" @click="handelCLickBack"> <img src="@/assets/images/back.png" /> </div>
<div class="map-chang" v-if="!show3D">
<img src="@/assets/images/changMap.png" alt="" width="35px" height="35px" @click="changMap">
</div>
</div>
<div class="map-chang" v-if="!show3D">
<img src="@/assets/images/changMap.png" alt="" width="35px" height="35px" @click="changMap">
</div>
</div>
<div v-if="show3D" style="height: 100%; width: 100%;">
<div class="map-changs" @click="changMapS">
<img src="@/assets/images/changMap.png" alt="" width="50px" height="50px" >
<img src="@/assets/images/changMap.png" alt="" width="50px" height="50px">
</div>
<!-- 做地图组件中需要村级街道级的 -->
<!-- http://localhost:8085/#/ -->
<!-- http://172.22.68.29/emergency-dashboard-jinshui/#/ -->
<iframe src="http://172.22.68.29/emergency-dashboard-jinshui/#/" style="height: 100%;width: 100%; z-index: 30;"></iframe>
<iframe src="http://172.22.68.29/emergency-dashboard-jinshui/#/"
style="height: 100%;width: 100%; z-index: 30;"></iframe>
</div>
<el-dialog :visible.sync="cityFlag" width="500px" v-if="cityFlag" :modal="false">
<cityFliterResi :searchValue="searchValue" />
</el-dialog>
<el-dialog :visible.sync="houseFlag" width="800px" v-if="houseFlag" :modal="false">
<houseFliterResi :searchValue="searchValue" @handelClickLook="handelClickLook" />
<el-dialog width="30%" top="26vh" v-if="showHouseDetail" :visible.sync="showHouseDetail" append-to-body
:modal="false" custom-class="backDialog">
<houseDetail :houseId="houseId" />
</el-dialog>
</el-dialog>
<el-dialog :visible.sync="resiFlag" width="800px" v-if="resiFlag" :modal="false">
<searchResi :searchValue="searchValue" />
</el-dialog>
<el-dialog :visible.sync="companyFlag" width="600px" v-if="companyFlag" :modal="false">
<companySearch :searchValue="searchValue" :type="formType" @handelClickCompanyLook="handelClickCompanyLook" />
<el-dialog width="30%" top="26vh" v-if="showCompanyDetail" :visible.sync="showCompanyDetail" append-to-body
:modal="false" custom-class="backDialog">
<companyDetail :companyId="companyId" :type="formType" />
</el-dialog>
</el-dialog>
</div>
</template>
@ -85,11 +95,27 @@ import { getCommunityDetail } from 'api/screen-content-left'
import { mapGetters, mapActions } from 'vuex'
import Bus from 'utils/eventBus'
import { numAnimation } from 'utils/common'
import cityFliterResi from '../dialog-module/cityFliterResi'
import houseFliterResi from '../dialog-module/houseFliterResi'
import searchResi from '../dialog-module/searchResi'
import companySearch from '../dialog-module/companySearch'
import houseDetail from '../dialog-module/houseDetail'
import companyDetail from '../dialog-module/companyDetail/index.vue'
export default {
name: 'screen-content-map',
data () {
data() {
return {
mapScale: 1,
mapBack: false,
cityFlag: false,
houseFlag: false,
resiFlag: false,
companyFlag: false,
showHouseDetail: false,
showCompanyDetail: false,
companyId:'',
formType: '',
statisticsList: [
{ label: '居民', value: 0 },
{ label: '房屋', value: 0 },
@ -113,13 +139,15 @@ export default {
],
searchSelect: '1',
searchValue: '',
collapse: true,
show3D:false
collapse: false,
show3D: false,
houseId: ''
}
},
computed: {
...mapGetters(['scale', 'mapLevel', 'streetId', 'communityId'])
},
components: { cityFliterResi, houseFliterResi, searchResi, companySearch, houseDetail,companyDetail },
watch: {
scale: {
immediate: true,
@ -127,21 +155,21 @@ export default {
this.mapScale = 1 / val
}
},
mapLevel (val) {
mapLevel(val) {
if (val) {
this.getMapStatistics()
}
}
},
created () {
created() {
Bus.$off('drowDownToGrid', this.drowDownToGrid.bind(this))
Bus.$on('drowDownToGrid', this.drowDownToGrid.bind(this))
},
mounted () {
this.initMap()
mounted() {
this.initMap()
window.addEventListener('click', this.handleWindowClick.bind(this))
},
beforeDestroy () {
beforeDestroy() {
window.removeEventListener('click', this.handleWindowClick.bind(this))
},
methods: {
@ -150,31 +178,44 @@ export default {
set_communityId: 'SET_COMMUNITYID',
showGlobalDialog: 'showGlobalDialog'
}),
initMap(){
handelClickLook(houseId) {
this.houseId = houseId
this.showHouseDetail = true
},
handelClickCompanyLook(companyId) {
this.companyId = companyId
this.showCompanyDetail = true
},
handelCLickBack() {
this.mapBack = false
this.initMap()
},
initMap() {
this.getMapStatistics()
/* eslint-disable */
Promise.all([
this.getCommunityDistrict(),
this.getCommunityGeoPolygon(),
this.getCommunityGeoLine(),
this.getGridGeoPolygon()]).then(([communityJSON, communityGeoJson, communityGeoLineJson, gridGeoJson]) => {
return new AMapLocaClass({
domId: 'amap-container',
communityJSON,
communityGeoJson,
gridGeoJson
/* eslint-disable */
Promise.all([
this.getCommunityDistrict(),
this.getCommunityGeoPolygon(),
this.getCommunityGeoLine(),
this.getGridGeoPolygon()]).then(([communityJSON, communityGeoJson, communityGeoLineJson, gridGeoJson]) => {
return new AMapLocaClass({
domId: 'amap-container',
communityJSON,
communityGeoJson,
gridGeoJson
})
})
})
},
changMap(){
changMap() {
this.show3D = true
console.log(this);
},
changMapS(){
changMapS() {
this.show3D = false
this.initMap()
},
//
getMapStatistics () {
getMapStatistics() {
if (this.mapLevel === 'community' || (this.mapLevel === 'grid' && !this.communityId)) {
const params = {
id: this.streetId
@ -182,7 +223,7 @@ export default {
getMapStatistics(params).then(({ data: res }) => {
console.log('获取地图中心上方统计数', res)
const { resiNum, houseNum, communityNum, gridNum, gridUserNum, partyMemberNum } = res
numAnimation(this.statisticsList[0].value, resiNum, this.statisticsList[0], 'value')
numAnimation(this.statisticsList[0].value, localStorage.getItem('resiCount'), this.statisticsList[0], 'value')
numAnimation(this.statisticsList[1].value, houseNum, this.statisticsList[1], 'value')
numAnimation(this.statisticsList[2].value, communityNum, this.statisticsList[2], 'value')
numAnimation(this.statisticsList[3].value, gridNum, this.statisticsList[3], 'value')
@ -211,24 +252,54 @@ export default {
},
//
handleWindowClick () {
handleWindowClick() {
this.collapse = true
},
//
drowDownToGrid ({ id, communityId, center }) {
drowDownToGrid({ id, communityId, center }) {
this.mapBack = true
this.set_mapLevel('grid')
this.set_communityId(communityId)
this.getMapStatistics()
Bus.$emit('drawGridPolygon', { communityId: id, center: center })
},
//
threeSearch () {
threeSearch() {
this.collapse = !this.collapse
if (this.collapse) {
this.collapse = !this.threeSearch
switch (this.searchSelect) {
case '1':
console.log('以房找人');
this.houseFlag = true
break
case '2':
console.log('以人找人');
this.resiFlag = true
break
case '3':
console.log('以城找人');
this.cityFlag = true
break
case '4':
console.log('搜企业');
this.companyFlag = true
this.formType = 'company'
break
case '5':
console.log('搜商铺');
this.companyFlag = true
this.formType = 'shops'
break
case '6':
console.log('搜村居');
this.companyFlag = true
this.formType = 'villageLiving'
break
}
}
},
//
showMapContent (item) {
showMapContent(item) {
if (item.label === '社区/管区' && this.mapLevel !== 'community') {
this.set_mapLevel('community')
this.set_communityId('')
@ -239,7 +310,7 @@ export default {
}
},
// tab
chooseTab (tab) {
chooseTab(tab) {
if (this.currentTab && (this.currentTab === tab.label)) {
this.currentTab = ''
} else {
@ -255,7 +326,7 @@ export default {
}
},
//
getCommunityDistrict () {
getCommunityDistrict() {
return new Promise((resolve, reject) => {
getCommunityDistrict().then(data => {
resolve(data)
@ -265,7 +336,7 @@ export default {
})
},
// geojsonpolygon
getCommunityGeoPolygon () {
getCommunityGeoPolygon() {
return new Promise((resolve, reject) => {
getCommunityGeoPolygon().then(data => {
resolve(data)
@ -273,7 +344,7 @@ export default {
})
},
// geojsonline
getCommunityGeoLine () {
getCommunityGeoLine() {
return new Promise((resolve, reject) => {
getCommunityGeoLine().then(data => {
resolve(data)
@ -281,7 +352,7 @@ export default {
})
},
// geojsonpolygons
getGridGeoPolygon () {
getGridGeoPolygon() {
return new Promise((resolve, reject) => {
getGridGeoPolygon().then(data => {
resolve(data)
@ -298,14 +369,27 @@ img {
height: 100%;
float: left;
}
.back_btn {
position: absolute;
bottom: 948px;
left: calc(64% - 32px - 560px - 10px - 44px - 343px);
z-index: 30;
width: 80px;
height: 80px;
cursor: pointer;
}
.amap-logo,
.amap-copyright {
display: none !important;
img {
width: 0px !important;
height: 0px !important;
}
}
.amap-marker-label {
border-width: 0px;
background-color: transparent;
@ -313,6 +397,7 @@ img {
padding: 0px;
font-size: 12px;
line-height: 14px;
.marker-label {
height: 30px;
background: rgba(0, 10, 21, 0.74);
@ -321,10 +406,12 @@ img {
padding: 0 25px 0 8px;
display: flex;
align-items: center;
&-icon {
width: 20px;
height: 20px;
}
&-name {
font-size: 16px;
font-family: "PingFang Regular";
@ -334,6 +421,7 @@ img {
}
}
}
.map-serch {
height: 44px;
display: flex;
@ -349,9 +437,11 @@ img {
box-shadow: 0px 0px 12px 6px #025de6 inset;
padding: 0 9px;
background: rgba(29, 104, 213, 0.2);
&.collapse {
left: calc(100% - 560px - 32px - 10px - 44px);
}
.el-select {
.el-input {
font-size: 16px;
@ -360,14 +450,17 @@ img {
width: 130px;
box-sizing: border-box;
}
flex-shrink: 0;
}
.el-input {
width: 226px;
flex-shrink: 0;
font-size: 16px;
font-family: "PingFang Regular";
font-weight: bold;
.el-input__inner {
width: 100%;
box-sizing: border-box;
@ -375,6 +468,7 @@ img {
background: transparent !important;
}
}
.search-icon {
width: 26px;
height: 26px;
@ -382,7 +476,8 @@ img {
cursor: pointer;
}
}
.map-chang{
.map-chang {
position: absolute;
bottom: 124px;
right: calc(560px + 32px + 10px);
@ -392,7 +487,8 @@ img {
height: 80px;
cursor: pointer;
}
.map-changs{
.map-changs {
position: absolute;
bottom: 124px;
right: calc(560px + 32px + 10px);
@ -422,11 +518,13 @@ img {
align-items: center;
justify-content: center;
}
.loadmore-container {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
.tip {
color: #fff;
font-size: 16px;
@ -435,6 +533,7 @@ img {
margin-left: 10px;
}
}
.loading {
flex-shrink: 0;
position: relative;
@ -447,6 +546,7 @@ img {
border-radius: 100%;
animation: circle infinite 0.75s linear;
}
.statistics-list {
width: 1164px;
height: 54px;
@ -459,10 +559,12 @@ img {
display: flex;
align-items: center;
justify-content: space-around;
.list-item {
position: relative;
top: -20px;
cursor: pointer;
.title {
font-size: 16px;
line-height: 26px;
@ -471,6 +573,7 @@ img {
font-style: italic;
color: #17d7f4;
}
.num {
font-size: 20px;
line-height: 30px;
@ -481,6 +584,7 @@ img {
}
}
}
.map-bottom-decoration {
width: 1268px;
height: 80px;
@ -497,6 +601,7 @@ img {
left: calc(560px + 10px + 32px);
bottom: 60px;
z-index: 20;
.tab-item {
width: 115px;
height: 36px;
@ -508,10 +613,12 @@ img {
box-sizing: border-box;
padding-left: 13px;
cursor: pointer;
.icon {
width: 20px;
height: 20px;
}
.label {
font-size: 16px;
font-family: "PingFang Regular";
@ -523,12 +630,15 @@ img {
font-weight: 900;
margin-left: 6px;
}
& + .tab-item {
&+.tab-item {
margin-top: 6px;
}
&.active {
background: rgba(8, 31, 57, 0.61);
border: 1px solid #f8bb00;
.label {
background: linear-gradient(0deg, #ffa229 0%, #f8fdfe 70%);
background-clip: text;

1
src/views/next/screen-content-right/human-room-analysis/index.vue

@ -410,6 +410,7 @@ export default {
}
setTimeout(() => {
this.humanClassifyChart.hideLoading()
localStorage.setItem('resiCount',res.count)
this.humanClassifyChart.setOption(getHumanTypeChartOption({ data, count: res.count }))
this.humanClassifyChart.on('click', e => {
this.showGlobalDialog('')

30
src/views/next/screen-content-right/human-room-analysis/option.js

@ -19,7 +19,7 @@ function randNum (min, max, len, isRound) {
// 人房分析-区域人口统计
export function getAreaHumanStackBarChartOption ({ xAxisData, type1Data, type2Data, bgMax }) {
// console.log(xAxisData, type1Data, type2Data, bgMax)
console.log(xAxisData, type1Data, type2Data, bgMax)
return {
tooltip: {
show: true,
@ -56,12 +56,12 @@ export function getAreaHumanStackBarChartOption ({ xAxisData, type1Data, type2Da
padding: [0, 8, 0, 8]
}
},
dataZoom: {
type: 'inside',
start: 0,
end: 70,
zoomLock: true
},
// dataZoom: {
// type: 'inside',
// start: 0,
// end: 70,
// zoomLock: true
// },
grid: {
top: '18%',
bottom: '18%',
@ -88,7 +88,7 @@ export function getAreaHumanStackBarChartOption ({ xAxisData, type1Data, type2Da
hideOverlap: false,
showMinLabel: true,
color: '#a1adc5',
fontSize: 14,
fontSize: 10,
fontFamily: 'PingFang Regular'
}
},
@ -209,12 +209,12 @@ export function getAreaRoomStackBarChartOption ({ xAxisData, type1Data, type2Dat
padding: [0, 8, 0, 8]
}
},
dataZoom: {
type: 'inside',
start: 0,
end: 70,
zoomLock: true
},
// dataZoom: {
// type: 'inside',
// start: 0,
// end: 70,
// zoomLock: true
// },
grid: {
top: '18%',
bottom: '18%',
@ -241,7 +241,7 @@ export function getAreaRoomStackBarChartOption ({ xAxisData, type1Data, type2Dat
hideOverlap: false,
showMinLabel: true,
color: '#a1adc5',
fontSize: 14,
fontSize: 10,
fontFamily: 'PingFang Regular'
}
},

2
src/views/protal/ThreejsEarth.js

@ -106,7 +106,7 @@ class ThreejsEarth extends ThreejsBasicClass {
const labelList = [
{ start: 271, icon: require('@/assets/images/project-platform.png') },
{ start: 292, icon: require('@/assets/images/miniprogram-platform.png') },
{ start: 307, icon: require('@/assets/images/screen-platform.png') },
{ start: 307, icon: require('@/assets/images/screenImg-platform.png') },
{ start: 322, icon: require('@/assets/images/contradiction-platform.png') },
{ start: 343, icon: require('@/assets/images/grid-platform.png') }
]

12
src/views/protal/index.vue

@ -4,6 +4,8 @@
<script>
import ThreejsFlyLine from './ThreejsFlyLine'
import Bus from 'utils/eventBus'
export default {
name: 'protal',
data () {
@ -11,10 +13,20 @@ export default {
name: ''
}
},
created () {
Bus.$off('handleClickTab', this.handleClickTab.bind(this))
Bus.$on('handleClickTab', this.handleClickTab.bind(this))
},
mounted () {
console.log(this);
return new ThreejsFlyLine({
container: '.portal'
})
},
methods: {
handleClickTab(item){
this.$router.push(`/${item.path}`)
},
}
}
</script>

19
src/views/protal/module-label.vue

@ -21,6 +21,8 @@
</template>
<script>
import Bus from 'utils/eventBus'
export default {
name: 'module-label',
data () {
@ -33,12 +35,13 @@ export default {
mounted () {
this.$nextTick(() => {
const src = this.$refs.moduleIcon.src
if (src.includes('screen')) {
console.log(src,'链接');
if (src.includes('screenImg')) {
this.labelName = '基础数据'
} else if (src.includes('miniprogram')) {
this.labelName = '小程序'
} else if (src.includes('project')) {
this.labelName = '雪亮工程'
} else if (src.includes('project')) {
this.labelName = '数据看板'
} else if (src.includes('contradiction')) {
this.labelName = '矛盾调解'
} else if (src.includes('grid')) {
@ -60,15 +63,19 @@ export default {
//
navigateToModule () {
const src = this.$refs.moduleIcon.src
if (src.includes('screen')) {
console.log('screen')
if (src.includes('screenImg')) {
console.log('screenImg')
window.open('http://172.22.68.29/epmet-js/#/login')
} else if (src.includes('miniprogram')) {
window.open('https://120.224.52.75:1443/portal/')
console.log('miniprogram')
} else if (src.includes('project')) {
console.log('project')
Bus.$emit('handleClickTab', { path: 'next' })
} else if (src.includes('contradiction')) {
console.log('contradiction')
window.open('http://jinanodradmin.yilvs.com:2280/login?redirect=%2Findex#/')
} else if (src.includes('grid')) {
window.open('https://172.20.88.210:8081/jnrkdsj/')
console.log('grid')
}
}

Loading…
Cancel
Save