Commit beedda9f by 程智春

魔方导航,地址导航

parent 2bc21767
import {requestPOST,requestGET} from "@/utils/request.js";
console.log(process.env,'-----------------config------')
// wx
export default {
query_operating_area_area_list(data) {
return requestPOST(`${process.env.OLSHOP_URL}/operatingArea/query_operating_area_area_list?operatingAreaGroupId=${data}`);
},
query_Location_operating_area_area_list(data) {
return requestGET(`${process.env.OLSHOP_URL}/operatingArea/query_Location_operating_area_area_list?location=${data.location}`);
},
}
\ No newline at end of file
<!--
* @Author: your name
* @Date: 2020-10-26 11:16:20
* @LastEditTime: 2020-11-05 13:43:24
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: \ant-unified-store_decoration\components\basic\cube-nav\index.vue
-->
<template>
<div
class="cube-nav"
:style="{
'padding-top': datas.componentData.verticalMargin + 'px',
'padding-bottom': datas.componentData.verticalMargin + 'px',
'padding-left': datas.componentData.levelMargin + 'px',
'padding-right': datas.componentData.levelMargin + 'px'
}"
>
<div
class="cube1 clearfix"
v-if="datas.componentData['layoutType'] == 0"
:style="{
backgroundColor: getBackgroundColor,
borderRadius: moduleRadius + 'px'
}"
>
<div
class="cube-item"
v-for="(item, index) in imgList"
:key="index"
@click="onclickHandle(item)"
:style="{
paddingTop: datas.componentData.lineHeight + 'px',
paddingBottom: datas.componentData.lineHeight + 'px',
width: getColumnWidth
}"
style="position:relative"
>
<div
:style="{
paddingLeft: getImgSize + '%',
paddingRight: getImgSize + '%'
}"
>
<div class="item-img" :class="item.imageUrl == '' ? 'item-bg' : ''">
<img v-show="item.imageUrl" :src="item.imageUrl | DFSImg(400,400)" alt="" />
</div>
</div>
<div
class="item-title"
:style="{
fontSize: textSize + 'px',
color: getFontsizeColor,
height: textSize / 12 + 'em',
lineHeight: textSize / 12 + 'em'
}"
>
{{ item.title }}
</div>
</div>
</div>
<div
:style="{
backgroundColor: getBackgroundColor,
borderRadius: moduleRadius + 'px',
paddingBottom: navShow ? '10px' : '0px'
}"
style="position:relative"
v-if="datas.componentData['layoutType'] == 1"
>
<div
class="cube2 clearfix"
ref="cube2"
@scroll="touchstart"
style="overflow-x:auto;overflow-y:hidden"
>
<div class="clearfix" :style="{ width: wrapW + 'px' }">
<div
class="cube-item"
v-for="(item, index) in imgList"
@click="onclickHandle(item)"
:key="index"
:style="{
paddingTop: datas.componentData.lineHeight + 'px',
paddingBottom: datas.componentData.lineHeight + 'px',
width: w + 'px'
}"
style="position:relative"
>
<div
:style="{
paddingLeft: getImgSize + '%',
paddingRight: getImgSize + '%'
}"
>
<div
class="item-img"
:class="item.imageUrl == '' ? 'item-bg' : ''"
>
<img v-show="item.imageUrl" :src="item.imageUrl | DFSImg(400,400)" alt="" />
</div>
</div>
<div
class="item-title"
:style="{
fontSize: textSize + 'px',
color: getFontsizeColor,
height: textSize / 12 + 'em',
lineHeight: textSize / 12 + 'em'
}"
>
{{ item.title }}
</div>
</div>
</div>
</div>
<div
class="nav-wrap"
v-if="navShow && datas.componentData['layoutType'] == 1"
>
<div class="nav">
<div
class="inner-nav"
:style="{
left: navLeft + 'px',
}"
></div>
</div>
</div>
</div>
<div
class="cube3 clearfix"
v-if="datas.componentData['layoutType'] == 2"
:style="{
backgroundColor: getBackgroundColor,
borderRadius: moduleRadius + 'px'
}"
>
<van-swipe
class="my-swipe"
ref="my-swipe"
>
<van-swipe-item
v-for="(item1, index1) in swiperList"
:style="{ width: swiperItemW + 'px' }"
:key="index1"
>
<div
class="cube-item"
v-for="(item, index) in item1"
:key="index"
@click="onclickHandle(item)"
:style="{
paddingTop: datas.componentData.lineHeight + 'px',
paddingBottom: datas.componentData.lineHeight + 'px',
width: getColumnWidth
}"
style="position:relative"
>
<div
:style="{
paddingLeft: getImgSize + '%',
paddingRight: getImgSize + '%'
}"
>
<div
class="item-img"
:class="item.imageUrl == '' ? 'item-bg' : ''"
>
<img v-show="item.imageUrl" :src="item.imageUrl | DFSImg(400,400)" alt="" />
</div>
</div>
<div
class="item-title"
:style="{
fontSize: textSize + 'px',
color: getFontsizeColor,
height: textSize / 12 + 'em',
lineHeight: textSize / 12 + 'em'
}"
>
{{ item.title }}
</div>
</div>
</van-swipe-item>
</van-swipe>
</div>
</div>
</template>
<script>
const debounce = (func, wait) => {
let timeout = "";
return v => {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(() => {
func(v);
}, wait);
};
};
export default {
name: "cube-nav",
props: {
datas: {
type: Object,
default: {}
},
render: {
type: Boolean,
default: false
}
},
data() {
return {
w: 0,
wrapW: 0,
navShow: false,
navLeft: 0,
swiperItemW: 0
};
},
watch: {
"datas.componentData.columnNum": function(val) {
this.getColumnW(1, this.datas.componentData.levelMargin);
},
"imgList.length": function(val) {
this.getColumnW(1, this.datas.componentData.levelMargin);
},
"datas.componentData.rowNum": function(val) {
this.getColumnW(1, this.datas.componentData.levelMargin);
},
"datas.componentData.levelMargin": function(val) {
this.swiperItemW = this.$el.offsetWidth - val * 2 - 2;
// this.getColumnW(1, this.datas.componentData.levelMargin)
// this.debounce(this.getColumnW, 1000, this);
this.getColumnW1({ vm: this });
},
"datas.componentData.layoutType": function(val) {
this.swiperItemW =
this.$el.offsetWidth - this.datas.componentData.levelMargin * 2;
this.getColumnW(1, this.datas.componentData.levelMargin);
}
},
mounted() {
if (this.datas.componentData["layoutType"] == 1) {
this.getColumnW(1, this.datas.componentData.levelMargin);
}
if (this.datas.componentData["layoutType"] == 2) {
this.swiperItemW =
this.$el.offsetWidth - this.datas.componentData.levelMargin * 2;
}
},
computed: {
imgList:{
get() {
return this.datas.componentData.imgList.filter(item=>item.visible==undefined || item.visible==1);
},
set(newValue) {
this.datas.componentData.imgList = newValue;
}
},
getBackgroundColor: {
get() {
return this.datas.componentData["backgroundColor"] || "";
},
set(val) {
this.datas.componentData["backgroundColor"] = val;
}
},
getImgSize() {
// get() {
// return this.datas.componentData.imgSize;
// },
// set(newValue) {
// this.datas.componentData.imgSize = newValue;
// }
return (100 - this.datas.componentData.imgSize) / 2;
},
textSize: {
get() {
return this.datas.componentData.textSize;
},
set(newValue) {
this.datas.componentData.textSize = newValue;
}
},
moduleRadius: {
get() {
return this.datas.componentData.moduleRadius;
},
set(newValue) {
this.datas.componentData.moduleRadius = newValue;
}
},
lineHeight: {
get() {
return this.datas.componentData.lineHeight;
},
set(newValue) {
this.datas.componentData.lineHeight = newValue;
}
},
getColumnWidth() {
if (this.datas.componentData.columnNum == 1) {
return "100%";
} else if (this.datas.componentData.columnNum == 2) {
return "50%";
} else if (this.datas.componentData.columnNum == 3) {
return "33.3%";
} else if (this.datas.componentData.columnNum == 4) {
return "25%";
} else if (this.datas.componentData.columnNum == 5) {
return "20%";
} else if (this.datas.componentData.columnNum == 6) {
return "16.6%";
}
},
swiperList() {
let arr = [];
let count =
this.datas.componentData.columnNum * this.datas.componentData.rowNum;
let num = Math.ceil(this.imgList.length / count);
for (let i = 0; i < num; i++) {
arr.push([]);
}
this.imgList.forEach((item, index) => {
let i = Math.floor(index / count);
// let j = index % count
arr[i].push(item);
});
return arr;
},
//字体颜色
getFontsizeColor: {
get() {
return this.datas.componentData.fontColor;
},
set(newValue) {
this.datas.componentData.fontColor = newValue;
}
}
},
created() {},
methods: {
getColumnW1: debounce(({ vm }) => {
if (vm.$refs["my-swipe"]) {
vm.$refs["my-swipe"].resize();
}
let w = vm.$el.offsetWidth - vm.datas.componentData.levelMargin * 2;
// if (type == 1) {
// w = this.$el.offsetWidth - val * 2;
// } else {
// w = this.$el.offsetWidth;
// }
if (vm.datas.componentData.columnNum == 1) {
vm.w = w / 1;
} else if (vm.datas.componentData.columnNum == 2) {
vm.w = w / 2;
} else if (vm.datas.componentData.columnNum == 3) {
vm.w = w / 3;
} else if (vm.datas.componentData.columnNum == 4) {
vm.w = w / 4;
} else if (vm.datas.componentData.columnNum == 5) {
vm.w = w / 5;
} else if (vm.datas.componentData.columnNum == 6) {
vm.w = w / 6;
}
if (
Math.floor(
vm.imgList.length /
(vm.datas.componentData.columnNum * vm.datas.componentData.rowNum)
) == 0
) {
vm.wrapW = w;
} else {
vm.wrapW =
Math.floor(
vm.imgList.length /
(vm.datas.componentData.columnNum * vm.datas.componentData.rowNum)
) *
w +
(vm.imgList.length %
(vm.datas.componentData.columnNum *
vm.datas.componentData.rowNum)) *
vm.w;
}
vm.$nextTick(() => {
if (vm.wrapW > w) {
vm.navShow = true;
} else {
vm.navShow = false;
}
});
}, 300),
touchstart(e) {
let moveX =
this.wrapW -
(this.$el.offsetWidth - this.datas.componentData.levelMargin * 2);
let x = e.target.scrollLeft / moveX;
this.navLeft = 30 * x;
},
onclickHandle(item) {
if (!this.render) return;
this.$themeToLink(item.link);
},
// 非立即执行版
debounce(func, wait, _this) {
let timer;
return function() {
let context = this; // 注意 this 指向
let args = arguments; // arguments中存着e
if (timer) clearTimeout(timer);
timer = setTimeout(() => {
func();
}, wait);
};
},
getColumnW() {
console.log("11111111");
if (this.$refs["my-swipe"]) {
this.$refs["my-swipe"].resize();
}
let w = this.$el.offsetWidth - this.datas.componentData.levelMargin * 2;
// if (type == 1) {
// w = this.$el.offsetWidth - val * 2;
// } else {
// w = this.$el.offsetWidth;
// }
if (this.datas.componentData.columnNum == 1) {
this.w = w / 1;
} else if (this.datas.componentData.columnNum == 2) {
this.w = w / 2;
} else if (this.datas.componentData.columnNum == 3) {
this.w = w / 3;
} else if (this.datas.componentData.columnNum == 4) {
this.w = w / 4;
} else if (this.datas.componentData.columnNum == 5) {
this.w = w / 5;
} else if (this.datas.componentData.columnNum == 6) {
this.w = w / 6;
}
if (
Math.floor(
this.imgList.length /
(this.datas.componentData.columnNum *
this.datas.componentData.rowNum)
) == 0
) {
this.wrapW = w;
} else {
this.wrapW =
Math.floor(
this.imgList.length /
(this.datas.componentData.columnNum *
this.datas.componentData.rowNum)
) *
w +
(this.imgList.length %
(this.datas.componentData.columnNum *
this.datas.componentData.rowNum)) *
this.w;
}
this.$nextTick(() => {
if (this.wrapW > w) {
this.navShow = true;
} else {
this.navShow = false;
}
});
}
}
};
</script>
<style lang="scss" scoped>
.cube-nav {
width: 100%;
height: 100%;
box-sizing: border-box;
font-size: 16px;
.cube1,
.cube2,
.cube3 {
width: 100%;
height: 100%;
box-sizing: border-box;
overflow: hidden;
position: relative;
.cube-item {
float: left;
.item-img {
position: relative;
overflow: hidden;
width: 100%;
height: 0;
padding-bottom: 100%;
// background-image: linear-gradient(#8bd3fb, #4e98f8);
// background-image: -webkit-linear-gradient(#8bd3fb, #4e98f8);
// border-radius: 50%;
// overflow: hidden;
img {
width: 100%;
height: 100%;
position: absolute;
margin: auto;
top: -9999px;
right: -9999px;
bottom: -9999px;
left: -9999px;
object-fit: contain;
}
}
.item-bg {
background-image: linear-gradient(#8bd3fb, #4e98f8);
background-image: -webkit-linear-gradient(#8bd3fb, #4e98f8);
}
.item-title {
width: 100%;
text-align: center;
margin-top: 8px;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
}
}
.cube2 {
// padding-bottom: 10px;
&::-webkit-scrollbar {
display: none; /* Chrome Safari */
}
}
.cube3 {
.van-swipe__indicators {
bottom: 4px !important;
}
/deep/ .van-swipe__indicator--active {
background-color: var(--main-color);
}
// /deep/ .van-swipe__indicator{
// background-color: #ccc !important;
// }
}
.nav-wrap {
width: 100%;
position: absolute;
text-align: center;
bottom: 4px;
// height: 8px;
text-align: center;
.nav {
width: 60px;
height: 4px;
border-radius: 2px;
position: relative;
overflow: hidden;
margin: 0 auto;
// background-color: rgba(233,72,103,.3);
background-color: #ccc;
.inner-nav {
width: 30px;
height: 4px;
background-color: #333;
border-radius: 2px;
position: absolute;
background-color: var(--main-color);
top: 0;
}
}
}
}
</style>
<style lang="scss">
.van-swipe__indicators {
bottom: 4px !important;
}
</style>
<template>
<div class="con">
<div class="container1">
<div class="title">当前定位城市</div>
<div class="position">
<div>
<div class="city" @click="changeCity(positionCity,1)" v-if="locationStatus && positionCity.operatingAreaAreaId">{{ positionCity.regionName }}</div>
<div
class="position-err"
v-if="!locationStatus && !reLocationStatus"
@click="reLocation"
>
定位失败,点击重试
</div>
<div
class="position-err"
v-if="locationStatus && !positionCity.operatingAreaAreaId"
>
{{positionCity.regionName}}(该地区暂未开放)
</div>
<div v-if="reLocationStatus" style="padding-bottom:10px">
<van-loading type="spinner" size="18" />
<span style="font-size:14px;line-height:20px;vertical-align:top;margin-left:4px">正在定位...</span>
</div>
</div>
<div class="reset-position" @click="resetPosition">重新定位</div>
</div>
<div class="title" style="margin-top:10px">选择其他城市</div>
<div class="city-list clearfix">
<div class="item fl" v-for="item in cityList" :key="item.id" @click="changeCity(item,2)">
{{ item.regionName }}
</div>
</div>
</div>
</div>
</template>
<script>
import changeAdr from '@/api/changeAdr'
export default {
data(){
return{
cityList: [],
positionCity: {},
locationStatus: false,
reLocationStatus: true
}
},
onLoad(options){
console.log(options)
this.locationStart();
changeAdr.query_operating_area_area_list(options.areaGroupId).then(res => {
console.log(res.data)
if(res.data.code == '200'){
if(res.data.data){
res.data.data.forEach(item => {
item.areaGroupId= options.areaGroupId
})
this.cityList = res.data.data
}
}
})
},
methods:{
changeCity(item,type){
this.locationStatus = true
if(type == 1){
wx.setStorageSync('location',JSON.stringify({
id : item.operatingAreaAreaId,
regionName : item.regionName,
regionType : item.regionType,
systemRegionId : item.systemRegionId,
areaGroupId : item.groupId,
outId : item.outId
}))
}else{
wx.setStorageSync('location',JSON.stringify({
id : item.id,
regionName : item.regionName,
regionType : item.regionType,
systemRegionId : item.systemRegionId,
areaGroupId : item.groupId,
outId : item.outId
}))
}
this.define()
},
define(){
wx.navigateBack()
// wx.reLaunch({
// url:'/pages/home/main'
// })
},
locationStart(type){
console.log(wx.getStorageSync('location'),'2222222222222222222222222222')
let _this = this
if(wx.getStorageSync('location')){
let location = wx.getStorageSync('location') && JSON.parse(wx.getStorageSync('location'))
this.positionCity = {
operatingAreaAreaId : location.id,
regionName : location.regionName,
regionType : location.regionType,
systemRegionId : location.systemRegionId,
areaGroupId : location.areaGroupId,
}
if(!type){
this.reLocationStatus = false;
this.locationStatus = true;
return
}
wx.getLocation({
type: 'wgs84',
success:function(res){
const latitude = res.latitude
const longitude = res.longitude
console.log('定位成功',res)
changeAdr.query_Location_operating_area_area_list({
location : longitude + ',' + latitude
}).then(res => {
if(res.data.code == '200'){
let city = '';
res.data.data.forEach(item => {
if(item.operatingAreaAreaId){
city = item
}
})
if(city == ''){
_this.positionCity = res.data.data[0];
}else{
_this.positionCity = city;
}
_this.reLocationStatus = false;
_this.locationStatus = true;
}else{
wx.showModal({
title: '提示',
content: '定位失败,请检查是否开启了定位服务',
success (res) {
if (res.confirm) {
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
_this.reLocationStatus = false;
_this.locationStatus = false;
}
})
},
fail:function(err){
console.log('定位失败',err)
wx.showModal({
title: '提示',
content: '定位失败,请检查是否开启了定位服务',
success (res) {
if (res.confirm) {
console.log('用户点击确定')
} else if (res.cancel) {
console.log('用户点击取消')
}
}
})
_this.reLocationStatus = false;
_this.locationStatus = false;
}
})
}
},
resetPosition(){
this.reLocationStatus = true
this.locationStatus = false
this.locationStart(1)
},
reLocation() {
this.reLocationStatus = true;
this.locationStart();
},
}
}
</script>
<style lang="scss" scoped>
.con {
min-height: 100vh;
background-color: #f3f3f3;
}
.container1 {
padding: 10px;
}
.title {
color: #999;
}
.position {
margin-top: 6px;
display: flex;
justify-content: space-between;
align-items: center;
.city {
padding: 6px 36px;
font-size: 14px;
color: #333;
background-color: white;
border: 1px solid #ddd;
display: inline-block;
}
.position-err {
font-size: 14px;
padding-bottom: 10px;
}
.reset-position{
color: var(--main-color);
}
}
.city-list {
margin-top: 6px;
.item {
padding: 6px 30px;
font-size: 14px;
margin-right: 10px;
color: #333;
background-color: white;
border: 1px solid #ddd;
margin-bottom: 10px;
display: inline-block;
}
}
.van-loading {
height: 20px;
width: 20px;
display: inline-block;
vertical-align: bottom;
margin-right: 4px;
}
</style>
\ No newline at end of file
import Vue from 'vue'
import App from './index'
const app = new Vue(App)
app.$mount()
\ No newline at end of file
{
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "切换地址",
"navigationBarTextStyle": "black",
"usingComponents": {
"van-loading": "/static/vant/loading/index"
}
}
\ No newline at end of file
...@@ -5,11 +5,18 @@ ...@@ -5,11 +5,18 @@
<banner :datas="item"></banner> <banner :datas="item"></banner>
1 1
</div> </div>
<div v-if="item.componentCode == 'area-navigation'">
<area-navigation :datas="item"></area-navigation>
</div>
<div v-if="item.componentCode == 'cube-nav'">
<cube-nav :datas="item"></cube-nav>
</div>
</div> </div>
<image <image
src="http://cdn.mayi888.com/public/jpg/33ff0efc-96b5-4044-a65a-07799dfe98e1.jpg?x-oss-process=image/resize,limit_1,w_750" src="http://cdn.mayi888.com/public/jpg/33ff0efc-96b5-4044-a65a-07799dfe98e1.jpg?x-oss-process=image/resize,limit_1,w_750"
></image> ></image>
<van-button type="primary">按钮</van-button> <van-button type="primary">按钮</van-button>
<view class="ant-gongsidizhi"></view>
<view class="ant-bofang">1</view> <view class="ant-bofang">1</view>
----瀑布流开始---- ----瀑布流开始----
<waterfall-flow id="waterfallFlow"></waterfall-flow> <waterfall-flow id="waterfallFlow"></waterfall-flow>
......
...@@ -3,6 +3,9 @@ ...@@ -3,6 +3,9 @@
"banner": "/static/nativeComponents/Banner/index", "banner": "/static/nativeComponents/Banner/index",
"goods-list": "/static/nativeComponents/GoodsList/index", "goods-list": "/static/nativeComponents/GoodsList/index",
"waterfall-flow": "/static/nativeComponents/module/WaterfallFlow/index", "waterfall-flow": "/static/nativeComponents/module/WaterfallFlow/index",
"van-button": "/static/vant/button/index" "van-button": "/static/vant/button/index",
} "area-navigation":"/static/nativeComponents/AreaNavigation/index",
"cube-nav":"/static/nativeComponents/CubeNav/index"
},
"enablePullDownRefresh":true
} }
\ No newline at end of file
...@@ -15,6 +15,7 @@ export async function requestGET(url, options) { ...@@ -15,6 +15,7 @@ export async function requestGET(url, options) {
"Shop-Mixid": store.state.mixid, "Shop-Mixid": store.state.mixid,
"Offline-Shop-Code": store.state.offlineShopCode, "Offline-Shop-Code": store.state.offlineShopCode,
"Authorization": wx.getStorageSync('sessionid') || "", "Authorization": wx.getStorageSync('sessionid') || "",
"Location-Id" : wx.getStorageSync('location') ? JSON.parse(wx.getStorageSync('location')).systemRegionId : ''
// "dubbo-tag": "ljx" // "dubbo-tag": "ljx"
}, },
success: function (res) { success: function (res) {
...@@ -37,7 +38,8 @@ export async function requestPOST(url, options) { ...@@ -37,7 +38,8 @@ export async function requestPOST(url, options) {
"Shop-Mixid": store.state.mixid, "Shop-Mixid": store.state.mixid,
"Authorization": wx.getStorageSync('sessionid') || "", "Authorization": wx.getStorageSync('sessionid') || "",
"Offline-Shop-Code": store.state.offlineShopCode, "Offline-Shop-Code": store.state.offlineShopCode,
"openId": wx.getStorageSync("openid") || '' "openId": wx.getStorageSync("openid") || '',
"Location-Id" : wx.getStorageSync('location') ? JSON.parse(wx.getStorageSync('location')).systemRegionId : ''
// "dubbo-tag": "ljx" // "dubbo-tag": "ljx"
}, },
success: function (res) { success: function (res) {
......
// static/nativeComponents/AreaNavigation/index.js
const app = getApp()
Component({
/**
* 组件的属性列表
*/
properties: {
datas : {
type : Object
}
},
/**
* 组件的初始数据
*/
data: {
noShow : false,
positionCity: "",
changeShow: false,
positionName: '定位中',
wxReady: false
},
ready(){
console.log('++++++++++++++++++++定位组件加载好了++++++++++++++++++++')
console.log(getCurrentPages())
if (this.data.datas.componentInfo.visible == 1) {
let _this = this;
if (wx.getStorageSync('location')) {
this.setData({
'datas.componentData.designateAreaObj': JSON.parse(wx.getStorageSync('location'))
})
this.setData({
positionName: this.data.datas.componentData.designateAreaObj.regionName
})
}
wx.getLocation({
type: 'wgs84',
success(res) {
console.log(res, '++++++++++获取地区')
const latitude = res.latitude
const longitude = res.longitude
wx.request({
url: `http://test-m-shop.mayi888.cn/test/innerApi/shopApiService/operatingArea/query_Location_operating_area_area_list?location=${longitude},${latitude}`,
header: {
'Shop-Mixid': 'Id9uwD'
},
success(data) {
if (data.data.code == '200') {
let city = ''
data.data.data.forEach(item => {
if (item.operatingAreaAreaId) {
city = item;
}
})
if (city == '') {
_this.setData({
positionCity: data.data.data[0]
})
} else {
_this.setData({
positionCity: city
})
}
console.log(_this.data.positionCity, '定位城市信息')
console.log(_this.data.datas.componentData.designateAreaObj,'组件信息')
let str = JSON.stringify({
id: _this.data.positionCity.operatingAreaAreaId,
regionName: _this.data.positionCity.regionName,
regionType: _this.data.positionCity.regionType,
systemRegionId: _this.data.positionCity.systemRegionId,
outId: _this.data.positionCity.outId,
areaGroupId: _this.data.positionCity.areaGroupId,
})
console.log(str,'str.......')
wx.setStorageSync('location', str)
if (_this.data.positionCity.operatingAreaAreaId == _this.data.datas.componentData.designateAreaObj.id){
_this.setData({
positionName: _this.data.positionCity.regionName
})
}else{
_this.setData({
changeShow : true
})
}
} else {
}
}
})
},
fail(error) {
console.log('定位失败')
}
})
}
console.log('++++++++++++++++++++定位组件加载好了++++++++++++++++++++')
},
pageLifetimes : {
show(){
console.log('组件页面出来show', this.data.datas.componentData.designateAreaObj)
console.log('组件页面出来show', this.data.positionCity)
if(wx.getStorageSync('location')){
let locationObj = JSON.parse(wx.getStorageSync('location'))
if (locationObj.id){
if (locationObj.id != this.data.positionCity.operatingAreaAreaId){
this.setData({
positionName: locationObj.regionName
})
this.setData({
'datas.componentData.designateAreaObj.id': locationObj.id,
'datas.componentData.designateAreaObj.regionName': locationObj.regionName,
'datas.componentData.designateAreaObj.regionType': locationObj.regionType,
'datas.componentData.designateAreaObj.systemRegionId': locationObj.systemRegionId,
'datas.componentData.designateAreaObj.areaGroupId': locationObj.areaGroupId,
'datas.componentData.designateAreaObj.outId': locationObj.outId
})
let obj = {
operatingAreaAreaId: locationObj.id,
regionName: locationObj.regionName,
regionType: locationObj.regionType,
systemRegionId: locationObj.systemRegionId,
areaGroupId: locationObj.areaGroupId,
outId: locationObj.outId,
}
this.setData({
positionCity : obj
})
}
return
}
if (locationObj.regionName != this.data.positionCity.regionName){
this.setData({
positionName: locationObj.regionName
})
this.setData({
'datas.componentData.designateAreaObj.id': locationObj.id,
'datas.componentData.designateAreaObj.regionName': locationObj.regionName,
'datas.componentData.designateAreaObj.regionType': locationObj.regionType,
'datas.componentData.designateAreaObj.systemRegionId': locationObj.systemRegionId,
'datas.componentData.designateAreaObj.areaGroupId': locationObj.areaGroupId,
'datas.componentData.designateAreaObj.outId': locationObj.outId
})
let obj = {
operatingAreaAreaId: locationObj.id,
regionName: locationObj.regionName,
regionType: locationObj.regionType,
systemRegionId: locationObj.systemRegionId,
areaGroupId: locationObj.areaGroupId,
outId: locationObj.outId,
}
this.setData({
positionCity: obj
})
return
}
}
}
},
/**
* 组件的方法列表
*/
methods: {
//切换城市
changeTo(){
this.setData({
'datas.componentData.designateAreaObj.id': this.data.positionCity.operatingAreaAreaId,
'datas.componentData.designateAreaObj.regionName': this.data.positionCity.regionName,
'datas.componentData.designateAreaObj.regionType': this.data.positionCity.regionType,
'datas.componentData.designateAreaObj.systemRegionId': this.data.positionCity.systemRegionId,
'datas.componentData.designateAreaObj.areaGroupId': this.data.positionCity.areaGroupId,
'datas.componentData.designateAreaObj.outId': this.data.positionCity.outId
})
console.log(this.data.datas.componentData.designateAreaObj)
console.log(this.data.positionCity)
let change = JSON.stringify(this.data.datas.componentData.designateAreaObj)
this.setData({
positionName: this.data.positionCity.regionName,
changeShow : false
})
wx.setStorageSync('location', change )
// wx.startPullDownRefresh()
},
continueBrowser(){
console.log(this.data.datas.componentData.designateAreaObj)
wx.setStorageSync('location', JSON.stringify(this.data.datas.componentData.designateAreaObj))
this.setData({
positionName: this.data.datas.componentData.designateAreaObj.regionName,
changeShow: false
})
// wx.startPullDownRefresh()
},
changeOtherCity(){
console.log(getCurrentPages())
wx.navigateTo({
url: '/pages/changeAdr/main?areaGroupId=' + this.data.datas.componentData.areaGroupId,
})
}
},
})
{
"component": true,
"usingComponents": {
"van-dialog": "/static/vant/dialog/index",
"van-icon": "/static/vant/icon/index",
"van-sticky":"/static/vant/sticky/index"
}
}
\ No newline at end of file
<!--static/nativeComponents/AreaNavigation/index.wxml-->
<van-sticky wx:if="{{datas.componentData.scrollPosition}}">
<view class="area-navigation clearfix" style="background-color:{{datas.componentData.backgroundColor}}">
<view style="width:100%;display:flex;">
<view class="area-l" style="font-size:{{datas.componentData.fontSize / 16 + 'em'}};color:{{datas.componentData.fontColor}};font-weight:{{datas.componentData.fontWeight}}" bindtap="changeOtherCity">
<view class="antt ant-gongsidizhi"></view>
<title class="title">{{positionName}}</title>
<van-icon name="arrow-down" style="margin-left:4rpx" />
</view>
<view class="area-r">
<input class="area-search" type="text" style="background-color:{{datas.componentData.searchBgColor}};font-size:{{datas.componentData.searchFontSize / 16 + 'em'}};color:{{datas.componentData.searchFontColor}};font-weight:{{datas.componentData.searchFontWeight}}">
</input>
</view>
</view>
</view>
</van-sticky>
<view wx:if="{{!datas.componentData.scrollPosition}}">
<view class="area-navigation clearfix" style="background-color:{{datas.componentData.backgroundColor}}">
<view style="width:100%;display:flex;">
<view class="area-l" style="font-size:{{datas.componentData.fontSize / 16 + 'em'}};color:{{datas.componentData.fontColor}};font-weight:{{datas.componentData.fontWeight}}" bindtap="changeOtherCity">
<view class="antt ant-gongsidizhi"></view>
<title class="title">{{positionName}}</title>
<van-icon name="arrow-down" style="margin-left:4rpx" />
</view>
<view class="area-r">
<input class="area-search" type="text" style="background-color:{{datas.componentData.searchBgColor}};font-size:{{datas.componentData.searchFontSize / 16 + 'em'}};color:{{datas.componentData.searchFontColor}};font-weight:{{datas.componentData.searchFontWeight}}">
</input>
</view>
</view>
</view>
</view>
<van-dialog
show="{{noShow}}"
use-slot
showConfirmButton="{{false}}"
class="change-dialog"
>
<view class="change-dialog">
<view style="line-height:60rpx">您所在的地区暂未开放</view>
<view class="change-btn">切换其他城市</view>
</view>
</van-dialog>
<van-dialog
show="{{changeShow}}"
use-slot
showConfirmButton="{{false}}"
class="change-dialog"
>
<view class="change-dialog">
<view style="line-height:60rpx">
定位显示为{{ positionCity.regionName }}
</view>
<view class="change-btn line-clamp1" bindtap="changeTo">
切换到{{ positionCity.regionName }}
</view>
<view class="continue line-clamp1" bindtap="continueBrowser">
继续浏览{{ datas.componentData.designateAreaObj.regionName }}
</view>
</view>
</van-dialog>
/* static/nativeComponents/AreaNavigation/index.wxss */
@import '../../nicon/iconfont.wxss';
.area-navigation {
width: 100%;
box-sizing: border-box;
padding: 12rpx 24rpx;
z-index: 99999999;
font-size: 32rpx;
top: 0;
}
.area-l{
line-height: 60rpx;
}
.area-l .ant-gongsidizhi{
line-height: 60rpx;
float: left;
}
.area-l .title{
display: block;
float: left;
}
.area-r {
margin-left: 20rpx;
flex: 1;
}
.area-search {
width: 100%;
height: 60rpx;
border-radius: 30rpx;
box-sizing: border-box;
padding: 0 24rpx;
line-height: 60rpx;
border: none;
}
.change-dialog {
text-align: center;
padding: 20rpx 80rpx 36rpx !important;
box-sizing: border-box;
}
.change-dialog .continue {
height: 60rpx;
padding: 0 20rpx;
box-sizing: border-box;
width: 100%;
border-radius: 30rpx;
background-color: white;
text-align: center;
line-height: 60rpx;
margin: 20rpx auto 0;
border: 1rpx solid #999;
font-size: 28rpx;
}
.change-dialog .change-btn {
height: 60rpx;
border-radius: 30rpx;
line-height: 60rpx;
margin: 20rpx auto 0;
width: 100%;
box-sizing: border-box;
color: white;
/* background-color: var(--main-color); */
background-color: red;
text-align: center;
font-size: 28rpx;
padding: 0 20rpx;
}
\ No newline at end of file
// static/nativeComponents/CubeNav/index.js
const app = getApp()
Component({
/**
* 组件的属性列表
*/
properties: {
datas: {
type: Object
}
},
/**
* 组件的初始数据
*/
data: {
imgList: [],
getColumnWidth: '',
getImgSize: 0,
navShow: false,
wrapW: 0,
w: 0,
swiperList: [],
swiperItemW: 0,
navLeft: 0,
cube2W: 0,
cube3H: 0,
},
ready() {
this.init()
},
/**
* 组件的方法列表
*/
methods: {
init() {
let _this = this;
let columnWidthArr = ['100%', '50%', '33.3%', '25%', '20%', '16.6%']
this.setData({
imgList: this.data.datas.componentData.imgList.filter(item => item.visible == undefined || item.visible == 1),
getColumnWidth: columnWidthArr[this.data.datas.componentData.columnNum - 1],
getImgSize: (100 - this.data.datas.componentData.imgSize) / 2
})
let arr = []
let count = this.data.datas.componentData.columnNum * this.data.datas.componentData.rowNum;
let num = Math.ceil(this.data.imgList.length / count);
for (let i = 0; i < num; i++) {
arr.push([]);
}
this.data.imgList.forEach((item, index) => {
let i = Math.floor(index / count);
arr[i].push(item);
});
this.setData({
swiperList: arr
})
this.createSelectorQuery().select('.cube-item').boundingClientRect(function(res) {
console.log('swiper-wrap', res)
if (res) {
_this.setData({
cube3H: res.height * 2 * _this.data.datas.componentData.rowNum
})
}
}).exec()
console.log('轮播图swiperList', this.data.swiperList)
this.createSelectorQuery().select('.cube2').boundingClientRect(function(res) {
console.log('来这里了', res)
if (res) {
let cube2W = res.width
_this.setData({
cube2W: cube2W
})
let wArr = [cube2W / 1, cube2W / 2, cube2W / 3, cube2W / 4, cube2W / 5, cube2W / 6]
if (
Math.floor(
_this.data.imgList.length /
(_this.data.datas.componentData.columnNum * _this.data.datas.componentData.rowNum)
) == 0
) {
_this.setData({
wrapW: cube2W
})
} else {
_this.setData({
wrapW: Math.floor(
_this.data.imgList.length /
(_this.data.datas.componentData.columnNum * _this.data.datas.componentData.rowNum)
) *
cube2W + (_this.data.imgList.length %
(_this.data.datas.componentData.columnNum *
_this.data.datas.componentData.rowNum)) *
wArr[_this.data.datas.componentData.columnNum - 1]
})
}
_this.setData({
w: wArr[_this.data.datas.componentData.columnNum - 1]
})
if (_this.data.wrapW > cube2W) {
_this.setData({
navShow: true
})
} else {
_this.setData({
navShow: false
})
}
}
}).exec()
},
touchmove(e) {
let _this = this
this.debounce(function() {
let moveX = _this.data.wrapW - _this.data.cube2W;
_this.createSelectorQuery().select('#wrapW').boundingClientRect(function(res) {
if (res) {
let x = Math.abs(res.left) / moveX;
_this.setData({
navLeft: 30 * x
})
}
}).exec()
}, 100)()
},
debounce(func, wait) {
let timeout = "";
return v => {
if (timeout) {
clearTimeout(timeout);
}
timeout = setTimeout(() => {
func(v);
}, wait);
};
},
onclickHandle(e){
let item = e.currentTarget.dataset.item
console.log(item)
}
}
})
\ No newline at end of file
{
"component": true,
"usingComponents": {}
}
\ No newline at end of file
<!--static/nativeComponents/CubeNav/index.wxml-->
<view class="cube-nav" style="padding-top:{{datas.componentData.verticalMargin * 2}}rpx;padding-bottom:{{datas.componentData.verticalMargin * 2}}rpx;padding-left:{{datas.componentData.levelMargin * 2}}rpx;padding-right:{{datas.componentData.levelMargin * 2}}rpx">
<view class="cube1 clearfix" wx:if="{{datas.componentData.layoutType == 0}}" style="background-color:{{datas.componentData.backgroundColor || ''}};border-radius:{{datas.componentData.moduleRadius * 2}}rpx">
<view class="cube-item" wx:for="{{imgList}}" style="padding-top:{{datas.componentData.lineHeight * 2}}rpx;padding-bottom:{{datas.componentData.lineHeight * 2}}rpx;width:{{getColumnWidth}};position:relative" bindtap="onclickHandle" data-item="{{item}}">
<view style="padding-left:{{getImgSize}}%;padding-right:{{getImgSize}}%">
<view class="item-img {{item.imageUrl == '' ? 'item-bg' : ''}}">
<image wx:if="{{item.imageUrl}}" src="{{item.imageUrl}}"></image>
</view>
</view>
<view class="item-title" style="font-size:{{datas.componentData.textSize * 2}}rpx;color:{{datas.componentData.fontColor}};height:{{datas.componentData.textSize / 12}}em;line-hieght:{{datas.componentData.textSize / 12}}em">{{ item.title }}</view>
</view>
</view>
<view wx:if="{{datas.componentData.layoutType == 1}}" style="position:relative;background-color:{{datas.componentData.backgroundColor || ''}};border-radius:{{datas.componentData.moduleRadius * 2}}rpx;padding-bottom:{{navShow ? '20rpx' : '0'}}">
<view class="cube2 clearfix" style="overflow-x:auto;overflow-y:hidden" bindtouchmove="touchmove">
<view class="clearfix" style="width:{{wrapW * 2}}rpx" id="wrapW">
<view class="cube-item" wx:for="{{imgList}}" style="padding-top:{{datas.componentData.lineHeight * 2}}rpx;padding-bottom:{{datas.componentData.lineHeight *2}}rpx;width:{{w * 2}}rpx;position:relative" bindtap="onclickHandle" data-item="{{item}}">
<view style="padding-left:{{getImgSize}}%;padding-right:{{getImgSize}}%">
<view class="item-img {{item.imageUrl == '' ? 'item-bg' : ''}}">
<image wx:if="{{item.imageUrl}}" src="{{item.imageUrl}}"></image>
</view>
</view>
<view class="item-title" style="font-size:{{datas.componentData.textSize * 2}}rpx;color:{{datas.componentData.fontColor}};height:{{datas.componentData.textSize / 12}}em;line-hieght:{{datas.componentData.textSize / 12}}em">{{item.title}}
</view>
</view>
</view>
</view>
<view class="nav-wrap" wx:if="{{navShow && datas.componentData.layoutType == 1}}">
<view class="nav">
<view class="inner-nav" style="left :{{navLeft*2}}rpx;background-color:#f00"></view>
</view>
</view>
</view>
<view class="cube3 clearfix" wx:if="{{datas.componentData.layoutType == 2}}" style="background-color:{{datas.componentData.backgroundColor || ''}};border-radius:{{datas.componentData.moduleRadius * 2}}rpx;">
<swiper indicator-dots="{{true}}" style="height:{{cube3H}}rpx">
<swiper-item wx:for="{{swiperList}}" style="width:{{swiperItemW*2}}rpx">
<view class="cube-item" style="padding-top:{{datas.componentData.lineHeight * 2}}rpx;padding-bottom:{{datas.componentData.lineHeight * 2}}rpx;width:{{getColumnWidth}};position:relative" wx:for-item="item1" wx:for="{{item}}" data-item="{{item1}}" bindtap="onclickHandle">
<view style="padding-left:{{getImgSize}}%;padding-right:{{getImgSize}}%">
<view class="item-img {{item1.imageUrl == '' ? 'item-bg' : ''}}">
<image wx:if="{{item1.imageUrl}}" src="{{item1.imageUrl}}"></image>
</view>
</view>
<view class="item-title" style="font-size:{{datas.componentData.textSize * 2}}rpx;color:{{datas.componentData.fontColor}};height:{{textSize / 12}}em;line-hieght:{{textSize / 12}}em">{{item1.title}}
</view>
</view>
</swiper-item>
</swiper>
</view>
</view>
\ No newline at end of file
/* static/nativeComponents/CubeNav/index.wxss */
.clearfix:after {
display: block;
clear: both;
content: "";
visibility: hidden;
height: 0;
}
.clearfix {
zoom: 1;
}
.cube-nav{
width: 100%;
height: 100%;
box-sizing: border-box;
font-size: 16rpx;
}
.cube1,.cube2,.cube3{
width: 100%;
height: 100%;
box-sizing: border-box;
overflow: hidden;
position: relative;
}
.cube-item{
float: left;
}
.cube-item .item-img{
position: relative;
overflow: hidden;
width: 100%;
height: 0;
padding-bottom: 100%;
}
.cube-item .item-img image{
width: 100%;
height: 100%;
position: absolute;
margin: auto;
top: -9999px;
right: -9999px;
bottom: -9999px;
left: -9999px;
object-fit: contain;
}
.cube-item .item-bg {
background-image: linear-gradient(#8bd3fb, #4e98f8);
background-image: -webkit-linear-gradient(#8bd3fb, #4e98f8);
}
.item-title {
width: 100%;
text-align: center;
margin-top: 16rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.cube2::-webkit-scrollbar {
display: none;
}
.nav-wrap {
width: 100%;
position: absolute;
text-align: center;
bottom: 8rpx;
}
.nav {
width: 120rpx;
height: 8rpx;
border-radius: 4rpx;
position: relative;
overflow: hidden;
margin: 0 auto;
background-color: #ccc;
}
.inner-nav {
width: 60rpx;
height: 8rpx;
border-radius: 4px;
position: absolute;
background-color: var(--main-color);
top: 0;
}
@font-face {
font-family: "ant";
src: url('//cdn.mayi888.com/static/font/ant-171b61a6fb.eot');
src: url('//cdn.mayi888.com/static/font/ant-171b61a6fb.eot') format('embedded-opentype'),
url('//cdn.mayi888.com/static/font/ant-cd5a4cb97c.ttf') format('truetype'),
url('//cdn.mayi888.com/static/font/ant-0babd4f649.woff') format('woff'),
url('//cdn.mayi888.com/static/font/ant-f14de37641.svg') format('svg');
font-weight: normal;
font-style: normal;
}
.antt{
font-family: "ant" !important;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-style: normal;
font-variant: normal;
font-weight: normal;
text-decoration: none;
text-transform: none;
line-height: 1;
}
[class^="ant-"], [class*=" ant-"]{
font-family: "ant" !important;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-style: normal;
font-variant: normal;
font-weight: normal;
text-decoration: none;
text-transform: none;
line-height: 1;
}
.ant-banner-01:before {
content: "\EA01";
}
.ant-bianji:before {
content: "\EA02";
}
.ant-bofang:before {
content: "\EA03";
}
.ant-cha:before {
content: "\EA04";
}
.ant-changjianwenti-line:before {
content: "\EA05";
}
.ant-chanpinfenlei:before {
content: "\EA06";
}
.ant-chenggong:before {
content: "\EA07";
}
.ant-chengweifenxiaoyuan:before {
content: "\EA08";
}
.ant-daifahuo:before {
content: "\EA09";
}
.ant-daifukuan:before {
content: "\EA0A";
}
.ant-daipinglun:before {
content: "\EA0B";
}
.ant-daishiyong:before {
content: "\EA0C";
}
.ant-daishouhuo:before {
content: "\EA0D";
}
.ant-danchuang:before {
content: "\EA0E";
}
.ant-danmu:before {
content: "\EA0F";
}
.ant-daohang:before {
content: "\EA10";
}
.ant-dazhuanpan:before {
content: "\EA11";
}
.ant-dianhua:before {
content: "\EA12";
}
.ant-dianpu:before {
content: "\EA13";
}
.ant-dianzan-line:before {
content: "\EA14";
}
.ant-dianzan:before {
content: "\EA15";
}
.ant-dingzhikaquan:before {
content: "\EA16";
}
.ant-dizhi:before {
content: "\EA17";
}
.ant-dizhiguanli-line:before {
content: "\EA18";
}
.ant-dizhiguanli:before {
content: "\EA19";
}
.ant-fanhui-line:before {
content: "\EA1A";
}
.ant-fanxianjilu:before {
content: "\EA1B";
}
.ant-fanzhuanjingtou:before {
content: "\EA1C";
}
.ant-fengexian:before {
content: "\EA1D";
}
.ant-fenlei-line:before {
content: "\EA1E";
}
.ant-fenxiang-line:before {
content: "\EA1F";
}
.ant-fenxiang-zhibojian:before {
content: "\EA20";
}
.ant-fenxiaoyuan:before {
content: "\EA21";
}
.ant-fukuan:before {
content: "\EA22";
}
.ant-fuzhujiange:before {
content: "\EA23";
}
.ant-gonggao:before {
content: "\EA24";
}
.ant-gonglve:before {
content: "\EA25";
}
.ant-gongnengzhida-01:before {
content: "\EA26";
}
.ant-gongnengzhida-kaoxia:before {
content: "\EA27";
}
.ant-gongsidizhi:before {
content: "\EA28";
}
.ant-goumaihuiyuanka:before {
content: "\EA29";
}
.ant-goumaishangpin:before {
content: "\EA2A";
}
.ant-gouwuche-line:before {
content: "\EA2B";
}
.ant-gouwuche:before {
content: "\EA2C";
}
.ant-haoyoulingqu:before {
content: "\EA2D";
}
.ant-home-line:before {
content: "\EA2E";
}
.ant-home:before {
content: "\EA2F";
}
.ant-hongbao:before {
content: "\EA30";
}
.ant-huanhuo:before {
content: "\EA31";
}
.ant-hufushuang:before {
content: "\EA32";
}
.ant-huiyuan:before {
content: "\EA33";
}
.ant-huiyuanlogo:before {
content: "\EA34";
}
.ant-jiangpai1:before {
content: "\EA35";
}
.ant-jiangpai2:before {
content: "\EA36";
}
.ant-jiangpai3:before {
content: "\EA37";
}
.ant-jifen-colorful:before {
content: "\EA38";
}
.ant-jifen:before {
content: "\EA39";
}
.ant-jifenfanbei:before {
content: "\EA3A";
}
.ant-jingxiang:before {
content: "\EA3B";
}
.ant-kaibo:before {
content: "\EA3C";
}
.ant-kefu-line:before {
content: "\EA3D";
}
.ant-kefu:before {
content: "\EA3E";
}
.ant-kefudianhua:before {
content: "\EA3F";
}
.ant-kuaidipeisong-line:before {
content: "\EA40";
}
.ant-kuaidipeisong:before {
content: "\EA41";
}
.ant-lajitong:before {
content: "\EA42";
}
.ant-leijixiaofeidanshu:before {
content: "\EA43";
}
.ant-leijixiaofeijine:before {
content: "\EA44";
}
.ant-lianjie:before {
content: "\EA45";
}
.ant-lianxikefu:before {
content: "\EA46";
}
.ant-lishizhibo:before {
content: "\EA47";
}
.ant-liwuduose:before {
content: "\EA48";
}
.ant-mofangdaohang:before {
content: "\EA49";
}
.ant-paihangbang:before {
content: "\EA4A";
}
.ant-pingjiawujiaoxing:before {
content: "\EA4B";
}
.ant-pinglun:before {
content: "\EA4C";
}
.ant-pintuan:before {
content: "\EA4D";
}
.ant-quanbushangpin-line:before {
content: "\EA4E";
}
.ant-quanbushangpin:before {
content: "\EA4F";
}
.ant-renzhengxinxi:before {
content: "\EA50";
}
.ant-shaitu:before {
content: "\EA51";
}
.ant-shaixuan:before {
content: "\EA52";
}
.ant-shanchu:before {
content: "\EA53";
}
.ant-shangjiazhongxin:before {
content: "\EA54";
}
.ant-shangpinliebiao:before {
content: "\EA55";
}
.ant-shangpintuiguang:before {
content: "\EA56";
}
.ant-shebei:before {
content: "\EA57";
}
.ant-shengchenglianjie:before {
content: "\EA58";
}
.ant-shengchengtupian:before {
content: "\EA59";
}
.ant-shezhi-:before {
content: "\EA5A";
}
.ant-shibai:before {
content: "\EA5B";
}
.ant-shijian:before {
content: "\EA5C";
}
.ant-shipin:before {
content: "\EA5D";
}
.ant-shoucang-line:before {
content: "\EA5E";
}
.ant-shoucang:before {
content: "\EA5F";
}
.ant-shouhou:before {
content: "\EA60";
}
.ant-shouting-line:before {
content: "\EA61";
}
.ant-shouting:before {
content: "\EA62";
}
.ant-shuoming:before {
content: "\EA63";
}
.ant-songlidingdan:before {
content: "\EA64";
}
.ant-sousuo:before {
content: "\EA65";
}
.ant-tansuo-xuanzhong:before {
content: "\EA66";
}
.ant-tianjiatupian:before {
content: "\EA67";
}
.ant-tixianjilu:before {
content: "\EA68";
}
.ant-tuanchangdaoshi:before {
content: "\EA69";
}
.ant-tuanchangzhongxin-line:before {
content: "\EA6A";
}
.ant-tuanchangzhongxin:before {
content: "\EA6B";
}
.ant-tuihuotuikuan:before {
content: "\EA6C";
}
.ant-tuikuan:before {
content: "\EA6D";
}
.ant-tupianhualang:before {
content: "\EA6E";
}
.ant-tuwen:before {
content: "\EA6F";
}
.ant-wechat:before {
content: "\EA70";
}
.ant-weixin-line:before {
content: "\EA71";
}
.ant-weixinzengsong:before {
content: "\EA72";
}
.ant-wenben:before {
content: "\EA73";
}
.ant-wenzhangkapian-01:before {
content: "\EA74";
}
.ant-wode-line:before {
content: "\EA75";
}
.ant-wode:before {
content: "\EA76";
}
.ant-wodedingdan:before {
content: "\EA77";
}
.ant-wodejiangpin:before {
content: "\EA78";
}
.ant-wodetuandui:before {
content: "\EA79";
}
.ant-wodezuji:before {
content: "\EA7A";
}
.ant-xiangji:before {
content: "\EA7B";
}
.ant-xianshihuodong:before {
content: "\EA7C";
}
.ant-xiaodian:before {
content: "\EA7D";
}
.ant-xiaofeijilu:before {
content: "\EA7E";
}
.ant-xiuxizhong:before {
content: "\EA7F";
}
.ant-xuanfuanniu:before {
content: "\EA80";
}
.ant-yidayang:before {
content: "\EA81";
}
.ant-yidong:before {
content: "\EA82";
}
.ant-yijianmaiyang:before {
content: "\EA83";
}
.ant-yinliang:before {
content: "\EA84";
}
.ant-yongjin:before {
content: "\EA85";
}
.ant-youhuiquan:before {
content: "\EA86";
}
.ant-zhekou:before {
content: "\EA87";
}
.ant-zhibo:before {
content: "\EA88";
}
.ant-zhiboshezhi:before {
content: "\EA89";
}
.ant-zhifuchenggong:before {
content: "\EA8A";
}
.ant-zhifushibai:before {
content: "\EA8B";
}
.ant-zhouqiyouhuiquan:before {
content: "\EA8C";
}
.ant-zixun:before {
content: "\EA8D";
}
.ant-zuji:before {
content: "\EA8E";
}
.ant-banner-01-after:after {
content: "\EA01";
}
.ant-bianji-after:after {
content: "\EA02";
}
.ant-bofang-after:after {
content: "\EA03";
}
.ant-cha-after:after {
content: "\EA04";
}
.ant-changjianwenti-line-after:after {
content: "\EA05";
}
.ant-chanpinfenlei-after:after {
content: "\EA06";
}
.ant-chenggong-after:after {
content: "\EA07";
}
.ant-chengweifenxiaoyuan-after:after {
content: "\EA08";
}
.ant-daifahuo-after:after {
content: "\EA09";
}
.ant-daifukuan-after:after {
content: "\EA0A";
}
.ant-daipinglun-after:after {
content: "\EA0B";
}
.ant-daishiyong-after:after {
content: "\EA0C";
}
.ant-daishouhuo-after:after {
content: "\EA0D";
}
.ant-danchuang-after:after {
content: "\EA0E";
}
.ant-danmu-after:after {
content: "\EA0F";
}
.ant-daohang-after:after {
content: "\EA10";
}
.ant-dazhuanpan-after:after {
content: "\EA11";
}
.ant-dianhua-after:after {
content: "\EA12";
}
.ant-dianpu-after:after {
content: "\EA13";
}
.ant-dianzan-line-after:after {
content: "\EA14";
}
.ant-dianzan-after:after {
content: "\EA15";
}
.ant-dingzhikaquan-after:after {
content: "\EA16";
}
.ant-dizhi-after:after {
content: "\EA17";
}
.ant-dizhiguanli-line-after:after {
content: "\EA18";
}
.ant-dizhiguanli-after:after {
content: "\EA19";
}
.ant-fanhui-line-after:after {
content: "\EA1A";
}
.ant-fanxianjilu-after:after {
content: "\EA1B";
}
.ant-fanzhuanjingtou-after:after {
content: "\EA1C";
}
.ant-fengexian-after:after {
content: "\EA1D";
}
.ant-fenlei-line-after:after {
content: "\EA1E";
}
.ant-fenxiang-line-after:after {
content: "\EA1F";
}
.ant-fenxiang-zhibojian-after:after {
content: "\EA20";
}
.ant-fenxiaoyuan-after:after {
content: "\EA21";
}
.ant-fukuan-after:after {
content: "\EA22";
}
.ant-fuzhujiange-after:after {
content: "\EA23";
}
.ant-gonggao-after:after {
content: "\EA24";
}
.ant-gonglve-after:after {
content: "\EA25";
}
.ant-gongnengzhida-01-after:after {
content: "\EA26";
}
.ant-gongnengzhida-kaoxia-after:after {
content: "\EA27";
}
.ant-gongsidizhi-after:after {
content: "\EA28";
}
.ant-goumaihuiyuanka-after:after {
content: "\EA29";
}
.ant-goumaishangpin-after:after {
content: "\EA2A";
}
.ant-gouwuche-line-after:after {
content: "\EA2B";
}
.ant-gouwuche-after:after {
content: "\EA2C";
}
.ant-haoyoulingqu-after:after {
content: "\EA2D";
}
.ant-home-line-after:after {
content: "\EA2E";
}
.ant-home-after:after {
content: "\EA2F";
}
.ant-hongbao-after:after {
content: "\EA30";
}
.ant-huanhuo-after:after {
content: "\EA31";
}
.ant-hufushuang-after:after {
content: "\EA32";
}
.ant-huiyuan-after:after {
content: "\EA33";
}
.ant-huiyuanlogo-after:after {
content: "\EA34";
}
.ant-jiangpai1-after:after {
content: "\EA35";
}
.ant-jiangpai2-after:after {
content: "\EA36";
}
.ant-jiangpai3-after:after {
content: "\EA37";
}
.ant-jifen-colorful-after:after {
content: "\EA38";
}
.ant-jifen-after:after {
content: "\EA39";
}
.ant-jifenfanbei-after:after {
content: "\EA3A";
}
.ant-jingxiang-after:after {
content: "\EA3B";
}
.ant-kaibo-after:after {
content: "\EA3C";
}
.ant-kefu-line-after:after {
content: "\EA3D";
}
.ant-kefu-after:after {
content: "\EA3E";
}
.ant-kefudianhua-after:after {
content: "\EA3F";
}
.ant-kuaidipeisong-line-after:after {
content: "\EA40";
}
.ant-kuaidipeisong-after:after {
content: "\EA41";
}
.ant-lajitong-after:after {
content: "\EA42";
}
.ant-leijixiaofeidanshu-after:after {
content: "\EA43";
}
.ant-leijixiaofeijine-after:after {
content: "\EA44";
}
.ant-lianjie-after:after {
content: "\EA45";
}
.ant-lianxikefu-after:after {
content: "\EA46";
}
.ant-lishizhibo-after:after {
content: "\EA47";
}
.ant-liwuduose-after:after {
content: "\EA48";
}
.ant-mofangdaohang-after:after {
content: "\EA49";
}
.ant-paihangbang-after:after {
content: "\EA4A";
}
.ant-pingjiawujiaoxing-after:after {
content: "\EA4B";
}
.ant-pinglun-after:after {
content: "\EA4C";
}
.ant-pintuan-after:after {
content: "\EA4D";
}
.ant-quanbushangpin-line-after:after {
content: "\EA4E";
}
.ant-quanbushangpin-after:after {
content: "\EA4F";
}
.ant-renzhengxinxi-after:after {
content: "\EA50";
}
.ant-shaitu-after:after {
content: "\EA51";
}
.ant-shaixuan-after:after {
content: "\EA52";
}
.ant-shanchu-after:after {
content: "\EA53";
}
.ant-shangjiazhongxin-after:after {
content: "\EA54";
}
.ant-shangpinliebiao-after:after {
content: "\EA55";
}
.ant-shangpintuiguang-after:after {
content: "\EA56";
}
.ant-shebei-after:after {
content: "\EA57";
}
.ant-shengchenglianjie-after:after {
content: "\EA58";
}
.ant-shengchengtupian-after:after {
content: "\EA59";
}
.ant-shezhi--after:after {
content: "\EA5A";
}
.ant-shibai-after:after {
content: "\EA5B";
}
.ant-shijian-after:after {
content: "\EA5C";
}
.ant-shipin-after:after {
content: "\EA5D";
}
.ant-shoucang-line-after:after {
content: "\EA5E";
}
.ant-shoucang-after:after {
content: "\EA5F";
}
.ant-shouhou-after:after {
content: "\EA60";
}
.ant-shouting-line-after:after {
content: "\EA61";
}
.ant-shouting-after:after {
content: "\EA62";
}
.ant-shuoming-after:after {
content: "\EA63";
}
.ant-songlidingdan-after:after {
content: "\EA64";
}
.ant-sousuo-after:after {
content: "\EA65";
}
.ant-tansuo-xuanzhong-after:after {
content: "\EA66";
}
.ant-tianjiatupian-after:after {
content: "\EA67";
}
.ant-tixianjilu-after:after {
content: "\EA68";
}
.ant-tuanchangdaoshi-after:after {
content: "\EA69";
}
.ant-tuanchangzhongxin-line-after:after {
content: "\EA6A";
}
.ant-tuanchangzhongxin-after:after {
content: "\EA6B";
}
.ant-tuihuotuikuan-after:after {
content: "\EA6C";
}
.ant-tuikuan-after:after {
content: "\EA6D";
}
.ant-tupianhualang-after:after {
content: "\EA6E";
}
.ant-tuwen-after:after {
content: "\EA6F";
}
.ant-wechat-after:after {
content: "\EA70";
}
.ant-weixin-line-after:after {
content: "\EA71";
}
.ant-weixinzengsong-after:after {
content: "\EA72";
}
.ant-wenben-after:after {
content: "\EA73";
}
.ant-wenzhangkapian-01-after:after {
content: "\EA74";
}
.ant-wode-line-after:after {
content: "\EA75";
}
.ant-wode-after:after {
content: "\EA76";
}
.ant-wodedingdan-after:after {
content: "\EA77";
}
.ant-wodejiangpin-after:after {
content: "\EA78";
}
.ant-wodetuandui-after:after {
content: "\EA79";
}
.ant-wodezuji-after:after {
content: "\EA7A";
}
.ant-xiangji-after:after {
content: "\EA7B";
}
.ant-xianshihuodong-after:after {
content: "\EA7C";
}
.ant-xiaodian-after:after {
content: "\EA7D";
}
.ant-xiaofeijilu-after:after {
content: "\EA7E";
}
.ant-xiuxizhong-after:after {
content: "\EA7F";
}
.ant-xuanfuanniu-after:after {
content: "\EA80";
}
.ant-yidayang-after:after {
content: "\EA81";
}
.ant-yidong-after:after {
content: "\EA82";
}
.ant-yijianmaiyang-after:after {
content: "\EA83";
}
.ant-yinliang-after:after {
content: "\EA84";
}
.ant-yongjin-after:after {
content: "\EA85";
}
.ant-youhuiquan-after:after {
content: "\EA86";
}
.ant-zhekou-after:after {
content: "\EA87";
}
.ant-zhibo-after:after {
content: "\EA88";
}
.ant-zhiboshezhi-after:after {
content: "\EA89";
}
.ant-zhifuchenggong-after:after {
content: "\EA8A";
}
.ant-zhifushibai-after:after {
content: "\EA8B";
}
.ant-zhouqiyouhuiquan-after:after {
content: "\EA8C";
}
.ant-zixun-after:after {
content: "\EA8D";
}
.ant-zuji-after:after {
content: "\EA8E";
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment