Assigned.jsx 2.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import React from 'react';
  2. import Taro from '@tarojs/taro';
  3. import { View } from '@tarojs/components';
  4. import { Button, Dialog } from '@antmjs/vantui';
  5. import OrgPicker from "@/components/OrgPicker";
  6. import { postIssueAssignedAgain, putTaIssue, copyTaIssue } from '@/services/taissue';
  7. import { warn } from '@/utils/message';
  8. export default (props) => {
  9. const { issue } = props;
  10. const formDataRef = React.useRef();
  11. const dialogId = React.useMemo(() => `dialog-${Math.random().toString(36).substring(2, 7)}`, []);
  12. const [loading1, setLoading1] = React.useState(false);
  13. const [loading2, setLoading2] = React.useState(false);
  14. const [showOrgPicker, setShowOrgPicker] = React.useState(false);
  15. // 交办
  16. const onAssigned = () => {
  17. try {
  18. // warn(!formData.addr, '请填写地址')
  19. // warn(!formData.locId, '请选择点位')
  20. // warn(!formData.content, '请填写问题描述')
  21. // warn(!formData.typeId, '请选择问题分类')
  22. // warn(!formData.attachList || formData.attachList.length < 1, '请上传照片')
  23. warn(!formDataRef.current?.orgId, '请选择交办单位')
  24. // warn(!formData.expireDate, '请选择办结时间')
  25. } catch (e) {
  26. return;
  27. }
  28. setLoading1(true)
  29. const data = { ...issue, ...(formDataRef.current || {}) };
  30. // 先提交修改
  31. putTaIssue(issue.issueId, data).then(() => {
  32. // 再提交交办
  33. postIssueAssignedAgain({ ...data, nextOrg: data.orgId }).then(() => {
  34. setLoading1(false);
  35. Taro.navigateBack({ delta: 1 });
  36. }).catch(() => {
  37. setLoading1(false);
  38. })
  39. }).catch(() => {
  40. setLoading1(false);
  41. })
  42. }
  43. const onOrgChange = (_, it) => {
  44. const data = {
  45. ...(formDataRef.current || {}),
  46. orgId: it.orgId,
  47. orgName: it.name,
  48. };
  49. formDataRef.current = data;
  50. setShowOrgPicker(false);
  51. onAssigned();
  52. };
  53. return (
  54. <View style={{ marginTop: '20px', display: 'flex' }}>
  55. <Dialog id={dialogId} />
  56. <OrgPicker
  57. parentId={issue.orgId}
  58. show={showOrgPicker}
  59. value={formDataRef.current?.orgName}
  60. onCancel={() => setShowOrgPicker(false)}
  61. onChange={onOrgChange}
  62. />
  63. <Button
  64. block
  65. type="primary"
  66. loading={loading1}
  67. onClick={() => setShowOrgPicker(true)}
  68. >交办</Button>
  69. </View>
  70. )
  71. }