useFollow.js 1.2KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { useEffect, useRef, useState } from 'react'
  2. import Taro from '@tarojs/taro'
  3. import { getFollowRecord, addFollowRecord } from '@/services/person'
  4. export default function useFollow(customer) {
  5. const [submitting, setSubmitting] = useState(false)
  6. const [followList, setFollowList] = useState([])
  7. const queryRef = useRef()
  8. queryRef.current = () => {
  9. getFollowRecord({
  10. pageNumber: 1,
  11. pageSize: 100,
  12. customerId: customer.customerId,
  13. recordType: '跟进',
  14. }).then((res) => {
  15. const { records } = res
  16. setFollowList(records || [])
  17. })
  18. }
  19. const addFollow = (data) => {
  20. const payload = {
  21. recordType: '添加跟进',
  22. recordContent: data,
  23. customerSex: customer.sex,
  24. customerId: customer.customerId,
  25. }
  26. setSubmitting(true)
  27. addFollowRecord(payload).then((res) => {
  28. Taro.showToast({
  29. title: '添加成功',
  30. icon: 'none',
  31. })
  32. setFollowList([res].concat(followList))
  33. setSubmitting(false)
  34. }).catch(() => setSubmitting(false))
  35. }
  36. useEffect(() => {
  37. if (customer.customerId) {
  38. queryRef.current()
  39. }
  40. }, [customer?.customerId])
  41. return [followList, submitting, addFollow]
  42. }