|
@@ -40,6 +40,8 @@ import ApprovalProcess from './ApprovalProcess';
|
|
|
import { uuidv4 } from '@antv/xflow';
|
|
|
import AliyunOSSUpload from '@/components/OssUpload/AliyunOssUploader';
|
|
|
import AttachmentTable from '@/components/AttachmentTable';
|
|
|
+import { getToken } from '@/utils/utils';
|
|
|
+import LuckyExcel from 'luckyexcel';
|
|
|
|
|
|
const { TextArea } = Input;
|
|
|
const { Option } = Select;
|
|
@@ -52,7 +54,7 @@ function CommitAuditModal(props) {
|
|
|
dispatch,
|
|
|
visible,
|
|
|
onClose,
|
|
|
- loading,
|
|
|
+ // loading,
|
|
|
version,
|
|
|
versionList,
|
|
|
flowDetail,
|
|
@@ -75,6 +77,7 @@ function CommitAuditModal(props) {
|
|
|
const [curNodeIdx, setCurNodeIdx] = useState(-1);
|
|
|
|
|
|
const [dataSource, setDataSource] = useState([]);
|
|
|
+ const [loading, setLoading] = useState(false);
|
|
|
const uploadList = useRef([]);
|
|
|
|
|
|
useEffect(() => {
|
|
@@ -484,63 +487,74 @@ function CommitAuditModal(props) {
|
|
|
}
|
|
|
|
|
|
const flowPath = result.map(item => getFlowPath(item));
|
|
|
- const formList = await getFromData(result);
|
|
|
- let params = {
|
|
|
- desc: fieldsValue.desc,
|
|
|
- // 审核流程id
|
|
|
- // flow_id: approvalNode?.flow_id || 0,
|
|
|
- // node_level_id: approvalNode?.flow_id ? 1 : 0,
|
|
|
-
|
|
|
- id: version.id,
|
|
|
- project_id: version.project_id,
|
|
|
- cur_template_node_id: version.template_node_id * 1, // 当前节点
|
|
|
- next_template_node_id: serviceNode.Id * 1, // 审核完成后的业务节点
|
|
|
- // template_node_id: result[0][0], // 将要流转的节点审批节点
|
|
|
- // flow_path:flow_path, //审批节点数组
|
|
|
- // 模板id.一致就行
|
|
|
- template_id: version.template_id,
|
|
|
- cur_template_id: version.template_id,
|
|
|
- next_template_id: version.template_id,
|
|
|
- };
|
|
|
- if (result.length <= 0) {
|
|
|
- //直接走业务节点
|
|
|
- } else if (result.length <= 1 && result[0]?.length <= 1) {
|
|
|
- //单个审批节点
|
|
|
- let approvalNode = flowDetail.nodes.find?.(item => item.Id == result[0][0]);
|
|
|
- params.flow_id = approvalNode?.flow_id || 0;
|
|
|
- params.node_level_id = approvalNode?.flow_id ? 1 : 0;
|
|
|
- params.template_node_id = result[0][0]; // 将要流转的节点审批节点
|
|
|
- params.form_list = formList; //创建钉钉表单所需数据
|
|
|
- if (approvalNode?.Id) {
|
|
|
- if (!approvalNode?.flow_id) {
|
|
|
- hasFlowId = false;
|
|
|
+ setLoading(true);
|
|
|
+ try {
|
|
|
+ const formList = await getFromData(result);
|
|
|
+ let params = {
|
|
|
+ desc: fieldsValue.desc,
|
|
|
+ // 审核流程id
|
|
|
+ // flow_id: approvalNode?.flow_id || 0,
|
|
|
+ // node_level_id: approvalNode?.flow_id ? 1 : 0,
|
|
|
+
|
|
|
+ id: version.id,
|
|
|
+ project_id: version.project_id,
|
|
|
+ cur_template_node_id: version.template_node_id * 1, // 当前节点
|
|
|
+ next_template_node_id: serviceNode.Id * 1, // 审核完成后的业务节点
|
|
|
+ // template_node_id: result[0][0], // 将要流转的节点审批节点
|
|
|
+ // flow_path:flow_path, //审批节点数组
|
|
|
+ // 模板id.一致就行
|
|
|
+ template_id: version.template_id,
|
|
|
+ cur_template_id: version.template_id,
|
|
|
+ next_template_id: version.template_id,
|
|
|
+ };
|
|
|
+ // if (serviceNode.node_type_psr == 3 || serviceNode.node_type_psr == 4) {
|
|
|
+ // params.data = await uploadExcelByUrl(serviceNode.node_type_psr, version.id);
|
|
|
+ // }
|
|
|
+ params.data = await uploadExcelByUrl(3, version.id);
|
|
|
+ console.log(params);
|
|
|
+
|
|
|
+ if (result.length <= 0) {
|
|
|
+ //直接走业务节点
|
|
|
+ } else if (result.length <= 1 && result[0]?.length <= 1) {
|
|
|
+ //单个审批节点
|
|
|
+ let approvalNode = flowDetail.nodes.find?.(item => item.Id == result[0][0]);
|
|
|
+ params.flow_id = approvalNode?.flow_id || 0;
|
|
|
+ params.node_level_id = approvalNode?.flow_id ? 1 : 0;
|
|
|
+ params.template_node_id = result[0][0]; // 将要流转的节点审批节点
|
|
|
+ params.form_list = formList; //创建钉钉表单所需数据
|
|
|
+ if (approvalNode?.Id) {
|
|
|
+ if (!approvalNode?.flow_id) {
|
|
|
+ hasFlowId = false;
|
|
|
+ }
|
|
|
}
|
|
|
+ } else {
|
|
|
+ //多节点审批
|
|
|
+ params.template_node_id = result[0][0]; // 将要流转的节点审批节点
|
|
|
+ params.flow_path = flowPath;
|
|
|
+ params.form_list = formList; //创建钉钉表单所需数据
|
|
|
}
|
|
|
- } else {
|
|
|
- //多节点审批
|
|
|
- params.template_node_id = result[0][0]; // 将要流转的节点审批节点
|
|
|
- params.flow_path = flowPath;
|
|
|
- params.form_list = formList; //创建钉钉表单所需数据
|
|
|
- }
|
|
|
- if (!hasFlowId) {
|
|
|
- message.error('当前存在审批节点未绑定审批流程!请联系管理员。');
|
|
|
- return;
|
|
|
+ if (!hasFlowId) {
|
|
|
+ message.error('当前存在审批节点未绑定审批流程!请联系管理员。');
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ await querySaveBomForm({
|
|
|
+ project_id: version.project_id,
|
|
|
+ node_id: version.template_node_id,
|
|
|
+ json: JSON.stringify({ approvalProcess }),
|
|
|
+ });
|
|
|
+ params.audit_series = uuidv4();
|
|
|
+ params.files = uploadList.current.join(',');
|
|
|
+ onSubmitNextNode(params);
|
|
|
+ } catch (error) {
|
|
|
+ console.error(error);
|
|
|
}
|
|
|
- await querySaveBomForm({
|
|
|
- project_id: version.project_id,
|
|
|
- node_id: version.template_node_id,
|
|
|
- json: JSON.stringify({ approvalProcess }),
|
|
|
- });
|
|
|
- params.audit_series = uuidv4();
|
|
|
- params.files = uploadList.current.join(',');
|
|
|
- console.log(params);
|
|
|
- onSubmitNextNode(params);
|
|
|
};
|
|
|
const onSubmitNextNode = values => {
|
|
|
dispatch({
|
|
|
type: 'detail/submitNextNode',
|
|
|
payload: values,
|
|
|
callback: newVersion => {
|
|
|
+ setLoading(false);
|
|
|
onClose();
|
|
|
// 更新flow流程图
|
|
|
dispatch({
|
|
@@ -609,7 +623,7 @@ function CommitAuditModal(props) {
|
|
|
|
|
|
return (
|
|
|
<Modal
|
|
|
- confirmLoading={loading.global}
|
|
|
+ confirmLoading={loading}
|
|
|
destroyOnClose
|
|
|
title="提交流转目标"
|
|
|
width={1000}
|
|
@@ -680,12 +694,49 @@ function getDataValue(item) {
|
|
|
}
|
|
|
return arr;
|
|
|
}
|
|
|
+const uploadExcelByUrl = (nodeType, versionId) => {
|
|
|
+ const TEMPLATE_URL =
|
|
|
+ 'https://water-service-test.oss-cn-hangzhou.aliyuncs.com/bom/635/%E5%90%88%E5%90%8C%E6%96%87%E4%BB%B6/%E6%8A%95%E6%A0%87%E6%A8%A1%E6%9D%BF.xlsx';
|
|
|
+ const TEMPLATE_URL2 =
|
|
|
+ 'https://water-service-test.oss-cn-hangzhou.aliyuncs.com/public/bom/psr.xlsx';
|
|
|
+
|
|
|
+ return new Promise((reslove, reject) => {
|
|
|
+ LuckyExcel.transformExcelToLuckyByUrl(
|
|
|
+ nodeType == 3 ? TEMPLATE_URL : TEMPLATE_URL2,
|
|
|
+ '模板.xlsx',
|
|
|
+ async (exportJson, luckysheetfile) => {
|
|
|
+ let [record] = await getExcel(versionId);
|
|
|
+
|
|
|
+ let len = exportJson.sheets.length;
|
|
|
+ record.order = len - 1;
|
|
|
+ record.index = String(len);
|
|
|
+ record.status = '0';
|
|
|
+ record.name = '投标成本';
|
|
|
+ var res = [...exportJson.sheets, record];
|
|
|
+ console.log(res)
|
|
|
+ reslove(JSON.stringify(res));
|
|
|
+ }
|
|
|
+ );
|
|
|
+ });
|
|
|
+};
|
|
|
+
|
|
|
+async function getExcel(gridKey) {
|
|
|
+ var formData = new FormData();
|
|
|
+ formData.append('gridKey', gridKey);
|
|
|
+ let res = await fetch(
|
|
|
+ `/api/v1/purchase/record/sheet?gridKey=${gridKey}&JWT-TOKEN=${getToken()}`,
|
|
|
+ {
|
|
|
+ method: 'POST',
|
|
|
+ body: formData,
|
|
|
+ }
|
|
|
+ ).then(response => response.text());
|
|
|
+ return JSON.parse(JSON.parse(res));
|
|
|
+}
|
|
|
|
|
|
-export default connect(({ xflow, detail, user, loading }) => ({
|
|
|
+export default connect(({ xflow, detail, user }) => ({
|
|
|
flowDetail: xflow.flowDetail,
|
|
|
versionList: detail.versionList,
|
|
|
currentUser: user.currentUser,
|
|
|
userList: user.list,
|
|
|
OSSData: detail.OSSData,
|
|
|
- loading,
|
|
|
}))(CommitAuditModal);
|