Merge branch 'dev' of http://git.sinoecare.com/sinoecare/digital_village_v2/dvcp_v2_wxcp_app into dev
This commit is contained in:
@@ -10,12 +10,10 @@
|
||||
</div>
|
||||
</AiPagePicker>
|
||||
<div class="grid-input">
|
||||
<img src="./img/back-icon.png" alt="" class="back-icon" v-if="name && show" @click="show=false">
|
||||
<img src="./img/search-icon-w.png" alt="" class="search-icon" v-else>
|
||||
<input type="text" class="input" placeholder="请输入姓名、房屋信息" v-model="name" maxlength="10" confirm-type="search"
|
||||
@confirm="search"/>
|
||||
<img src="./img/search-icon-w.png" class="search-icon">
|
||||
<input class="input" placeholder="请输入网格名称" v-model="girdName" maxlength="20" confirm-type="search" @confirm="search"/>
|
||||
<div class="clear-btn">
|
||||
<img src="./img/del-icon.png" alt="" class="del-icon" v-if="name" @click="clear">
|
||||
<img src="./img/del-icon.png" class="del-icon" v-if="girdName" @click="girdName = ''">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -48,6 +46,20 @@
|
||||
</scroll-view>
|
||||
</div>
|
||||
</u-popup>
|
||||
<u-popup v-model="isShowGrid" mode="bottom" border-radius="14" height="60%">
|
||||
<div class="grid-wrapper">
|
||||
<div class="title">请选择网格</div>
|
||||
<scroll-view scroll-y="true" class="grid-info">
|
||||
<div
|
||||
class="grid-item"
|
||||
v-for="(item, index) in girdList"
|
||||
@click="form.girdName = item.girdName, getGridList(item.id)"
|
||||
:key="index">
|
||||
{{ item.girdName }}
|
||||
</div>
|
||||
</scroll-view>
|
||||
</div>
|
||||
</u-popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -64,18 +76,20 @@ export default {
|
||||
show: false,
|
||||
form: {girdName: '', id: ''},
|
||||
treeList: [],
|
||||
name: '',
|
||||
girdName: '',
|
||||
showSelect: false,
|
||||
editor: null,
|
||||
polygons: [],
|
||||
labels: [],
|
||||
latLngCenter: [], //中心点
|
||||
latLngCenter: [],
|
||||
isShowGrid: false,
|
||||
girdList: []
|
||||
}
|
||||
},
|
||||
computed: {...mapState(['user'])},
|
||||
created() {
|
||||
this.areaId = this.user.areaId
|
||||
this.getLeafNodes()
|
||||
|
||||
uni.$on('goback', e => {
|
||||
this.form.girdName = e.girdName
|
||||
this.getGridList(e.id, true)
|
||||
@@ -91,6 +105,21 @@ export default {
|
||||
url: './SelectGird?isFormMap=1'
|
||||
})
|
||||
},
|
||||
|
||||
search () {
|
||||
this.$loading()
|
||||
this.$http.post(`/app/appgirdinfo/list?size=100&girdName=${this.girdName}`).then((res) => {
|
||||
if (res.code === 0) {
|
||||
if (res.data.records.length) {
|
||||
this.girdList = res.data.records
|
||||
this.isShowGrid = true
|
||||
} else {
|
||||
this.$u.toast('未查询到网格')
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
getLeafNodes() {
|
||||
this.$http.post(`/app/appgirdinfo/queryGirdMemberGirdsById`).then((res) => {
|
||||
if (res?.data) {
|
||||
@@ -112,7 +141,6 @@ export default {
|
||||
getGridList(id) {
|
||||
this.$loading()
|
||||
this.$http.post(`/app/appgirdinfo/queryChildGirdInfoByGirdId?girdId=${id}`).then((res) => {
|
||||
this.$hideLoading()
|
||||
if (res?.data) {
|
||||
const arr = []
|
||||
res.data.map(v => {
|
||||
@@ -135,6 +163,7 @@ export default {
|
||||
if (!arr.filter(v => v.points).length) {
|
||||
return this.$u.toast('该网格还未标会')
|
||||
}
|
||||
this.isShowGrid = false
|
||||
|
||||
this.renderGridMap(arr.filter(v => v.points))
|
||||
}
|
||||
@@ -285,6 +314,46 @@ export default {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.grid-wrapper {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
.title {
|
||||
height: 80px;
|
||||
line-height: 80px;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
font-size: 32px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
scroll-view {
|
||||
height: calc(100% - 80px);
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
height: 80px;
|
||||
line-height: 80px;
|
||||
padding: 0 24px;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
font-size: 28px;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
border-bottom: 1px solid #eee;
|
||||
|
||||
&:last-child {
|
||||
border: none;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background: #eee;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.top {
|
||||
display: flex;
|
||||
position: fixed;
|
||||
|
||||
@@ -1,14 +1,6 @@
|
||||
<template>
|
||||
<div class="searchMap">
|
||||
<div class="top">
|
||||
<AiPagePicker class="left" type="custom" @select="handleSelectGird"
|
||||
:ops="{url:'./SelectGird',label: 'girdName'}">
|
||||
<div class="gird-content">
|
||||
<image src="./img/gird--select-icon.png" class="avatras"/>
|
||||
<div class="label">{{ form.girdName || '网格选择' }}</div>
|
||||
<u-icon name="arrow-right" color="#cccccc" size="26" style="margin-left:4px;"></u-icon>
|
||||
</div>
|
||||
</AiPagePicker>
|
||||
<div class="grid-input">
|
||||
<img src="./img/back-icon.png" alt="" class="back-icon" v-if="name && show" @click="show=false">
|
||||
<img src="./img/search-icon-w.png" alt="" class="search-icon" v-else>
|
||||
@@ -19,18 +11,6 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="search-list" v-if="show">
|
||||
<div class="title border">
|
||||
<img src="./img/search-icon.png" alt="" class="search-icon">{{ name }}
|
||||
</div>
|
||||
<div class="item border" v-for="(item, index) in buildList" :key="index" @click="getBuildingInfo(item)">
|
||||
<img src="./img/user-icon.png" alt="" class="search-icon user-icon">
|
||||
<div class="item-content">
|
||||
<h3>{{ item.residentName }}</h3>
|
||||
<p>{{ item.areaName || '' }}{{ item.createAddress }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="build-btn" @click="toList()">
|
||||
<img src="./img/build-icon.png" alt=""> 楼栋<br/>列表
|
||||
</div>
|
||||
@@ -120,6 +100,24 @@
|
||||
</div>
|
||||
<div class="popup-btn" @click="toDetail(building.id)">查看楼栋模型</div>
|
||||
</u-popup>
|
||||
<u-popup v-model="show" mode="bottom" border-radius="14" height="70%">
|
||||
<div class="grid-wrapper">
|
||||
<div class="title">请选择居民</div>
|
||||
<scroll-view scroll-y="true" class="grid-info">
|
||||
<div
|
||||
class="grid-item"
|
||||
v-for="(item, index) in buildList"
|
||||
@click="getBuildingInfo(item)"
|
||||
:key="index">
|
||||
<image src="./img/user-icon.png" />
|
||||
<div class="right">
|
||||
<h3>{{ item.residentName }}</h3>
|
||||
<p>{{ item.areaName || '' }}{{ item.createAddress }}</p>
|
||||
</div>
|
||||
</div>
|
||||
</scroll-view>
|
||||
</div>
|
||||
</u-popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -149,6 +147,7 @@ export default {
|
||||
showPop: false,
|
||||
retryMapCount: 0,
|
||||
building: {},
|
||||
isShowGrid: false,
|
||||
buildPopup: false
|
||||
}
|
||||
},
|
||||
@@ -318,7 +317,8 @@ export default {
|
||||
},
|
||||
search() {
|
||||
this.buildList = []
|
||||
this.$http.post('/app/appcommunityhouseinfo/queryHouseByName', null, {
|
||||
this.$loading()
|
||||
this.$http.post('/app/appcommunityhouseinfo/queryHouseByNameBySize', null, {
|
||||
params: {
|
||||
current: 1,
|
||||
size: 20,
|
||||
@@ -353,8 +353,7 @@ export default {
|
||||
|
||||
this.detailInfo = {...res.data}
|
||||
|
||||
console.log(this.detailInfo)
|
||||
if(this.detailInfo.build.appGirdInfo.girdMemberNames && this.detailInfo.build.appGirdInfo.girdMemberNames) {
|
||||
if(this.detailInfo.build.appGirdInfo && this.detailInfo.build.appGirdInfo.girdMemberNames && this.detailInfo.build.appGirdInfo.girdMemberNames) {
|
||||
this.detailInfo.build.appGirdInfo.girdMemberNames = this.detailInfo.build.appGirdInfo.girdMemberNames.split(',')
|
||||
}
|
||||
this.show = false
|
||||
@@ -383,6 +382,72 @@ export default {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.grid-wrapper {
|
||||
height: 100%;
|
||||
overflow: hidden;
|
||||
|
||||
.title {
|
||||
height: 80px;
|
||||
line-height: 80px;
|
||||
text-align: center;
|
||||
color: #333;
|
||||
font-size: 32px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
scroll-view {
|
||||
height: calc(100% - 80px);
|
||||
}
|
||||
|
||||
.grid-item {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 20px 24px;
|
||||
color: #333;
|
||||
font-size: 28px;
|
||||
font-weight: 500;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
border-bottom: 1px solid #eee;
|
||||
|
||||
image {
|
||||
width: 50px;
|
||||
height: 50px;
|
||||
margin-right: 16px;
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
h2 {
|
||||
margin-bottom: 12px;
|
||||
color: #333;
|
||||
font-size: 30px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
p {
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
color: #666;
|
||||
}
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
border: none;
|
||||
}
|
||||
|
||||
&:active {
|
||||
background: #eee;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.top {
|
||||
display: flex;
|
||||
position: fixed;
|
||||
@@ -425,7 +490,7 @@ export default {
|
||||
.grid-input {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 460px;
|
||||
width: 100%;
|
||||
height: 64px;
|
||||
background: #F5F5F5;
|
||||
border-radius: 32px;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<template>
|
||||
<div class="detail">
|
||||
<div class="detail" v-if="pageShow">
|
||||
<AiTopFixed>
|
||||
<div class="select-flex" @click="showSelect=true">
|
||||
<span class="name" v-text="cellName"/>
|
||||
@@ -148,6 +148,7 @@ export default {
|
||||
renter: [],
|
||||
live: []
|
||||
},
|
||||
pageShow: false,
|
||||
numInfo: {},
|
||||
showSelect: false,
|
||||
selectList: [],
|
||||
@@ -166,8 +167,9 @@ export default {
|
||||
onShow() {
|
||||
document.title = "楼栋模型"
|
||||
this.$dict.load('householdRelation', 'houselivingStatus', 'houseLeaseSituation', 'houseUseStatus',
|
||||
'isFilingCertificateStatus', 'communityBuildingType', 'yesOrNo', 'BulidResidentType')
|
||||
this.getBuilding()
|
||||
'isFilingCertificateStatus', 'communityBuildingType', 'yesOrNo', 'BulidResidentType').then(() => {
|
||||
this.getBuilding()
|
||||
})
|
||||
uni.$on('changeHouseInfo', res => {
|
||||
this.getHouseDetail(this.houseInfo.id)
|
||||
})
|
||||
@@ -196,6 +198,7 @@ export default {
|
||||
},
|
||||
getBuilding() {
|
||||
//获取楼栋信息
|
||||
this.$loading()
|
||||
let {id} = this.$route.query
|
||||
this.$http.post(`/app/appcommunitybuildinginfo/queryDetailById`, null, {
|
||||
params: {id}
|
||||
@@ -203,6 +206,8 @@ export default {
|
||||
if (res?.data) {
|
||||
this.detail = res.data
|
||||
this.getSelectList(res.data.communityId)
|
||||
|
||||
this.pageShow = true
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
@@ -84,7 +84,7 @@
|
||||
<div class="border">
|
||||
<span class="label">现住址</span>
|
||||
<span class="value">
|
||||
<AiAreaPicker ref="address" class="aiArea" :fullName.sync="form.currentAreaName" :value="form.currentAreaId" mode="custom" all @select="onCurrentAreaChange">
|
||||
<AiAreaPicker ref="address" :fullName.sync="form.currentAreaName" :value="form.currentAreaId" mode="custom" all @select="onCurrentAreaChange">
|
||||
<div class="aiArea">
|
||||
<span class="label" v-if="form.currentAreaName">{{ form.currentAreaName }}</span>
|
||||
<span v-else class="color-999">请选择</span>
|
||||
@@ -94,20 +94,6 @@
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<span class="tips">*</span>
|
||||
<div class="border">
|
||||
<!-- <div class="border item-right"> -->
|
||||
<span class="label">居民标签</span>
|
||||
<span class="value" @click="toChooseTags">
|
||||
<span class="color-999">请选择</span>
|
||||
<img src="./components/img/right-icon.png" alt="">
|
||||
</span>
|
||||
<!-- <div class="tag-list" @click="toChooseTags">
|
||||
<div class="tag" v-for="(item, index) in 10" :key="index">残疾人</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="item mar-b0">
|
||||
<span class="tips"></span>
|
||||
<div class="border not-border">
|
||||
@@ -122,7 +108,7 @@
|
||||
<div class="border">
|
||||
<span class="label">户籍地址</span>
|
||||
<span class="value">
|
||||
<AiAreaPicker ref="address" class="aiArea" :fullName.sync="form.householdAreaName" :value="form.householdAreaId" mode="custom" all @select="onHouseAreaChange">
|
||||
<AiAreaPicker ref="address" :fullName.sync="form.householdAreaName" :value="form.householdAreaId" mode="custom" all @select="onHouseAreaChange">
|
||||
<div class="aiArea">
|
||||
<span class="label" v-if="form.householdAreaName">{{ form.householdAreaName }}</span>
|
||||
<span v-else class="color-999">请选择</span>
|
||||
@@ -141,6 +127,19 @@
|
||||
<div class="text-area">
|
||||
<textarea placeholder="请输入" maxlength="30" v-model="form.householdAddress"></textarea>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="border" :class="[form.residentLabelList.length ? 'item-right' : '']">
|
||||
<!-- <div class="border item-right"> -->
|
||||
<span class="label">居民标签</span>
|
||||
<div class="tag-list" @click="toChooseTags" v-if="form.residentLabelList.length">
|
||||
<div class="tag" v-for="(item, index) in form.residentLabelList" :key="index">{{ item.labelName }}</div>
|
||||
</div>
|
||||
<span class="value" @click="toChooseTags" v-else>
|
||||
<span class="color-999">请选择</span>
|
||||
<img src="./components/img/right-icon.png" alt="">
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pad-b152"></div>
|
||||
<div class="add-btn" @click="submit">
|
||||
<div>保存</div>
|
||||
@@ -174,7 +173,8 @@ export default {
|
||||
householdAreaName: '',
|
||||
householdAddress: '',
|
||||
residentType: '',
|
||||
age: ''
|
||||
age: '',
|
||||
residentLabelList: []
|
||||
},
|
||||
showSelect: false,
|
||||
formName: '',
|
||||
@@ -191,6 +191,16 @@ export default {
|
||||
this.form.residentType = options.type
|
||||
}
|
||||
this.$dict.load('yesOrNo', 'sex', 'householdRelation', 'nation', 'education', 'maritalStatus', 'politicsStatus', 'militaryStatus', 'faithType')
|
||||
|
||||
uni.$on('onChecked', e => {
|
||||
console.log(e)
|
||||
this.form.residentLabelList = e.map(v => {
|
||||
return {
|
||||
labelId: v.id,
|
||||
labelName: v.labelName
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
computed: {
|
||||
...mapState(['user']),
|
||||
@@ -246,7 +256,9 @@ export default {
|
||||
},
|
||||
|
||||
toChooseTags () {
|
||||
uni.navigateTo({url: `./Tags`})
|
||||
uni.navigateTo({
|
||||
url: `./Tags?ids=${this.form.residentLabelList.map(v => v.labelId).join(',')}`
|
||||
})
|
||||
},
|
||||
|
||||
confirmSelect(e) {
|
||||
@@ -302,6 +314,15 @@ export default {
|
||||
|
||||
<style scoped lang="scss">
|
||||
.add {
|
||||
::v-deep .aiArea {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: flex-end;
|
||||
.label {
|
||||
width: 100%!important;
|
||||
}
|
||||
}
|
||||
|
||||
.item{
|
||||
width: 100%;
|
||||
padding-left: 14px;
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
<div class="right">
|
||||
<div class="rightTop">
|
||||
<span class="name">{{ item.name }}</span>
|
||||
<!-- <span class="btn" v-if="item.doRight == 1"> -->
|
||||
<span class="btn">
|
||||
<span class="btn" v-if="item.doRight == 1">
|
||||
<!-- <span class="btn"> -->
|
||||
<img src="./components/img/edit-icon.png" alt="" @click.stop="edit(item.id)">
|
||||
<img src="./components/img/del-icon.png" alt="" @click.stop="del(item.id)">
|
||||
</span>
|
||||
|
||||
@@ -7,18 +7,12 @@
|
||||
<div class="top-right__top">
|
||||
<div class="left">
|
||||
<h2>{{ resident.name }}</h2>
|
||||
<i>已注销</i>
|
||||
<i v-if="resident.fileStatus === '1'">已注销</i>
|
||||
</div>
|
||||
<span>户主</span>
|
||||
<span v-if="resident.householdName === '1'">户主</span>
|
||||
</div>
|
||||
<div class="top-right__bottom">
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<div class="top-right__bottom" v-if="resident.residentLabelList">
|
||||
<span v-for="(item, index) in resident.residentLabelList" :key="index">{{ item.labelName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -7,18 +7,12 @@
|
||||
<div class="top-right__top">
|
||||
<div class="left">
|
||||
<h2>{{ resident.name }}</h2>
|
||||
<i>已注销</i>
|
||||
<i v-if="resident.fileStatus === '1'">已注销</i>
|
||||
</div>
|
||||
<span>户主</span>
|
||||
<span v-if="resident.householdName === '1'">户主</span>
|
||||
</div>
|
||||
<div class="top-right__bottom">
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<span>退役军人</span>
|
||||
<div class="top-right__bottom" v-if="resident.residentLabelList">
|
||||
<span v-for="(item, index) in resident.residentLabelList" :key="index">{{ item.labelName }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,9 +1,15 @@
|
||||
<template>
|
||||
<div class="tags">
|
||||
<div class="tags-group" v-for="(label, i) in 2" :key="i">
|
||||
<h2>年龄段</h2>
|
||||
<div class="tags-group">
|
||||
<h2>标签列表</h2>
|
||||
<div class="tags-list">
|
||||
<div class="item" v-for="(item, index) in 20" :class="[currIndex === index ? 'active' : '']" :key="index">婴儿</div>
|
||||
<div class="item"
|
||||
v-for="(item, index) in list"
|
||||
:class="[checked.includes(item.id) ? 'active' : '']"
|
||||
:key="index"
|
||||
@click="onClick(item.id)">
|
||||
{{ item.labelName }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="add-btn" @click="submit">
|
||||
@@ -18,16 +24,53 @@
|
||||
|
||||
data () {
|
||||
return {
|
||||
currIndex: 0
|
||||
currIndex: 0,
|
||||
list: [],
|
||||
checked: []
|
||||
}
|
||||
},
|
||||
|
||||
onLoad () {
|
||||
onLoad (query) {
|
||||
this.getList()
|
||||
|
||||
if (query.ids) {
|
||||
this.checked = query.ids.split(',')
|
||||
}
|
||||
},
|
||||
|
||||
methods: {
|
||||
getList() {
|
||||
this.$loading()
|
||||
this.$http.post('/app/appresidentlabelinfo/list?size=1000').then((res) => {
|
||||
if (res.code == 0) {
|
||||
this.list = res.data.records
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
onClick (id) {
|
||||
const index = this.checked.indexOf(id)
|
||||
|
||||
if (index === -1) {
|
||||
this.checked.push(id)
|
||||
} else {
|
||||
this.checked.splice(index, 1)
|
||||
}
|
||||
},
|
||||
|
||||
submit () {
|
||||
if (!this.checked.length) {
|
||||
return this.$u.toast('请选择标签')
|
||||
}
|
||||
|
||||
const list = this.list.filter(v => {
|
||||
return this.checked.includes(v.id)
|
||||
})
|
||||
|
||||
uni.$emit('onChecked', list)
|
||||
|
||||
uni.navigateBack()
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user