|
|
@@ -26,6 +26,7 @@ import {
|
|
|
queryOAReCall,
|
|
|
querySupplierList,
|
|
|
} from '@/services/contract';
|
|
|
+import { queryDepsV2 } from '@/services/approval';
|
|
|
import { useModel, useRequest } from '@umijs/max';
|
|
|
import { CloudUploadOutlined } from '@ant-design/icons';
|
|
|
import styles from '../index.less';
|
|
|
@@ -37,7 +38,7 @@ export const Type = {
|
|
|
add: 0, //新增
|
|
|
detail: 1, //详情
|
|
|
cancel: 2, //作废
|
|
|
- check: 3, //审核
|
|
|
+ save: 3, //保存草稿
|
|
|
};
|
|
|
|
|
|
export const StatusText = [
|
|
|
@@ -62,9 +63,8 @@ export const Status = {
|
|
|
|
|
|
const ContractModal = (props) => {
|
|
|
const [form] = Form.useForm();
|
|
|
- const {
|
|
|
- initialState: { user },
|
|
|
- } = useModel('@@initialState');
|
|
|
+ const { initialState } = useModel('@@initialState');
|
|
|
+ const user = initialState?.user || {};
|
|
|
const { userList, run: userListRun } = useModel('userList');
|
|
|
const { depList, run: depListRun } = useModel('depList');
|
|
|
const [auditList, setAuditList] = useState([]);
|
|
|
@@ -93,8 +93,6 @@ const ContractModal = (props) => {
|
|
|
ID: '行政部',
|
|
|
},
|
|
|
];
|
|
|
-
|
|
|
- const [isPass, setIsPass] = useState(1);
|
|
|
const [companyDepList, setCompanyDepList] = useState(depList || []);
|
|
|
const [archivesDepList, setArchivesDepList] = useState(archivesOptions);
|
|
|
const [dealDisable, setDealDisable] = useState(false);
|
|
|
@@ -106,6 +104,9 @@ const ContractModal = (props) => {
|
|
|
const project_name = Form.useWatch('project_name', form);
|
|
|
const archives_dep = Form.useWatch('archives_dep', form);
|
|
|
|
|
|
+ // 当为审核拒绝状态时,点击编辑按钮可以时为强制修改状态
|
|
|
+ const [forceModify, setForceModify] = useState(false);
|
|
|
+
|
|
|
//是否补充协议,是的话需要填合同编号
|
|
|
const is_supplement = Form.useWatch('is_supplement', form);
|
|
|
|
|
|
@@ -117,25 +118,25 @@ const ContractModal = (props) => {
|
|
|
const formData = [
|
|
|
{
|
|
|
name: '是否本部',
|
|
|
- id: 'DDSelectField_4fbddb04-9b4f-4281-991b-5047f835fb9d',
|
|
|
+ id: 'DDSelectField_4ad8bda8-60ce-428b-88a3-bf1a18c24a50',
|
|
|
type: 'DDSelectField',
|
|
|
value: ['是'],
|
|
|
},
|
|
|
{
|
|
|
name: '合同归档部门',
|
|
|
- id: 'DDSelectField_1235c6b9-9d74-4856-a62d-6ca1bb9716a6',
|
|
|
+ id: 'DDSelectField_3b661423-9fb8-4498-9eda-bcadf2d98473',
|
|
|
type: 'DDSelectField',
|
|
|
value: ['财务部'],
|
|
|
},
|
|
|
{
|
|
|
name: '合同编码',
|
|
|
- id: 'TextField_1a01000b-4458-4dfb-bd13-74a74e7a33e5',
|
|
|
+ id: 'TextField_f73531d8-c2c0-4769-a8ef-68b2eae2dc3a',
|
|
|
type: 'TextField',
|
|
|
value: ['1'],
|
|
|
},
|
|
|
{
|
|
|
name: '提审类型',
|
|
|
- id: 'DDSelectField_c79e124c-c933-4ea1-b799-faceaf830a9b',
|
|
|
+ id: 'DDSelectField_bed77d5f-d02c-4f1d-98bf-0638245a3331',
|
|
|
type: 'DDSelectField',
|
|
|
value: ['1'],
|
|
|
},
|
|
|
@@ -143,20 +144,9 @@ const ContractModal = (props) => {
|
|
|
|
|
|
//计算审批流数据
|
|
|
const advance = {
|
|
|
- flow_id: 40,
|
|
|
+ flow_id: 47,
|
|
|
form_list: null,
|
|
|
- // node_level_id:0,
|
|
|
- // id:0,
|
|
|
- // project_id:0,
|
|
|
- // cur_template_node_id:0,
|
|
|
- // next_template_node_id:0,
|
|
|
- // template_node_id:0,
|
|
|
- // flow_path:null,
|
|
|
- // template_id:0,
|
|
|
- // cur_template_id:0,
|
|
|
- // next_template_id:0,
|
|
|
formComponentValues: '',
|
|
|
- // audit_list:[],
|
|
|
};
|
|
|
|
|
|
//旧审批流兼容
|
|
|
@@ -182,6 +172,15 @@ const ContractModal = (props) => {
|
|
|
|
|
|
const { data: companyData, run: runCompany } = useRequest(queryCompany);
|
|
|
|
|
|
+ // 新建合同时,选择本部时,需要用另一个接口请求部门数据
|
|
|
+ const { data: companyDeps, run: runCompanyDeps } = useRequest(queryDepsV2, {
|
|
|
+ manual: true,
|
|
|
+ formatResult: (response) => {
|
|
|
+ console.log(response.data);
|
|
|
+ return response.data;
|
|
|
+ },
|
|
|
+ });
|
|
|
+
|
|
|
//填写表单时计算审批流接口
|
|
|
const { run: runAuditList } = useRequest(
|
|
|
(data) => advanceSubmitNextNode(data),
|
|
|
@@ -206,6 +205,7 @@ const ContractModal = (props) => {
|
|
|
},
|
|
|
},
|
|
|
);
|
|
|
+
|
|
|
//计算合同编号接口
|
|
|
const { run: runCode } = useRequest((data) => queryContractCode(data), {
|
|
|
manual: true,
|
|
|
@@ -215,6 +215,7 @@ const ContractModal = (props) => {
|
|
|
});
|
|
|
},
|
|
|
});
|
|
|
+
|
|
|
//供应商列表
|
|
|
const { data: supplierList = [], loading } = useRequest(querySupplierList, {
|
|
|
defaultParams: [
|
|
|
@@ -233,6 +234,7 @@ const ContractModal = (props) => {
|
|
|
: [];
|
|
|
},
|
|
|
});
|
|
|
+
|
|
|
//获取OA 归档审批列表
|
|
|
const { data: auditData, run: runAudit } = useRequest(
|
|
|
(data) => queryAuditByCode({ ...data, extend_type: 0 }),
|
|
|
@@ -250,6 +252,7 @@ const ContractModal = (props) => {
|
|
|
},
|
|
|
},
|
|
|
);
|
|
|
+
|
|
|
//获取OA 作废审批列表
|
|
|
const { data: auditCelData, run: runCalAudit } = useRequest(
|
|
|
(data) => queryAuditByCode({ ...data, extend_type: 1 }),
|
|
|
@@ -270,7 +273,6 @@ const ContractModal = (props) => {
|
|
|
|
|
|
useEffect(() => {
|
|
|
if (!visible) {
|
|
|
- setIsPass(1);
|
|
|
setDealDisable(false);
|
|
|
setAuditList([]);
|
|
|
setCompanyDepList([]);
|
|
|
@@ -279,9 +281,18 @@ const ContractModal = (props) => {
|
|
|
userListRun();
|
|
|
depListRun();
|
|
|
runCompany();
|
|
|
+ runCompanyDeps();
|
|
|
}
|
|
|
}, [visible]);
|
|
|
|
|
|
+ useEffect(() => {
|
|
|
+ //兼容之前选择的所属部门,用的现在的接口匹配不到部门显示数字的问题
|
|
|
+ if (data?.company_id) {
|
|
|
+ const deps = getDepItemById(data?.company_id)?.children;
|
|
|
+ setCompanyDepList(deps);
|
|
|
+ }
|
|
|
+ }, [data, depList]);
|
|
|
+
|
|
|
useEffect(() => {
|
|
|
form.resetFields();
|
|
|
if (data?.status >= Status.Checking) runAudit({ extend_code: data.code });
|
|
|
@@ -307,23 +318,19 @@ const ContractModal = (props) => {
|
|
|
if (
|
|
|
type == Type.add ||
|
|
|
type == Type.cancel ||
|
|
|
- data?.status == Status.ReCall
|
|
|
+ data?.status == Status.ReCall ||
|
|
|
+ (data?.status == Status.CheckReject && forceModify)
|
|
|
)
|
|
|
return true;
|
|
|
- let currentAuditUserID;
|
|
|
- if (data?.status == Status.Checking && auditData) {
|
|
|
- const { OaAuditList, audit_status } = auditData;
|
|
|
- currentAuditUserID = OaAuditList[audit_status]?.auditor;
|
|
|
- } else if (data?.status == Status.CalChecking && auditCelData) {
|
|
|
- const { OaAuditList, audit_status } = auditCelData;
|
|
|
- currentAuditUserID = OaAuditList[audit_status]?.auditor;
|
|
|
- }
|
|
|
- if (user.ID == currentAuditUserID) return true;
|
|
|
- return false;
|
|
|
- }, [user, data, auditData, auditCelData]);
|
|
|
+ }, [data, type, forceModify]);
|
|
|
|
|
|
useEffect(() => {
|
|
|
- if (type !== Type.add && data?.status !== Status.ReCall) return;
|
|
|
+ if (
|
|
|
+ type !== Type.add &&
|
|
|
+ data?.status !== Status.ReCall &&
|
|
|
+ data?.status !== Status.CheckReject
|
|
|
+ )
|
|
|
+ return;
|
|
|
const newCompony = company || data?.company_id; //recall状态时compony是空, 需要用data?.company_id
|
|
|
if (!newCompony) {
|
|
|
setCompanyDepList([]);
|
|
|
@@ -331,30 +338,26 @@ const ContractModal = (props) => {
|
|
|
return;
|
|
|
}
|
|
|
const deps = getDepItemById(newCompony)?.children;
|
|
|
- if (deps) setCompanyDepList(deps);
|
|
|
+ deps ? setCompanyDepList(deps) : setCompanyDepList([]);
|
|
|
const item = companyData?.find((item) => item.ID == newCompony);
|
|
|
if (item?.Flag == 1) {
|
|
|
//公司为本部 经办人为自己并不可编辑 合同存档部门从财务和行政部选
|
|
|
setDealDisable(false);
|
|
|
setArchivesDepList(archivesOptions);
|
|
|
form.setFieldsValue({ deal_by: user?.CName });
|
|
|
+ // 公司为本部时,使用另一个接口获取部门数据
|
|
|
+ companyDeps ? setCompanyDepList(companyDeps) : setCompanyDepList([]);
|
|
|
} else {
|
|
|
//公司为分子公司 经办人为手动输入 合同存档部门从所选分子公司的子部门选择
|
|
|
setDealDisable(true);
|
|
|
setArchivesDepList(deps);
|
|
|
form.setFieldsValue({ deal_by: '' });
|
|
|
}
|
|
|
- }, [company, data]);
|
|
|
+ }, [company, data, forceModify]);
|
|
|
|
|
|
//获取合同编号逻辑 只有新增才请求
|
|
|
useEffect(() => {
|
|
|
- if (
|
|
|
- //&& data?.status !== Status.ReCall
|
|
|
- type !== Type.add ||
|
|
|
- !company ||
|
|
|
- !dep_id
|
|
|
- )
|
|
|
- return;
|
|
|
+ if (type !== Type.add || !company || !dep_id) return;
|
|
|
const item = companyData?.find((item) => item.ID == company);
|
|
|
const dep_code = getDepItemById(dep_id)?.Code;
|
|
|
if (item) {
|
|
|
@@ -370,7 +373,12 @@ const ContractModal = (props) => {
|
|
|
|
|
|
//获取审批流逻辑
|
|
|
useEffect(() => {
|
|
|
- if (type !== Type.add && data?.status !== Status.ReCall) return;
|
|
|
+ if (
|
|
|
+ type !== Type.add &&
|
|
|
+ data?.status !== Status.ReCall &&
|
|
|
+ data?.status !== Status.CheckReject
|
|
|
+ )
|
|
|
+ return;
|
|
|
const param = { ...advance };
|
|
|
let formValues = [];
|
|
|
const item = companyData?.find((item) => item.ID == company);
|
|
|
@@ -384,8 +392,14 @@ const ContractModal = (props) => {
|
|
|
runAuditList(param);
|
|
|
}, [company, archives_dep]);
|
|
|
|
|
|
+ //根据项目名称填充项目编号逻辑
|
|
|
useEffect(() => {
|
|
|
- if (type !== Type.add && data?.status !== Status.ReCall) return;
|
|
|
+ if (
|
|
|
+ type !== Type.add &&
|
|
|
+ data?.status !== Status.ReCall &&
|
|
|
+ data?.status !== Status.CheckReject
|
|
|
+ )
|
|
|
+ return;
|
|
|
const project_code = projectList?.find(
|
|
|
(item) => item.project_name == project_name,
|
|
|
)?.project_full_code;
|
|
|
@@ -395,15 +409,24 @@ const ContractModal = (props) => {
|
|
|
form.setFieldsValue({ project_code: '' });
|
|
|
}
|
|
|
}, [project_name]);
|
|
|
+
|
|
|
const supplyList = useMemo(() => {
|
|
|
return companyData ? [...companyData, ...supplierList] : supplierList;
|
|
|
}, [companyData, supplierList]);
|
|
|
|
|
|
const disableds = useMemo(() => {
|
|
|
- if (data?.status == Status.ReCall) return { contract: false, recall: true };
|
|
|
- if (data?.status > Status.None) return { contract: true, recall: true };
|
|
|
+ // 当合同处于审核拒绝状态时,通过修改按钮可强制修改合同并重新进入审核
|
|
|
+ if (forceModify && data?.status == Status.CheckReject) {
|
|
|
+ return { contract: false, recall: false };
|
|
|
+ }
|
|
|
+ // if (data?.status == Status.ReCall) {
|
|
|
+ // return { contract: false, recall: true };
|
|
|
+ // }
|
|
|
+ if (data?.status > Status.None) {
|
|
|
+ return { contract: true, recall: true };
|
|
|
+ }
|
|
|
return { contract: false, recall: false };
|
|
|
- }, [visible]);
|
|
|
+ }, [visible, forceModify]);
|
|
|
|
|
|
const UploadProps = {
|
|
|
action: `/api/contract/v1/attach`,
|
|
|
@@ -418,6 +441,7 @@ const ContractModal = (props) => {
|
|
|
}
|
|
|
},
|
|
|
};
|
|
|
+
|
|
|
const UploadPropsExtend = {
|
|
|
action: `/api/contract/v1/attach`,
|
|
|
headers: {
|
|
|
@@ -480,7 +504,10 @@ const ContractModal = (props) => {
|
|
|
code: data?.code,
|
|
|
};
|
|
|
handleOk(result, Type.cancel, form, audit_list);
|
|
|
- } else if (data?.status == Status.ReCall) {
|
|
|
+ } else if (
|
|
|
+ data?.status == Status.ReCall ||
|
|
|
+ data?.status == Status.CheckReject
|
|
|
+ ) {
|
|
|
const form = getAuditData(values, '1');
|
|
|
const audit_list = auditList.map((item) => item.value);
|
|
|
values.effect_on = dayjs(values.effect_on).format(FORMAT);
|
|
|
@@ -502,24 +529,32 @@ const ContractModal = (props) => {
|
|
|
values.created_by = user?.ID;
|
|
|
values.id = data?.id;
|
|
|
handleOk(values, Type.add, form, audit_list);
|
|
|
- } else if (data?.status == Status.Checking) {
|
|
|
- let result = {
|
|
|
- id: auditData?.id,
|
|
|
- status: values.is_pass,
|
|
|
- desc: '',
|
|
|
- };
|
|
|
- handleOk(result, Type.check, data?.status);
|
|
|
- } else if (data?.status == Status.CalChecking) {
|
|
|
- let result = {
|
|
|
- id: auditCelData?.id,
|
|
|
- status: values.is_pass,
|
|
|
- desc: '',
|
|
|
- };
|
|
|
- handleOk(result, Type.check, data?.status);
|
|
|
}
|
|
|
});
|
|
|
};
|
|
|
|
|
|
+ const handleSaveDraft = () => {
|
|
|
+ let values = form.getFieldsValue();
|
|
|
+ if (!values.name) {
|
|
|
+ message.error('请填写合同名称!');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Object.keys(values).forEach((key) => {
|
|
|
+ if (Array.isArray(values[key]))
|
|
|
+ values[key].length == 0
|
|
|
+ ? delete values[key]
|
|
|
+ : (values[key] = JSON.stringify(values[key]));
|
|
|
+ });
|
|
|
+ if (values.effect_on)
|
|
|
+ values.effect_on = dayjs(values.effect_on).format(FORMAT);
|
|
|
+ const params = {
|
|
|
+ name: values.name,
|
|
|
+ content: JSON.stringify(values),
|
|
|
+ };
|
|
|
+ if (data?.id) params.id = data?.id;
|
|
|
+ handleOk(params, Type.save);
|
|
|
+ };
|
|
|
+
|
|
|
const getDepItemById = (id) => {
|
|
|
const fun = (list) => {
|
|
|
for (let i = 0; i < list.length; i++) {
|
|
|
@@ -547,16 +582,39 @@ const ContractModal = (props) => {
|
|
|
const renderFooter = () => {
|
|
|
return (
|
|
|
<Space>
|
|
|
- {data?.status == Status.Checking && type !== Type.check && (
|
|
|
+ {data?.status == Status.Checking && (
|
|
|
<Button onClick={() => handlerReCall(auditData?.id)}>撤回</Button>
|
|
|
)}
|
|
|
- <Button onClick={handleCancel}>取消</Button>
|
|
|
+ <Button
|
|
|
+ onClick={() => {
|
|
|
+ setForceModify(false);
|
|
|
+ form.resetFields();
|
|
|
+ handleCancel();
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 取消
|
|
|
+ </Button>
|
|
|
+ {data?.status == Status.CheckReject && !forceModify && (
|
|
|
+ <Button
|
|
|
+ onClick={() => {
|
|
|
+ setForceModify(true);
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ 修改
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
+ {type == Type.add && (
|
|
|
+ <Button type="primary" onClick={handleSaveDraft}>
|
|
|
+ 保存草稿
|
|
|
+ </Button>
|
|
|
+ )}
|
|
|
<Button type="primary" onClick={handleSubmit} disabled={!isSuper}>
|
|
|
提交
|
|
|
</Button>
|
|
|
</Space>
|
|
|
);
|
|
|
};
|
|
|
+
|
|
|
return (
|
|
|
<>
|
|
|
<Modal
|
|
|
@@ -588,7 +646,10 @@ const ContractModal = (props) => {
|
|
|
name="company_id"
|
|
|
label="所属公司:"
|
|
|
tooltip="请选择该存档合同所属公司"
|
|
|
- initialValue={data?.company_id}
|
|
|
+ initialValue={
|
|
|
+ //不可编辑的时候直接赋值为company_name
|
|
|
+ !disableds.contract ? data?.company_id : data?.company_name
|
|
|
+ }
|
|
|
rules={[
|
|
|
{
|
|
|
required: true,
|
|
|
@@ -600,7 +661,7 @@ const ContractModal = (props) => {
|
|
|
showSearch
|
|
|
style={{ width: '100%' }}
|
|
|
placeholder="请选择"
|
|
|
- disabled={disableds.contract || disableds.recall}
|
|
|
+ disabled={disableds.contract}
|
|
|
filterOption={(input, option) =>
|
|
|
(option?.label ?? '')
|
|
|
.toLowerCase()
|
|
|
@@ -627,6 +688,12 @@ const ContractModal = (props) => {
|
|
|
name="dep_id"
|
|
|
label="所属部门:"
|
|
|
initialValue={data?.dep_id}
|
|
|
+ rules={[
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: '请选择所属部门',
|
|
|
+ },
|
|
|
+ ]}
|
|
|
>
|
|
|
<TreeSelect
|
|
|
style={{ width: '100%' }}
|
|
|
@@ -638,9 +705,16 @@ const ContractModal = (props) => {
|
|
|
value: 'ID',
|
|
|
children: 'children',
|
|
|
}}
|
|
|
- disabled={disableds.contract || disableds.recall}
|
|
|
+ disabled={disableds.contract}
|
|
|
dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
|
- treeData={companyDepList}
|
|
|
+ treeData={
|
|
|
+ data?.dep_id
|
|
|
+ ? [
|
|
|
+ ...companyDepList,
|
|
|
+ { Name: data.dep_name, ID: data?.dep_id },
|
|
|
+ ]
|
|
|
+ : companyDepList
|
|
|
+ }
|
|
|
/>
|
|
|
</Form.Item>
|
|
|
</Col>
|
|
|
@@ -709,7 +783,7 @@ const ContractModal = (props) => {
|
|
|
},
|
|
|
]}
|
|
|
>
|
|
|
- <Radio.Group disabled={disableds.contract || disableds.recall}>
|
|
|
+ <Radio.Group disabled={disableds.contract}>
|
|
|
<Radio value={1}>是</Radio>
|
|
|
<Radio value={0}>否</Radio>
|
|
|
</Radio.Group>
|
|
|
@@ -731,7 +805,9 @@ const ContractModal = (props) => {
|
|
|
<Form.Item
|
|
|
name="effect_on"
|
|
|
label="合同签订日期:"
|
|
|
- initialValue={data?.effect_on}
|
|
|
+ initialValue={
|
|
|
+ data?.effect_on ? dayjs(data?.effect_on, FORMAT) : ''
|
|
|
+ }
|
|
|
tooltip="合同主体各方签字盖章完成之日,以最后签字盖章的为准"
|
|
|
rules={[
|
|
|
{
|
|
|
@@ -740,14 +816,10 @@ const ContractModal = (props) => {
|
|
|
},
|
|
|
]}
|
|
|
>
|
|
|
- {type == Type.add ? (
|
|
|
- <DatePicker
|
|
|
- style={{ width: '100%' }}
|
|
|
- disabled={disableds.contract}
|
|
|
- />
|
|
|
- ) : (
|
|
|
- <Input disabled={disableds.contract} />
|
|
|
- )}
|
|
|
+ <DatePicker
|
|
|
+ style={{ width: '100%' }}
|
|
|
+ disabled={disableds.contract}
|
|
|
+ />
|
|
|
</Form.Item>
|
|
|
<Form.Item
|
|
|
name="project_name"
|
|
|
@@ -786,18 +858,17 @@ const ContractModal = (props) => {
|
|
|
},
|
|
|
]}
|
|
|
>
|
|
|
- <TreeSelect
|
|
|
+ <Select
|
|
|
style={{ width: '100%' }}
|
|
|
placeholder="请选择"
|
|
|
showSearch
|
|
|
allowClear
|
|
|
- fieldNames={{
|
|
|
- label: 'Name',
|
|
|
- value: 'Name',
|
|
|
- children: 'children',
|
|
|
- }}
|
|
|
- dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
|
- treeData={supplyList}
|
|
|
+ options={supplyList?.map((item) => {
|
|
|
+ return {
|
|
|
+ label: item.Name,
|
|
|
+ value: item.Name,
|
|
|
+ };
|
|
|
+ })}
|
|
|
disabled={disableds.contract}
|
|
|
/>
|
|
|
</Form.Item>
|
|
|
@@ -820,10 +891,7 @@ const ContractModal = (props) => {
|
|
|
: []
|
|
|
}
|
|
|
>
|
|
|
- <Input
|
|
|
- placeholder="请填写"
|
|
|
- disabled={disableds.contract || disableds.recall}
|
|
|
- />
|
|
|
+ <Input placeholder="请填写" disabled={disableds.contract} />
|
|
|
</Form.Item>
|
|
|
<Form.Item
|
|
|
name="code"
|
|
|
@@ -872,19 +940,18 @@ const ContractModal = (props) => {
|
|
|
},
|
|
|
]}
|
|
|
>
|
|
|
- <TreeSelect
|
|
|
+ <Select
|
|
|
style={{ width: '100%' }}
|
|
|
placeholder="请选择"
|
|
|
showSearch
|
|
|
allowClear
|
|
|
+ options={supplyList?.map((item) => {
|
|
|
+ return {
|
|
|
+ label: item.Name,
|
|
|
+ value: item.Name,
|
|
|
+ };
|
|
|
+ })}
|
|
|
disabled={disableds.contract}
|
|
|
- fieldNames={{
|
|
|
- label: 'Name',
|
|
|
- value: 'Name',
|
|
|
- children: 'children',
|
|
|
- }}
|
|
|
- dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
|
- treeData={supplyList}
|
|
|
/>
|
|
|
</Form.Item>
|
|
|
</Col>
|
|
|
@@ -893,22 +960,21 @@ const ContractModal = (props) => {
|
|
|
name="party_c"
|
|
|
label="丙方(及其他):"
|
|
|
tooltip="可多选。合同主体可以下拉选择,可选项需要经办人在“主页--供应商管理”中创建。经办人可以维护和更新供应商信息。"
|
|
|
- initialValue={data?.party_c ? data?.party_c.split(',') : []}
|
|
|
+ initialValue={data?.party_c ? data?.party_c?.split(',') : []}
|
|
|
labelCol={{ span: 4 }}
|
|
|
>
|
|
|
- <TreeSelect
|
|
|
+ <Select
|
|
|
style={{ width: '100%' }}
|
|
|
placeholder="请选择"
|
|
|
+ mode="multiple"
|
|
|
showSearch
|
|
|
- multiple
|
|
|
allowClear
|
|
|
- fieldNames={{
|
|
|
- label: 'Name',
|
|
|
- value: 'Name',
|
|
|
- children: 'children',
|
|
|
- }}
|
|
|
- dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
|
- treeData={supplyList}
|
|
|
+ options={supplyList?.map((item) => {
|
|
|
+ return {
|
|
|
+ label: item.Name,
|
|
|
+ value: item.Name,
|
|
|
+ };
|
|
|
+ })}
|
|
|
disabled={disableds.contract}
|
|
|
/>
|
|
|
</Form.Item>
|
|
|
@@ -938,7 +1004,9 @@ const ContractModal = (props) => {
|
|
|
}
|
|
|
initialValue={attachData.attach}
|
|
|
>
|
|
|
- {type == Type.add || data?.status == Status.ReCall ? (
|
|
|
+ {type == Type.add ||
|
|
|
+ data?.status == Status.ReCall ||
|
|
|
+ forceModify ? (
|
|
|
<Upload {...UploadProps}>
|
|
|
<Button icon={<CloudUploadOutlined />}>Upload</Button>
|
|
|
</Upload>
|
|
|
@@ -970,7 +1038,7 @@ const ContractModal = (props) => {
|
|
|
<Select
|
|
|
style={{ width: '100%' }}
|
|
|
options={archivesDepList?.map((item) => {
|
|
|
- return { label: item.Name, value: item.ID };
|
|
|
+ return { label: item.Name, value: item.Name };
|
|
|
})}
|
|
|
disabled={disableds.contract}
|
|
|
/>
|
|
|
@@ -998,27 +1066,29 @@ const ContractModal = (props) => {
|
|
|
</div>
|
|
|
}
|
|
|
>
|
|
|
- {type == Type.add ? (
|
|
|
+ {type == Type.add || forceModify ? (
|
|
|
<Upload {...UploadPropsExtend}>
|
|
|
<Button icon={<CloudUploadOutlined />}>Upload</Button>
|
|
|
</Upload>
|
|
|
) : (
|
|
|
<ul>
|
|
|
{data?.attach_extend &&
|
|
|
- JSON.parse(data?.attach_extend)?.map((item, idx) => (
|
|
|
- <li key={`${idx}_${item.name}`}>
|
|
|
- <a onClick={() => handlePreViewSingle(item)}>
|
|
|
- {item.name}
|
|
|
- </a>
|
|
|
- </li>
|
|
|
- ))}
|
|
|
+ JSON.parse(data?.attach_extend)
|
|
|
+ ?.filter((item) => item)
|
|
|
+ .map((item, idx) => (
|
|
|
+ <li key={`${idx}_${item.name}`}>
|
|
|
+ <a onClick={() => handlePreViewSingle(item)}>
|
|
|
+ {item.name}
|
|
|
+ </a>
|
|
|
+ </li>
|
|
|
+ ))}
|
|
|
</ul>
|
|
|
)}
|
|
|
</Form.Item>
|
|
|
</Col>
|
|
|
</Row>
|
|
|
|
|
|
- {data?.status >= Status.Checking && (
|
|
|
+ {data?.status >= Status.Checking && !forceModify && (
|
|
|
<>
|
|
|
<ModuleTitle title="归档流程" />
|
|
|
<div className={styles.modelItem}>
|
|
|
@@ -1026,58 +1096,6 @@ const ContractModal = (props) => {
|
|
|
</div>
|
|
|
</>
|
|
|
)}
|
|
|
- {isSuper && data.status == Status.Checking && (
|
|
|
- <>
|
|
|
- <ModuleTitle title="审核情况" />
|
|
|
- <Row>
|
|
|
- <Col span={10} offset={1}>
|
|
|
- <Form.Item
|
|
|
- name="check_by"
|
|
|
- initialValue={user?.CName}
|
|
|
- label="审核人:"
|
|
|
- >
|
|
|
- <Input disabled />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item name="is_pass" initialValue={1} label="审核意见:">
|
|
|
- <Select
|
|
|
- onChange={(e) => {
|
|
|
- setIsPass(e);
|
|
|
- }}
|
|
|
- style={{ width: '100%' }}
|
|
|
- options={[
|
|
|
- {
|
|
|
- value: 1,
|
|
|
- label: '同意',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 2,
|
|
|
- label: '拒绝',
|
|
|
- },
|
|
|
- ]}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </Col>
|
|
|
- <Col span={10}>
|
|
|
- <Form.Item
|
|
|
- name="check_date"
|
|
|
- initialValue={dayjs().format(FORMAT)}
|
|
|
- label="审核时间:"
|
|
|
- >
|
|
|
- <Input disabled />
|
|
|
- </Form.Item>
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- {isPass == 2 && (
|
|
|
- <Form.Item
|
|
|
- name="check_desc"
|
|
|
- label="拒绝原因:"
|
|
|
- labelCol={{ span: 4 }}
|
|
|
- >
|
|
|
- <Input.TextArea />
|
|
|
- </Form.Item>
|
|
|
- )}
|
|
|
- </>
|
|
|
- )}
|
|
|
{(type == Type.cancel || data?.status >= Status.CalChecking) && (
|
|
|
<>
|
|
|
<ModuleTitle title="作废信息" />
|
|
|
@@ -1124,59 +1142,7 @@ const ContractModal = (props) => {
|
|
|
</div>
|
|
|
</>
|
|
|
)}
|
|
|
- {isSuper && data.status == Status.CalChecking && (
|
|
|
- <>
|
|
|
- <ModuleTitle title="审核情况" />
|
|
|
- <Row>
|
|
|
- <Col span={10} offset={1}>
|
|
|
- <Form.Item
|
|
|
- name="cancel_check_by"
|
|
|
- initialValue={user?.CName}
|
|
|
- label="审核人:"
|
|
|
- >
|
|
|
- <Input disabled />
|
|
|
- </Form.Item>
|
|
|
- <Form.Item name="is_pass" initialValue={1} label="审核意见:">
|
|
|
- <Select
|
|
|
- onChange={(e) => {
|
|
|
- setIsPass(e);
|
|
|
- }}
|
|
|
- style={{ width: '100%' }}
|
|
|
- options={[
|
|
|
- {
|
|
|
- value: 1,
|
|
|
- label: '同意',
|
|
|
- },
|
|
|
- {
|
|
|
- value: 0,
|
|
|
- label: '拒绝',
|
|
|
- },
|
|
|
- ]}
|
|
|
- />
|
|
|
- </Form.Item>
|
|
|
- </Col>
|
|
|
- <Col span={10}>
|
|
|
- <Form.Item
|
|
|
- name="check_date"
|
|
|
- initialValue={dayjs().format(FORMAT)}
|
|
|
- label="审核时间:"
|
|
|
- >
|
|
|
- <Input disabled />
|
|
|
- </Form.Item>
|
|
|
- </Col>
|
|
|
- </Row>
|
|
|
- {!isPass && (
|
|
|
- <Form.Item
|
|
|
- name="cancel_check_result"
|
|
|
- label="拒绝原因:"
|
|
|
- labelCol={{ span: 4 }}
|
|
|
- >
|
|
|
- <Input.TextArea />
|
|
|
- </Form.Item>
|
|
|
- )}
|
|
|
- </>
|
|
|
- )}
|
|
|
- {(type == Type.add || data?.status == Status.ReCall) &&
|
|
|
+ {(type == Type.add || data?.status == Status.ReCall || forceModify) &&
|
|
|
auditList.length > 0 && (
|
|
|
<>
|
|
|
<ModuleTitle title="审批流程" />
|