Browse Source

Merge branch 'feature/dev_party_mange' into dev

test
YUJT 3 years ago
parent
commit
b755b65245
  1. 5
      src/router/index.js
  2. 2
      src/utils/request.js
  3. 220
      src/views/modules/communityParty/members/cpts/points.vue
  4. 222
      src/views/modules/communityParty/members/cpts/record.vue
  5. 186
      src/views/modules/communityParty/members/crateForm.vue
  6. 80
      src/views/modules/communityParty/members/index.vue
  7. 40
      src/views/modules/partymember/icpartyorg-add-or-update.vue
  8. 6
      src/views/modules/partymember/icpartyorgtree.vue
  9. 6
      src/views/modules/partymember/lookMember.vue
  10. 83
      src/views/modules/visual/communityParty/community.vue
  11. 736
      src/views/modules/visual/communityParty/gridParty.vue
  12. 251
      src/views/modules/visual/communityParty/memberInfo.vue
  13. 123
      src/views/modules/visual/communityParty/party.vue
  14. 122
      src/views/modules/visual/components/screen-map/index.vue

5
src/router/index.js

@ -268,6 +268,11 @@ router.beforeEach((to, from, next) => {
name: "社区党建",
// url: "visual/basicinfo/basicInfoMain",
children: [
{
url: "/visual/communityParty/gridParty",
name: "网格党建平面图",
id: "5feawfwaefwa579",
},
{
url: "/visual/communityParty/party",
name: "党员信息统计",

2
src/utils/request.js

@ -21,7 +21,7 @@ http.interceptors.request.use(config => {
// 默认参数
var defaults = {}
// 防止缓存,GET请求默认带_t参数
if (config.method === 'get') {
if (config.method == 'get') {
config.params = {
...config.params,
...{ '_t': new Date().getTime() }

220
src/views/modules/communityParty/members/cpts/points.vue

@ -1,68 +1,87 @@
<template>
<div class="p-wr">
<div class="flex-div mb20 pdl74">
<div class="mr10">评分周期</div>
<div class="mr10">
<el-date-picker
v-model="form.year"
type="year"
placeholder="选择年">
</el-date-picker>
</div>
<div class="mr10">
<el-select v-model="form.quarter" placeholder="请选择" class="input-width" clearable>
<el-option
v-for="item in quarterList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
<div>
<el-button
type="primary"
size="small"
>保存</el-button>
</div>
</div>
<el-form label-width="140px" :model="form" :inline="true" ref="ruleForm"
<el-form label-width="140px" :model="form" :inline="true"
:disabled="disabled" :rules="rules" ref="ruleForm"
class="form-wr">
<el-form-item label="评分周期" prop="year">
<div class="flex-div">
<!-- <div class="mr10">评分周期</div> -->
<div class="mr10">
<el-date-picker
v-model="form.year"
type="year"
value-format="yyyy"
placeholder="选择年"
@change="handleYearChange">
</el-date-picker>
</div>
<div class="mr10">
<el-form-item prop="quarter">
<el-select v-model="form.quarter" placeholder="请选择" class="input-width" clearable
@change="handleQuaterChange">
<el-option
v-for="item in quarterList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
<div>
<el-button
type="primary"
size="small"
:disabled="btnDisabled"
@click="hadnleSubmitbase"
>保存</el-button>
</div>
</div>
</el-form-item>
<el-form-item label="基础积分分值" prop="basePoint">
<el-input v-model="form.basePoint" placeholder="请输入" class="input-width" clearable />
<el-input v-model="form.basePoint" type="number" placeholder="请输入" class="input-width" clearable />
</el-form-item>
<el-form-item label="基础积分选项" prop="baseOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.baseOptions">
<el-checkbox v-for="item in baseOptions" :key="item.value" :label="item.label" :value="item.value" />
<el-checkbox v-for="item in baseOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
<div>
<el-form-item label="民主评议积分分值" prop="reviewPoint">
<el-input v-model="form.reviewPoint" placeholder="请输入" class="input-width" clearable></el-input>
<el-input v-model="form.reviewPoint" type="number" placeholder="请输入" class="input-width" clearable></el-input>
</el-form-item>
<el-form-item label="民主评议积分选项" prop="reviewOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.reviewOptions">
<el-checkbox v-for="item in pyiOptions" :key="item.value" :label="item.label" :value="item.value" />
<el-checkbox v-for="item in pyiOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<div>
<el-form-item label="激励积分分值" prop="inspirePoint">
<el-input v-model="form.inspirePoint" placeholder="请输入" class="input-width" clearable />
<el-input v-model="form.inspirePoint" type="number" placeholder="请输入" class="input-width" clearable />
</el-form-item>
<el-form-item label="激励积分选项" prop="inspireOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.inspireOptions">
<el-checkbox v-for="item in jiliOptions" :key="item.value" :label="item.label" :value="item.value" />
<el-checkbox v-for="item in jiliOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
<div>
<el-form-item label="警示扣分分值" prop="warnPoint">
<el-input v-model="form.warnPoint" placeholder="请输入" class="input-width" clearable />
<el-input v-model="form.warnPoint" type="number" placeholder="请输入" class="input-width" clearable />
</el-form-item>
<el-form-item label="警示扣分选项" prop="warnOptions" class="wd-wr" :style="'width:' + formItemWd">
<el-checkbox-group v-model="form.warnOptions">
<el-checkbox v-for="item in jinshiOptions" :key="item.value" :label="item.label" :value="item.value" />
<el-checkbox v-for="item in jinshiOptions" :key="item.value" :label="item.value">
{{ item.label }}
</el-checkbox>
</el-checkbox-group>
</el-form-item>
</div>
@ -73,8 +92,21 @@
<script>
export default {
props: {
partyId: {
type: String,
default: ''
},
disabled: {
type: Boolean,
default: false
}
},
data() {
return {
btnDisabled: false,
year: '',
quarter: '',
form: {
partyMemberId: '',
year: '',
@ -88,34 +120,38 @@ export default {
warnPoint: '',
warnOptions: [],
},
rules: {
year: [{ required: true, message: '年度不能为空', trigger: 'blur' }],
quarter: [{ required: true, message: '季度不能为空', trigger: 'blur' }]
},
formItemWd: '500px',
quarterList: [
{
label: '第一季度',
value: 1
value: '1'
},
{
label: '第二季度',
value: 2
value: '2'
},
{
label: '第三季度',
value: 3
value: '3'
},
{
label: '第四季度',
value: 4
value: '4'
}
],
baseOptions: [
{
label: '参加三会一课',
value: 1
value: '1'
},
{
label: '参加主题党日',
value: 2
value: '2'
},
{
@ -124,80 +160,152 @@ export default {
},
{
label: '积极参加学习培训',
value: 4
value: '4'
},
{
label: '自觉执行党组织会议',
value: 5
value: '5'
},
{
label: '严守党的政治纪律和政治规矩',
value: 6
value: '6'
},
],
jiliOptions: [
{
label: '发挥先锋模范作用',
value: 1
value: '1'
},
{
label: '维护社会和谐稳定',
value: 2
value: '2'
},
{
label: '参与社会治理',
value: 3
value: '3'
},
{
label: '联系服务群众',
value: 4
value: '4'
}
],
jinshiOptions: [
{
label: '不服从党组织安排',
value: 1
value: '1'
},
{
label: '不按时足额缴纳党费',
value: 2
value: '2'
},
{
label: '无故长期脱离组织管理',
value: 3
value: '3'
},
{
label: '在工作中出现不良影响',
value: 4
value: '4'
},
{
label: '违反党的纪律',
value: 5
value: '5'
}
],
pyiOptions: [
{
label: '个人自评',
value: 1
value: '1'
},
{
label: '党员互评',
value: 2
value: '2'
},
{
label: '民主测评',
value: 3
value: '3'
}
]
}
},
watch: {
partyId: {
handler(val) {
console.log('val------points', val)
if (val.length > 0) this.btnDisabled = false
else this.btnDisabled = true
},
immediate: true
}
},
mounted() {
const w = document.getElementsByClassName('p-wr')[0]
this.formItemWd = w.clientWidth - 360 + 'px'
console.log('www----', w)
},
methods: {
handleQuaterChange(val) {
if (this.form.year) {
this.getInfo()
}
this.quarter = val
},
handleYearChange(val) {
this.year = val
},
hadnleSubmitbase() {
if (!this.partyId) return
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
this.$emit('save', { ...this.form, partyMemberId: this.partyId })
} else {
console.log('error submit!!');
return false;
}
});
},
async getInfo() {
const params = {
year: this.form.year,
quarter: this.form.quarter,
partyMemberId: this.partyId
}
await this.$http
.post('/resi/partymember/icPartyMemberPoint/echoPartyMemberPoint', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
if (res.data.length > 0) {
let _info = res.data[0]
const info = {
..._info,
baseOptions: _info.baseOptions.length > 0 ? _info.baseOptions.split(','): [],
reviewOptions: _info.reviewOptions.length > 0 ? _info.reviewOptions.split(',') : [],
inspireOptions: _info.inspireOptions.length > 0 ? _info.inspireOptions.split(',') : [],
warnOptions: _info.warnOptions.length > 0 ? _info.warnOptions.split(',') : []
}
for(const n in info) {
this.form[n] = info[n]
}
} else {
this.$refs['ruleForm'].resetFields()
this.form.quarter = this.quarter
this.form.year = this.year
}
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
}
}
</script>

222
src/views/modules/communityParty/members/cpts/record.vue

@ -1,7 +1,8 @@
<template>
<div>
<div style="padding-right: 20px;">
<div class="mt10">
<el-button size="small" class="diy-button--add" @click="handleAdd">新增</el-button>
<el-button size="small" class="diy-button--add" :disabled="btnDisabled || disabled"
@click="handleAdd">新增</el-button>
</div>
<el-table
:data="tableData"
@ -25,9 +26,10 @@
v-if="scope.row.isEdit"
v-model="scope.row.payDate"
type="date"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
<div v-else class="div-content">{{ scope.row.payTime }}</div>
<div v-else class="div-content">{{ scope.row.payDate }}</div>
</template>
</el-table-column>
<el-table-column
@ -37,7 +39,7 @@
width="180px"
>
<template slot-scope="scope">
<el-input v-if="scope.row.isEdit" v-model="scope.row.money" placeholder="请输入"
<el-input v-if="scope.row.isEdit" type="number" v-model="scope.row.money" placeholder="请输入"
class="input-width" clearable></el-input>
<div v-else class="div-content">{{ scope.row.money }}</div>
</template>
@ -46,36 +48,62 @@
prop="name"
label="缴费年度"
align="center"
min-width="250px"
>
<template slot-scope="scope">
<el-date-picker
v-if="scope.row.isEdit"
v-model="scope.row.timeRange"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
end-placeholder="结束日期"
@change="handleTimeChangePay($event, scope.row)">
</el-date-picker>
<div v-else class="div-content">{{ scope.row.timeRange }}</div>
<div v-else class="div-content">{{ scope.row.startDate + ' - ' + scope.row.endDate }}</div>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200">
<el-table-column label="操作" align="center" width="120">
<template slot-scope="scope">
<el-button
v-if="scope.row.isEdit"
@click="handleEdit(scope.row, 'save')"
<template v-if="scope.row.isEdit">
<el-button
@click="handleEdit(scope.row)"
type="text"
size="small"
class="btn-color-edit"
>保存</el-button>
<el-button
v-else
@click="handleEdit(scope.row, 'edit')"
<el-button
@click="handleChange(scope.row, 'cancle')"
type="text"
size="small"
class="btn-color-edit"
>取消</el-button>
</template>
<template v-else>
<el-button
@click="handleChange(scope.row, 'edit')"
type="text"
size="small"
:disabled="disabled"
class="btn-color-edit"
>修改</el-button>
<el-button type="text" size="small" class="btn-color-del">删除</el-button>
<el-popconfirm
title="删除之后无法恢复,确认删除?"
@onConfirm="del(scope.row)"
>
<el-button
slot="reference"
type="text"
size="small"
class="btn-color-del"
style="margin-left: 10px;"
>删除</el-button
>
</el-popconfirm>
<!-- <el-button type="text" size="small" :disabled="disabled" class="btn-color-del"
@click="del(scope.row)">删除</el-button> -->
</template>
</template>
</el-table-column>
</el-table>
@ -84,24 +112,88 @@
<script>
export default {
props: {
partyId: {
type: String,
default: ''
},
disabled: {
type: Boolean,
default: false
}
},
data() {
return {
tableData: []
btnDisabled: false,
btnType: 'add',
isEdit: false,
tableData: [],
tempRow: {}
}
},
watch: {
partyId: {
handler(val) {
console.log('val------points', val)
if (val.length > 0) {
this.btnDisabled = false
this.getList()
} else this.btnDisabled = true
},
immediate: true
}
},
created() {
// if (this.partyId) this.getList()
},
methods: {
getRowClass({ rowIndex, columnIndex }) {
if (rowIndex === 0) {
return 'background: #2195fe; color: #fff;'
}
},
handleEdit(row) {
row.isEdit = !row.isEdit
handleChange(row, type) {
console.log('type----', type)
if (type == 'cancle') {
row = { ...this.tempRow }
row.isEdit = false
row.timeRange = []
if (this.btnType == 'add') this.tableData.pop()
this.getList()
console.log('row----', row)
} else {
this.tempRow = { ...row }
row.isEdit = true
row.timeRange = [row.startDate, row.endDate]
}
this.btnType = type
this.isEdit = !this.isEdit
},
handleTimeChangePay(val, row) {
console.log('vall', val)
console.log('varowll', row)
if (val != null && val.length > 0) {
row.startDate = val[0]
row.endDate = val[1]
} else {
row.startDate = ''
row.endDate = ''
row.timeRange = []
}
},
async handleEdit(row) {
if (this.btnType == 'add') this.save(row)
else this.edit(row)
},
handleAdd() {
this.btnType = 'add'
this.isEdit = true
const item = {
isEdit: true,
partyMemberId: '',
partyMemberId: this.partyId,
payDate: '',
money: '',
startDate: '',
@ -109,7 +201,99 @@ export default {
timeRange: ''
}
this.tableData.push(item)
}
},
async save(row) {
const params = {
partyMemberId: this.partyId,
payDate: row.payDate,
money: row.money,
startDate: row.startDate,
endDate: row.endDate,
}
await this.$http
.post('/resi/partymember/icPartyMemberPayRecord/save', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
row.isEdit = false
this.isEdit = false
this.getList()
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async edit(row) {
const params = {
...row
}
await this.$http
.post('/resi/partymember/icPartyMemberPayRecord/update', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
row.isEdit = false
this.isEdit = false
this.getList()
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async del(row) {
const params = {
...row
}
await this.$http
.post('/resi/partymember/icPartyMemberPayRecord/delete', [row.id])
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('删除成功')
this.getList()
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async getList() {
const params = {
page: 1,
limit: 9999,
partyMemberId: this.partyId
}
await this.$http
.get('/resi/partymember/icPartyMemberPayRecord/page', { params: params, } )
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.tableData = res.data.list.map(item => {
return {
...item,
isEdit: false,
timeRange: []
}
})
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
}
}
</script>

186
src/views/modules/communityParty/members/crateForm.vue

@ -1,30 +1,23 @@
<template>
<div class="dialog-h-content scroll-h pd0">
<el-form label-width="120px" :model="form" :inline="true" :rules="rules" ref="ruleForm"
<el-form label-width="120px" :model="form" :inline="true"
:disabled="disabled":rules="rules" ref="ruleForm"
class="form-wr">
<div class="flex-div">
<el-form-item label="所属党组织" prop="sszb" class="wd50">
<el-cascader
v-model="form.sszb"
:options="optionsG"
v-model="partyOrgs"
:options="partyList"
:props="partyProps"
clearable
class="input-width"
@change="handlePartyChange"></el-cascader>
</el-form-item>
<el-form-item label="党员中心户" prop="isDyzxh" class="wd50">
<el-radio-group v-model="form.isDyzxh">
<el-radio label="是" value="1"></el-radio>
<el-radio label="否" value="0"></el-radio>
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
<!-- <el-select v-model="form.isDyzxh" filterable
:disabled="disabled" placeholder="请选择" class="input-width" clearable>
<el-option
v-for="item in optionsEditG"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select> -->
</el-form-item>
</div>
<div class="flex-div">
@ -33,8 +26,8 @@
</el-form-item>
<el-form-item label="免学习" prop="isMxx" class="wd50">
<el-radio-group v-model="form.isMxx">
<el-radio label="是" value="1"></el-radio>
<el-radio label="否" value="0"></el-radio>
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
</div>
@ -89,8 +82,8 @@
<div class="flex-div">
<el-form-item label="流动党员" prop="isLd" class="wd50">
<el-radio-group v-model="form.isLd" class="input-width">
<el-radio label="是" value="1"></el-radio>
<el-radio label="否" value="0"></el-radio>
<el-radio label="1"></el-radio>
<el-radio label="0"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="流动党员号" prop="ldzh" class="wd50">
@ -102,13 +95,13 @@
</el-form-item>
<div :style="'width:' + formItemWd" >
<div style="margin-top: 20px; text-align: center;">
<el-button size="small">取消</el-button>
<el-button size="small" @click="handleCancle">取消</el-button>
<el-button
v-if="!disabled"
type="primary"
size="small"
>提交</el-button
>
@click="hadnleSubmitbase"
>提交</el-button>
</div>
</div>
@ -116,10 +109,10 @@
<div class="pdl40">
<el-tabs v-model="activesName">
<el-tab-pane label="量化积分" name="first">
<pointsInfo />
<pointsInfo :partyId="partymenberid" :disabled="disabled" @save="handleSavePoints" />
</el-tab-pane>
<el-tab-pane label="缴费记录" name="second">
<record />
<record :partyId="partymenberid" :disabled="disabled" />
</el-tab-pane>
</el-tabs>
<!-- <el-button-group>
@ -157,6 +150,14 @@ export default {
partyList: {
type: Array,
default: () => []
},
info: {
type: Object,
default: () => {}
},
disabled: {
type: Boolean,
default: false
}
},
data() {
@ -182,12 +183,12 @@ export default {
}
return {
activesName: 'first',
disabled: false,
isAuto: false,
formItemWd: '100%',
partymenberid: '',
partyProps: {
label: 'partyOrgName',
value: 'partyOrgCode'
value: 'id'
},
zwList: [
{
@ -229,7 +230,21 @@ export default {
name: [{ required: true, message: '姓名不能为空', trigger: 'blur' }],
mobile: [{ required: true, validator: checkMObile, trigger: 'blur' }],
idCard: [{ required: true, validator: checkIdCard, trigger: 'blur' }],
}
},
partyOrgs: []
}
},
watch: {
info: {
handler(val) {
if (Object.keys(val).length > 0) {
this.form = { ...val }
console.log('val----------in', val)
this.partyOrgs = val.orgPids.split(':')
this.partymenberid = val.id
}
},
immediate: true
}
},
created() {
@ -239,9 +254,20 @@ export default {
const w = document.getElementsByClassName('dialog-h-content')[0]
this.formItemWd = w.clientWidth + 'px'
},
destroyed() {
// this.$refs['ruleForm'].resetFields()
},
methods: {
handleCancle() {
this.$refs['ruleForm'].resetFields()
this.$emit('cancle')
},
handlePartyChange(val) {
console.log('val------pp', val)
if (val.length > 0) {
const i = val.length - 1
this.form.sszb = val[i]
} else this.form.sszb = ''
},
handleValidBlur(n) {
if (!isCard(this.form.idCard)) return
@ -287,6 +313,114 @@ export default {
console.log('err', err)
return this.$message.error('网络错误')
})
},
hadnleSubmitbase() {
this.$refs['ruleForm'].validate((valid) => {
if (valid) {
if (Object.keys(this.info).length > 0) this.editBase()
else this.saveBase()
} else {
console.log('error submit!!');
return false;
}
});
},
handleSavePoints(data) {
const _data = { ...data }
const params = {
..._data,
baseOptions: data.baseOptions.length > 0 ? data.baseOptions.toString() : '',
reviewOptions: data.reviewOptions.length > 0 ? data.reviewOptions.toString() : '',
inspireOptions: data.inspireOptions.length > 0 ? data.inspireOptions.toString() : '',
warnOptions: data.warnOptions.length > 0 ? data.warnOptions.toString() : ''
}
this.savePoints(params)
},
async saveBase() {
const params = {
...this.form
}
await this.$http
.post('/resi/partymember/icPartyMember/save', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
this.partymenberid = res.data
this.$emit('saveBase', true)
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async editBase() {
const params = {
...this.form
}
await this.$http
.post('/resi/partymember/icPartyMember/update', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
this.partymenberid = res.data
this.$emit('saveBase', true)
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async savePoints(form) {
const params = {
...form,
partyMemberId: this.partymenberid
}
let url = ''
if (form.id) url = '/resi/partymember/icPartyMemberPoint/update'
else url = '/resi/partymember/icPartyMemberPoint/save'
await this.$http
.post(url, params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
},
async saveRecord(form) {
const params = {
...form,
partyMemberId: this.partymenberid
}
await this.$http
.post('/resi/partymember/icPartyMemberPoint/save', params)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('保存成功')
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
}
}
}

80
src/views/modules/communityParty/members/index.vue

@ -12,9 +12,9 @@
:label="item.label"
:value="item.value">
</el-option> -->
</el-select>
<!-- </el-select> -->
<el-cascader
v-model="searchForm.partyOrgId"
v-model="partyOrgRange"
:options="optionsG"
:props="partyProps"
clearable
@ -110,7 +110,7 @@
<div class="resi-row-btn">
<el-button class="diy-button--add" size="small" @click="handleAdd">新增</el-button>
<el-button
<!-- <el-button
class="diy-button--export"
size="small"
@click="handleExportModule('room')">下载模板</el-button>
@ -129,7 +129,7 @@
>
<el-button size="small" class="diy-button--delete" :loading="importLoading">{{importBtnTitle}}</el-button>
</el-upload>
<el-button class="diy-button--reset" size="small" :loading="exportBtn" @click="handleExport">{{ exportBtnTitle }}</el-button>
<el-button class="diy-button--reset" size="small" :loading="exportBtn" @click="handleExport">{{ exportBtnTitle }}</el-button> -->
</div>
@ -294,7 +294,9 @@
:close-on-click-modal="false"
:before-close="handlerCancle"
>
<crate-form :partyList="optionsG" />
<crate-form v-if="dialogVisible" :info="detailInfo" :partyList="optionsG"
:disabled="disabled"
@saveBase="handleSearch" @cancle="handlerCancle" />
</el-dialog>
</div>
@ -389,6 +391,7 @@ export default {
options: []
}
],
partyOrgRange: [],
timeRangePay: [],
timeRange: [],
customerId: '',
@ -410,9 +413,11 @@ export default {
payStatrDate: '',
payEndDate: ''
},
detailInfo: {},
partyProps: {
label: 'partyOrgName',
value: 'partyOrgCode'
value: 'id',
checkStrictly: true
}
}
},
@ -464,6 +469,7 @@ export default {
},
handlePartyChange(val) {
console.log('val------pp', val)
this.searchForm.partyOrgId = val[val.length - 1]
},
handleFilterSpan(row, item) {
let _val = ''
@ -684,10 +690,7 @@ export default {
},
handlerCancle() {
for(const n in this.form) {
this.form[n] = ''
if (n === 'imageList') this.form[n] = []
}
this.detailInfo = {}
this.disabled = false
this.dialogVisible = false
},
@ -698,62 +701,25 @@ export default {
async handleEdit(row, addType) {
// this.form = { ...row }
await this.getDetail(row.id)
// this.dialogVisible = true
},
async addNew() {
const { user } = await this.$store.state
const _form = {
...this.form,
agencyId: user.agencyId
}
await this.$http
.post('/resi/partymember/icpartymemberstyle/save', _form)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.$message.success('操作成功')
this.handlerCancle()
this.getTableData()
}
})
.catch(err => {
console.log('err', err)
return this.$message.error('网络错误')
})
this.btnLoading = false
},
handleSUbmit() {
this.$refs.ruleForm.validate(async (valid) => {
if (valid) {
this.btnLoading = true
this.addNew()
} else {
console.log('error submit!!');
return false;
}
});
this.dialogVisible = true
},
handleDel(row) {
let params = {
id: row.id
ids: [row.id]
}
console.log('row1', row)
this.$http
.post('/resi/partymember/icpartymemberstyle/delete', params)
.post('/resi/partymember/icPartyMember/delete', [row.id])
.then(({ data: res }) => {
console.log('row2', row)
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
console.log('row3', row)
this.$message.success('删除成功')
this.getTableData()
}
})
.catch((err) => {
console.log('row4', err)
return this.$message.error('网络错误')
})
},
@ -762,18 +728,12 @@ export default {
id,
}
this.$http
.post('/resi/partymember/icpartymemberstyle/detail', params)
.post(`/resi/partymember/icPartyMember/${id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
} else {
this.form = { ...res.data }
const _arr = this.optionsEditC.map(item => item.categoryId)
if (!_arr.includes(res.data.categoryId) && !this.disabled) this.form.categoryId = ''
// this.optionsEditC.forEach(item => {
// if (item.categoryId === res.data.categoryId)
// })
this.detailInfo = { ...res.data }
this.dialogVisible = true
}
})
@ -787,7 +747,7 @@ export default {
console.log('user---ppp', user)
// addorupdate query
await this.$http
.get('/resi/partymember/icPartyOrg/getTreelist', { agencyId: agencyId || user.agencyId, })
.get('/resi/partymember/icPartyOrg/getTreelist', { params: {agencyId: agencyId || user.agencyId} })
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)

40
src/views/modules/partymember/icpartyorg-add-or-update.vue

@ -1,10 +1,10 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? '新增党组织' : '更新党组织'" :close-on-click-modal="false"
:close-on-press-escape="false">
<el-form class="form"
:model="dataForm"
:rules="dataRule"
ref="dataForm"
<el-form class="form"
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : '100px'">
<el-form-item prop="partyOrgType" label="组织类型">
@ -127,13 +127,7 @@
customerId: '',
staffId:'',
orgPidName: '',
agencyName:'',
delFlag: '',
revision: '',
createdBy: '',
createdTime: '',
updatedBy: '',
updatedTime: '',
agencyName:''
},
orgListVisible: false,
agencyListVisible:false,
@ -146,7 +140,7 @@
mounted () {
setTimeout(() => {
this.initMap()
}, 500);
}, 800);
},
methods: {
init() {
@ -163,11 +157,11 @@
this.getInfo()
} else {
if(this.dataForm.orgPids) {
this.dataForm.mySelectOrg = this.dataForm.orgPids.split(',')
this.dataForm.mySelectOrg = this.dataForm.orgPids.split(':')
} else {
this.dataForm.mySelectOrg = ''
}
this.orgListTreeSetDefaultHandle()
}
})
@ -235,8 +229,6 @@
if (res.code !== 0) {
return this.$message.error(res.msg)
}
console.log(':::::::::', JSON.stringify(res.data))
this.orgList = res.data
this.orgList.unshift({
partyOrgName: '一级组织',
@ -251,7 +243,7 @@
this.dataForm.orgPid = this.dataForm.mySelectOrg[this.dataForm.mySelectOrg.length - 1]
this.dataForm.orgPids = ''
this.dataForm.mySelectOrg.forEach(element => {
this.dataForm.orgPids = this.dataForm.orgPids ? this.dataForm.orgPids + ',' + element : element
this.dataForm.orgPids = this.dataForm.orgPids ? this.dataForm.orgPids + ':' + element : element
});
} else {
this.dataForm.orgPid = ''
@ -265,7 +257,7 @@
this.dataForm.agencyId = this.dataForm.maSelectAgency[this.dataForm.maSelectAgency.length - 1]
this.dataForm.agencyPids = ''
this.dataForm.maSelectAgency.forEach(element => {
this.dataForm.agencyPids = this.dataForm.agencyPids ? this.dataForm.agencyPids + ',' + element : element
this.dataForm.agencyPids = this.dataForm.agencyPids ? this.dataForm.agencyPids + ':' + element : element
});
} else {
this.dataForm.agencyId = ''
@ -283,12 +275,10 @@
...res.data
}
//
this.dataForm.mySelectOrg = this.dataForm.orgPids.split(',')
console.log(this.dataForm.orgPids.split(','))
this.dataForm.mySelectOrg = this.dataForm.orgPids
//
this.dataForm.maSelectAgency = this.dataForm.agencyPids.split(',')
console.log(this.dataForm.agencyPids.split(','))
this.dataForm.maSelectAgency = this.dataForm.agencyId
}).catch(() => {
})
@ -319,7 +309,7 @@
document.getElementById('mapSeach_id').style.display = "block"
document.getElementById('lon_lat_id').style.display = "block"
}
//
var center = new window.TMap.LatLng(36.0722275, 120.38945519)
// map TMap.Map()
@ -398,7 +388,7 @@
convert (lat, lng) {
markers.setGeometries([]);
// var input = document.getElementById('location').value.split(',');
// var input = document.getElementById('location').value.split(':');
let location
if (lat && lng) {
location = new TMap.LatLng(lat, lng);

6
src/views/modules/partymember/icpartyorgtree.vue

@ -19,7 +19,7 @@
<el-table-column label="操作" align="center" width="300">
<template slot-scope="scope">
<el-button v-if="scope.row.agencyId == agencyId || scope.row.agencyPids.includes(agencyId)"
@click="handleLook(scope.row.orgPids)"
@click="handleLook(scope.row.agencyId)"
type="text"
size="small"
class="div-table-button--detail">{{'查看党员'}}</el-button>
@ -139,10 +139,10 @@
}).catch(() => {})
},
//
handleLook(orgPids) {
handleLook(agencyId) {
this.lookMemberShow = true
this.$nextTick(() => {
this.$refs.ref_table_Member.initForm(orgPids)
this.$refs.ref_table_Member.initForm(agencyId)
})
},
lookMemberClose () {

6
src/views/modules/partymember/lookMember.vue

@ -54,10 +54,8 @@ export default {
},
components: {},
methods: {
initForm (orgPids) {
if (orgPids.split(',').length > 0) {
this.orgPids = orgPids.split(',')[orgPids.split(',').length - 1]
}
initForm (agencyId) {
this.orgPids = agencyId
this.tableLoading = true
this.loadTable()
},

83
src/views/modules/visual/communityParty/community.vue

@ -84,8 +84,9 @@
</div>
<div class="box-right">
<div class="box-map">
<screen-map class="map"
ref="map"
<screen-map v-show="showMap" class="map"
ref="cmap"
:mapId="'cmap'"
:showPolygonLayer="true"
:isAddOpenlay="true"
:clickType="'popup'"
@ -281,7 +282,8 @@ export default {
orgId: '',
orgLevel: '',
parentPolygon: [],
unitAclist: []
unitAclist: [],
showMap: false
};
},
async mounted () {
@ -500,7 +502,7 @@ export default {
//
async getUnitList (agencyId) {
this.visibleLoading = true
// this.showMap = false
const url = "/heart/icpartyunit/listbrief"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyactivity/list"
let params = {
@ -513,6 +515,7 @@ export default {
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.showMap = false
this.unitTotal = data.total
this.unitTableData = data.list.map((item, index) => {
return {
@ -521,13 +524,15 @@ export default {
}
})
const url = require('../../../../assets/img/shuju/measure/other.png')
this.iconUrlArray = [url, url, url, url, url, url, url, url]
this.iconUrlArray = [url]
this.showMap = true
//false
this.$nextTick(() => {
this.loadMap()
this.$forceUpdate()
this.isfirstInit = false
})
// this.isfirstInit = false
} else {
@ -899,16 +904,76 @@ export default {
'https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20211116/a219130b6bc74b0b80b5ddb0fce0892a.png'
]
console.log('this.unitTableData', this.unitTableData)
this.$refs.map.loadMap(this.agencyInfo, this.parentPolygon, polIconUrlArray, this.unitTableData, this.iconUrlArray, null)
this.$refs.cmap.loadMap(this.agencyInfo, this.parentPolygon, polIconUrlArray, this.unitTableData, this.iconUrlArray, null)
} else {
this.$refs.map.refreshMap(this.agencyInfo, this.unitTableData)
this.$refs.cmap.refreshMap(this.agencyInfo, this.parentPolygon, this.unitTableData)
}
},
//
clickProject (feature) {
async clickProject (feature) {
console.log('标注信息', feature.values_.properties)
if (!feature.values_.properties.info.id) {
return false
}
const info = feature.values_.properties.info
const url = "/heart/icpartyunit/detail"
// const url = "http://yapi.elinkservice.cn/mock/245/heart/icpartyunit/distribution"
let params = {
id: info.id
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
console.log('data-------', data)
let _info = {
unitName: '',
type: '',
contact: '',
contactMobile: '',
memberCount: '',
remark: '',
address: ''
}
let coordinate = [info.longitude, info.latitude]
for(const n in _info) {
_info[n] = data[n] && data[n] || '--'
}
_info.type = info.type
let showData = `
<div style='font-size:16px; color:#FFFFFF;'>单位信息</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:10px'>单位名称
<span>`+ _info.unitName + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>单位类型
<span>`+ _info.type + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>联系人
<span>`+ _info.contact + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>联系电话
<span>`+ _info.contactMobile + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>在职党员
<span>`+ _info.memberCount + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>备注
<span>`+ _info.remark + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>地址
<span>`+ _info.address + `</span>
</div>
`
this.$refs.cmap.handleShowPopup(showData, coordinate)
} else {
this.$message.error(msg)
}
},
async handleLook (val) {

736
src/views/modules/visual/communityParty/gridParty.vue

@ -0,0 +1,736 @@
<template>
<div class="warning-box">
<cpt-card>
<div class="card-title">
<img class="title-icon" src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
网格党建平面图&nbsp;&nbsp;
<el-cascader
v-model="selectAgency"
:options="propTree"
:props="{ checkStrictly: true }"
:show-all-levels="false"
:getCheckedNodes="getCheckedNodes"
clearable
@change="handleCascader">
</el-cascader>
</div>
</div>
<div class="card-echart">
<div class="card-left">
<!-- <div class="card-left-title">党员学历统计</div> -->
<div class="card-flex">
<div class="echart-wr echart-wr100">
<screen-echarts-frame class="echart-org"
@myChartMethod="pieInitOks"
ref="eduChart"></screen-echarts-frame>
</div>
</div>
<div class="warning-box-bottom">
<screen-table
:headerList="headerEduList"
:tableData="eduList"
:headerStyle="headerStyle"
:tableContentStyle="headerStyle"
:visibleLoading="visibleLoading"
:operate="false"
@row="handleClickRow"
></screen-table>
<div class="pagination">
<el-pagination
:current-page="pageNo"
:page-size="pageSize"
background
layout="prev, pager, next"
@size-change="pageSizeChangeHandle"
@current-change="pageCurrentChangeHandle"
:total="total"
>
</el-pagination>
</div>
</div>
</div>
<div class="card-right">
<screen-map class="map"
ref="map"
@clickFeature="clickProject"
@lookMore="lookMore"
:showPolygonLayer="true"
:isAddOpenlay="true"
:clickType="'popup'"
:showIconLayer="true"
:showPolIconLayer="true"
:areaScale="0.1"></screen-map>
</div>
</div>
</cpt-card>
<member-info v-if="showedUnitMoreInfo"
:list="unitAclist"
ref="unitdetailInfo"
@close="showedUnitMoreInfo = false" />
<people-more v-show="showedMoreInfo"
v-if="userId"
:userId="userId"
:gridName="''"
@close="showedMoreInfo = false" />
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import screenTable from "../components/screen-table/index";
import cptCard from "@/views/modules/visual/cpts/card";
import nextTick from "dai-js/tools/nextTick";
import screenEchartsFrame from "../components/screen-echarts-frame";
import { pieOption } from './options'
import * as echarts from 'echarts';
import screenMap from "@/views/modules/visual/components/screen-map";
import memberInfo from './memberInfo.vue'
import peopleMore from "@/views/modules/visual/basicinfo/cpts/people-more";
export default {
name: "gridParty",
components: {
cptCard,
screenTable,
screenEchartsFrame,
screenMap,
memberInfo,
peopleMore
},
data() {
return {
headerStyle: [
{
'max-width': '60px'
},
{
'min-width': '100px'
},
{
'min-width': '100px'
},
{
'min-width': '160px'
}
],
headerEduList: [
{ title: "序号", coulmn: 'index' },
{ title: "姓名", coulmn: 'name' },
{ title: "手机号码", coulmn: 'mobile' }
],
noEduInit: false,
selectAgency: null,
eduTotalCount: 0,
propTree: [],
visibleLoading: true,
agencyId: '',
orgType: '',
eduCode: '', //
pageNo: 1,
pageSize: 10,
total: 0,
eduItem: [],
eduList: [],
pieEduOptions: null,
showedUnitMoreInfo: false,
unitAclist: [],
// *********************************************start
isfirstInit: true,
agencyInfo: {},//level
iconUrlArray: [],
parentPolygon: [],
orgId: '',
unitMapList: [],
showedMoreInfo: false,
userId:"",
// *********************************************end
};
},
async mounted() {
await nextTick(100);
await this.getAgencyList()
this.agencyId = this.$store.state.user.agencyId
this.getEduCount(this.$store.state.user.agencyId) //
this.getEduList() //
// start
this.iconUrlArray = [
require('../../../../assets/img/shuju/measure/lxdj.png'),
require('../../../../assets/img/shuju/measure/lxzz.png'),
require('../../../../assets/img/shuju/measure/qydw.png'),
require('../../../../assets/img/shuju/measure/jgzs.png'),
require('../../../../assets/img/shuju/measure/qita.png'),
require('../../../../assets/img/shuju/measure/minban.png'),
require('../../../../assets/img/shuju/measure/jijin.png'),
require('../../../../assets/img/shuju/measure/other.png')
]
await this.loadOrgData()
await this.getWorkUserInfo()
this.loadMap()
this.isfirstInit = false
// end
},
methods: {
loadMap () {
if (this.isfirstInit) {
const polIconUrlArray = [
'https://elink-esua-epdc.oss-cn-qingdao.aliyuncs.com/epmet/test/20211116/a219130b6bc74b0b80b5ddb0fce0892a.png'
]
this.$refs.map.loadMap(this.agencyInfo, this.parentPolygon, polIconUrlArray, this.unitMapList, this.iconUrlArray, null,)
} else {
this.$refs.map.refreshMap(this.agencyInfo, this.parentPolygon, this.unitMapList)
}
},
//
async getAgencyList(node, resolve) {
const url = '/gov/org/customeragency/agencygridtree'
// let params = {
// agencyId: this.$store.state.user.agencyId,
// };
const { data, code, msg } = await requestPost(url);
if (code === 0) {
console.log('data-org----o', data)
this.selectAgency = [`${data.agencyId}-${data.level}`]
this.orgType = data.level
this.agencyId = data.agencyId
let arr = []
arr.push(data)
this.propTree = arr && this.getTreeData(arr)
} else {
}
},
//
getTreeData(data){
if (!Array.isArray(data)) return []
let arr = data.map(item => {
let _item = {}
if (item.subAgencyList) {
if (item.subAgencyList.length === 0) {
_item = {
label: item.agencyName,
value: item.agencyId + '-' + item.level,
level: item.level,
children: undefined
}
} else _item = {
label: item.agencyName,
value: item.agencyId + '-' + item.level,
level: item.level,
children: this.getTreeData(item.subAgencyList)}
} else {
_item = {
label: item.agencyName,
value: item.agencyId + '-' + item.level,
level: item.level,
}
}
return _item
})
return arr
},
//
async handleCascader(val) {
console.log('val-vvv', val)
const _arr = val[val.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
this.agencyId = _arr[0]
this.orgId = _arr[0]
this.orgType = orgType
this.noEduInit = false
this.agencyInfo = { ...this.orgData }
console.log('agencyInfo-----', this.agencyInfo)
this.eduCode = ''
await this.loadOrgData()
this.getEduCount(_arr[0])
this.eduList = []
this.pageNo = 1;
this.pageSize = 10;
await this.getEduList()
this.getMapData()
},
// *********************************
//
async getEduCount(agencyId) {
const url = "/epmetuser/icVolunteerPoly/statistics";
let params = {
agencyId
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.eduItem = data.map(item => {
return {
...item,
name: item.label,
isClick: false
}
})
this.eduTotalCount = 0
data.forEach(item => {
this.eduTotalCount += Number(item.value)
})
this.initEduCharts()
} else {
}
},
initEduCharts() {
// const eId = document.getElementById('echartOrg')
// let _charts = echarts.init(eId)
let option = {
}
let legend = {
show: true,
orient: 'vertical',
top: '20%',
right: 0,
textStyle: {
width: 90,
color: '#fff',
rich: {
a: {
width: 90
}
}
},
formatter: name => {
for (let a = 0; a < this.eduItem.length; a++) {
// this.data
if (this.eduItem[a].name === name) {
//
let params1 = name + "\n"; //returnlegend
let tmp = params1.split("\n");
let res = "" + params1;
for (let i in tmp) {
res = res.replace(tmp[i], "");
}
return res + params1;
}
}
}
}
this.pieEduOptions = pieOption(this.pieEduChartS)
this.pieEduOptions.legend = { ...legend }
this.clickEduPie(0)
let fun = params => {
this.clickEduPie(params.dataIndex)
}
this.$refs.eduChart.handleClick(fun)
},
//
clickEduPie (seriesIndex) {
let _code = ''
let isClick = false
this.eduItem.forEach((element, index) => {
if (index === seriesIndex) {
_code = element.code
if (!this.noEduInit) isClick = false
else {
element.isClick = !element.isClick
isClick = element.isClick
}
element.label = {
show: true,
};
element.labelLine = {
show: true,
lineStyle: {
opacity: 1,
}
};
console.log('zlcm')
} else {
element.isClick = false
element.label = {
show: false,
};
element.labelLine = {
show: false,
lineStyle: {
opacity: 0,
color: 'rgba(255,255,255,0)'
}
};
}
});
this.eduCode = isClick && _code || ''
this.pieEduOptions.title.text = this.eduTotalCount
this.pieEduOptions.series[1].data = this.eduItem
// this.$refs.pieChart.hideLoading()
this.$refs.eduChart.setOption(this.pieEduOptions)
if (this.noEduInit) {
const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
this.pageNo = 1
this.getEduList(isClick && _code || '')
this.getMapData(isClick && _code || '')
}
this.noEduInit = true
},
// *************************************
//
async getEduList(_code) {
this.visibleLoading = true
const url = "/epmetuser/icVolunteerPoly/list";
let params = {
code: this.eduCode,
agencyId: this.agencyId,
pageNo: this.pageNo,
pageSize: this.pageSize
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
this.eduList = data.list.map((item, index) => {
return {
...item,
index: index + 1
}
})
this.total = data.total
} else {
this.$message.error(msg)
}
this.visibleLoading = false
},
pieInitOks (dom) {
console.log('pies准备好了', dom)
this.pieEduChartS = dom
// this.pieInitState = true
},
//
handleClickRow(val) {
this.servicelist(val.idCard)
},
// -
async servicelist (idCard) {
const url = "/heart/residemand/service-list";
let params = {
pageNo: 1,
pageSize: 1000,
type: 'volunteer', // volunteercommunity_org
idCard: idCard, // volunteer
serverId: ''
};
const { data, code, msg } = await requestPost(url, params);
if (code === 0) {
if (data.list.length > 0) {
this.showedUnitMoreInfo = true
this.unitAclist = data.list
this.$nextTick(() => {
console.log(this.unitAclist[0].demandRecId)
this.$refs['unitdetailInfo'].getDetail(this.unitAclist[0].demandRecId)
})
} else {
this.showedUnitMoreInfo = false
this.unitAclist = []
this.$message.warning('该志愿者还没有需求')
}
} else {
}
},
getCheckedNodes(val) {
console.log('val-nnn', val)
},
pageSizeChangeHandle(val) {
this.pageNo = 1;
this.pageSize = val;
this.getEduList(this.eduCode)
},
pageCurrentChangeHandle(val) {
this.pageNo = val;
this.getEduList(this.eduCode)
},
async loadOrgData () {
const url = "/gov/org/agency/maporg"
let params = {
orgId: this.orgId,
level: this.orgLevel
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.orgData = data
this.orgId = this.orgData.id
this.orgLevel = this.orgData.level
this.parentPolygon = []
this.parentPolygon = data.children.map(item => {
return {
...item,
color: "#00E5ED",
fillColor: "rgba(0, 229, 237, 0.16)"
}
})
} else {
this.$message.error(msg)
}
},
//
getWorkUserInfo () {
const url = '/epmetuser/customerstaff/staffbasicinfo'
let params = {}
window.app.ajax.post(
url,
params,
(data, rspMsg) => {
this.agencyInfo = data
if (!data.latitude) {
this.agencyInfo.latitude = 36.072227
}
if (!data.longitude) {
this.agencyInfo.longitude = 120.389455
}
if (!data.level) {
this.agencyInfo.level = 'street'
}
},
(rspMsg, data) => {
this.$message.error(rspMsg)
}
)
},
//
getMapData () {
const url = '/epmetuser/icVolunteerPoly/mapData'
let params = {
agencyId: this.agencyId,
code: this.eduCode
}
window.app.ajax.post(
url,
params,
(data, rspMsg) => {
this.unitMapList = data
this.isfirstInit = false
this.loadMap()
},
(rspMsg, data) => {
this.$message.error(rspMsg)
}
)
},
//
async clickProject (feature) {
this.userId = ''
const featureInfo = feature.values_.properties.info
this.userId = feature.values_.properties.info.id
console.log('feature.values_.properties.info:::', JSON.stringify(feature.values_.properties.info))
let coordinate = [featureInfo.longitude, featureInfo.latitude]
console.log(feature.values_.properties.info)
let showData = `
<div style='font-size:16px; color:#FFFFFF;'>个人信息</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:10px'>姓名
<span>`+ feature.values_.properties.info.name + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:10px'>所属网格
<span>`+ feature.values_.properties.info.gridName + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>所属房屋
<span>`+ feature.values_.properties.info.houseName + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>手机号
<span>`+ feature.values_.properties.info.mobile + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>身份证号
<span>`+ feature.values_.properties.info.idCard + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>工作单位
<span>`+ feature.values_.properties.info.gzdw + `</span>
</div>
<div style='font-size:12px; color:#FFFFFF;margin-top:5px'>人户状况
<span>`+ feature.values_.properties.info.rhzk + `</span>
</div>
`
this.$refs.map.handleShowPopup(showData, coordinate, true)
},
lookMore(e) {
this.userId = this.userId
console.log('userId:', this.userId)
this.showedMoreInfo = true
}
},
};
</script>
<style
lang="scss"
src="@/assets/scss/modules/visual/warning.scss"
scoped
></style>
<style
lang="scss"
src="@/assets/scss/modules/visual/basicInfoMain.scss"
scoped
></style>
<style lang="scss" scoped>
.card-title {
display: flex;
align-items: center;
cursor: pointer;
.title-icon {
display: block;
width: 46px;
height: 34px;
box-sizing: border-box;
margin-right: 6px;
}
::v-deep .el-dropdown {
font-size: 18px;
color: #fff;
font-weight: 800;
}
.title-time {
display: flex;
align-items: center;
box-sizing: border-box;
margin-left: 30px;
font-size: 14px;
color: #fff;
.title-time-label {
margin-right: 10px;
}
::v-deep .el-date-editor--month {
width: 100px;
.el-input__inner {
width: 100px;
height: 24px;
box-sizing: border-box;
padding: 0;
font-size: 14px;
color: #fff;
line-height: 24px;
text-align: center;
background: #06186D;
border: 1px solid #1A64CC;
border-radius: 2px;
}
.el-input__prefix {
display: none;
}
.el-input__suffix {
right: 0;
.el-input__icon {
line-height: 24px;
}
}
}
}
.title-label {
font-size: 20px;
font-weight: 800;
::v-deep .el-input {
width: 180px;
.el-input__inner {
font-size: 18px;
// font-weight: 800;
color: #fff;
background: #06186d;
border: 1px solid #1a64cc;
}
.el-icon-arrow-down::before {
content: "\e790";
}
}
}
}
.card-echart {
display: flex;
margin-top: 40px;
height: 100%;
.card-left {
position: relative;
flex: 1;
height: 100%;
width: 50%;
.card-flex {
width: 100%;
display: flex;
}
}
.card-right {
position: relative;
flex: 1;
height: 790px;
width: 50%;
.map {
height: 100%;
width: 100%;
}
.div_map {
box-sizing: border-box;
height: 100%;
color: #fff;
}
}
}
.card-left-title {
position: relative;
padding-left: 40px;
font-size: 16px;
font-weight: 500;
color: #fff;
}
.card-left-title::after {
content: '';
position: absolute;
top: 50%;
left: 20px;
width: 12px;
height: 12px;
box-sizing: border-box;
margin-top: -6px;
background: #2865FA;
border-radius: 50%;
}
.echart-wr {
position: relative;
flex-shrink: 0;
width: 50%;
height: 320px;
box-sizing: border-box;
.echart-org {
width: 100%;
height: 100%;
}
.echart-cicle {
position: absolute;
top: 50%;
left: 50%;
width: 240px;
height: 240px;
box-sizing: border-box;
margin-top: -120px;
margin-left: -120px;
border: 1px dashed rgba(0, 96, 240, 1);
border-radius: 50%;
}
.echart-cicle0 {
left: 80px;
margin-left: 0;
}
}
.echart-wr100 {
width: 70%;
}
.warning-box-bottom {
height: calc(100% - 500px);
box-sizing: border-box;
margin: 0;
padding: 0 30px;
// overflow-y: scroll;
}
</style>

251
src/views/modules/visual/communityParty/memberInfo.vue

@ -0,0 +1,251 @@
<template>
<div class="m-pop">
<div class="wrap">
<cpt-card>
<div class="title">
<img src="@/assets/img/shuju/title-tip.png" />
<span>需求内容</span>
</div>
<div class="btn-close" @click="handleClose">
<img src="@/assets/img/shuju/people/close.png" />
</div>
<div class="list-wr info-h">
<div class="list-left info-scroll">
<div v-for="(item, index) in list" :key="item.id" class="left-item"
:class="current == index &&'left-item-on'" @click="handleTabs(item, index)">
<div class="item-title">{{ item.content }}</div>
<div class="item-time">{{ item.reportTime }}</div>
</div>
</div>
<div class="list-right list-wr info-scroll">
<div class="list">
<div class="item">
<span class="item-field">所属网格</span>
<span v-if="info.gridName">{{ info.gridName }}</span>
</div>
<div class="item">
<span class="item-field">需求类型</span>
<span v-if="info.categoryName">{{ info.categoryName }}</span>
</div>
<div class="item">
<span class="item-field">上报人</span>
<span v-if="info.reportUserName">{{ info.reportUserName }}</span>
</div>
<div class="item">
<span class="item-field">上报人手机</span>
<span v-if="info.reportUserMobile">{{ info.reportUserMobile }}</span>
</div>
<div class="item">
<span class="item-field">上报时间</span>
<span v-if="info.reportTime">{{ info.reportTime }}</span>
</div>
<div class="item">
<span class="item-field">需求人</span>
<span v-if="info.demandUserName">{{ info.demandUserName }}</span>
</div>
<div class="item">
<span class="item-field">服务时间</span>
<span v-if="info.wantServiceTime">{{ info.wantServiceTime }}</span>
</div>
<div class="item">
<span class="item-field">需求内容</span>
<span v-if="info.content">{{ info.content }}</span>
</div>
<div class="item">
<span class="item-field">服务方</span>
<span v-if="info.serviceShowName">{{ info.serviceShowName }}</span>
</div>
<div class="item">
<span class="item-field">实际服务时间</span>
<span v-if="info.categoryName">{{ info.serviceStartTime }} {{ info.serviceEndTime }}</span>
</div>
</div>
</div>
</div>
<!-- <div class="tabs">
<div
class="tab-btn"
>
<img src="@/assets/img/shuju/people/arrow-double-left.png" />
</div>
<div
class="tab z-on"
>
研判分析
</div>
<div
class="tab-btn"
>
<img src="@/assets/img/shuju/people/arrow-double-right.png" />
</div>
</div>
<div style="padding: 30px 0;">
<analyse :single-list="demandList" :single-title="'需求上报'" :more-title="'事件上报'" :user-list="userLists"
:user-name="userName" :has-event="false" :more-list="eventList" />
</div> -->
</cpt-card>
</div>
</div>
</template>
<script>
import cptCard from "@/views/modules/visual/cpts/card";
import analyse from '../cpts/analyse.vue'
import { requestPost } from "@/js/dai/request";
export default {
name: "dialogInfo",
props: {
list: {
type: Array,
default: () => [],
},
type: {
type: String,
default: "",
},
agencyId: {
type: String,
default: "",
},
},
components: {
cptCard,
analyse
},
data() {
return {
list: [],
current: 0,
info: {}
};
},
mounted() {
},
methods: {
handleClose() {
this.$emit("close");
},
handleTabs(item, index) {
this.current = index
this.getDetail(item.demandRecId)
},
async getDetail (id) {
this.info = {}
const _id = this.list[0].id
const url = "/heart/userdemand/demandDetail"
let params = {
demandRecId: id || _id
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.info = data
// this.info.serviceMatterNameShow = data.serviceMatterNameList.join(',')
// this.info.unitNameShow = data.unitNameList.join(',')
} else {
this.$message.error(msg)
}
},
}
};
</script>
<style lang="scss" src="@/assets/scss/modules/visual/people.scss" scoped></style>
<style lang="scss" scoped>
.m-pop {
.wrap {
margin-bottom: 0;
.list {
display: block;
width: 50%;
.item {
display: flex;
width: 100%;
box-sizing: border-box;
margin-top: 0;
margin-bottom: 15px;
font-size: 16px;
cursor: pointer;
.item-field {
// width: 100px;
flex-shrink: 0;
}
.item-content {
width: 100%;
max-height: 420px;
overflow-y: auto;
}
::v-deep p {
margin: 0;
img {
width: 100%;
height: 100%;
}
}
}
.item-desc {
font-size: 16px;
margin-bottom: 10px;
line-height: 24px;
}
}
}
.list-title {
width: 100%;
box-sizing: border-box;
padding: 20px 0 10px 62px;
font-size: 20px;
cursor: pointer;
}
}
.list-wr {
display: flex;
padding: 0 32px;
}
.list-left {
width: 180px;
height: 100%;
box-sizing: border-box;
padding-right: 20px;
flex-shrink: 0;
border-right: 1px dashed #1257c9;
overflow: auto;
.left-item {
padding: 10px 0;
cursor: pointer;
.item-title {
font-size: 16px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
margin-bottom: 5px;
}
}
.left-item-on {
color: #0095FF;
}
}
.list-right {
flex: 1;
height: 100%;
overflow: auto;
}
</style>

123
src/views/modules/visual/communityParty/party.vue

@ -5,13 +5,24 @@
<img class="title-icon" src="../../../../assets/img/shuju/title-tip.png" />
<div class="title-label">
党员信息统计&nbsp;&nbsp;
<el-cascader
<!-- <el-cascader
v-model="selectAgency"
:options="propTree"
:props="{ checkStrictly: true }"
:show-all-levels="false"
:getCheckedNodes="getCheckedNodes"
clearable @change="handleCascader">
</el-cascader> -->
<el-cascader
v-model="partyOrgs"
:options="partyOrgList"
:props="{
label: 'partyOrgName',
value: 'id',
checkStrictly: true
}"
:show-all-levels="false"
clearable @change="handlePartyCascader">
</el-cascader>
</div>
</div>
@ -124,7 +135,7 @@
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { requestPost, requestGet } from "@/js/dai/request";
import screenTable from "../components/screen-table/index";
import cptCard from "@/views/modules/visual/cpts/card";
import nextTick from "dai-js/tools/nextTick";
@ -251,8 +262,10 @@ export default {
color: 'rgba(255, 186, 0, 1)'
}
],
partyOrgs: [],
ageList: [],
eduList: [],
partyOrgList: [],
pieAgeChartS: null,
pieEduChartSs: null,
pieAgeOptions: null,
@ -261,13 +274,19 @@ export default {
},
async mounted() {
await nextTick(100);
await this.getAgencyList()
this.getAgeCount(this.$store.state.user.agencyId, 'agency')
this.getEduCount(this.$store.state.user.agencyId, 'agency')
// await this.getAgencyList()
await this.getPartyOggList()
// this.getAgeCount(this.$store.state.user.agencyId, 'agency')
// this.getEduCount(this.$store.state.user.agencyId, 'agency')
// this.getAgeList(this.$store.state.user.agencyId, 'agency')
// this.getEduList(this.$store.state.user.agencyId, 'agency')
this.getAgeCount()
this.getEduCount()
this.getAgeList()
this.getEduList()
// this.initAgeCharts()
// this.initEduCharts()
this.getAgeList(this.$store.state.user.agencyId, 'agency')
this.getEduList(this.$store.state.user.agencyId, 'agency')
// this.initChartType()
},
methods: {
@ -521,11 +540,14 @@ export default {
// this.$refs.pieChart.hideLoading()
this.$refs.ageChart.setOption(this.pieAgeOptions)
if (this.noInit) {
const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
console.log('zlcm---isClick', isClick)
this.agePageNo = 1
this.getAgeList(_arr[0], orgType, isClick && _code || '')
// const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
// const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
// console.log('zlcm---isClick', isClick)
// this.agePageNo = 1
// this.getAgeList(_arr[0], orgType, isClick && _code || '')
const i = this.partyOrgs.length - 1
this.agePageNo = 1
this.getAgeList(this.partyOrgs[i], '', isClick && _code || '')
}
this.noInit = true
@ -578,19 +600,24 @@ export default {
// this.$refs.pieChart.hideLoading()
this.$refs.eduChart.setOption(this.pieEduOptions)
if (this.noEduInit) {
const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
// const _arr = this.selectAgency[this.selectAgency.length - 1].split('-')
// const orgType = _arr[1] !== 'grid' ? 'agency': 'grid'
// this.pageNo = 1
// this.getEduList(_arr[0], orgType, isClick && _code || '')
const i = this.partyOrgs.length - 1
this.pageNo = 1
this.getEduList(_arr[0], orgType, isClick && _code || '')
this.getEduList(this.partyOrgs[i], '', isClick && _code || '')
}
this.noEduInit = true
},
async getAgeCount(orgId, orgType) {
const url = "/epmetuser/icresiuser/partymemberagestatistics";
// const url = "/epmetuser/icresiuser/partymemberagestatistics";
const url = '/resi/partymember/icPartyMember/partymemberagestatistics'
let params = {
orgId,
orgId: orgId || '',
orgType
};
const { data, code, msg } = await requestPost(url, params);
@ -637,9 +664,10 @@ export default {
}
},
async getEduCount(orgId, orgType) {
const url = "/epmetuser/icresiuser/partymembereducationstatistics";
// const url = "/epmetuser/icresiuser/partymembereducationstatistics";
const url = '/resi/partymember/icPartyMember/partymembereducationstatistics'
let params = {
orgId,
orgId: orgId || '',
orgType
};
const { data, code, msg } = await requestPost(url, params);
@ -662,9 +690,10 @@ export default {
async getAgeList(orgId, orgType, _code) {
this.visibleAgeLoading = true
const url = "/epmetuser/icresiuser/partymemberagelist";
// const url = "/epmetuser/icresiuser/partymemberagelist";
const url = '/resi/partymember/icPartyMember/partymemberagelist'
let params = {
orgId,
orgId: orgId || '',
orgType,
code: _code || '',
pageNo: this.agePageNo,
@ -687,9 +716,10 @@ export default {
},
async getEduList(orgId, orgType, _code) {
this.visibleLoading = true
const url = "/epmetuser/icresiuser/partymembereducationlist";
// const url = "/epmetuser/icresiuser/partymembereducationlist";
const url = '/resi/partymember/icPartyMember/partymembereducationlist'
let params = {
orgId,
orgId: orgId || '',
orgType,
code: _code || '',
pageNo: this.pageNo,
@ -703,12 +733,39 @@ export default {
index: index + 1
}
})
console.log('eduList----', this.eduList)
this.total = data.total
} else {
this.$message.error(msg)
}
this.visibleLoading = false
},
async getPartyOggList(node, resolve) {
// const url = "/gov/org/customeragency/staffinagencylist";
// const url = '/gov/org/customeragency/agencygridtree'
const url = '/resi/partymember/icPartyOrg/getTreelist'
let params = {
agencyId: this.$store.state.user.agencyId,
};
const { data, code, msg } = await requestGet(url, params);
console.log('data-orgparty----o', data)
if (code === 0) {
this.partyOrgList = this.deepArrTOnull(data)
} else {
}
},
deepArrTOnull(arr) {
let a = []
a = arr.map(item => {
return {
...item,
children: (item.children.length > 0 && this.deepArrTOnull(item.children) )|| null
}
})
return a
},
async getAgencyList(node, resolve) {
// const url = "/gov/org/customeragency/staffinagencylist";
const url = '/gov/org/customeragency/agencygridtree'
@ -775,6 +832,26 @@ export default {
this.getAgeList(_arr[0], orgType)
this.getEduList(_arr[0], orgType)
},
handlePartyCascader(val) {
console.log('val-vvvpppppp', val)
this.noInit = false
this.noEduInit = false
if (val.length > 0) {
const i = val.length - 1
this.agencyId = val[i]
this.getAgeCount(val[i])
this.getEduCount(val[i])
this.getAgeList(val[i])
this.getEduList(val[i])
} else {
this.agencyId = ''
this.getAgeCount('')
this.getEduCount('')
this.getAgeList('')
this.getEduList('')
}
},
getCheckedNodes(val) {
console.log('val-nnn', val)
},

122
src/views/modules/visual/components/screen-map/index.vue

@ -21,8 +21,8 @@
</div>-->
<div class="div_map"
id="map"
ref="map">
:id="mapId"
:ref="mapId">
</div>
<div id="popup"
style="display: none;"
@ -32,6 +32,8 @@
class="ol-popup-closer"></a>
<div id="popup-content"
class="popup-content"></div>
<a href="#"
id="popup-goMore">更多>>>></a>
</div>
</div>
</template>
@ -225,6 +227,7 @@ const vueGis = {
//
this.initMap()
if (this.showPolIconLayer) {
console.log('showPolIconLayer++++++++++++++++++++++', this.showPolIconLayer)
//
@ -256,35 +259,40 @@ const vueGis = {
},
//
async refreshMap (polygonArray, iconArrays) {
async refreshMap (mapInfo, polygonArray, iconArrays) {
this.mapInfo = mapInfo
this.polygonArray = []
this.polygonArray = polygonArray
this.iconArrays = iconArrays
iconSource.clear()
polygonSource.clear()
polIconSource.clear()
this.initPolIconLayer()
if (this.showPolygonLayer) {
this.initPolygonLayer()
//
this.loadPolygon()
}
if (this.showPolIconLayer) {
this.initIconLayer()
//
this.loadPolIcon()
// this.loadPolIcon()
}
if (this.showIconLayer) {
this.loadIcon()
}
this.setMapLocation()
// gaodeMapLayer.getSource().changed()
},
//
//
loadPolygon () {
polygonSource.clear()//
// iconSource.clear()
let featureData = []//
if (this.polygonArray && this.polygonArray.length > 0) {//
@ -342,9 +350,11 @@ const vueGis = {
},
//icon
//icon
loadPolIcon (feature) {
polIconSource.clear()
let polyIconFeatures = [];
console.log('feature-----', feature)
feature.forEach(oneIcon => {
var extent = boundingExtent(oneIcon.getGeometry().getCoordinates()[0]); //[minx,miny,maxx,maxy]
@ -397,7 +407,6 @@ const vueGis = {
info: { ...oneIcon }
}
});
console.log('oneIcon-----ttt', oneIcon)
let iconStyle = new Style({
image: new Icon({
// anchor: [0.5, 0.5],
@ -443,7 +452,7 @@ const vueGis = {
//
initMap () {
this.setMapLocation()
this.firstCentermap()
gaodeMapLayer = new TileLayer({
title: "地图",
source: new XYZ({
@ -470,7 +479,7 @@ const vueGis = {
layers: [gaodeMapLayer],
//
view: mapView,
target: 'map'
target: this.mapId
//map
})
@ -496,8 +505,52 @@ const vueGis = {
},
//
setMapLocation () {
if (!this.zoom) {
this.setZoom(this.mapInfo.agencyLevel)
}
this.centerPoint = []
//
if (this.center && this.center.length > 0) {
this.centerPoint = this.center
this.centerFlag = 'point'
this.center = []
} else if (polygonLayer.getSource().getFeatures()[0]) {//,
this.centerFlag = 'flag_polygon'
} else if (this.mapInfo.longitude && this.mapInfo.latitude) {
this.centerPoint.push(this.mapInfo.longitude)
this.centerPoint.push(this.mapInfo.latitude)
this.centerFlag = 'point'
} else {
this.centerPoint = centerPointGlobal
this.centerFlag = 'point'
}
// debugger
if (this.centerFlag === 'flag_parent') {
let parentFeatures = parentLayer.getSource().getFeatures()[0]
let polygon = parentFeatures.getGeometry();
map.getView().fit(polygon, map.getSize());
this.zoom = map.getView().getZoom() - 1
} else if (this.centerFlag === 'flag_polygon') {
let polygonFeatures = polygonLayer.getSource().getFeatures()[0]
let polygon = polygonFeatures.getGeometry();
map.getView().fit(polygon, map.getSize());
this.zoom = map.getView().getZoom() - 1
} else {
mapView.setCenter(this.centerPoint);
}
mapView.setZoom(this.zoom);
},
firstCentermap() {
if (this.mapInfo.longitude && this.mapInfo.latitude) {
this.centerPoint = []
this.centerPoint.push(this.mapInfo.longitude)
@ -507,7 +560,7 @@ const vueGis = {
this.centerPoint = centerPointGlobal
}
this.setZoom(this.mapInfo.level)
this.setZoom(this.mapInfo.agencyLevel)
},
//
@ -525,7 +578,8 @@ const vueGis = {
//
initPolygonLayer () {
polygonSource = new VectorSource({
//features: (new GeoJSON()).readFeatures(geojsonObject)
// features: (new GeoJSON()).readFeatures(geojsonObject)
wrapX: false
});
polygonLayer = new VectorLayer({
@ -576,6 +630,7 @@ const vueGis = {
initPolIconLayer () {
polIconSource = new VectorSource({
//features: (new GeoJSON()).readFeatures(geojsonObject)
wrapX: false
});
polIconLayer = new VectorLayer({
@ -589,9 +644,9 @@ const vueGis = {
//icon
initIconLayer () {
console.log('initttttt-----icon')
iconSource = new VectorSource({
//features: (new GeoJSON()).readFeatures(geojsonObject)
wrapX: false
});
iconLayer = new VectorLayer({
@ -615,6 +670,7 @@ const vueGis = {
var container = document.getElementById("popup");
var closer = document.getElementById("popup-closer");
var content = document.getElementById("popup-content");
var goMore = document.getElementById("popup-goMore") ? document.getElementById("popup-goMore") : null
// Overlay
this.overlay = new Overlay({
@ -637,6 +693,11 @@ const vueGis = {
closer.blur();
return false;
};
if (goMore) {
goMore.onclick = function () {
_that.$emit('lookMore')
};
}
},
//
@ -668,15 +729,21 @@ const vueGis = {
});
},
handleShowPopup (showData, coordinate) {
handleShowPopup (showData, coordinate, isShowMore) {
if (isShowMore) {
document.getElementById("popup-goMore").style.display = 'block'
} else {
document.getElementById("popup-goMore").style.display = 'none'
}
console.log(this.overlay.getElement())
let content = document.getElementById("popup-content");
this.overlay.getElement().style.display = 'block'
this.overlay.getElement().parentNode.style.display = 'block'
this.overlay.getElement().parentNode.parentNode.style.display = 'block'
var content = document.getElementById("popup-content");
content.innerHTML = showData;
this.overlay.setPosition(coordinate); // overlay x,y
this.overlay.setPosition(coordinate);
// overlay x,y
},
//
@ -703,6 +770,10 @@ const vueGis = {
},
},
props: {
mapId: {
type: String,
default: 'map'
},
//
showPolygonLayer: {
type: Boolean,
@ -819,6 +890,7 @@ export default vueGis;
}
.ol-popup-closer:after {
content: "✖";
color: rgba(1, 17, 104, 1);
// color: rgba(1, 17, 104, 1);
color: #fff;
}
</style>
Loading…
Cancel
Save