微信小程序商城開發之實現用戶收貨地址管理頁面的代碼

2019-10-18     科技i關注

本篇文章給大家帶來的內容是關於微信小程序商城開發之實現用戶收貨地址管理頁面的代碼 ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

看效果

開發計劃

1、布局收貨地址列表和新增收貨地址頁面

2、實現省市縣三級聯動功能

3、使用緩存管理數據

一、收貨地址列表管理

addressList.wxml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

{{item.consignee}}

{{item.mobile}}

{{item.address}}

{{item.transportDay}}

刪除

新增地址

addressList.wxss

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

page{

display: flex;

flex-direction: column;

height: 100%;

}

.product-name-wrap{

margin: 0px 10px;

font-size: 14px;

color: #404040;

}

.ui-list-item-info{

margin: 5px 0px;

}

.ui-list-item-address{

color: #585c64;

}

.ui-list-item-time{

margin: 5px 0px;

}

.ui-list-item-del{

position: absolute;

right: 10px;

color: #585c64;

}

/* 分割線 */

.separate {

margin: 5px 0px;

height: 2rpx;

background-color: #f2f2f2;

}

.add-address{

margin: 0 auto;

margin-top: 30px;

width: 150px;

height: 35px;

border: 1px #000 solid;

line-height: 35px;

text-align: center;

color: #000;

border-radius: 5rpx;

display: block;

}

.add-img{

margin-right: 15rpx;

width: 15px;

height: 15px;

}

addressList.json

1

2

3

{

"navigationBarTitleText": "管理地址"

}

addressList.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

Page({

/**

* 頁面的初始數據

*/

data: {

addressList:[]

},

/**

* 生命周期函數--監聽頁面加載

*/

onLoad: function (options) {

var arr = wx.getStorageSync('addressList') || [];

console.info("緩存數據:" + arr);

// 更新數據

this.setData({

addressList: arr

});

},

/**

* 生命周期函數--監聽頁面顯示

*/

onShow: function () {

this.onLoad();

},

addAddress:function(){

wx.navigateTo({ url: '../address/address' });

},

/* 刪除item */

delAddress: function (e) {

this.data.addressList.splice(e.target.id.substring(3), 1);

// 更新data數據對象

if (this.data.addressList.length > 0) {

this.setData({

addressList: this.data.addressList

})

wx.setStorageSync('addressList', this.data.addressList);

} else {

this.setData({

addressList: this.data.addressList

})

wx.setStorageSync('addressList', []);

}

}

})

二、新增收貨信息

address.wxml

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

收貨人

手機號

收貨時間

{{transportValues[transportIndex]}}

省份

{{provinceNames[provinceIndex]}}

城市

{{cityNames[cityIndex]}}

區縣

{{countyNames[countyIndex]}}

詳細地址

address.wxss

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

@import '../../utils/weui.wxss';

.weui-cells:before{

top:0;

border-top:1rpx solid white;

}

.weui-cell{

line-height: 3.5rem;

}

.weui-cells:after{

bottom:0;border-bottom:1rpx solid white

}

.weui-btn{

width: 80%;

}

address.json

1

2

3

{

"navigationBarTitleText": "添加收貨地址"

}

address.js

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

132

133

134

135

136

137

138

139

140

141

142

143

144

145

146

147

148

149

150

151

152

153

154

155

156

157

158

159

160

161

162

163

164

165

166

167

168

169

170

171

172

173

174

175

176

177

178

179

180

181

182

183

184

185

186

187

188

189

190

191

192

193

194

195

196

197

198

199

200

201

var area = require('../../utils/area.js');

var areaInfo = []; //所有省市區縣數據

var provinces = []; //省

var provinceNames = []; //省名稱

var citys = []; //城市

var cityNames = []; //城市名稱

var countys = []; //區縣

var countyNames = []; //區縣名稱

var value = [0, 0, 0]; //數據位置下標

var addressList = null;

Page({

/**

* 頁面的初始數據

*/

data: {

transportValues: ["收貨時間不限", "周六日/節假日收貨", "周一至周五收貨"],

transportIndex: 0,

provinceIndex: 0, //省份

cityIndex: 0, //城市

countyIndex: 0, //區縣

},

/**

* 生命周期函數--監聽頁面加載

*/

onLoad: function(options) {

},

/**

* 生命周期函數--監聽頁面顯示

*/

onShow: function() {

var that = this;

area.getAreaInfo(function(arr) {

areaInfo = arr;

//獲取省份數據

that.getProvinceData();

});

},

// 獲取省份數據

getProvinceData: function() {

var that = this;

var s;

provinces = [];

provinceNames = [];

var num = 0;

for (var i = 0; i < areaInfo.length; i++) {

s = areaInfo[i];

if (s.di == "00" && s.xian == "00") {

provinces[num] = s;

provinceNames[num] = s.name;

num++;

}

}

that.setData({

provinceNames: provinceNames

})

that.getCityArr();

that.getCountyInfo();

},

// 獲取城市數據

getCityArr: function(count = 0) {

var c;

citys = [];

cityNames = [];

var num = 0;

for (var i = 0; i < areaInfo.length; i++) {

c = areaInfo[i];

if (c.xian == "00" && c.sheng == provinces[count].sheng && c.di != "00") {

citys[num] = c;

cityNames[num] = c.name;

num++;

}

}

if (citys.length == 0) {

citys[0] = {

name: ''

};

cityNames[0] = {

name: ''

};

}

var that = this;

that.setData({

citys: citys,

cityNames: cityNames

})

console.log('cityNames:' + cityNames);

that.getCountyInfo(count, 0);

},

// 獲取區縣數據

getCountyInfo: function(column0 = 0, column1 = 0) {

var c;

countys = [];

countyNames = [];

var num = 0;

for (var i = 0; i < areaInfo.length; i++) {

c = areaInfo[i];

if (c.xian != "00" && c.sheng == provinces[column0].sheng && c.di == citys[column1].di) {

countys[num] = c;

countyNames[num] = c.name;

num++;

}

}

if (countys.length == 0) {

countys[0] = {

name: ''

};

countyNames[0] = {

name: ''

};

}

console.log('countyNames:' + countyNames);

var that = this;

// value = [column0, column1, 0];

that.setData({

countys: countys,

countyNames: countyNames,

// value: value,

})

},

bindTransportDayChange: function(e) {

console.log('picker country 發生選擇改變,攜帶值為', e.detail.value);

this.setData({

transportIndex: e.detail.value

})

},

bindProvinceNameChange: function(e) {

var that = this;

console.log('picker province 發生選擇改變,攜帶值為', e.detail.value);

var val = e.detail.value

that.getCityArr(val); //獲取地級市數據

that.getCountyInfo(val, 0); //獲取區縣數據

value = [val, 0, 0];

this.setData({

provinceIndex: e.detail.value,

cityIndex: 0,

countyIndex: 0,

value: value

})

},

bindCityNameChange: function(e) {

var that = this;

console.log('picker city 發生選擇改變,攜帶值為', e.detail.value);

var val = e.detail.value

that.getCountyInfo(value[0], val); //獲取區縣數據

value = [value[0], val, 0];

this.setData({

cityIndex: e.detail.value,

countyIndex: 0,

value: value

})

},

bindCountyNameChange: function(e) {

var that = this;

console.log('picker county 發生選擇改變,攜帶值為', e.detail.value);

this.setData({

countyIndex: e.detail.value

})

},

saveAddress: function(e) {

var consignee = e.detail.value.consignee;

var mobile = e.detail.value.mobile;

var transportDay = e.detail.value.transportDay;

var provinceName = e.detail.value.provinceName;

var cityName = e.detail.value.cityName;

var countyName = e.detail.value.countyName;

var address = e.detail.value.address;

console.log(transportDay + "," + provinceName + "," + cityName + "," + countyName + "," + address); //輸出該文本

var arr = wx.getStorageSync('addressList') || [];

console.log("arr,{}", arr);

addressList = {

consignee: consignee,

mobile: mobile,

address: provinceName + cityName + countyName+address,

transportDay: transportDay

}

arr.push(addressList);

wx.setStorageSync('addressList', arr);

wx.navigateBack({

})

}

})

area.js和weui.wxss 可以看下方源碼獲取方式,這裡就不多做解釋。

相關推薦:

微信小程序商城開發之用微信授權並實現個人中心的頁面代碼

微信小程序商城開發之實現商品加入購物車的功能(代碼)

微信小程序商城開發之https框架的搭建以及頂部和底部導航的實現

以上就是微信小程序商城開發之實現用戶收貨地址管理頁面的代碼的詳細內容,更多請關注其它相關文章!

更多技巧請《轉發 + 關注》哦!

文章來源: https://twgreatdaily.com/zh-tw/cKrp220BMH2_cNUgNieA.html