--地址管理完成
This commit is contained in:
parent
072e818279
commit
edde094dc4
@ -32,3 +32,25 @@ import { useRequest } from "@/use/useHttp"
|
|||||||
method: "get",
|
method: "get",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地址编辑
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const addressEditApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/address`,
|
||||||
|
method: "put",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地址删除
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
export const addressDeleteApi = () => {
|
||||||
|
return useRequest({
|
||||||
|
url: `/v1/mall/address`,
|
||||||
|
method: "delete",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发
|
export const BASE_URL = `http://192.168.1.30:40001/lymarket` // 发
|
||||||
// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境
|
// export const BASE_URL = `https://dev.zzfzyc.com/lymarket` // 开发环境
|
||||||
// export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境
|
// export const BASE_URL = `https://www.zzfzyc.com/lymarket` // 正式环境
|
||||||
// export const BASE_URL = `http://192.168.1.165:40001/lymarket` // 王霞
|
// export const BASE_URL = `http://192.168.1.4:40001/lymarket` // 王霞
|
||||||
// export const BASE_URL = `http://192.168.1.224:50002/lymarket` // 添
|
// export const BASE_URL = `http://192.168.1.224:50002/lymarket` // 添
|
||||||
|
|
||||||
// CDN
|
// CDN
|
||||||
|
@ -22,6 +22,9 @@
|
|||||||
border: 1px solid #68b4ff;
|
border: 1px solid #68b4ff;
|
||||||
box-shadow: 0px 0px 10px 0px rgba(0,122,255,0.27);
|
box-shadow: 0px 0px 10px 0px rgba(0,122,255,0.27);
|
||||||
}
|
}
|
||||||
|
.address-list:first-child{
|
||||||
|
margin-top: 0;
|
||||||
|
}
|
||||||
.address-list:last-child{
|
.address-list:last-child{
|
||||||
margin-bottom: 300px;
|
margin-bottom: 300px;
|
||||||
}
|
}
|
||||||
|
@ -2,7 +2,9 @@
|
|||||||
import { Button, Navigator, ScrollView, Text, View } from "@tarojs/components"
|
import { Button, Navigator, ScrollView, Text, View } from "@tarojs/components"
|
||||||
import { memo, useEffect, useState } from "react"
|
import { memo, useEffect, useState } from "react"
|
||||||
import "./index.scss"
|
import "./index.scss"
|
||||||
import {addressListApi} from "@/api/addressManager"
|
import {addressListApi,addressDeleteApi} from "@/api/addressManager"
|
||||||
|
import { alert } from "@/common/common"
|
||||||
|
import Taro, { showModal } from "@tarojs/taro"
|
||||||
|
|
||||||
interface Params{
|
interface Params{
|
||||||
refresherEnabled?: boolean,//是否开启刷新
|
refresherEnabled?: boolean,//是否开启刷新
|
||||||
@ -33,8 +35,12 @@ const AddressList = memo((props:Params)=>{
|
|||||||
}
|
}
|
||||||
useEffect(()=>{
|
useEffect(()=>{
|
||||||
getData();
|
getData();
|
||||||
|
// 监听刷新
|
||||||
|
Taro.eventCenter.on("addressList:refresh", getData);
|
||||||
|
return ()=>{
|
||||||
|
Taro.eventCenter.off("addressList:refresh", getData);
|
||||||
|
}
|
||||||
},[])
|
},[])
|
||||||
|
|
||||||
// 处理刷新
|
// 处理刷新
|
||||||
const [refreshState, setRefreshState] = useState(false);
|
const [refreshState, setRefreshState] = useState(false);
|
||||||
const handleRefresh = async ()=>{
|
const handleRefresh = async ()=>{
|
||||||
@ -52,6 +58,25 @@ const AddressList = memo((props:Params)=>{
|
|||||||
setFocusId(item?.id);
|
setFocusId(item?.id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 删除地址
|
||||||
|
const {fetchData: deleteFetch} = addressDeleteApi()
|
||||||
|
const handleDelete = (item:any)=>{
|
||||||
|
showModal(({
|
||||||
|
title: "提示",
|
||||||
|
content: "是否删除地址?",
|
||||||
|
async success(ev){
|
||||||
|
if(ev.confirm){
|
||||||
|
const result = await deleteFetch({id:item.id});
|
||||||
|
if(result.success){
|
||||||
|
alert.success("删除成功");
|
||||||
|
getData();
|
||||||
|
}else{
|
||||||
|
alert.success(result.msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}))
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View className="address-scroll-view">
|
<View className="address-scroll-view">
|
||||||
@ -62,7 +87,7 @@ const AddressList = memo((props:Params)=>{
|
|||||||
// data.length>0?
|
// data.length>0?
|
||||||
// data.map((item,index)=>{
|
// data.map((item,index)=>{
|
||||||
return(
|
return(
|
||||||
<View onClick={()=>handleSelect(item,index)} className={`address-list ${focusId==item.id&&'address-active'}`}>
|
<View onLongPress={()=>handleDelete(item)} onClick={()=>handleSelect(item,index)} className={`address-list ${focusId==item.id&&'address-active'}`}>
|
||||||
<View className="address-user">
|
<View className="address-user">
|
||||||
{item.name}
|
{item.name}
|
||||||
{
|
{
|
||||||
@ -75,7 +100,7 @@ const AddressList = memo((props:Params)=>{
|
|||||||
{/* **省**市**区**街道****仓库 */}
|
{/* **省**市**区**街道****仓库 */}
|
||||||
{item.province_name+item.city_name+item.district_name} {item.address_detail}
|
{item.province_name+item.city_name+item.district_name} {item.address_detail}
|
||||||
{
|
{
|
||||||
item.is_default&&<Text className="address-list-phone">{item.phone}</Text>
|
item.is_default&&<Text className="address-list-phone">{item.phone.replace(item.phone.substring(3,7), "****")}</Text>
|
||||||
}
|
}
|
||||||
</View>
|
</View>
|
||||||
<Navigator url={`/pages/addressAdd/index?type=edit&id=${item.id}`} hoverClass="none" className="address-edit">
|
<Navigator url={`/pages/addressAdd/index?type=edit&id=${item.id}`} hoverClass="none" className="address-edit">
|
||||||
|
@ -6,7 +6,7 @@ import { Button, Input, Text, Textarea, View } from "@tarojs/components"
|
|||||||
import Taro, { setNavigationBarTitle, useRouter } from "@tarojs/taro"
|
import Taro, { setNavigationBarTitle, useRouter } from "@tarojs/taro"
|
||||||
import { useEffect, useState } from "react"
|
import { useEffect, useState } from "react"
|
||||||
import "./index.scss"
|
import "./index.scss"
|
||||||
import {addressAddApi, addressDetailApi} from "@/api/addressManager"
|
import {addressAddApi, addressDetailApi,addressEditApi} from "@/api/addressManager"
|
||||||
|
|
||||||
export default ()=>{
|
export default ()=>{
|
||||||
const [showSiteModal, setShowSiteModal] = useState(false);
|
const [showSiteModal, setShowSiteModal] = useState(false);
|
||||||
@ -15,7 +15,7 @@ export default ()=>{
|
|||||||
if(type=="add"){
|
if(type=="add"){
|
||||||
setNavigationBarTitle({title:"新增收货地址"})
|
setNavigationBarTitle({title:"新增收货地址"})
|
||||||
}else{
|
}else{
|
||||||
// initalFormData();
|
initalFormData();
|
||||||
setNavigationBarTitle({title:"编辑收货地址"})
|
setNavigationBarTitle({title:"编辑收货地址"})
|
||||||
}
|
}
|
||||||
},[])
|
},[])
|
||||||
@ -23,19 +23,24 @@ export default ()=>{
|
|||||||
const {fetchData: getFromData} = addressDetailApi()
|
const {fetchData: getFromData} = addressDetailApi()
|
||||||
const initalFormData = async ()=>{
|
const initalFormData = async ()=>{
|
||||||
const detail = await getFromData({id});
|
const detail = await getFromData({id});
|
||||||
const siteArray = []
|
const { province_id,province_name,city_id,city_name,district_id,district_name } = detail.data;
|
||||||
// setFormData({
|
const siteArray = [{id: province_id, name: province_name}];
|
||||||
// name: detail.data.name,
|
city_id&&siteArray.push({id: city_id, name: city_name});
|
||||||
// phone: detail.data.phone,
|
district_id&&siteArray.push({id: district_id, name: district_name});
|
||||||
// site: detail.data.,
|
setFormData({
|
||||||
// siteArray: [],
|
name: detail.data.name,
|
||||||
// district_id: detail.data.district_id,
|
phone: detail.data.phone,
|
||||||
// address_detail: detail.data.address_detail,
|
site: siteArray.map(item=>item.name).join(" "),
|
||||||
// is_default: false
|
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({
|
const [formData, setFormData] = useState({
|
||||||
name: "",
|
name: "",
|
||||||
@ -44,7 +49,8 @@ export default ()=>{
|
|||||||
siteArray: [],
|
siteArray: [],
|
||||||
district_id:"",
|
district_id:"",
|
||||||
address_detail: "",
|
address_detail: "",
|
||||||
is_default: false
|
is_default: false,
|
||||||
|
id: 0
|
||||||
})
|
})
|
||||||
const rules = {
|
const rules = {
|
||||||
name: [{
|
name: [{
|
||||||
@ -62,20 +68,27 @@ export default ()=>{
|
|||||||
}
|
}
|
||||||
const handleSave = ()=>{
|
const handleSave = ()=>{
|
||||||
retrieval(formData, rules).then(async ()=>{
|
retrieval(formData, rules).then(async ()=>{
|
||||||
const result = await fetchData({
|
const result = type=="add"?await fetchData({
|
||||||
name: formData.name,
|
name: formData.name,
|
||||||
phone:formData.phone,
|
phone:formData.phone,
|
||||||
site:formData.site,
|
|
||||||
district_id:formData.district_id,
|
district_id:formData.district_id,
|
||||||
address_detail: formData.address_detail,
|
address_detail: formData.address_detail,
|
||||||
is_default: formData.is_default
|
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){
|
if(result.success){
|
||||||
alert.success("保存成功")
|
Taro.eventCenter.trigger("addressList:refresh");
|
||||||
|
Taro.navigateBack();
|
||||||
|
alert.success("保存成功");
|
||||||
}else{
|
}else{
|
||||||
alert.error(result.msg);
|
alert.error(result.msg);
|
||||||
}
|
}
|
||||||
// Taro.navigateBack();
|
|
||||||
}).catch((message)=>{
|
}).catch((message)=>{
|
||||||
alert.none(message)
|
alert.none(message)
|
||||||
})
|
})
|
||||||
@ -89,8 +102,6 @@ export default ()=>{
|
|||||||
},[formData])
|
},[formData])
|
||||||
// 设置选择地址
|
// 设置选择地址
|
||||||
const handleSetSite = (ev:any)=>{
|
const handleSetSite = (ev:any)=>{
|
||||||
console.log(ev);
|
|
||||||
|
|
||||||
if(ev.length>=3){
|
if(ev.length>=3){
|
||||||
setFormData({
|
setFormData({
|
||||||
...formData,
|
...formData,
|
||||||
@ -123,7 +134,7 @@ export default ()=>{
|
|||||||
<Button style={{"background": hozon?'#007aff':''}} hoverClass="none" className={`add-address-save`} onClick={handleSave}>
|
<Button style={{"background": hozon?'#007aff':''}} hoverClass="none" className={`add-address-save`} onClick={handleSave}>
|
||||||
保存
|
保存
|
||||||
</Button>
|
</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>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user