import { ScrollView, Text, View } from '@tarojs/components' import { memo, useCallback, useEffect, useRef, useState } from 'react' import classnames from 'classnames' import ReasonPopup from '../reasonPopup' import styles from './index.module.scss' import TextareaEnhance from '@/components/textareaEnhance' import Popup from '@/components/popup' import { ApplyRefundApi, RefundExplainApi } from '@/api/salesAfterOrder' import { alert } from '@/common/common' interface Param { show?: true | false onClose?: () => void orderId?: number onSuccess?: () => void } const ApplyRefund = ({ show, onClose, orderId, onSuccess }: Param) => { // 提交的数据 const submitData = useRef({ return_explain: 0, sale_order_id: 0, reason_describe: '', }) // 申请退款 const { fetchData } = ApplyRefundApi() const getApplyRefund = async() => { if (!submitData.current.return_explain) { return alert.error('请选择说明原因') } const res = await fetchData(submitData.current) if (res.success) { alert.success('申请成功') onSuccess?.() } else { alert.error('申请失败') } onClose?.() } // 获取说明数据 const [list, setList] = useState([]) const { fetchData: refundExplainFetchdata } = RefundExplainApi() const refundExplain = async() => { const res = await refundExplainFetchdata() setList(() => res.data.list) } // 备注 const getOtherReason = useCallback((val) => { submitData.current.reason_describe = val }, []) // 显示说明 const [showReason, setShowReason] = useState(false) const closeReason = useCallback(() => { setShowReason(false) }, []) const [reason, setReason] = useState({ id: 0, name: '' }) const reasonSelect = useCallback((e) => { setReason({ ...reason, name: e.name, id: e.id }) submitData.current.return_explain = e.id closeReason() }, []) // 提交 const onSubmit = (val) => { if (val == 2) { getApplyRefund() } else { onClose?.() submitData.current = { return_explain: 0, sale_order_id: 0, reason_describe: '', } } } useEffect(() => { if (show && orderId) { submitData.current.sale_order_id = orderId refundExplain() } }, [orderId, show]) return ( <> 退款说明 setShowReason(true)}> {reason.name || '请选择'} onSubmit(1)}> 取消 onSubmit(2)}> 确认 ) } export default memo(ApplyRefund)