Преглед изворни кода

feat: debug address relative api & move enablePullDownRefresh to index json

wangyuan пре 2 година
родитељ
комит
e918ac8a3a

+ 15 - 0
api/address.js

@@ -0,0 +1,15 @@
+// 用户地址
+import { wxRequest } from './request'
+
+const addAddressURL = '/add/address' // 新增地址
+const addressListURL = '/address/list' // 地址列表
+const deleteAddressURL = '/delete/address' // 删除地址
+const editAddressURL = '/edit/address' // 编辑地址
+
+export const addAddress =  (data) => wxRequest(addAddressURL, data)
+
+export const addressList =  (data) => wxRequest(addressListURL, data)
+
+export const deleteAddress =  (data) => wxRequest(deleteAddressURL, data)
+
+export const editAddress =  (data) => wxRequest(editAddressURL, data)

+ 1 - 1
api/index.js

@@ -2,6 +2,6 @@
 // 首页 api 接口
 import { wxRequest } from './request'
 
-const homePageURL = '/home/page/v1'
+const homePageURL = '/home/page'
 
 export const homePage =  (data) => wxRequest(homePageURL, data)

+ 3 - 3
api/my.js

@@ -2,9 +2,9 @@
 // my api 接口
 import { wxRequest } from './request'
 
-const bindMobileURL = '/user/bind/mobile/v1' // 获取用户手机号
-const loginURL = '/user/login/v1' // 登录
-const bindBaseInfoURL = '/user/bind/base/info/v1' // 绑定用户头像昵称
+const bindMobileURL = '/user/bind/mobile' // 获取用户手机号
+const loginURL = '/user/login' // 登录
+const bindBaseInfoURL = '/user/bind/base/info' // 绑定用户头像昵称
 
 export const ittLogin =  (data) => wxRequest(loginURL, data)
 

+ 2 - 1
api/request.js

@@ -1,5 +1,6 @@
 /* wx.request */
 const BASE_API = 'https://itt.chl6zk.store/api'
+const BASE_VERSION = '/v1'
 import itt from '../utils/util'
 const app = getApp()
 export const wxRequest = (url,data) => {
@@ -9,7 +10,7 @@ export const wxRequest = (url,data) => {
       mask: true
     })
     wx.request({
-      url: BASE_API + url,
+      url: BASE_API + url + BASE_VERSION,
       data: data,
       header: {
         systemData:JSON.stringify({

+ 0 - 1
app.json

@@ -36,7 +36,6 @@
     "navigationBarBackgroundColor": "#45A6B5",
     "navigationBarTitleText": "ITT健康检测",
     "navigationBarTextStyle": "white",
-    "enablePullDownRefresh": true,
     "backgroundColor": "#45A6B5"
   },
   "tabBar": {

+ 60 - 27
pages/address/address.js

@@ -1,4 +1,5 @@
 // pages/checkAddress/handleAddCheck.js
+import { addressList, deleteAddress } from '../../api/address'
 const app = getApp()
 Page({
 
@@ -6,17 +7,13 @@ Page({
    * 页面的初始数据
    */
   data: {
-    addressList: [
-      {
-        address: '河南省信阳市固始县赵刚乡新堰村西寨组新堰村西寨组新堰村西寨组新堰村西寨组'
-      },
-      {
-        address: '上海市上海市嘉定区'
-      }
-    ],
+    currentPage: 1,
+    hasNext: false,
+    addressList: [],
     dialogshow: false,
     formPage: '',
     formback:0,
+    addressId: ''
   },
 
   /**
@@ -30,32 +27,53 @@ Page({
     })
   },
 
-  /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady() {
-
-  },
-
   /**
    * 生命周期函数--监听页面显示
    */
   onShow() {
-    
+    this.getAddressList()
+  },
+  // 获取地址列表
+  getAddressList () {
+    var data = {
+      currentPage: this.data.currentPage
+    }
+    addressList(data).then(res => {
+      this.setData({
+        hasNext: res.data.hasNext,
+        addressList: res.data.vos
+      })
+    })
   },
 
   /**
-   * 生命周期函数--监听页面隐藏
+   * 页面到底事件
    */
-  onHide() {
-
+  onReachBottom() {
+    if (this.data.hasNext) {
+      var _currentPage = this.data.currentPage + 1
+      this.setData({
+        currentPage: _currentPage
+      })
+      this.getAddressList()
+    }
   },
 
   /**
    * 编辑地址
    */
   handleEdit(e) {
-    var value = e.currentTarget.dataset.address
+    var value = e.currentTarget.dataset.item
+    var editProvice = value.province
+    var editCity = value.city
+    var editCounty = value.county
+    var editDetailAddress = value.detailAddress
+    var editContactName = value.contactName
+    var editContactPhone = value.contactPhone
+    var editAddressId = value.addressId
+    wx.navigateTo({
+      url: '/pages/addressAdd/addressAdd?form=address&type=0&province=' + editProvice + '&city=' + editCity + '&county=' + editCounty + '&detailAddress=' + editDetailAddress + '&contactName=' + editContactName + '&contactPhone=' + editContactPhone + '&addressId=' + editAddressId
+    })
     console.log(value);
   },
 
@@ -64,8 +82,8 @@ Page({
    */
   handleAddressChose (e) {
     if (this.data.formback == '1') {
-      app.globalData.navigateBackParams.address = e.currentTarget.dataset.address
-      wx.navigateBack()
+      /* app.globalData.navigateBackParams.address = e.currentTarget.dataset.address
+      wx.navigateBack() */
     }
   },
 
@@ -73,24 +91,39 @@ Page({
    * 用户点击删除地址按钮
    */
   handleDelAddres(e) {
-    // var delId = e.currentTarget.dataset.id
+    var delId = e.currentTarget.dataset.addressid
     this.setData({
-      dialogshow: true
+      dialogshow: true,
+      addressId: delId
+    })
+  },
+  // 删除地址接口函数
+  handleConfirm () {
+    var that = this
+    that.setData({
+      dialogshow: false
+    })
+    var data = {
+      addressId: that.data.addressId
+    }
+    deleteAddress(data).then(res => {
+      that.setData({
+        currentPage: 1
+      })
+      that.getAddressList()
     })
   },
-  handleConfirm () {},
   handleCancel () {
     this.setData({
       dialogshow: false
     })
   },
-
   /**
    * 用户点击 新增地址
    */
   handleAddressAdd() {
     wx.navigateTo({
-      url: '/pages/addressAdd/addressAdd?form=address',
+      url: '/pages/addressAdd/addressAdd?form=address&type=1',
     })
   }
 })

+ 2 - 1
pages/address/address.json

@@ -1,3 +1,4 @@
 {
-  "navigationBarTitleText": "我的地址"
+  "navigationBarTitleText": "我的地址",
+  "onReachBottomDistance": 50
 }

+ 5 - 5
pages/address/address.wxml

@@ -4,17 +4,17 @@
     <view class="addrss-item" wx:for="{{addressList}}" wx:key="index">
       <view class="top userinfo" data-address="{{item.address}}" bindtap="handleAddressChose">
         <view class="username ittflex-jcs">
-          <text class="name">测试用户</text>
-          <text class="phone">18626576880</text>
+          <text class="name">{{item.contactName}}</text>
+          <text class="phone">{{item.contactPhone}}</text>
         </view>
-        <view class="address-detail">{{item.address}}</view>
+        <view class="address-detail">{{item.province}}{{item.city}}{{item.county}}{{item.detailAddress}}</view>
       </view>
       <view class="actions button ittflex">
-        <view class="edit-btn btn ittflex" data-address="{{item.address}}" bindtap="handleEdit">
+        <view class="edit-btn btn ittflex" data-item="{{item}}" bindtap="handleEdit">
           <image class="btn-icon" src="./../../imaes/bianji@2x.png"></image>
           <text class="btn-text" >编辑</text>
         </view>
-        <view class="delete-btn btn ittflex" data-id="10010" bindtap="handleDelAddres">
+        <view class="delete-btn btn ittflex" data-addressid="{{item.addressId}}" bindtap="handleDelAddres">
           <image class="btn-icon" src="./../../imaes/shanchu@2x.png"></image>
           <text class="btn-text">删除</text>
         </view>

+ 90 - 47
pages/addressAdd/addressAdd.js

@@ -1,63 +1,106 @@
 // pages/addressAdd/addressAdd.js
+import { addAddress, editAddress } from '../../api/address'
 Page({
 
   /**
    * 页面的初始数据
    */
   data: {
-    region:['浙江省','杭州市','富阳区'],
-    rangText: ''
+    region:[],
+    detailAddress: '',
+    contactName: '',
+    contactPhone: '',
+    rangText: '',
+    isEdit: false,
+    addressId: ''
   },
-
-  /**
-   * 生命周期函数--监听页面加载
-   */
-  onLoad(options) {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面初次渲染完成
-   */
-  onReady() {
-
-  },
-
-  /**
-   * 生命周期函数--监听页面显示
-   */
-  onShow() {
-    
-  },
-
-  /**
-   * 生命周期函数--监听页面隐藏
-   */
-  onHide() {
-
+  onLoad (options) {
+    if (options.type && options.type == 0) {
+      wx.setNavigationBarTitle({
+        title: '编辑地址',
+      })
+      this.setData({
+        isEdit: true,
+        addressId: options.addressId,
+        region: [options.province, options.city, options.county],
+        contactPhone: options.contactPhone,
+        contactName: options.contactName,
+        detailAddress: options.detailAddress
+      })
+    }
   },
-
   /**
-   * 生命周期函数--监听页面卸载
-   */
-  onUnload() {
-
+   * 保存地址
+   * **/
+  handleAddAddress () {
+    if (this.valid()) {
+      var that = this
+      var data = {
+        province: this.data.region[0],
+        city: this.data.region[1],
+        county: this.data.region[2],
+        detailAddress: this.data.detailAddress,
+        contactName: this.data.contactName,
+        contactPhone: this.data.contactPhone,
+        isDefault: false
+      }
+      if (that.data.isEdit) {
+        data.addressId = this.data.addressId
+        editAddress(data).then(res => {
+          that.resetForm()
+          wx.navigateBack()
+        })
+      } else {
+        addAddress(data).then(res => {
+          that.resetForm()
+          wx.navigateBack()
+        })
+      }
+    }
   },
-
-  /**
-   * 页面相关事件处理函数--监听用户下拉动作
-   */
-  onPullDownRefresh() {
-
+  bindinput () {},
+  resetForm () {
+    this.setData({
+      region: [],
+      detailAddress: '',
+      contactName: '',
+      contactPhone: ''
+    })
   },
-
-  /**
-   * 页面上拉触底事件的处理函数
-   */
-  onReachBottom() {
-
+  // 提交表单验证
+  valid () {
+    var valid = false
+    if (this.data.region.length == 0) {
+      wx.showToast({
+        title: '请选择地址',
+        icon: 'error'
+      })
+      return
+    }
+    if (this.data.detailAddress == '') {
+      wx.showToast({
+        title: '请输入地址',
+        icon: 'error'
+      })
+      return
+    }
+    if (this.data.contactName == '') {
+      wx.showToast({
+        title: '请输入联系人',
+        icon: 'error'
+      })
+      return
+    }
+    if (this.data.contactPhone == '') {
+      wx.showToast({
+        title: '请输入手机号',
+        icon: 'error'
+      })
+      return
+    }
+    valid = true
+    return valid
   },
-
   /**
    * 用户点击区域选择
    */

+ 5 - 5
pages/addressAdd/addressAdd.wxml

@@ -6,21 +6,21 @@
       <view class="actions">
         <picker class="my-picker" mode="region" value="{{region}}" bindchange="bindRegonPickerChange">
           <view class="picker-item ittflex">
-              <text class="picker-text">{{region[0]}}{{region[1]}}{{region[2]}}</text>
+              <text class="picker-text">{{region[0]}}{{region[1]}}{{region[2]}}</text>
               <van-icon name="arrow" color="#999" style="margin-right: 30rpx;"/>
             </view>
         </picker>
       </view>
     </view>
     <view class="form-item address-detail ittflex">
-      <textarea class="inputtext" show-confirm-bar placeholder="请输入详细地址:比如道路,门牌号等" 	placeholder-style="font-size: 26rpx;color:#999"/>
+      <textarea bindinput="bindinput" class="inputtext" model:value="{{detailAddress}}" show-confirm-bar placeholder="请输入详细地址:比如道路,门牌号等" 	placeholder-style="font-size: 26rpx;color:#999"/>
     </view>
     <view class="form-item linker">
-      <input class="linker-input user-input" placeholder="请输入联系人"/>
+      <input class="linker-input user-input" bindinput="bindinput" model:value="{{contactName}}" placeholder="请输入联系人"/>
     </view>
     <view class="form-item phone">
-      <input class="phone-input user-input" type="number" maxlength="11"  placeholder="请输入手机号"/>
+      <input class="phone-input user-input" bindinput="bindinput" model:value="{{contactPhone}}" type="number" maxlength="11"  placeholder="请输入手机号"/>
     </view>
   </view>
-  <view class="confirm-btn itt-btn">保存</view>
+  <view class="confirm-btn itt-btn" bindtap="handleAddAddress">保存</view>
 </view>

+ 1 - 0
pages/index/index.json

@@ -1,5 +1,6 @@
 {
   "navigationBarTitleText": "首页",
+  "enablePullDownRefresh": true,
   "usingComponents": {
     "van-button": "@vant/weapp/button/index"
   }