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