|
@@ -19,16 +19,17 @@ import {
|
|
import ModuleTitle from '../../../components/ModuleTitle/moduleTitle';
|
|
import ModuleTitle from '../../../components/ModuleTitle/moduleTitle';
|
|
import { useEffect, useMemo, useState } from 'react';
|
|
import { useEffect, useMemo, useState } from 'react';
|
|
import {
|
|
import {
|
|
|
|
+ queryAuditByCode,
|
|
queryCompany,
|
|
queryCompany,
|
|
- queryDepList,
|
|
|
|
|
|
+ queryContractCode,
|
|
querySupplierList,
|
|
querySupplierList,
|
|
} from '@/services/contract';
|
|
} from '@/services/contract';
|
|
-import { request, useModel, useRequest } from '@umijs/max';
|
|
|
|
|
|
+import { useModel, useRequest } from '@umijs/max';
|
|
import { CloudUploadOutlined } from '@ant-design/icons';
|
|
import { CloudUploadOutlined } from '@ant-design/icons';
|
|
import styles from '../index.less';
|
|
import styles from '../index.less';
|
|
import dayjs from 'dayjs';
|
|
import dayjs from 'dayjs';
|
|
-import InputSelect from '../../../components/InputSelect';
|
|
|
|
-import { advanceSubmitNextNode } from '@/services/boom';
|
|
|
|
|
|
+import { advanceSubmitNextNode, audit } from '@/services/boom';
|
|
|
|
+import AuditSteps from './AuditSteps';
|
|
export const Type = {
|
|
export const Type = {
|
|
add: 0, //新增
|
|
add: 0, //新增
|
|
detail: 1, //详情
|
|
detail: 1, //详情
|
|
@@ -62,7 +63,7 @@ const ContractModal = (props) => {
|
|
} = useModel('@@initialState');
|
|
} = useModel('@@initialState');
|
|
const { userList, run: userListRun } = useModel('userList');
|
|
const { userList, run: userListRun } = useModel('userList');
|
|
const { depList, run: depListRun } = useModel('depList');
|
|
const { depList, run: depListRun } = useModel('depList');
|
|
- // const [auditList, setAuditList] = useState([]);
|
|
|
|
|
|
+ const [auditList, setAuditList] = useState([]);
|
|
const FORMAT = 'YYYY-MM-DD';
|
|
const FORMAT = 'YYYY-MM-DD';
|
|
const {
|
|
const {
|
|
detail: data,
|
|
detail: data,
|
|
@@ -74,22 +75,36 @@ const ContractModal = (props) => {
|
|
parent_id,
|
|
parent_id,
|
|
handlePreView,
|
|
handlePreView,
|
|
} = props;
|
|
} = props;
|
|
|
|
+ const title =
|
|
|
|
+ type == Type.add ? '新增' : type == Type.cancel ? '作废' : '详情';
|
|
|
|
+ const archivesOptions = [
|
|
|
|
+ {
|
|
|
|
+ Name: '财务部',
|
|
|
|
+ ID: '财务部',
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ Name: '行政部',
|
|
|
|
+ ID: '行政部',
|
|
|
|
+ },
|
|
|
|
+ ];
|
|
|
|
+
|
|
|
|
+ const [isPass, setIsPass] = useState(1);
|
|
|
|
+ const [companyDepList, setCompanyDepList] = useState(depList || []);
|
|
|
|
+ const [archivesDepList, setArchivesDepList] = useState(archivesOptions);
|
|
|
|
+ const [dealDisable, setDealDisable] = useState(false);
|
|
|
|
+ const company = Form.useWatch('company_id', form);
|
|
|
|
+ const project_name = Form.useWatch('project_name', form);
|
|
|
|
+ const archives_dep = Form.useWatch('archives_dep', form);
|
|
|
|
+
|
|
|
|
+ //是否补充协议,是的话需要填合同编号
|
|
|
|
+ const is_supplement = Form.useWatch('is_supplement', form);
|
|
|
|
+
|
|
|
|
+ //请求合同编号用
|
|
|
|
+ const dep_id = Form.useWatch('dep_id', form);
|
|
|
|
+ const parent_code = Form.useWatch('parent_code', form);
|
|
|
|
|
|
//审批流拼接
|
|
//审批流拼接
|
|
- const audit = {
|
|
|
|
- flow_id: 40,
|
|
|
|
- form: '[{"name":"是否本部","id":"DDSelectField_4fbddb04-9b4f-4281-991b-5047f835fb9d","type":"DDSelectField","value":["是"]},{"name":"单选框","id":"DDSelectField_1235c6b9-9d74-4856-a62d-6ca1bb9716a6","type":"DDSelectField","value":["财务部"]}]',
|
|
|
|
- audit_list: [430, 256],
|
|
|
|
- cc_list: [],
|
|
|
|
- files: '',
|
|
|
|
- };
|
|
|
|
const formData = [
|
|
const formData = [
|
|
- {
|
|
|
|
- id: 'TextField_1a01000b-4458-4dfb-bd13-74a74e7a33e5',
|
|
|
|
- name: '合同id',
|
|
|
|
- type: 'TextField',
|
|
|
|
- value: ['1'],
|
|
|
|
- },
|
|
|
|
{
|
|
{
|
|
name: '是否本部',
|
|
name: '是否本部',
|
|
id: 'DDSelectField_4fbddb04-9b4f-4281-991b-5047f835fb9d',
|
|
id: 'DDSelectField_4fbddb04-9b4f-4281-991b-5047f835fb9d',
|
|
@@ -97,11 +112,23 @@ const ContractModal = (props) => {
|
|
value: ['是'],
|
|
value: ['是'],
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- name: '单选框',
|
|
|
|
|
|
+ name: '合同归档部门',
|
|
id: 'DDSelectField_1235c6b9-9d74-4856-a62d-6ca1bb9716a6',
|
|
id: 'DDSelectField_1235c6b9-9d74-4856-a62d-6ca1bb9716a6',
|
|
type: 'DDSelectField',
|
|
type: 'DDSelectField',
|
|
value: ['财务部'],
|
|
value: ['财务部'],
|
|
},
|
|
},
|
|
|
|
+ {
|
|
|
|
+ name: '合同编码',
|
|
|
|
+ id: 'TextField_1a01000b-4458-4dfb-bd13-74a74e7a33e5',
|
|
|
|
+ type: 'TextField',
|
|
|
|
+ value: ['1'],
|
|
|
|
+ },
|
|
|
|
+ {
|
|
|
|
+ name: '提审类型',
|
|
|
|
+ id: 'DDSelectField_c79e124c-c933-4ea1-b799-faceaf830a9b',
|
|
|
|
+ type: 'DDSelectField',
|
|
|
|
+ value: ['1'],
|
|
|
|
+ },
|
|
];
|
|
];
|
|
|
|
|
|
//计算审批流数据
|
|
//计算审批流数据
|
|
@@ -122,60 +149,35 @@ const ContractModal = (props) => {
|
|
// audit_list:[],
|
|
// audit_list:[],
|
|
};
|
|
};
|
|
|
|
|
|
- const { run } = useRequest((data) => advanceSubmitNextNode(data), {
|
|
|
|
- debounceInterval: 500,
|
|
|
|
|
|
+ const { data: companyData, run: runCompany } = useRequest(queryCompany);
|
|
|
|
+
|
|
|
|
+ //计算审批流接口
|
|
|
|
+ const { run: runAuditList } = useRequest(
|
|
|
|
+ (data) => advanceSubmitNextNode(data),
|
|
|
|
+ {
|
|
|
|
+ debounceInterval: 500,
|
|
|
|
+ manual: true,
|
|
|
|
+ formatResult(res) {
|
|
|
|
+ setAuditList(
|
|
|
|
+ res.data[0]?.map((item) => {
|
|
|
|
+ const name = userList?.find(
|
|
|
|
+ (user) => user.ID == item[0].value,
|
|
|
|
+ )?.CName;
|
|
|
|
+ return { ...item[0], name };
|
|
|
|
+ }),
|
|
|
|
+ );
|
|
|
|
+ },
|
|
|
|
+ },
|
|
|
|
+ );
|
|
|
|
+ //计算合同编号接口
|
|
|
|
+ const { run: runCode } = useRequest((data) => queryContractCode(data), {
|
|
manual: true,
|
|
manual: true,
|
|
- formatResult(res) {
|
|
|
|
- setAuditList(
|
|
|
|
- res.data[0]?.map((item) => {
|
|
|
|
- const name = userList.find((user) => user.ID == item.value)?.CName;
|
|
|
|
- return { ...item, name };
|
|
|
|
- }),
|
|
|
|
- );
|
|
|
|
|
|
+ onSuccess: (data) => {
|
|
|
|
+ form.setFieldsValue({
|
|
|
|
+ code: data?.code,
|
|
|
|
+ });
|
|
},
|
|
},
|
|
});
|
|
});
|
|
-
|
|
|
|
- const title =
|
|
|
|
- type == Type.add ? '新增' : type == Type.cancel ? '作废' : '详情';
|
|
|
|
- //所属公司为总部时才能选择部门,为子公司时,部门不能操作 所属部门为子公司的需要填经办人
|
|
|
|
- const company = Form.useWatch('company_id', form);
|
|
|
|
- const [depDisable, setDepDisable] = useState(false);
|
|
|
|
- const [dealDisable, setDealDisable] = useState(false);
|
|
|
|
- //项目名称选择后,自动填入对应的项目编号
|
|
|
|
- const project_name = Form.useWatch('project_name', form);
|
|
|
|
-
|
|
|
|
- //是否补充协议,是的话需要填合同编号
|
|
|
|
- const is_supplement = Form.useWatch('is_supplement', form);
|
|
|
|
-
|
|
|
|
- const [isPass, setIsPass] = useState(1);
|
|
|
|
-
|
|
|
|
- const { data: companyData, run: runCompany } = useRequest(queryCompany);
|
|
|
|
-
|
|
|
|
- //获取审批流逻辑
|
|
|
|
- // const archives_dep = Form.useWatch('archives_dep', form);
|
|
|
|
- // useEffect(() => {
|
|
|
|
- // if (!company || !archives_dep) return;
|
|
|
|
- // const param = { ...advance };
|
|
|
|
- // const formValus = JSON.parse(JSON.stringify(formData));
|
|
|
|
- // const item = companyData?.find((item) => item.ID == company);
|
|
|
|
- // formValus[1].value = item?.Flag == 1 ? ['是'] : ['否'];
|
|
|
|
- // formValus[2].value = [archives_dep];
|
|
|
|
- // param.formComponentValues = formValus;
|
|
|
|
- // run(param);
|
|
|
|
- // }, [company, archives_dep]);
|
|
|
|
-
|
|
|
|
- // console.log(user, data, depList);
|
|
|
|
-
|
|
|
|
- useEffect(() => {
|
|
|
|
- userListRun();
|
|
|
|
- depListRun();
|
|
|
|
- runCompany();
|
|
|
|
- }, []);
|
|
|
|
-
|
|
|
|
- useEffect(() => {
|
|
|
|
- form.resetFields();
|
|
|
|
- }, [data]);
|
|
|
|
-
|
|
|
|
//供应商列表
|
|
//供应商列表
|
|
const { data: supplierList = [], loading } = useRequest(querySupplierList, {
|
|
const { data: supplierList = [], loading } = useRequest(querySupplierList, {
|
|
defaultParams: [
|
|
defaultParams: [
|
|
@@ -194,35 +196,113 @@ const ContractModal = (props) => {
|
|
: [];
|
|
: [];
|
|
},
|
|
},
|
|
});
|
|
});
|
|
|
|
+ //获取OA 归档审批列表
|
|
|
|
+ const { data: auditData, run: runAudit } = useRequest(
|
|
|
|
+ (data) => queryAuditByCode({ ...data, extend_type: 0 }),
|
|
|
|
+ {
|
|
|
|
+ manual: true,
|
|
|
|
+ },
|
|
|
|
+ );
|
|
|
|
+ //获取OA 作废审批列表
|
|
|
|
+ const {
|
|
|
|
+ data: auditCelData,
|
|
|
|
+ run: runCalAudit,
|
|
|
|
+ refresh,
|
|
|
|
+ } = useRequest((data) => queryAuditByCode({ ...data, extend_type: 1 }), {
|
|
|
|
+ manual: true,
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ useEffect(() => {
|
|
|
|
+ if (!visible) {
|
|
|
|
+ setAuditList([]);
|
|
|
|
+ setCompanyDepList([]);
|
|
|
|
+ setArchivesDepList([]);
|
|
|
|
+ } else {
|
|
|
|
+ userListRun();
|
|
|
|
+ depListRun();
|
|
|
|
+ runCompany();
|
|
|
|
+ if (data?.status >= Status.Checking) runAudit({ extend_code: data.code });
|
|
|
|
+ if (data?.status >= Status.CalChecking)
|
|
|
|
+ runCalAudit({ extend_code: data.code });
|
|
|
|
+ }
|
|
|
|
+ }, [visible]);
|
|
|
|
+
|
|
|
|
+ useEffect(() => {
|
|
|
|
+ form.resetFields();
|
|
|
|
+ }, [data]);
|
|
|
|
|
|
const isSuper = useMemo(() => {
|
|
const isSuper = useMemo(() => {
|
|
- if (user?.Permission['menu-001-audit']) return true;
|
|
|
|
|
|
+ // if (user?.Permission['menu-001-audit']) return true;
|
|
|
|
+ // return false;
|
|
|
|
+ if (type == Type.add || type == Type.cancel) 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;
|
|
return false;
|
|
- }, [user]);
|
|
|
|
|
|
+ }, [user, data, auditData, auditCelData]);
|
|
|
|
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
if (type !== Type.add) return;
|
|
if (type !== Type.add) return;
|
|
|
|
+ if (!company) {
|
|
|
|
+ setCompanyDepList([]);
|
|
|
|
+ setArchivesDepList([]);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ const deps = getDepItemById(company)?.children;
|
|
|
|
+ if (deps) setCompanyDepList(deps);
|
|
const item = companyData?.find((item) => item.ID == company);
|
|
const item = companyData?.find((item) => item.ID == company);
|
|
if (item?.Flag == 1) {
|
|
if (item?.Flag == 1) {
|
|
- //公司为本部
|
|
|
|
- setDepDisable(false);
|
|
|
|
- form.setFieldsValue({
|
|
|
|
- dep_id: '',
|
|
|
|
- archives_dep: '',
|
|
|
|
- created_dep: '',
|
|
|
|
- deal_by: user?.CName,
|
|
|
|
- });
|
|
|
|
|
|
+ //公司为本部 经办人为自己并不可编辑 合同存档部门从财务和行政部选
|
|
|
|
+ setDealDisable(false);
|
|
|
|
+ setArchivesDepList(archivesOptions);
|
|
|
|
+ form.setFieldsValue({ deal_by: user?.CName });
|
|
} else {
|
|
} else {
|
|
- setDepDisable(true);
|
|
|
|
- form.setFieldsValue({
|
|
|
|
- dep_id: '综合管理部',
|
|
|
|
- archives_dep: '综合管理部',
|
|
|
|
- created_dep: '综合管理部',
|
|
|
|
- deal_by: '',
|
|
|
|
- });
|
|
|
|
|
|
+ //公司为分子公司 经办人为手动输入 合同存档部门从所选分子公司的子部门选择
|
|
|
|
+ setDealDisable(true);
|
|
|
|
+ setArchivesDepList(deps);
|
|
|
|
+ form.setFieldsValue({ deal_by: '' });
|
|
}
|
|
}
|
|
}, [company]);
|
|
}, [company]);
|
|
|
|
+
|
|
|
|
+ useEffect(() => {
|
|
|
|
+ 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) {
|
|
|
|
+ let params = {
|
|
|
|
+ company_id: item.ID,
|
|
|
|
+ company_code: item.Code,
|
|
|
|
+ dep_code,
|
|
|
|
+ parent_code,
|
|
|
|
+ };
|
|
|
|
+ runCode(params);
|
|
|
|
+ }
|
|
|
|
+ }, [dep_id, parent_code]);
|
|
|
|
+
|
|
|
|
+ //获取审批流逻辑
|
|
|
|
+ useEffect(() => {
|
|
|
|
+ if (type !== Type.add) return;
|
|
|
|
+ const param = { ...advance };
|
|
|
|
+ let formValues = [];
|
|
|
|
+ const item = companyData?.find((item) => item.ID == company);
|
|
|
|
+ formValues.push({
|
|
|
|
+ ...formData[0],
|
|
|
|
+ value: item?.Flag == 1 ? ['是'] : ['否'],
|
|
|
|
+ });
|
|
|
|
+ if (archives_dep)
|
|
|
|
+ formValues.push({ ...formData[1], value: [archives_dep] });
|
|
|
|
+ param.formComponentValues = formValues;
|
|
|
|
+ runAuditList(param);
|
|
|
|
+ }, [company, archives_dep]);
|
|
|
|
+
|
|
useEffect(() => {
|
|
useEffect(() => {
|
|
|
|
+ if (type !== Type.add) return;
|
|
const project_code = projectList?.find(
|
|
const project_code = projectList?.find(
|
|
(item) => item.project_name == project_name,
|
|
(item) => item.project_name == project_name,
|
|
)?.project_full_code;
|
|
)?.project_full_code;
|
|
@@ -239,7 +319,6 @@ const ContractModal = (props) => {
|
|
const disableds = useMemo(() => {
|
|
const disableds = useMemo(() => {
|
|
if (!visible) {
|
|
if (!visible) {
|
|
setIsPass(1);
|
|
setIsPass(1);
|
|
- setDepDisable(false);
|
|
|
|
setDealDisable(false);
|
|
setDealDisable(false);
|
|
}
|
|
}
|
|
if (type == Type.add) {
|
|
if (type == Type.add) {
|
|
@@ -259,7 +338,6 @@ const ContractModal = (props) => {
|
|
},
|
|
},
|
|
onChange({ file, fileList }) {
|
|
onChange({ file, fileList }) {
|
|
if (file.status !== 'uploading') {
|
|
if (file.status !== 'uploading') {
|
|
- console.log(file, fileList);
|
|
|
|
const list = fileList.map((item) => item.response?.data?.attach);
|
|
const list = fileList.map((item) => item.response?.data?.attach);
|
|
form.setFieldsValue({ attach: list });
|
|
form.setFieldsValue({ attach: list });
|
|
}
|
|
}
|
|
@@ -272,16 +350,31 @@ const ContractModal = (props) => {
|
|
},
|
|
},
|
|
onChange({ file, fileList }) {
|
|
onChange({ file, fileList }) {
|
|
if (file.status !== 'uploading') {
|
|
if (file.status !== 'uploading') {
|
|
- console.log(file, fileList);
|
|
|
|
const list = fileList.map((item) => item.response?.data?.attach);
|
|
const list = fileList.map((item) => item.response?.data?.attach);
|
|
form.setFieldsValue({ attach_extend: list });
|
|
form.setFieldsValue({ attach_extend: list });
|
|
}
|
|
}
|
|
},
|
|
},
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ //获取提交审批流所需form字段
|
|
|
|
+ const getAuditData = (values, type) => {
|
|
|
|
+ // 合同类型type "1" 归档 “2”作废
|
|
|
|
+ const flag =
|
|
|
|
+ companyData?.find((item) => item.ID == values.company)?.Flag == 1
|
|
|
|
+ ? '是'
|
|
|
|
+ : '否';
|
|
|
|
+ const newValues = [[flag], [values.archives_dep], [values.code], [type]];
|
|
|
|
+ const form = formData.map((item, index) => {
|
|
|
|
+ return { ...item, value: newValues[index] };
|
|
|
|
+ });
|
|
|
|
+ return form;
|
|
|
|
+ };
|
|
|
|
+
|
|
const handleSubmit = () => {
|
|
const handleSubmit = () => {
|
|
form.validateFields().then((values) => {
|
|
form.validateFields().then((values) => {
|
|
if (type == Type.add) {
|
|
if (type == Type.add) {
|
|
|
|
+ const form = getAuditData(values, '1');
|
|
|
|
+ const audit_list = auditList.map((item) => item.value);
|
|
values.effect_on = dayjs(values.effect_on).format(FORMAT);
|
|
values.effect_on = dayjs(values.effect_on).format(FORMAT);
|
|
values.created_on = values.created_on || dayjs().format(FORMAT);
|
|
values.created_on = values.created_on || dayjs().format(FORMAT);
|
|
if (parent_id) values.parent_id = parent_id;
|
|
if (parent_id) values.parent_id = parent_id;
|
|
@@ -297,46 +390,34 @@ const ContractModal = (props) => {
|
|
const companyItem = companyData?.find(
|
|
const companyItem = companyData?.find(
|
|
(item) => item.ID == values.company_id,
|
|
(item) => item.ID == values.company_id,
|
|
);
|
|
);
|
|
- //所属公司为本部
|
|
|
|
- if (companyItem.Flag == 1) {
|
|
|
|
- const item = getDepItemById(values.dep_id);
|
|
|
|
- if (item) {
|
|
|
|
- values.dep_name = item.Name;
|
|
|
|
- values.dep_code = item.Code;
|
|
|
|
- }
|
|
|
|
- values.company_name = companyItem.Name;
|
|
|
|
- } else {
|
|
|
|
- //为分子公司
|
|
|
|
- values.company_name = companyItem.Name;
|
|
|
|
- values.company_code = companyItem.Code;
|
|
|
|
- values.dep_name = '综合管理部';
|
|
|
|
- values.dep_code = '综合管理部';
|
|
|
|
- values.dep_id = 0;
|
|
|
|
- }
|
|
|
|
|
|
+ values.company_name = companyItem.Name;
|
|
|
|
+ values.company_code = companyItem.Code;
|
|
|
|
+ const depItem = getDepItemById(values.dep_id);
|
|
|
|
+ values.dep_name = depItem?.Name;
|
|
|
|
+ values.dep_code = depItem?.Code;
|
|
values.created_by = user?.ID;
|
|
values.created_by = user?.ID;
|
|
- handleOk(values, Type.add);
|
|
|
|
|
|
+ handleOk(values, Type.add, form, audit_list);
|
|
} else if (type == Type.cancel) {
|
|
} else if (type == Type.cancel) {
|
|
|
|
+ const form = getAuditData(values, '2');
|
|
|
|
+ const audit_list = auditData?.OaAuditList?.map((item) => item?.auditor);
|
|
let result = {
|
|
let result = {
|
|
id: data?.id,
|
|
id: data?.id,
|
|
cancel_desc: values.cancel_desc,
|
|
cancel_desc: values.cancel_desc,
|
|
|
|
+ code: data?.code,
|
|
};
|
|
};
|
|
- handleOk(result, Type.cancel);
|
|
|
|
|
|
+ handleOk(result, Type.cancel, form, audit_list);
|
|
} else if (data?.status == Status.Checking) {
|
|
} else if (data?.status == Status.Checking) {
|
|
let result = {
|
|
let result = {
|
|
- id: data?.id,
|
|
|
|
- check_by: user?.CName,
|
|
|
|
- check_result: values.check_result,
|
|
|
|
- is_pass: values.is_pass,
|
|
|
|
- check_desc: values?.check_desc,
|
|
|
|
|
|
+ id: auditData?.id,
|
|
|
|
+ status: values.is_pass,
|
|
|
|
+ desc: '',
|
|
};
|
|
};
|
|
handleOk(result, data?.status);
|
|
handleOk(result, data?.status);
|
|
} else if (data?.status == Status.CalChecking) {
|
|
} else if (data?.status == Status.CalChecking) {
|
|
let result = {
|
|
let result = {
|
|
- id: data?.id,
|
|
|
|
- cancel_check_by: user?.CName,
|
|
|
|
- cancel_check_result: values.cancel_check_result,
|
|
|
|
- is_pass: values.is_pass,
|
|
|
|
- // check_desc: values?.check_desc,
|
|
|
|
|
|
+ id: auditCelData?.id,
|
|
|
|
+ status: values.is_pass,
|
|
|
|
+ desc: '',
|
|
};
|
|
};
|
|
handleOk(result, data?.status);
|
|
handleOk(result, data?.status);
|
|
}
|
|
}
|
|
@@ -358,6 +439,27 @@ const ContractModal = (props) => {
|
|
return fun(depList);
|
|
return fun(depList);
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ const getDescription = (node) => {
|
|
|
|
+ let str = node?.AuditRoleInfo
|
|
|
|
+ ? `审批人:${node?.AuditRoleInfo.Name || '-'}`
|
|
|
|
+ : `审批人:${node?.AuditorUser.CName || '-'}`;
|
|
|
|
+ if (node.desc) {
|
|
|
|
+ return (
|
|
|
|
+ <div>
|
|
|
|
+ {str}
|
|
|
|
+ <div>
|
|
|
|
+ <Tooltip title={node.desc}>
|
|
|
|
+ <span style={{ color: '#1A73E8', textDecoration: 'undeline' }}>
|
|
|
|
+ 审批意见
|
|
|
|
+ </span>
|
|
|
|
+ </Tooltip>
|
|
|
|
+ </div>
|
|
|
|
+ </div>
|
|
|
|
+ );
|
|
|
|
+ }
|
|
|
|
+ return str;
|
|
|
|
+ };
|
|
|
|
+
|
|
return (
|
|
return (
|
|
<Modal
|
|
<Modal
|
|
width={'85%'}
|
|
width={'85%'}
|
|
@@ -367,7 +469,9 @@ const ContractModal = (props) => {
|
|
cancelText="返回"
|
|
cancelText="返回"
|
|
onOk={handleSubmit}
|
|
onOk={handleSubmit}
|
|
onCancel={handleCancel}
|
|
onCancel={handleCancel}
|
|
- // okButtonProps={type == Type.detail ? { disabled: true } : null}
|
|
|
|
|
|
+ okButtonProps={
|
|
|
|
+ type == Type.detail || !isSuper ? { disabled: true } : null
|
|
|
|
+ }
|
|
destroyOnClose
|
|
destroyOnClose
|
|
>
|
|
>
|
|
<Divider />
|
|
<Divider />
|
|
@@ -429,7 +533,7 @@ const ContractModal = (props) => {
|
|
<Form.Item
|
|
<Form.Item
|
|
name="dep_id"
|
|
name="dep_id"
|
|
label="所属部门:"
|
|
label="所属部门:"
|
|
- initialValue={data?.dep_id || data?.dep_name}
|
|
|
|
|
|
+ initialValue={data?.dep_name || data?.dep_id}
|
|
>
|
|
>
|
|
<TreeSelect
|
|
<TreeSelect
|
|
style={{ width: '100%' }}
|
|
style={{ width: '100%' }}
|
|
@@ -441,9 +545,9 @@ const ContractModal = (props) => {
|
|
value: 'ID',
|
|
value: 'ID',
|
|
children: 'children',
|
|
children: 'children',
|
|
}}
|
|
}}
|
|
- disabled={disableds.contract || depDisable}
|
|
|
|
|
|
+ disabled={disableds.contract}
|
|
dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
- treeData={depList?.find((item) => item.Code == 'GT')?.children}
|
|
|
|
|
|
+ treeData={companyDepList}
|
|
/>
|
|
/>
|
|
</Form.Item>
|
|
</Form.Item>
|
|
</Col>
|
|
</Col>
|
|
@@ -463,12 +567,12 @@ const ContractModal = (props) => {
|
|
},
|
|
},
|
|
]}
|
|
]}
|
|
>
|
|
>
|
|
- <Input disabled={!depDisable} />
|
|
|
|
|
|
+ <Input disabled={!dealDisable} />
|
|
{/* <Select
|
|
{/* <Select
|
|
showSearch
|
|
showSearch
|
|
style={{ width: '100%' }}
|
|
style={{ width: '100%' }}
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
- disabled={!depDisable}
|
|
|
|
|
|
+ disabled={!dealDisable}
|
|
filterOption={(input, option) =>
|
|
filterOption={(input, option) =>
|
|
(option?.label ?? '')
|
|
(option?.label ?? '')
|
|
.toLowerCase()
|
|
.toLowerCase()
|
|
@@ -501,14 +605,14 @@ const ContractModal = (props) => {
|
|
placeholder="请选择"
|
|
placeholder="请选择"
|
|
showSearch
|
|
showSearch
|
|
allowClear
|
|
allowClear
|
|
- disabled={disableds.contract || depDisable}
|
|
|
|
|
|
+ disabled={disableds.contract}
|
|
fieldNames={{
|
|
fieldNames={{
|
|
label: 'Name',
|
|
label: 'Name',
|
|
value: 'Name',
|
|
value: 'Name',
|
|
children: 'children',
|
|
children: 'children',
|
|
}}
|
|
}}
|
|
dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
dropdownStyle={{ maxHeight: 400, overflow: 'auto' }}
|
|
- treeData={depList?.find((item) => item.Code == 'GT')?.children}
|
|
|
|
|
|
+ treeData={companyDepList}
|
|
/>
|
|
/>
|
|
</Form.Item>
|
|
</Form.Item>
|
|
</Col>
|
|
</Col>
|
|
@@ -529,7 +633,7 @@ const ContractModal = (props) => {
|
|
},
|
|
},
|
|
]}
|
|
]}
|
|
>
|
|
>
|
|
- <Radio.Group>
|
|
|
|
|
|
+ <Radio.Group disabled={disableds.contract}>
|
|
<Radio value={1}>是</Radio>
|
|
<Radio value={1}>是</Radio>
|
|
<Radio value={0}>否</Radio>
|
|
<Radio value={0}>否</Radio>
|
|
</Radio.Group>
|
|
</Radio.Group>
|
|
@@ -797,17 +901,10 @@ const ContractModal = (props) => {
|
|
>
|
|
>
|
|
<Select
|
|
<Select
|
|
style={{ width: '100%' }}
|
|
style={{ width: '100%' }}
|
|
- options={[
|
|
|
|
- {
|
|
|
|
- value: '财务部',
|
|
|
|
- label: '财务部',
|
|
|
|
- },
|
|
|
|
- {
|
|
|
|
- value: '行政部',
|
|
|
|
- label: '行政部',
|
|
|
|
- },
|
|
|
|
- ]}
|
|
|
|
- disabled={disableds.contract || depDisable}
|
|
|
|
|
|
+ options={archivesDepList?.map((item) => {
|
|
|
|
+ return { label: item.Name, value: item.ID };
|
|
|
|
+ })}
|
|
|
|
+ disabled={disableds.contract}
|
|
/>
|
|
/>
|
|
</Form.Item>
|
|
</Form.Item>
|
|
</Col>
|
|
</Col>
|
|
@@ -854,7 +951,9 @@ const ContractModal = (props) => {
|
|
<>
|
|
<>
|
|
<ModuleTitle title="归档流程" />
|
|
<ModuleTitle title="归档流程" />
|
|
<div className={styles.modelItem}>
|
|
<div className={styles.modelItem}>
|
|
- <Steps
|
|
|
|
|
|
+ <AuditSteps {...auditData} statusText="已归档" />
|
|
|
|
+ {/* {renderAudit()} */}
|
|
|
|
+ {/* <Steps
|
|
current={data?.status == Status.Checking ? 1 : 2}
|
|
current={data?.status == Status.Checking ? 1 : 2}
|
|
status={
|
|
status={
|
|
data?.status == Status.CheckReject ? 'error' : 'process'
|
|
data?.status == Status.CheckReject ? 'error' : 'process'
|
|
@@ -901,7 +1000,7 @@ const ContractModal = (props) => {
|
|
: StatusText[data?.status],
|
|
: StatusText[data?.status],
|
|
},
|
|
},
|
|
]}
|
|
]}
|
|
- />
|
|
|
|
|
|
+ /> */}
|
|
</div>
|
|
</div>
|
|
</>
|
|
</>
|
|
)}
|
|
)}
|
|
@@ -929,7 +1028,7 @@ const ContractModal = (props) => {
|
|
label: '同意',
|
|
label: '同意',
|
|
},
|
|
},
|
|
{
|
|
{
|
|
- value: 0,
|
|
|
|
|
|
+ value: 2,
|
|
label: '拒绝',
|
|
label: '拒绝',
|
|
},
|
|
},
|
|
]}
|
|
]}
|
|
@@ -946,7 +1045,7 @@ const ContractModal = (props) => {
|
|
</Form.Item>
|
|
</Form.Item>
|
|
</Col>
|
|
</Col>
|
|
</Row>
|
|
</Row>
|
|
- {!isPass && (
|
|
|
|
|
|
+ {isPass == 2 && (
|
|
<Form.Item
|
|
<Form.Item
|
|
name="check_desc"
|
|
name="check_desc"
|
|
label="拒绝原因:"
|
|
label="拒绝原因:"
|
|
@@ -999,7 +1098,8 @@ const ContractModal = (props) => {
|
|
<>
|
|
<>
|
|
<ModuleTitle title="作废流程" />
|
|
<ModuleTitle title="作废流程" />
|
|
<div className={styles.modelItem}>
|
|
<div className={styles.modelItem}>
|
|
- <Steps
|
|
|
|
|
|
+ <AuditSteps {...auditCelData} statusText="已作废" />
|
|
|
|
+ {/* <Steps
|
|
current={data?.status == Status.CalChecking ? 1 : 2}
|
|
current={data?.status == Status.CalChecking ? 1 : 2}
|
|
status={
|
|
status={
|
|
data?.status == Status.CalCheckReject ? 'error' : 'process'
|
|
data?.status == Status.CalCheckReject ? 'error' : 'process'
|
|
@@ -1035,7 +1135,7 @@ const ContractModal = (props) => {
|
|
title: StatusText[data?.status],
|
|
title: StatusText[data?.status],
|
|
},
|
|
},
|
|
]}
|
|
]}
|
|
- />
|
|
|
|
|
|
+ /> */}
|
|
</div>
|
|
</div>
|
|
</>
|
|
</>
|
|
)}
|
|
)}
|
|
@@ -1091,21 +1191,22 @@ const ContractModal = (props) => {
|
|
)}
|
|
)}
|
|
</>
|
|
</>
|
|
)}
|
|
)}
|
|
- {/* {auditList.length > 0 && (
|
|
|
|
|
|
+ {auditList.length > 0 && (
|
|
<>
|
|
<>
|
|
<ModuleTitle title="审批流程" />
|
|
<ModuleTitle title="审批流程" />
|
|
<div className={styles.modelItem}>
|
|
<div className={styles.modelItem}>
|
|
<Steps
|
|
<Steps
|
|
current={1}
|
|
current={1}
|
|
- items={auditList.map((item) => {
|
|
|
|
|
|
+ items={auditList.map((item, index) => {
|
|
return {
|
|
return {
|
|
- title: item.name,
|
|
|
|
|
|
+ title: `审批${index + 1}`,
|
|
|
|
+ description: `审批人:${item.name}`,
|
|
};
|
|
};
|
|
})}
|
|
})}
|
|
/>
|
|
/>
|
|
</div>
|
|
</div>
|
|
</>
|
|
</>
|
|
- )} */}
|
|
|
|
|
|
+ )}
|
|
</Form>
|
|
</Form>
|
|
<Divider />
|
|
<Divider />
|
|
</Modal>
|
|
</Modal>
|