Blame view

src/pages/approval/PreSetting/components/CreateItem.tsx 4.44 KB
07a3f34f   赵凤   审批配置-》预设条件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  import React, { useState, useEffect } from "react";
  import { Input, Select, Modal, Form, message, Tooltip } from "antd";
  import { Condition_Type, Judge_Rule1, Judge_Rule2 } from "../entity";
  import _ from "lodash";
  import { systemListApi } from "@/pages/admin/Privilege/api";
  import usePagination from "@/hooks/usePagination";
  import { getAllRoleCodeApi } from "@/common/api";
  import useInitial from "@/hooks/useInitail";
  import { saveApproveCondition } from "../api";
  
  const { Option } = Select;
  const layout = {
    labelCol: { span: 4 },
    wrapperCol: { span: 20 },
  };
  interface Props {
07a3f34f   赵凤   审批配置-》预设条件
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
    item: PreSetting.Item;
    setItem: any;
    approvalConfigId: number;
    setListLoading: any;
  }
  
  export default function CreateItem({
   item,
   setItem,
    approvalConfigId,
    setListLoading,
  }: Props) {
    const [form] = Form.useForm();
    const {visible, id, currentItem} = item;
    const [conditionType, setConditionType] = useState<number>();
    const [loading, setLoading] = useState(false);
07a3f34f   赵凤   审批配置-》预设条件
33
34
35
  
    useEffect(() => {
      if (visible&& id) {
07a3f34f   赵凤   审批配置-》预设条件
36
37
38
          currentItem?.type&& setConditionType(currentItem.type);
         form.setFieldsValue({ ...currentItem });
      }
07a3f34f   赵凤   审批配置-》预设条件
39
40
41
42
43
44
    }, [visible]);
  
    const onFinish = () => {
      form
        .validateFields()
        .then((fileds) => {
07a3f34f   赵凤   审批配置-》预设条件
45
46
47
48
49
50
51
52
53
54
          const pa = {
            ...fileds,
            id: id || undefined,
            approvalConfigId,
          };
          setLoading(true);
          saveApproveCondition(pa)
            .then((res) => {
              message.success("保存成功");
              setItem({visible: false});
07a3f34f   赵凤   审批配置-》预设条件
55
              setListLoading(true);
07a3f34f   赵凤   审批配置-》预设条件
56
57
58
59
60
61
62
63
64
65
            })
            .catch((err) => message.error(err.message))
            .finally(() => {
              setLoading(false);
            });
        })
        .catch((err) => message.error(err.message));
    };
    return (
      <Modal
60c0e139   赵凤   审批
66
        title={`${id?'编辑':'新增'}预设条件`}
07a3f34f   赵凤   审批配置-》预设条件
67
        visible={visible}
60c0e139   赵凤   审批
68
        onCancel={() => setItem({ visible: false })}
07a3f34f   赵凤   审批配置-》预设条件
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
        onOk={() => form.submit()}
        confirmLoading={loading}
        afterClose={() => form.resetFields()}
      >
        <Form {...layout} form={form} name="control-hooks" onFinish={onFinish}>
          <Form.Item
            name="name"
            label="条件名称"
            rules={[{ required: true, message: "请输入预设条件名称" }]}
          >
            <Input placeholder="请输入" maxLength={8} />
          </Form.Item>
          <Form.Item
            name="paramName"
            label="参数名称"
            rules={[{ required: true, message: "请输入参数名称" }]}
          >
            <Input placeholder="请输入" maxLength={16} />
          </Form.Item>
          <Form.Item
            name="type"
            label="条件类型"
            rules={[{ required: true, message: "请选择条件类型" }]}
          >
            <Select
              placeholder="请选择"
              onChange={(value) => {
07a3f34f   赵凤   审批配置-》预设条件
96
                setConditionType(value);
60c0e139   赵凤   审批
97
                // 条件类型改变,清空单位和判断规则
60c0e139   赵凤   审批
98
99
100
                form.setFields([{ name: "unit", value: undefined, errors: undefined },
              { name: "judgeRule", value: undefined, errors: undefined }
            ]);
07a3f34f   赵凤   审批配置-》预设条件
101
102
103
104
105
106
107
108
109
110
111
112
              }}
            >
              {Condition_Type.map((item) => (
                <Option value={item.value} key={item.value}>
                  {item.label}
                </Option>
              ))}
            </Select>
          </Form.Item>
  
          <Form.Item
            noStyle
0fb75a0d   赵凤   删除多余代码
113
            shouldUpdate={(prevValues, currentValues) => prevValues.type !== currentValues.type}
07a3f34f   赵凤   审批配置-》预设条件
114
          >
0fb75a0d   赵凤   删除多余代码
115
116
117
118
119
            {({ getFieldValue }) => ([1, 2].includes(getFieldValue("type")) ? (
              <Form.Item name="unit" label="单位" rules={[{ required: true }]}>
                <Input placeholder="请输入单位" maxLength={4} />
              </Form.Item>
              ) : null)}
07a3f34f   赵凤   审批配置-》预设条件
120
121
122
123
124
125
126
127
128
129
          </Form.Item>
          {conditionType && (
            <Form.Item
              name="judgeRule"
              label="判断规则"
              rules={[{ required: true, message: "请选择判断规则" }]}
            >
              <Select placeholder="请选择">
                {[1, 2].includes(conditionType)
                  ? Judge_Rule1.map((item) => (
0fb75a0d   赵凤   删除多余代码
130
131
132
                    <Option value={item.value} key={item.value}>
                      {item.label}
                    </Option>
07a3f34f   赵凤   审批配置-》预设条件
133
134
                    ))
                  : Judge_Rule2.map((item) => (
0fb75a0d   赵凤   删除多余代码
135
136
137
                    <Option value={item.value} key={item.value}>
                      {item.label}
                    </Option>
07a3f34f   赵凤   审批配置-》预设条件
138
139
140
141
142
143
144
145
                    ))}
              </Select>
            </Form.Item>
          )}
        </Form>
      </Modal>
    );
  }