1597 lines
39 KiB
Vue
1597 lines
39 KiB
Vue
<template>
|
||
<view class="view-main liu-chooseAddress-container">
|
||
<view class="hander" v-if="showSearchIpunt">
|
||
<uni-nav-bar
|
||
title=""
|
||
:fixed="true"
|
||
:statusBar="false"
|
||
:border="false"
|
||
:left-width="'132rpx'"
|
||
:right-width="'0rpx'"
|
||
>
|
||
<block slot="left">
|
||
<view class="left-block" @click="handerSkip">
|
||
<text class="iconfontAili icon-dingwei1"></text>
|
||
<text class="city-block">{{
|
||
originalData.result.addressComponent.city
|
||
}}</text>
|
||
<text class="iconfontAili icon-xiala"></text>
|
||
</view>
|
||
</block>
|
||
<view class="input-view">
|
||
<uni-icons
|
||
type="search"
|
||
size="22"
|
||
color="#666666"
|
||
style="line-height: 60rpx"
|
||
/>
|
||
<input
|
||
confirm-type="search"
|
||
class="input"
|
||
type="text"
|
||
placeholder="请输入收货地址"
|
||
@click="onSearch"
|
||
@input="handerAddress"
|
||
/>
|
||
</view>
|
||
</uni-nav-bar>
|
||
</view>
|
||
<map
|
||
v-if="!showSearchAddress && !isFound"
|
||
:latitude="latitude"
|
||
:longitude="longitude"
|
||
:scale="16"
|
||
style="width: 100%; height: 100vh; top: -200px"
|
||
ref="map"
|
||
id="map"
|
||
:enable-zoom="isEnableScroll"
|
||
:enable-scroll="isEnableScroll"
|
||
:markers="markers"
|
||
@regionchange="handerRegionchange"
|
||
>
|
||
<image class="map-marker" v-if="isDragMarker" :src="markerIcon"></image>
|
||
</map>
|
||
<view class="page-con" v-if="!showPoisList && !showSearchAddress">
|
||
<view class="con-hd" v-if="showCurrAdd">
|
||
<view class="current-block-left">
|
||
<view class="current-name">{{ currAddress }}</view>
|
||
<view class="current-address">{{ currRoadAddress }}</view>
|
||
</view>
|
||
<view class="current-block-right" @click="chooseAddressView">
|
||
<view class="btn-edit-block">修改地址</view>
|
||
</view>
|
||
</view>
|
||
<view class="con-bd">
|
||
<view
|
||
class="choose-address"
|
||
@click="chooseAddressView"
|
||
v-if="showSelectAddBtn"
|
||
>
|
||
选择收货地址<text class="iconfontAili icon-right"></text>
|
||
</view>
|
||
<view class="con-bd-item">
|
||
<view class="con-bd-item-name">门牌号</view>
|
||
<view class="con-bd-item-con">
|
||
<input
|
||
type="text"
|
||
v-model="formData.detailAddress"
|
||
placeholder="详细地址,例如1层101室"
|
||
placeholder-class="input-placeholder"
|
||
/>
|
||
</view>
|
||
</view>
|
||
<view class="con-bd-item">
|
||
<view class="con-bd-item-name">标签</view>
|
||
<view class="con-bd-item-con">
|
||
<view
|
||
:class="
|
||
formData.lableName == index
|
||
? 'lable-item lable-item-on'
|
||
: 'lable-item'
|
||
"
|
||
v-for="(item, index) in labelData"
|
||
:key="index"
|
||
@click="chooseLable(index)"
|
||
>{{ item }}</view
|
||
>
|
||
</view>
|
||
</view>
|
||
<view class="con-bd-item">
|
||
<view class="con-bd-item-name">联系人</view>
|
||
<view class="con-bd-item-con con-bd-item-con2">
|
||
<input
|
||
type="text"
|
||
v-model="formData.userName"
|
||
placeholder="请填写收货人姓名"
|
||
placeholder-class="input-placeholder"
|
||
/>
|
||
<view class="con-bd-sex-box" @click="chooseSex(1)">
|
||
<image
|
||
:class="['choose-sex-icon', formData.sexType == 1]"
|
||
:src="formData.sexType == 1 ? sele2Icon : noseleIcon"
|
||
mode=""
|
||
></image>
|
||
先生
|
||
</view>
|
||
<view class="con-bd-sex-box" @click="chooseSex(2)">
|
||
<image
|
||
class="choose-sex-icon"
|
||
:src="formData.sexType == 2 ? sele2Icon : noseleIcon"
|
||
mode=""
|
||
></image>
|
||
女士
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="con-bd-item">
|
||
<view class="con-bd-item-name">手机号</view>
|
||
<view class="con-bd-item-con">
|
||
<input
|
||
type="number"
|
||
maxlength="11"
|
||
v-model="formData.userPhone"
|
||
placeholder="请填写收货人手机号码"
|
||
placeholder-class="input-placeholder"
|
||
/>
|
||
</view>
|
||
</view>
|
||
<!-- <view class="con-bd-agree" @click="changeAgree">
|
||
<image
|
||
class="agreeicon"
|
||
:src="agreeState ? seleIcon : noseleIcon"
|
||
mode=""
|
||
></image>
|
||
<view class="agreetext">设为默认地址</view>
|
||
</view> -->
|
||
<view
|
||
:class="[
|
||
'con-ft-btn',
|
||
{
|
||
'con-ft-btn1': addressInfo && addressInfo.address,
|
||
'con-ft-btn3': !addressInfo || !addressInfo.address,
|
||
},
|
||
]"
|
||
@click="submitAddress"
|
||
>
|
||
保存地址
|
||
</view>
|
||
<view
|
||
v-if="ud_id"
|
||
class="con-ft-btn con-ft-btn2"
|
||
@click="deleteAddress"
|
||
>
|
||
删除地址
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="address-list" v-if="showPoisList && !showSearchAddress">
|
||
<scroll-view
|
||
class="uni-swiper-list"
|
||
scroll-y
|
||
:scroll-top="0"
|
||
enhanced
|
||
:show-scrollbar="false"
|
||
>
|
||
<view
|
||
class="address-item"
|
||
v-for="(item, index) of nearbyAddressList"
|
||
:key="index"
|
||
@click="handerSetAddress(item)"
|
||
>
|
||
<view class="item-left">
|
||
<view class="item-name">{{ item.name }}</view>
|
||
<view class="item-address">{{ item.addr }}</view>
|
||
</view>
|
||
<view class="item-right">
|
||
<image
|
||
class="item-active"
|
||
:src="acitveAddress(item)"
|
||
mode=""
|
||
></image>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
<view
|
||
class="reposition-block"
|
||
v-if="showReposition"
|
||
@click="getLocation('found')"
|
||
>
|
||
<text class="iconfontAili icon-zhongxindingwei"></text>
|
||
</view>
|
||
<uMask
|
||
:show="showMask"
|
||
v-if="showMask"
|
||
:zIndex="2"
|
||
@click="showMask = false"
|
||
></uMask>
|
||
</view>
|
||
<scroll-view
|
||
v-if="showSearchAddress && searchAddress.length > 0"
|
||
class="uni-swiper-search-list"
|
||
scroll-y
|
||
scroll-with-animation="true"
|
||
:scroll-top="scrollTop"
|
||
>
|
||
<view class="search-address-list">
|
||
<view
|
||
class="search-address-item"
|
||
v-for="(item, index) of searchAddress"
|
||
:key="index"
|
||
>
|
||
<view
|
||
class="search-address-item-left"
|
||
@click="handerSetAddress(item)"
|
||
>
|
||
<view class="item-left-name" v-html="item.searchName"></view>
|
||
<view class="item-left-address">{{
|
||
item.detailedInformation
|
||
}}</view>
|
||
</view>
|
||
<view class="search-address-item-right">{{ item.distance }}km</view>
|
||
</view>
|
||
</view>
|
||
</scroll-view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
import uMask from "./umask.vue";
|
||
import BMapLib from "../../helpers/GeoUtils.js";
|
||
import { mapState, mapMutations } from "vuex";
|
||
var bmap = require("../../libs/bmap-wx.js");
|
||
export default {
|
||
components: { uMask },
|
||
data() {
|
||
return {
|
||
map: null,
|
||
showMask: false,
|
||
originalData: {
|
||
result: {
|
||
addressComponent: {
|
||
city: "正在定位",
|
||
},
|
||
sematic_description: "定位中..",
|
||
},
|
||
},
|
||
nearbyAddressList: [],
|
||
formData: {
|
||
detailAddress: "",
|
||
userName: "",
|
||
userPhone: "",
|
||
lableName: null,
|
||
sexType: 1, //1 先生 2 女士
|
||
},
|
||
labelData: ["家", "公司", "学校"],
|
||
addressInfo: {}, //选中的地址信息
|
||
agreeState: false, //是否是默认地址
|
||
longitude: null,
|
||
latitude: null,
|
||
markerIcon: "/static/images/marker.png",
|
||
seleIcon: require("./static/sele.png"),
|
||
sele2Icon: "/static/images/sele2.png",
|
||
noseleIcon: require("./static/no-sele.png"),
|
||
oldObj: "",
|
||
showMarkerIcon: false,
|
||
showPoisList: false,
|
||
showSearchAddress: false,
|
||
searchAddress: [],
|
||
map_markers: [],
|
||
markers: [],
|
||
showSelectAddBtn: true,
|
||
showSearchIpunt: false,
|
||
showCurrAdd: false,
|
||
isDragMarker: false,
|
||
isEnableScroll: false,
|
||
showReposition: false,
|
||
currAddress: "",
|
||
currRoadAddress: "",
|
||
ud_id: null,
|
||
areaData: [],
|
||
cityData: [],
|
||
provinceData: [],
|
||
isFound: false,
|
||
issub: false,
|
||
options: {},
|
||
spid: "",
|
||
};
|
||
},
|
||
computed: {
|
||
...mapState([
|
||
"Config",
|
||
"StateCode",
|
||
"notice",
|
||
"plantformInfo",
|
||
"shopInfo",
|
||
"userInfo",
|
||
"hasLogin",
|
||
]),
|
||
},
|
||
onUnload() {
|
||
uni.removeStorageSync("city");
|
||
},
|
||
onShow(options) {
|
||
this.getAppDistrict();
|
||
let city = uni.getStorageSync("city");
|
||
if (city) {
|
||
this.originalData.result.addressComponent.city = city;
|
||
} else {
|
||
if (this.ud_id && this.ud_id != "-1") {
|
||
this.getCurrAddress();
|
||
} else {
|
||
this.getLocation();
|
||
}
|
||
}
|
||
},
|
||
onLoad(options) {
|
||
if (options.ud_id) {
|
||
this.ud_id = options.ud_id;
|
||
}
|
||
|
||
this.setData({
|
||
issub: options.issub,
|
||
ud_id: options.ud_id || 0,
|
||
spid: options.spid || "",
|
||
options: options,
|
||
});
|
||
},
|
||
methods: {
|
||
getAppDistrict() {
|
||
let that = this;
|
||
// 读取地区数据 【为了不同项目的小程序包体大小考虑,这里不能直接把数据放前端,可以使用服务端缓存和浏览器与小程序的本地存储来优化】
|
||
let district_data = uni.getStorageSync("district_data");
|
||
if (!district_data) {
|
||
that.$.request({
|
||
url: that.cf.URL.getAppDistrict,
|
||
data: {},
|
||
loading: false,
|
||
ajaxCache: {
|
||
timeout: this.cf.CACHE_EXPIRE,
|
||
},
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200) {
|
||
uni.setStorageSync("district_data", data);
|
||
that.setDistrictData(data);
|
||
}
|
||
},
|
||
});
|
||
} else {
|
||
that.setDistrictData(district_data);
|
||
}
|
||
},
|
||
setDistrictData(district_data) {
|
||
this.provinceData = district_data.provinceData;
|
||
this.cityData = district_data.cityData;
|
||
this.areaData = district_data.areaData;
|
||
},
|
||
getCurrAddress() {
|
||
let that = this;
|
||
|
||
var params = {
|
||
ud_id: that.ud_id,
|
||
};
|
||
|
||
that.$.request({
|
||
url: this.Config.URL.user.address_get,
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (status == 200) {
|
||
that.formData.detailAddress = data.ud_street_no;
|
||
that.formData.userName = data.ud_name;
|
||
that.formData.userPhone = data.ud_mobile;
|
||
that.formData.lableName = data.ud_label - 1;
|
||
that.formData.sexType = data.ud_gender;
|
||
let item = {
|
||
name: data.ud_marker,
|
||
location: {
|
||
lat: data.ud_latitude,
|
||
lng: data.ud_longitude,
|
||
},
|
||
addr: data.ud_street_addr,
|
||
};
|
||
that.handerSetAddress(item);
|
||
|
||
let moveMarke = {
|
||
id: 94,
|
||
latitude: data.ud_latitude,
|
||
longitude: data.ud_longitude,
|
||
iconPath: that.markerIcon,
|
||
width: 20,
|
||
height: 30,
|
||
};
|
||
that.$nextTick(() => {
|
||
that.markers.push(moveMarke);
|
||
});
|
||
}
|
||
},
|
||
});
|
||
},
|
||
getBaiduOriginalData(location, type, type2) {
|
||
let that = this;
|
||
|
||
let BMap = new bmap.BMapWX({
|
||
ak: "LkqqCMB1qZmjYEkzx0Y1PTfmAUrkWPog",
|
||
});
|
||
|
||
if (type2 == "found") {
|
||
that.isFound = true;
|
||
uni.removeStorageSync("city");
|
||
}
|
||
|
||
let fail = function (res) {
|
||
console.log("fail", res);
|
||
};
|
||
|
||
let success = function (res) {
|
||
that.latitude = res.originalData.result.location.lat;
|
||
that.longitude = res.originalData.result.location.lng;
|
||
|
||
console.log(that.latitude, that.longitude);
|
||
|
||
that.originalData = res.originalData;
|
||
|
||
let city = uni.getStorageSync("city");
|
||
if (city) {
|
||
that.originalData.result.addressComponent.city = city;
|
||
}
|
||
|
||
let array = res.originalData.result.pois;
|
||
|
||
let nearbyObject = array.find((item) => item.distance === "附近");
|
||
let numericDistances = array.filter((item) => item.distance !== "附近");
|
||
numericDistances.sort(
|
||
(a, b) => parseInt(a.distance, 10) - parseInt(b.distance, 10)
|
||
);
|
||
if (nearbyObject) {
|
||
that.nearbyAddressList = [nearbyObject, ...numericDistances];
|
||
} else {
|
||
that.nearbyAddressList = numericDistances;
|
||
}
|
||
|
||
if (that.markers.length > 0 && that.isFound) {
|
||
let item = that.nearbyAddressList[0];
|
||
that.markers[0].latitude = that.latitude;
|
||
that.markers[0].longitude = that.longitude;
|
||
that.markers[1].latitude = that.latitude;
|
||
that.markers[1].longitude = that.longitude;
|
||
that.markers[0].callout = {
|
||
content: item.name,
|
||
color: "#000",
|
||
fontSize: 14,
|
||
borderRadius: 6, //边框圆角
|
||
bgColor: "#fff",
|
||
borderWidth: 1,
|
||
borderColor: "rgba(0, 0, 0, 0.4)",
|
||
padding: 8,
|
||
display: "ALWAYS",
|
||
textAlign: "center",
|
||
};
|
||
that.currAddress = "";
|
||
}
|
||
that.isFound = false;
|
||
};
|
||
|
||
BMap.regeocoding({
|
||
location: location,
|
||
coordtype: type,
|
||
ret_coordtype: "gcj02ll",
|
||
fail: fail,
|
||
success: success,
|
||
});
|
||
},
|
||
handerSetAddress(item) {
|
||
let that = this;
|
||
that.showMarkerIcon = true;
|
||
that.showCurrAdd = true;
|
||
that.showMask = false;
|
||
that.showSearchAddress = false;
|
||
that.showPoisList = false;
|
||
that.showSelectAddBtn = false;
|
||
that.showSearchIpunt = false;
|
||
that.isEnableScroll = false;
|
||
that.showReposition = false;
|
||
that.currAddress = item.name;
|
||
that.isDragMarker = false;
|
||
|
||
that.currRoadAddress = item.addr
|
||
? item.addr
|
||
: item.province + item.address.replace(/-/g, "");
|
||
var location = item.location
|
||
? item.location.lat + "," + item.location.lng
|
||
: item.point.y + "," + item.point.x;
|
||
|
||
that.getBaiduOriginalData(location, "gcj02ll");
|
||
},
|
||
onSearch() {
|
||
this.showMask = true;
|
||
},
|
||
handerSkip() {
|
||
uni.navigateTo({
|
||
url: `/address/selectCity?isAdd=true`,
|
||
});
|
||
},
|
||
// 地图移动时
|
||
handerRegionchange(e) {
|
||
console.log(e);
|
||
|
||
if (e.type == "begin" && this.markers.length > 0) {
|
||
if (this.showPoisList) {
|
||
this.isDragMarker = true;
|
||
}
|
||
this.markers[0].latitude = 0;
|
||
this.markers[0].longitude = 0;
|
||
this.markers[0].iconPath = "";
|
||
|
||
if (!this.isDragMarker && this.showCurrAdd) {
|
||
this.clearMarkes();
|
||
}
|
||
|
||
console.log("触发了:begin");
|
||
}
|
||
|
||
if (e.type == "end" && this.showMarkerIcon && !this.showCurrAdd) {
|
||
console.log("触发了:", "end");
|
||
if (!e.target.centerLocation) return;
|
||
console.log(e.target.centerLocation);
|
||
this.isDragMarker = false;
|
||
|
||
let { latitude, longitude } = e.target.centerLocation;
|
||
|
||
if (this.markers.length > 0) {
|
||
this.markers[0].latitude = latitude;
|
||
this.markers[0].longitude = longitude;
|
||
this.markers[0].iconPath = this.markerIcon;
|
||
}
|
||
|
||
let location = latitude + "," + longitude;
|
||
|
||
let that = this;
|
||
|
||
let BMap = new bmap.BMapWX({
|
||
ak: "LkqqCMB1qZmjYEkzx0Y1PTfmAUrkWPog",
|
||
});
|
||
|
||
let fail = function (res) {
|
||
console.log("fail", res);
|
||
};
|
||
|
||
let success = function (res) {
|
||
console.log("结果地址", res);
|
||
|
||
that.originalData = res.originalData;
|
||
let array = res.originalData.result.pois;
|
||
|
||
let nearbyObject = array.find((item) => item.distance === "附近");
|
||
let numericDistances = array.filter(
|
||
(item) => item.distance !== "附近"
|
||
);
|
||
numericDistances.sort(
|
||
(a, b) => parseInt(a.distance, 10) - parseInt(b.distance, 10)
|
||
);
|
||
if (nearbyObject) {
|
||
that.nearbyAddressList = [nearbyObject, ...numericDistances];
|
||
} else {
|
||
that.nearbyAddressList = numericDistances;
|
||
}
|
||
|
||
let item = that.nearbyAddressList[0];
|
||
|
||
that.markers[0].callout = {
|
||
content: item.name,
|
||
color: "#000",
|
||
fontSize: 14,
|
||
borderRadius: 6, //边框圆角
|
||
bgColor: "#fff",
|
||
borderWidth: 1,
|
||
borderColor: "rgba(0, 0, 0, 0.4)",
|
||
padding: 8,
|
||
display: "ALWAYS",
|
||
textAlign: "center",
|
||
};
|
||
};
|
||
|
||
BMap.regeocoding({
|
||
location: location,
|
||
coordtype: "gcj02ll",
|
||
ret_coordtype: "gcj02ll",
|
||
fail: fail,
|
||
success: success,
|
||
});
|
||
}
|
||
},
|
||
//数据回显时使用此方法
|
||
// setData(obj) {
|
||
// this.oldObj = obj;
|
||
// this.formData.detailAddress = obj.detailAddress;
|
||
// this.formData.userName = obj.userName;
|
||
// this.formData.userPhone = obj.userPhone;
|
||
// this.formData.lableName = obj.lableName;
|
||
// this.formData.sexType = obj.sexType;
|
||
// this.addressInfo.title = obj.title;
|
||
// this.addressInfo.address = obj.address;
|
||
// this.addressInfo.latitude = obj.latitude;
|
||
// this.addressInfo.longitude = obj.longitude;
|
||
// this.agreeState = obj.agreeState;
|
||
// },
|
||
//获取当前的地理位置
|
||
getLocation(type) {
|
||
let that = this;
|
||
|
||
console.log(that.markers);
|
||
|
||
uni.showLoading({
|
||
title: "正在获取定位中...",
|
||
});
|
||
uni.getLocation({
|
||
type: "wgs84",
|
||
isHighAccuracy: true,
|
||
geocode: "true",
|
||
highAccuracyExpireTime: 3500,
|
||
success: (res) => {
|
||
uni.hideLoading();
|
||
|
||
var location = res.latitude + "," + res.longitude;
|
||
|
||
that.getBaiduOriginalData(location, "wgs84ll", type);
|
||
},
|
||
fail: (res) => {
|
||
if (res.errMsg == "getLocation:fail auth deny") {
|
||
uni.showModal({
|
||
content: "检测到您没打开获取信息功能权限,是否去设置打开?",
|
||
confirmText: "确认",
|
||
cancelText: "取消",
|
||
success: (res) => {
|
||
if (res.confirm) {
|
||
uni.openSetting({
|
||
success: (res) => {},
|
||
});
|
||
} else {
|
||
return false;
|
||
}
|
||
},
|
||
});
|
||
}
|
||
},
|
||
});
|
||
},
|
||
isValidPhoneNumber(phoneNumber) {
|
||
// 定义正则表达式,校验中国大陆手机号码
|
||
const phoneRegex = /^1[3-9]\d{9}$/;
|
||
return phoneRegex.test(phoneNumber);
|
||
},
|
||
fuzzyMatch(shortStr, longStr) {
|
||
if (!shortStr || !longStr) {
|
||
console.log("找不到地址");
|
||
return;
|
||
}
|
||
|
||
const lowerShortStr = shortStr.toLowerCase();
|
||
const lowerLongStr = longStr.toLowerCase();
|
||
|
||
return lowerShortStr.includes(lowerLongStr);
|
||
},
|
||
//保存地址
|
||
submitAddress() {
|
||
if (!this.currAddress) {
|
||
uni.showToast({
|
||
title: "请选择收货地址",
|
||
icon: "none",
|
||
});
|
||
return;
|
||
}
|
||
// if (!this.formData.detailAddress) {
|
||
// uni.showToast({
|
||
// title: "请输入门牌号",
|
||
// icon: "none",
|
||
// });
|
||
// return;
|
||
// }
|
||
if (!this.formData.userName) {
|
||
uni.showToast({
|
||
title: "请输入联系人",
|
||
icon: "none",
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (!this.formData.userPhone) {
|
||
uni.showToast({
|
||
title: "请输入手机号",
|
||
icon: "none",
|
||
});
|
||
return;
|
||
}
|
||
|
||
let isValid = this.isValidPhoneNumber(this.formData.userPhone);
|
||
|
||
if (!isValid) {
|
||
uni.showToast({
|
||
title: "请输入正确的手机号",
|
||
icon: "none",
|
||
});
|
||
return;
|
||
}
|
||
|
||
let item = this.originalData;
|
||
|
||
let province = {
|
||
label: "",
|
||
value: 0,
|
||
};
|
||
|
||
let city = {
|
||
label: "",
|
||
value: 0,
|
||
};
|
||
|
||
let county = {
|
||
label: "",
|
||
value: 0,
|
||
};
|
||
|
||
this.provinceData.forEach((group) => {
|
||
let isFind = this.fuzzyMatch(
|
||
item.result.addressComponent.province,
|
||
group.label
|
||
);
|
||
if (isFind) {
|
||
province = group;
|
||
}
|
||
});
|
||
|
||
this.cityData.forEach((group) => {
|
||
group.forEach((group1) => {
|
||
let isFind = this.fuzzyMatch(
|
||
group1.label,
|
||
item.result.addressComponent.city
|
||
);
|
||
if (isFind) {
|
||
city = group1;
|
||
}
|
||
});
|
||
});
|
||
|
||
this.areaData.forEach((group) => {
|
||
group.forEach((group1) => {
|
||
group1.forEach((group2) => {
|
||
let isFind = this.fuzzyMatch(
|
||
group2.label,
|
||
item.result.addressComponent.district
|
||
);
|
||
if (isFind) {
|
||
county = group2;
|
||
}
|
||
});
|
||
});
|
||
});
|
||
|
||
let lableName = this.formData.lableName;
|
||
if (lableName === "" || lableName == -1) {
|
||
lableName = "";
|
||
} else {
|
||
lableName = lableName + 1;
|
||
}
|
||
|
||
let parms = {
|
||
ud_id: this.ud_id || 0,
|
||
ud_city: item.result.addressComponent.city,
|
||
ud_gender: this.formData.sexType,
|
||
ud_intl: "+86",
|
||
ud_mobile: this.formData.userPhone,
|
||
ud_name: this.formData.userName,
|
||
ud_marker: this.currAddress,
|
||
ud_street_addr: this.currRoadAddress,
|
||
ud_street_no: this.formData.detailAddress,
|
||
ud_latitude: this.latitude,
|
||
ud_longitude: this.longitude,
|
||
ud_label: lableName || "",
|
||
ud_province_id: province.value, // 省份ID
|
||
ud_province: province.label, // 省份名称
|
||
ud_city_id: city.value, // ud_city_id 城市ID
|
||
ud_city: city.label, // 城市名称
|
||
ud_county_id: county.value, // 区ID
|
||
ud_county: county.label, // 区名字
|
||
ud_address: this.currAddress + this.formData.detailAddress,
|
||
ud_is_default: 1,
|
||
};
|
||
|
||
let that = this;
|
||
var options = that.options;
|
||
|
||
this.$.request({
|
||
url: this.Config.URL.user.address_edit,
|
||
method: "post",
|
||
data: parms,
|
||
success: (data, status, msg, code) => {
|
||
if (status == 200) {
|
||
this.$.showToast({
|
||
title: "添加成功",
|
||
icon: "success",
|
||
duration: 2e3,
|
||
});
|
||
if (options.issub) {
|
||
that.$.navigateBack(1, function () {
|
||
options.ud_id = data.ud_id;
|
||
that.notice.postNotificationName("RefreshOrder", options);
|
||
});
|
||
} else {
|
||
that.$.navigateBack(1, function () {
|
||
that.notice.postNotificationName("RefreshAddress", 1);
|
||
});
|
||
}
|
||
}
|
||
},
|
||
});
|
||
},
|
||
//删除地址
|
||
deleteAddress() {
|
||
var that = this;
|
||
that.$.showModal({
|
||
title: that.__("提示"),
|
||
content: that.__("确认删除这个地址吗?"),
|
||
showCancel: true,
|
||
success: function (n) {
|
||
if (n.confirm) {
|
||
var params = {
|
||
ud_id: that.ud_id,
|
||
};
|
||
that.$.request({
|
||
url: that.Config.URL.user.address_remove,
|
||
method: "post",
|
||
data: params,
|
||
success: function (data, status, msg, code) {
|
||
if (200 == status) {
|
||
that.$.showToast({
|
||
title: that.__("删除成功!"),
|
||
});
|
||
|
||
that.notice.postNotificationName("RefreshOrder", 0);
|
||
uni.navigateBack();
|
||
}
|
||
},
|
||
});
|
||
}
|
||
},
|
||
});
|
||
},
|
||
//选择地址、修改编辑地址
|
||
chooseAddressView() {
|
||
this.showMarkerIcon = true;
|
||
this.showPoisList = true;
|
||
this.showSearchIpunt = true;
|
||
this.isEnableScroll = true;
|
||
this.showCurrAdd = false;
|
||
this.showReposition = true;
|
||
|
||
var item = {};
|
||
|
||
let group = this.nearbyAddressList.find(
|
||
(item) => item.name == this.currAddress
|
||
);
|
||
if (group) {
|
||
item = group;
|
||
} else {
|
||
item = this.nearbyAddressList[0];
|
||
}
|
||
|
||
let { x, y } = item.point;
|
||
console.log(x, y);
|
||
let moveMarke = {
|
||
id: 94,
|
||
latitude: y,
|
||
longitude: x,
|
||
iconPath: this.markerIcon,
|
||
width: 20,
|
||
height: 30,
|
||
callout: {
|
||
content: item.name,
|
||
color: "#000",
|
||
fontSize: 14,
|
||
borderRadius: 6, //边框圆角
|
||
bgColor: "#fff",
|
||
borderWidth: 1,
|
||
borderColor: "rgba(0, 0, 0, 0.4)",
|
||
padding: 8,
|
||
display: "ALWAYS",
|
||
textAlign: "center",
|
||
},
|
||
};
|
||
|
||
let currMarke = {
|
||
id: 2,
|
||
latitude: Number(this.latitude),
|
||
longitude: Number(this.longitude),
|
||
iconPath: this.sele2Icon,
|
||
width: 25,
|
||
height: 25,
|
||
};
|
||
|
||
let list = [];
|
||
|
||
list.push(moveMarke);
|
||
list.push(currMarke);
|
||
|
||
this.$nextTick(() => {
|
||
this.markers = list;
|
||
});
|
||
},
|
||
//联系人性别选择
|
||
chooseSex(type) {
|
||
this.formData.sexType = type;
|
||
},
|
||
clearMarkes() {
|
||
this.$nextTick(() => {
|
||
console.log(this.latitude, this.longitude);
|
||
this.markers[0].latitude = this.latitude;
|
||
this.markers[0].longitude = this.longitude;
|
||
this.markers[0].iconPath = this.markerIcon;
|
||
this.markers[0].callout = {};
|
||
if (this.markers[1]) {
|
||
this.markers[1].iconPath = "";
|
||
this.markers[1].latitude = 0;
|
||
this.markers[1].longitude = 0;
|
||
}
|
||
});
|
||
},
|
||
//标签选择
|
||
chooseLable(inedx) {
|
||
if (this.formData.lableName == inedx) {
|
||
this.formData.lableName = -1;
|
||
} else {
|
||
this.formData.lableName = inedx;
|
||
}
|
||
},
|
||
//点击隐私协议
|
||
changeAgree() {
|
||
this.agreeState = !this.agreeState;
|
||
},
|
||
acitveAddress(item) {
|
||
if (item.name == this.currAddress) {
|
||
return this.sele2Icon;
|
||
} else {
|
||
return this.noseleIcon;
|
||
}
|
||
},
|
||
// 搜索地址
|
||
handerAddress(e) {
|
||
let that = this;
|
||
|
||
let value = e.target.value;
|
||
if (value.length == 0) {
|
||
this.showSearchAddress = false;
|
||
} else {
|
||
this.showSearchAddress = true;
|
||
}
|
||
|
||
var fail = function (res) {
|
||
console.log("fail", res);
|
||
};
|
||
|
||
var currentPoint = {
|
||
lat: that.originalData.result.location.lat,
|
||
lng: that.originalData.result.location.lng,
|
||
};
|
||
|
||
var metersToKilometers = function (meters) {
|
||
let kilometers = meters / 1000;
|
||
|
||
// 保留两位小数
|
||
return kilometers.toFixed(2);
|
||
};
|
||
|
||
var success = function (res) {
|
||
console.log("结果地址", res);
|
||
if (res.data.status != 0) {
|
||
uni.showToast({
|
||
title: res.message,
|
||
icon: "none",
|
||
duration: 3000,
|
||
});
|
||
return;
|
||
}
|
||
|
||
that.searchAddress = res.data.result
|
||
.filter((item) => "location" in item)
|
||
.map((item) => {
|
||
let obj = {
|
||
...item,
|
||
name: item.name,
|
||
detailedInformation: item.address.replace(/-/g, ""),
|
||
distance: metersToKilometers(
|
||
BMapLib.GeoUtils.getDistance(currentPoint, item.location)
|
||
),
|
||
};
|
||
return obj;
|
||
});
|
||
console.log("that.searchAddress", that.searchAddress);
|
||
|
||
that.searchAddress.forEach((item) => {
|
||
if (item.name.indexOf(value) >= 0) {
|
||
item.searchName = item.name.replaceAll(
|
||
value,
|
||
"<font style='color:#ee852f;padding:0 4px'>" + value + "</font>"
|
||
);
|
||
} else {
|
||
item.searchName = item.name;
|
||
}
|
||
});
|
||
console.log("searchAddress", that.searchAddress);
|
||
};
|
||
|
||
let params = {
|
||
query: value,
|
||
region: this.originalData.result.addressComponent.city,
|
||
output: "json",
|
||
city_limit: true,
|
||
ak: "qWKt2xbrqXsp2yK35YYXVBNZgrbiCG5v",
|
||
ret_coordtype: "gcj02ll",
|
||
};
|
||
|
||
let city = that.originalData.result.addressComponent.city;
|
||
if (city) {
|
||
params.center = "";
|
||
}
|
||
|
||
if (this.time !== null) {
|
||
clearTimeout(this.time);
|
||
}
|
||
|
||
this.time = setTimeout(() => {
|
||
uni.request({
|
||
url: `https://api.map.baidu.com/place/v2/suggestion`,
|
||
data: params,
|
||
success: success,
|
||
fail: fail,
|
||
});
|
||
}, 600);
|
||
},
|
||
},
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss" scoped>
|
||
/* 隐藏滚动条 */
|
||
.scroll-view {
|
||
scrollbar-width: none; /* Firefox */
|
||
}
|
||
|
||
.scroll-view::-webkit-scrollbar {
|
||
display: none; /* Chrome, Safari */
|
||
}
|
||
|
||
.liu-chooseAddress-container {
|
||
background: #fff !important;
|
||
|
||
.hander {
|
||
.uni-navbar__header {
|
||
align-items: center;
|
||
padding: 10rpx 20rpx !important;
|
||
}
|
||
|
||
.left-block {
|
||
display: flex;
|
||
align-items: center;
|
||
line-height: 60rpx;
|
||
}
|
||
.city-block {
|
||
white-space: nowrap; /* 确保文本在一行内显示 */
|
||
overflow: hidden; /* 隐藏超出容器的文本 */
|
||
text-overflow: ellipsis; /* 使用省略符号表示文本超出 */
|
||
max-width: 140rpx;
|
||
padding-right: 4rpx;
|
||
}
|
||
|
||
.icon-dingwei {
|
||
font-size: 40rpx;
|
||
}
|
||
|
||
.icon-right {
|
||
font-size: 24rpx;
|
||
}
|
||
}
|
||
|
||
.uni-swiper-list {
|
||
height: 50vh;
|
||
}
|
||
|
||
.current-block-left {
|
||
width: 78%;
|
||
max-width: 78%;
|
||
}
|
||
|
||
.current-block-right {
|
||
width: 22%;
|
||
}
|
||
|
||
.current-name,
|
||
.current-address {
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.current-name {
|
||
font-size: 30rpx;
|
||
}
|
||
|
||
.current-address {
|
||
font-size: 24rpx;
|
||
color: #848484;
|
||
}
|
||
|
||
.btn-edit-block {
|
||
padding: 8rpx;
|
||
font-size: 14px;
|
||
text-align: center;
|
||
border-radius: 12rpx;
|
||
border: 1px solid #3579ff;
|
||
color: #3579ff;
|
||
}
|
||
|
||
.input-view {
|
||
width: 92%;
|
||
display: flex;
|
||
background-color: #f5f5f5;
|
||
height: 60rpx;
|
||
border-radius: 30rpx;
|
||
padding: 0 4%;
|
||
flex-wrap: nowrap;
|
||
margin: 10rpx 0;
|
||
line-height: 60rpx;
|
||
margin-left: 10rpx;
|
||
color: #b9b9b9;
|
||
}
|
||
|
||
.input-view .uni-icon {
|
||
line-height: 60rpx !important;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
.input-view .uni-icons {
|
||
font-size: 32rpx !important;
|
||
}
|
||
|
||
.input-view .input {
|
||
height: 60rpx;
|
||
line-height: 60rpx;
|
||
width: 94%;
|
||
padding: 0 2%;
|
||
font-size: 24rpx;
|
||
}
|
||
|
||
/* 隐藏滚动条 */
|
||
.scroll-view {
|
||
scrollbar-width: none; /* Firefox */
|
||
}
|
||
|
||
.scroll-view::-webkit-scrollbar {
|
||
display: none; /* Chrome, Safari */
|
||
}
|
||
|
||
.address-list {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 26rpx;
|
||
width: 654rpx;
|
||
height: 50vh;
|
||
padding: 8rpx 24rpx 0;
|
||
margin-top: 24rpx;
|
||
background: #ffffff;
|
||
border-radius: 24rpx 24rpx 0rpx 0rpx;
|
||
|
||
.address-item {
|
||
display: flex;
|
||
align-items: center;
|
||
padding: 14px 0;
|
||
border-bottom: 1px solid #f8f8f8;
|
||
|
||
.item-left {
|
||
width: 90%;
|
||
max-width: 90%;
|
||
|
||
.item-name,
|
||
.item-address {
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
}
|
||
|
||
.item-name {
|
||
font-size: 30rpx;
|
||
}
|
||
|
||
.item-address {
|
||
font-size: 24rpx;
|
||
color: #848484;
|
||
}
|
||
}
|
||
|
||
.item-right {
|
||
width: 10%;
|
||
|
||
.item-active {
|
||
margin-left: 28rpx;
|
||
margin-top: 28rpx;
|
||
width: 36rpx;
|
||
height: 36rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
.search-address-list {
|
||
margin: 40rpx;
|
||
|
||
.search-address-item {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 20rpx 0;
|
||
border-bottom: 2rpx solid #f0f0f0;
|
||
|
||
.search-address-item-left {
|
||
width: 80%;
|
||
}
|
||
|
||
.search-address-item-right {
|
||
color: #d7d7d7;
|
||
width: 20%;
|
||
text-align: right;
|
||
}
|
||
|
||
rich-text {
|
||
// max-width: 90%;
|
||
max-height: 27px;
|
||
overflow: hidden;
|
||
word-break: break-all; /* break-all(允许在单词内换行。) */
|
||
text-overflow: ellipsis; /* 超出部分省略号 */
|
||
display: -webkit-box; /** 对象作为伸缩盒子模型显示 **/
|
||
-webkit-box-orient: vertical; /** 设置或检索伸缩盒对象的子元素的排列方式 **/
|
||
-webkit-line-clamp: 2; /** 显示的行数 **/
|
||
}
|
||
|
||
// .item-left-name rich-text {
|
||
// white-space: nowrap; /* 确保文本在一行内显示 */
|
||
// overflow: hidden; /* 隐藏超出容器的文本 */
|
||
// text-overflow: ellipsis; /* 使用省略符号表示文本超出 */
|
||
// -webkit-box-orient: vertical;
|
||
// max-width: 90%;
|
||
// display: -webkit-box;
|
||
// box-sizing: border-box;
|
||
// }
|
||
|
||
.item-left-address {
|
||
font-size: 24rpx;
|
||
color: #848484;
|
||
white-space: nowrap; /* 确保文本在一行内显示 */
|
||
overflow: hidden; /* 隐藏超出容器的文本 */
|
||
text-overflow: ellipsis; /* 使用省略符号表示文本超出 */
|
||
max-width: 90%;
|
||
}
|
||
}
|
||
}
|
||
|
||
.reposition-block {
|
||
position: absolute;
|
||
top: -20%;
|
||
right: 24rpx;
|
||
width: 68rpx;
|
||
height: 68rpx;
|
||
line-height: 68rpx;
|
||
border-radius: 12rpx;
|
||
text-align: center;
|
||
background: #fff;
|
||
z-index: 1;
|
||
|
||
.icon-zhongxindingwei {
|
||
display: block;
|
||
font-size: 44rpx;
|
||
}
|
||
}
|
||
}
|
||
|
||
.view-main {
|
||
width: 100%;
|
||
height: 100%;
|
||
background: #f3f3f3;
|
||
}
|
||
|
||
.map-marker {
|
||
width: 20px;
|
||
height: 30px;
|
||
position: absolute;
|
||
top: 48%;
|
||
left: 50%;
|
||
transform: translate(-50%, -50%);
|
||
}
|
||
|
||
.map-tip {
|
||
font-size: 20rpx;
|
||
color: #b6b6b6;
|
||
line-height: 42rpx;
|
||
padding: 0 20rpx;
|
||
position: absolute;
|
||
left: 50%;
|
||
top: 30rpx;
|
||
box-shadow: 0px 1px 10px 1px rgba(153, 153, 153, 0.34);
|
||
background-color: #fff;
|
||
border-radius: 4px;
|
||
transform: translateX(-50%);
|
||
}
|
||
|
||
.poiss-box {
|
||
width: 100%;
|
||
padding: 20rpx 0;
|
||
background-color: #ffffff;
|
||
font-size: 26rpx;
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 0;
|
||
}
|
||
|
||
.poiss-item {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
width: calc(100% - 48rpx);
|
||
height: 100rpx;
|
||
padding: 0 24rpx;
|
||
border-bottom: 1px solid #f9f9f9;
|
||
}
|
||
|
||
.poiss-item-l {
|
||
width: calc(100% - 184rpx);
|
||
}
|
||
|
||
.poiss-item-lhd {
|
||
font-size: 32rpx;
|
||
color: #333333;
|
||
line-height: 48rpx;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.poiss-item-lbd {
|
||
font-size: 28rpx;
|
||
color: #b6b6b6;
|
||
line-height: 42rpx;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.poiss-item-r {
|
||
width: 36rpx;
|
||
height: 36rpx;
|
||
margin: 0 30rpx;
|
||
}
|
||
|
||
.primary-btn {
|
||
width: 688rpx;
|
||
height: 88rpx;
|
||
margin: 0 auto;
|
||
margin-top: 28rpx;
|
||
background: #3579ff;
|
||
border-radius: 44rpx;
|
||
font-size: 32rpx;
|
||
color: #ffffff;
|
||
line-height: 88rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.page-con {
|
||
width: 702rpx;
|
||
height: 75vh;
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 24rpx;
|
||
}
|
||
|
||
.con-hd {
|
||
display: flex;
|
||
align-items: center;
|
||
width: 654rpx;
|
||
height: 128rpx;
|
||
margin: 0 auto;
|
||
background: #ffffff;
|
||
box-shadow: 0rpx 4rpx 8rpx 0rpx rgba(88, 102, 123, 0.2);
|
||
border-radius: 24rpx;
|
||
padding: 0 24rpx;
|
||
}
|
||
|
||
.choose-address {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
width: 92%;
|
||
height: 64rpx;
|
||
margin: 36rpx auto;
|
||
border-radius: 12rpx;
|
||
border: 2rpx solid #3579ff;
|
||
font-size: 32rpx;
|
||
color: #3579ff;
|
||
|
||
.icon-right {
|
||
padding-left: 12rpx;
|
||
}
|
||
}
|
||
|
||
.choose-address2 {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
width: calc(100% - 48rpx);
|
||
padding: 0 24rpx;
|
||
}
|
||
|
||
.address2-l {
|
||
width: calc(100% - 184rpx);
|
||
}
|
||
|
||
.address2-lhd {
|
||
font-size: 32rpx;
|
||
font-weight: bold;
|
||
color: #333333;
|
||
line-height: 48rpx;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.address2-lbd {
|
||
font-size: 28rpx;
|
||
color: #999999;
|
||
line-height: 42rpx;
|
||
text-overflow: ellipsis;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
}
|
||
|
||
.address2-r {
|
||
width: 144rpx;
|
||
height: 60rpx;
|
||
background: #ffffff;
|
||
border-radius: 12rpx;
|
||
border: 2rpx solid #3579ff;
|
||
font-size: 28rpx;
|
||
color: #3579ff;
|
||
line-height: 60rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.con-bd {
|
||
width: 654rpx;
|
||
height: calc(90vh - 160rpx);
|
||
padding: 8rpx 24rpx 0;
|
||
margin-top: 24rpx;
|
||
background: #ffffff;
|
||
border-radius: 24rpx 24rpx 0rpx 0rpx;
|
||
}
|
||
|
||
.con-bd-item {
|
||
display: flex;
|
||
align-items: center;
|
||
width: 100%;
|
||
height: 110rpx;
|
||
}
|
||
|
||
.con-bd-item-name {
|
||
width: 120rpx;
|
||
height: 110rpx;
|
||
text-align: left;
|
||
font-size: 28rpx;
|
||
font-weight: bold;
|
||
color: #333333;
|
||
line-height: 110rpx;
|
||
}
|
||
|
||
.con-bd-item-con {
|
||
display: flex;
|
||
align-items: center;
|
||
width: calc(100% - 120rpx);
|
||
height: 108rpx;
|
||
border-bottom: 2rpx solid #f7f7f7;
|
||
}
|
||
|
||
.con-bd-item-con input {
|
||
width: 100%;
|
||
height: 60rpx;
|
||
}
|
||
|
||
.lable-item {
|
||
width: 88rpx;
|
||
height: 48rpx;
|
||
margin-right: 18rpx;
|
||
background: #ffffff;
|
||
border-radius: 6rpx;
|
||
border: 2rpx solid #e3e3e3;
|
||
font-size: 24rpx;
|
||
color: #333333;
|
||
line-height: 48rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.lable-item-on {
|
||
background: #3579ff !important;
|
||
border: 2rpx solid #3579ff;
|
||
color: #ffffff !important;
|
||
}
|
||
|
||
.con-bd-item-con2 input {
|
||
width: 50%;
|
||
height: 60rpx;
|
||
}
|
||
|
||
.con-bd-sex-box {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
margin-left: 16rpx;
|
||
font-size: 28rpx;
|
||
}
|
||
|
||
.choose-sex-icon {
|
||
width: 36rpx;
|
||
height: 36rpx;
|
||
margin-right: 12rpx;
|
||
}
|
||
|
||
.con-bd-agree {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: flex-start;
|
||
margin-top: 40rpx;
|
||
width: 100%;
|
||
}
|
||
|
||
.agreeicon {
|
||
width: 36rpx;
|
||
height: 36rpx;
|
||
margin-right: 20rpx;
|
||
margin-top: 2rpx;
|
||
}
|
||
|
||
.agreetext {
|
||
display: flex;
|
||
align-items: center;
|
||
font-size: 28rpx;
|
||
line-height: 28rpx;
|
||
color: #999999;
|
||
}
|
||
|
||
.con-ft-btn {
|
||
width: 644rpx;
|
||
height: 72rpx;
|
||
margin-top: 60rpx;
|
||
border-radius: 12rpx;
|
||
font-size: 32rpx;
|
||
line-height: 72rpx;
|
||
text-align: center;
|
||
}
|
||
|
||
.con-ft-btn:last-child {
|
||
margin-top: 32rpx;
|
||
}
|
||
|
||
.con-ft-btn1 {
|
||
background: #3579ff;
|
||
color: #ffffff;
|
||
}
|
||
|
||
.con-ft-btn2 {
|
||
background: #ffffff;
|
||
border: 2rpx solid #dedede;
|
||
}
|
||
|
||
.con-ft-btn3 {
|
||
background: #3579ff;
|
||
border: 2rpx solid #dedede;
|
||
font-size: 32rpx;
|
||
color: #ffffff;
|
||
}
|
||
|
||
.input-placeholder {
|
||
font-size: 28rpx;
|
||
color: #999999;
|
||
}
|
||
</style> |