Authored by 张文文

获取地址列表接口调试

<template>
<LayoutApp title="选择地址" :show-back="true">
<AddressItem :list="list"></AddressItem>
<AddressItem :list="addressList"></AddressItem>
</LayoutApp>
</template>
<script>
import Layout from "../../../components/layout/layout-app";
import AddressItem from "./components/address-item";
import axios from "axios";
import { createNamespacedHelpers } from "vuex";
const { mapState, mapMutations, mapActions } = createNamespacedHelpers(
... ... @@ -21,9 +20,7 @@ export default {
AddressItem
},
data() {
return {
list: [{ name: "hahaha" }, { name: "hahaha" }]
};
return {};
},
computed: {
...mapState(["addressList"])
... ...
... ... @@ -60,6 +60,7 @@
<div :class="submitClass" @touchend="onSubmit">确定</div>
</div>
<!-- <AddressAct></AddressAct> -->
</LayoutApp>
</template>
... ... @@ -68,6 +69,7 @@ import Layout from "../../../components/layout/layout-app";
import Input from "./components/input";
import FormItem from "./components/form-item";
import Radio from "./components/radio";
import AddressAct from "./components/address-act";
import { createNamespacedHelpers } from "vuex";
const { mapState, mapMutations, mapActions } = createNamespacedHelpers(
... ... @@ -80,7 +82,8 @@ export default {
LayoutApp: Layout,
CInput: Input,
FormItem,
Radio
Radio,
AddressAct
},
data() {
return {
... ...
<template>
<div class="address-select-component" v-show="true">
<div class="address-select-box">
<div class="component-title">
<span class="title">所在地区</span>
<span class="iconfont close" @click="closeAddBox">&#xe623;</span>
</div>
<ul class="head-address-ul">
<li
v-if="province.title"
:class="{ 'head-address-li': common.titleActive, 'disable': !supportChangeProvince}"
@click="clickTitle('province')"
>{{province.title}}</li>
<li
v-if="city.title"
:class="{ 'head-address-li': province.titleActive }"
@click="clickTitle('city')"
>{{city.title}}</li>
<li
v-if="area.title"
:class="{ 'head-address-li': city.titleActive }"
@click="clickTitle('area')"
>{{area.title}}</li>
<li v-if="street.title" :class="{ 'head-address-li': area.titleActive }">{{street.title}}</li>
</ul>
<div class="address-container">
<div class="address-content">
<ul v-if="province.showList" class="address-ul">
<li
v-for="(pprovince, index) in provinces"
:key="index"
@click="switchAddress(pprovince.id, pprovince.caption)"
>
{{pprovince.caption}}
<span
v-if="pprovince.id === province.id"
class="iconfont icon-v"
></span>
</li>
</ul>
<ul v-if="city.showList" class="address-ul">
<li
v-for="(pcity, index) in citys"
:key="index"
@click="switchAddress(pcity.id, pcity.caption)"
>
{{pcity.caption}}
<span v-if="pcity.id === city.id" class="iconfont icon-v"></span>
</li>
</ul>
<ul v-if="area.showList" class="address-ul">
<li
v-for="(parea, index) in areas"
:key="index"
@click="switchAddress(parea.id, parea.caption)"
>
{{parea.caption}}
<span v-if="parea.id === area.id" class="iconfont icon-v"></span>
</li>
</ul>
<ul v-if="street.showList" class="address-ul">
<li
v-for="(pstreet, index) in streets"
:key="index"
@click="switchAddress(pstreet.id, pstreet.caption)"
>
{{pstreet.caption}}
<span v-if="pstreet.id === street.id" class="iconfont icon-v"></span>
</li>
</ul>
</div>
</div>
</div>
</div>
</template>
<script>
export default {
data() {
return {
supportChangeProvince: true, // 是否支持修改省
provinces: [],
citys: [],
areas: [],
streets: [],
show: false,
common: {
titleActive: true
},
province: {
id: "",
title: "",
allTitle: "",
showList: true,
titleActive: false
},
city: {
id: "",
title: "",
allTitle: "",
showList: false,
titleActive: false
},
area: {
id: "",
title: "",
allTitle: "",
showList: false,
titleActive: false
},
street: {
id: "",
title: "",
allTitle: "",
showList: false,
titleActive: false
}
};
}
// methods: {
// /* 返回标题处理 */
// returnTitle() {
// let getTitle = "";
// let returnTitle = "";
// if (this.supportChangeProvince) {
// getTitle =
// this.province.allTitle +
// this.city.allTitle +
// this.area.allTitle +
// this.street.allTitle;
// } else {
// getTitle =
// this.city.allTitle + this.area.allTitle + this.street.allTitle;
// }
// if (getTitle.length > 11) {
// returnTitle = getTitle.substr(0, 5) + "..." + getTitle.substr(-5);
// } else {
// returnTitle = getTitle;
// }
// return returnTitle;
// },
// /* 标题长度处理 */
// titleHandle(caption) {
// if (caption.length > 3) {
// return caption.substring(0, 3) + "...";
// } else {
// return caption;
// }
// },
// /* 选择地址后的显示控制 */
// changeShow(id, caption) {
// switch ((id + "").length) {
// case 2:
// this.province.id = id;
// this.province.allTitle = caption;
// this.province.title = this.titleHandle(caption);
// this.city.title = "请选择";
// this.city.showList = this.province.titleActive = true;
// this.province.showList = this.area.showList = this.street.showList = false;
// this.common.titleActive = this.city.titleActive = this.area.titleActive = this.street.titleActive = false;
// break;
// case 4:
// this.city.id = id;
// this.city.allTitle = caption;
// this.city.title = this.titleHandle(caption);
// this.area.title = "请选择";
// this.area.showList = this.city.titleActive = true;
// this.province.showList = this.city.showList = this.street.showList = false;
// this.province.titleActive = this.area.titleActive = this.street.titleActive = false;
// break;
// case 6:
// this.area.id = id;
// this.area.allTitle = caption;
// this.area.title = this.titleHandle(caption);
// this.street.title = "请选择";
// this.street.showList = this.area.titleActive = true;
// this.province.showList = this.city.showList = this.area.showList = false;
// this.province.titleActive = this.city.titleActive = this.street.titleActive = false;
// break;
// case 9:
// this.street.id = id;
// this.street.allTitle = caption;
// this.street.title = this.titleHandle(caption);
// this.street.showList = this.street.titleActive = true;
// this.province.showList = this.city.showList = this.area.showList = false;
// this.province.titleActive = this.city.titleActive = this.area.titleActive = false;
// break;
// default:
// this.province.title = "请选择";
// this.province.showList = this.province.titleActive = true;
// this.city.showList = this.area.showList = this.street.showList = false;
// this.city.titleActive = this.area.titleActive = this.street.titleActive = false;
// break;
// }
// },
// /* 获取地址数据绑定 */
// switchAddress(id, caption) {
// if (!id) {
// id = 0;
// }
// this.changeShow(id, caption);
// $.get(
// "/home/getaddress.json",
// {
// id: id
// },
// resultData => {
// /* 结果返回 */
// if (resultData.length < 1) {
// areaCode.val(id);
// let returnTitle = this.returnTitle();
// area.val(returnTitle);
// this.show = false;
// // this.$emit("modify.addressAct", {
// // code: id,
// // area: returnTitle
// // });
// }
// /* 数据绑定 */
// switch ((id + "").length) {
// case 2:
// this.citys = resultData;
// break;
// case 4:
// this.areas = resultData;
// break;
// case 6:
// this.streets = resultData;
// break;
// default:
// this.provinces = resultData;
// break;
// }
// }
// );
// },
// /* 关闭地址选择组件 */
// closeAddBox() {
// this.show = false;
// },
// /* 点击地址标题时的处理 */
// clickTitle(type) {
// switch (type) {
// case "province":
// if (!this.supportChangeProvince) {
// return false;
// }
// if (this.provinces.length < 1) {
// this.switchAddress();
// }
// this.province.titleActive = this.province.showList = true;
// this.city.titleActive = this.area.titleActive = this.street.titleActive = false;
// this.city.title = this.area.title = this.street.title = "";
// break;
// case "city":
// this.city.titleActive = this.city.showList = true;
// this.province.titleActive = this.area.titleActive = this.street.titleActive = false;
// this.province.showList = this.area.showList = this.street.showList = false;
// this.area.title = this.street.title = "";
// break;
// case "area":
// this.area.titleActive = this.area.showList = true;
// this.province.titleActive = this.city.titleActive = this.street.titleActive = false;
// this.province.showList = this.city.showList = this.street.showList = false;
// this.street.title = "";
// break;
// default:
// break;
// }
// }
// },
// created: function() {
// this.switchAddress();
// }
};
</script>
<style lang="scss">
.disable {
color: #a6a6a6;
}
.icon-v:before {
content: "\e6ea";
}
.address-select-component {
position: fixed;
bottom: 0;
left: 0;
top: 0;
width: 100%;
background: rgba(0, 0, 0, 0.5);
.address-select-box {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: #fff;
.component-title {
text-align: center;
line-height: 80px;
font-size: 32px;
color: #ccc;
padding: 0 30px;
.close {
float: right;
}
}
.head-address-ul {
margin: 0 0 0 30px;
padding: 0;
list-style: none;
overflow: hidden;
background-color: white;
font-size: 24px;
color: #444;
li {
display: block;
float: left;
height: 40px;
line-height: 40px;
position: relative;
margin-right: 70px;
}
li:last-child {
margin-right: 30px;
}
.head-address-li {
color: #f23030;
}
.head-address-li:after {
width: 100%;
height: 1px;
border-bottom: 2px solid #f23030;
position: absolute;
bottom: 0;
left: 0;
content: "";
}
}
.head-address-ul:after {
content: "";
width: 100%;
height: 1px;
position: absolute;
border-bottom: 1px solid #e3e5e9;
left: 0;
bottom: 0;
transform: scaleY(0.5);
-webkit-transform: scaleY(0.5);
}
.address-container {
margin: 0;
overflow: hidden;
height: 100%;
width: 100%;
border-top: solid 1px #ccc;
.address-content {
transform: translate(0, 0) translateZ(0);
height: 620px;
}
}
.address-ul {
padding: 0;
margin: 0;
list-style: none;
height: 100%;
overflow: auto;
font-size: 24px;
color: #232326;
li {
height: 80px;
line-height: 80px;
padding-left: 30px;
position: relative;
overflow: hidden;
span {
color: #f23030;
font-size: 14px;
}
}
li:after {
content: "";
width: 100%;
height: 1px;
position: absolute;
left: 0;
bottom: 0;
transform: scaleY(0.5);
-webkit-transform: scaleY(0.5);
}
}
}
}
</style>
... ...
... ... @@ -6,12 +6,13 @@
<div class="user-item">
<div class="user-info">
<div class="extra">
<p class="name">WUNA</p>
<p class="mobile">183****8888</p>
<div class="tag-btn">默认</div>
<p class="name">{{item.consignee}}</p>
<p class="mobile">{{item.mobile}}</p>
<div v-if="item.is_default === 'Y'" class="tag-btn">默认</div>
<div v-if="item.tag_code" class="tag-btn">{{item.tag}}</div>
<div class="option-btn" :data-item="item" :data-add="false" @click="toEditorPage">编辑</div>
</div>
<p class="address">江苏省 南京市 建邺区 江陵江东街 国家广告产业园5栋17楼新与力传媒</p>
<p class="address">{{item.area}}{{item.address}}</p>
<div class="border-line"></div>
</div>
</div>
... ... @@ -45,14 +46,15 @@ export default {
},
methods: {
toOrderPage(item) {
console.log("toOrderPage");
// this.$router.push({
// name: "author",
// params: {
// id: item.userId,
// type: item.userType || 1
// }
// });
this.$router.push({
name: "detail",
params: {
consignee: item.consignee,
mobile: item.mobile,
area: item.area,
address: item.address
}
});
},
toEditorPage(event) {
event.stopPropagation();
... ... @@ -60,9 +62,14 @@ export default {
let item = event.currentTarget.dataset.item || {};
if (isAdd) {
console.log("toAddPage");
this.$router.push({
name: "addressEdit"
});
} else {
console.log("toEditorPage");
this.$router.push({
name: "addressEdit",
item: item
});
}
}
},
... ...
... ... @@ -12,7 +12,6 @@ export default {
uid: '500031912',
});
console.log('----------', result.data);
if (result.code === 200) {
commit(Types.FETCH_USER_ADDRESS_LIST, {
list: get(result, 'data', [])
... ...