--地址管理完成

This commit is contained in:
li tong bao
2022-05-18 18:22:17 +08:00
parent 072e818279
commit edde094dc4
5 changed files with 87 additions and 26 deletions
+32 -21
View File
@@ -6,7 +6,7 @@ import { Button, Input, Text, Textarea, View } from "@tarojs/components"
import Taro, { setNavigationBarTitle, useRouter } from "@tarojs/taro"
import { useEffect, useState } from "react"
import "./index.scss"
import {addressAddApi, addressDetailApi} from "@/api/addressManager"
import {addressAddApi, addressDetailApi,addressEditApi} from "@/api/addressManager"
export default ()=>{
const [showSiteModal, setShowSiteModal] = useState(false);
@@ -15,7 +15,7 @@ export default ()=>{
if(type=="add"){
setNavigationBarTitle({title:"新增收货地址"})
}else{
// initalFormData();
initalFormData();
setNavigationBarTitle({title:"编辑收货地址"})
}
},[])
@@ -23,19 +23,24 @@ export default ()=>{
const {fetchData: getFromData} = addressDetailApi()
const initalFormData = async ()=>{
const detail = await getFromData({id});
const siteArray = []
// setFormData({
// name: detail.data.name,
// phone: detail.data.phone,
// site: detail.data.,
// siteArray: [],
// district_id: detail.data.district_id,
// address_detail: detail.data.address_detail,
// is_default: false
// })
const { province_id,province_name,city_id,city_name,district_id,district_name } = detail.data;
const siteArray = [{id: province_id, name: province_name}];
city_id&&siteArray.push({id: city_id, name: city_name});
district_id&&siteArray.push({id: district_id, name: district_name});
setFormData({
name: detail.data.name,
phone: detail.data.phone,
site: siteArray.map(item=>item.name).join(" "),
siteArray: siteArray as any,
district_id: detail.data.district_id,
address_detail: detail.data.address_detail,
is_default: detail.data.is_default,
id: detail.data.id,
})
}
const {fetchData, state} = addressAddApi()
const {fetchData} = addressAddApi()
const {fetchData: editFetch} = addressEditApi()
// 保存
const [formData, setFormData] = useState({
name: "",
@@ -44,7 +49,8 @@ export default ()=>{
siteArray: [],
district_id:"",
address_detail: "",
is_default: false
is_default: false,
id: 0
})
const rules = {
name: [{
@@ -62,20 +68,27 @@ export default ()=>{
}
const handleSave = ()=>{
retrieval(formData, rules).then(async ()=>{
const result = await fetchData({
const result = type=="add"?await fetchData({
name: formData.name,
phone:formData.phone,
site:formData.site,
district_id:formData.district_id,
address_detail: formData.address_detail,
is_default: formData.is_default
}):await editFetch({
name: formData.name,
phone:formData.phone,
district_id:formData.district_id,
address_detail: formData.address_detail,
is_default: formData.is_default,
id: formData.id
});
if(result.success){
alert.success("保存成功")
Taro.eventCenter.trigger("addressList:refresh");
Taro.navigateBack();
alert.success("保存成功");
}else{
alert.error(result.msg);
}
// Taro.navigateBack();
}).catch((message)=>{
alert.none(message)
})
@@ -89,8 +102,6 @@ export default ()=>{
},[formData])
// 设置选择地址
const handleSetSite = (ev:any)=>{
console.log(ev);
if(ev.length>=3){
setFormData({
...formData,
@@ -123,7 +134,7 @@ export default ()=>{
<Button style={{"background": hozon?'#007aff':''}} hoverClass="none" className={`add-address-save`} onClick={handleSave}>
保存
</Button>
<Address addressOnSelect={handleSetSite} defaultValue={[ {name: "广东省", id: 193, level: 2}, {name: "佛山市", id: 202, level:3}, {name: "高明区", id: 204, level:4}]} addressOnClose={()=>setShowSiteModal(false)} show={showSiteModal}/>
<Address addressOnSelect={handleSetSite} defaultValue={formData.siteArray} addressOnClose={()=>setShowSiteModal(false)} show={showSiteModal}/>
</View>
)
}