This commit is contained in:
yanran200730
2022-07-02 18:09:24 +08:00
parent 16c7433361
commit bba9c06808
3 changed files with 129 additions and 23 deletions

View File

@@ -112,9 +112,9 @@
this.$http.post(`/app/appgirdmembercompany/add`, { companyList: checkUserList}).then((res) => { this.$http.post(`/app/appgirdmembercompany/add`, { companyList: checkUserList}).then((res) => {
if (res.code == 0) { if (res.code == 0) {
this.$u.toast('提交成功') this.$u.toast('提交成功')
uni.$emit('updateList')
setTimeout(() => { setTimeout(() => {
uni.navigateBack() uni.navigateBack()
uni.$emit('updateList')
}, 600) }, 600)
} }
}).catch((err) => { }).catch((err) => {
@@ -159,6 +159,9 @@
box-sizing: border-box; box-sizing: border-box;
margin-bottom: 30px; margin-bottom: 30px;
.item-title{ .item-title{
display: flex;
align-items: center;
margin-bottom: 32px;
margin-bottom: 32px; margin-bottom: 32px;
img{ img{
width: 72px; width: 72px;
@@ -167,13 +170,11 @@
vertical-align: middle; vertical-align: middle;
} }
p{ p{
display: inline-block; flex: 1;
width: 400px;
font-size: 32px; font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
color: #000; color: #000;
line-height: 32px; line-height: 1.3;
} }
span{ span{
display: inline-block; display: inline-block;

View File

@@ -2,7 +2,6 @@
<div class="merchanList"> <div class="merchanList">
<AiTopFixed> <AiTopFixed>
<u-search placeholder="请输入店名、店主、电话" :show-action="false" v-model="businessName" @search="current = 1, getList()"/> <u-search placeholder="请输入店名、店主、电话" :show-action="false" v-model="businessName" @search="current = 1, getList()"/>
</AiTopFixed>
<div class="title"> <div class="title">
<div>商户列表({{ pages }})</div> <div>商户列表({{ pages }})</div>
<div v-if="list.length"> <div v-if="list.length">
@@ -10,13 +9,14 @@
<span style="font-size: 14px; color: #2979ff;" @click="edit = true" v-else>取消</span> <span style="font-size: 14px; color: #2979ff;" @click="edit = true" v-else>取消</span>
</div> </div>
</div> </div>
</AiTopFixed>
<div class="main" v-if="list.length"> <div class="main" v-if="list.length">
<ul v-for="(item,index) in list" :key="index"> <ul v-for="(item,index) in list" :key="index" @click="linkTo('../AppMerchantManage/detail?id=' + item.id)">
<li> <li>
<div class="user"> <div class="user">
<div v-if="!edit"> <div v-if="!edit">
<img src="./components/img/xz.png" alt="" class="checkbox" v-if="!item.checked" @click="userClick(index)"> <img src="./components/img/xz.png" alt="" class="checkbox" v-if="!item.checked" @click.stop="userClick(index)">
<img src="./components/img/xzh.png" alt="" class="checkbox" v-else @click="userClick(index)"> <img src="./components/img/xzh.png" alt="" class="checkbox" v-else @click.stop="userClick(index)">
</div> </div>
<div class="item-info"> <div class="item-info">
<div class="item-title"> <div class="item-title">
@@ -113,6 +113,11 @@
}) })
}) })
}, },
linkTo (url) {
uni.navigateTo({
url
})
},
changeType() { changeType() {
this.edit = false this.edit = false
this.list.map((item) => { this.list.map((item) => {
@@ -169,6 +174,8 @@
box-sizing: border-box; box-sizing: border-box;
margin-bottom: 30px; margin-bottom: 30px;
.item-title{ .item-title{
display: flex;
align-items: center;
margin-bottom: 32px; margin-bottom: 32px;
img{ img{
width: 72px; width: 72px;
@@ -177,13 +184,11 @@
vertical-align: middle; vertical-align: middle;
} }
p{ p{
display: inline-block; flex: 1;
width: 400px;
font-size: 32px; font-size: 32px;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500; font-weight: 500;
color: #000; color: #000;
line-height: 32px; line-height: 1.3;
} }
span{ span{
display: inline-block; display: inline-block;

View File

@@ -2,9 +2,17 @@
<div class="AppMerchantMap"> <div class="AppMerchantMap">
<div class="search"> <div class="search">
<image :src="$cdn + 'xincheng/search.png'" /> <image :src="$cdn + 'xincheng/search.png'" />
<input placeholder="请输入姓名、店名、电话" v-model="businessName" @confirm="getList"> <input placeholder="请输入姓名、店名、电话" v-model="businessName" @input="getList(true)">
</div> </div>
<div class="map-content"> <div class="search-list" v-if="isShow">
<div class="item border" v-for="(item, index) in list" :key="index" @click="toDetail(item)">
<div class="item-content">
<h3>{{ item.businessName }} - {{ item.bossName }}</h3>
<p>{{ item.businessAddress }}</p>
</div>
</div>
</div>
<div class="map-content" @click.stop="isShow = false">
<AiTMap :map.sync="map" :lib.sync="lib" :ops="ops" :libraries="['service', 'tools']"/> <AiTMap :map.sync="map" :lib.sync="lib" :ops="ops" :libraries="['service', 'tools']"/>
</div> </div>
</div> </div>
@@ -24,10 +32,11 @@
polygons: [], polygons: [],
labels: [], labels: [],
businessName: '', businessName: '',
markers: [],
ops: {}, ops: {},
markers: [], markers: [],
MarkerCluster: null isShow: false,
MarkerCluster: null,
list: []
} }
}, },
computed: {...mapState(['user', 'config'])}, computed: {...mapState(['user', 'config'])},
@@ -42,10 +51,25 @@
}, },
methods: { methods: {
getList () { toDetail (item) {
if (!item.lat) {
return this.$u.toast('该商户尚未标记')
}
this.businessName = ''
this.isShow = false
this.map.easeTo({
center: new this.lib.LatLng(item.lat, item.lng),
zoom: 17
}, {
duration: 2000
})
},
getList (isSearch) {
this.$http.post('/app/appcompany/list', null, { this.$http.post('/app/appcompany/list', null, {
params: { params: {
size: 100000, size: isSearch ? 20 : 100000,
current: 1, current: 1,
businessName: this.businessName businessName: this.businessName
} }
@@ -53,17 +77,23 @@
if (res.code == 0) { if (res.code == 0) {
const markers = res.data.records.filter(item => item.lat).map(item => { const markers = res.data.records.filter(item => item.lat).map(item => {
return { return {
title: item.businessName, ...item,
title: item.businessName + '-' + item.bossName,
lnglat: [item.lng, item.lat], lnglat: [item.lng, item.lat],
lat: item.lat, lat: item.lat,
lng: item.lng, lng: item.lng,
id: item.id, id: item.id,
name: item.businessName name: item.businessName + '-' + item.bossName
} }
}) })
if (isSearch) {
this.list = res.data.records
this.isShow = true
} else {
this.getMarkerCluster(markers) this.getMarkerCluster(markers)
} }
}
}) })
}, },
@@ -203,7 +233,77 @@
<style lang="scss" scoped> <style lang="scss" scoped>
.AppMerchantMap { .AppMerchantMap {
height: 100%; height: 100vh;
overflow: hidden;
.search-list {
position: fixed;
left: 50%;
top: 128px;
width: 718px;
height: 70%;
overflow-y: scroll;
box-sizing: border-box;
z-index: 2222;
transform: translateX(-50%);
.search-icon {
width: 36px;
height: 36px;
margin-right: 16px;
vertical-align: sub;
}
.title {
height: 82px;
line-height: 82px;
font-size: 26px;
font-family: MicrosoftYaHeiSemibold;
color: #1365DD;
padding-left: 44px;
background-color: #fff;
}
.item {
padding: 20px 30px;
background-color: #fff;
&:last-child {
border: none;
}
}
.item-content {
display: inline-block;
width: 610px;
color: #333;
h3 {
font-size: 28px;
font-family: MicrosoftYaHeiSemibold;
line-height: 32px;
margin-bottom: 8px;
}
p {
width: 100%;
font-size: 24px;
font-family: MicrosoftYaHei;
line-height: 32px;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
}
}
.user-icon {
vertical-align: top;
}
.border {
border-bottom: 1px solid #DEDFE1;
}
}
::v-deep.cluster { ::v-deep.cluster {
color: #fff; color: #fff;