Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
1a150f65
Commit
1a150f65
authored
Oct 17, 2018
by
Junling Bu
Browse files
fix[renard-wx]: renard小程序里面采用微信地址组件的地址,与小程序后台不一致。
parent
857323c6
Changes
2
Hide whitespace changes
Inline
Side-by-side
renard-wx/pages/ucenter/addressAdd/addressAdd.js
View file @
1a150f65
...
@@ -4,209 +4,340 @@ var check = require('../../../utils/check.js');
...
@@ -4,209 +4,340 @@ var check = require('../../../utils/check.js');
var
app
=
getApp
();
var
app
=
getApp
();
Page
({
Page
({
data
:
{
data
:
{
address
:
{
address
:
{
id
:
0
,
id
:
0
,
provinceId
:
0
,
provinceId
:
0
,
cityId
:
0
,
cityId
:
0
,
areaId
:
0
,
areaId
:
0
,
address
:
''
,
address
:
''
,
name
:
''
,
name
:
''
,
mobile
:
''
,
mobile
:
''
,
isDefault
:
0
,
isDefault
:
0
,
provinceName
:
''
,
provinceName
:
''
,
cityName
:
''
,
cityName
:
''
,
areaName
:
''
areaName
:
''
},
},
addressId
:
0
,
addressId
:
0
,
openSelectRegion
:
false
,
openSelectRegion
:
false
,
regionType
:
1
,
selectRegionList
:
[
selectRegionDone
:
false
{
id
:
0
,
name
:
'
省份
'
,
pid
:
1
,
type
:
1
},
},
{
id
:
0
,
name
:
'
城市
'
,
pid
:
1
,
type
:
2
},
bindinputMobile
(
event
)
{
{
id
:
0
,
name
:
'
区县
'
,
pid
:
1
,
type
:
3
}
let
address
=
this
.
data
.
address
;
],
address
.
mobile
=
event
.
detail
.
value
;
regionType
:
1
,
this
.
setData
({
regionList
:
[],
address
:
address
selectRegionDone
:
false
});
},
},
bindinputMobile
(
event
)
{
bindinputName
(
event
)
{
let
address
=
this
.
data
.
address
;
let
address
=
this
.
data
.
address
;
address
.
mobile
=
event
.
detail
.
value
;
address
.
name
=
event
.
detail
.
value
;
this
.
setData
({
this
.
setData
({
address
:
address
address
:
address
});
});
},
},
bindinputName
(
event
)
{
bindinputAddress
(
event
)
{
let
address
=
this
.
data
.
address
;
let
address
=
this
.
data
.
address
;
address
.
name
=
event
.
detail
.
value
;
address
.
address
=
event
.
detail
.
value
;
this
.
setData
({
this
.
setData
({
address
:
address
address
:
address
});
});
},
},
bindinputAddress
(
event
)
{
bindIsDefault
()
{
let
address
=
this
.
data
.
address
;
let
address
=
this
.
data
.
address
;
address
.
address
=
event
.
detail
.
value
;
address
.
isDefault
=
!
address
.
isDefault
;
this
.
setData
({
this
.
setData
({
address
:
address
address
:
address
});
});
},
},
bindIsDefault
()
{
getAddressDetail
()
{
let
address
=
this
.
data
.
address
;
let
that
=
this
;
address
.
isDefault
=
!
address
.
isDefault
;
util
.
request
(
api
.
AddressDetail
,
{
this
.
setData
({
id
:
that
.
data
.
addressId
address
:
address
}).
then
(
function
(
res
)
{
});
if
(
res
.
errno
===
0
)
{
},
if
(
res
.
data
)
{
getAddressDetail
()
{
that
.
setData
({
let
that
=
this
;
address
:
res
.
data
util
.
request
(
api
.
AddressDetail
,
{
id
:
that
.
data
.
addressId
}).
then
(
function
(
res
)
{
});
if
(
res
.
errno
===
0
)
{
}
if
(
res
.
data
)
{
}
that
.
setData
({
});
address
:
res
.
data
},
});
}
wxChooseAddress
()
{
}
let
that
=
this
;
});
let
address
=
this
.
data
.
address
;
},
// 用户已经同意小程序使用地址功能
setRegionDoneStatus
()
{
wx
.
chooseAddress
({
let
that
=
this
;
success
:
function
(
res
)
{
let
doneStatus
=
that
.
data
.
selectRegionList
.
every
(
item
=>
{
address
.
provinceId
=
99999
;
return
item
.
id
!=
0
;
address
.
cityId
=
88888
;
});
address
.
areaId
=
77777
;
address
.
name
=
res
.
userName
;
address
.
mobile
=
res
.
telNumber
;
address
.
provinceName
=
res
.
provinceName
;
address
.
cityName
=
res
.
cityName
;
address
.
areaName
=
res
.
countyName
;
address
.
address
=
res
.
provinceName
+
res
.
cityName
+
res
.
countyName
+
res
.
detailInfo
;
that
.
setData
({
that
.
setData
({
address
:
address
,
selectRegionDone
:
doneStatus
})
},
chooseRegion
()
{
let
that
=
this
;
this
.
setData
({
openSelectRegion
:
!
this
.
data
.
openSelectRegion
});
});
}
});
//设置区域选择数据
},
let
address
=
this
.
data
.
address
;
if
(
address
.
provinceId
>
0
&&
address
.
cityId
>
0
&&
address
.
areaId
>
0
)
{
wxAddress
()
{
let
selectRegionList
=
this
.
data
.
selectRegionList
;
let
that
=
this
;
selectRegionList
[
0
].
id
=
address
.
provinceId
;
// 可以通过 wx.getSetting 先查询一下用户是否授权了 "scope.address" 这个 scope
selectRegionList
[
0
].
name
=
address
.
provinceName
;
wx
.
getSetting
({
selectRegionList
[
0
].
pid
=
0
;
success
(
res
)
{
if
(
!
res
.
authSetting
[
'
scope.address
'
])
{
selectRegionList
[
1
].
id
=
address
.
cityId
;
wx
.
authorize
({
selectRegionList
[
1
].
name
=
address
.
cityName
;
scope
:
'
scope.address
'
,
selectRegionList
[
1
].
pid
=
address
.
provinceId
;
success
()
{
that
.
wxChooseAddress
();
selectRegionList
[
2
].
id
=
address
.
areaId
;
}
selectRegionList
[
2
].
name
=
address
.
areaName
;
})
selectRegionList
[
2
].
pid
=
address
.
cityId
;
this
.
setData
({
selectRegionList
:
selectRegionList
,
regionType
:
3
});
this
.
getRegionList
(
address
.
cityId
);
}
else
{
}
else
{
that
.
wxChooseAddress
();
this
.
setData
({
selectRegionList
:
[
{
id
:
0
,
name
:
'
省份
'
,
pid
:
0
,
type
:
1
},
{
id
:
0
,
name
:
'
城市
'
,
pid
:
0
,
type
:
2
},
{
id
:
0
,
name
:
'
区县
'
,
pid
:
0
,
type
:
3
}
],
regionType
:
1
})
this
.
getRegionList
(
0
);
}
}
}
})
},
onLoad
:
function
(
options
)
{
let
that
=
this
;
// 页面初始化 options为页面跳转所带来的参数
console
.
log
(
options
);
if
(
options
.
id
&&
options
.
id
!=
0
)
{
this
.
setData
({
addressId
:
options
.
id
});
this
.
getAddressDetail
();
}
else
{
that
.
wxAddress
();
}
},
this
.
setRegionDoneStatus
();
onReady
:
function
()
{
},
onLoad
:
function
(
options
)
{
// 页面初始化 options为页面跳转所带来的参数
console
.
log
(
options
)
if
(
options
.
id
&&
options
.
id
!=
0
)
{
this
.
setData
({
addressId
:
options
.
id
});
this
.
getAddressDetail
();
}
},
onReady
:
function
()
{
},
},
selectRegionType
(
event
)
{
let
that
=
this
;
let
regionTypeIndex
=
event
.
target
.
dataset
.
regionTypeIndex
;
let
selectRegionList
=
that
.
data
.
selectRegionList
;
cancelAddress
()
{
//判断是否可点击
wx
.
navigateBack
();
if
(
regionTypeIndex
+
1
==
this
.
data
.
regionType
||
(
regionTypeIndex
-
1
>=
0
&&
selectRegionList
[
regionTypeIndex
-
1
].
id
<=
0
))
{
},
return
false
;
saveAddress
()
{
}
console
.
log
(
this
.
data
.
address
);
let
address
=
this
.
data
.
address
;
if
(
address
.
name
==
''
)
{
this
.
setData
({
util
.
showErrorToast
(
'
请输入姓名
'
);
regionType
:
regionTypeIndex
+
1
})
return
false
;
let
selectRegionItem
=
selectRegionList
[
regionTypeIndex
];
}
if
(
address
.
mobile
==
''
)
{
this
.
getRegionList
(
selectRegionItem
.
pid
);
util
.
showErrorToast
(
'
请输入手机号码
'
);
return
false
;
}
this
.
setRegionDoneStatus
();
if
(
address
.
areaId
==
0
)
{
},
util
.
showErrorToast
(
'
请输入省市区
'
);
selectRegion
(
event
)
{
return
false
;
let
that
=
this
;
}
let
regionIndex
=
event
.
target
.
dataset
.
regionIndex
;
let
regionItem
=
this
.
data
.
regionList
[
regionIndex
];
let
regionType
=
regionItem
.
type
;
let
selectRegionList
=
this
.
data
.
selectRegionList
;
selectRegionList
[
regionType
-
1
]
=
regionItem
;
if
(
address
.
address
==
''
)
{
util
.
showErrorToast
(
'
请输入详细地址
'
);
return
false
;
}
if
(
!
check
.
isValidPhone
(
address
.
mobile
))
{
if
(
regionType
!=
3
)
{
util
.
showErrorToast
(
'
手机号不正确
'
);
this
.
setData
({
return
false
;
selectRegionList
:
selectRegionList
,
}
regionType
:
regionType
+
1
})
this
.
getRegionList
(
regionItem
.
id
);
}
else
{
this
.
setData
({
selectRegionList
:
selectRegionList
})
}
//重置下级区域为空
selectRegionList
.
map
((
item
,
index
)
=>
{
if
(
index
>
regionType
-
1
)
{
item
.
id
=
0
;
item
.
name
=
index
==
1
?
'
城市
'
:
'
区县
'
;
item
.
pid
=
0
;
}
return
item
;
});
this
.
setData
({
selectRegionList
:
selectRegionList
})
let
that
=
this
;
util
.
request
(
api
.
AddressSave
,
{
that
.
setData
({
id
:
address
.
id
,
regionList
:
that
.
data
.
regionList
.
map
(
item
=>
{
name
:
address
.
name
,
mobile
:
address
.
mobile
,
//标记已选择的
provinceId
:
address
.
provinceId
,
if
(
that
.
data
.
regionType
==
item
.
type
&&
that
.
data
.
selectRegionList
[
that
.
data
.
regionType
-
1
].
id
==
item
.
id
)
{
cityId
:
address
.
cityId
,
item
.
selected
=
true
;
areaId
:
address
.
areaId
,
}
else
{
address
:
address
.
address
,
item
.
selected
=
false
;
isDefault
:
address
.
isDefault
,
}
provinceName
:
address
.
provinceName
,
cityName
:
address
.
cityName
,
return
item
;
countyName
:
address
.
areaName
})
},
'
POST
'
).
then
(
function
(
res
)
{
});
if
(
res
.
errno
===
0
)
{
//返回之前,先取出上一页对象,并设置addressId
this
.
setRegionDoneStatus
();
var
pages
=
getCurrentPages
();
var
prevPage
=
pages
[
pages
.
length
-
2
];
},
console
.
log
(
prevPage
);
doneSelectRegion
()
{
if
(
prevPage
.
route
==
"
pages/shopping/checkout/checkout
"
)
{
if
(
this
.
data
.
selectRegionDone
===
false
)
{
prevPage
.
setData
({
return
false
;
addressId
:
res
.
data
});
try
{
wx
.
setStorageSync
(
'
addressId
'
,
res
.
data
);
}
catch
(
e
)
{
}
console
.
log
(
"
set address
"
);
}
}
let
address
=
this
.
data
.
address
;
let
selectRegionList
=
this
.
data
.
selectRegionList
;
address
.
provinceId
=
selectRegionList
[
0
].
id
;
address
.
cityId
=
selectRegionList
[
1
].
id
;
address
.
areaId
=
selectRegionList
[
2
].
id
;
address
.
provinceName
=
selectRegionList
[
0
].
name
;
address
.
cityName
=
selectRegionList
[
1
].
name
;
address
.
areaName
=
selectRegionList
[
2
].
name
;
this
.
setData
({
address
:
address
,
openSelectRegion
:
false
});
},
cancelSelectRegion
()
{
this
.
setData
({
openSelectRegion
:
false
,
regionType
:
this
.
data
.
regionDoneStatus
?
3
:
1
});
},
getRegionList
(
regionId
)
{
let
that
=
this
;
let
regionType
=
that
.
data
.
regionType
;
util
.
request
(
api
.
RegionList
,
{
pid
:
regionId
}).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
that
.
setData
({
regionList
:
res
.
data
.
map
(
item
=>
{
//标记已选择的
if
(
regionType
==
item
.
type
&&
that
.
data
.
selectRegionList
[
regionType
-
1
].
id
==
item
.
id
)
{
item
.
selected
=
true
;
}
else
{
item
.
selected
=
false
;
}
return
item
;
})
});
}
});
},
cancelAddress
()
{
wx
.
navigateBack
();
wx
.
navigateBack
();
}
},
});
saveAddress
()
{
console
.
log
(
this
.
data
.
address
)
let
address
=
this
.
data
.
address
;
},
if
(
address
.
name
==
''
)
{
onShow
:
function
()
{
util
.
showErrorToast
(
'
请输入姓名
'
);
// 页面显示
},
return
false
;
onHide
:
function
()
{
}
// 页面隐藏
},
if
(
address
.
mobile
==
''
)
{
onUnload
:
function
()
{
util
.
showErrorToast
(
'
请输入手机号码
'
);
// 页面关闭
return
false
;
}
if
(
address
.
areaId
==
0
)
{
util
.
showErrorToast
(
'
请输入省市区
'
);
return
false
;
}
if
(
address
.
address
==
''
)
{
util
.
showErrorToast
(
'
请输入详细地址
'
);
return
false
;
}
if
(
!
check
.
isValidPhone
(
address
.
mobile
))
{
util
.
showErrorToast
(
'
手机号不正确
'
);
return
false
;
}
let
that
=
this
;
util
.
request
(
api
.
AddressSave
,
{
id
:
address
.
id
,
name
:
address
.
name
,
mobile
:
address
.
mobile
,
provinceId
:
address
.
provinceId
,
cityId
:
address
.
cityId
,
areaId
:
address
.
areaId
,
address
:
address
.
address
,
isDefault
:
address
.
isDefault
,
provinceName
:
address
.
provinceName
,
cityName
:
address
.
cityName
,
countyName
:
address
.
areaName
},
'
POST
'
).
then
(
function
(
res
)
{
if
(
res
.
errno
===
0
)
{
//返回之前,先取出上一页对象,并设置addressId
var
pages
=
getCurrentPages
();
var
prevPage
=
pages
[
pages
.
length
-
2
];
console
.
log
(
prevPage
);
if
(
prevPage
.
route
==
"
pages/checkout/checkout
"
)
{
prevPage
.
setData
({
addressId
:
res
.
data
})
try
{
wx
.
setStorageSync
(
'
addressId
'
,
res
.
data
);
}
catch
(
e
)
{
}
}
});
console
.
log
(
"
set address
"
);
\ No newline at end of file
}
wx
.
navigateBack
();
}
});
},
onShow
:
function
()
{
// 页面显示
},
onHide
:
function
()
{
// 页面隐藏
},
onUnload
:
function
()
{
// 页面关闭
}
})
\ No newline at end of file
renard-wx/pages/ucenter/addressAdd/addressAdd.wxml
View file @
1a150f65
<view class="add-address">
<view class="add-address">
<view class="add-form">
<view class="add-form">
<view class="form-item">
<view class="form-item">
<input class="input" bindinput="bindinputName" placeholder="姓名" value="{{address.name}}"/>
<input class="input" bindinput="bindinputName" placeholder="姓名" value="{{address.name}}"
auto-focus
/>
</view>
</view>
<view class="form-item">
<view class="form-item">
<input class="input" bindinput="bindinputMobile" value="{{address.mobile}}" placeholder="手机号码"/>
<input class="input" bindinput="bindinputMobile" value="{{address.mobile}}" placeholder="手机号码"/>
</view>
</view>
<view class="form-item">
<view class="form-item">
<input class="input" bindinput="bindinputAddress" value="{{address.address}}" placeholder="详细地址"/>
<input class="input" value="{{address.provinceName + address.cityName + address.areaName}}" disabled="true" bindtap="chooseRegion" placeholder="省份、城市、区县"/>
</view>
<view class="form-item">
<input class="input" bindinput="bindinputAddress" value="{{address.address}}" placeholder="详细地址, 如街道、楼盘号等"/>
</view>
</view>
<view class="form-default">
<view class="form-default">
<text bindtap="bindIsDefault" class="default-input {{address.isDefault == 1 ? 'selected' : ''}}">设为默认地址</text>
<text bindtap="bindIsDefault" class="default-input {{address.isDefault == 1 ? 'selected' : ''}}">设为默认地址</text>
...
@@ -18,5 +21,19 @@
...
@@ -18,5 +21,19 @@
<button class="cannel" bindtap="cancelAddress">取消</button>
<button class="cannel" bindtap="cancelAddress">取消</button>
<button class="save" bindtap="saveAddress">保存</button>
<button class="save" bindtap="saveAddress">保存</button>
</view>
</view>
<view class="region-select" wx:if="{{openSelectRegion}}">
<view class="hd">
<view class="region-selected">
<view class="item {{item.id == 0 ? 'disabled' : ''}} {{(regionType -1) === index ? 'selected' : ''}}" bindtap="selectRegionType" data-region-type-index="{{index}}" wx:for="{{selectRegionList}}" wx:key="id">{{item.name}}</view>
</view>
<view class="done {{selectRegionDone ? '' : 'disabled'}}" bindtap="doneSelectRegion">确定</view>
</view>
<view class="bd">
<scroll-view scroll-y class="region-list">
<view class="item {{item.selected ? 'selected' : ''}}" bindtap="selectRegion" data-region-index="{{index}}" wx:for="{{regionList}}" wx:key="id">{{item.name}}</view>
</scroll-view>
</view>
</view>
</view>
</view>
<view class="bg-mask" bindtap="cancelSelectRegion" wx:if="{{openSelectRegion}}"></view>
<view class="bg-mask" bindtap="cancelSelectRegion" wx:if="{{openSelectRegion}}"></view>
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment