|
@@ -0,0 +1,279 @@
|
|
|
|
|
+<template>
|
|
|
|
|
+ <div class="app-area-sel">
|
|
|
|
|
+ <bottom-popup class="popup-wrap" :show="showPopup" @close="hidePopup">
|
|
|
|
|
+ <div class="map-wrap">
|
|
|
|
|
+ <div class="map-top-tit-wrap">
|
|
|
|
|
+ <div class="map-top-tit">从平台库添加</div>
|
|
|
|
|
+ <app-close icon="iconguanbi" @close="hidePopup" />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 搜索 -->
|
|
|
|
|
+ <div class="map-search">
|
|
|
|
|
+ <app-search-module
|
|
|
|
|
+ ref="aaaaa"
|
|
|
|
|
+ placeholder="请输入关键字"
|
|
|
|
|
+ :focus="false"
|
|
|
|
|
+ @input="searchFn"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
|
|
+ <!-- 地图 -->
|
|
|
|
|
+ <!-- <div class="map-box">
|
|
|
|
|
+ <map id="myMap" style="width: 100%; height: 140px;" :latitude="latitude" :longitude="longitude" @regionchange="mapChange">
|
|
|
|
|
+ <cover-image class="current-site-icon" src="../../static/images/common/localposition.png"></cover-image>
|
|
|
|
|
+ <cover-view class="reload" @click="reload">
|
|
|
|
|
+ <cover-view class="center1">
|
|
|
|
|
+ <cover-view class="center2"></cover-view>
|
|
|
|
|
+ </cover-view>
|
|
|
|
|
+ </cover-view>
|
|
|
|
|
+ </map>
|
|
|
|
|
+ </div>-->
|
|
|
|
|
+ <!-- 列表 -->
|
|
|
|
|
+ <scroll-view class="customer-list" scroll-y>
|
|
|
|
|
+ <view
|
|
|
|
|
+ v-for="(item, itemIndex) in flowerList"
|
|
|
|
|
+ :key="itemIndex"
|
|
|
|
|
+ @click="switchAddress(item, itemIndex)"
|
|
|
|
|
+ class="customer-item"
|
|
|
|
|
+ >
|
|
|
|
|
+ <view class="item-avatar">
|
|
|
|
|
+ <image
|
|
|
|
|
+ src="https://img.huaml.com/uploads/12358/202005/29/de74c55596d304b85e79154958e8bf57_small.jpeg"
|
|
|
|
|
+ alt="商品图"
|
|
|
|
|
+ />
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <view class="item-info">
|
|
|
|
|
+ <view class="item-name"> 粉佳人</view>
|
|
|
|
|
+ <view class="item-weight">2斤/扎</view>
|
|
|
|
|
+ <view class="item-price"> ¥6.00/扎</view></view
|
|
|
|
|
+ >
|
|
|
|
|
+
|
|
|
|
|
+ <view class="item-tag" v-if="index == itemIndex">
|
|
|
|
|
+ <text class="iconfont icondagou"> </text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ </scroll-view>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ </bottom-popup>
|
|
|
|
|
+ </div>
|
|
|
|
|
+</template>
|
|
|
|
|
+
|
|
|
|
|
+<script>
|
|
|
|
|
+import BottomPopup from "@/components/plugin/bottom-popup";
|
|
|
|
|
+import AppClose from "@/components/module/app-close";
|
|
|
|
|
+import AppSearchModule from "@/components/module/app-search";
|
|
|
|
|
+// api
|
|
|
|
|
+// import { suggestion } from "@/api/common";
|
|
|
|
|
+export default {
|
|
|
|
|
+ name: "app-customer-sel",
|
|
|
|
|
+ components: {
|
|
|
|
|
+ BottomPopup,
|
|
|
|
|
+ AppClose,
|
|
|
|
|
+ AppSearchModule
|
|
|
|
|
+ },
|
|
|
|
|
+ props: {
|
|
|
|
|
+ show: {
|
|
|
|
|
+ type: Boolean,
|
|
|
|
|
+ default: false
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ data() {
|
|
|
|
|
+ return {
|
|
|
|
|
+ showPopup: false,
|
|
|
|
|
+ keyword: "",
|
|
|
|
|
+ flowerList: [{}, {}, {}, {}, {}, {}, {}, {}, {}],
|
|
|
|
|
+ index: -1
|
|
|
|
|
+ };
|
|
|
|
|
+ },
|
|
|
|
|
+ mounted() {
|
|
|
|
|
+ this.showPopup = this.show;
|
|
|
|
|
+ },
|
|
|
|
|
+ // onLoad(val) {
|
|
|
|
|
+ // this.mapCtx = uni.createMapContext('myMap')
|
|
|
|
|
+ // this.query = val
|
|
|
|
|
+ // this.reload()
|
|
|
|
|
+ // },
|
|
|
|
|
+
|
|
|
|
|
+ watch: {
|
|
|
|
|
+ show(val) {
|
|
|
|
|
+ this.showPopup = val;
|
|
|
|
|
+
|
|
|
|
|
+ // #ifdef H5
|
|
|
|
|
+ this.$nextTick(function() {
|
|
|
|
|
+ setTimeout(() => {
|
|
|
|
|
+ this.$refs.aaaaa.$refs.searchInput._focusInput();
|
|
|
|
|
+ }, 1000);
|
|
|
|
|
+ });
|
|
|
|
|
+ // #endif
|
|
|
|
|
+
|
|
|
|
|
+ // if (val) {
|
|
|
|
|
+ // this.getAreaList()
|
|
|
|
|
+ // }
|
|
|
|
|
+ }
|
|
|
|
|
+ },
|
|
|
|
|
+ methods: {
|
|
|
|
|
+ getAreaList() {
|
|
|
|
|
+ if (!this.keyword) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ // suggestion({ region: this.city, keyword: this.keyword }).then(res => {
|
|
|
|
|
+ // this.flowerList = res.data.data;
|
|
|
|
|
+ // });
|
|
|
|
|
+ },
|
|
|
|
|
+ // 搜索
|
|
|
|
|
+ searchFn(e) {
|
|
|
|
|
+ this.keyword = e;
|
|
|
|
|
+ this.getAreaList();
|
|
|
|
|
+ // this.$emit('search', e)
|
|
|
|
|
+ },
|
|
|
|
|
+ hidePopup() {
|
|
|
|
|
+ this.$emit("update:show", false);
|
|
|
|
|
+ this.$emit("hide");
|
|
|
|
|
+ },
|
|
|
|
|
+ switchAddress(item, index) {
|
|
|
|
|
+ this.index = index;
|
|
|
|
|
+ this.$emit("select", item);
|
|
|
|
|
+ this.hidePopup();
|
|
|
|
|
+ }
|
|
|
|
|
+ // 地图操作
|
|
|
|
|
+ // reload() {
|
|
|
|
|
+ // uni.getLocation({
|
|
|
|
|
+ // type: 'wgs84',
|
|
|
|
|
+ // success: res => {
|
|
|
|
|
+ // this.latitude = res.latitude
|
|
|
|
|
+ // this.longitude = res.longitude
|
|
|
|
|
+ // // this.customerList()
|
|
|
|
|
+ // },
|
|
|
|
|
+ // // eslint-disable-next-line handle-callback-err
|
|
|
|
|
+ // fail: err => {
|
|
|
|
|
+ // this.$msg('定位失败')
|
|
|
|
|
+ // // setTimeout(function() {
|
|
|
|
|
+ // // uni.navigateBack({
|
|
|
|
|
+ // // delta: 1
|
|
|
|
|
+ // // })
|
|
|
|
|
+ // // }, 1500)
|
|
|
|
|
+ // }
|
|
|
|
|
+ // })
|
|
|
|
|
+ // },
|
|
|
|
|
+ // mapChange(e) {
|
|
|
|
|
+ // if (e.type == 'end' && (e.causedBy == 'scale' || e.causedBy == 'drag')) {
|
|
|
|
|
+ // this.mapCtx.getCenterLocation({
|
|
|
|
|
+ // success: res => {
|
|
|
|
|
+ // this.longitude = res.longitude
|
|
|
|
|
+ // this.latitude = res.latitude
|
|
|
|
|
+ // // this.customerList()
|
|
|
|
|
+ // }
|
|
|
|
|
+ // })
|
|
|
|
|
+ // }
|
|
|
|
|
+ // },
|
|
|
|
|
+ // 获取列表
|
|
|
|
|
+ // customerList() {
|
|
|
|
|
+ // geocoder({
|
|
|
|
|
+ // latitude: this.latitude,
|
|
|
|
|
+ // longitude: this.longitude
|
|
|
|
|
+ // }).then(res => {
|
|
|
|
|
+ // console.log(res)
|
|
|
|
|
+ // let data = res.result
|
|
|
|
|
+ // this.currentSelectAddress = 0
|
|
|
|
|
+ // this.flowerList = data.pois
|
|
|
|
|
+ // // this.currentRegion = [data.address_component.province, data.address_component.city, data.address_component.district]
|
|
|
|
|
+ // })
|
|
|
|
|
+ // },
|
|
|
|
|
+ }
|
|
|
|
|
+};
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<style lang="scss" scoped>
|
|
|
|
|
+// 弹窗
|
|
|
|
|
+/deep/.popup-wrap {
|
|
|
|
|
+ .tui-popup-class {
|
|
|
|
|
+ border-top-left-radius: 20px;
|
|
|
|
|
+ border-top-right-radius: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+.map-wrap {
|
|
|
|
|
+ .map-top-tit-wrap {
|
|
|
|
|
+ padding: 30px 0;
|
|
|
|
|
+ text-align: center;
|
|
|
|
|
+ font-size: 34px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .map-search {
|
|
|
|
|
+ padding: 0 30px;
|
|
|
|
|
+ margin-bottom: 20px;
|
|
|
|
|
+ }
|
|
|
|
|
+ .map-box {
|
|
|
|
|
+ .current-site-icon {
|
|
|
|
|
+ width: 63px;
|
|
|
|
|
+ height: 90px;
|
|
|
|
|
+ position: absolute;
|
|
|
|
|
+ top: 50%;
|
|
|
|
|
+ left: 50%;
|
|
|
|
|
+ transform: translate(-50%, -50%);
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // 列表
|
|
|
|
|
+ .customer-list {
|
|
|
|
|
+ min-height: 500rpx;
|
|
|
|
|
+ max-height: 820rpx;
|
|
|
|
|
+ // padding-bottom: 110rpx;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+ .customer-item {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ line-height: 40rpx;
|
|
|
|
|
+ padding: 18rpx 30px;
|
|
|
|
|
+ text-align: left;
|
|
|
|
|
+ border-bottom: 1px solid #eee;
|
|
|
|
|
+ position: relative;
|
|
|
|
|
+ .item-avatar {
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ width: 66px;
|
|
|
|
|
+ height: 66px;
|
|
|
|
|
+ border-radius: 50%;
|
|
|
|
|
+ overflow: hidden;
|
|
|
|
|
+ image {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100%;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .item-info {
|
|
|
|
|
+ margin: 0 20upx;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ }
|
|
|
|
|
+ .item-name {
|
|
|
|
|
+ margin: 0 20upx;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ .item-weight {
|
|
|
|
|
+ flex-shrink: 0;
|
|
|
|
|
+ margin: 0 20upx;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ .item-price {
|
|
|
|
|
+ margin: 0 20upx;
|
|
|
|
|
+ flex: 1;
|
|
|
|
|
+ }
|
|
|
|
|
+ .item-tag {
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ color: #3385ff;
|
|
|
|
|
+ .iconfont {
|
|
|
|
|
+ font-size: 32upx;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ .add-customer-bar {
|
|
|
|
|
+ width: 100%;
|
|
|
|
|
+ height: 100px;
|
|
|
|
|
+ display: flex;
|
|
|
|
|
+ justify-content: center;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ color: #3385ff;
|
|
|
|
|
+ font-size: 26px;
|
|
|
|
|
+
|
|
|
|
|
+ box-shadow: 0px -1px 6px 0px rgba(4, 0, 0, 0.06);
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+</style>
|