123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- import { api_sysAreaQueryAllProvince, api_userReceiveAddressPage, api_userReceiveAddressRemove, api_userReceiveAddressSave, api_userReceiveAddressUpdate } from "../../api/new"
- // pages/address/index.ts
- Page({
- /**
- * 页面的初始数据
- */
- data: {
- backParams: null as any,
- selectAddressId: '', // 选中地址编号
- addressList: [] as any,
- addressShow: false,
- addressAfterLeave: false,
- showDialog: false,
- // 添加地址表单信息
- id: "",
- },
- /**
- * 生命周期函数--监听页面加载
- */
- onLoad(options: any) {
- if (options.receiveAddress) {
- this.setData({
- id: options.receiveAddress
- })
- }
- this.getAddress()
- },
- onShow() {
- if (this.data.backParams) {
- this.setData({
- id: this.data.backParams?.receiveAddress,
- backParams: null,
- addressList: []
- }, () => {
- this.getAddress()
- })
- }
- },
- /** 地址列表 */
- async getAddress() {
- try {
- const { data } = await api_userReceiveAddressPage({ page: 1, rows: -1 })
- this.setData({
- addressList: data.data.rows || []
- })
- } catch {
- //
- }
- },
- // 添加地址
- onShowAddress() {
- wx.navigateTo({
- url: `../address/address-detail`,
- })
- },
- /** Dialog 隐藏 */
- onDialogClose() {
- this.setData({
- showDialog: false
- })
- },
- /** 删除地址 */
- onRemoveAddress(e: any) {
- this.setData({
- showDialog: true,
- selectAddressId: e.target.dataset.id
- })
- },
- /** 修改地址 */
- onUpdateAddress(e: any) {
- const id = e.target.dataset.id
- wx.navigateTo({
- url: `../address/address-detail?receiveAddress=${id}`,
- })
- },
- /** 选择地址 */
- onSelectAddress(e: any) {
- const id = e.currentTarget.dataset.id
- this.setData({
- id
- }, () => {
- wx.navigateBack()
- })
- },
- /** Dialog 确定 */
- async onDialogConfirm() {
- try {
- await api_userReceiveAddressRemove({
- id: this.data.selectAddressId
- })
- this.getAddress()
- // 如果删除的是已经选中的地址,则需要重置数据
- if (this.data.selectAddressId === this.data.id) {
- this.setData({
- id: ''
- })
- }
- this.onDialogClose()
- } catch {
- }
- },
- onUnload() {
- console.log('onUnload')
- const id = this.data.id
- const addressInfo = this.data.addressList.find((item: any) => item.id === id)
- const pages = getCurrentPages();
- const prevPage = pages[pages.length - 2]; // 获取上一个页面实例
- prevPage?.setData({
- backParams: {
- receiveAddress: addressInfo?.id || '',
- receiveAddressInfo: {
- addressDetail: addressInfo?.id ? (addressInfo.provinceName || '') + (addressInfo.cityName || '') + (addressInfo.regionName || '') + addressInfo.detailAddress : '',
- name: addressInfo?.name,
- phoneNumber: addressInfo?.phoneNumber
- }
- }
- });
- }
- })
|