Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	src/saas/AppGridManagement/AppGridManagement.vue
This commit is contained in:
aixianling
2022-02-11 11:22:00 +08:00
17 changed files with 113 additions and 72 deletions

View File

@@ -6,12 +6,11 @@
<img src="./components/img/gird-icon.png" alt="" class="gird-icon"> <img src="./components/img/gird-icon.png" alt="" class="gird-icon">
<div @click="linkTo('./SelectGird')"> <div @click="linkTo('./SelectGird')">
{{params.girdName}} {{params.girdName}}
<img src="./components/img/down-icon.png" alt="" class="down-icon"> <img src="./components/img/down-icon.png" alt="" class="down-icon">
</div> </div>
<span @click="linkTo('./SetGird')" v-if="checkType == 2">网格配置</span> <span @click="linkTo('./SetGird')" v-if="checkType == 2">网格配置</span>
</div> </div>
<!-- </div> --> <!-- </div> -->
<component v-if="refresh && isAdmin" :is="component" @change="onChange" :params="params"> </component> <component v-if="refresh && isAdmin" :is="component" @change="onChange" :params="params"> </component>
<div class="tabs" v-if="isTab && isAdmin"> <div class="tabs" v-if="isTab && isAdmin">
<div class="item" @click="tabClick(index, item.component)" v-for="(item, index) in tabs" :key="index"> <div class="item" @click="tabClick(index, item.component)" v-for="(item, index) in tabs" :key="index">
@@ -115,7 +114,7 @@ export default {
this.isGirdUser() this.isGirdUser()
uni.$on('goback', (res) => { uni.$on('goback', (res) => {
this.params = res this.params = res
}) })
}, },
onReachBottom() { onReachBottom() {
if(!this.tabIndex) { if(!this.tabIndex) {

View File

@@ -3,9 +3,9 @@
<AiTopFixed v-if="isAdmin"> <AiTopFixed v-if="isAdmin">
<div class="pad-t32"></div> <div class="pad-t32"></div>
<div class="select-gird" @click="showSelect=true"> <div class="select-gird" @click="showSelect=true">
<img src="./components/img/gird-icon.png" alt="" class="gird-icon"> <div class="gird-name-div">
<div> <img src="./components/img/gird-icon.png" alt="" class="gird-icon">
{{girdName}} <div class="gird-name">{{girdName}}</div>
<img src="./components/img/down-icon.png" alt="" class="down-icon"> <img src="./components/img/down-icon.png" alt="" class="down-icon">
</div> </div>
</div> </div>
@@ -393,6 +393,19 @@ export default {
color: #3F8DF5; color: #3F8DF5;
line-height: 48px; line-height: 48px;
} }
.gird-name-div{
display: inline-block;
width: 100%;
padding-left: 0;
}
.gird-name{
display: inline-block;
max-width: calc(100% - 80px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
}
} }
.empty{ .empty{
text-align: center; text-align: center;

View File

@@ -15,7 +15,7 @@
<div class="item" v-for="(item, index) in list" :key="index"> <div class="item" v-for="(item, index) in list" :key="index">
<p>{{item.content}}</p> <p>{{item.content}}</p>
<div>{{item.createTime}} <div>{{item.createTime}}
<span>{{item.createUserName}}</span> <span><AiOpenData v-if="item.createUserName" type="userName" :openid="item.createUserName" /></span>
</div> </div>
</div> </div>
</div> </div>

View File

@@ -109,7 +109,7 @@
<p>{{item.content}}</p> <p>{{item.content}}</p>
<div>{{item.createTime}} <div>{{item.createTime}}
<span> <span>
网格员<AiOpenData v-if="item.createUserName" type="userName" :openid="item.createUserName" /> 网格员<span style="margin-left:0;"><AiOpenData v-if="item.createUserName" type="userName" :openid="item.createUserName" /></span>
</span> </span>
</div> </div>
</div> </div>

View File

@@ -56,7 +56,6 @@ export default {
params: { params: {
current: this.current, current: this.current,
size: 10, size: 10,
areaId: this.user.areaId,
communityName: this.title communityName: this.title
} }
}).then(res => { }).then(res => {

View File

@@ -10,6 +10,7 @@
<div class="form-item__right"> <div class="form-item__right">
<textarea v-model="form.content" :maxlength="500" placeholder="请简要描述事件…"></textarea> <textarea v-model="form.content" :maxlength="500" placeholder="请简要描述事件…"></textarea>
</div> </div>
<div class="limit">{{ form.content.length }}/200</div>
</div> </div>
</div> </div>
</div> </div>
@@ -233,6 +234,9 @@
if (!this.form.groupId) { if (!this.form.groupId) {
return this.$u.toast('请选择事件类型') return this.$u.toast('请选择事件类型')
} }
if (!this.form.address) {
return this.$u.toast('请选择发生地点')
}
if (!this.form.girdName) { if (!this.form.girdName) {
return this.$u.toast('请选择上报网格') return this.$u.toast('请选择上报网格')
} }
@@ -277,6 +281,12 @@
background: #fff; background: #fff;
} }
.limit {
position: fixed;
right: 44px;
font-size: 16px;
}
.form-item { .form-item {
padding-left: 32px; padding-left: 32px;
@@ -300,6 +310,7 @@
align-items: center; align-items: center;
font-size: 32px; font-size: 32px;
span { span {
max-width: 400px; max-width: 400px;
margin-right: 8px; margin-right: 8px;

View File

@@ -25,13 +25,13 @@
<span class="card-right">{{ data.girdName }}</span> <span class="card-right">{{ data.girdName }}</span>
</div> </div>
<div class="card"> <!-- <div class="card">
<span class="card-left">联系方式</span> <span class="card-left">联系方式</span>
<span class="card-right"> <span class="card-right">
<span> {{ data.phone }}</span> <span> {{ data.phone }}</span>
<u-icon name="phone-fill" color="#3D94FB" @click="callPhone(data.phone)"></u-icon> <u-icon name="phone-fill" color="#3D94FB" @click="callPhone(data.phone)"></u-icon>
</span> </span>
</div> </div> -->
<div class="card"> <div class="card">
<span class="card-left">上报地址</span> <span class="card-left">上报地址</span>

View File

@@ -165,10 +165,9 @@ export default {
color: #666; color: #666;
img { img {
width: 32px; width: 44px;
height: 32px; height: 44px;
vertical-align: middle; vertical-align: middle;
margin-left: 8px;
} }
} }

View File

@@ -146,7 +146,7 @@ export default {
vertical-align: middle; vertical-align: middle;
} }
div { .gird-name-div {
display: inline-block; display: inline-block;
padding: 0 20px; padding: 0 20px;
box-sizing: border-box; box-sizing: border-box;
@@ -159,6 +159,15 @@ export default {
img { img {
margin-left: 8px; margin-left: 8px;
} }
.gird-name{
display: inline-block;
max-width: calc(100% - 50px);
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
}
} }
span { span {

View File

@@ -57,6 +57,15 @@ export default {
} }
}, },
methods: { methods: {
handerSearch() {
this.list = []
this.current = 1
this.getList()
},
handerClear() {
this.keyword = ''
this.handerSearch()
},
getList(){ getList(){
this.$http.post(`/app/appgirdmemberresident/listByGirdMember?current=${this.current}&girdMemberId=${this.userId}&girdId=${this.girdId}&name=${this.keyword}`).then((res) => { this.$http.post(`/app/appgirdmemberresident/listByGirdMember?current=${this.current}&girdMemberId=${this.userId}&girdId=${this.girdId}&name=${this.keyword}`).then((res) => {
if (res.code == 0) { if (res.code == 0) {

View File

@@ -63,7 +63,8 @@ export default {
showSelect: false, showSelect: false,
editor: null, editor: null,
polygons: [], polygons: [],
labels: [] labels: [],
latLngCenter: [], //中心点
} }
}, },
computed: {...mapState(['user', 'config'])}, computed: {...mapState(['user', 'config'])},
@@ -73,11 +74,12 @@ export default {
// this.getLeafNodes() // this.getLeafNodes()
uni.$on('goback', e => { uni.$on('goback', e => {
if (e.girdLevel == '0') { if (e.girdLevel == '0') {
setTimeout(() => { // setTimeout(() => {
this.$u.toast('请选择二级或者三级网格') // this.$u.toast('请选择二级或者三级网格')
}, 400) // }, 400)
return false // return false
} }
this.form.girdName = e.girdName
this.getGridList(e.id, true) this.getGridList(e.id, true)
}) })
}, },
@@ -114,14 +116,23 @@ export default {
this.$http.post(`/app/appgirdinfo/queryChildGirdInfoByGirdId?girdId=${id}`).then((res) => { this.$http.post(`/app/appgirdinfo/queryChildGirdInfoByGirdId?girdId=${id}`).then((res) => {
this.$hideLoading() this.$hideLoading()
if (res?.data) { if (res?.data) {
const arr = res.data.map(v => { const arr = []
return { res.data.map(v => {
id: v.id, if(v.points) {
girdName: v.girdName, arr.push(
points: v.points ? v.points.map(p => [p.lng, p.lat]) : [] {
id: v.id,
girdName: v.girdName,
points: v.points ? v.points.map(p => [p.lng, p.lat]) : []
}
)
if(this.latLngCenter.length) {
return
}else {
this.latLngCenter.push(v.points[0].lat, v.points[0].lng)
}
} }
}) })
this.renderGridMap(arr) this.renderGridMap(arr)
} }
}).catch(() => { }).catch(() => {
@@ -159,6 +170,10 @@ export default {
console.log(paths) console.log(paths)
let {map, lib: TMap, $refs: {AiTMap: {fitBounds}}} = this let {map, lib: TMap, $refs: {AiTMap: {fitBounds}}} = this
if (TMap) { if (TMap) {
if(this.latLngCenter.length) {
map.setCenter(this.latLngCenter)
this.map.setZoom(14)
}
const colors = ["#A194F4", "#7CBDF3", "#F3A57D", "#62D063", "#58DBDA", "#F7D151"] const colors = ["#A194F4", "#7CBDF3", "#F3A57D", "#62D063", "#58DBDA", "#F7D151"]
if (this.polygons.length > 0) { if (this.polygons.length > 0) {
this.polygons.forEach(e => e.destroy()) this.polygons.forEach(e => e.destroy())

View File

@@ -2,8 +2,11 @@
<div class="Organization"> <div class="Organization">
<div class="title">网格人员</div> <div class="title">网格人员</div>
<div class="user-content" v-for="(item, index) in dataInfo.parentGirdMembers" :key="index"> <div class="user-content" v-for="(item, index) in dataInfo.parentGirdMembers" :key="index">
<image :src="item.photo" alt="" mode="aspectFill" v-if="item.photo" /> <div>
<img src="./components/img/big-user.png" alt="" v-else> <!-- <image :src="item.photo" alt="" mode="aspectFill" v-if="item.photo" /> -->
<img :src="item.photo" alt="" v-if="item.photo">
<img src="./components/img/big-user.png" alt="" v-else>
</div>
<div class="right"> <div class="right">
<div class="name"> <div class="name">
<AiOpenData v-if="item.wxUserId" type="userName" :openid="item.wxUserId" /> <AiOpenData v-if="item.wxUserId" type="userName" :openid="item.wxUserId" />
@@ -13,8 +16,11 @@
</div> </div>
</div> </div>
<div class="user-content user-item" v-for="(item, index) in dataInfo.girdMembers" :key="index"> <div class="user-content user-item" v-for="(item, index) in dataInfo.girdMembers" :key="index">
<image :src="item.photo" alt="" mode="aspectFill" v-if="item.photo" /> <div>
<img src="./components/img/user-img.png" alt="" v-else /> <!-- <image :src="item.photo" alt="" mode="aspectFill" v-if="item.photo" /> -->
<img :src="item.photo" alt="" v-if="item.photo">
<img src="./components/img/big-user.png" alt="" v-else>
</div>
<div class="right"> <div class="right">
<div class="name"> <div class="name">
<AiOpenData v-if="item.wxUserId" type="userName" :openid="item.wxUserId" /> <AiOpenData v-if="item.wxUserId" type="userName" :openid="item.wxUserId" />

View File

@@ -58,10 +58,10 @@
</div> </div>
</div> </div>
</div> </div>
<div class="pad-b112"></div> <!-- <div class="pad-b112"></div>
<div class="add-btn" @click="back"> <div class="add-btn" @click="back">
<div>查看其他成员</div> <div>查看其他成员</div>
</div> </div> -->
</div> </div>
</template> </template>

View File

@@ -8,7 +8,7 @@
<div class="user-list"> <div class="user-list">
<div class="item" v-for="(item, index) in list" :key="index" @click="toOtherSta(item.memberId, item.wxUserId)" > <div class="item" v-for="(item, index) in list" :key="index" @click="toOtherSta(item.memberId, item.wxUserId)" >
<div class="left"> <div class="left">
<img src="./components/img/user-icon.png" alt=""><AiOpenData v-if="item.wxUserId" type="userName" :openid="item.wxUserId" /> <img src="./components/img/user-icon.png" alt=""><span><AiOpenData v-if="item.wxUserId" type="userName" :openid="item.wxUserId" /></span>
</div> </div>
<div class="right"> <div class="right">
<span :class="item.status == 1 ? '' : 'color-F5A319'">{{item.status == 1 ? '今日已上报' : '今日未上报'}}</span><img src="./components/img/right-icon.png" alt=""> <span :class="item.status == 1 ? '' : 'color-F5A319'">{{item.status == 1 ? '今日已上报' : '今日未上报'}}</span><img src="./components/img/right-icon.png" alt="">

View File

@@ -408,7 +408,6 @@ export default {
methods: { methods: {
getDetail() { getDetail() {
console.log(111);
if (!this.id) return if (!this.id) return
var urlList = ['/app/appspecialdisabled/queryDetailById', '/app/appspecialmental/queryDetailById', '/app/appspecialadjustment/queryDetailById', var urlList = ['/app/appspecialdisabled/queryDetailById', '/app/appspecialmental/queryDetailById', '/app/appspecialadjustment/queryDetailById',
'/app/appspecialdrug/queryDetailById', '/app/appspecialprison/queryDetailById'] '/app/appspecialdrug/queryDetailById', '/app/appspecialprison/queryDetailById']
@@ -559,6 +558,7 @@ export default {
width: 60%; width: 60%;
display: flex; display: flex;
justify-content: flex-end; justify-content: flex-end;
font-size: 32px !important;
.u-icon { .u-icon {
margin-left: 16px; margin-left: 16px;
} }
@@ -594,6 +594,7 @@ export default {
.value { .value {
margin-left: 16px; margin-left: 16px;
font-size: 32px;
} }
} }

View File

@@ -7,9 +7,7 @@
<div class="area-select"> <div class="area-select">
<div class="select-content"> <div class="select-content">
<div class="search-input" v-if="tabIndex"> <div class="search-input" v-if="tabIndex">
<img src="./img/search-icon.png" alt=""> <u-search placeholder="请输入姓名" v-model="name" maxlength="20" placeholder-style="color:#999;font-size:13px;" :show-action="false" height="18" @search="getUserList" @clear="getUserList"></u-search>
<u-input type="text" placeholder="请输入姓名" placeholder-style="color:#999;font-size:13px;" height="18"
v-model="name" @confirm="getUserList" maxlength="20" />
</div> </div>
</div> </div>
</div> </div>
@@ -54,8 +52,8 @@
<div class="user-info"> <div class="user-info">
<p class="name">{{e.name}} <p class="name">{{e.name}}
<span class="btn-icon" v-if="userGird != 0"> <span class="btn-icon" v-if="userGird != 0">
<img src="./img/edit-icon.png" alt="" @click="toEdit(e,item.label)"> <img src="./img/edit-icon.png" alt="" @click="toEdit(e,item.dictValue)">
<img src="./img/del-icon.png" alt="" @click="del(e,item.label)"> <img src="./img/del-icon.png" alt="" @click="del(e,item.dictValue)">
</span> </span>
</p> </p>
<div class="phone"> <div class="phone">
@@ -126,7 +124,6 @@ export default {
}, },
isGirdUser() { isGirdUser() {
this.$http.post('/app/appgirdmemberinfo/checkLogOnUser').then((res) => { this.$http.post('/app/appgirdmemberinfo/checkLogOnUser').then((res) => {
// console.log(res);
if (res.code == 0) { if (res.code == 0) {
this.userGird = res.data.checkType this.userGird = res.data.checkType
// if (res.data.checkType) { // if (res.data.checkType) {
@@ -180,6 +177,10 @@ export default {
return idNumber return idNumber
}, },
showUserType(item) { showUserType(item) {
this.type = item.dictValue
this.current = 1
this.userList = []
this.getUserList()
// if(this.userList[index].check) { // if(this.userList[index].check) {
// this.userList[index].check = false // this.userList[index].check = false
// }else { // }else {
@@ -188,12 +189,6 @@ export default {
// }) // })
// this.userList[index].check = true // this.userList[index].check = true
// } // }
console.log(item);
this.type = item.dictValue
this.current = 1
this.userList = []
this.getUserList()
}, },
toEdit(row,index) { toEdit(row,index) {
uni.navigateTo({ uni.navigateTo({
@@ -204,8 +199,6 @@ export default {
var delUrl = ['/app/appspecialdisabled/delete','/app/appspecialmental/delete', var delUrl = ['/app/appspecialdisabled/delete','/app/appspecialmental/delete',
'/app/appspecialadjustment/delete','/app/appspecialdrug/delete','/app/appspecialprison/delete' '/app/appspecialadjustment/delete','/app/appspecialdrug/delete','/app/appspecialprison/delete'
] ]
// var idUrl='app/appspecialdisabled/delete'
// var id='c24aaff664a94fdd908a85c0237583bd'
this.$confirm('确定删除该数据?').then(() => { this.$confirm('确定删除该数据?').then(() => {
uni.showLoading() uni.showLoading()
this.$http.post(delUrl[indexs],null, {params: {ids: row.id}}).then((res) => { this.$http.post(delUrl[indexs],null, {params: {ids: row.id}}).then((res) => {
@@ -284,26 +277,13 @@ export default {
} }
} }
.search-input{ .search-input{
width: 100%; width: 100%;
height: 64px; height: 64px;
background: #F5F5F5; background: #F5F5F5;
border-radius: 32px; border-radius: 32px;
padding: 14px 32px 14px 64px;
box-sizing: border-box; box-sizing: border-box;
position: relative; position: relative;
img{ line-height: 64px;
width: 32px;
height: 32px;
margin-right: 12px;
position: absolute;
top: 18px;
left: 24px;
}
::v-deep .u-input{
width: 100%;
font-size: 26px;
}
} }
} }
} }

View File

@@ -115,6 +115,11 @@ export default {
}, },
mounted() {}, mounted() {},
methods: { methods: {
getListInit() {
this.data = []
this.current = 1
this.getList()
},
getList() { getList() {
this.$http this.$http
.post('/app/appvisitvondolence/list', null, { .post('/app/appvisitvondolence/list', null, {
@@ -140,17 +145,14 @@ export default {
areaSelect(e) { areaSelect(e) {
this.data = [] this.data = []
this.areaId = e this.areaId = e
this.current = 1 this.getListInit()
this.getList()
}, },
change(index) { change(index) {
this.data = []
this.areaId = this.user.areaId this.areaId = this.user.areaId
this.keyword = '' this.keyword = ''
this.currentTabs = index this.currentTabs = index
this.current = 1 this.getListInit()
this.getList()
}, },
goDetail(item, hint) { goDetail(item, hint) {
@@ -183,21 +185,19 @@ export default {
this.$http.post(`/app/appvisitvondolence/delete?ids=${this.deletId}`).then((res) => { this.$http.post(`/app/appvisitvondolence/delete?ids=${this.deletId}`).then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.$u.toast('删除成功!') this.$u.toast('删除成功!')
this.getList() this.getListInit()
} }
}) })
}, },
handerSearch(e) { handerSearch(e) {
this.keyword = e this.keyword = e
this.current = 1 this.getListInit()
this.getList()
}, },
handerClear() { handerClear() {
this.keyword = '' this.keyword = ''
this.current = 1 this.getListInit()
this.getList()
}, },
previewImage(images, img) { previewImage(images, img) {