准入供应商以及名称联动
This commit is contained in:
@ -1,17 +1,16 @@
|
|||||||
import React, { useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import { Modal, Form, Select, Button, Tree, message, DatePicker, Radio, Upload, Input } from 'antd';
|
import { Modal, Form, Button, Tree, message, DatePicker, Radio, Upload, Input } from 'antd';
|
||||||
import { UploadOutlined } from '@ant-design/icons';
|
import { UploadOutlined } from '@ant-design/icons';
|
||||||
import type { UploadFile } from 'antd/es/upload/interface';
|
import type { UploadFile } from 'antd/es/upload/interface';
|
||||||
//组件
|
//组件
|
||||||
import SupplierSelector from './SupplierSelector';
|
import SupplierSelector from './SupplierSelector';
|
||||||
import ReviewerSelector from './ReviewerSelector';
|
import ReviewerSelector from './ReviewerSelector';
|
||||||
import DivisionModal from './DivisionModal';
|
import DivisionModal from './DivisionModal';
|
||||||
|
import AccessDepartmentSelect from '@/components/AccessDepartmentSelect';
|
||||||
// 请求
|
// 请求
|
||||||
import { categoryTree, add, uploadFile } from '../services';
|
import { categoryTree, add, uploadFile } from '../services';
|
||||||
|
|
||||||
import AccessDepartmentSelect from '@/components/AccessDepartmentSelect';
|
|
||||||
|
|
||||||
const { Option } = Select;
|
|
||||||
const { RangePicker } = DatePicker;
|
const { RangePicker } = DatePicker;
|
||||||
//selected 类型
|
//selected 类型
|
||||||
interface Reviewer {
|
interface Reviewer {
|
||||||
@ -30,17 +29,15 @@ interface ReviewerSelectorData {
|
|||||||
const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ visible, onCancel }) => {
|
const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ visible, onCancel }) => {
|
||||||
|
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
|
//名称输入
|
||||||
|
const [accessWorkNameEdited, setAccessWorkNameEdited] = useState(false);
|
||||||
//品类选择
|
//品类选择
|
||||||
const [checkedKeys, setCheckedKeys] = useState<React.Key[]>([]);
|
const [checkedKeys, setCheckedKeys] = useState<React.Key[]>([]);
|
||||||
//供应商
|
|
||||||
const [selectedSuppliers, setSelectedSuppliers] = useState<any[]>([]);
|
|
||||||
// 选择评审人员
|
// 选择评审人员
|
||||||
const [selectedReviewers, setSelectedReviewers] = useState<ReviewerSelectorData>({
|
const [selectedReviewers, setSelectedReviewers] = useState<ReviewerSelectorData>({
|
||||||
selected: [],
|
selected: [],
|
||||||
leader: null,
|
leader: null,
|
||||||
});
|
});
|
||||||
//评审分工
|
|
||||||
const [divisionData, setDivisionData] = useState<any[]>([]);
|
|
||||||
//准入方式
|
//准入方式
|
||||||
const [admissionMethod, setAdmissionMethod] = useState<string>('online');
|
const [admissionMethod, setAdmissionMethod] = useState<string>('online');
|
||||||
//供应商符合性审查
|
//供应商符合性审查
|
||||||
@ -91,8 +88,6 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
|
|
||||||
setCheckedKeys(keys); // UI 显示用,还是全量
|
setCheckedKeys(keys); // UI 显示用,还是全量
|
||||||
form.setFieldsValue({ categoryIds: onlyLeafChecked }); // 只存叶子到表单
|
form.setFieldsValue({ categoryIds: onlyLeafChecked }); // 只存叶子到表单
|
||||||
// setCheckedKeys(keys);
|
|
||||||
// form.setFieldsValue({ categoryIds: keys });
|
|
||||||
};
|
};
|
||||||
// 选择准入方式
|
// 选择准入方式
|
||||||
const onMethodChange = (e: any) => {
|
const onMethodChange = (e: any) => {
|
||||||
@ -108,7 +103,6 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
supplierCompliance: undefined,
|
supplierCompliance: undefined,
|
||||||
});
|
});
|
||||||
setSelectedReviewers({ selected: [], leader: null, });
|
setSelectedReviewers({ selected: [], leader: null, });
|
||||||
setDivisionData([]);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -219,9 +213,7 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
message.success('创建成功');
|
message.success('创建成功');
|
||||||
form.resetFields();
|
form.resetFields();
|
||||||
setCheckedKeys([]);
|
setCheckedKeys([]);
|
||||||
setSelectedSuppliers([]);
|
|
||||||
setSelectedReviewers({ selected: [], leader: null, });
|
setSelectedReviewers({ selected: [], leader: null, });
|
||||||
setDivisionData([]);
|
|
||||||
setAdmissionMethod('online');
|
setAdmissionMethod('online');
|
||||||
onCancel();
|
onCancel();
|
||||||
} else {
|
} else {
|
||||||
@ -230,16 +222,13 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
};
|
};
|
||||||
//初始化
|
//初始化
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if(visible) {
|
if (visible) {
|
||||||
categoryTree().then((res) => {
|
categoryTree().then((res) => {
|
||||||
const { code, data } = res;
|
const { code, data } = res;
|
||||||
if (code == 200) {
|
if (code == 200) {
|
||||||
setCategoriesTreeData(data)
|
setCategoriesTreeData(data)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
form.setFieldsValue({ method: 'online' });
|
form.setFieldsValue({ method: 'online' });
|
||||||
}
|
}
|
||||||
}, [visible, form]);
|
}, [visible, form]);
|
||||||
@ -251,9 +240,7 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
onCancel={() => {
|
onCancel={() => {
|
||||||
form.resetFields();
|
form.resetFields();
|
||||||
setCheckedKeys([]);
|
setCheckedKeys([]);
|
||||||
setSelectedSuppliers([]);
|
|
||||||
setSelectedReviewers({ selected: [], leader: null, });
|
setSelectedReviewers({ selected: [], leader: null, });
|
||||||
setDivisionData([]);
|
|
||||||
setAdmissionMethod('online');
|
setAdmissionMethod('online');
|
||||||
onCancel();
|
onCancel();
|
||||||
}}
|
}}
|
||||||
@ -272,14 +259,21 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
name="accessWorkName"
|
name="accessWorkName"
|
||||||
rules={[{ required: true, message: '请输入标题名称' }]}
|
rules={[{ required: true, message: '请输入标题名称' }]}
|
||||||
>
|
>
|
||||||
<Input placeholder="请输入标题名称" allowClear />
|
<Input placeholder="请输入标题名称" allowClear
|
||||||
|
onChange={e => {
|
||||||
|
if (e.target.value) {
|
||||||
|
setAccessWorkNameEdited(true);
|
||||||
|
} else {
|
||||||
|
setAccessWorkNameEdited(false);
|
||||||
|
}
|
||||||
|
}} />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
<Form.Item
|
<Form.Item
|
||||||
label="准入部门"
|
label="准入部门"
|
||||||
name="deptId"
|
name="deptId"
|
||||||
rules={[{ required: true, message: '请选择准入部门' }]}
|
rules={[{ required: true, message: '请选择准入部门' }]}
|
||||||
>
|
>
|
||||||
<AccessDepartmentSelect />
|
<AccessDepartmentSelect />
|
||||||
</Form.Item>
|
</Form.Item>
|
||||||
|
|
||||||
<Form.Item
|
<Form.Item
|
||||||
@ -491,9 +485,7 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
onClick={() => {
|
onClick={() => {
|
||||||
form.resetFields();
|
form.resetFields();
|
||||||
setCheckedKeys([]);
|
setCheckedKeys([]);
|
||||||
setSelectedSuppliers([]);
|
|
||||||
setSelectedReviewers({ selected: [], leader: null, });
|
setSelectedReviewers({ selected: [], leader: null, });
|
||||||
setDivisionData([]);
|
|
||||||
setAdmissionMethod('online');
|
setAdmissionMethod('online');
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
@ -506,15 +498,15 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
visible={supplierModalVisible}
|
visible={supplierModalVisible}
|
||||||
onCancel={() => setSupplierModalVisible(false)}
|
onCancel={() => setSupplierModalVisible(false)}
|
||||||
onSelect={(selected) => {
|
onSelect={(selected) => {
|
||||||
setSelectedSuppliers(selected);
|
|
||||||
form.setFieldsValue({ supplier: selected });
|
form.setFieldsValue({ supplier: selected });
|
||||||
setSupplierModalVisible(false);
|
setSupplierModalVisible(false);
|
||||||
const accessWorkName = form.getFieldValue('accessWorkName');
|
if (!accessWorkNameEdited) {
|
||||||
if(!accessWorkName) {
|
if (selected.length > 0) {
|
||||||
if(selected.length > 0 ) {
|
console.log(selected, 'accessWorkName');
|
||||||
console.log(selected,'accessWorkName');
|
const suppliersName = `${selected[0].supplierType === 'ovs' ? selected[0].nameEn : selected[0].name}${selected.length > 1 ? '等' : ''}`
|
||||||
const suppliersName = `${selected[0].supplierType === 'ovs'? selected[0].nameEn:selected[0].name}${selected.length > 1? '等':'' }`
|
|
||||||
form.setFieldsValue({ 'accessWorkName': suppliersName });
|
form.setFieldsValue({ 'accessWorkName': suppliersName });
|
||||||
|
} else {
|
||||||
|
form.setFieldsValue({ 'accessWorkName': '' });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}}
|
}}
|
||||||
@ -537,7 +529,6 @@ const CreateModal: React.FC<{ visible: boolean; onCancel: () => void; }> = ({ vi
|
|||||||
visible={divisionModalVisible}
|
visible={divisionModalVisible}
|
||||||
onCancel={() => setDivisionModalVisible(false)}
|
onCancel={() => setDivisionModalVisible(false)}
|
||||||
onSelect={(data) => {
|
onSelect={(data) => {
|
||||||
setDivisionData(data);
|
|
||||||
form.setFieldsValue({ division: data });
|
form.setFieldsValue({ division: data });
|
||||||
setDivisionModalVisible(false);
|
setDivisionModalVisible(false);
|
||||||
}}
|
}}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import React, { useState, useEffect, useRef } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import { Modal, Table, Radio, Button, message } from 'antd';
|
import { Modal, Table, Radio, Button, message } from 'antd';
|
||||||
import type { ColumnsType } from 'antd/es/table';
|
import type { ColumnsType } from 'antd/es/table';
|
||||||
|
|
||||||
|
@ -16,8 +16,6 @@ import { getPage, startApprove } from './services'
|
|||||||
//统一列表分页
|
//统一列表分页
|
||||||
import tableProps from '@/utils/tableProps'
|
import tableProps from '@/utils/tableProps'
|
||||||
|
|
||||||
const { Option } = Select;
|
|
||||||
|
|
||||||
interface Data {
|
interface Data {
|
||||||
id: string;
|
id: string;
|
||||||
deptId: string;
|
deptId: string;
|
||||||
|
Reference in New Issue
Block a user