index.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. import React, { useEffect, useState } from 'react';
  2. import { Input } from 'antd';
  3. import { useRequest, useModel } from '@umijs/max';
  4. import { queryContractCode } from '@/services/contract';
  5. function CodeField(props) {
  6. const { depId } = props;
  7. const { depList, run } = useModel('depList');
  8. const [value, setValue] = useState('');
  9. //计算合同编号接口
  10. const { run: runCode } = useRequest((data) => queryContractCode(data), {
  11. manual: true,
  12. onSuccess: (data) => {
  13. setValue(data?.code);
  14. },
  15. });
  16. useEffect(() => {
  17. run();
  18. }, []);
  19. useEffect(() => {
  20. if (!depId) return;
  21. const dep_code = getDepItemById(depId)?.Code;
  22. const compony = depList.find((item) => item.Flag == 1);
  23. let params = {
  24. company_id: compony?.ID,
  25. company_code: compony?.Code,
  26. dep_code,
  27. };
  28. runCode(params);
  29. }, [depId, depList]);
  30. const getDepItemById = (id) => {
  31. const fun = (list) => {
  32. for (let i = 0; i < list.length; i++) {
  33. let item = list[i];
  34. if (item.ID == id) {
  35. return item;
  36. } else if (item.children?.length > 0) {
  37. let res = fun(item.children);
  38. if (res) return res;
  39. }
  40. }
  41. };
  42. return fun(depList);
  43. };
  44. return <Input value={value} placeholder="选择部门后自动生成" disabled />;
  45. }
  46. export default CodeField;