diff --git a/src/pages/addressAdd/index.tsx b/src/pages/addressAdd/index.tsx index 59b1de6..360b277 100644 --- a/src/pages/addressAdd/index.tsx +++ b/src/pages/addressAdd/index.tsx @@ -1,38 +1,37 @@ +import { alert, retrieval } from '@/common/common' +import Address from '@/components/address' +import FromList from '@/components/FromList' +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, addressEditApi } from '@/api/addressManager' +import useLogin from '@/use/useLogin' -import { alert, retrieval } from "@/common/common" -import Address from "@/components/address" -import FromList from "@/components/FromList" -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,addressEditApi} from "@/api/addressManager" -import useLogin from "@/use/useLogin" - -export default ()=>{ +export default () => { useLogin() - const [showSiteModal, setShowSiteModal] = useState(false); - const {type,id} = useRouter().params; - useEffect(()=>{ - if(type=="add"){ - setNavigationBarTitle({title:"新增收货地址"}) - }else{ - initalFormData(); - setNavigationBarTitle({title:"编辑收货地址"}) + const [showSiteModal, setShowSiteModal] = useState(false) + const { type, id } = useRouter().params + useEffect(() => { + if (type == 'add') { + setNavigationBarTitle({ title: '新增收货地址' }) + } else { + initalFormData() + setNavigationBarTitle({ title: '编辑收货地址' }) } - },[]) + }, []) // 获取编辑地址信息 - const {fetchData: getFromData} = addressDetailApi() - const initalFormData = async ()=>{ - const detail = await getFromData({id}); - 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}); + const { fetchData: getFromData } = addressDetailApi() + const initalFormData = async () => { + const detail = await getFromData({ id }) + 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(" "), + site: siteArray.map((item) => item.name).join(' '), siteArray: siteArray as any, district_id: detail.data.district_id, address_detail: detail.data.address_detail, @@ -40,105 +39,141 @@ export default ()=>{ id: detail.data.id, }) } - - const {fetchData} = addressAddApi() - const {fetchData: editFetch} = addressEditApi() + + const { fetchData } = addressAddApi() + const { fetchData: editFetch } = addressEditApi() // 保存 const [formData, setFormData] = useState({ - name: "", - phone:"", - site:"", + name: '', + phone: '', + site: '', siteArray: [], - district_id:"", - address_detail: "", + district_id: '', + address_detail: '', is_default: false, - id: 0 + id: 0, }) const rules = { - name: [{ - message: "请输入正确收货人姓名", - // validator: (value:any, rule:any)=>{ // 自定义验证,返回true表示匹配到了(错误) - // return value.length>5; - // } - }], - phone: [{ - message: "请输入正确的电话号码", regex: /^1[3|5|6|9|2|8|7]\d{9}$/ - }], - district_id: [{ - message: "请选择地址" - }], - address_detail: [{ - message: "请输入详细地址" - }], + name: [ + { + message: '请输入正确收货人姓名', + // validator: (value:any, rule:any)=>{ // 自定义验证,返回true表示匹配到了(错误) + // return value.length>5; + // } + }, + ], + phone: [ + { + message: '请输入正确的电话号码', + regex: /^1[3|5|6|9|2|8|7]\d{9}$/, + }, + ], + district_id: [ + { + message: '请选择地址', + }, + ], + address_detail: [ + { + message: '请输入详细地址', + }, + ], } - const handleSave = ()=>{ - retrieval(formData, rules).then(async ()=>{ - const result = type=="add"?await fetchData({ - name: formData.name, - phone:formData.phone, - 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){ - Taro.eventCenter.trigger("addressList:refresh"); - Taro.navigateBack(); - alert.success("保存成功"); - }else{ - alert.error(result.msg); - } - }).catch((message)=>{ - alert.none(message) - }) + const handleSave = () => { + retrieval(formData, rules) + .then(async () => { + const result = + type == 'add' + ? await fetchData({ + name: formData.name, + phone: formData.phone, + 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) { + Taro.eventCenter.trigger('addressList:refresh') + Taro.navigateBack() + alert.success('保存成功') + } else { + alert.error(result.msg) + } + }) + .catch((message) => { + alert.none(message) + }) } // 监听表单完善 - const [hozon, setHozon] = useState(false); - useEffect(()=>{ - if(retrieval){ - retrieval(formData).then(()=>setHozon(true)).catch(()=>setHozon(false)) + const [hozon, setHozon] = useState(false) + useEffect(() => { + if (retrieval) { + retrieval(formData) + .then(() => setHozon(true)) + .catch(() => setHozon(false)) } - },[formData]) + }, [formData]) // 设置选择地址 - const handleSetSite = (ev:any)=>{ - if(ev.length > 0){ + const handleSetSite = (ev: any) => { + if (ev.length > 0) { setFormData({ ...formData, siteArray: ev, - site: ev.map(item=>item.name+" "), - district_id: ev[ev.length-1]?.id + site: ev.map((item) => item.name + ' '), + district_id: ev[ev.length - 1]?.id, }) - }else{ - alert.error("请选择地址"); + } else { + alert.error('请选择地址') } } return ( - - setFormData({...formData,name:ev.detail.value})} value={formData["name"]} label="联系人" placeholder="请输入收货人姓名"/> - setFormData({...formData,phone:ev.detail.value})} value={formData["phone"]} label="联系方式" placeholder="请输入联系方式"/> - setShowSiteModal(true)} label="收货地址" type="select" placeholder="请选择/省/市/区"/> - setFormData({...formData,address_detail:ev.detail.value})} value={formData["address_detail"]} label="详细地址" type="textarea" placeholder="请输入详细地址(街道、门牌号等)"/> - + + setFormData({ ...formData, name: ev.detail.value })} + value={formData['name']} + label='联系人' + placeholder='请输入收货人姓名' + /> + setFormData({ ...formData, phone: ev.detail.value })} + value={formData['phone']} + label='联系方式' + placeholder='请输入联系方式' + /> + setShowSiteModal(true)} label='收货地址' type='select' placeholder='请选择/省/市/区' /> + setFormData({ ...formData, address_detail: ev.detail.value })} + value={formData['address_detail']} + label='详细地址' + type='textarea' + placeholder='请输入详细地址(街道、门牌号等)' + /> + 设为默认地址 - setFormData({...formData ,is_default: !formData.is_default})}> - { - formData.is_default? - : - } + setFormData({ ...formData, is_default: !formData.is_default })}> + {formData.is_default ? ( + + + + ) : ( + + )} - - -
setShowSiteModal(false)} show={showSiteModal}/> +
setShowSiteModal(false)} show={showSiteModal} /> ) } diff --git a/src/pages/details/components/orderCount/index.tsx b/src/pages/details/components/orderCount/index.tsx index 39b37fd..41e3f13 100644 --- a/src/pages/details/components/orderCount/index.tsx +++ b/src/pages/details/components/orderCount/index.tsx @@ -43,9 +43,9 @@ export default memo(({ show = false, onClose, title = '', productId = 0 }: param //重置数据 useEffect(() => { - // const newList = initList(list) + const newList = initList(list) startTransition(() => { - // setList([...newList]) + setList([...newList]) }) condition.current.code_or_name = null setSearchShow(false) @@ -199,18 +199,6 @@ export default memo(({ show = false, onClose, title = '', productId = 0 }: param setSearchShow(false) } - //格式化金额 - const formatPrice = (item) => { - return Number(formatPriceDiv(item[selectList[selectIndex].priceField])) - // return ( - // - // ¥ - // {price} - // /{selectList[selectIndex].eunit} - // - // ) - } - //显示图片弹窗 const [showLabImage, setShowLabImage] = useState(false) const [labImageValue, setLabImageValue] = useState() @@ -222,47 +210,6 @@ export default memo(({ show = false, onClose, title = '', productId = 0 }: param setShowLabImage(() => false) }, []) - //虚拟滚动 - // const Rows = memo(({ id, index, style, data }: any) => { - // let item = data[index] - // return ( - // <> - // {(item && ( - // - // - // - // - // - // {formatHashTag(item.code, item.name)} - // {formatPrice(item)} - // - // - // {(!item.show && ( - // onAdd(item)}> - // 添加 - // - // )) || ( - // - // - // - // )} - // - // - // )) || } - // - // ) - // }) - return ( closePopup()}> @@ -344,20 +291,6 @@ export default memo(({ show = false, onClose, title = '', productId = 0 }: param })} - - // - // - // {Rows} - // - // - // )} {list.length <= 0 && !colorState.loading && 暂无此商品}