"use strict";
|
|
const common_vendor = require("../../common/vendor.js");
|
|
const pages_subcomponent_regionData = require("./region-data.js");
|
|
const pages_mixins_pullRefreshMixin = require("../mixins/pullRefreshMixin.js");
|
|
const _sfc_main = {
|
|
mixins: [pages_mixins_pullRefreshMixin.pullRefreshMixin],
|
|
data() {
|
|
return {
|
|
statusBarHeight: 0,
|
|
addressList: [
|
|
{
|
|
name: "郑文锦",
|
|
phone: "18108341643",
|
|
address: "海南省海口市秀英区秀英街道5单元183室",
|
|
defaultFlag: "Y"
|
|
},
|
|
{
|
|
name: "周俊",
|
|
phone: "13293992217",
|
|
address: "贵州省遵义市道真仡佬族苗族自治县洛龙镇5幢172室",
|
|
defaultFlag: "N"
|
|
},
|
|
{
|
|
name: "何炜",
|
|
phone: "18108341643",
|
|
address: "新疆维吾尔自治区乌鲁木齐市沙依巴克区仓房沟片区街道4单元50室",
|
|
defaultFlag: "N"
|
|
},
|
|
{
|
|
name: "赵晓艳",
|
|
phone: "15022123314",
|
|
address: "海南省海口市秀英区秀英街道5单元183室",
|
|
defaultFlag: "N"
|
|
},
|
|
{
|
|
name: "冯云",
|
|
phone: "15731435825",
|
|
address: "甘肃省兰州市城关区滑源路街道13幢199室",
|
|
defaultFlag: "N"
|
|
},
|
|
{
|
|
name: "钱皓皓",
|
|
phone: "18734717201",
|
|
address: "西藏自治区拉萨市堆龙德庆县东嘎镇7单元94室",
|
|
defaultFlag: "N"
|
|
}
|
|
],
|
|
batchMode: false,
|
|
selectedIndexes: [],
|
|
showAddressModal: false,
|
|
showRegionPicker: false,
|
|
form: {
|
|
name: "",
|
|
phone: "",
|
|
region: [],
|
|
address: "",
|
|
addressDetails: ""
|
|
},
|
|
provinces: pages_subcomponent_regionData.regionData,
|
|
cities: [],
|
|
districts: [],
|
|
regionIndex: [0, 0, 0],
|
|
mode: ""
|
|
};
|
|
},
|
|
watch: {
|
|
regionIndex: {
|
|
handler(val) {
|
|
var _a, _b, _c, _d;
|
|
let pIdx = val[0] < this.provinces.length ? val[0] : 0;
|
|
let cIdx = val[1] < (((_b = (_a = this.provinces[pIdx]) == null ? void 0 : _a.children) == null ? void 0 : _b.length) || 0) ? val[1] : 0;
|
|
this.cities = ((_c = this.provinces[pIdx]) == null ? void 0 : _c.children) || [];
|
|
this.districts = ((_d = this.cities[cIdx]) == null ? void 0 : _d.children) || [];
|
|
},
|
|
immediate: true
|
|
}
|
|
},
|
|
onPullDownRefresh() {
|
|
this.getAddressList(() => {
|
|
common_vendor.index.stopPullDownRefresh();
|
|
});
|
|
},
|
|
onLoad(options) {
|
|
var _a, _b;
|
|
this.statusBarHeight = common_vendor.index.getSystemInfoSync().statusBarHeight;
|
|
this.cities = ((_a = this.provinces[0]) == null ? void 0 : _a.children) || [];
|
|
this.districts = ((_b = this.cities[0]) == null ? void 0 : _b.children) || [];
|
|
this.regionIndex = [0, 0, 0];
|
|
this.getAddressList();
|
|
this.mode = options.mode || "";
|
|
},
|
|
methods: {
|
|
async onRefresh() {
|
|
await new Promise((resolve) => setTimeout(resolve, 1e3));
|
|
common_vendor.index.stopPullRefresh();
|
|
},
|
|
getAddressList(callback) {
|
|
this.$api("getAddressList", {}, (res) => {
|
|
if (res && res.result && res.result.records) {
|
|
this.addressList = res.result.records;
|
|
}
|
|
if (typeof callback === "function")
|
|
callback();
|
|
});
|
|
},
|
|
goBack() {
|
|
common_vendor.index.navigateBack();
|
|
},
|
|
startBatchDelete() {
|
|
this.batchMode = true;
|
|
this.selectedIndexes = [];
|
|
},
|
|
cancelBatchDelete() {
|
|
this.batchMode = false;
|
|
this.selectedIndexes = [];
|
|
},
|
|
selectItem(index) {
|
|
if (!this.batchMode)
|
|
return;
|
|
const idx = this.selectedIndexes.indexOf(index);
|
|
if (idx > -1) {
|
|
this.selectedIndexes.splice(idx, 1);
|
|
} else {
|
|
this.selectedIndexes.push(index);
|
|
}
|
|
},
|
|
confirmDelete() {
|
|
if (this.selectedIndexes.length === 0)
|
|
return;
|
|
common_vendor.index.showModal({
|
|
title: "提示",
|
|
content: "确定要删除选中的地址吗?",
|
|
success: (res) => {
|
|
if (res.confirm) {
|
|
this.selectedIndexes.sort((a, b) => b - a).forEach((index) => {
|
|
this.addressList.splice(index, 1);
|
|
});
|
|
this.batchMode = false;
|
|
this.selectedIndexes = [];
|
|
}
|
|
}
|
|
});
|
|
},
|
|
editAddress(item) {
|
|
var _a, _b;
|
|
this.showAddressModal = true;
|
|
this.form = {
|
|
id: item.id,
|
|
name: item.name,
|
|
phone: item.phone,
|
|
region: [],
|
|
address: item.address,
|
|
addressDetails: item.addressDetails,
|
|
defaultFlag: item.defaultFlag
|
|
};
|
|
this.regionIndex = [0, 0, 0];
|
|
this.cities = ((_a = this.provinces[0]) == null ? void 0 : _a.children) || [];
|
|
this.districts = ((_b = this.cities[0]) == null ? void 0 : _b.children) || [];
|
|
},
|
|
goToAddAddress() {
|
|
var _a, _b;
|
|
this.showAddressModal = true;
|
|
this.form = {
|
|
id: void 0,
|
|
name: "",
|
|
phone: "",
|
|
region: [],
|
|
address: "",
|
|
addressDetails: ""
|
|
};
|
|
this.regionIndex = [0, 0, 0];
|
|
this.cities = ((_a = this.provinces[0]) == null ? void 0 : _a.children) || [];
|
|
this.districts = ((_b = this.cities[0]) == null ? void 0 : _b.children) || [];
|
|
},
|
|
selectAddress(address) {
|
|
if (this.mode === "select") {
|
|
common_vendor.index.$emit("addressSelected", {
|
|
id: address.id,
|
|
name: address.name,
|
|
phone: address.phone,
|
|
address: address.address,
|
|
addressDetails: address.addressDetails
|
|
});
|
|
common_vendor.index.navigateBack();
|
|
}
|
|
},
|
|
closeAddressModal() {
|
|
this.showAddressModal = false;
|
|
},
|
|
saveAddress() {
|
|
if (!this.form.name)
|
|
return common_vendor.index.showToast({ title: "请输入联系人", icon: "none" });
|
|
if (!this.form.phone)
|
|
return common_vendor.index.showToast({ title: "请输入手机号", icon: "none" });
|
|
if (!this.form.address)
|
|
return common_vendor.index.showToast({ title: "请选择地区", icon: "none" });
|
|
if (!this.form.addressDetails)
|
|
return common_vendor.index.showToast({ title: "请输入详细地址", icon: "none" });
|
|
const params = {
|
|
name: this.form.name,
|
|
phone: this.form.phone,
|
|
address: this.form.address,
|
|
addressDetails: this.form.addressDetails,
|
|
defaultFlag: this.form.defaultFlag
|
|
};
|
|
if (this.form.id)
|
|
params.id = this.form.id;
|
|
this.$api("saveOrUpdateAddress", params, (res) => {
|
|
if (res.code == 200) {
|
|
common_vendor.index.showToast({ title: "保存成功", icon: "success" });
|
|
this.closeAddressModal();
|
|
this.getAddressList();
|
|
}
|
|
});
|
|
},
|
|
onRegionChange(e) {
|
|
let [pIdx, cIdx, dIdx] = e.detail.value;
|
|
if (pIdx !== this.regionIndex[0]) {
|
|
cIdx = 0;
|
|
dIdx = 0;
|
|
} else if (cIdx !== this.regionIndex[1]) {
|
|
dIdx = 0;
|
|
}
|
|
this.regionIndex = [pIdx, cIdx, dIdx];
|
|
},
|
|
confirmRegion() {
|
|
const province = this.provinces[this.regionIndex[0]];
|
|
const city = this.cities[this.regionIndex[1]];
|
|
const district = this.districts[this.regionIndex[2]];
|
|
this.form.region = [
|
|
(province == null ? void 0 : province.code) || "",
|
|
(city == null ? void 0 : city.code) || "",
|
|
(district == null ? void 0 : district.code) || ""
|
|
];
|
|
this.form.address = [
|
|
(province == null ? void 0 : province.name) || "",
|
|
(city == null ? void 0 : city.name) || "",
|
|
(district == null ? void 0 : district.name) || ""
|
|
].filter(Boolean).join(" ");
|
|
this.showRegionPicker = false;
|
|
},
|
|
setDefault(id) {
|
|
const address = this.addressList.find((item) => item.id === id);
|
|
const defaultFlag = address.defaultFlag === "Y" ? "N" : "Y";
|
|
this.$api("updateDefaultAddress", {
|
|
id
|
|
}, (res) => {
|
|
if (res.code == 200) {
|
|
common_vendor.index.showToast({
|
|
title: defaultFlag === "Y" ? "设置成功" : "已取消默认",
|
|
icon: "success"
|
|
});
|
|
this.getAddressList();
|
|
}
|
|
});
|
|
},
|
|
deleteAddress(id) {
|
|
common_vendor.index.showModal({
|
|
title: "提示",
|
|
content: "确定要删除该地址吗?",
|
|
success: (res) => {
|
|
if (res.confirm) {
|
|
this.$api("deleteAddress", { id }, (res2) => {
|
|
if (res2.code == 200) {
|
|
common_vendor.index.showToast({
|
|
title: "删除成功",
|
|
icon: "success"
|
|
});
|
|
this.getAddressList();
|
|
}
|
|
});
|
|
}
|
|
}
|
|
});
|
|
},
|
|
initRegionPicker() {
|
|
var _a, _b;
|
|
if (this.form.region.length > 0) {
|
|
const [provinceCode, cityCode, districtCode] = this.form.region;
|
|
const provinceIndex = this.provinces.findIndex((p) => p.code === provinceCode);
|
|
if (provinceIndex > -1) {
|
|
this.cities = this.provinces[provinceIndex].children || [];
|
|
if (this.cities.length === 0) {
|
|
this.cities = [{ code: "", name: "请选择" }];
|
|
}
|
|
const cityIndex = this.cities.findIndex((c) => c.code === cityCode);
|
|
if (cityIndex > -1) {
|
|
this.districts = this.cities[cityIndex].children || [];
|
|
if (this.districts.length === 0) {
|
|
this.districts = [{ code: "", name: "请选择" }];
|
|
}
|
|
const districtIndex = this.districts.findIndex((d) => d.code === districtCode);
|
|
this.regionIndex = [
|
|
provinceIndex,
|
|
cityIndex,
|
|
districtIndex > -1 ? districtIndex : 0
|
|
];
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
this.cities = ((_a = this.provinces[0]) == null ? void 0 : _a.children) || [];
|
|
if (this.cities.length === 0) {
|
|
this.cities = [{ code: "", name: "请选择" }];
|
|
}
|
|
this.districts = ((_b = this.cities[0]) == null ? void 0 : _b.children) || [];
|
|
if (this.districts.length === 0) {
|
|
this.districts = [{ code: "", name: "请选择" }];
|
|
}
|
|
this.regionIndex = [0, 0, 0];
|
|
}
|
|
}
|
|
};
|
|
if (!Array) {
|
|
const _easycom_uni_icons2 = common_vendor.resolveComponent("uni-icons");
|
|
_easycom_uni_icons2();
|
|
}
|
|
const _easycom_uni_icons = () => "../../uni_modules/uni-icons/components/uni-icons/uni-icons.js";
|
|
if (!Math) {
|
|
_easycom_uni_icons();
|
|
}
|
|
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
|
return common_vendor.e({
|
|
a: common_vendor.p({
|
|
type: "left",
|
|
size: "20"
|
|
}),
|
|
b: common_vendor.o((...args) => $options.goBack && $options.goBack(...args)),
|
|
c: $data.statusBarHeight + 88 + "rpx",
|
|
d: $data.statusBarHeight + "px",
|
|
e: common_vendor.f($data.addressList, (item, index, i0) => {
|
|
return common_vendor.e({
|
|
a: common_vendor.t(item.name),
|
|
b: common_vendor.t(item.phone),
|
|
c: item.defaultFlag === "Y"
|
|
}, item.defaultFlag === "Y" ? {} : {}, {
|
|
d: common_vendor.t(item.address),
|
|
e: common_vendor.t(item.addressDetails),
|
|
f: item.defaultFlag === "Y"
|
|
}, item.defaultFlag === "Y" ? {} : {}, {
|
|
g: item.defaultFlag === "Y" ? 1 : "",
|
|
h: item.defaultFlag === "Y" ? 1 : "",
|
|
i: common_vendor.o(($event) => $options.setDefault(item.id), index),
|
|
j: "d2c808da-1-" + i0,
|
|
k: common_vendor.o(($event) => $options.editAddress(item), index),
|
|
l: "d2c808da-2-" + i0,
|
|
m: common_vendor.o(($event) => $options.deleteAddress(item.id), index),
|
|
n: common_vendor.o(($event) => $options.selectAddress(item), index),
|
|
o: index
|
|
});
|
|
}),
|
|
f: common_vendor.p({
|
|
type: "compose",
|
|
size: "22",
|
|
color: "#bbb"
|
|
}),
|
|
g: common_vendor.p({
|
|
type: "trash",
|
|
size: "22",
|
|
color: "#bbb"
|
|
}),
|
|
h: common_vendor.o((...args) => $options.goToAddAddress && $options.goToAddAddress(...args)),
|
|
i: $data.showAddressModal
|
|
}, $data.showAddressModal ? {
|
|
j: common_vendor.o((...args) => $options.closeAddressModal && $options.closeAddressModal(...args))
|
|
} : {}, {
|
|
k: $data.showAddressModal
|
|
}, $data.showAddressModal ? {
|
|
l: common_vendor.o((...args) => $options.closeAddressModal && $options.closeAddressModal(...args)),
|
|
m: common_vendor.t($data.form.id ? "编辑地址" : "新建地址"),
|
|
n: $data.form.name,
|
|
o: common_vendor.o(($event) => $data.form.name = $event.detail.value),
|
|
p: $data.form.phone,
|
|
q: common_vendor.o(($event) => $data.form.phone = $event.detail.value),
|
|
r: common_vendor.t($data.form.address || "选择省市区街道"),
|
|
s: !$data.form.address ? 1 : "",
|
|
t: common_vendor.o(($event) => $data.showRegionPicker = true),
|
|
v: $data.form.addressDetails,
|
|
w: common_vendor.o(($event) => $data.form.addressDetails = $event.detail.value),
|
|
x: common_vendor.o((...args) => $options.saveAddress && $options.saveAddress(...args))
|
|
} : {}, {
|
|
y: $data.showRegionPicker
|
|
}, $data.showRegionPicker ? {
|
|
z: common_vendor.o(($event) => $data.showRegionPicker = false),
|
|
A: common_vendor.f($data.provinces, (item, index, i0) => {
|
|
return {
|
|
a: common_vendor.t(item.name),
|
|
b: index
|
|
};
|
|
}),
|
|
B: common_vendor.f($data.cities, (item, index, i0) => {
|
|
return {
|
|
a: common_vendor.t(item.name),
|
|
b: index
|
|
};
|
|
}),
|
|
C: common_vendor.f($data.districts, (item, index, i0) => {
|
|
return {
|
|
a: common_vendor.t(item.name),
|
|
b: index
|
|
};
|
|
}),
|
|
D: $data.regionIndex,
|
|
E: common_vendor.o((...args) => $options.onRegionChange && $options.onRegionChange(...args)),
|
|
F: common_vendor.o((...args) => $options.confirmRegion && $options.confirmRegion(...args))
|
|
} : {}, {
|
|
G: $data.statusBarHeight + 88 + "rpx"
|
|
});
|
|
}
|
|
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-d2c808da"]]);
|
|
wx.createPage(MiniProgramPage);
|
|
//# sourceMappingURL=../../../.sourcemap/mp-weixin/pages/subcomponent/select.js.map
|