From b3e1ef15f5ad9e3bf027d2b9725ec422c20c28ce Mon Sep 17 00:00:00 2001 From: 陈鑫涛 <10125295+chen-xintao97@user.noreply.gitee.com> Date: Wed, 19 Mar 2025 16:07:13 +0800 Subject: [PATCH] 新增页面 --- .umirc.ts | 8 +++++++- package.json | 1 + pnpm-lock.yaml | 951 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------- src/components/Common/AssignmentField.js | 142 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonBill/index.js | 2691 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonBill/index.less | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonBillEvent.js | 9616 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonExamInfo/index.js | 425 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonExamInfo/index.less | 307 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonListEdit.js | 275 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonListEditEvent.js | 2900 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonNewBill.js | 3179 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonNewBillEvent.js | 5745 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonView/index.js | 432 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonView/index.less | 0 src/components/Common/CommonViewDragable/index.js | 637 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonViewDragable/index.less | 65 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonViewDragable/rglUtils.js | 337 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonViewTable/index.js | 430 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/CommonViewTable/index.less | 0 src/components/Common/ContextMenuModal.js | 182 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/WorkCalendar/WorkCalendar.js | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/WorkCalendar/index.less | 163 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/components/Common/commonFunc.js | 2 +- src/components/CommonClassifyEvent/CommonClassify.js | 176 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ src/global.less | 1 + src/routes/commonClassify/commonClassify.css | 25 +++++++++++++++++++++++++ src/routes/commonClassify/commonClassify.js | 34 ++++++++++++++++++++++++++++++++++ src/routes/commonList/commonBill.js | 23 +++++++++++++++++++++++ src/routes/commonList/commonListEdit.js | 3 +-- src/routes/commonList/commonNewBill.js | 31 +++++++++++++++++++++++++++++++ src/routes/tab/tab.js | 8 ++++++++ 32 files changed, 29129 insertions(+), 18 deletions(-) create mode 100644 src/components/Common/AssignmentField.js create mode 100644 src/components/Common/CommonBill/index.js create mode 100644 src/components/Common/CommonBill/index.less create mode 100644 src/components/Common/CommonBillEvent.js create mode 100644 src/components/Common/CommonExamInfo/index.js create mode 100644 src/components/Common/CommonExamInfo/index.less create mode 100644 src/components/Common/CommonListEdit.js create mode 100644 src/components/Common/CommonListEditEvent.js create mode 100644 src/components/Common/CommonNewBill.js create mode 100644 src/components/Common/CommonNewBillEvent.js create mode 100644 src/components/Common/CommonView/index.js create mode 100644 src/components/Common/CommonView/index.less create mode 100644 src/components/Common/CommonViewDragable/index.js create mode 100644 src/components/Common/CommonViewDragable/index.less create mode 100644 src/components/Common/CommonViewDragable/rglUtils.js create mode 100644 src/components/Common/CommonViewTable/index.js create mode 100644 src/components/Common/CommonViewTable/index.less create mode 100644 src/components/Common/ContextMenuModal.js create mode 100644 src/components/Common/WorkCalendar/WorkCalendar.js create mode 100644 src/components/Common/WorkCalendar/index.less create mode 100644 src/components/CommonClassifyEvent/CommonClassify.js create mode 100644 src/routes/commonClassify/commonClassify.css create mode 100644 src/routes/commonClassify/commonClassify.js create mode 100644 src/routes/commonList/commonBill.js create mode 100644 src/routes/commonList/commonNewBill.js diff --git a/.umirc.ts b/.umirc.ts index 2a964c8..93d4369 100644 --- a/.umirc.ts +++ b/.umirc.ts @@ -7,7 +7,13 @@ export default defineConfig({ { path: '/indexPage', component: '@/routes/indexPage', - routes: [{ path: '/indexPage/CommonList' }], + routes: [ + { path: '/indexPage/CommonList' }, + { path: '/indexPage/CommonNewBill' }, + { path: '/indexPage/CommonBill' }, + { path: '/indexPage/CommonListEdit' }, + { path: '/indexPage/CommonClassify' }, + ], }, ], diff --git a/package.json b/package.json index 37f6e3f..8b8705d 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ "moment": "^2.30.1", "react-dnd": "^14.0.5", "react-dnd-html5-backend": "^14.1.0", + "react-grid-layout": "^1.5.1", "react-highlight-words": "^0.21.0", "react-pdf": "^9.2.1", "react-resizable": "^3.0.5", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b024812..0cf08d0 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -14,18 +14,54 @@ importers: '@ant-design/icons': specifier: ^5.6.1 version: 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + '@js-preview/docx': + specifier: ^1.6.4 + version: 1.6.4(core-js@3.34.0) + '@js-preview/excel': + specifier: ^1.7.14 + version: 1.7.14 antd: specifier: ^5.24.3 version: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + antd-mobile: + specifier: 2.3.4 + version: 2.3.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) antd-v4: specifier: npm:antd@4.24.16 version: antd@4.24.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + braft-editor: + specifier: ^2.3.9 + version: 2.3.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + immutability-helper: + specifier: ^3.1.1 + version: 3.1.1 lodash: specifier: ^4.17.21 version: 4.17.21 moment: specifier: ^2.30.1 version: 2.30.1 + react-dnd: + specifier: ^14.0.5 + version: 14.0.5(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.10)(@types/react@18.3.18)(react@18.3.1) + react-dnd-html5-backend: + specifier: ^14.1.0 + version: 14.1.0 + react-grid-layout: + specifier: ^1.5.1 + version: 1.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-highlight-words: + specifier: ^0.21.0 + version: 0.21.0(react@18.3.1) + react-pdf: + specifier: ^9.2.1 + version: 9.2.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-resizable: + specifier: ^3.0.5 + version: 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-sortable-hoc: + specifier: ^2.0.0 + version: 2.0.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) umi: specifier: ^4.4.6 version: 4.4.6(@babel/core@7.26.10)(@types/node@22.13.10)(@types/react@18.3.18)(eslint@8.57.1)(lightningcss@1.22.1)(prettier@2.8.8)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(rollup@3.29.5)(stylelint@14.16.1)(terser@5.39.0)(type-fest@0.20.2)(typescript@5.8.2)(webpack@5.98.0) @@ -939,6 +975,14 @@ packages: '@jridgewell/trace-mapping@0.3.25': resolution: {integrity: sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==, tarball: https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz} + '@js-preview/docx@1.6.4': + resolution: {integrity: sha512-F6Yzac5NWnXp7cKzcUYGSLQHdp5ELgpdgTzrj5i4QZkZHv4ASGHhVY0MZF4YRjpY/MwirD8C1W14CIRUcdvL7g==, tarball: https://registry.npmjs.org/@js-preview/docx/-/docx-1.6.4.tgz} + peerDependencies: + core-js: ^3.0.0 + + '@js-preview/excel@1.7.14': + resolution: {integrity: sha512-7QHtuRalWQzWIKARc/IRN8+kj1S5eWV4+cAQipzZngE3mVxMPL1RHXKJt/ONmpcKZ410egYkaBuOOs9+LctBkA==, tarball: https://registry.npmjs.org/@js-preview/excel/-/excel-1.7.14.tgz} + '@loadable/component@5.15.2': resolution: {integrity: sha512-ryFAZOX5P2vFkUdzaAtTG88IGnr9qxSdvLRvJySXcUA4B4xVWurUNADu3AnKPksxOZajljqTrDEDcYjeL4lvLw==, tarball: https://registry.npmjs.org/@loadable/component/-/component-5.15.2.tgz} engines: {node: '>=8'} @@ -1138,6 +1182,15 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + '@react-dnd/asap@4.0.1': + resolution: {integrity: sha512-kLy0PJDDwvwwTXxqTFNAAllPHD73AycE9ypWeln/IguoGBEbvFcPDbCV03G52bEcC5E+YgupBE0VzHGdC8SIXg==, tarball: https://registry.npmjs.org/@react-dnd/asap/-/asap-4.0.1.tgz} + + '@react-dnd/invariant@2.0.0': + resolution: {integrity: sha512-xL4RCQBCBDJ+GRwKTFhGUW8GXa4yoDfJrPbLblc3U09ciS+9ZJXJ3Qrcs/x2IODOdIE5kQxvMmE2UKyqUictUw==, tarball: https://registry.npmjs.org/@react-dnd/invariant/-/invariant-2.0.0.tgz} + + '@react-dnd/shallowequal@2.0.0': + resolution: {integrity: sha512-Pc/AFTdwZwEKJxFJvlxrSmGe/di+aAOBn60sremrpLo6VI/6cmiUYNNwlI5KNYttg7uypzA3ILPMPgxB2GYZEg==, tarball: https://registry.npmjs.org/@react-dnd/shallowequal/-/shallowequal-2.0.0.tgz} + '@sinclair/typebox@0.27.8': resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==, tarball: https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz} @@ -1785,6 +1838,9 @@ packages: peerDependencies: dayjs: '*' + antd-mobile@2.3.4: + resolution: {integrity: sha512-Uw02Ghc+DPzaQceJQ+5p1ZnQFafvILA0chTTen7m7c89Uzbw6Ny3zsVZDE1gfteNEIsL4JpPe0I/+aI3Q/nPAA==, tarball: https://registry.npmjs.org/antd-mobile/-/antd-mobile-2.3.4.tgz} + antd@4.24.16: resolution: {integrity: sha512-zZrK4UYxHtU6tGOOf0uG/kBRx1kTvypfuSB3GqE/SBQxFhZ/TZ+yj7Z1qwI8vGfMtUUJdLeuoCAqGDa1zPsXnQ==, tarball: https://registry.npmjs.org/antd/-/antd-4.24.16.tgz} peerDependencies: @@ -1958,6 +2014,9 @@ packages: resolution: {integrity: sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==, tarball: https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz} engines: {node: '>=8'} + bl@4.1.0: + resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==, tarball: https://registry.npmjs.org/bl/-/bl-4.1.0.tgz} + bn.js@4.12.1: resolution: {integrity: sha512-k8TVBiPkPJT9uHLdOKfFpqcfprwBFOAAXXozRubr7R7PfIuKvQlzcI4M0pALeqXN09vdaMbUdUj+pass+uULAg==, tarball: https://registry.npmjs.org/bn.js/-/bn.js-4.12.1.tgz} @@ -1985,6 +2044,31 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==, tarball: https://registry.npmjs.org/braces/-/braces-3.0.3.tgz} engines: {node: '>=8'} + braft-convert@2.3.0: + resolution: {integrity: sha512-5km+dLHk8iYDv2iEYDrDQ2ld/ZoUx66QLql0qdm5PqZEcNXc8dBHGLORfzeu3iMw1jLeAiHxtdY5+ypuIhczVg==, tarball: https://registry.npmjs.org/braft-convert/-/braft-convert-2.3.0.tgz} + peerDependencies: + react: ^16.0.0 + + braft-editor@2.3.9: + resolution: {integrity: sha512-mqdPk/zI2dhFK8tW/A4Qj/AkkARLh5L/niNw+iif5wFqb6zh15rMlrShgz1nWO/QXyAKr8XtDgxiBbR0zWwtRg==, tarball: https://registry.npmjs.org/braft-editor/-/braft-editor-2.3.9.tgz} + peerDependencies: + react: ^15.0.2|| ^16.0.0-rc || ^16.0.0 + react-dom: ^15.0.2|| ^16.0.0-rc || ^16.0.0 + + braft-finder@0.0.19: + resolution: {integrity: sha512-0kzI6/KbomJJhYX1hpjn4edCKhblyUyWdUrsgBmOrwy0vrj+pPkm69+Uf8Uj6KGAULM6LF0ooC++p7fqUGgFHw==, tarball: https://registry.npmjs.org/braft-finder/-/braft-finder-0.0.19.tgz} + peerDependencies: + react: ^16.4.1 + react-dom: ^16.4.1 + + braft-utils@3.0.13: + resolution: {integrity: sha512-92YNlc5RW3mNMo0zbWhnqz8PWr21AAPPhnfn3ZUoXM9+wBIuJQe6UyvOas+MEG9UOGFrvTDPbq60P3fdEhyMQQ==, tarball: https://registry.npmjs.org/braft-utils/-/braft-utils-3.0.13.tgz} + peerDependencies: + braft-convert: ^2.1.4 + draft-js: ^0.10.5 + draftjs-utils: ^0.9.4 + immutable: ~3.7.4 + brorand@1.1.0: resolution: {integrity: sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==, tarball: https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz} @@ -2028,6 +2112,9 @@ packages: buffer@4.9.2: resolution: {integrity: sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==, tarball: https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz} + buffer@5.7.1: + resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==, tarball: https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz} + builtin-status-codes@3.0.0: resolution: {integrity: sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==, tarball: https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz} @@ -2076,6 +2163,10 @@ packages: caniuse-lite@1.0.30001703: resolution: {integrity: sha512-kRlAGTRWgPsOj7oARC9m1okJEXdL/8fekFVcxA8Hl7GH4r/sN4OJn/i6Flde373T50KS7Y37oFbMwlE8+F42kQ==, tarball: https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001703.tgz} + canvas@3.1.0: + resolution: {integrity: sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==, tarball: https://registry.npmjs.org/canvas/-/canvas-3.1.0.tgz} + engines: {node: ^18.12.0 || >= 20.9.0} + chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==, tarball: https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz} engines: {node: '>=10'} @@ -2088,6 +2179,9 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==, tarball: https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz} engines: {node: '>= 8.10.0'} + chownr@1.1.4: + resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==, tarball: https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz} + chrome-trace-event@1.0.4: resolution: {integrity: sha512-rNjApaLzuwaOTjCiT8lSDdGN1APCiqkChLMJxJPWLunPAt5fy8xgU9/jNOchV84wfIxrA0lRQB7oCT8jrn/wrQ==, tarball: https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.4.tgz} engines: {node: '>=6.0'} @@ -2116,6 +2210,14 @@ packages: resolution: {integrity: sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==, tarball: https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz} engines: {node: '>=12'} + clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==, tarball: https://registry.npmjs.org/clsx/-/clsx-1.2.1.tgz} + engines: {node: '>=6'} + + clsx@2.1.1: + resolution: {integrity: sha512-eYm0QWBtUrBWZWG0d386OGAw16Z995PiOVo2B7bjWSbHedGl5e0ZWaq65kOGgUSNesEIDkB9ISbTg/JK9dhCZA==, tarball: https://registry.npmjs.org/clsx/-/clsx-2.1.1.tgz} + engines: {node: '>=6'} + color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==, tarball: https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz} @@ -2395,6 +2497,14 @@ packages: resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==, tarball: https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz} engines: {node: '>=0.10'} + decompress-response@6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==, tarball: https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz} + engines: {node: '>=10'} + + deep-extend@0.6.0: + resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==, tarball: https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz} + engines: {node: '>=4.0.0'} + deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==, tarball: https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz} @@ -2458,6 +2568,10 @@ packages: engines: {node: '>=0.10'} hasBin: true + detect-libc@2.0.3: + resolution: {integrity: sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==, tarball: https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.3.tgz} + engines: {node: '>=8'} + detect-newline@4.0.1: resolution: {integrity: sha512-qE3Veg1YXzGHQhlA6jzebZN2qVf6NX+A7m7qlhCGG30dJixrAQhYOsJjsnBjJkCSmuOPpCk30145fr8FV0bzog==, tarball: https://registry.npmjs.org/detect-newline/-/detect-newline-4.0.1.tgz} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -2472,6 +2586,9 @@ packages: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==, tarball: https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz} engines: {node: '>=8'} + dnd-core@14.0.1: + resolution: {integrity: sha512-+PVS2VPTgKFPYWo3vAFEA8WPbTf7/xo43TifH9G8S1KqnrQu0o77A3unrF5yOugy4mIz7K5wAVFHUcha7wsz6A==, tarball: https://registry.npmjs.org/dnd-core/-/dnd-core-14.0.1.tgz} + doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==, tarball: https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz} engines: {node: '>=0.10.0'} @@ -2512,12 +2629,28 @@ packages: dot-case@3.0.4: resolution: {integrity: sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==, tarball: https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz} + draft-convert@2.1.13: + resolution: {integrity: sha512-/h/n4JCfyO8aWby7wKBkccHdsuVbbDyHWXi/B3Zf2pN++lN1lDOIVt5ulXCcbH2Y5YJEFzMJw/YGfN+R0axxxg==, tarball: https://registry.npmjs.org/draft-convert/-/draft-convert-2.1.13.tgz} + peerDependencies: + draft-js: '>=0.7.0' + react: ^15.0.2 || ^16.0.0-rc || ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^15.0.2 || ^16.0.0-rc || ^16.0.0 || ^17.0.0 || ^18.0.0 + + draft-js-multidecorators@1.0.0: + resolution: {integrity: sha512-7qdy+YQol5iq38AoEerhgSJWhCzxvZLn1x5ODfUlGfWlg0SrZ9AXJbaxHVIjdSIZNrbVIm+WANujNxMqCmDSZQ==, tarball: https://registry.npmjs.org/draft-js-multidecorators/-/draft-js-multidecorators-1.0.0.tgz} + draft-js@0.10.5: resolution: {integrity: sha512-LE6jSCV9nkPhfVX2ggcRLA4FKs6zWq9ceuO/88BpXdNCS7mjRTgs0NsV6piUCJX9YxMsB9An33wnkMmU2sD2Zg==, tarball: https://registry.npmjs.org/draft-js/-/draft-js-0.10.5.tgz} peerDependencies: react: ^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0 react-dom: ^0.14.0 || ^15.0.0-rc || ^16.0.0-rc || ^16.0.0 + draftjs-utils@0.9.4: + resolution: {integrity: sha512-KYjABSbGpJrwrwmxVj5UhfV37MF/p0QRxKIyL+/+QOaJ8J9z1FBKxkblThbpR0nJi9lxPQWGg+gh+v0dAsSCCg==, tarball: https://registry.npmjs.org/draftjs-utils/-/draftjs-utils-0.9.4.tgz} + peerDependencies: + draft-js: ^0.10.x + immutable: 3.x.x || 4.x.x + dunder-proto@1.0.1: resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==, tarball: https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz} engines: {node: '>= 0.4'} @@ -2794,6 +2927,13 @@ packages: resolution: {integrity: sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==, tarball: https://registry.npmjs.org/execa/-/execa-7.2.0.tgz} engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0} + exenv@1.2.2: + resolution: {integrity: sha512-Z+ktTxTwv9ILfgKCk32OX3n/doe+OcLTRtqK9pcL+JsP3J1/VW8Uvl4ZjLlKqeW4rzK4oesDOGMEMRIZqtP4Iw==, tarball: https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz} + + expand-template@2.0.3: + resolution: {integrity: sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg==, tarball: https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz} + engines: {node: '>=6'} + express-http-proxy@2.1.1: resolution: {integrity: sha512-4aRQRqDQU7qNPV5av0/hLcyc0guB9UP71nCYrQEYml7YphTo8tmWf3nDZWdTJMMjFikyz9xKXaURor7Chygdwg==, tarball: https://registry.npmjs.org/express-http-proxy/-/express-http-proxy-2.1.1.tgz} engines: {node: '>=6.0.0'} @@ -2808,6 +2948,9 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==, tarball: https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz} + fast-equals@4.0.3: + resolution: {integrity: sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==, tarball: https://registry.npmjs.org/fast-equals/-/fast-equals-4.0.3.tgz} + fast-glob@3.2.12: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==, tarball: https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz} engines: {node: '>=8.6.0'} @@ -2924,6 +3067,9 @@ packages: resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==, tarball: https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz} engines: {node: '>= 0.6'} + fs-constants@1.0.0: + resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==, tarball: https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz} + fs-extra@10.1.0: resolution: {integrity: sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==, tarball: https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz} engines: {node: '>=12'} @@ -2986,6 +3132,9 @@ packages: git-hooks-list@3.2.0: resolution: {integrity: sha512-ZHG9a1gEhUMX1TvGrLdyWb9kDopCBbTnI8z4JgRMYxsijWipgjSEYoPWqBuIB0DnRnvqlQSEeVmzpeuPm7NdFQ==, tarball: https://registry.npmjs.org/git-hooks-list/-/git-hooks-list-3.2.0.tgz} + github-from-package@0.0.0: + resolution: {integrity: sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw==, tarball: https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz} + glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==, tarball: https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz} engines: {node: '>= 6'} @@ -3097,6 +3246,9 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==, tarball: https://registry.npmjs.org/he/-/he-1.2.0.tgz} hasBin: true + highlight-words-core@1.2.3: + resolution: {integrity: sha512-m1O9HW3/GNHxzSIXWw1wCNXXsgLlxrP0OI6+ycGUhiUHkikqW3OrwVHz+lxeNBe5yqLESdIcj8PowHQ2zLvUvQ==, tarball: https://registry.npmjs.org/highlight-words-core/-/highlight-words-core-1.2.3.tgz} + history@4.10.1: resolution: {integrity: sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==, tarball: https://registry.npmjs.org/history/-/history-4.10.1.tgz} @@ -3197,6 +3349,9 @@ packages: immer@8.0.4: resolution: {integrity: sha512-jMfL18P+/6P6epANRvRk6q8t+3gGhqsJ9EuJ25AXE+9bNTYtssvzeYbEd0mXRYWCmmXSIbnlpz6vd6iJlmGGGQ==, tarball: https://registry.npmjs.org/immer/-/immer-8.0.4.tgz} + immutability-helper@3.1.1: + resolution: {integrity: sha512-Q0QaXjPjwIju/28TsugCHNEASwoCcJSyJV3uO1sOIQGI0jKgm9f41Lvz0DZj3n46cNCyAZTsEYoY4C2bVRUzyQ==, tarball: https://registry.npmjs.org/immutability-helper/-/immutability-helper-3.1.1.tgz} + immutable@3.7.6: resolution: {integrity: sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==, tarball: https://registry.npmjs.org/immutable/-/immutable-3.7.6.tgz} engines: {node: '>=0.8.0'} @@ -3708,10 +3863,16 @@ packages: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==, tarball: https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz} engines: {node: '>=10'} + make-cancellable-promise@1.3.2: + resolution: {integrity: sha512-GCXh3bq/WuMbS+Ky4JBPW1hYTOU+znU+Q5m9Pu+pI8EoUqIHk9+tviOKC6/qhHh8C4/As3tzJ69IF32kdz85ww==, tarball: https://registry.npmjs.org/make-cancellable-promise/-/make-cancellable-promise-1.3.2.tgz} + make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==, tarball: https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz} engines: {node: '>=6'} + make-event-props@1.6.2: + resolution: {integrity: sha512-iDwf7mA03WPiR8QxvcVHmVWEPfMY1RZXerDVNCRYW7dUr2ppH3J58Rwb39/WG39yTZdRSxr3x+2v22tvI0VEvA==, tarball: https://registry.npmjs.org/make-event-props/-/make-event-props-1.6.2.tgz} + makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==, tarball: https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz} @@ -3744,6 +3905,9 @@ packages: resolution: {integrity: sha512-UERzLsxzllchadvbPs5aolHh65ISpKpM+ccLbOJ8/vvpBKmAWf+la7dXFy7Mr0ySHbdHrFv5kGFCUHHe6GFEmw==, tarball: https://registry.npmjs.org/memfs/-/memfs-3.5.3.tgz} engines: {node: '>= 4.0.0'} + memoize-one@4.0.3: + resolution: {integrity: sha512-QmpUu4KqDmX0plH4u+tf0riMc1KHE1+lw95cMrLlXQAFOx/xnBtwhZ52XJxd9X2O6kwKBqX32kmhbhlobD0cuw==, tarball: https://registry.npmjs.org/memoize-one/-/memoize-one-4.0.3.tgz} + meow@9.0.0: resolution: {integrity: sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==, tarball: https://registry.npmjs.org/meow/-/meow-9.0.0.tgz} engines: {node: '>=10'} @@ -3751,6 +3915,14 @@ packages: merge-descriptors@1.0.3: resolution: {integrity: sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==, tarball: https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz} + merge-refs@1.3.0: + resolution: {integrity: sha512-nqXPXbso+1dcKDpPCXvwZyJILz+vSLqGGOnDrYHQYE+B8n9JTCekVLC65AfCpR4ggVyA/45Y0iR9LDyS2iI+zA==, tarball: https://registry.npmjs.org/merge-refs/-/merge-refs-1.3.0.tgz} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + merge-stream@2.0.0: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==, tarball: https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz} @@ -3795,6 +3967,10 @@ packages: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==, tarball: https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz} engines: {node: '>=12'} + mimic-response@3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==, tarball: https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz} + engines: {node: '>=10'} + min-document@2.19.0: resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==, tarball: https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz} @@ -3819,10 +3995,16 @@ packages: resolution: {integrity: sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==, tarball: https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz} engines: {node: '>= 6'} + minimist@1.2.8: + resolution: {integrity: sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==, tarball: https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz} + minipass@7.1.2: resolution: {integrity: sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==, tarball: https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz} engines: {node: '>=16 || 14 >=14.17'} + mkdirp-classic@0.5.3: + resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==, tarball: https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz} + moment@2.30.1: resolution: {integrity: sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==, tarball: https://registry.npmjs.org/moment/-/moment-2.30.1.tgz} @@ -3837,6 +4019,9 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + napi-build-utils@2.0.0: + resolution: {integrity: sha512-GEbrYkbfF7MoNaoh2iGG84Mnf/WZfB0GdGEsM8wz7Expx/LlWf5U8t9nvJKXSp3qr5IsEbK04cBGhol/KwOsWA==, tarball: https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-2.0.0.tgz} + natural-compare-lite@1.4.0: resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==, tarball: https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz} @@ -3865,9 +4050,16 @@ packages: no-case@3.0.4: resolution: {integrity: sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==, tarball: https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz} + node-abi@3.74.0: + resolution: {integrity: sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==, tarball: https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz} + engines: {node: '>=10'} + node-abort-controller@3.1.1: resolution: {integrity: sha512-AGK2yQKIjRuqnc6VkX2Xj5d+QW8xZ87pa1UK6yA6ouUyuxfHuMP6umE5QK7UmTeOAymo+Zx1Fxiuw9rVx8taHQ==, tarball: https://registry.npmjs.org/node-abort-controller/-/node-abort-controller-3.1.1.tgz} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==, tarball: https://registry.npmjs.org/node-addon-api/-/node-addon-api-7.1.1.tgz} + node-domexception@1.0.0: resolution: {integrity: sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==, tarball: https://registry.npmjs.org/node-domexception/-/node-domexception-1.0.0.tgz} engines: {node: '>=10.5.0'} @@ -3906,6 +4098,9 @@ packages: resolution: {integrity: sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==, tarball: https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz} engines: {node: '>=0.10.0'} + normalize.css@7.0.0: + resolution: {integrity: sha512-LYaFZxj2Q1Q9e1VJ0f6laG46Rt5s9URhKyckNaA2vZnL/0gwQHWhM7ALQkp3WBQKM5sXRLQ5Ehrfkp+E/ZiCRg==, tarball: https://registry.npmjs.org/normalize.css/-/normalize.css-7.0.0.tgz} + npm-run-path@4.0.1: resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==, tarball: https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz} engines: {node: '>=8'} @@ -4092,10 +4287,18 @@ packages: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==, tarball: https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz} engines: {node: '>=8'} + path2d@0.2.2: + resolution: {integrity: sha512-+vnG6S4dYcYxZd+CZxzXCNKdELYZSKfohrk98yajCo1PtRoDgCTrrwOvK1GT0UoAdVszagDVllQc0U1vaX4NUQ==, tarball: https://registry.npmjs.org/path2d/-/path2d-0.2.2.tgz} + engines: {node: '>=6'} + pbkdf2@3.1.2: resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==, tarball: https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz} engines: {node: '>=0.12'} + pdfjs-dist@4.8.69: + resolution: {integrity: sha512-IHZsA4T7YElCKNNXtiLgqScw4zPd3pG9do8UrznC757gMd7UPeHSL2qwNNMJo4r79fl8oj1Xx+1nh2YkzdMpLQ==, tarball: https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-4.8.69.tgz} + engines: {node: '>=18'} + performance-now@2.1.0: resolution: {integrity: sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow==, tarball: https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz} @@ -4385,6 +4588,11 @@ packages: resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==, tarball: https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz} engines: {node: ^10 || ^12 || >=14} + prebuild-install@7.1.3: + resolution: {integrity: sha512-8Mf2cbV7x1cXPUILADGI3wuhfqWvtiLA1iclTDbFRZkgRQS0NqsPZphna9V+HyTEadheuPmjaJMsbzKQFOzLug==, tarball: https://registry.npmjs.org/prebuild-install/-/prebuild-install-7.1.3.tgz} + engines: {node: '>=10'} + hasBin: true + prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==, tarball: https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz} engines: {node: '>= 0.8.0'} @@ -4455,6 +4663,9 @@ packages: public-encrypt@4.0.3: resolution: {integrity: sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==, tarball: https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz} + pump@3.0.2: + resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==, tarball: https://registry.npmjs.org/pump/-/pump-3.0.2.tgz} + punycode-okam@1.4.1: resolution: {integrity: sha512-e4mSfzGfrVBJmhjp+8PHjXIz5WrvEEWB2FT+RJ6YS/ozGttTcnocuj0CtMo3dujWYe2708bTd79zeIrKBtRzCg==, tarball: https://registry.npmjs.org/punycode-okam/-/punycode-okam-1.4.1.tgz} @@ -4511,6 +4722,9 @@ packages: resolution: {integrity: sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==, tarball: https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz} engines: {node: '>= 0.8'} + rc-align@2.4.5: + resolution: {integrity: sha512-nv9wYUYdfyfK+qskThf4BQUSIadeI/dCsfaMZfNEoxm9HwOIioQ+LyqmMK6jWHAZQgOzMLaqawhuBXlF63vgjw==, tarball: https://registry.npmjs.org/rc-align/-/rc-align-2.4.5.tgz} + rc-align@4.0.15: resolution: {integrity: sha512-wqJtVH60pka/nOX7/IspElA8gjPNQKIx/ZqJ6heATCkXpe1Zg4cPVrMD2vC96wjsFFL8WsmhPbx9tdMo1qqlIA==, tarball: https://registry.npmjs.org/rc-align/-/rc-align-4.0.15.tgz} peerDependencies: @@ -4535,6 +4749,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + rc-checkbox@2.0.3: + resolution: {integrity: sha512-sSDV5AcxK5CxBTyUNj9pb0zfhdgLLsWKHwJG18ikeGoIwklcxXvIF6cI/KGVbPLFDa8mPS5WLOlLRqbq/1/ouw==, tarball: https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-2.0.3.tgz} + rc-checkbox@3.0.1: resolution: {integrity: sha512-k7nxDWxYF+jDI0ZcCvuvj71xONmWRVe5+1MKcERRR9MRyP3tZ69b+yUCSXXh+sik4/Hc9P5wHr2nnUoGS2zBjA==, tarball: https://registry.npmjs.org/rc-checkbox/-/rc-checkbox-3.0.1.tgz} peerDependencies: @@ -4547,6 +4764,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + rc-collapse@1.9.3: + resolution: {integrity: sha512-8cG+FzudmgFCC9zRGKXJZA36zoI9Dmyjp6UDi8N80sXUch0JOpsZDxgcFzw4HPpPpK/dARtTilEe9zyuspnW0w==, tarball: https://registry.npmjs.org/rc-collapse/-/rc-collapse-1.9.3.tgz} + rc-collapse@3.4.2: resolution: {integrity: sha512-jpTwLgJzkhAgp2Wpi3xmbTbbYExg6fkptL67Uu5LCRVEj6wqmy0DHTjjeynsjOLsppHGHu41t1ELntZ0lEvS/Q==, tarball: https://registry.npmjs.org/rc-collapse/-/rc-collapse-3.4.2.tgz} peerDependencies: @@ -4626,6 +4846,9 @@ packages: peerDependencies: prop-types: ^15.0 + rc-gesture@0.0.22: + resolution: {integrity: sha512-6G6qrCE0MUTXyjh/powj91XkjRjoFL4HiJLPU5lALXHvGX+/efcUjGYUrHrrw0mwQdmrmg4POqnY/bibns+G3g==, tarball: https://registry.npmjs.org/rc-gesture/-/rc-gesture-0.0.22.tgz} + rc-image@5.13.0: resolution: {integrity: sha512-iZTOmw5eWo2+gcrJMMcnd7SsxVHl3w5xlyCgsULUdJhJbnuI8i/AL0tVOsE7aLn9VfOh1qgDT3mC2G75/c7mqg==, tarball: https://registry.npmjs.org/rc-image/-/rc-image-5.13.0.tgz} peerDependencies: @@ -4829,6 +5052,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + rc-slider@8.2.0: + resolution: {integrity: sha512-rnO36M3VhMoPWh1kRuCeJoluT4duAW7+5aLaAn9oLu2pKEKsuOFUh5DmA2kEo88UmvPV6nr7HHDeZuC8SNM/lA==, tarball: https://registry.npmjs.org/rc-slider/-/rc-slider-8.2.0.tgz} + rc-steps@5.0.0: resolution: {integrity: sha512-9TgRvnVYirdhbV0C3syJFj9EhCRqoJAsxt4i1rED5o8/ZcSv5TLIYyo4H8MCjLPvbe2R+oBAm/IYBEtC+OS1Rw==, tarball: https://registry.npmjs.org/rc-steps/-/rc-steps-5.0.0.tgz} engines: {node: '>=8.x'} @@ -4843,6 +5069,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + rc-swipeout@2.0.11: + resolution: {integrity: sha512-d37Lgn4RX4OOQyuA2BFo0rGlUwrmZk5q83srH3ixJ1Y1jidr2GKjgJDbNeGUVZPNfYBL91Elu6+xfVGftWf4Lg==, tarball: https://registry.npmjs.org/rc-swipeout/-/rc-swipeout-2.0.11.tgz} + rc-switch@3.2.2: resolution: {integrity: sha512-+gUJClsZZzvAHGy1vZfnwySxj+MjLlGRyXKXScrtCTcmiYNPzxDFOxdQ/3pK1Kt/0POvwJ/6ALOR8gwdXGhs+A==, tarball: https://registry.npmjs.org/rc-switch/-/rc-switch-3.2.2.tgz} peerDependencies: @@ -4895,6 +5124,9 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + rc-tooltip@3.7.3: + resolution: {integrity: sha512-dE2ibukxxkrde7wH9W8ozHKUO4aQnPZ6qBHtrTH9LoO836PjDdiaWO73fgPB05VfJs9FbZdmGPVEbXCeOP99Ww==, tarball: https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-3.7.3.tgz} + rc-tooltip@5.2.2: resolution: {integrity: sha512-jtQzU/18S6EI3lhSGoDYhPqNpWajMtS5VV/ld1LwyfrDByQpYmw/LW6U7oFXXLukjfDHQ7Ju705A82PRNFWYhg==, tarball: https://registry.npmjs.org/rc-tooltip/-/rc-tooltip-5.2.2.tgz} peerDependencies: @@ -4933,6 +5165,9 @@ packages: react: '*' react-dom: '*' + rc-trigger@2.6.5: + resolution: {integrity: sha512-m6Cts9hLeZWsTvWnuMm7oElhf+03GOjOLfTuU0QmdB9ZrW7jR2IpI5rpNM7i9MvAAlMAmTx5Zr7g3uu/aMvZAw==, tarball: https://registry.npmjs.org/rc-trigger/-/rc-trigger-2.6.5.tgz} + rc-trigger@5.3.4: resolution: {integrity: sha512-mQv+vas0TwKcjAO2izNPkqR4j86OemLRmvL2nOzdP9OWNWA1ivoTt5hzFqYNW9zACwmTezRiN8bttrC7cZzYSw==, tarball: https://registry.npmjs.org/rc-trigger/-/rc-trigger-5.3.4.tgz} engines: {node: '>=8.x'} @@ -4968,23 +5203,62 @@ packages: react: '>=16.9.0' react-dom: '>=16.9.0' + rc@1.2.8: + resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==, tarball: https://registry.npmjs.org/rc/-/rc-1.2.8.tgz} + hasBin: true + + react-dnd-html5-backend@14.1.0: + resolution: {integrity: sha512-6ONeqEC3XKVf4eVmMTe0oPds+c5B9Foyj8p/ZKLb7kL2qh9COYxiBHv3szd6gztqi/efkmriywLUVlPotqoJyw==, tarball: https://registry.npmjs.org/react-dnd-html5-backend/-/react-dnd-html5-backend-14.1.0.tgz} + + react-dnd@14.0.5: + resolution: {integrity: sha512-9i1jSgbyVw0ELlEVt/NkCUkxy1hmhJOkePoCH713u75vzHGyXhPDm28oLfc2NMSBjZRM1Y+wRjHXJT3sPrTy+A==, tarball: https://registry.npmjs.org/react-dnd/-/react-dnd-14.0.5.tgz} + peerDependencies: + '@types/hoist-non-react-statics': '>= 3.3.1' + '@types/node': '>= 12' + '@types/react': '>= 16' + react: '>= 16.14' + peerDependenciesMeta: + '@types/hoist-non-react-statics': + optional: true + '@types/node': + optional: true + '@types/react': + optional: true + react-dom@18.3.1: resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==, tarball: https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz} peerDependencies: react: ^18.3.1 + react-draggable@4.4.6: + resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==, tarball: https://registry.npmjs.org/react-draggable/-/react-draggable-4.4.6.tgz} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + react-error-overlay@6.0.9: resolution: {integrity: sha512-nQTTcUu+ATDbrSD1BZHr5kgSD4oF8OFjxun8uAaL8RwPBacGBNPf/yAuVVdx17N8XNzRDMrZ9XcKZHCjPW+9ew==, tarball: https://registry.npmjs.org/react-error-overlay/-/react-error-overlay-6.0.9.tgz} react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==, tarball: https://registry.npmjs.org/react-fast-compare/-/react-fast-compare-3.2.2.tgz} + react-grid-layout@1.5.1: + resolution: {integrity: sha512-4Fr+kKMk0+m1HL/BWfHxi/lRuaOmDNNKQDcu7m12+NEYcen20wIuZFo789u3qWCyvUsNUxCiyf0eKq4WiJSNYw==, tarball: https://registry.npmjs.org/react-grid-layout/-/react-grid-layout-1.5.1.tgz} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + react-helmet-async@1.3.0: resolution: {integrity: sha512-9jZ57/dAn9t3q6hneQS0wukqC2ENOBgMNVEhb/ZG9ZSxUetzVIw4iAmEU38IaVg3QGYauQPhSeUTuIUtFglWpg==, tarball: https://registry.npmjs.org/react-helmet-async/-/react-helmet-async-1.3.0.tgz} peerDependencies: react: ^16.6.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.6.0 || ^17.0.0 || ^18.0.0 + react-highlight-words@0.21.0: + resolution: {integrity: sha512-SdWEeU9fIINArEPO1rO5OxPyuhdEKZQhHzZZP1ie6UeXQf+CjycT1kWaB+9bwGcVbR0NowuHK3RqgqNg6bgBDQ==, tarball: https://registry.npmjs.org/react-highlight-words/-/react-highlight-words-0.21.0.tgz} + peerDependencies: + react: ^0.14.0 || ^15.0.0 || ^16.0.0-0 || ^17.0.0-0 || ^18.0.0-0 || ^19.0.0-0 + react-intl@3.12.1: resolution: {integrity: sha512-cgumW29mwROIqyp8NXStYsoIm27+8FqnxykiLSawWjOxGIBeLuN/+p2srei5SRIumcJefOkOIHP+NDck05RgHg==, tarball: https://registry.npmjs.org/react-intl/-/react-intl-3.12.1.tgz} peerDependencies: @@ -5002,6 +5276,20 @@ packages: react-merge-refs@1.1.0: resolution: {integrity: sha512-alTKsjEL0dKH/ru1Iyn7vliS2QRcBp9zZPGoWxUOvRGWPUYgjo+V01is7p04It6KhgrzhJGnIj9GgX8W4bZoCQ==, tarball: https://registry.npmjs.org/react-merge-refs/-/react-merge-refs-1.1.0.tgz} + react-native-swipeout@2.3.6: + resolution: {integrity: sha512-t9suUCspzck4vp2pWggWe0frS/QOtX6yYCawHnEes75A7dZCEE74bxX2A1bQzGH9cUMjq6xsdfC94RbiDKIkJg==, tarball: https://registry.npmjs.org/react-native-swipeout/-/react-native-swipeout-2.3.6.tgz} + deprecated: Package no longer supported. Use at your own risk or consider using https://github.com/software-mansion/react-native-gesture-handler + + react-pdf@9.2.1: + resolution: {integrity: sha512-AJt0lAIkItWEZRA5d/mO+Om4nPCuTiQ0saA+qItO967DTjmGjnhmF+Bi2tL286mOTfBlF5CyLzJ35KTMaDoH+A==, tarball: https://registry.npmjs.org/react-pdf/-/react-pdf-9.2.1.tgz} + peerDependencies: + '@types/react': ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 + peerDependenciesMeta: + '@types/react': + optional: true + react-redux@5.0.7: resolution: {integrity: sha512-5VI8EV5hdgNgyjfmWzBbdrqUkrVRKlyTKk1sGH3jzM2M2Mhj/seQgPXaz6gVAj2lz/nz688AdTqMO18Lr24Zhg==, tarball: https://registry.npmjs.org/react-redux/-/react-redux-5.0.7.tgz} peerDependencies: @@ -5037,6 +5325,11 @@ packages: resolution: {integrity: sha512-jCvmsr+1IUSMUyzOkRcvnVbX3ZYC6g9TDrDbFuFmRDq7PD4yaGbLKNQL6k2jnArV8hjYxh7hVhAZB6s9HDGpZA==, tarball: https://registry.npmjs.org/react-refresh/-/react-refresh-0.14.2.tgz} engines: {node: '>=0.10.0'} + react-resizable@3.0.5: + resolution: {integrity: sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==, tarball: https://registry.npmjs.org/react-resizable/-/react-resizable-3.0.5.tgz} + peerDependencies: + react: '>= 16.3' + react-router-dom@4.3.1: resolution: {integrity: sha512-c/MlywfxDdCp7EnB7YfPMOfMD3tOtIjrQlj/CKfNMBxdmpJP8xcz5P/UAFn3JbnQCNUxsHyVVqllF9LhgVyFCA==, tarball: https://registry.npmjs.org/react-router-dom/-/react-router-dom-4.3.1.tgz} peerDependencies: @@ -5064,6 +5357,16 @@ packages: peerDependencies: react: '>=16.8' + react-sortable-hoc@2.0.0: + resolution: {integrity: sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==, tarball: https://registry.npmjs.org/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz} + peerDependencies: + prop-types: ^15.5.7 + react: ^16.3.0 || ^17.0.0 + react-dom: ^16.3.0 || ^17.0.0 + + react-tween-state@0.1.5: + resolution: {integrity: sha512-sJQpjsdn0wjlDIUpfpb7jQGnOG8hAEW2e8k0KPA+xmf5KFa6Xat2JldbmxBhaqP0S/uIXhVE5ymKyH/b9X8nYA==, tarball: https://registry.npmjs.org/react-tween-state/-/react-tween-state-0.1.5.tgz} + react@18.3.1: resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==, tarball: https://registry.npmjs.org/react/-/react-18.3.1.tgz} engines: {node: '>=0.10.0'} @@ -5194,6 +5497,58 @@ packages: ripemd160@2.0.2: resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==, tarball: https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz} + rmc-align@1.0.0: + resolution: {integrity: sha512-3gEa5/+hqqoEVoeQ25KoRc8DOsXIdSaVpaBq1zQFaV941LR3xvZIRTlxTDT/IagYwoGM1KZea/jd7cNMYP34Rg==, tarball: https://registry.npmjs.org/rmc-align/-/rmc-align-1.0.0.tgz} + + rmc-calendar@1.1.4: + resolution: {integrity: sha512-xxQZaPFDnpHt4IFO8mukYrXSgC1W8LcNVp+EoX4iyeOJFimungOKB/iP5/cy+st8yXq8lUgk9TXsHNtM6Xo6ZA==, tarball: https://registry.npmjs.org/rmc-calendar/-/rmc-calendar-1.1.4.tgz} + + rmc-cascader@5.0.3: + resolution: {integrity: sha512-PxDhMjWViDdG4SMZqoXtAthGwgDyYnyxxZEE17IDDYsiCHpWtOhoIL8nsI+/hZ212UT/XF2LpqCsOlMoJiYk+w==, tarball: https://registry.npmjs.org/rmc-cascader/-/rmc-cascader-5.0.3.tgz} + + rmc-date-picker@6.0.10: + resolution: {integrity: sha512-/9+I6lm3EDEl6M7862V6++zFuxwsM0UEq8wSHbotYIPPmyB/65gx1cviblghOv2QfB0O9+U2w3qEJlRP/WsMrA==, tarball: https://registry.npmjs.org/rmc-date-picker/-/rmc-date-picker-6.0.10.tgz} + + rmc-dialog@1.1.1: + resolution: {integrity: sha512-28aJqtPTX6v13Z/aU1WBy1AFIXkE74PxZXde7JvtEIy9hQDTjH8fqOi822BpzAbXCyNE7jF9iFomy3H2ClsDJA==, tarball: https://registry.npmjs.org/rmc-dialog/-/rmc-dialog-1.1.1.tgz} + + rmc-drawer@0.4.11: + resolution: {integrity: sha512-YfB9XEJ8iM0MMuLWAK4313uOxSM8NAljC8Cqun1KamXutglYTuRviUuTLNSOzV8HHPp5kNpsVduvPCGLWXvThw==, tarball: https://registry.npmjs.org/rmc-drawer/-/rmc-drawer-0.4.11.tgz} + engines: {node: '>=4.0.0'} + + rmc-feedback@2.0.0: + resolution: {integrity: sha512-5PWOGOW7VXks/l3JzlOU9NIxRpuaSS8d9zA3UULUCuTKnpwBHNvv1jSJzxgbbCQeYzROWUpgKI4za3X4C/mKmQ==, tarball: https://registry.npmjs.org/rmc-feedback/-/rmc-feedback-2.0.0.tgz} + + rmc-input-number@1.0.5: + resolution: {integrity: sha512-prPkEtoOVde77GnEnEaBeWjBobMOPgGqU5bd0gxfp1kt1pUN740mMpVAcH7uxpJjVfmw+kuGWtiz4S7CueagSg==, tarball: https://registry.npmjs.org/rmc-input-number/-/rmc-input-number-1.0.5.tgz} + + rmc-list-view@0.11.5: + resolution: {integrity: sha512-eMOC5394tLNawcdEEhF7boMpQgpjJGDdL5lS+LblAWdBec7Q4EYkUdnrKNbt+O9k5RGM6nSLAGZK5oB4FN85Lg==, tarball: https://registry.npmjs.org/rmc-list-view/-/rmc-list-view-0.11.5.tgz} + + rmc-notification@1.0.0: + resolution: {integrity: sha512-9sPxjltFvtRLt2v312Hu7OXwk53pHkBYgINRDmnJ3A5NF1qtJeCCcdN0Xr0fzJ6sbQvtGju822tWHdzYA9u7Vw==, tarball: https://registry.npmjs.org/rmc-notification/-/rmc-notification-1.0.0.tgz} + + rmc-nuka-carousel@3.0.1: + resolution: {integrity: sha512-w2EPTERMUUZqcUSKFuejjin7xsMlhrLrtS0A/igTXpFJGq3kemDKcRi7q3pSYDuZBHYBl5iV4UqsLLkjdFtrYA==, tarball: https://registry.npmjs.org/rmc-nuka-carousel/-/rmc-nuka-carousel-3.0.1.tgz} + + rmc-picker@5.0.10: + resolution: {integrity: sha512-KZ70+WjcaZHnG5GyCxWCPFWAZ12s6NqyrbW73LeqH0WEqaTMMs0sOrk2f4mQAZ/CGT0XcFN6VZLw7Ozoxfn7LA==, tarball: https://registry.npmjs.org/rmc-picker/-/rmc-picker-5.0.10.tgz} + + rmc-pull-to-refresh@1.0.13: + resolution: {integrity: sha512-iYLsURiR7G/sKmRA6p2kq6ZXicn7Hyeo6VQFljssV1eMW+fzDgihhaz0kv5mza0f88vphGJvjOihT9E6+xGb6Q==, tarball: https://registry.npmjs.org/rmc-pull-to-refresh/-/rmc-pull-to-refresh-1.0.13.tgz} + + rmc-steps@1.0.1: + resolution: {integrity: sha512-8ijtwp4D1CYTtI2yerXJYqCv+GQbiBc9T12nrFngd/vM0y+58CnznGphTAueF6IWf7qbxBwcjTrcFgg7bP2YGA==, tarball: https://registry.npmjs.org/rmc-steps/-/rmc-steps-1.0.1.tgz} + + rmc-tabs@1.2.29: + resolution: {integrity: sha512-wiJS9WSJi9JH9GQO+FqncX+zaHP31qHa/S8nDW9UXUx0qbCX294QcJEnvfB+WmsfUws7rXjs6sOQp5EDiObnHg==, tarball: https://registry.npmjs.org/rmc-tabs/-/rmc-tabs-1.2.29.tgz} + + rmc-tooltip@1.0.1: + resolution: {integrity: sha512-fSDArf2BlMVrHExmBiqb2TkCRJHshvXFJQ/7tMraLellwaJLNiwrxtWpW329k3S+zTtoVG8UxFS1TjBGEsMzRg==, tarball: https://registry.npmjs.org/rmc-tooltip/-/rmc-tooltip-1.0.1.tgz} + + rmc-trigger@1.0.12: + resolution: {integrity: sha512-AccQniX7PX7Pm8hBhHEsnf3JU6CA61Xc7fAt2WbO+oXrGaI/jqN8C3COhhOXG54S5iTOjLS26j858zshwAxR9A==, tarball: https://registry.npmjs.org/rmc-trigger/-/rmc-trigger-1.0.12.tgz} + rollup-plugin-visualizer@5.9.0: resolution: {integrity: sha512-bbDOv47+Bw4C/cgs0czZqfm8L82xOZssk4ayZjG40y9zbXclNk7YikrZTDao6p7+HDiGxrN0b65SgZiVm9k1Cg==, tarball: https://registry.npmjs.org/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.9.0.tgz} engines: {node: '>=14'} @@ -5347,6 +5702,12 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==, tarball: https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz} engines: {node: '>=14'} + simple-concat@1.0.1: + resolution: {integrity: sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==, tarball: https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz} + + simple-get@4.0.1: + resolution: {integrity: sha512-brv7p5WgH0jmQJr1ZDDfKDOSeWWg+OVypG99A/5vYGPqJ6pxiaHLy8nxtFjBA7oMa01ebA9gfh1uMCFqOuXxvA==, tarball: https://registry.npmjs.org/simple-get/-/simple-get-4.0.1.tgz} + single-spa@5.9.5: resolution: {integrity: sha512-9SQdmsyz4HSP+3gs6PJzhkaMEg+6zTlu9oxIghnwUX3eq+ajq4ft5egl0iyR55LAmO/UwvU8NgIWs/ZyQMa6dw==, tarball: https://registry.npmjs.org/single-spa/-/single-spa-5.9.5.tgz} @@ -5505,6 +5866,10 @@ packages: resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==, tarball: https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz} engines: {node: '>=8'} + strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz} + engines: {node: '>=0.10.0'} + strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==, tarball: https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz} engines: {node: '>=8'} @@ -5592,6 +5957,13 @@ packages: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==, tarball: https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz} engines: {node: '>=6'} + tar-fs@2.1.2: + resolution: {integrity: sha512-EsaAXwxmx8UB7FRKqeozqEPop69DXcmYwTQwXvyAPF352HJsPdkVhvTaDPYqfNgruveJIJy3TA2l+2zj8LJIJA==, tarball: https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.2.tgz} + + tar-stream@2.2.0: + resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==, tarball: https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz} + engines: {node: '>=6'} + terser-webpack-plugin@5.3.14: resolution: {integrity: sha512-vkZjpUjb6OMS7dhV+tILUW6BhpDR7P2L/aQSAv+Uwk+m8KATX9EccViHTJR2qDtACKPIYndLGCyl3FMo+r2LMw==, tarball: https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.14.tgz} engines: {node: '>= 10.13.0'} @@ -5688,6 +6060,12 @@ packages: tty-browserify@0.0.0: resolution: {integrity: sha512-JVa5ijo+j/sOoHGjw0sxw734b1LhBkQ3bvUGNdxnVXDCX81Yx7TFgnZygxrIIWn23hbfTaMYLwRmAxFyDuFmIw==, tarball: https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz} + tunnel-agent@0.6.0: + resolution: {integrity: sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w==, tarball: https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz} + + tween-functions@1.2.0: + resolution: {integrity: sha512-PZBtLYcCLtEcjL14Fzb1gSxPBeL7nWvGhO5ZFPGqziCcr8uvHp0NDmdjBchp6KHL+tExcg0m3NISmKxhU394dA==, tarball: https://registry.npmjs.org/tween-functions/-/tween-functions-1.2.0.tgz} + type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==, tarball: https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz} engines: {node: '>= 0.8.0'} @@ -6008,6 +6386,9 @@ packages: zod@3.24.2: resolution: {integrity: sha512-lY7CDW43ECgW9u1TcT3IoXHflywfVqDYze4waEz812jR/bZ8FHDsl7pFQoSZTz5N+2NqRXs8GBwnAwo3ZNxqhQ==, tarball: https://registry.npmjs.org/zod/-/zod-3.24.2.tgz} + zscroller@0.4.8: + resolution: {integrity: sha512-G5NiNLKx2+QhhvZi2yV1jjVXY50otktxkseX2hG2N/eixohOUk0AY8ZpbAxNqS9oJS/NxItCsowupy2tsXxAMw==, tarball: https://registry.npmjs.org/zscroller/-/zscroller-0.4.8.tgz} + snapshots: '@ahooksjs/use-request@2.8.15(react@18.3.1)': @@ -6103,7 +6484,7 @@ snapshots: '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-provider': 2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-utils': 2.16.4(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 rc-resize-observer: 1.4.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -6138,7 +6519,7 @@ snapshots: '@ant-design/pro-provider': 2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-skeleton': 2.2.1(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-utils': 2.16.4(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-resize-observer: 0.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -6152,7 +6533,7 @@ snapshots: '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-provider': 2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-utils': 2.16.4(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 '@chenshuai2144/sketch-color': 1.0.9(react@18.3.1) antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 @@ -6171,7 +6552,7 @@ snapshots: '@ant-design/pro-field': 3.0.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-provider': 2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-utils': 2.16.4(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 '@chenshuai2144/sketch-color': 1.0.9(react@18.3.1) '@umijs/use-params': 1.0.9(react@18.3.1) antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -6191,7 +6572,7 @@ snapshots: '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-provider': 2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-utils': 2.16.4(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 '@umijs/route-utils': 4.0.1 '@umijs/use-params': 1.0.9(react@18.3.1) antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -6214,7 +6595,7 @@ snapshots: '@ant-design/pro-field': 3.0.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-table': 3.18.6(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-utils': 2.16.4(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 dayjs: 1.11.13 @@ -6228,7 +6609,7 @@ snapshots: '@ant-design/pro-provider@2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: '@ant-design/cssinjs': 1.23.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 '@ctrl/tinycolor': 3.6.1 antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) dayjs: 1.11.13 @@ -6239,7 +6620,7 @@ snapshots: '@ant-design/pro-skeleton@2.2.1(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 react-dom: 18.3.1(react@18.3.1) @@ -6253,7 +6634,7 @@ snapshots: '@ant-design/pro-form': 2.31.6(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(rc-field-form@2.7.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-provider': 2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-utils': 2.16.4(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 '@dnd-kit/core': 6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@dnd-kit/modifiers': 6.0.1(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) '@dnd-kit/sortable': 7.0.2(@dnd-kit/core@6.3.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) @@ -6273,7 +6654,7 @@ snapshots: dependencies: '@ant-design/icons': 5.6.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@ant-design/pro-provider': 2.15.3(antd@5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 antd: 5.24.3(date-fns@2.30.0)(moment@2.30.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) classnames: 2.5.1 dayjs: 1.11.13 @@ -7019,6 +7400,12 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 + '@js-preview/docx@1.6.4(core-js@3.34.0)': + dependencies: + core-js: 3.34.0 + + '@js-preview/excel@1.7.14': {} + '@loadable/component@5.15.2(react@18.3.1)': dependencies: '@babel/runtime': 7.23.6 @@ -7213,6 +7600,12 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + '@react-dnd/asap@4.0.1': {} + + '@react-dnd/invariant@2.0.0': {} + + '@react-dnd/shallowequal@2.0.0': {} + '@sinclair/typebox@0.27.8': {} '@stylelint/postcss-css-in-js@0.38.0(postcss-syntax@0.36.2(postcss@8.5.3))(postcss@8.5.3)': @@ -7709,7 +8102,7 @@ snapshots: '@umijs/history@5.3.1': dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 query-string: 6.14.1 '@umijs/lint@4.4.6(eslint@8.57.1)(stylelint@14.16.1)(typescript@5.8.2)': @@ -8133,6 +8526,35 @@ snapshots: dependencies: dayjs: 1.11.13 + antd-mobile@2.3.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + array-tree-filter: 2.1.0 + babel-runtime: 6.26.0 + classnames: 2.5.1 + normalize.css: 7.0.0 + rc-checkbox: 2.0.3 + rc-collapse: 1.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-slider: 8.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-swipeout: 2.0.11 + rmc-calendar: 1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-cascader: 5.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-date-picker: 6.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-dialog: 1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-drawer: 0.4.11 + rmc-feedback: 2.0.0 + rmc-input-number: 1.0.5 + rmc-list-view: 0.11.5 + rmc-notification: 1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-nuka-carousel: 3.0.1 + rmc-picker: 5.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-pull-to-refresh: 1.0.13 + rmc-steps: 1.0.1 + rmc-tabs: 1.2.29 + rmc-tooltip: 1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + antd@4.24.16(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@ant-design/colors': 6.0.0 @@ -8463,6 +8885,13 @@ snapshots: binary-extensions@2.3.0: {} + bl@4.1.0: + dependencies: + buffer: 5.7.1 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + bn.js@4.12.1: {} bn.js@5.2.1: {} @@ -8503,6 +8932,40 @@ snapshots: dependencies: fill-range: 7.1.1 + braft-convert@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + draft-convert: 2.1.13(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + draft-js: 0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react: 18.3.1 + transitivePeerDependencies: + - react-dom + + braft-editor@2.3.9(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.10 + braft-convert: 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + braft-finder: 0.0.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + braft-utils: 3.0.13(braft-convert@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(draftjs-utils@0.9.4(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immutable@3.7.6))(immutable@3.7.6) + draft-convert: 2.1.13(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + draft-js: 0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + draft-js-multidecorators: 1.0.0 + draftjs-utils: 0.9.4(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immutable@3.7.6) + immutable: 3.7.6 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + braft-finder@0.0.19(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + braft-utils@3.0.13(braft-convert@2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(draftjs-utils@0.9.4(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immutable@3.7.6))(immutable@3.7.6): + dependencies: + braft-convert: 2.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + draft-js: 0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + draftjs-utils: 0.9.4(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immutable@3.7.6) + immutable: 3.7.6 + brorand@1.1.0: {} browserify-aes@1.2.0: @@ -8577,6 +9040,12 @@ snapshots: ieee754: 1.2.1 isarray: 1.0.0 + buffer@5.7.1: + dependencies: + base64-js: 1.5.1 + ieee754: 1.2.1 + optional: true + builtin-status-codes@3.0.0: {} bundle-name@3.0.0: @@ -8623,6 +9092,12 @@ snapshots: caniuse-lite@1.0.30001703: {} + canvas@3.1.0: + dependencies: + node-addon-api: 7.1.1 + prebuild-install: 7.1.3 + optional: true + chalk@4.1.2: dependencies: ansi-styles: 4.3.0 @@ -8652,6 +9127,9 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chownr@1.1.4: + optional: true + chrome-trace-event@1.0.4: {} ci-info@3.9.0: {} @@ -8683,6 +9161,10 @@ snapshots: strip-ansi: 6.0.1 wrap-ansi: 7.0.0 + clsx@1.2.1: {} + + clsx@2.1.1: {} + color-convert@1.9.3: dependencies: color-name: 1.1.3 @@ -8962,6 +9444,14 @@ snapshots: decode-uri-component@0.2.2: {} + decompress-response@6.0.0: + dependencies: + mimic-response: 3.1.0 + optional: true + + deep-extend@0.6.0: + optional: true + deep-is@0.1.4: {} deepmerge@1.5.2: {} @@ -9013,6 +9503,9 @@ snapshots: detect-libc@1.0.3: {} + detect-libc@2.0.3: + optional: true + detect-newline@4.0.1: {} detect-node@2.1.0: {} @@ -9027,6 +9520,12 @@ snapshots: dependencies: path-type: 4.0.0 + dnd-core@14.0.1: + dependencies: + '@react-dnd/asap': 4.0.1 + '@react-dnd/invariant': 2.0.0 + redux: 4.2.1 + doctrine@2.1.0: dependencies: esutils: 2.0.3 @@ -9070,6 +9569,19 @@ snapshots: no-case: 3.0.4 tslib: 2.8.1 + draft-convert@2.1.13(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.10 + draft-js: 0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + immutable: 3.7.6 + invariant: 2.2.4 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + draft-js-multidecorators@1.0.0: + dependencies: + immutable: 3.7.6 + draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: fbjs: 0.8.18 @@ -9078,6 +9590,11 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + draftjs-utils@0.9.4(draft-js@0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(immutable@3.7.6): + dependencies: + draft-js: 0.10.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + immutable: 3.7.6 + dunder-proto@1.0.1: dependencies: call-bind-apply-helpers: 1.0.2 @@ -9554,6 +10071,11 @@ snapshots: signal-exit: 3.0.7 strip-final-newline: 3.0.0 + exenv@1.2.2: {} + + expand-template@2.0.3: + optional: true + express-http-proxy@2.1.1: dependencies: debug: 3.2.7 @@ -9604,6 +10126,8 @@ snapshots: fast-deep-equal@3.1.3: {} + fast-equals@4.0.3: {} + fast-glob@3.2.12: dependencies: '@nodelib/fs.stat': 2.0.5 @@ -9740,6 +10264,9 @@ snapshots: fresh@0.5.2: {} + fs-constants@1.0.0: + optional: true + fs-extra@10.1.0: dependencies: graceful-fs: 4.2.11 @@ -9808,6 +10335,9 @@ snapshots: git-hooks-list@3.2.0: {} + github-from-package@0.0.0: + optional: true + glob-parent@5.1.2: dependencies: is-glob: 4.0.3 @@ -9927,6 +10457,8 @@ snapshots: he@1.2.0: {} + highlight-words-core@1.2.3: {} + history@4.10.1: dependencies: '@babel/runtime': 7.26.10 @@ -10038,6 +10570,8 @@ snapshots: immer@8.0.4: {} + immutability-helper@3.1.1: {} + immutable@3.7.6: {} import-fresh@3.3.1: @@ -10047,7 +10581,7 @@ snapshots: import-html-entry@1.17.0: dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 import-lazy@4.0.0: {} @@ -10558,12 +11092,16 @@ snapshots: dependencies: yallist: 4.0.0 + make-cancellable-promise@1.3.2: {} + make-dir@2.1.0: dependencies: pify: 4.0.1 semver: 5.7.2 optional: true + make-event-props@1.6.2: {} + makeerror@1.0.12: dependencies: tmpl: 1.0.5 @@ -10590,6 +11128,8 @@ snapshots: dependencies: fs-monkey: 1.0.6 + memoize-one@4.0.3: {} + meow@9.0.0: dependencies: '@types/minimist': 1.2.5 @@ -10607,6 +11147,10 @@ snapshots: merge-descriptors@1.0.3: {} + merge-refs@1.3.0(@types/react@18.3.18): + optionalDependencies: + '@types/react': 18.3.18 + merge-stream@2.0.0: {} merge2@1.4.1: {} @@ -10637,6 +11181,9 @@ snapshots: mimic-fn@4.0.0: {} + mimic-response@3.1.0: + optional: true + min-document@2.19.0: dependencies: dom-walk: 0.1.2 @@ -10661,8 +11208,14 @@ snapshots: is-plain-obj: 1.1.0 kind-of: 6.0.3 + minimist@1.2.8: + optional: true + minipass@7.1.2: {} + mkdirp-classic@0.5.3: + optional: true + moment@2.30.1: {} ms@2.0.0: {} @@ -10671,6 +11224,9 @@ snapshots: nanoid@3.3.9: {} + napi-build-utils@2.0.0: + optional: true + natural-compare-lite@1.4.0: {} natural-compare@1.4.0: {} @@ -10694,8 +11250,16 @@ snapshots: lower-case: 2.0.2 tslib: 2.8.1 + node-abi@3.74.0: + dependencies: + semver: 7.7.1 + optional: true + node-abort-controller@3.1.1: {} + node-addon-api@7.1.1: + optional: true + node-domexception@1.0.0: {} node-fetch@1.7.3: @@ -10783,6 +11347,8 @@ snapshots: normalize-range@0.1.2: {} + normalize.css@7.0.0: {} + npm-run-path@4.0.1: dependencies: path-key: 3.1.1 @@ -10983,6 +11549,9 @@ snapshots: path-type@4.0.0: {} + path2d@0.2.2: + optional: true + pbkdf2@3.1.2: dependencies: create-hash: 1.2.0 @@ -10991,6 +11560,11 @@ snapshots: safe-buffer: 5.2.1 sha.js: 2.4.11 + pdfjs-dist@4.8.69: + optionalDependencies: + canvas: 3.1.0 + path2d: 0.2.2 + performance-now@2.1.0: {} picocolors@1.1.1: {} @@ -11274,6 +11848,22 @@ snapshots: picocolors: 1.1.1 source-map-js: 1.2.1 + prebuild-install@7.1.3: + dependencies: + detect-libc: 2.0.3 + expand-template: 2.0.3 + github-from-package: 0.0.0 + minimist: 1.2.8 + mkdirp-classic: 0.5.3 + napi-build-utils: 2.0.0 + node-abi: 3.74.0 + pump: 3.0.2 + rc: 1.2.8 + simple-get: 4.0.1 + tar-fs: 2.1.2 + tunnel-agent: 0.6.0 + optional: true + prelude-ls@1.2.1: {} prettier-plugin-organize-imports@3.2.4(prettier@2.8.8)(typescript@5.8.2): @@ -11339,6 +11929,12 @@ snapshots: randombytes: 2.1.0 safe-buffer: 5.2.1 + pump@3.0.2: + dependencies: + end-of-stream: 1.4.4 + once: 1.4.0 + optional: true + punycode-okam@1.4.1: {} punycode@1.4.1: {} @@ -11397,6 +11993,13 @@ snapshots: iconv-lite: 0.4.24 unpipe: 1.0.0 + rc-align@2.4.5: + dependencies: + babel-runtime: 6.26.0 + dom-align: 1.12.4 + prop-types: 15.8.1 + rc-util: 4.21.1 + rc-align@4.0.15(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -11440,6 +12043,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + rc-checkbox@2.0.3: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + prop-types: 15.8.1 + rc-util: 4.21.1 + rc-checkbox@3.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -11456,6 +12066,16 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + rc-collapse@1.9.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + classnames: 2.5.1 + css-animation: 1.6.1 + prop-types: 15.8.1 + rc-animate: 2.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + rc-collapse@3.4.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -11587,6 +12207,10 @@ snapshots: react-is: 16.13.1 warning: 4.0.3 + rc-gesture@0.0.22: + dependencies: + babel-runtime: 6.26.0 + rc-image@5.13.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -11800,7 +12424,7 @@ snapshots: rc-resize-observer@0.2.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 classnames: 2.5.1 rc-util: 5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 @@ -11875,6 +12499,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + rc-slider@8.2.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + prop-types: 15.8.1 + rc-tooltip: 3.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 4.21.1 + shallowequal: 1.1.0 + warning: 3.0.0 + transitivePeerDependencies: + - react + - react-dom + rc-steps@5.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -11891,6 +12528,13 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + rc-swipeout@2.0.11: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + rc-gesture: 0.0.22 + react-native-swipeout: 2.3.6 + rc-switch@3.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -11972,6 +12616,15 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + rc-tooltip@3.7.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + prop-types: 15.8.1 + rc-trigger: 2.6.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + rc-tooltip@5.2.2(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -12029,6 +12682,19 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + rc-trigger@2.6.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + prop-types: 15.8.1 + rc-align: 2.4.5 + rc-animate: 2.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 4.21.1 + react-lifecycles-compat: 3.0.4 + transitivePeerDependencies: + - react + - react-dom + rc-trigger@5.3.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.26.10 @@ -12065,7 +12731,7 @@ snapshots: rc-util@5.44.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@babel/runtime': 7.23.6 + '@babel/runtime': 7.26.10 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) react-is: 18.3.1 @@ -12079,16 +12745,59 @@ snapshots: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) + rc@1.2.8: + dependencies: + deep-extend: 0.6.0 + ini: 1.3.8 + minimist: 1.2.8 + strip-json-comments: 2.0.1 + optional: true + + react-dnd-html5-backend@14.1.0: + dependencies: + dnd-core: 14.0.1 + + react-dnd@14.0.5(@types/hoist-non-react-statics@3.3.6)(@types/node@22.13.10)(@types/react@18.3.18)(react@18.3.1): + dependencies: + '@react-dnd/invariant': 2.0.0 + '@react-dnd/shallowequal': 2.0.0 + dnd-core: 14.0.1 + fast-deep-equal: 3.1.3 + hoist-non-react-statics: 3.3.2 + react: 18.3.1 + optionalDependencies: + '@types/hoist-non-react-statics': 3.3.6 + '@types/node': 22.13.10 + '@types/react': 18.3.18 + react-dom@18.3.1(react@18.3.1): dependencies: loose-envify: 1.4.0 react: 18.3.1 scheduler: 0.23.2 + react-draggable@4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-error-overlay@6.0.9: {} react-fast-compare@3.2.2: {} + react-grid-layout@1.5.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 2.1.1 + fast-equals: 4.0.3 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + react-draggable: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + react-resizable: 3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + resize-observer-polyfill: 1.5.1 + react-helmet-async@1.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: '@babel/runtime': 7.23.6 @@ -12099,6 +12808,12 @@ snapshots: react-fast-compare: 3.2.2 shallowequal: 1.1.0 + react-highlight-words@0.21.0(react@18.3.1): + dependencies: + highlight-words-core: 1.2.3 + memoize-one: 4.0.3 + react: 18.3.1 + react-intl@3.12.1(react@18.3.1): dependencies: '@formatjs/intl-displaynames': 1.2.10 @@ -12123,6 +12838,27 @@ snapshots: react-merge-refs@1.1.0: {} + react-native-swipeout@2.3.6: + dependencies: + create-react-class: 15.7.0 + prop-types: 15.8.1 + react-tween-state: 0.1.5 + + react-pdf@9.2.1(@types/react@18.3.18)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + clsx: 2.1.1 + dequal: 2.0.3 + make-cancellable-promise: 1.3.2 + make-event-props: 1.6.2 + merge-refs: 1.3.0(@types/react@18.3.18) + pdfjs-dist: 4.8.69 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + tiny-invariant: 1.3.3 + warning: 4.0.3 + optionalDependencies: + '@types/react': 18.3.18 + react-redux@5.0.7(react@18.3.1)(redux@3.7.2): dependencies: hoist-non-react-statics: 2.5.5 @@ -12153,6 +12889,14 @@ snapshots: react-refresh@0.14.2: {} + react-resizable@3.0.5(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + prop-types: 15.8.1 + react: 18.3.1 + react-draggable: 4.4.6(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react-dom + react-router-dom@4.3.1(react@18.3.1): dependencies: history: 4.10.1 @@ -12193,6 +12937,19 @@ snapshots: history: 5.3.0 react: 18.3.1 + react-sortable-hoc@2.0.0(prop-types@15.8.1)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + '@babel/runtime': 7.26.10 + invariant: 2.2.4 + prop-types: 15.8.1 + react: 18.3.1 + react-dom: 18.3.1(react@18.3.1) + + react-tween-state@0.1.5: + dependencies: + raf: 3.4.1 + tween-functions: 1.2.0 + react@18.3.1: dependencies: loose-envify: 1.4.0 @@ -12340,6 +13097,131 @@ snapshots: hash-base: 3.0.5 inherits: 2.0.4 + rmc-align@1.0.0: + dependencies: + babel-runtime: 6.26.0 + dom-align: 1.12.4 + rc-util: 4.21.1 + + rmc-calendar@1.1.4(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + rc-animate: 2.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-date-picker: 6.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + rmc-cascader@5.0.3(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + array-tree-filter: 2.1.0 + babel-runtime: 6.26.0 + rmc-picker: 5.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + rmc-date-picker@6.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + rmc-picker: 5.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + rmc-dialog@1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + rc-animate: 2.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + rmc-drawer@0.4.11: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + prop-types: 15.8.1 + + rmc-feedback@2.0.0: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + + rmc-input-number@1.0.5: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + rmc-feedback: 2.0.0 + + rmc-list-view@0.11.5: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + fbjs: 0.8.18 + prop-types: 15.8.1 + warning: 3.0.0 + zscroller: 0.4.8 + + rmc-notification@1.0.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + prop-types: 15.8.1 + rc-animate: 2.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 4.21.1 + transitivePeerDependencies: + - react + - react-dom + + rmc-nuka-carousel@3.0.1: + dependencies: + exenv: 1.2.2 + raf: 3.4.1 + + rmc-picker@5.0.10(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + rmc-dialog: 1.1.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rmc-feedback: 2.0.0 + transitivePeerDependencies: + - react + - react-dom + + rmc-pull-to-refresh@1.0.13: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + + rmc-steps@1.0.1: + dependencies: + babel-runtime: 6.26.0 + classnames: 2.5.1 + + rmc-tabs@1.2.29: + dependencies: + babel-runtime: 6.26.0 + rc-gesture: 0.0.22 + + rmc-tooltip@1.0.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + rmc-trigger: 1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + transitivePeerDependencies: + - react + - react-dom + + rmc-trigger@1.0.12(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + dependencies: + babel-runtime: 6.26.0 + rc-animate: 2.11.1(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + rc-util: 4.21.1 + rmc-align: 1.0.0 + transitivePeerDependencies: + - react + - react-dom + rollup-plugin-visualizer@5.9.0(rollup@3.29.5): dependencies: open: 8.4.2 @@ -12528,6 +13410,16 @@ snapshots: signal-exit@4.1.0: {} + simple-concat@1.0.1: + optional: true + + simple-get@4.0.1: + dependencies: + decompress-response: 6.0.0 + once: 1.4.0 + simple-concat: 1.0.1 + optional: true + single-spa@5.9.5: {} slash@3.0.0: {} @@ -12718,6 +13610,9 @@ snapshots: dependencies: min-indent: 1.0.1 + strip-json-comments@2.0.1: + optional: true + strip-json-comments@3.1.1: {} style-search@0.1.0: {} @@ -12848,6 +13743,23 @@ snapshots: tapable@2.2.1: {} + tar-fs@2.1.2: + dependencies: + chownr: 1.1.4 + mkdirp-classic: 0.5.3 + pump: 3.0.2 + tar-stream: 2.2.0 + optional: true + + tar-stream@2.2.0: + dependencies: + bl: 4.1.0 + end-of-stream: 1.4.4 + fs-constants: 1.0.0 + inherits: 2.0.4 + readable-stream: 3.6.2 + optional: true + terser-webpack-plugin@5.3.14(webpack@5.98.0): dependencies: '@jridgewell/trace-mapping': 0.3.25 @@ -12925,6 +13837,13 @@ snapshots: tty-browserify@0.0.0: {} + tunnel-agent@0.6.0: + dependencies: + safe-buffer: 5.2.1 + optional: true + + tween-functions@1.2.0: {} + type-check@0.4.0: dependencies: prelude-ls: 1.2.1 @@ -13297,3 +14216,7 @@ snapshots: zod: 3.24.2 zod@3.24.2: {} + + zscroller@0.4.8: + dependencies: + babel-runtime: 6.26.0 diff --git a/src/components/Common/AssignmentField.js b/src/components/Common/AssignmentField.js new file mode 100644 index 0000000..2cf0aef --- /dev/null +++ b/src/components/Common/AssignmentField.js @@ -0,0 +1,142 @@ +/** + * Created by mar105 on 2019-02-13. + */ +/* eslint-disable no-undef,import/first,prefer-destructuring,jsx-a11y/alt-text */ +import React, { Component } from 'react'; +import { Modal } from 'antd'; +import styles from '@/index.less'; +import * as commonUtils from '@/utils/utils'; +import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */ +import * as commonBusiness from '@/components/Common/commonBusiness'; +/* 单据业务功能 */ +export default class AssignmentField extends Component { + /** 构造函数 */ + constructor(props) { + super(props); + this.state = {}; + } + /* 获取数字格式化规范 */ + getFloatNum = (sName, decimals) => { + if (sName.toLowerCase().endsWith('price')) { /* 价格 */ + return decimals.dNetPrice; + } else if (sName.toLowerCase().endsWith('money')) { /* 金额 */ + return decimals.dNetMoney; + } else { /* 其它 */ + return 0; + } + }; + handleOk = () => { + /* 选中之后 */ + const { sAssignFieldData } = this.props; + this.props.onGetsAssignField(sAssignFieldData, 'sAssignField'); + this.props.onSaveState({ + visibleAssignmentField: false, + // enabled: false, + }); + }; + + handleCancel = () => { + this.props.onSaveState({ + visibleAssignmentField: false, + // enabled: false, + }); + }; + handleSelectRowChange = (name, selectedRowKeys) => { + this.props.onSaveState({ + selectedRowKeys, + sAssignFieldSelectedRowKeys: selectedRowKeys, + }); + }; + handleChange = (name, sFieldName, changeValue, sId) => { + const { sAssignFieldData } = this.props; + if (name === 'sAssignField') { + const iIndex = sAssignFieldData.findIndex(item => item.sId === sId); + const newData = sAssignFieldData[iIndex]; + newData[sFieldName] = changeValue[sFieldName]; + } + }; + /** 渲染 */ + render() { + const { + sAssignFieldData, visibleAssignmentField, sAssignFieldColumn, selectedRowKeys, + } = this.props; + /* 获取table中的props */ + const app = {}; + app.currentPage = null; + const commonConst = [ + { + sId: '1000', sParentId: '100', sName: 'BtnAdd', showName: '新增', + }, + { + sId: '1001', sParentId: '100', sName: 'BtnUpd', showName: '修改', + }, + { + sId: '1002', sParentId: '100', sName: 'BtnDel', showName: '删除', + }, + ]; + app.commonConst = commonConst; + app.token = ''; + const config = {}; + config.iFreezeColumn = 1; + const gdsconfigtbsAssignField = []; + const showoldsNameConfig = { + sId: commonUtils.createSid(), + sName: 'sOldName', + showName: '源字段', + bVisible: true, + iFitWidth: 200, + }; + const shownewsNameConfig = { + sId: commonUtils.createSid(), + sName: 'sNewName', + showName: '现字段', + bVisible: true, + iFitWidth: 180, + }; + gdsconfigtbsAssignField.push(showoldsNameConfig); + gdsconfigtbsAssignField.push(shownewsNameConfig); + config.gdsconfigformslave = gdsconfigtbsAssignField; + const assignmentFieldProps = { + ...commonBusiness.getTableTypes('sAssignField', this.props), + tableProps: { AutoTableHeight: '320px', onChange: this.handleChange }, + rowKey: this.rowKey, + size: 'small', + bordered: true, /* 显示边框 */ + dataSource: sAssignFieldData, /* 数据s */ + columns: sAssignFieldColumn, /* 表头 */ + pagination: false, /* 不分页 */ + tableBelone: 'table', + selectedRowKeys, + getFloatNum: this.getFloatNum, + config, + app: { + ...this.props.app, + currentPane: { + ...this.props.app.currentPane, + sModelsType: 'search/assignmentField', + }, + }, + onRow: (record) => { return { onClick: () => { this.onRowClick(record); }, onDoubleClick: () => { this.onDoubleClick(record); } }; }, + onAddRow: this.props.onDataRowAdd, + onDelRow: this.props.onDataRowDel, + onCopyRow: this.props.onDataRowCopy, + onSelectRowChange: this.handleSelectRowChange, + onChange: this.handleChange, + onDataChange: this.handleChange, + ...this.props.tableProps, + }; + return ( +
+ + + +
+ ); + } +} diff --git a/src/components/Common/CommonBill/index.js b/src/components/Common/CommonBill/index.js new file mode 100644 index 0000000..083ece4 --- /dev/null +++ b/src/components/Common/CommonBill/index.js @@ -0,0 +1,2691 @@ +/* eslint-disable */ +/* eslint-disable prefer-destructuring */ +import React, { Component } from 'react'; +import { UploadOutlined } from '@ant-design/icons'; +import { Form } from '@ant-design/compatible'; +import '@ant-design/compatible/assets/index.css'; +import { + Row, + Col, + Checkbox, + Layout, + Spin, + Tabs, + Avatar, + Button, + Table, + Upload, + Input, + Modal +} from 'antd'; +import { message } from '@/utils/common/message'; +import CommonSales from '@/components/Common/CommonBillEvent';/* 继承销售模块业务功能 */ +import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */ +import Toolbar from '@/components/Common/ToolBar/ToolBarNew'; +import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */ +import styles from '@/index.less'; +import CommonView from '@/components/Common/CommonView'; +import CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */ +import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */ +import commonConfig from '@/utils/config'; +import * as commonUtils from '@/utils/utils';/* 通用方法 */ +import * as commonServices from '@/services/services';/* 服务类 */ +import CommonListSelect from '@/components/Common/CommonListSelect'; +import CommonListSelectTree from '@/components/Common/CommonListSelectTree'; +import AddIcon from '@/assets/add.svg'; +import DisableAddIcon from '@/assets/disableadd.svg'; +import CopyIcon from '@/assets/copy.svg'; +import CopyAllIcon from '@/assets/copyall.svg'; +import DisableCopyIcon from '@/assets/disablecopy.svg'; +import DisableCopyAllIcon from '@/assets/disablecopyall.svg'; +import DelIcon from '@/assets/delete.svg'; +import DisableDelIcon from '@/assets/disabledelete.svg';/* 获取配置及数据 */ +import MaterialRemarkIcon from '@/assets/materialremark.svg'; +import DisMaRemarklIcon from '@/assets/disablematerialremark.svg'; +import ProcessIcon from '@/assets/process.svg'; +import DisableProcessIcon from '@/assets/disableprocess.svg'; +import MateriallIcon from '@/assets/material.svg'; +import DisableMateriallIcon from '@/assets/disablematerial.svg'; +// import SlaveMemo from './SlaveMemo'; +import AntdDraggableModal from '@/components/Common/AntdDraggableModal'; +import StaticEditTree from '@/components/Common/Tree/StaticTree'; +import AddChildIcon from '@/assets/addChild.svg'; +import DisableAddChildIcon from '@/assets/disableaddChild.svg'; +import ContextMenuModal from '@/components/Common/ContextMenuModal'; +import CommonViewTable from '@/components/Common/CommonViewTable'; +import CommonExamInfo from '@/components/Common/CommonExamInfo'; +import customStyles from './index.less'; + +const width = '18px'; +const height = '18px'; +const setAdd = { + title: '增加', + width: { width }, + height: { height }, + img: 添加, + disableimg: 删除, +}; +const setAddChild = { + title: '增加', + width: { width }, + height: { height }, + img: 添加, + disableimg: 添加, +}; +const setCopy = { + title: '复制', + width: { width }, + height: { height }, + img: 复制, + disableimg: 复制, +}; +const setCopyAll = { + title: '复制部件', + width: { width }, + height: { height }, + img: 复制部件, + disableimg: 复制部件, +}; +const setDelete = { + title: '删除', + width: { width }, + height: { height }, + img: 删除, + disableimg: 删除, +}; +const setProcess = { + title: '工序', + width: { width }, + height: { height }, + img: 选择工序, + disableimg: 删除, +}; +const setMaterial = { + title: '材料', + width: { width }, + height: { height }, + img: 选择材料, + disableimg: 选择材料, +}; + + +const { Header, Content, Sider } = Layout; +const { TabPane } = Tabs; +class CommonBill extends Component { + constructor(props) { + super(props); + this.state = { + + }; + } + + componentDidUpdate() { + if (this.contentRef) { + const oNavList = this.contentRef.querySelector(".ant-tabs-nav-list"); + if (oNavList) { + const tabs = Array.from(oNavList.children); + if (this.tabLength !== tabs.length) { + this.tabLength = tabs.length; + tabs.sort((a, b) => { + const keyA = a.getAttribute("data-node-key") || 999; + const keyB = b.getAttribute("data-node-key") || 999; + return keyA < keyB ? -1 : keyA > keyB ? 1 : 0; + }); + oNavList.innerHTML = ""; + tabs.forEach(tab => oNavList.appendChild(tab)); + } + } + } + } + + /** 行选择 */ + onRowClick = (name, record) => { + if (name === 'control') { + this.props.onTableSelectRowChange(name, [record.sId]); + } + }; + + onChange = (checkedValues) => { + this.props.onSaveState({ + dataPersonArray: checkedValues, + }); + }; + getMenuStatus = (menu) => { + if (menu.sControlName === 'BtnImport') { + return !this.props.enabled; + } + }; + /** 上传后执行函数 */ + handleUploadChangeFile = async (info) => { + const { file } = info; + const { + masterData, sModelsId, app, token, sModelsType, slaveConfig, slaveData, + } = this.props; + if (file.response) { + if (file.response.code === 1) { + /* 数据查询成功 */ + const errorInfo = file.response.dataset.rows[0].nocanbeInsert; + if (commonUtils.isNotEmptyObject(errorInfo)) { + const importErrorData = errorInfo; + this.props.onSaveState({ + showImportErrorVisible: true, + importData: importErrorData + }); + // message.error(errorInfo[0].sReason); + return; + } + /* 把之前存放的数据删除 */ + const slaveDelData = []; + if (commonUtils.isNotEmptyArr(slaveData)) { + slaveData.forEach((item) => { + if (commonUtils.isEmptyObject(item.handleType)) { + item.handleType = 'del'; + slaveDelData.push(item); + } + }); + } + const returnData = file.response.dataset.rows[0].canbeInsert; + let iCount = 0; + let productIdDropDown; + if (productIdDropDown === undefined && commonUtils.isNotEmptyArr(returnData)) { /* 无论导入多少条数据 都只调用1次接口,获取产品下拉数据集 */ + const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex], returnData[0]); + productIdDropDown = sqlDropDownData.dropDownData; + } + } + await returnData.forEach(async (tableDataRow) => { + tableDataRow.handleType = 'add'; + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.sParentId = masterData.sId; + tableDataRow.key = tableDataRow.sId; + /* 若导入模板没有序号,则序号从1自增 */ + if (commonUtils.isEmptyObject(tableDataRow.iOrder)) { + iCount += 1; + tableDataRow.iOrder = iCount; + } + for (const child of Object.keys(tableDataRow)) { + const index = child.indexOf('_sRealValue_'); + if (index > -1) { + const property = child.substring(0, child.length - 12); + tableDataRow[property] = tableDataRow[child]; + } + } + if (productIdDropDown !== undefined) { + const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId); + if (iProductIdIndex === -1 && commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('sales/salesOrder')) { /* 只有销售模块生成新产品 盘点 ,期间 不生成新的产品 */ + tableDataRow.sProductId = tableDataRow.sProductName; + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } + } + if (!tableDataRow.dNProductPrice) { + tableDataRow.dNProductPrice = tableDataRow.dProductForeignPrice; + } + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) { + tableDataRow = await this.props.onMaterialsChange(tableDataRow, sModelsId, masterData, {}, 'dAuxiliaryQty', app, token, models); + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow); + } else { + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow); + } + }); + this.props.onSaveState({ slaveData: returnData, slaveDelData }); + } else { /* 失败s */ + this.props.getServiceError(file.response); + } + } + }; + handleUploadPropsSales = () => { + const { masterData, sModelsType } = this.props; + if (commonUtils.isNotEmptyObject(masterData)) { + const sCustomerId = commonUtils.isEmptyStr(masterData.sCustomerId) ? undefined : masterData.sCustomerId; + let existCustomerId = false; + if (sModelsType.includes('sales/') && commonUtils.isNotEmptyStr(sCustomerId)) { + existCustomerId = true; + } else if (!sModelsType.includes('sales/')) { + existCustomerId = true; + } + return { + disabled: !this.props.enabled || !existCustomerId, /* 是否可用 */ + style: { display: commonUtils.convertBooleanToDisplayBlock(true) }, /* 是否显示 */ + }; + } + }; + /** 上传后执行函数 */ + handleBeforeUpload = () => { + // const isLt10M = file.size / 1024 / 1024 < 10; + // if (!isLt10M) { + // message.error(commonFunc.showMessage(this.props.app.commonConst, 'picMax'));/* 图片大小需小于10MB! */ + // } + }; + /** 图片上传后执行函数 */ + handleUploadChange = (info, name) => { + const { file } = info; + if (file.response && file.response.code === 1) { + const sPicturePath = file.response.dataset.rows[0].savePathStr; + const spicture = sPicturePath; + const uploadInfo = { + sPicturePath, + sFileName: file.name, + }; + const { [`${name}Column`]: tableColumn, masterData, [`${name}Data`]: tableData } = this.props; + if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isEmpty(tableData[tableData.length - 1].sPicturePath)) { + tableData[tableData.length - 1].sPicturePath = uploadInfo.sPicturePath; + tableData[tableData.length - 1].spicture = spicture; + tableData[tableData.length - 1] = { + ...tableData[tableData.length - 1], + sPicturePath: uploadInfo.sPicturePath, + sFileName: uploadInfo.sFileName, + spicture, + handleType: commonUtils.isEmpty(tableData[tableData.length - 1].handleType) ? 'update' : tableData[tableData.length - 1].handleType, + }; + } else { + const tableDataRow = this.props.onDataRowAdd(name, true); + tableColumn.forEach((slaveChild) => { + const ckey = slaveChild.dataIndex; + if (ckey === 'sProductNo' || ckey === 'sProductName') { + tableDataRow[ckey] = masterData[ckey] !== undefined ? masterData[ckey] : ''; + } else if (ckey === 'iOrder') { + tableDataRow[ckey] = ''; + } else if (file.response && file.response.code === 1) { + if (uploadInfo[ckey] !== undefined) { + tableDataRow[ckey] = uploadInfo[ckey]; + } + } + }); + tableData.push(tableDataRow); + } + this.props.onSaveState({ [`${name}Data`]: tableData, enabled: true }); + } else if (file.response && file.response.code === -1) { + message.error(file.response.msg); + } + }; + handleOk = async (flag, tmpCheck, isWait) => { + const { + sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig, sCheckRemark, + } = this.props; + const { currentPane } = app; + const bCkxTmpCheck = app.systemData.filter(item => item.sName === 'CkxTmpCheck')[0].sValue; + if (bCkxTmpCheck === '1') { + const returnData = await this.props.onDataAudit(flag, tmpCheck, isWait); + if (returnData.code === 1) { + if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) { + this.props.onGetData(masterConfig, slaveConfig, checkConfig); + message.success(returnData.msg); + } else { + message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn); + } + } else { /* 失败 */ + this.props.getServiceError(returnData); + } + } else { + const dataPersonArray = commonUtils.isEmptyObject(this.props.dataPersonArray) ? [] : this.props.dataPersonArray; + if (commonUtils.isEmptyObject(dataPersonArray)) { + checkPersonData.forEach((item) => { + dataPersonArray.push(item.sUserId); + }); + } + const dataPersonString = dataPersonArray.join(','); + const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const value = { + sProName: 'Sp_System_AutoSendCheckMsg', + paramsMap: { + sFormGuid: sModelsId, + sBillKey: currentPane.sProcName, + sTbName: masterConfig.sTbName, + sGuid: masterData.sId, + sBillNo: masterData.sBillNo, + sCheckCondition: checkConditions, + sMemo: sCheckRemark, + sCheckModelGuid: sCheckModelId, + sCheckPerson: dataPersonString, + }, + }; + + const returnData = (await commonServices.postValueService(app.token, value, url)).data; + if (returnData.code === 1) { + const noCheckMsg = commonFunc.showMessage(app.commonConst, 'NoCheckMsg'); /* 您有消息待审核 */ + if (returnData.dataset.rows[0].dataSet.outData[0].sCode === 1) { + this.props.handleSendSocketMessage('examine', 'showImg', currentId, dataPersonString, noCheckMsg, null); + const urlCanCheckBill = `${commonConfig.server_host}checkModel/getCanCheckBill?sModelsId=${sModelsId}`; + const valueCanCheckBill = { sCheckModelId, checkPersonData, sBillId: masterData.sId }; + const returnCanCheckBill = (await commonServices.postValueService(app.token, valueCanCheckBill, urlCanCheckBill)).data; + if (returnCanCheckBill.code === 1) { + if (returnCanCheckBill.dataset.rows[0].iCount === 1) { + this.props.onDataAudit(1, 1); + this.props.onSaveState({ + visible: false, + }); + return; + } + } else { /* 失败 */ + this.props.getServiceError(returnCanCheckBill); + } + this.props.handleSendSocketMessage('reflush', 'showImg', currentId, dataPersonString, noCheckMsg, null); + message.success(returnData.msg); + } else { + message.error(returnData.dataset.rows[0].dataSet.outData[0].sReturn); + } + } else { /* 失败 */ + this.props.getServiceError(returnData); + } + } + this.props.onSaveState({ + visible: false, + }); + }; + handleCancel = () => { + this.props.onSaveState({ + visible: false, + }); + }; + + handleTableModal = async () => { + const { + sModelsId, controlData, masterData, slaveData, controlConfig, slaveSelectedRowKeys, enabled, slaveConfig, sModelsType, + } = this.props; + const addState = {}; + let treeState = {}; + if (this.props.sModelsType.includes('sales/salesOrder')) { + const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); + const iIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]); + if (iIndex === -1 && iSlaveIndex > -1 && enabled) { + const allTableData = {}; + allTableData.master = masterData; + allTableData.slaveData = slaveData; + let dropdownProductClassifyId; + const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyId'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex]); + dropdownProductClassifyId = sqlDropDownData.dropDownData; + } + if (commonUtils.isEmptyArr(dropdownProductClassifyId)) { + const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyName'); + if (iIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex]); + dropdownProductClassifyId = sqlDropDownData.dropDownData; + } + } + if (commonUtils.isNotEmptyArr(dropdownProductClassifyId)) { + const iProductClassifyIdIndex = dropdownProductClassifyId.findIndex(item => item.sId === slaveData[iSlaveIndex].sProductClassifyId); + if (commonUtils.isNotEmptyObject(dropdownProductClassifyId[iProductClassifyIdIndex])) { + const sAllPartsName = dropdownProductClassifyId[iProductClassifyIdIndex].sAllPartsName; + if (commonUtils.isNotEmptyStr(sAllPartsName)) { + const sAssignFieldObj = sAllPartsName.split(','); + for (const child of sAssignFieldObj) { + const tableDataRowAdd = commonFunc.getDefaultData(controlConfig, allTableData); + tableDataRowAdd.handleType = 'add'; + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; + tableDataRowAdd.sSlaveId = slaveSelectedRowKeys[0]; + tableDataRowAdd.key = tableDataRowAdd.sId; + tableDataRowAdd.bDefault = false; + tableDataRowAdd.iOrder = 0; + tableDataRowAdd.sPartsName = child; + tableDataRowAdd.dPartsQty = commonUtils.isNull(slaveData[iSlaveIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dGiveQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dStockupQty, 0); + tableDataRowAdd.sAllId = tableDataRowAdd.sId; + tableDataRowAdd.sControlParentId = ''; + controlData.push(tableDataRowAdd); + } + } + } + } + addState.controlData = controlData; + } + + if (controlData !== undefined) { + const iControlIndex = controlData.findIndex(item => item.sSlaveId === slaveSelectedRowKeys[0]); + if (iControlIndex > -1) { + addState.controlSelectedRowKeys = [controlData[iControlIndex].sId]; + } + } + } + + this.props.onSaveState({ + visibleModal: true, + ...addState, + ...treeState, + }); + }; + handleTableChooseProcess = () => { + const { processConfig } = this.props; + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess'); + + if (iIndex > -1) { + this.props.onBtnChoose('process', 'BtnChooseProcess', processConfig.gdsconfigformslave[iIndex]); + } + }; + handleCancelModal = (modelVisible) => { + this.props.onSaveState({ + [modelVisible]: false, + }); + }; + handleOkModal = async () => { + const { + controlData, materialsData, processData, slaveData, slaveSelectedRowKeys, + } = this.props; + const ctData = controlData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]); + const mtData = materialsData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]); + const pData = processData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType !== '3'); + const p3Data = processData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType === '3'); /* 成品工序 */ + if (commonUtils.isNotEmptyArr(ctData)) { + let mDetail = ''; + let pDetail = ''; + const slaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); + await ctData.forEach((controlItem, n) => { + if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) { + const qz = n === 0 ? '' : ' '; + if (commonUtils.isNotEmptyObject(controlItem.sPartsName)) { + const yDetail = `${mDetail}${qz}#${controlItem.sPartsName}:`; + const gDetail = `${pDetail}${qz}#${controlItem.sPartsName}:`; + let imDetail = ''; + let ipDetail = ''; + const materials = mtData.filter(materialsItem => (materialsItem.sControlId === controlItem.sId)); + // let materialsIdDropDown; + // const materialsIndex = materialsConfig.gdsconfigformslave.findIndex(item => item.sName === 'sMaterialsName'); + // if (materialsIndex > -1) { + // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'materials', materialsConfig.gdsconfigformslave[materialsIndex]); + // materialsIdDropDown = sqlDropDownData.dropDownData; + // } + materials.forEach((mItem, i) => { + const fh = i === 0 ? '' : ','; + imDetail = `${imDetail}${fh} ${mItem.sMaterialsName}`; + }); + // processPropsType + const process = pData.filter(processItem => (processItem.sControlId === controlItem.sId)); + // let processIdDropDown; + // const processIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProcessName'); + // if (processIndex > -1) { + // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'process', processConfig.gdsconfigformslave[processIndex]); + // processIdDropDown = sqlDropDownData.dropDownData; + // } + // const processIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'process', 'sProcessName'); + process.forEach((pItem, i) => { + const fh = i === 0 ? '' : ','; + ipDetail = `${ipDetail}${fh} ${pItem.sProcessName}`; + }); + if (commonUtils.isNotEmptyObject(imDetail)) { + mDetail = `${yDetail}${imDetail}`; + } + if (commonUtils.isNotEmptyObject(ipDetail)) { + pDetail = `${gDetail}${ipDetail}`; + } + } + } + }); + /* 成品工序 */ + let ip3Detail = ''; + if (commonUtils.isNotEmptyArr(p3Data)) { + p3Data.forEach((pItem, i) => { + const fh = i === 0 ? '' : ','; + ip3Detail = `${ip3Detail}${fh} ${pItem.sProcessName}`; + }); + } + if (commonUtils.isNotEmptyObject(ip3Detail)) { + if (commonUtils.isNotEmptyObject(pDetail)) { + pDetail = `${pDetail},${ip3Detail}`; + } else { + pDetail = ip3Detail; + } + } + slaveData[slaveIndex].sMaterialsMemo = mDetail; + slaveData[slaveIndex].sProcessMemo = pDetail; + slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? 'update' : slaveData[slaveIndex].handleType; + } else if (commonUtils.isNotEmptyArr(controlData) && commonUtils.isEmptyArr(ctData)) { + const sSlaveId = controlData[0].sSlaveId; + const slaveIndex = slaveData.findIndex(item => item.sId === sSlaveId); + slaveData[slaveIndex].sMaterialsMemo = ''; + slaveData[slaveIndex].sProcessMemo = ''; + slaveData[slaveIndex].handleType = commonUtils.isEmpty(slaveData[slaveIndex].handleType) ? 'update' : slaveData[slaveIndex].handleType; + } + this.props.onSaveState({ + visibleModal: false, + controlData, + materialsData, + processData, + slaveData, + }); + }; + /** 控制选择控制表时,显示部件工序与成品工序 */ + handleFilterSlaveData = (name, dataIndex, value, record) => { + return (commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(value.toLowerCase())); + }; + /** 控制选择控制表时,显示部件工序与成品工序 */ + handleFilterData = (name, dataIndex, value, record) => { + const { slaveSelectedRowKeys } = this.props; + if (name === 'process') { + return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3' && + commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) || + (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) && + commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())); + } else { + return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2' && + commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())) || + (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase()) && + commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString().toLowerCase())); + } + // (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase())); + }; + /* 控制表过滤材料表 工序表数据 */ + handleGetFilterData = (name) => { + const { [`${name}Data`]: data, controlSelectedRowKeys, slaveSelectedRowKeys } = this.props; + if (data !== undefined) { + const newArr = data.filter((item) => { + if (name === 'control') { + return (commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString())); + } else { + return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString()) && + commonUtils.isNotEmptyStr(item.sSlaveId) && item.sSlaveId.toString().toLowerCase().includes(slaveSelectedRowKeys.toString())); + } + }); + return newArr.length; + } + }; + /* 包装工单过滤行 */ /** 控制选择控制表时,显示部件工序与成品工序 */ + handleFilterDataPack = (name, dataIndex, value, record) => { + if (name === 'process') { + return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '3') || + (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase())); + } else { + return (commonUtils.isNotEmptyStr(record.sType) && record.sType === '2') || + (commonUtils.isNotEmptyStr(record.sControlId) && record.sControlId.toString().toLowerCase().includes(value.toLowerCase())); + } + }; + /* 控制表过滤材料表 工序表数据 */ + handleGetFilterDataPack = (name) => { + const { [`${name}Data`]: data, controlSelectedRowKeys } = this.props; + if (data !== undefined && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) { + const newArr = data.filter((item) => { + return (commonUtils.isNotEmptyStr(item.sControlId) && item.sControlId.toString().toLowerCase().includes(controlSelectedRowKeys.toString())); + }); + return newArr.length; + } + }; + /** 添加表格空行 */ + handleTableAdd = async (name, flag, bchild) => { + /* 外置处理业务 */ + const { + sModelsId, sModelsType, gdsformconst, slaveData, controlData, controlSelectedRowKeys, [`${name}Data`]: tableData, slaveSelectedRowKeys, slaveConfig, + } = this.props; + let tableDataRow = {}; + if (name === 'control') { + const { + [`${name}SelectedRowKeys`]: treeSelectedKeys, + } = this.props; + if ((bchild === 'childNode' || bchild === 'sameNode') && (commonUtils.isEmptyArr(treeSelectedKeys) || commonUtils.isEmptyArr(controlSelectedRowKeys))) { + message.warn('请选择部件!'); // 请选择部件 + return; + } + tableDataRow = this.props.onDataRowAdd(name, true); + if (commonUtils.isEmptyObject(tableDataRow)) { + return; + } + let dPartsQty = 0; + if (commonUtils.isNotEmptyArr(slaveData)) { + slaveData.forEach((item) => { + dPartsQty += commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); + }); + let productIdDropDown; + const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (slaveIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex]); + productIdDropDown = sqlDropDownData.dropDownData; + } + if (productIdDropDown) { + const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === slaveData[0].sProductId); + if (iProductIdIndex > -1) { + tableDataRow.sPartsName = productIdDropDown[iProductIdIndex].sProductName; + } + } + } + const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); + if (iSlaveIndex > -1) { + if (sModelsType.includes('sales/salesOrder')) { + if (!commonUtils.isEmpty(slaveData[iSlaveIndex].dProductQty)) { + tableDataRow.dPartsQty = commonUtils.isNull(slaveData[iSlaveIndex].dProductQty, 0) + commonUtils.isNull(slaveData[iSlaveIndex].dGiveQty, 0); + } + } else { + tableDataRow.dPartsQty = dPartsQty; + } + tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId; + } + /* 树形部件节点增加同级部件、增加子级部件 */ + if (sModelsType === 'sales/salesOrderPack') { + if (bchild === 'sameNode') { /* 添加同级 */ + const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]); + /* 找到同级子元素的sControlParentId */ + if (iIndex > -1) { + tableDataRow.sControlParentId = controlData[iIndex].sControlParentId; + /* 找到同级父级sAllId */ + const pId = controlData[iIndex].sControlParentId; + const sControlParentId = controlData.findIndex(item => item.sNodeId === pId); + if (sControlParentId > -1) { + const sAllId = controlData[sControlParentId].sAllId; + // if (commonUtils.isEmptyObject(sAllId)) { + // message.warn('部件数据生成错误![sAllId为空]'); + // return; + // } + tableDataRow.sAllId = `${controlData[sControlParentId].sAllId},${tableDataRow.sNodeId}`; + } else { + tableDataRow.sAllId = tableDataRow.sNodeId; + } + } + } + if (bchild === 'childNode') { /* 添加子级 */ + tableDataRow.sControlParentId = treeSelectedKeys[0]; + const iIndex = controlData.findIndex(item => item.sId === treeSelectedKeys[0]); + if (iIndex > -1) { + const sAllId = controlData[iIndex].sAllId; + if (commonUtils.isEmptyObject(sAllId)) { + message.warn('子部件数据生成错误![sAllId为空]'); // 获取父节点的sAllId + return; + } + tableDataRow.sAllId = `${controlData[iIndex].sAllId},${tableDataRow.sId}`; + } + } + } + tableData.push(tableDataRow); + this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId], ...treeState }); + } else if (name === 'materials' || name === 'process') { + tableDataRow = this.props.onDataRowAdd(name, true); + if (commonUtils.isEmptyArr(controlSelectedRowKeys)) { + const msg = commonFunc.showMessage(gdsformconst, 'pleaseChooseParts'); + message.warn(msg === '' ? '请选择部件' : msg); // 请选择部件 + return; + } + const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]); + const iSlaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); + if (iIndex > -1 && iSlaveIndex > -1) { + if (commonUtils.isEmpty(controlData[iIndex].sPartsName) === '') { + message.warn(commonFunc.showMessage(gdsformconst, 'partsNameNotNull')); // 部件名称不能为空 + return; + } + tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId; + tableDataRow.sControlId = controlData[iIndex].sId; + tableDataRow.sPartsName = controlData[iIndex].sPartsName; + } + tableData.push(tableDataRow); + this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }); + } else { + this.props.onDataRowAdd(name, flag); + } + }; + /** 删除表格数据 */ + otherTableDel = (name, tableSelectedRowKeys) => { + const tableData = this.props[`${name}Data`]; + let tableDelData = this.props[`${name}DelData`]; + tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData; + for (const sId of tableSelectedRowKeys) { + /* 看看删除集合和从表中是否都存在该条数据 */ + let tableDataIndex = tableData.findIndex(item => item.sControlId === sId); + while (tableDataIndex > -1) { + /* 删除从表中的数据并存入删除集合中 */ + const slaveDataFilter = tableData[tableDataIndex]; + tableData.splice(tableDataIndex, 1); + slaveDataFilter.handleType = 'del'; + tableDelData.push(slaveDataFilter); + tableDataIndex = tableData.findIndex(item => item.sControlId === sId); + } + } + return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] }; + }; + /** 删除表格数据 */ + handleTableDel = (name, isWait, tableSelectedRowKeys, isTree) => { + const { + slaveSelectedRowKeys, slaveData, slaveInfoConfig, slaveConfig, + } = this.props; + if (name === 'control') { + // const tableSelectedRowKeys = this.props[`${name}SelectedRowKeys`]; /* 删除时,选中行取删除参数传过来的 */ + const { + controlData, treeSelectedKeys, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, sModelsType, slaveSelectedRowKeys, slaveData, + } = this.props; + if (isTree) { + /* 删除该节点及所有子节点 */ + const controlChildData = controlData.filter(item => commonUtils.isNotEmptyArr(treeSelectedKeys) && commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]); + if (commonUtils.isNotEmptyArr(controlData)) { + controlChildData.forEach((itemNew) => { + tableSelectedRowKeys.push(itemNew.sId); + }); + } + } + if (commonUtils.isNotEmptyArr(tableSelectedRowKeys)) { + const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys); + const processReturnData = this.otherTableDel('process', tableSelectedRowKeys); + const controlReturnData = this.props.onDataRowDel(name, isWait, tableSelectedRowKeys); + this.props.onSaveState({ + ...materialsReturnData, + ...processReturnData, + ...controlReturnData, + }); + return true; + } else { + message.warn('请选择要删除的部件!'); + return false; + } + } else if (name === 'slave') { /* 删除子表 */ + if( slaveConfig.sTableType === 'multiple' && commonUtils.isNotEmptyObject(slaveInfoConfig)) { + if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { + let slaveInfoReturnData = {}; + if (commonUtils.isNotEmptyObject(slaveInfoConfig)) { + slaveInfoReturnData = this.props.onChildTableDel('slaveInfo', slaveSelectedRowKeys, slaveData, 'sFatherSlaveId'); + } + const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowKeys); + this.props.onSaveState({ + ...slaveInfoReturnData, + ...slaveReturnData, + }); + return true; + } + } else if( slaveConfig.sTableType === 'single') { /* 单表删除 */ + if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { + let slaveSelectedRowNewKeys = slaveSelectedRowKeys; + const newSelectedRowKeys = this.handleDelSlaveChild(slaveData, slaveSelectedRowKeys[0], slaveSelectedRowKeys); + if(commonUtils.isNotEmptyArr(newSelectedRowKeys)) { + slaveSelectedRowNewKeys = newSelectedRowKeys; + } + const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowNewKeys); + this.props.onSaveState({ + ...slaveReturnData, + }); + return true; + } + } else { + const slaveReturnData = this.props.onDataRowDel(name, isWait, slaveSelectedRowKeys); + this.props.onSaveState({ + ...slaveReturnData, + }); + return true; + } + } else { + return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys); + } + }; + + + /* 迭代删除从表子表数据 */ + handleDelSlaveChild = (tableData, sId, tableSelectedKeys) => { + const filterData = tableData.filter(item => item.sFatherSlaveId === sId); + filterData.forEach((item) => { + tableSelectedKeys.push(item.sId); + this.handleDelSlaveChild(tableData, item.sId, tableSelectedKeys); + }); + return tableSelectedKeys; + } + + /** 销售订单删除从表数据时也删除控制材料工序表数据 */ + handleSlaveTableDel = (name, isWait, tableSelectedRowKeys) => { + const { + sModelsType, controlData, processData, materialsData, + } = this.props; + if (sModelsType === 'sales/salesOrder' && name === 'slave') { + const controlDataDel = controlData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]); + const controlDataSelectedRowKeys = []; + if (!commonUtils.isEmpty(controlDataDel)) { + for (const item of controlDataDel) { + const materialsDataSelectedRowKey = item.sId; + controlDataSelectedRowKeys.push(materialsDataSelectedRowKey); + } + if (commonUtils.isNotEmptyArr(controlDataSelectedRowKeys)) { + this.props.onDataRowDel('control', isWait, controlDataSelectedRowKeys, true); + } + const materialsDataDel = materialsData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]); + const materialsDataSelectedRowKeys = []; + if (!commonUtils.isEmpty(materialsDataDel)) { + for (const item of materialsDataDel) { + const materialsDataSelectedRowKey = item.sId; + materialsDataSelectedRowKeys.push(materialsDataSelectedRowKey); + } + } + if (commonUtils.isNotEmptyArr(materialsDataSelectedRowKeys)) { + this.props.onDataRowDel('materials', isWait, materialsDataSelectedRowKeys, true); + } + const processDataDel = processData.filter(item => item.sSlaveId === tableSelectedRowKeys[0]); + const processDataSelectedRowKeys = []; + if (!commonUtils.isEmpty(processDataDel)) { + for (const item of processDataDel) { + const processDataSelectedRowKey = item.sId; + processDataSelectedRowKeys.push(processDataSelectedRowKey); + } + } + if (commonUtils.isNotEmptyArr(processDataSelectedRowKeys)) { + this.props.onDataRowDel('process', isWait, processDataSelectedRowKeys, true); + } + } + } + return this.props.onDataRowDel(name, isWait, tableSelectedRowKeys); + }; + handleSelect = async (name, selectConfig, selectData) => { + const { + [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Config`]: tableConfig, masterConfig, controlSelectedRowKeys, sModelsId, token, app, tableName, sModelsType, + } = this.props; + let { masterData}= this.props; + if(commonUtils.isNotEmptyObject(selectConfig.sControlName) && selectConfig.sControlName.toLowerCase().includes('tmplnfobysqlsalesorder')) { + const { slaveData, slaveSelectedRowKeys} = this.props; + const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`; + const sConfigformId = commonUtils.isEmpty(selectConfig) ? '' : selectConfig.sParentId; + const sControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? selectConfig.sControlName : 'BtnCopyFrom.TmpInfoBySql'; + let sSqlCondition = ''; + const conditonValues0 = this.props.getSqlCondition(selectConfig, 'slave', selectData[0]); + if(commonUtils.isNotEmptyObject(conditonValues0)) { + sSqlCondition = conditonValues0; + } else { + sSqlCondition = { sId: selectData[0].sId }; + } + /* 如果只有1行替换,超出1行新增 */ + let iSlaveIndex = -1; + let slaveRow = {}; + + if (commonUtils.isNotEmptyArr(slaveData)) { + if(commonUtils.isEmptyArr(slaveSelectedRowKeys)){ + iSlaveIndex = 0; + } else{ + iSlaveIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); + } + } + + if(iSlaveIndex > -1 ){ + slaveRow = slaveData[iSlaveIndex]; + } + + const sRowData = selectData; + const values = { sConfigformId, sControlName, sRowData }; + const sTmpInfoBySqlBtnName = selectConfig.sControlName; + const allReturnMap = {}; + if (true) { + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(returnData)) { + for (const key of Object.keys(returnData)) { + const sName = `${key}Data`; + const sDelName = `${key}DelData`; + // allReturnMap[sName] = returnData[key]; + let {[`${key}Data`]: oldData, [`${sDelName}`]: oldDelData } = this.props; + + if(commonUtils.isEmptyArr(oldDelData)) { + oldDelData = []; + } + if(commonUtils.isEmptyArr(oldData)) { + oldData = []; + } + /* 找到赋值字段 */ + const tableConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(sTmpInfoBySqlBtnName +'.' + key)); + const tableField = commonUtils.isNotEmptyArr(tableConfig) ? tableConfig[0].sAssignField : ''; + if(sTmpInfoBySqlBtnName.includes('_edit')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + const sActiveKey = selectConfig.sActiveKey; + const keyData = returnData[key]; + /* 找到赋值字段 */ + + let newData = []; + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + const filterData = oldData.filter(item => item[sActiveKey] !== child[sActiveKey]); + if(commonUtils.isNotEmptyArr(filterData) && filterData.length === oldData.length) { + let tableRow ={}; + tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.handleType = 'add'; + newData.push(tableRow); + } + }); + newData = oldData.concat(newData); + } + allReturnMap[sName] = newData; + } else if(sTmpInfoBySqlBtnName.includes('_del')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + oldData.forEach((child) => { + child.handleType ='del'; + oldDelData.push(child); + }); + allReturnMap[sDelName] = oldDelData; + oldData = []; + const keyData = returnData[key]; + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + let tableRow ={}; + tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.handleType = 'add'; + oldData.push(tableRow); + }); + } + allReturnMap[sName] = oldData; + } else{ /* 插入 数据都插入进去 */ + /* 对应字段 */ + const keyData = returnData[key]; + + // 生产补印备料 + if (this.props.sModelsId === '12710101117005582604140' && key !=='master') { + oldData.forEach((child) => { + child.handleType ='del'; + oldDelData.push(child); + }); + allReturnMap[sDelName] = oldDelData; + oldData = []; + } + if(key === 'master') { + let newData = keyData; + if (commonUtils.isNotEmptyArr(keyData) && Array.isArray(keyData)) { + newData = keyData[0] + } + oldData = { ...oldData, ...commonFunc.getAssignFieldValue(tableField, newData) }; // 取赋值字段 + masterData.handleType = commonUtils.isEmpty( masterData.handleType) ? 'update' : masterData.handleType; + } else if(key === 'slave') { /* 从表 */ + if(commonUtils.isNotEmptyObject(slaveRow) && commonUtils.isNotEmptyArr(oldData)) { + oldData[iSlaveIndex] = { ...slaveRow, ...commonFunc.getAssignFieldValue(tableField, keyData[0]) }; // 取赋值字段 + oldData[iSlaveIndex].sOriginalId = commonUtils.isNotEmptyObject(keyData[0].sOriginalId) ? keyData[0].sOriginalId: keyData[0].sSlaveId; + // 生产补印备料 + if (this.props.sModelsId === '12710101117005582604140') { + oldData[iSlaveIndex].sBomId = selectData[0].sProductCardId; + oldData[iSlaveIndex].sProductTechnologyVer = selectData[0].sProductTechnologyVer; + oldData[iSlaveIndex].sSelectType = "mainVersion"; + oldData[iSlaveIndex].handleType = commonUtils.isEmpty(oldData[iSlaveIndex].handleType) ? 'update' : oldData[iSlaveIndex].handleType; + oldData[iSlaveIndex].sMainProductTechnologyId = selectData[0].sProductCardId; + } + slaveData[iSlaveIndex] = oldData[iSlaveIndex]; + } else { + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + let tableRow ={}; + tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.sOriginalId = commonUtils.isNotEmptyObject(child.sSlaveId) ? child.sSlaveId : child.sId; /* 原始sId */ + tableRow.sFatherSlaveId = child.sFatherSlaveId; /* 原始sId */ + tableRow.handleType = 'add'; + + if (this.props.sModelsId === '12710101117005582604140') { + tableRow.sBomId = selectData[0].sProductCardId; + tableRow.sProductTechnologyVer = selectData[0].sProductTechnologyVer; + tableRow.sSelectType = "mainVersion"; + tableRow.sMainProductTechnologyId = selectData[0].sProductCardId; + } + oldData.push(tableRow); + }); + } + } + /* sFatherSlaveId对应为新的sId */ + if(commonUtils.isNotEmptyArr(oldData)) { + const materialsFilterData = oldData.filter(item => commonUtils.isNotEmptyObject(item.sFatherSlaveId)); + if (commonUtils.isNotEmptyArr(materialsFilterData)) { + materialsFilterData.forEach((filterItem, index) => { + const iIndex = oldData.findIndex(item => item.sOriginalId === filterItem.sFatherSlaveId); + if (iIndex > -1) { + const iNexIndex = oldData.findIndex(item => item.sId === filterItem.sId); + if (iNexIndex > -1) { + oldData[iNexIndex] = { + ...oldData[iNexIndex], + sFatherSlaveId: oldData[iIndex].sId + } + } + } + + }); + } + } + }else { + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + let tableRow ={}; + tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.sOriginalId = child.sOriginalId; /* 老的从表sSlaveId */ + // 生产补印备料 + if (this.props.sModelsId === '12710101117005582604140') { + tableRow.sProductCardId = selectData[0].sProductCardId; + tableRow.sZmldlt = child.sZmldlt; + tableRow.sSlaveId = commonUtils.isNotEmptyArr(slaveData) && slaveData[0].sId ? slaveData[0].sId : ''; + tableRow.sProcessTbId = child.sProcessTbId; + tableRow.sParentMaterialsId = child.sParentMaterialsId; + tableRow.sInkFatherMaterialsTbId = child.sInkFatherMaterialsTbId; + tableRow.sOriginalOldId = child.sId; + + } + + if(key === 'control') { + tableRow.sSrcControlId = child.sId; + } else { + tableRow.sSrcControlId = child.sControlId; + } + tableRow.handleType = 'add'; + oldData.push(tableRow); + }); + } + if(commonUtils.isNotEmptyObject(slaveRow)){ + /* 将部件、材料、工序的sSlaveId 均换成最新的 */ + oldData = commonUtils.genSlaveNewId(oldData, key, 'sSlaveId', 'sOriginalId', slaveData[iSlaveIndex]); + } + } + allReturnMap[sName] = oldData; + } + + } + + /* 将工序材料表的sControlId 换成最新的 */ + if(commonUtils.isNotEmptyObject(allReturnMap)) { + const controlNewData = allReturnMap.controlData; + const materialsNewData = allReturnMap.materialsData; + const processNewData = allReturnMap.processData; + if(commonUtils.isNotEmptyArr(controlNewData)) { + + controlNewData.forEach((controlRow) =>{ + + /* 替换工序数据中sControlId为最新控制表的sId */ + if(commonUtils.isNotEmptyArr(processNewData)) { + const processFilterData = processNewData.filter(materialsRow => materialsRow.sSrcControlId === controlRow.sSrcControlId); + if(commonUtils.isNotEmptyArr(processFilterData)) { + processFilterData.forEach((filterRow) =>{ + const index = processNewData.findIndex(materialsRow => materialsRow.sId === filterRow.sId); + filterRow.sControlId = controlRow.sId; + filterRow.sPartsName = controlRow.sPartsName; + if (index > -1) { + processNewData[index] = filterRow; + } + }) + } + } + + /* 替换材料数据中sControlId为最新控制表的sId */ + if(commonUtils.isNotEmptyArr(materialsNewData)) { + let materialsFilterData = materialsNewData.filter(materialsRow => materialsRow.sSrcControlId === controlRow.sSrcControlId); + if(commonUtils.isNotEmptyArr(materialsFilterData)) { + materialsFilterData.forEach((filterRow) =>{ + const index = materialsNewData.findIndex(materialsRow => materialsRow.sId === filterRow.sId); + filterRow.sControlId = controlRow.sId; + filterRow.sPartsName = controlRow.sPartsName; + if (index > -1) { + materialsNewData[index] = filterRow; + // 材料对应工序的ID要变化 + const iProcessIndex = processNewData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsNewData[index].sProcessTbId); + if (iProcessIndex > -1) { + materialsNewData[index].sProcessTbId = processNewData[iProcessIndex].sId; + } + materialsNewData[index].sCombinePartsName = commonUtils.isNotEmptyArr(allReturnMap.slaveData) ? allReturnMap.slaveData[0].sId : ''; + } + + }); + } + + + const materialsData = materialsNewData; + materialsFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId)); + if(commonUtils.isNotEmptyArr(materialsFilterData)) { + materialsFilterData.forEach((filterItem, index) => { + const iIndex = materialsData.findIndex(item => item.sOriginalOldId === filterItem.sParentMaterialsId); + if(iIndex > -1) { + const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId); + if (iNexIndex > -1) { + materialsData[iNexIndex] = {...materialsData[iNexIndex], sParentMaterialsId: materialsData[iIndex].sId } + } + } + + }); + } + + const materialsInkFilterData = materialsData.filter(item => commonUtils.isNotEmptyObject(item.sInkFatherMaterialsTbId)); + if(commonUtils.isNotEmptyArr(materialsInkFilterData)) { + materialsInkFilterData.forEach((filterItem, index) => { + const iIndex = materialsData.findIndex(item => item.sOriginalOldId === filterItem.sInkFatherMaterialsTbId); + if(iIndex > -1) { + const iNexIndex = materialsData.findIndex(item => item.sId === filterItem.sId); + if(iNexIndex > -1) { + materialsData[iNexIndex] = { ...materialsData[iNexIndex], sInkFatherMaterialsTbId: materialsData[iIndex].sId} + } + } + }); + } + } + }); + + allReturnMap.materialsData = materialsNewData; + allReturnMap.processData = processNewData; + } + } + + if (commonUtils.isNotEmptyArr(allReturnMap.masterData) && Array.isArray(allReturnMap.masterData)) { + allReturnMap.masterData = allReturnMap.masterData[0]; + } + console.log('历史工单allReturnMap:', allReturnMap); + this.props.onSaveState({ ...allReturnMap }); + } + + } else { + this.props.getServiceError(dataReturn); + } + } else { + message.warn('数据未配置!不能生成!'); + return; + } + } else if(commonUtils.isNotEmptyObject(selectConfig.sControlName) && selectConfig.sControlName.toLowerCase().includes('tmpinfobysql')) { + const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`; + const sConfigformId = commonUtils.isEmpty(selectConfig) ? '' : selectConfig.sParentId; + const sControlName = commonUtils.isNotEmptyObject(selectConfig.sControlName) ? selectConfig.sControlName : 'BtnCopyFrom.TmpInfoBySql'; + let sSqlCondition = ''; + const conditonValues0 = this.props.getSqlCondition(selectConfig, 'slave', selectData[0]); + if(commonUtils.isNotEmptyObject(conditonValues0)) { + sSqlCondition = conditonValues0; + } else { + sSqlCondition = { sId: selectData[0].sId }; + } + const sRowData = selectData; + const values = { sConfigformId, sControlName, sRowData }; + const sTmpInfoBySqlBtnName = selectConfig.sControlName; + const allReturnMap = {}; + if (true) { + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(returnData)) { + for (const key of Object.keys(returnData)) { + const sName = `${key}Data`; + const sDelName = `${key}DelData`; + // allReturnMap[sName] = returnData[key]; + let {[`${key}Data`]: oldData, [`${key}Data`]: oldDelData } = this.props; + + if(commonUtils.isEmptyArr(oldDelData)) { + oldDelData = []; + } + if(commonUtils.isEmptyArr(oldData)) { + oldData = []; + } + /* 找到赋值字段 */ + const tableConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(sTmpInfoBySqlBtnName +'.' + key)); + const tableField = commonUtils.isNotEmptyArr(tableConfig) ? tableConfig[0].sAssignField : ''; + if(sTmpInfoBySqlBtnName.includes('_edit')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + const sActiveKey = selectConfig.sActiveKey; + const keyData = returnData[key]; + /* 找到赋值字段 */ + + let newData = []; + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + const filterData = oldData.filter(item => item[sActiveKey] !== child[sActiveKey]); + if(commonUtils.isNotEmptyArr(filterData) && filterData.length === oldData.length) { + let tableRow ={}; + tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.handleType = 'add'; + newData.push(tableRow); + } + }); + newData = oldData.concat(newData); + } + allReturnMap[sName] = newData; + } else { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + oldData.forEach((child) => { + child.handleType ='del'; + oldDelData.push(child); + }); + allReturnMap[sDelName] = oldDelData; + oldData = []; + const keyData = returnData[key]; + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + let tableRow ={}; + tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(tableField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.handleType = 'add'; + oldData.push(tableRow); + }); + } + allReturnMap[sName] = oldData; + } + + } + if (commonUtils.isNotEmptyArr(allReturnMap.masterData) && Array.isArray(allReturnMap.masterData)) { + allReturnMap.masterData = allReturnMap.masterData[0]; + } + console.log('allReturnMap:111', allReturnMap); + this.props.onSaveState({ ...allReturnMap }); + } + + } else { + this.props.getServiceError(dataReturn); + } + } else { + message.warn('数据未配置!不能生成!'); + return; + } + } else if (sModelsType !== '' && sModelsType.includes('sales/') && name === 'productProcessInfo') { /* 销售订单调用工艺卡 */ + const { + controlConfig, materialsConfig, processConfig, slaveSelectedRowKeys, slaveData, + } = this.props; + const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); + if (iIndex > -1 && commonUtils.isNotEmptyArr(selectData)) { + const tableDataRow = slaveData[iIndex]; /* 从表选中行 */ + let { controlData, materialsData, processData } = this.props; + const sId = tableDataRow.sId; + const bCkxCopyFromTechnology = '1'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue; + if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) { + const controlSelectedData = controlData.filter(item => item.sSlaveId === sId); + if (commonUtils.isNotEmptyObject(controlSelectedData)) { + const controlSelectedRowKeys = []; + controlSelectedData.forEach((item) => { + controlSelectedRowKeys.push(item.sId); + }); + const materialsReturnData = this.otherTableDel('materials', controlSelectedRowKeys); + const processReturnData = this.otherTableDel('process', controlSelectedRowKeys); + const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedRowKeys); + controlData = controlReturnData.controlData; + materialsData = materialsReturnData.materialsData; + processData = processReturnData.processData; + this.props.onSaveState({ + ...materialsReturnData, + ...processReturnData, + ...controlReturnData, + }); + } + const sCustomerId = selectData[0].sCustomerId; + const sProductId = selectData[0].sProductId; + const sProductIdArray = []; + sProductIdArray.push(sProductId); + const sProductIds = sProductIdArray.toString(); + const condition = { + sCustomerId, sProductIds, + }; + const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnCopyFrom.productProcessInfo')); + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase().includes('.control')); + const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase().includes('.materials')); + const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase().includes('.process')); + const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; + const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; + const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData; + if (commonUtils.isNotEmptyArr(returnData.controlData)) { + const treeCopyNodes = new Map(); + // eslint-disable-next-line no-loop-func + returnData.controlData.forEach((controlItem) => { + newCopyTo.control = controlItem; + let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo); // 取默认值 + controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 + controlRow.handleType = 'add'; + controlRow.sId = commonUtils.createSid(); + controlRow.sSlaveId = tableDataRow.sId; + controlRow.sParentId = masterData.sId; + if (sModelsType === 'sales/salesOrderPack') { /* 树形 */ + /* CopyTo时sAllId,sControlParentId 设置 */ + const sAllOldId = controlItem.sAllId; + let arr = []; + if (commonUtils.isNotEmptyObject(sAllOldId)) { + arr = sAllOldId.split(','); + } + const newId = controlRow.sId; + let sOldParentId = ''; + let sNewParentAllId = ''; + if (arr.length < 2) { /* 根节点复制 */ + controlRow.sAllId = newId; + sOldParentId = newId; + sNewParentAllId = newId; + } else { + sOldParentId = arr[arr.length - 2]; + if (treeCopyNodes.has(sOldParentId)) { + sNewParentAllId = treeCopyNodes.get(sOldParentId); + } else { + const obj = arr[arr.length - 1]; + sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + } + const sNewArr = sNewParentAllId.split(','); + controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; + sNewParentAllId = `${sNewParentAllId},${newId}`; + controlRow.sAllId = sNewParentAllId; + } + treeCopyNodes.set(controlItem.sId, sNewParentAllId); + } + controlData.push(controlRow); + + if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + returnData.materialsData.filter(item => item.sControlId === controlItem.sId) + .forEach((materialsItem) => { + newCopyTo.materials = materialsItem; + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + materialsRow.handleType = 'add'; + materialsRow.sId = commonUtils.createSid(); + materialsRow.sSlaveId = tableDataRow.sId; + materialsRow.sParentId = masterData.sId; + materialsRow.sControlId = controlRow.sId; + materialsRow.sPartsName = controlRow.sPartsName; + + materialsData.push(materialsRow); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.processData)) { + returnData.processData.filter(item => item.sControlId === controlItem.sId) + .forEach((processItem) => { + newCopyTo.process = processItem; + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sSlaveId = tableDataRow.sId; + processRow.sParentId = masterData.sId; + processRow.sControlId = controlRow.sId; + processRow.sPartsName = controlRow.sPartsName; + processData.push(processRow); + }); + } + }); + } + if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + // eslint-disable-next-line no-loop-func + returnData.materialsData.filter(item => item.sType === '2') + .forEach((materialsItem) => { + newCopyTo.materials = materialsItem; + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + materialsRow.handleType = 'add'; + materialsRow.sId = commonUtils.createSid(); + materialsRow.sSlaveId = tableDataRow.sId; + materialsRow.sParentId = masterData.sId; + materialsData.push(materialsRow); + }); + } + if (commonUtils.isNotEmptyArr(returnData.processData)) { + // eslint-disable-next-line no-loop-func + returnData.processData.filter(item => item.sType === '3') + .forEach((processItem) => { + newCopyTo.process = processItem; + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sSlaveId = tableDataRow.sId; + processRow.sParentId = masterData.sId; + processData.push(processRow); + }); + } + this.props.onSaveState({ + controlData, + materialsData, + processData, + }); + } + } + } + } else if (name === 'productProcessInfoAbandon') { /* 暂未使用的调用工艺卡功能 */ + if (commonUtils.isNotEmptyArr(selectData)) { + let slaveData = []; + let controlData = []; + let materialsData = []; + let processData = []; + let sConfigMasterIdSlave = ''; + let sConfigMasterIdControl = ''; + let sConfigMasterIdMaterials = ''; + let sConfigMasterIdProcess = ''; + const selectRowData = selectData[0]; + const sConfigIdString = masterConfig.gdsconfigformslave.filter(item => item.sName === 'sConfigId')[0].showDropDown; + if (commonUtils.isNotEmptyStr(sConfigIdString)) { + const sConfigId = JSON.parse(sConfigIdString); + sConfigMasterIdSlave = sConfigId.sConfigMasterIdSlave; + sConfigMasterIdControl = sConfigId.sConfigMasterIdControl; + sConfigMasterIdMaterials = sConfigId.sConfigMasterIdMaterials; + sConfigMasterIdProcess = sConfigId.sConfigMasterIdProcess; + } + if (commonUtils.isEmptyStr(sConfigMasterIdSlave)) { + message.warning(commonFunc.showMessage(app.commonConst, 'slaveParameterErro')); + } + if (commonUtils.isEmptyStr(sConfigMasterIdControl)) { + message.warning(commonFunc.showMessage(app.commonConst, 'controlParameterErro')); + } + if (commonUtils.isEmptyStr(sConfigMasterIdMaterials)) { + message.warning(commonFunc.showMessage(app.commonConst, 'materialsParameterErro')); + } + if (commonUtils.isEmptyStr(sConfigMasterIdProcess)) { + message.warning(commonFunc.showMessage(app.commonConst, 'processParameterErro')); + } + const slaveUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdSlave}?sModelsId=${sModelsId}`; + const value = { sSqlCondition: { sParentId: selectRowData.sId } }; + const slaveReturnData = (await commonServices.postValueService(token, value, slaveUrl)).data; + if (slaveReturnData.code === 1) { + slaveData = slaveReturnData.dataset.rows[0].dataSet; + slaveData.forEach((item) => { + item.handleType = 'add'; + item.sId = commonUtils.createSid(); + item.sParentId = masterData.sId; + }); + } else { + this.props.getServiceError(slaveReturnData); + } + + const controlUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdControl}?sModelsId=${sModelsId}`; + const controlReturnData = (await commonServices.postValueService(token, value, controlUrl)).data; + if (controlReturnData.code === 1) { + controlData = controlReturnData.dataset.rows[0].dataSet; + controlData.forEach((item) => { + item.handleType = 'add'; + item.sId = commonUtils.createSid(); + item.sParentId = masterData.sId; + }); + } else { + this.props.getServiceError(controlReturnData); + } + const materialsUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdMaterials}?sModelsId=${sModelsId}`; + const materialsReturnData = (await commonServices.postValueService(token, value, materialsUrl)).data; + if (materialsReturnData.code === 1) { + materialsData = materialsReturnData.dataset.rows[0].dataSet; + materialsData.forEach((item) => { + item.handleType = 'add'; + item.sId = commonUtils.createSid(); + item.sParentId = masterData.sId; + }); + } else { + this.props.getServiceError(materialsReturnData); + } + const processUrl = `${commonConfig.server_host}business/getBusinessDataByFormcustomId/${sConfigMasterIdProcess}?sModelsId=${sModelsId}`; + const processReturnData = (await commonServices.postValueService(token, value, processUrl)).data; + if (processReturnData.code === 1) { + processData = processReturnData.dataset.rows[0].dataSet; + processData.forEach((item) => { + item.handleType = 'add'; + item.sId = commonUtils.createSid(); + item.sParentId = masterData.sId; + }); + } else { + this.props.getServiceError(processReturnData); + } + this.props.onSaveState({ + processData, materialsData, controlData, slaveData, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, + }); + } + } else if (tableName === 'slave' && selectConfig.sControlName === 'BtnChooseMaterials') { + this.props.onSelect('slave', selectConfig, selectData); + } else if (sModelsType.includes('cashier/') && selectConfig.sControlName === 'BtnImportFormData') { + const { slaveData } = this.props; + let tableDataNew = []; + if (commonUtils.isNotEmptyArr(slaveData)) { + tableDataNew = slaveData; + tableDataNew.forEach((item, index) => { + const handleType = item.handleType; + if (commonUtils.isEmptyObject(handleType) || handleType === 'update') { + tableDataNew[index] = { ...item, handleType: 'del' }; + } + }); + } + if (commonUtils.isNotEmptyArr(selectData)) { + selectData.forEach((item) => { + let tableDataRow = {}; // 取默认值 + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item) }; // 取赋值字段 + tableDataRow.handleType = 'add'; + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.sParentId = masterData.sId; + tableDataNew.push(tableDataRow); + }); + this.props.onSaveState({ slaveData: tableDataNew, importFormDataVisible: false }); + } + } else { + const { controlData, slaveData, slaveSelectedRowKeys } = this.props; + const iIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; + if (commonUtils.isNotEmptyArr(selectData)) { + selectData.forEach((item) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iIndex > -1) { + newCopyTo.control = controlData[iIndex]; + } + let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo); // 取默认值 + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 + tableDataRow.handleType = 'add'; + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.sParentId = masterData.sId; + if (this.props.sModelsType.includes('sales/salesOrder')) { + const iSlaveIndex = commonUtils.isNotEmptyArr(slaveSelectedRowKeys) ? slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]) : -1; + if (iSlaveIndex > -1) { + tableDataRow.sSlaveId = slaveData[iSlaveIndex].sId; + } + } + if (iIndex > -1 && tableDataRow.sType !== '3') { + tableDataRow.sControlId = controlData[iIndex].sId; + tableDataRow.sPartsName = controlData[iIndex].sPartsName; + tableData.push(tableDataRow); + } else if (tableDataRow.sType === '3') { + tableData.push(tableDataRow); + } + tableSelectedRowKeys.push(tableDataRow.sId); + }); + } + const tableDataNew = this.sortData(controlData, tableData); + this.props.onSaveState({ [`${name}Data`]: tableDataNew, [`${name}ChooseVisible`]: false, [`${name}SelectedRowKeys`]: tableSelectedRowKeys }); + } + }; + + /** 树节点选中 */ + handleTreeSelect = (name, checkedKeys, e) => { + let { controlSelectedRowKeys } = this.props; + controlSelectedRowKeys = checkedKeys; /* 把树形选中节点赋值给表格部件选中节点 */ + this.props.onTreeSelect(name, checkedKeys, e); + this.props.onSaveState({ + controlSelectedRowKeys, + }); + }; + + sortData = (tableData, processData) => { + processData.sort((g1, g2) => { + const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId); + let sPartOrder1 = `0000${iIndex1}`; + sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3); + let sOrder1 = `000${g1.iOrder}`; + sOrder1 = sOrder1.substring(sOrder1.length - 3); + + const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId); + let sPartOrder2 = `0000${iIndex2}`; + sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3); + let sOrder2 = `000${g2.iOrder}`; + sOrder2 = sOrder2.substring(sOrder2.length - 3); + return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10); + }); + return processData; + }; + handleGetDataOk = () => { + this.props.onDataImport('zero'); + } + handleGetDataCancel = () => { + this.props.onDataImport('all'); + } + colseGetDataVisible = () => { + this.props.onSaveState({ isGetDataVisible: false }); + } + + /* 审核备注文本框改变事件 */ + textChange= (e, record) => { + const sCheckRemark = commonUtils.isNotEmptyObject(record) && commonUtils.isNotEmptyObject(e.target.value) ? e.target.value : ''; + this.props.onSaveState({ sCheckRemark });/* 审核备注 */ + } + handleTableCopy = (name, isWait, isTree) => { + const { + [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination, sModelsType, + } = this.props; + if (commonUtils.isEmptyArr(tableSelectedRowKeys)) { + message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */ + } else { + if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */ + const { + [`${name}SelectedRowKeys`]: treeSelectedKeys, + } = this.props; + const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]); + if (commonUtils.isNotEmptyArr(tableData)) { + controlChildData.forEach((itemNew) => { + tableSelectedRowKeys.push(itemNew.sId); + }); + } + } + const treeCopyNodes = new Map(); + for (const sId of tableSelectedRowKeys) { + const tableDataIndex = tableData.findIndex(item => item.sId === sId); + if (tableDataIndex > -1) { + const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex])); + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.key = tableDataRow.sId; + tableDataRow.sSrcSlaveId = ''; + tableDataRow.sSrcId = ''; + tableDataRow.dSrcQty = null; + tableDataRow.rowTag = null; + tableDataRow.sOrderdetailUsed = ''; + tableDataRow.sProductionUsed = ''; + tableDataRow.sWorkOrderUsed = ''; + tableDataRow.dWorkOrderQty = 0; + const iOrderArr = []; + tableData.forEach((item) => { + const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */ + iOrderArr.push(iOrder); + }); + const iOrderMax = Math.max(...iOrderArr); + tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0; + + if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) { + tableDataRow.sMaterialsMemo = ''; + } + if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) { + tableDataRow.sProcessMemo = ''; + } + if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */ + const sAllOldId = tableData[tableDataIndex].sAllId; + const arr = sAllOldId.split(','); + const newId = commonUtils.createSid(); + tableDataRow.sId = newId; + let sOldParentId = ''; + let sNewParentAllId = ''; + if (arr.length < 2) { /* 根节点复制 */ + tableDataRow.sAllId = newId; + sOldParentId = newId; + sNewParentAllId = newId; + } else { + sOldParentId = arr[arr.length - 2]; + if (treeCopyNodes.has(sOldParentId)) { + sNewParentAllId = treeCopyNodes.get(sOldParentId); + } else { + const obj = arr[arr.length - 1]; + sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + } + const sNewArr = sNewParentAllId.split(','); + tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1]; + sNewParentAllId = `${sNewParentAllId},${newId}`; + tableDataRow.sAllId = sNewParentAllId; + } + treeCopyNodes.set(sId, sNewParentAllId); + } + if (isWait) { + return tableDataRow; + } else if (commonUtils.isNotEmptyObject(tableDataRow)) { + tableData.push(tableDataRow); + this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 } }); + } + } + } + } + }; + // ----------------------------数据修改回带end ---------------------------- // + + handleMenuClick= (e) => { + let { sId } = this.props.masterData; + const Type = e.key; + const { token } = this.props.app; + const { sType } = this.props.app.userinfo; + if (Type === 'formSlave') { /* 根据从表勾选数据 生成从表数据 */ + const { slaveSelectedRowKeys } = this.props; + if (commonUtils.isEmptyObject(slaveSelectedRowKeys)) { + message.warn('请选择数据'); + return; + } + sId = slaveSelectedRowKeys; + } + const downloadUrl = `${commonConfig.server_host}sqlfile/scriptSqlDownload?methodName=${Type + }&sId=${sId}&token=${token}&sType=${sType}`; + window.open(downloadUrl); + this.props.onSaveState({ + downloadUrl, + }); + }; + + handleSqlDownload = (type) => { + const { masterData } = this.props; + const { token } = this.props.app; + const { sType } = this.props.app.userinfo; + if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sId)) { + let downloadUrl = ''; + if (type === 'all') { + downloadUrl = `${commonConfig.server_host}sqlfile/scriptSqlDownload?methodName=module&&Type=ALL&sId=${masterData.sParentId !== '' ? masterData.sParentId : masterData.sId}&token=${token}&sType=${sType}`; + } else { + downloadUrl = `${commonConfig.server_host}sqlfile/scriptSqlDownload?methodName=module&&Type=ALL&sId=${masterData.sId}&token=${token}&sType=${sType}`; + } + window.open(downloadUrl); + } + } + + handleDrag = (data) => { + this.props.onSaveState({ + processData: data, + }); + } + + handleTableFilterData = (name, data, record) => { + /* 外置处理业务 */ + if (name === 'slave') { + let slaveInfoDataNew = []; + if (commonUtils.isNotEmptyArr(data)) { + slaveInfoDataNew = data.filter(item => item.sFatherSlaveId && record.sId && item.sFatherSlaveId === record.sId); + } + return slaveInfoDataNew; + } + } + + handleCheckBoxStatus = (status, dataIndex, name) => { + const { [`${name}Data`]: dataSource} = this.props; + if (!Array.isArray(dataSource)) return; + const result = dataSource.map(i => ({ + ...i, + [dataIndex]: status, + })); + this.props.onSaveState({ [`${name}Data`]: result }); + } + + render() { + const { + pageLoading, masterConfig, visible, checkConditions, checkPersonData, visibleModal, processChooseVisible, materialsChooseVisible, + app, sTabId, sModelsType, enabled, slaveSelectedRowKeys, controlData, + } = this.props; + const checkCondition = commonFunc.showMessage(app.commonConst, 'checkCondition');/* 审核条件 */ + const checkSmemo = commonFunc.showMessage(app.commonConst, 'checkSmemo');/* 备注 */ + const columns = [{ + title: checkCondition, + dataIndex: 'condition', + key: 'condition', + }, { + title: checkSmemo, + dataIndex: 'sMemo', + key: 'sMemo', + render: (text, record) => { + return ( +
+ { this.textChange(e, record); }} /> +
+ ); + }, + }]; + let chooseProcessConfig; + let onChooseProcessIndex; + /* 获取toolbar 选择工序 */ + if (commonUtils.isNotEmptyObject(masterConfig)) { + onChooseProcessIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess'); + if (onChooseProcessIndex > -1) { + chooseProcessConfig = this.props.masterConfig.gdsconfigformslave[onChooseProcessIndex]; + } + } + /* 获取toolbar 选择材料 */ + let chooseMaterialsConfig; + const modalWidth = '1132'; + const fixedAutoHeight = sModelsType === 'sales/salesOrderPack' ? 120 : 66; + if (commonUtils.isNotEmptyObject(masterConfig)) { + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials'); + if (iIndex > -1) { + chooseMaterialsConfig = masterConfig.gdsconfigformslave[iIndex]; + } + } + /* 若销售订单从表选中行被工单或其他调用 则材料与工艺只能查看不能操作s */ + let bUsed = enabled; + if (sModelsType.includes('sales/salesOrder') && enabled && commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { + const { slaveData } = this.props; + const iSlaveDataIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); + if (iSlaveDataIndex > -1) { + const sWorkOrderUsed = slaveData[iSlaveDataIndex].sWorkOrderUsed; + if (commonUtils.isNotEmptyObject(sWorkOrderUsed)) { + bUsed = false; + } + } + } + + // 找到关联的从表 */ + let controlTableData = []; + if(visibleModal) { + if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { + controlTableData = controlData.filter(item => item.sControlId === slaveSelectedRowKeys[0]) + }else { + controlTableData = controlData; + } + } + const controlPropsType = { + ...commonBusiness.getTableTypes('control', this.props), + tableProps: { + CalLastWidth: modalWidth, AutoTableHeight: fixedAutoHeight, setCopyAll, setProcess, setMaterial, chooseProcessConfigRow: chooseProcessConfig, chooseMaterialsConfigRow: chooseMaterialsConfig, onRow: (record) => { return { onClick: () => { this.onRowClick('control', record); } }; }, + }, + data: commonUtils.isNotEmptyArr(controlTableData) ? commonUtils.genTreeByArr(controlTableData, "sNodeId", "sControlParentId") : [], + filteredValue: slaveSelectedRowKeys, + onFilterData: this.handleFilterSlaveData, + OnGetFilterData: this.handleGetFilterData, + onAddRow: this.handleTableAdd, + onDelRow: this.handleTableDel, + onKeyDown: this.props.onKeyDown, + enabled: bUsed, + }; + const name = 'controlTree'; + const treeProps = { + ...commonBusiness.getTreeTypes('tree', this.props), + isSearch: false, + checkable: false, + disabled: false, + checkedAll: false, + unChecked: false, + [`${name}Column`]: this.props[`${name}Column`], + [`${name}Config`]: this.props[`${name}Config`], + [`${name}Data`]: this.props[`${name}Data`], + getFloatNum: this.props.getFloatNum, + getSqlDropDownData: this.props.getSqlDropDownData, + getSqlCondition: this.props.getSqlCondition, + handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord, + getDateFormat: this.props.getDateFormat, + onDoubleClick: this.props.onDoubleClick, + onSelect: this.handleTreeSelect, + expandedKeys: this.props.expandedKeys, + showLine: true, + }; + const materialsPropsType = { + ...commonBusiness.getTableTypes('materials', this.props), + tableProps: { CalLastWidth: modalWidth, AutoTableHeight: fixedAutoHeight }, + filteredValue: this.props.controlSelectedRowKeys, + onFilterData: this.handleFilterData, + OnGetFilterData: this.handleGetFilterData, + onAddRow: this.handleTableAdd, + onKeyDown: this.props.onKeyDown, + enabled: bUsed, + onCopyRow: this.handleTableCopy, + }; + const processPropsType = { + ...commonBusiness.getTableTypes('process', this.props), + tableProps: { CalLastWidth: modalWidth, AutoTableHeight: 132 }, + filteredValue: this.props.controlSelectedRowKeys, + onFilterData: this.handleFilterData, + OnGetFilterData: this.handleGetFilterData, + onAddRow: this.handleTableAdd, + onChooseProcessRow: this.handleTableChooseProcess, + onKeyDown: this.props.onKeyDown, + enabled: bUsed, + onCopyRow: this.handleTableCopy, + dragHandle: true, + onDrag: this.handleDrag, + }; + let searchProcessType = {}; + // let chooseProcessConfig = {}; + if (commonUtils.isNotEmptyObject(this.props.processChooseData)) { + // const iIndex = this.props.processConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseProcess'); + // if (iIndex > -1) { + // chooseProcessConfig = this.props.processConfig.gdsconfigformslave[iIndex]; + // } + + searchProcessType = { + app: { + ...this.props.app, + currentPane: { + name: 'process', + config: chooseProcessConfig, + conditonValues: this.props.getSqlCondition(chooseProcessConfig), + title: this.props.processChooseData.sMenuName, + route: this.props.processChooseData.sName, + formId: this.props.processChooseData.sId, + key: this.props.sModelsId + this.props.processChooseData.sId, + sModelsType: this.props.processChooseData.sModelType, + select: this.handleSelect, + selectCancel: this.props.onSelectCancel, + }, + }, + dispatch: this.props.dispatch, + content: this.props.content, + id: new Date().getTime().toString(), + realizeHeight: this.props.realizeHeight, /* 拖动偏移高度 */ + }; + } + + + let searchMaterialsType = {}; + // let chooseMaterialsConfig = {}; + if (commonUtils.isNotEmptyObject(this.props.materialsChooseData) && this.props.tableName !== 'slave') { + // const iIndex = this.props.materialsConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials'); + // if (iIndex > -1) { + // chooseMaterialsConfig = this.props.materialsConfig.gdsconfigformslave[iIndex]; + // } + + searchMaterialsType = { + app: { + ...this.props.app, + currentPane: { + name: 'materials', + config: chooseMaterialsConfig, + conditonValues: this.props.getSqlCondition(chooseMaterialsConfig), + title: this.props.materialsChooseData.sMenuName, + route: this.props.materialsChooseData.sName, + formId: this.props.materialsChooseData.sId, + key: this.props.sModelsId + this.props.materialsChooseData.sId, + sModelsType: this.props.materialsChooseData.sModelsType, + select: this.handleSelect, + selectCancel: this.props.onSelectCancel, + }, + }, + dispatch: this.props.dispatch, + content: this.props.content, + id: new Date().getTime().toString(), + realizeHeight: this.props.realizeHeight, + }; + } + const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0]; + const setMaterailRemark = commonFunc.showMessage(app.commonConst, 'setMaterailRemark');/* 选择材料与工艺 */ + const setProcessTitle = commonFunc.showMessage(app.commonConst, 'setProcess');/* 选择工序标题 */ + const setMaterialTitle = commonFunc.showMessage(app.commonConst, 'setMaterial');/* 选择材料标题 */ + const btnSure = commonFunc.showMessage(app.commonConst, 'btnSure');/* 确认 */ + const check = commonFunc.showMessage(app.commonConst, 'check');/* 审核 */ + const BtnClose = commonFunc.showMessage(app.commonConst, 'BtnClose');/* 关闭 */ + const checkPerson = commonFunc.showMessage(app.commonConst, 'checkPerson');/* 审核人 */ + // eslint-disable-next-line jsx-a11y/anchor-is-valid + const operateAdd = {this.props.enabled ? setAdd.img : setAdd.disableimg} ; + // eslint-disable-next-line jsx-a11y/anchor-is-valid + const operateAddChild = {this.props.enabled ? setAddChild.img : setAddChild.disableimg }; + // eslint-disable-next-line jsx-a11y/anchor-is-valid + const operateCopy = {this.props.enabled ? setCopy.img : setCopy.disableimg}; + // eslint-disable-next-line jsx-a11y/anchor-is-valid + const operateUpdate = {this.props.enabled ? setCopyAll.img : setCopyAll.disableimg }; + // eslint-disable-next-line jsx-a11y/anchor-is-valid + const operateDel = {this.props.enabled ? setDelete.img : setDelete.disableimg}; + + const controlInfo = commonFunc.showMessage(app.commonConst, 'controlInfo');/* 部件信息 */ + const materialsInfo = commonFunc.showMessage(app.commonConst, 'materialsInfo');/* 材料信息 */ + const processInfo = commonFunc.showMessage(app.commonConst, 'processInfo');/* 工序信息 */ + + return ( +
+ +
+ { + this.contentRef = ref; + }} + handleCheckBoxStatus={this.handleCheckBoxStatus} + /> + { + visible ? + {BtnClose}, + , + ]} + > + +
{checkPerson}
+
+ + + { commonUtils.isNotEmptyObject(checkPersonData) ? + checkPersonData.map((item) => { + return ( +
+ {item.sUserName} + + ); + }) + : '' + } + + + + + : '' + } + { + visibleModal ? + {BtnClose}, + , + ]} + > + { + (pane.notCurrentPane ? false : processChooseVisible) ? + + + + : '' + } + { + (pane.notCurrentPane ? false : materialsChooseVisible) ? + + + + : '' + } +
+ { + sModelsType === 'sales/salesOrderPack' && false ? +
+
+ +
+
+ 部件信息 + +
+
+
+ {operateAdd} + {operateAddChild} + {operateCopy} + {operateUpdate} + {operateDel} +
+
+
+
+ +
+
+
: +
+ + + {controlInfo} + + + + + +
+ } +
+ + + {materialsInfo} + + + + + +
+
+ + + {processInfo} + + + + + +
+
+
+ : ''} + + + + ); + } +} + +const BillComponent = Form.create({ + mapPropsToFields(props) { + const { masterData, masterConfig } = props; + const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig); + return obj; + }, +})((props) => { + const { + form, + onReturnForm, + slaveData, + slavePagination, + onlyMaster, + sModelsId, + app, + onlyMasterAndSlave, + masterConfig, + slaveConfig, + checkConfig, + isSmall, + isGetDataVisible, + onGetDataCancel, + onGetDataOk, + colseGetDataVisible, + sModelsType, + masterData, + bDelegate, /* 是否已经转办 */ + } = props; + /* 回带表单 */ + onReturnForm(form); + + const { currentPane } = app; + let bFlow = currentPane?.bFlow; /* 是否需要展示审批流程信息 */ + + if(bDelegate) { + bFlow = false; + } + + let pageSize = commonConfig.pageSize; + if (props.slaveConfig && props.slaveConfig.iPageSize) { + pageSize = props.slaveConfig.iPageSize; + } + const pagination = { + pageSize, + total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length, + current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current, + ...slavePagination, + // showQuickJumper: true, + hideOnSinglePage: false, + size: isSmall ? 'small' : 'large', + pageSizeOptions: commonConfig.pageSizeOptions, + showSizeChanger: !isSmall, + showQuickJumper: !isSmall, + }; + const templateProps = props.formData.filter(item => item.sGrd === 'importTemplate')[0]; + let setMaterialRemark = { + title: '材料与工艺', + width: { width }, + height: { height }, + img: 材料与工艺, + disableimg: 材料与工艺不可用, + }; + /* 获取toolbar 选择材料 */ + let searchMaterialsType = {}; + let chooseMaterialsConfig = {}; + if (commonUtils.isNotEmptyObject(slaveConfig)) { + const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnChooseMaterials'); + if (iIndex > -1) { + chooseMaterialsConfig = slaveConfig.gdsconfigformslave[iIndex]; + } + } + if (commonUtils.isNotEmptyObject(props.materialsChooseData)) { + searchMaterialsType = { + app: { + ...props.app, + currentPane: { + name: 'materials', + config: chooseMaterialsConfig, + conditonValues: props.getSqlCondition(chooseMaterialsConfig), + title: props.materialsChooseData.sMenuName, + route: props.materialsChooseData.sName, + formId: props.materialsChooseData.sId, + key: sModelsId + props.materialsChooseData.sId, + sModelsType: props.materialsChooseData.sModelType, + select: props.onSelect, + selectCancel: props.onSelectCancel, + }, + }, + dispatch: props.dispatch, + content: props.content, + id: new Date().getTime().toString(), + realizeHeight: props.realizeHeight, /* 拖动偏移高度 */ + }; + } + + /* 调用产品工艺卡 */ + let productProcessInfoType = {}; + let productProcessInfoConfig = {}; + let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */ + if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) { + const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey; + const iIndex = props.masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey); + if (iIndex > -1) { + productProcessInfoConfig = props.masterConfig.gdsconfigformslave[iIndex]; + processCardSearchResult = commonUtils.isNotEmptyObject(productProcessInfoConfig) && commonUtils.isNotEmptyObject(productProcessInfoConfig.sActiveName) ? productProcessInfoConfig.sActiveName : processCardSearchResult; + } + productProcessInfoType = { + app: { + ...props.app, + currentPane: { + name: 'productProcessInfo', + config: productProcessInfoConfig, + conditonValues: props.getSqlCondition(productProcessInfoConfig), + title: props.productProcessInfoChooseData.sMenuName, + route: props.productProcessInfoChooseData.sName, + formId: props.productProcessInfoChooseData.sId, + key: sModelsId + props.productProcessInfoChooseData.sId, + sModelsType: props.productProcessInfoChooseData.sModelType, + select: props.onSelect, + selectCancel: props.onSelectCancel, + }, + }, + dispatch: props.dispatch, + content: props.content, + id: new Date().getTime().toString(), + }; + } + + + /* 显示导入报错信息 */ + let importExcelProps = {}; + let importExcelTitle = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, 'processCardSearchResult')) ? + commonFunc.showMessage(app.commonConst, 'importErrorMsg') : '导入校验信息'; /* 导入校验信息 */ + if (commonUtils.isNotEmptyObject(props)) { + importExcelProps = { + ...commonBusiness.getTableTypes('import', props), + tableProps: { + setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, pagination:null, onChange: props.onTitleChange, + AutoTableHeight: 400, + }, + onDelRow: props.onDelRow, + onKeyDown: props.onKeyDown, + onContextMenu: props.onContextMenu, + masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息) + tableBelone: 'list', + }; + } + + + /* 导入收付款未清数据 */ + let importPopupProps = {}; + let importPopupTitle = '导入未清数据'; + if (commonUtils.isNotEmptyObject(props)) { + let importPopupConfig = {}; + const { + masterConfig, sModelsId, + } = props; + if (commonUtils.isNotEmptyObject(masterConfig)) { + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnImportFormData' && item.bVisible); + if (iIndex > -1) { + importPopupConfig = masterConfig.gdsconfigformslave[iIndex]; + importPopupTitle = commonUtils.isNotEmptyObject(importPopupConfig) && commonUtils.isNotEmptyObject(importPopupConfig.sActiveName) ? importPopupConfig.sActiveName : importPopupTitle; + importPopupProps = { + app: { + ...props.app, + currentPane: { + name: 'commonPopup', + config: importPopupConfig, + conditonValues: {}, + title: importPopupTitle, + route: '/indexPage/commonList', + formRoute: '/indexPage/commonList', + formId: importPopupConfig.sActiveId, + key: sModelsId + importPopupConfig.sId, + sModelsType: 'search/importFormData', + select: props.onSelect, + selectCancel: props.handleCancelModal.bind(this, 'importFormDataVisible'), + bFilterProName: props.bFilterProName, /* 存储过程查询ID */ + bFilterProValue: props.bFilterProValue, /* 存储过程查询VALUE */ + }, + }, + dispatch: props.dispatch, + content: props.content, + id: new Date().getTime().toString(), + realizeHeight: props.realizeHeight, /* 拖动偏移高度 */ + }; + } + } + } + + // const saleOrder = commonFunc.showMessage(app.commonConst, 'saleOrder');/* 销售订单 s*/ + setMaterialRemark = props.sModelsType !== undefined && props.sModelsType.includes('sales/salesOrder') ? setMaterialRemark : null; + /* 通过从表是否配置材料与工艺按钮的显示不显示来判断是否有选择材料与工艺 */ + const materialRemarkArr = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName && + item.sControlName.includes('BtnSetMaterialRemark')) : []; + if(commonUtils.isNotEmptyArr(materialRemarkArr)) { + setMaterialRemark = materialRemarkArr[0].bVisible ? setMaterialRemark : null; + } + const bBillTree = commonUtils.isNotEmptyObject(slaveConfig) && slaveConfig.sTableType && slaveConfig.sTableType.includes('multiple'); /* 是否是树形的单据 */ + const bSingleTree = commonUtils.isNotEmptyObject(slaveConfig) && slaveConfig.sTableType === 'single'; /* 单表数据 */ + const bShowTreeAddChild = commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnAddChildNode') && item.bVisible)) ? true : false ; /* 是否是树形的单据 */ + + const slaveTableProps = { + ...commonBusiness.getTableTypes('slave', props), + tableProps: { + setAdd, setCopy, setCopyAll, setDelete, setMaterialRemark, setMaterial, chooseMaterialsConfigRow: chooseMaterialsConfig, + pagination, onChange: props.onTitleChange, bShowTreeAddChild:bShowTreeAddChild, + }, + data: bSingleTree && commonUtils.isNotEmptyArr(slaveData) ? commonUtils.genTreeByArr(slaveData, 'sNodeId', 'sFatherSlaveId') : slaveData, + onDelRow: props.onDelRow, + onTableFilterData: bBillTree ? props.onTableFilterData : null, + templateProps, + sTableType : commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyObject(slaveConfig.sTableType) ? slaveConfig.sTableType : 'zero', + onKeyDown: props.onKeyDown, + onContextMenu: props.onContextMenu, + masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息) + onTreeAddChild: props.onDataRowAddChild, + customConfig: props.customConfig, + handleCheckBoxStatus: props.handleCheckBoxStatus, + }; + let gdsconfigformmasterId = ''; + if (templateProps !== undefined) { + gdsconfigformmasterId = templateProps.sId; + } + + const sNotEmpty = 'sParentId,sProductId'; + let uploadUrl = `${commonConfig.server_host}import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&token=${app.token}`; + /* 送货单需要传客户id */ + if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType === 'sales/salesSgoods' && commonUtils.isNotEmptyObject(masterData)) { + const sCustomerId = masterData.sCustomerId; + if (commonUtils.isNotEmptyObject(sCustomerId)) { + uploadUrl = `${commonConfig.server_host}import/checkExcel?sModelsId=${sModelsId}&gdsconfigformmasterId=${gdsconfigformmasterId}&sNotEmpty=${sNotEmpty}&sCustomerId=${sCustomerId}&token=${app.token}`; + } + } + const outProps = { + action: uploadUrl, + onChange: props.onUploadChangeFile, /* 文件上传 */ + accept: 'xls/*', + showUploadList: false, + beforeUpload: () => { + /* 查看时不可上传 */ + if (!props.enabled) return false; + }, + }; + const uploadPropsSales = props.onUploadPropsSales(); + let MainContent = commonFunc.showMessage(app.commonConst, 'MainContent');/* 主体内容 */ + const isGetData = commonFunc.showMessage(app.commonConst, 'isGetData');/* 确认获取库存为零的数据吗 */ + const isFilterGetDataZero = commonFunc.showMessage(app.commonConst, 'isFilterGetDataZero'); + const isAllGetData = commonFunc.showMessage(app.commonConst, 'isAllGetData'); + let CheckInfo = commonFunc.showMessage(app.commonConst, 'CheckInfo');/* 审批信息 */ + const BtnimportData = commonFunc.showMessage(app.commonConst, 'importData');/* 导入数据 */ + const ImportData = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('ImportData') && item.bVisible) : '';/* 后台是否配置导入 */ + + if (commonUtils.isNotEmptyObject(masterConfig)) { + const iIndex0 = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'zSlaveInfo0'); + if (iIndex0 > -1) { + MainContent = masterConfig.gdsconfigformslave[iIndex0].showName; + } + const iIndex1 = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'zSlaveInfo1'); + if (iIndex1 > -1) { + CheckInfo = masterConfig.gdsconfigformslave[iIndex1].showName; + } + } + + const getTabPaneExtra = (tableName) => { + const { + [`${tableName}Data`]: data, + [`${tableName}SelectedRowKeys`]: selectedRowKeys + } = props; + + let { [`${tableName}Config`]: config } = props; + config = props.onMergeSlaveConfig(config); + if (!commonUtils.isNotEmptyObject(config) || !commonUtils.isNotEmptyArr(config.gdsconfigformslave)) { + return ""; + } + + const controlArr = config.gdsconfigformslave.filter( + item => ( + item.bControl && + item.sControlName && + item.sControlName.indexOf('Btn') === -1 && + item.sControlName.indexOf('_') !== -1 + ) || ( + item.sControlName && + item.sControlName.indexOf('DividerArea') !== -1 && + item.sControlName.indexOf('.hide') === -1 + ) + ); + + if (commonUtils.isEmptyArr(controlArr)) { + return ""; + } + + const controlGroup = controlArr.reduce((result, item) => { + const { sControlName } = item; + const splitList = sControlName.split('_'); + const key = splitList[1]; + if (!result[key]) { + result[key] = []; + } + result[key].push(item); + return result; + }, {}); + + let viewRow = {}; + if (commonUtils.isNotEmptyArr(selectedRowKeys)) { + const iIndex = data.findIndex(item => selectedRowKeys.includes(item.sId)); + if (iIndex > -1) { + viewRow = data[iIndex]; + } else { + viewRow = data[0]; + } + } else if (commonUtils.isNotEmptyArr(data)) { + viewRow = data[0]; + } + + return Object.keys(controlGroup).map((tabNameKey) => { + const tabName = tabNameKey.replace(/\d+/g, ""); + const num = tabNameKey.replace(/[^\d]/g, "").trim(); + + const viewProps = { + ...props, + viewConfigs: controlGroup[tabNameKey], + tableConfig: config, + iColValueView: 24, + viewRow, + tableName, + }; + + return ( + +
+ +
+
+ ); + }); + } + + const flexRowStyle = bFlow ? {display:'flex', flexDirection:'row'} : {}; + /* + if (props.sModelsType === 'sales/salesOrder') { + const btnUpload = ( + + + ); + slaveTableProps.tableProps.newButton = btnUpload; + } + */ + return ( + + +
+
+ + { commonUtils.isNotEmptyArr(ImportData) ? +
+ {BtnimportData} +
: ''} +
+
+ + { props.setContentRef(ref); }}> +
+
+ +
+
+ { onlyMaster ? +
+
+ +
+
: +
+
+ +
+ + +
+ +
+
+ {getTabPaneExtra('slave')} + { + commonUtils.isNotEmptyObject(checkConfig) ? + ( + <> + +
+ +
+
+ {getTabPaneExtra('check')} + + ) : '' + } +
+
} + { onlyMasterAndSlave ? +
+
+ +
+ + + + + {getTabPaneExtra('slave')} + +
: '' } +
+ { + bFlow ? +
+ +
+ : '' + } +
+
+ { + isGetDataVisible ? + + {isAllGetData} + , + , + ]} + > +

{isGetData}

+
+ : '' + } + { + props.materialsChooseVisible && !props.visibleModal ? + + + + : '' + } + + + { + props.productProcessInfoChooseVisible ? + + + : '' + } + + { + props.importFormDataVisible ? + + + + : '' + } + { + props.contextMenuModalVisible ? + + : '' + } + { + props.showImportErrorVisible ? + + + + : '' + } + + ); +}); + +export default CommonBase(CommonSales(CommonBill)); diff --git a/src/components/Common/CommonBill/index.less b/src/components/Common/CommonBill/index.less new file mode 100644 index 0000000..26f8ca4 --- /dev/null +++ b/src/components/Common/CommonBill/index.less @@ -0,0 +1,64 @@ +@import "~@/variable.less"; +.bShowImg{ + position: fixed; + width: 90px; + height: 90px; + right: 0px; + z-index: 999; + top: 122px; + img{ + width: 100%; + height: 100%; + object-fit: contain; + object-position: center; + } +} + +:global { + .xly-commonbill-choose { + .ant-layout-sider { + width: 32px !important; + flex: 0 0 32px !important; + width: 32px !important; + max-width: 32px !important; + min-width: 32px !important; + background-color: #e6f7ff; + writing-mode: tb-rl; + text-align: center; + letter-spacing:0px; + line-height: 32px; + font-size: 12px; + font-weight: bold; + border: 1px solid #cfcece; + } + .ant-table-row { + td{ + padding: 0 !important; + } + } + } +} + +.commonViewTable { + :global { + .sActiveIdStyleBlock{ + width: 100%; + } + .masterLinkSpan{ + margin: 3px 0 0 1px; + padding: 0px 6px 0 6px; + white-space: nowrap; + word-break: break-all; + text-overflow: ellipsis; + overflow: hidden; + background: #fff; + } + .viewStyle { + padding: 0 20px 0 16px; + } + .ant-form-item[class*="formItemMargin"] { + padding-right: 30px; + } + } +} + diff --git a/src/components/Common/CommonBillEvent.js b/src/components/Common/CommonBillEvent.js new file mode 100644 index 0000000..22496c2 --- /dev/null +++ b/src/components/Common/CommonBillEvent.js @@ -0,0 +1,9616 @@ +/* eslint-disable */ +/* eslint-disable prefer-destructuring,no-await-in-loop,radix,,no-loop-func */ +import React, { Component } from 'react'; +import { Modal, notification, Progress } from 'antd'; +import { message } from '@/utils/common/message'; +import moment from 'moment'; +import * as commonUtils from '@/utils/utils'; /* 通用方法 */ +import * as commonBusiness from '@/components/Common/commonBusiness'; /* 单据业务功能 */ +import * as commonServices from '@/services/services'; /* 服务类 */ +import commonConfig from '@/utils/config'; +import * as commonFunc from '@/components/Common/commonFunc'; +import styles from '@/components/Common/ToolBar/index.less'; + +const { confirm } = Modal; + +const sMaterialsClassfiy = { + youmo : '油墨', + dhl : '电化铝', + zsm : '自调专色墨' +} + +export default (ChildComponent) => { + return class extends Component { + constructor(props) { + super(props); + // this.state = { + // masterConfig: {}, /* 主表配置 */ + // slaveConfig: {}, /* 从表配置 */ + // slaveColumn: [], /* 显示的从表表头 */ + // checkConfig: {}, /* 审核配置 */ + // checkColumn: [], /* 显示的审核表表头 */ + // + // billnosetting: {}, /* 是否自动审核 */ + // report: [], /* 打印模板 */ + // masterData: {}, /* 主表数据 */ + // slaveData: [], /* 从表数据 */ + // dataTotal: {}, /* 合计字段 */ + // checkData: [], /* 审核表数据 */ + // masterFlag: false, /* 是否获取主表数据 */ + // slaveFlag: false, /* 是否获取从表数据 */ + // checkFlag: false, /* 是否获取审核表数据 */ + // sId: '', /* 数据Id */ + // enabled: false, /* 页面是否可编辑 */ + // slaveSelectedRowKeys: [], /* 已选择的数据行(数据格式:数组) */ + // slaveDelData: [], /* 已删除的数据集合,保存的时候会与从表一并传给服务器(数据格式:数组) */ + // expand: false, /* 默认主表只显示2行 */ + // imgSrc: '', /* Avatar组件中的img中src的资源路径 */ + // currentIndexFlag: false, /* 默认不显示当前的数据在主表页的位置序号 */ + // }; + this.state = { + changleCustomerId: '', + dPackQtyChange: 0, + }; + this.form = {}; /* 表单对象 */ + const { sModelsId, sModelsType } = props; + if (sModelsType.includes('cashier/')) { + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerName', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyName', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyName', []); + } + commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sSrcNo', []); + } + async componentWillReceiveProps(nextProps) { + const { + formData, currentId, sModelsType, formRoute, slaveSelectedRowKeys, slaveData, sModelsId, + } = nextProps; + const { slaveSelectedRowKeys: currentSlaveSelectedRowKeys } = this.props; + const { + slaveConfig: slaveConfigOld, + masterConfig: masterConfigOld, + app, + employeeConfig: employeeConfigOld, + slaveInfoList: slaveInfoListOld, + } = nextProps; + if (commonUtils.isEmptyObject(slaveConfigOld) && formData.length > 0 && (sModelsId === '12710101117024321284220' || (sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment' && sModelsType !== 'quality/accident' && sModelsType !== 'purchase/purchaseEnquiry' && sModelsType !== 'complaint/complaint' && sModelsType !== 'print/printLabel' && sModelsType !== 'commonBill/onlyMaster' && (formRoute.indexOf('indexOee') === -1 || formRoute === '/indexOee/commonOeeBill')))) { + const sId = currentId !== undefined ? currentId : ''; + /* 数据Id */ + const masterConfig = formData.filter(item => !item.bGrd)[0]; + const BtnDesignFunctionConfig = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'BtnBsOperation.BtnDesignFunction') : {}; + const reportDesign = commonFunc.showMessage(app.commonConst, 'reportDesign');/* 报表设计 */ + const sReasonTitle = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, 'sReason'))? + commonFunc.showMessage(app.commonConst, 'sReason') : '报错原因';/* 导入报错原因 */ + if (commonUtils.isEmptyObject(BtnDesignFunctionConfig)) { + masterConfig.gdsconfigformslave.push({ + bCanInput: false, + bEntireLine: false, + bFilter: false, + bFind: false, + bFirstEmpty: false, + bIsOther: false, + bMultipleChoice: false, + bNewRecord: false, + bNotEmpty: false, + bNotRepeat: false, + bReadonly: false, + bSum: false, + bTree: false, + bVisible: true, + iColValue: 1, + iFitWidth: 120, + /* iIncrement: 26154, */ + iOrder: 1, + iTag: 0, + iVisCount: 0, + iconName: 'menu-unfold', + sActiveKey: '', + sAssignField: '', + sBig5: '', + sBig5DropDown: '', + sBrandsId: '1111111111', + sChinese: '报表设计', + sChineseDropDown: '', + sColor: '', + sColorTerms: '', + sControlName: 'BtnBsOperation.BtnDesignFunction', + sDateFormat: '', + sDefault: '', + sDropDownType: '', + sEnglish: '', + sEnglishDropDown: '', + sFilterSql: '', + /* sId: '19211681019715580740769130', */ + sKeyUpFilter: '', + sMaxValue: '', + sMinValue: '', + sName: '', + sNotRepeatColumn: '', + /* sParentId: '19211681019715428730724240', */ + sRelation: '', + sSelectRelation: '', + sSqlCondition: '', + sSubsidiaryId: '1111111111', + showDropDown: '', + showName: reportDesign, + }); + } + /* bGrd代表是否是表格 */ + let slaveConfig = formData.filter(item => item.bGrd && item.sTbName && !item.sTbName.startsWith('sysbillcheckresult'))[0]; + let slaveColumn = commonFunc.getHeaderConfig(slaveConfig); + let checkConfig = {}; + if (formRoute === '/indexOee/commonOeeBill') { /* OEE单据没有审核表 */ + checkConfig = undefined; + } else { + checkConfig = formData.filter(item => item.bGrd && item.sTbName && item.sTbName.startsWith('sysbillcheckresult'))[0]; + } + let checkColumn = []; + if (commonUtils.isNotEmptyObject(checkConfig)) { + checkColumn = commonFunc.getHeaderConfig(checkConfig); + } + + /* 导入错误配置 */ + let importConfig = {}; + let importFilterData = formData.filter(item => item.bReportData && item.sGrd === 'importTemplate'); + if(commonUtils.isNotEmptyArr(importFilterData)) { + importConfig = formData.filter(item => item.bReportData && item.sGrd === 'importTemplate')[0]; + const iIndex = importConfig.gdsconfigformslave.findIndex(item => item.sName === 'sReason'); + if(iIndex === -1) { + importConfig.gdsconfigformslave.push({ + bCanInput: false, + bEntireLine: false, + bFilter: false, + bFind: false, + bFirstEmpty: false, + bIsOther: false, + bMultipleChoice: false, + bNewRecord: false, + bNotEmpty: false, + bNotRepeat: false, + bReadonly: false, + bSum: false, + bTree: false, + bVisible: true, + iColValue: 1, + iFitWidth: 200, + /* iIncrement: 26154, */ + iOrder: 1, + iTag: 0, + iVisCount: 0, + iconName: 'menu-unfold', + sActiveKey: '', + sAssignField: '', + sBig5: '', + sBig5DropDown: '', + sBrandsId: '1111111111', + sChinese: '报错原因', + sChineseDropDown: '', + sColor: '', + sColorTerms: '', + sControlName: '', + sDateFormat: '', + sDefault: '', + sDropDownType: '', + sEnglish: '', + sEnglishDropDown: '', + sFilterSql: '', + /* sId: '19211681019715580740769130', */ + sKeyUpFilter: '', + sMaxValue: '', + sMinValue: '', + sName: 'sReason', + sNotRepeatColumn: '', + /* sParentId: '19211681019715428730724240', */ + sRelation: '', + sSelectRelation: '', + sSqlCondition: '', + sSubsidiaryId: '1111111111', + showDropDown: '', + showName: sReasonTitle, + }); + } + + } + + let importColumn = []; + if (commonUtils.isNotEmptyObject(importConfig)) { + importColumn = commonFunc.getHeaderConfig(importConfig); + } + + + let addState = {}; + addState.sTableType = commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyObject(slaveConfig.sTableType) ? slaveConfig.sTableType : 'zero'; /* 获取表格类型 */ + if (formRoute === '/indexPage/commonBill' && sModelsType === 'cost/cosexpenseshare') { + const { sModelsId } = this.props; + const { sId, sParentId } = slaveConfig; + let sAssignStandardConfig = {}; + const filterData = slaveConfig.gdsconfigformslave.filter(item => item.sName === 'sAssignStandard'); + if (commonUtils.isNotEmptyArr(filterData)) { + sAssignStandardConfig = filterData[0]; + } + const url = `${commonConfig.server_host}costCenter/getCostCenterConfig?sModelsId=${sModelsId}`; + const body = { + sId, + sParentId, + sAssignStandardConfig, + }; + const dataReturn = (await commonServices.postValueService(app.token, body, url)).data; + if (dataReturn.code === 1) { + /* 获取数据集 */ + const { rows } = dataReturn.dataset;/* 获取费用分摊单据配置 */ + if (commonUtils.isNotEmptyArr(rows) && rows.length > 0) { + slaveConfig = rows[0]; + slaveColumn = commonFunc.getHeaderConfig(slaveConfig); + } + } else { /* 失败s */ + this.props.getServiceError(dataReturn); + return []; + } + } + if (formRoute === '/indexPage/commonBill' || formRoute === '/indexPage/commonCheckBill' || formRoute === '/indexOee/commonOeeBill') { + if (sId === '') { + const config = {}; + let addState1 = {}; + if (sModelsType.includes('sales/salesOrder')) { + const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrol'.toUpperCase())[0]; + const controlColumn = commonFunc.getHeaderConfig(controlConfig); + const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordermaterials'.toUpperCase())[0]; + const materialsColumn = commonFunc.getHeaderConfig(materialsConfig); + const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderprocess'.toUpperCase())[0]; + const processColumn = commonFunc.getHeaderConfig(processConfig); + const colorConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderparam'.toUpperCase())[0]; + let colorColumn; + if (commonUtils.isNotEmptyObject(colorConfig)) { + colorColumn = commonFunc.getHeaderConfig(colorConfig); + } + const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrolcombine'.toUpperCase())[0]; + let packColumn; + if (commonUtils.isNotEmptyObject(packConfig)) { + packColumn = commonFunc.getHeaderConfig(packConfig); + } + config.controlConfig = controlConfig; + config.materialsConfig = materialsConfig; + config.processConfig = processConfig; + config.colorConfig = colorConfig; + config.packConfig = packConfig; + addState1 = { + controlConfig, + controlColumn, + materialsConfig, + materialsColumn, + processConfig, + processColumn, + colorConfig, + colorColumn, + packConfig, + packColumn, + }; + } else if (sModelsType === 'purchase/purchaseOrder') { + let orderDetailConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'purpurchaseorderDetail'.toUpperCase())) ? + formData.filter(item => item.sTbName.toUpperCase() === 'purpurchaseorderDetail'.toUpperCase())[0] : {}; + if(commonUtils.isNotEmptyObject(orderDetailConfig)) { + const orderDetailColumn = commonFunc.getHeaderConfig(orderDetailConfig); + config.orderDetailConfig = orderDetailConfig; + this.handleGetOneMemoData('orderDetail', orderDetailConfig); + addState1 = { + orderDetailConfig, + orderDetailColumn, + }; + } + }else if (sModelsType === 'purchase/purchasecheck') { + let orderDetailConfig = {}; + let orderDetailColumn = []; + const filterData = formData.filter(item => item.sTbName.toUpperCase() === 'purpurchasecheckingDetail'.toUpperCase()); + if(commonUtils.isNotEmptyArr(filterData)) { + orderDetailConfig = filterData[0]; + } + if(commonUtils.isNotEmptyObject(orderDetailConfig)) { + orderDetailColumn = commonFunc.getHeaderConfig(orderDetailConfig); + config.orderDetailConfig = orderDetailConfig; + this.handleGetOneMemoData('orderDetail', orderDetailConfig); + addState1 = { + orderDetailConfig, + orderDetailColumn, + }; + } + } else if (sModelsType === 'purchase/purchaseApply') { + let orderDetailConfig = {}; + let orderDetailColumn = []; + const filterData = formData.filter(item => item.sTbName.toUpperCase().indexOf('DETAIL') !== -1); + if(commonUtils.isNotEmptyArr(filterData)) { + orderDetailConfig = filterData[0]; + } + if(commonUtils.isNotEmptyObject(orderDetailConfig)) { + orderDetailColumn = commonFunc.getHeaderConfig(orderDetailConfig); + config.orderDetailConfig = orderDetailConfig; + this.handleGetOneMemoData('orderDetail', orderDetailConfig); + addState1 = { + orderDetailConfig, + orderDetailColumn, + }; + } + } + config.masterConfig = masterConfig; + config.slaveConfig = slaveConfig; + addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true); + addState = { ...addState, ...addState1 }; + // if (sModelsType.includes('sales/salesOrder') || sModelsType === 'purchase/purchaseOrder') { + // this.props.onSaveState(addState1); + // } + } else { + this.handleGetData(masterConfig, slaveConfig, checkConfig); + if (sModelsType.includes('sales/salesOrder')) { + const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrol'.toUpperCase())[0]; + const controlColumn = commonFunc.getHeaderConfig(controlConfig); + const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordermaterials'.toUpperCase())[0]; + const materialsColumn = commonFunc.getHeaderConfig(materialsConfig); + const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderprocess'.toUpperCase())[0]; + const processColumn = commonFunc.getHeaderConfig(processConfig); + const colorConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesorderparam'.toUpperCase())[0]; + let colorColumn; + if (commonUtils.isNotEmptyObject(colorConfig)) { + colorColumn = commonFunc.getHeaderConfig(colorConfig); + } + const packConfig = formData.filter(item => item.sTbName.toUpperCase() === 'salsalesordercontrolcombine'.toUpperCase())[0]; + let packColumn; + if (commonUtils.isNotEmptyObject(packConfig)) { + packColumn = commonFunc.getHeaderConfig(packConfig); + } + this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig); + this.props.onSaveState({ + controlConfig, + controlColumn, + materialsConfig, + materialsColumn, + processConfig, + processColumn, + colorConfig, + colorColumn, + packConfig, + packColumn, + }); + } else if (sModelsType === 'manufacture/workOrder3') { + const controlConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductcontrol'.toUpperCase())[0]; + const controlColumn = commonFunc.getHeaderConfig(controlConfig); + const materialsConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductmaterials'.toUpperCase())[0]; + const materialsColumn = commonFunc.getHeaderConfig(materialsConfig); + const processConfig = formData.filter(item => item.sTbName.toUpperCase() === 'mftproductprocess'.toUpperCase())[0]; + const processColumn = commonFunc.getHeaderConfig(processConfig); + this.handleGetMemoData(controlConfig, materialsConfig, processConfig); + this.props.onSaveState({ + controlConfig, + controlColumn, + materialsConfig, + materialsColumn, + processConfig, + processColumn, + }); + } else if (sModelsType === 'purchase/purchaseOrder') { + let orderDetailConfig = commonUtils.isNotEmptyArr(formData.filter(item => item.sTbName.toUpperCase() === 'purpurchaseorderDetail'.toUpperCase())) ? + formData.filter(item => item.sTbName.toUpperCase() === 'purpurchaseorderDetail'.toUpperCase())[0] : {}; + if(commonUtils.isNotEmptyObject(orderDetailConfig)) { + const orderDetailColumn = commonFunc.getHeaderConfig(orderDetailConfig); + this.handleGetOneMemoData('orderDetail', orderDetailConfig); + this.props.onSaveState({ + orderDetailConfig, + orderDetailColumn, + }); + } + }else if (sModelsType === 'purchase/purchasecheck') { + let orderDetailConfig = {}; + let orderDetailColumn = []; + const filterData = formData.filter(item => item.sTbName.toUpperCase() === 'purpurchasecheckingDetail'.toUpperCase()); + if(commonUtils.isNotEmptyArr(filterData)) { + orderDetailConfig = filterData[0]; + } + if(commonUtils.isNotEmptyObject(orderDetailConfig)) { + const orderDetailColumn = commonFunc.getHeaderConfig(orderDetailConfig); + this.handleGetOneMemoData('orderDetail', orderDetailConfig); + this.props.onSaveState({ + orderDetailConfig, + orderDetailColumn, + }); + } + } + } + } + this.props.onSaveState({ + masterConfig, slaveConfig, slaveColumn, checkConfig, checkColumn, importConfig, importColumn, sId, pageLoading: false, ...addState, + }); + } else if (commonUtils.isEmptyObject(masterConfigOld) && formData.length === 1 && (sModelsType === 'cashier/financialTransfer' || sModelsType === 'purchase/purchaseEnquiry' || sModelsType === 'cashier/financialAdjustment' || sModelsType === 'print/printLabel' || sModelsType === 'complaint/complaint' || sModelsType === 'commonBill/onlyMaster') && formRoute.indexOf('indexOee') === -1) { + const config = {}; + const sId = currentId !== undefined ? currentId : ''; + /* 数据Id */ + const masterConfig = formData.filter(item => !item.bGrd)[0]; + let addState = {}; + if (formRoute === '/indexPage/commonBill' || formRoute === '/indexPage/commonCheckBill') { + if (sId === '') { + const config = {}; + config.masterConfig = masterConfig; + addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true); + } else { + this.handleGetData(masterConfig, undefined, undefined); + } + } + addState.onlyMaster = true; + if (formRoute === '/indexPage/printlabel') { + config.masterConfig = masterConfig; + addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true); + } + this.props.onSaveState({ + masterConfig, sId, pageLoading: false, ...addState, + }); + } else if (commonUtils.isEmptyObject(slaveConfigOld) && commonUtils.isEmptyObject(masterConfigOld) && formData.length === 2 && (sModelsType === 'quality/accident') && formRoute.indexOf('indexOee') === -1) { + const sId = currentId !== undefined ? currentId : ''; + /* 数据Id */ + const masterConfig = formData.filter(item => !item.bGrd)[0]; + const slaveConfig = formData.filter(item => item.bGrd && item.sTbName === 'mftqualityaccidentSlave')[0]; + const slaveColumn = commonFunc.getHeaderConfig(slaveConfig); + let addState = {}; + if (formRoute === '/indexPage/commonBill' || formRoute === '/indexPage/commonCheckBill') { + if (sId === '') { + const config = {}; + config.masterConfig = masterConfig; + config.slaveConfig = slaveConfig; + addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true); + } else { + this.handleGetData(masterConfig, slaveConfig, undefined); + } + } + addState.onlyMaster = true; + addState.onlyMasterAndSlave = true; + this.props.onSaveState({ + masterConfig, sId, slaveConfig, slaveColumn, pageLoading: false, ...addState, + }); + } else if (formRoute.indexOf('indexOee') > -1 && commonUtils.isEmptyObject(employeeConfigOld) && commonUtils.isEmptyObject(slaveConfigOld) && formData.length > 0) { + // const employeeConfig = formData.filter(item => item.bGrd && item.sTbName === 'mftmachineworkemployee')[0]; + // const employeeColumn = commonFunc.getHeaderConfig(employeeConfig); + // const masterConfig = formData.filter(item => item.bGrd && item.sTbName === 'MftMachineWork')[0]; + // const addState = (await this.props.handleGetDataOne({ + // name: 'master', configData: masterConfig, condition: {}, isWait: true, + // })); + // if (commonUtils.isNotEmptyObject(addState.masterData)) { + // addState.masterData.handleType = 'update'; + // } + // this.props.onSaveState({ + // employeeConfig, employeeColumn, masterConfig, ...addState, + // }); + if (formRoute === '/indexOee/labelPrint' && commonUtils.isEmpty(slaveConfigOld)) { /* 入库标签打印 */ + const sId = currentId !== undefined ? currentId : ''; + /* 数据Id */ + const masterConfig = formData[0]; + const slaveConfig = formData[0]; + const slaveColumn = commonFunc.getHeaderConfig(slaveConfig); + // this.props.handleGetDataOne({ name: 'master', configData: masterConfig, condition: { sSqlCondition: { sParentId: sId } } }); + this.handleGetOneMemoData('slave', slaveConfig); + this.props.onSaveState({ + masterConfig, sId, slaveConfig, slaveColumn, pageLoading: false, + }); + } + } else if (slaveInfoListOld === undefined && formRoute.indexOf('productionReport') !== -1 && commonUtils.isNotEmptyArr(slaveData)) { + if (commonUtils.isEmptyArr(formData) || commonUtils.isEmptyArr(formData)) { + return; + } + let addState = {}, slaveInfoList = []; + // const slaveFormData = formData.filter(item => item.bGrd); + const slaveFormData = formData.filter((item, index) => index >= 3); + slaveFormData.forEach((item, index) => { + addState[`slave${index}Config`] = item; + addState[`slave${index}Column`] = commonFunc.getHeaderConfig(item); + slaveInfoList.push(item.showName); + }); + if (slaveInfoList.length) { + addState = {...addState, ...await this.handleGetDataOne('slave0', addState.slave0Config, null, null, null, null, nextProps, true)}; + } + this.props.onSaveState({ + slaveInfoList, + ...addState, + }); + } else if (formRoute.indexOf('productionReport') !== -1 && commonUtils.isNotEmptyArr(slaveSelectedRowKeys) && JSON.stringify(slaveSelectedRowKeys) !== JSON.stringify(currentSlaveSelectedRowKeys)) { + const addState = await this.handleGetDataOne('slave0', nextProps.slave0Config, null, null, null, null, nextProps, true); + console.log(addState); + this.props.onSaveState({ + ...addState, + }); + } + } + + shouldComponentUpdate(nextProps) { + const { slaveColumn, masterConfig } = nextProps; + return commonUtils.isNotEmptyArr(slaveColumn) || commonUtils.isNotEmptyObject(masterConfig); + } + + isSColorSerialMemo = React.createRef(); + + /* + 修改日期:2021-03-18 + 修改人:吕杰 + 区域:以下onKeyDown函数 + 需求变更:为解决bug 2031添加 + */ + /** 键盘事件监听 */ + onKeyDown = (e, record, sName, name) => { + const { [`${name}Data`]: tableData, [`${name}Column`]: tableColumn, [`${name}Config`]: tableConfig } = this.props; + + let keyCode = e.keyCode; + let firstName; + let bEnter = false; + if (keyCode === 13) { + // 判断当前单元格是否是最后,不是则跳到下一格,是则跳到下一行第一格 + bEnter = true; + const uniqueTableId = `table_${this.props.sModelsId}_${tableConfig.sId}`; + const currentTable = document.getElementById(uniqueTableId); + const currentTr = currentTable.querySelector(`tr[data-row-key="${record.sId}"]`); + const allInput = currentTr.querySelectorAll(`input[id*="${record.sId}"]`); + const iIndex = Array.from(allInput).findIndex(item => item.getAttribute('id') === `${sName}${record.sId}`); + if (iIndex < allInput.length - 1) { + keyCode = 39; + } else { + const oFirstInput = allInput[0]; + firstName = oFirstInput.getAttribute('id').replace(record.sId, ''); + keyCode = 40; + } + } + + // 以下if条件为 为解决bug2031问题入口 需求:收款单里输入的收款金额,上下键操作把加减金额改为选择上下行(通过上下方向键切换行数) + if ([38, 40].includes(keyCode)) { // 上键、下键 + e.preventDefault(); + if (tableData.length > 1) { // 当从表行数大于一行时才有上下移动的意义 + const index = tableData.findIndex(item => item.sId === record.sId); // 获取当前编辑行的下标 + if (index > -1) { + if (keyCode === 38 && index > 0) { // 方向键上键 且 当前编辑行下标大于0时,为0时无法向上 + const lastSid = tableData[index - 1].sId; // 获取上一个id + this.props.onSaveState({ [`${name}SelectedRowKeys`]: [lastSid] }, () => commonUtils.focus(`${sName}${lastSid}`)); + } + if (keyCode === 40 && index < tableData.length - 1) { // 方向键下键 且 当前编辑行下标小于最大值时,为最大值时无法向下 + const nextSid = tableData[index + 1].sId; // 获取下一个id + this.props.onSaveState({ [`${name}SelectedRowKeys`]: [nextSid] }, () => commonUtils.focus(`${firstName || sName}${nextSid}`)); + } + } + } + } + const move = (keyCode, cursortPosition, columnIndex, currentElement) => { + const inputType = currentElement.getAttribute('type'); + const value = currentElement.value; + if (keyCode === 37 && columnIndex > 0 && cursortPosition < 1) { // 左移 则 列下标必须大于0, 且光标在最左侧 + const lastId = `${tableColumn[columnIndex - 1].dataIndex}${record.sId}`; + if (!commonUtils.focus(lastId, e)) move(keyCode, cursortPosition, columnIndex - 1, currentElement); // 递归 + } + if (keyCode === 39 && columnIndex < tableColumn.length - 1) { // 右移 则 列下标必须小于列数量-1 + if (!record[sName] || cursortPosition >= value.length || inputType === 'search' || bEnter) { // 当前列为空 或 光标位置不小于当前值的长度 + const nextId = `${tableColumn[columnIndex + 1].dataIndex}${record.sId}`; + if (!commonUtils.focus(nextId, e)) move(keyCode, cursortPosition, columnIndex + 1, currentElement); // 递归 + } + } + }; + if ([37, 39].includes(keyCode)) { // 左键、右键 + const currentElement = document.getElementById(`${sName}${record.sId}`); // 当前编辑框对象 + if (currentElement) { + const cursortPosition = commonUtils.getCursortPosition(currentElement); // 光标位置 + const columnIndex = tableColumn.findIndex(item => item.dataIndex === sName); // 当前列下标 + move(keyCode, cursortPosition, columnIndex, currentElement); + } + } + } + + /* 单击右键全部更新,弹出窗选择后,更新此列所有数据 (只更新非只读字段) */ + onContextMenu = (e, record, showConfig, tbName) => { + const contextMenuConfig = []; + const showConfigNew = JSON.parse(JSON.stringify(showConfig)); /* 深拷贝配置 */ + contextMenuConfig.push(showConfigNew); + this.props.onSaveState({ + contextMenuModalVisible: true, /* 右击全部更新弹窗 */ + contextMenuConfig, /* 右击字段配置 数组形式 */ + contextMenuRecord: record, /* 右击数据 */ + contextMenuName: showConfig.showName, /* 右击字段 */ + contextMenuTbName: tbName, /* 右击字段 */ + }); + } + + /** 获取应收账款 */ + getCustomerReceipt = async (masterData) => { + const { sModelsId } = this.props; + if (!commonUtils.isEmpty(masterData.sCustomerId)) { + const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const value = { sProName: 'Sp_Receivables_AR', paramsMap: { sStatistics: masterData.sCustomerId } }; + const dataReturn = (await commonServices.postValueService(this.props.app.token, value, url)).data; + if (dataReturn.code === 1) { + /* 数据查询成功 */ + const [returnData] = dataReturn.dataset.rows[0].dataSet.outData; + const masterDataNew = { + ...masterData, + dNoReceiptMoney: returnData.dNoReceiptMoney, + dDueReceiptMoney: returnData.dNoReceiptMoney, + }; + this.props.onSaveState({ masterData: masterDataNew }); + } else { /* 失败 */ + this.props.getServiceError(dataReturn); + } + } + }; + + /** 获取上查下查数据 */ + getSearchUpDownData = async (showConfig) => { + const { sModelsId } = this.props; + const url = `${commonConfig.server_host}searchupdown/getSearchUpDown/${showConfig.sId}?sModelsId=${sModelsId}`; + const conditonValues = this.props.getSqlCondition(showConfig); + if (commonUtils.isNotEmptyObject(conditonValues)) { + const iIndex = Object.keys(conditonValues).findIndex(item => commonUtils.isEmpty(conditonValues[item])); + if (iIndex === -1) { + /* 调用后台接口 */ + const body = { + sSqlCondition: commonUtils.isEmptyObject(conditonValues) ? '' : conditonValues, /* 查询条件 */ + }; + const dataReturn = (await commonServices.postValueService(this.props.app.token, body, url)).data; + if (dataReturn.code === 1) { + /* 数据查询成功 */ + return dataReturn.dataset.rows; + } else { /* 失败 */ + this.props.getServiceError(dataReturn); + return []; + } + } + } + }; + handlePackDataAdd= (item, index, sControlId) => { + const tableDataRow = {}; + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.sSlaveId = item.sId; + tableDataRow.sParentId = item.sParentId; + tableDataRow.sControlId = sControlId; + tableDataRow.iOrder = item.iOrder; + tableDataRow.sProductId = item.sProductId; /* 产品id */ + tableDataRow.sCustomerId = item.sCustomerId; /* 客户id */ + tableDataRow.sCustomerName = item.sCustomerName; /* 客户名称 */ + tableDataRow.sProductName = item.sProductName; /* 产品名称 */ + tableDataRow.sProductNo = item.sProductNo; /* 产品编号 */ + tableDataRow.dProductQty = commonUtils.isNull(item.dProductQty, 0) + commonUtils.isNull(item.dGiveQty, 0) + commonUtils.isNull(item.dStockupQty, 0); /* 生产数量 */ /* 生产数量 */ + tableDataRow.sProductUnit = item.sProductUnit; /* 单位 */ + tableDataRow.sProductStyle = item.sProductStyle; /* 产品规格 */ + return tableDataRow; + } + sortData = (tableData, processData) => { + processData.sort((g1, g2) => { + const iIndex1 = tableData.findIndex(item => item.sId === g1.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g1.sControlId); + let sPartOrder1 = `0000${iIndex1}`; + sPartOrder1 = sPartOrder1.substring(sPartOrder1.length - 3); + let sOrder1 = `000${g1.iOrder}`; + sOrder1 = sOrder1.substring(sOrder1.length - 3); + + const iIndex2 = tableData.findIndex(item => item.sId === g2.sControlId) === -1 ? 999 : tableData.findIndex(item => item.sId === g2.sControlId); + let sPartOrder2 = `0000${iIndex2}`; + sPartOrder2 = sPartOrder2.substring(sPartOrder2.length - 3); + let sOrder2 = `000${g2.iOrder}`; + sOrder2 = sOrder2.substring(sOrder2.length - 3); + return parseInt(sPartOrder1 + g1.sType + sOrder1, 10) - parseInt(sPartOrder2 + g2.sType + sOrder2, 10); + }); + return processData; + }; + + /** 获取主表、从表、审核表数据 */ + handleGetData = async (masterConfig, slaveConfig, checkConfig, bEditClick) => { + const { currentId } = this.props; /* 当前页签数据 */ + const sId = currentId !== undefined ? currentId : ''; + this.props.handleGetDataOne({ name: 'master', configData: masterConfig, condition: { sId, pageSize: '', pageNum: '' }, bEditClick, slaveConfig }); + // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []); + // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []); + // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []); + if (!commonUtils.isEmptyObject(slaveConfig)) { + this.props.handleGetDataSet({ + name: 'slave', configData: slaveConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, + }).then((getData) => { + if (commonUtils.isNotEmptyObject(getData) && commonUtils.isNotEmptyArr(getData.slaveData)) { + getData.slaveData.forEach((item, iIndex) => { + if (commonUtils.isNotEmptyObject(item.sReportParam)) { + item = { ...item, ...commonUtils.convertStrToObj(item.sReportParam) }; + getData.slaveData[iIndex] = item; + } + }); + this.props.onSaveState({ ...getData }); + } + if (commonUtils.isNotEmptyStr(getData.slaveData)) { + const selectRowKey = getData.slaveData[0].sId; + const selectRowKeyArr = []; + selectRowKeyArr.push(selectRowKey); + this.handleTableSelectRowChange('slave', selectRowKeyArr); + } + }); + } + + if (!commonUtils.isEmptyObject(checkConfig)) { + this.props.handleGetDataSet({ + name: 'check', configData: checkConfig, condition: { sSqlCondition: { sParentId: sId } }, + }); + } + }; + /* 获取表数据 */ + handleGetMemoData = async (controlConfig, materialsConfig, processConfig, colorConfig, packConfig) => { + const { currentId, sModelsType } = this.props; /* 当前页签数据 */ + const sId = currentId !== undefined ? currentId : ''; /* 数据Id */ + const addStateControl = await this.props.handleGetDataSet({ + name: 'control', configData: controlConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, + }); + const { controlData, controlSelectedRowKeys } = addStateControl; /* 同步树选中节点与部件选中节点 */ + const addStateMaterials = await this.props.handleGetDataSet({ + name: 'materials', configData: materialsConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, + }); + if(commonUtils.isNotEmptyObject(addStateMaterials)) { + addStateMaterials.materials0Data = addStateMaterials.materialsData; + } + const addStateProcess = await this.props.handleGetDataSet({ + name: 'process', configData: processConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true, + }); + if (addStateProcess) { + if (Array.isArray(addStateProcess.processData)) { + // eslint-disable-next-line array-callback-return + addStateProcess.processData.map((itemProcess) => { + if (commonUtils.isNotEmptyObject(sModelsType.includes('quotation/') ? itemProcess.sProcessParam : sModelsType.includes('manufacture/') ? itemProcess.sWorkOrderParam : itemProcess.sProcessParam)) { + itemProcess.sProcessParamStr = ''; + // eslint-disable-next-line no-plusplus + for (let i = 1; i < 7; i++) { + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); + if (iIndex > -1 && !commonUtils.isEmpty(itemProcess[`sParam${i.toString()}`])) { + itemProcess.sProcessParamStr += `${itemProcess[`sParam${i.toString()}`]}:${itemProcess[`sParamValue${i.toString()}`]},`; + } + } + if (itemProcess.sProcessParamStr === '') { + itemProcess.sProcessParamStr = '工艺参数'; + } + } + }); + + if(commonUtils.isNotEmptyArr(addStateProcess.processData)){ + addStateProcess.processSelectedData = [addStateProcess.processData[0]]; + addStateProcess.processSelectedRowKeys = [addStateProcess.processData[0].sId]; + // addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData); + } + + } + } + if (commonUtils.isNotEmptyObject(colorConfig)) { + this.props.handleGetDataSet({ + name: 'color', configData: colorConfig, condition: { sSqlCondition: { sParentId: sId } }, + }); + } + if (commonUtils.isNotEmptyObject(packConfig)) { + this.props.handleGetDataSet({ + name: 'pack', configData: packConfig, condition: { sSqlCondition: { sParentId: sId } }, + }); + } + // this.handleBtnPreviewPdf(false); + this.props.onSaveState({ + pageLoading: false, ...addStateControl, ...addStateProcess, treeSelectedKeys: controlSelectedRowKeys, ...addStateMaterials, + }); + }; + /* 获取单张表数据 */ + handleGetOneMemoData = (memoName, memoConfig) => { + const { currentId } = this.props; /* 当前页签数据 */ + const sId = currentId !== undefined ? currentId : ''; /* 数据Id */ + if (commonUtils.isNotEmptyObject(sId)) { /* 解决detail数据没有问题 */ + this.props.handleGetDataSet({ + name: memoName, configData: memoConfig, condition: { sSqlCondition: { sParentId: sId } }, + }); + } + }; + handleGetTableConfig = async (name, sModelsId, oldConfig, configName) => { + if(commonUtils.isNotEmptyObject(sModelsId)) { + const newConfig = await this.props.onGetTableConfig(name, sModelsId, oldConfig); + if(commonUtils.isNotEmptyObject(newConfig)) { + const newColumn = commonFunc.getHeaderConfig(newConfig); + this.props.onSaveState({[`${[configName || name]}Config`]: newConfig, [`${[configName || name]}Column`]: newColumn }) + } + } + } + + /** 根据key查找树节点并改变属性 */ + handleSearchNodes= (key, data, showNameNew) => { + if (commonUtils.isNotEmptyObject(showNameNew)) { + data.forEach((item) => { + if (item.key === key) { + item.showName = showNameNew; + } else if (commonUtils.isNotEmptyArr(item.children)) { + this.handleSearchNodes(key, item.children, showNameNew); + } + }); + } + }; + + /** 点击新增按钮 */ + handleAdd = async (config, copyTo, isWait) => { + /* 外置处理业务 */ + const { + sModelsId, sModelsType, app, token, + } = this.props; + if (sModelsType.includes('cashier/')) { + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerName', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyName', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyName', []); + } + let masterConfig = commonUtils.isEmptyObject(config) ? {} : config.masterConfig; + if (!isWait) { + masterConfig = this.props.masterConfig; + } + let configNew = {}; + if (commonUtils.isEmptyObject(config)) { + const { slaveConfig } = this.props; + configNew.slaveConfig = slaveConfig; + } else { + configNew = config; + } + let masterData = commonFunc.getDefaultData(masterConfig); + masterData.handleType = 'add'; + masterData.sId = commonUtils.createSid(); + masterData.sFormId = sModelsId; + masterData.maxBillNo = 'sBillNo'; + + /* 取newRecord过来的数据 */ + const addNewRecordStata = commonUtils.isNotEmptyObject(app.currentPane) && app.currentPane.newRecordRelation ? app.currentPane.newRecordRelation : {}; + if(commonUtils.isNotEmptyObject(addNewRecordStata)) { + masterData = {...masterData, ...addNewRecordStata}; + } + + let slaveData = []; + const controlData = []; + const materialsData = []; + const processData = []; + const orderDetailData = []; + const dailyData = []; + const packData = []; + const colorData = []; + const slaveChildData = []; /* 子从表数据 */ + // const slaveTotal = []; + // const tableDataTotal = {}; + if (commonUtils.isNotEmptyObject(copyTo)) { + const copyToMasterConfig = copyTo.config.filter(item => item.sControlName === copyTo.name); + const masterAssignField = commonUtils.isNotEmptyArr(copyToMasterConfig) ? copyToMasterConfig[0].sAssignField : ''; + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.slave = commonUtils.isEmpty(copyTo.slaveData) ? [] : copyTo.slaveData[0]; + masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterAssignField, copyTo.masterData, newCopyTo) }; + /* 识别系统模块同级CopyTo增加:sAllId=复制数据的父节点+本节点 */ + if (copyTo.name && copyTo.name.toLowerCase().includes('sameadd')) { + const sId = masterData.sId; /* 当前 */ + if (copyTo.masterData) { + const sParentIdOld = copyTo.masterData.sParentId; + masterData.sParentId = sParentIdOld; + const sAllOldId = copyTo.masterData.sAllId; + // const sAllId = `${sParentIdOld},${sId}`; + if (commonUtils.isNotEmptyObject(sAllOldId)) { + const sAllId = sAllOldId.replace(copyTo.masterData.sId, sId); + /* 找到同级父级sAllId */ + if (commonUtils.isEmptyObject(sAllId)) { + message.warn('sAllId生成错误 请检查'); + return; + } else { + masterData.sAllId = sAllId; + } + } + } + } + /* 识别系统模块子级CopyTo增加 sAllId=复制数据的完整节点sAllId +新生成sId */ + if (copyTo.name && copyTo.name.toLowerCase().includes('childrenadd')) { + const sId = masterData.sId; /* 当前 */ + if (copyTo.masterData) { + const sAllIdOld = copyTo.masterData.sAllId; /* 父级的sAllId */ + const sIdOld = copyTo.masterData.sId; /* 父级的sAllId */ + masterData.sParentId = sIdOld; + /* 找到同级父级sAllId */ + if (commonUtils.isNotEmptyObject(sAllIdOld)) { + const sAllId = `${sAllIdOld}-${sId}`; + masterData.sAllId = sAllId; + return; + } + } else { + message.warn('缺失sId赋值 请检查'); + } + } + if (commonBusiness.getGeyPayDate(masterData) !== undefined) { + masterData.tGetPayDate = commonBusiness.getGeyPayDate(masterData); + } + let sWareHouseNameDropDown; + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWareHouseName'); + // 如果copyto主表数据带了sWareHouseId, 就不另外查询赋值了 + if (iIndex > -1 && commonUtils.isEmptyObject(masterData.sWareHouseId)) { + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + let dataUrl; + let condition; + if (models === 'Product') { + dataUrl = `${commonConfig.server_host}eleProductStock/getProductWareHouse?sModelsId=${sModelsId}`; + condition = { sProductId: copyTo.slaveData[0].sProductId }; + } else { + dataUrl = `${commonConfig.server_host}eleMaterialsStock/getMaterialsWareHouse?sModelsId=${sModelsId}`; + condition = { sMaterialsId: copyTo.slaveData[0].sMaterialsId, sMaterialsStyle: copyTo.slaveData[0].sMaterialsStyle }; + } + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + if (dataReturn.code === 1) { + const sWareHouseId = dataReturn.dataset.rows.length > 0 ? dataReturn.dataset.rows[0].sWareHouseId : ''; + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[iIndex]); + sWareHouseNameDropDown = sqlDropDownData.dropDownData; + if (commonUtils.isNotEmptyArr(sWareHouseNameDropDown) && !sModelsType.includes('materialsStock/productionmaterialsadjust')) { + const { sAssignField } = masterConfig.gdsconfigformslave[iIndex]; + const iWareHouseNameIndex = sWareHouseNameDropDown.findIndex(item => item.sId === sWareHouseId); + if (iWareHouseNameIndex > -1) { + masterData = { ...masterData, ...commonFunc.getAssignFieldValue(sAssignField, sWareHouseNameDropDown[iWareHouseNameIndex]) }; + } + } + } + } + + const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase()); + const slaveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : ''; + if (slaveAssignField !== '') { + let iCount = 0; + let flagCopyTo = false; + if (commonUtils.isEmptyArr(copyTo.controlData)) { + flagCopyTo = true; + } + if (copyTo.name.includes('salsalesorderByQuo') || copyTo.name.includes('ByOrder')){ /* 未清报价单生产订单,订单生成工单未清 设置flagCopyTo=false代表走翻單 */ + flagCopyTo = false; + } + + if(commonUtils.isNotEmptyArr(copyTo.config) && copyTo.config.filter(item => item.sControlName && item.sControlName.includes('TmpInfoBySql')).length> 1){ + const sTmpInfoConfig = copyTo.config.filter(item => item.sControlName && item.sControlName.includes('TmpInfoBySql'))[0]; + const sControlName = sTmpInfoConfig.sControlName; + const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`; + const sConfigformId = commonUtils.isEmpty(sTmpInfoConfig) ? '' : sTmpInfoConfig.sParentId; + if (commonUtils.isNotEmptyArr( copyTo.slaveData)) { + const sRowData = copyTo.slaveData; + const condition = { sConfigformId, sControlName, sRowData }; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase()); + const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase()); + const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase()); + const copyToSlave1Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave1`.toLowerCase()); + const copyToSlave0Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave0`.toLowerCase()); + const copyToSlave2Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave2`.toLowerCase()); + const copyToSlava3Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava3`.toLowerCase()); + const copyToSlava4Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava4`.toLowerCase()); + const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : ''; + const salveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : ''; + const salveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : ''; + const slave1AssignField = commonUtils.isNotEmptyArr(copyToSlave1Config) ? copyToSlave1Config[0].sAssignField : ''; + const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[0].sAssignField : ''; + const slave2AssignField = commonUtils.isNotEmptyArr(copyToSlave2Config) ? copyToSlave2Config[0].sAssignField : ''; + const slave3AssignField = commonUtils.isNotEmptyArr(copyToSlava3Config) ? copyToSlava3Config[0].sAssignField : ''; + const slave4AssignField = commonUtils.isNotEmptyArr(copyToSlava4Config) ? copyToSlava4Config[0].sAssignField : ''; + if (commonUtils.isNotEmptyArr(returnData.master) && masterDetailAssignField) { + masterData = {...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo)}; + } + if (commonUtils.isNotEmptyArr(returnData.slave)) { + returnData.slave.forEach((slaveItem) => { + newCopyTo.slave = slaveItem; + const newSid = commonUtils.createSid(); + let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo, { newSid }); // 取默认值 + if(salveDetailAssignField) { + slaveRow = {...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo)}; + } else if(salveAssignField) { + slaveRow = {...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, slaveItem, newCopyTo)}; // 取赋值字段 + } + slaveRow.handleType = 'add'; + slaveRow.sId = newSid; + slaveRow.sParentId = masterData.sId; + slaveData.push(slaveRow); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave0)) { + returnData.slave0.forEach((slave0Item) => { + newCopyTo.slave0 = slave0Item; + const newSid = commonUtils.createSid(); + let slave0Row = commonFunc.getDefaultData(config.slave0Config, newCopyTo, { newSid }); // 取默认值 + slave0Row = {...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo)}; // 取赋值字段 + slave0Row.handleType = 'add'; + slave0Row.sId = newSid; + slave0Row.sParentId = masterData.sId; + slave0Data.push(slave0Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave1)) { + returnData.slave1.forEach((slave1Item) => { + newCopyTo.slave1 = slave1Item; + const newSid = commonUtils.createSid(); + let slave1Row = commonFunc.getDefaultData(config.slave1Config, newCopyTo, { newSid }); // 取默认值 + slave1Row = {...slave1Row, ...commonFunc.getAssignFieldValue(slave1AssignField, slave1Item, newCopyTo)}; // 取赋值字段 + slave1Row.handleType = 'add'; + slave1Row.sId = newSid; + slave1Row.sParentId = masterData.sId; + slave1Data.push(slave1Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave2)) { + returnData.slave2.forEach((slave2Item) => { + newCopyTo.slave2 = slave2Item; + const newSid = commonUtils.createSid(); + let slave2Row = commonFunc.getDefaultData(config.slave2Config, newCopyTo, { newSid }); // 取默认值 + slave2Row = {...slave2Row, ...commonFunc.getAssignFieldValue(slave2AssignField, slave2Item, newCopyTo)}; // 取赋值字段 + slave2Row.handleType = 'add'; + slave2Row.sId = newSid; + slave2Row.sParentId = masterData.sId; + slave2Data.push(slave2Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave3)) { + returnData.slave3.forEach((slave3Item) => { + newCopyTo.slave3 = slave3Item; + const newSid = commonUtils.createSid(); + let slave3Row = commonFunc.getDefaultData(config.slave3Config, newCopyTo, { newSid }); // 取默认值 + slave3Row = {...slave3Row, ...commonFunc.getAssignFieldValue(slave3AssignField, slave3Item, newCopyTo)}; // 取赋值字段 + slave3Row.handleType = 'add'; + slave3Row.sId = newSid; + slave3Row.sParentId = masterData.sId; + slave3Data.push(slave3Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave4)) { + returnData.slave4.forEach((slave4Item) => { + newCopyTo.slave4 = slave4Item; + const newSid = commonUtils.createSid(); + let slave4Row = commonFunc.getDefaultData(config.slave4Config, newCopyTo, { newSid }); // 取默认值 + slave4Row = {...slave4Row, ...commonFunc.getAssignFieldValue(slave4AssignField, slave4Item, newCopyTo)}; // 取赋值字段 + slave4Row.handleType = 'add'; + slave4Row.sId = newSid; + slave4Row.sParentId = masterData.sId; + slave4Data.push(slave4Row); + }); + } + } else { + this.props.getServiceError(dataReturn); + } + } else { + message.error('请正确配置参数!'); + } + } else if (commonUtils.isNotEmptyArr(copyTo.slaveData)) { + for (const slaveItem of copyTo.slaveData) { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.slave = slaveItem; + const newSid = commonUtils.createSid(); + let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo, { newSid }); // 取默认值 + slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段 + if ((!commonUtils.isEmpty(slaveRow.dProductQty) && slaveRow.dProductQty !== slaveRow.dSrcQty) || + (!commonUtils.isEmpty(slaveRow.dAuxiliaryQty) && slaveRow.dAuxiliaryQty !== slaveRow.dSrcAuxiliaryQty)) { + let models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + let sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty'; + + /* 20210901标板问题 未清新增时,材料销售模块需要用换算数量进行业务计算 */ + if (sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') { /* 如果是材料销售模块/销售对账 如果是材料 则用换算数量*单价 算金额 */ + slaveRow.dAuxiliaryQty = slaveRow.dProductQty; + /* 材料逻辑计算 */ + if (commonUtils.isNotEmptyNumber('dMaterialsQty') && slaveRow.dMaterialsQty !== 0 && commonUtils.isNotEmptyObject(slaveRow.sMaterialsUnit)) { + let modelsNew = ''; + if (models === 'Product') { /* 计算前将Product替换为Materials */ + modelsNew = 'Materials'; + + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + const { dNetPrice } = app.decimals; + const dForeignPrice = slaveRow[`d${models}ForeignPrice`]; + if (commonUtils.isNotEmptyNumber(dForeignPrice)) { + /* 只有外币单价情況下 要算本位币单价 */ + const dProductPrice = commonUtils.convertFixNum(dForeignPrice * dCurrencyRate, dNetPrice); + slaveRow[`d${models}Price`] = dProductPrice; + } + + slaveRow[`dN${modelsNew}Price`] = slaveRow[`d${models}ForeignPrice`]; + slaveRow[`d${modelsNew}ForeignPrice`] = slaveRow[`d${models}ForeignPrice`]; + slaveRow[`d${modelsNew}Price`] = slaveRow[`d${models}Price`]; + slaveRow[`dN${modelsNew}Money`] = slaveRow[`dN${models}Price`]; + slaveRow[`dN${modelsNew}Money`] = slaveRow[`d${models}ForeignMoney`]; + slaveRow[`d${modelsNew}ForeignMoney`] = slaveRow[`d${models}ForeignMoney`]; + slaveRow[`d${modelsNew}Money`] = slaveRow[`d${models}Money`]; + slaveRow.bSalesMaterials = true;/* 材料销售 销售对账 材料计算 */ + models = 'Materials'; + sFieldName = commonUtils.isNotEmptyObject(sFieldName) ? sFieldName.replace('Product', 'Materials') : sFieldName; + } + } + } + commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, slaveRow); + } + if (commonUtils.isNotEmptyObject(slaveRow.sReportParam)) { + slaveRow = { ...slaveRow, ...commonUtils.convertStrToObj(slaveRow.sReportParam) }; + } + slaveRow.handleType = 'add'; + slaveRow.sId = newSid; + slaveRow.sParentId = masterData.sId; + /* 没有sNodeId需要生成一个新的,有的直接带下来 */ + if(commonUtils.isEmptyObject(slaveItem.sNodeId)) { + slaveRow.sNodeId = commonUtils.createSid(); + } else { + slaveRow.sNodeId = slaveItem.sNodeId; + } + if (commonUtils.isEmptyObject(slaveRow.sWareHouseId)) { + slaveRow.sWareHouseId = masterData.sWareHouseId; + slaveRow.sWareHouseNo = masterData.sWareHouseNo; + slaveRow.sWareHouseName = masterData.sWareHouseName; + slaveRow.sLocationId = masterData.sLocationId; + slaveRow.sLocationNo = masterData.sLocationNo; + slaveRow.sLocationName = masterData.sLocationName; + slaveRow.sWareHouseLocationId = masterData.sWareHouseLocationId; + slaveRow.sWareHouseLocationNo = masterData.sWareHouseLocationNo; + slaveRow.sWareHouseLocationName = masterData.sWareHouseLocationName; + } + slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId;/* 翻单前的sId */ + slaveRow.sFatherSlaveId = commonUtils.isNotEmptyObject(slaveItem.sFatherSlaveId) ? slaveItem.sFatherSlaveId : '';/* 父级id */ + /* 若复制到没有序号,则序号从1自增 */ + if (commonUtils.isEmptyNumber(slaveRow.iOrder)) { + iCount += 1; + slaveRow.iOrder = iCount; + } + + /* CopyTo时,若有树形,则sFartherParentId对应生成新的父级的sId */ + // if (commonUtils.isNotEmptyObject(slaveItem.sFatherSlaveId)) { + // const copyToSlaveChildConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slaveChild`.toLowerCase()); + // const slaveChildAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveChildConfig[0].sAssignField : ''; + // if(slaveChildAssignField) { + // slaveRow = {...slaveRow, ...commonFunc.getAssignFieldValue(slaveChildAssignField, slaveItem, newCopyTo)}; // 取赋值字段 + // } + // /* 代表该行是子级 */ + // const sfIndex = slaveData.findIndex(item => item.sOriginalId === slaveItem.sFatherSlaveId); + // if (sfIndex > -1) { + // slaveRow.sFatherSlaveId = slaveData[sfIndex].sId; + // } + // console.log('子级生成',slaveRow); + // } + + if (sModelsType === 'purchase/purchaseInstore' || sModelsType === 'materialsStock/productionmaterialsreject') { + let iIndex = app.systemData.findIndex(item => item.sName === 'CbxProductDefine'); + if(commonUtils.isNotEmptyObject(masterData.sMinusSrcId) || commonUtils.isNotEmptyObject(masterData.sMinusUsed) ){ + console.log('红111冲', masterData); + iIndex = -1; + } + if (iIndex > -1) { + const sCbxMaterialsDefine = app.systemData[iIndex].sValue; + if (sCbxMaterialsDefine === 'datenum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDD'); + } else if (sCbxMaterialsDefine === 'datetimenum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDDHHmm'); + } else if (sCbxMaterialsDefine === 'yearnum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYY'); + } else if (sCbxMaterialsDefine === 'yearmonthnum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYYMM'); + } else if (sCbxMaterialsDefine === 'worknum') { + slaveRow.sDefineNo = slaveRow.sWorkOrderNo; + } else if (sCbxMaterialsDefine === 'manuualno') { + slaveRow.sDefineNo = slaveRow.sManualNo; + } else if (sCbxMaterialsDefine === 'createnownum') { /* 批号根据生产日期+当前日期 */ + slaveRow.sDefineNo = moment(slaveRow.tProductionDate).format('YYYYMMDDHHmm') + moment(new Date()).format('YYYYMMDDHHmm'); + } + } + } else if (sModelsType === 'productStock/productInStore' || sModelsType === 'outside/outsideinstoreAll') { /* 成品入库、整单发外入库 */ + let iIndex = app.systemData.findIndex(item => item.sName === 'CbxProductDefine'); + if(commonUtils.isNotEmptyObject(masterData.sMinusSrcId) || commonUtils.isNotEmptyObject(masterData.sMinusUsed) ){ + console.log('红111冲', masterData); + iIndex = -1; + } + if (iIndex > -1) { + const sCbxProductDefine = app.systemData[iIndex].sValue; + if (sCbxProductDefine === 'datenum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDD'); + } else if (sCbxProductDefine === 'datetimenum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYYMMDDHHmm'); + } else if (sCbxProductDefine === 'yearnum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYY'); + } else if (sCbxProductDefine === 'yearmonthnum') { + slaveRow.sDefineNo = moment(new Date()).format('YYYYMM'); + } else if (sCbxProductDefine === 'worknum') { + slaveRow.sDefineNo = slaveRow.sWorkOrderNo; + } else if (sCbxProductDefine === 'manuualno') { + slaveRow.sDefineNo = slaveRow.sManualNo; + } else if (sCbxProductDefine === 'worktimenum') { /* 批号根据工单号码+日期时间批号 */ + slaveRow.sDefineNo = slaveRow.sWorkOrderNo + moment(new Date()).format('YYYYMMDDHH'); + } else if (sCbxProductDefine === 'yearToDate') { /* 2259 批号根据工单制单日期年月日,年取两位 */ + slaveRow.sDefineNo = moment(copyTo.masterData.tCreateDate || new Date()).format('YYMMDD'); + } + } + } else if (sModelsType === 'sales/salesCheck') { + slaveRow.dSrcNoCheckMoney = slaveRow.dProductForeignMoney; + } else if (sModelsType === 'purchase/purchasecheck') { + slaveRow.dSrcNoCheckMoney = slaveRow.dMaterialsMoney; + } else if (sModelsType === 'purchase/purchaseOrder') { // bug 2171 修正 吕杰 2021-03-26 + const dProcurementCycle = commonUtils.isNull(slaveRow.dProcurementCycle, 0); + const tCreateDate = masterData && commonUtils.isNotEmptyObject(masterData.tCreateDate) ? masterData.tCreateDate : new Date(); + const tDeliverDate = moment(tCreateDate).add(dProcurementCycle, 'days').format(commonUtils.dateFormatA); + slaveRow.tDeliverDate = tDeliverDate; + slaveRow.dProcurementCycle = dProcurementCycle; + } + slaveData.push(slaveRow); + console.log('是否翻单', flagCopyTo); + if (sModelsType.includes('sales/salesOrder') && flagCopyTo && commonUtils.isNotEmptyArr(copyTo.slaveData)) { + const { token } = this.props; + const sSlaveId = commonUtils.isNotEmptyStr(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; + const sParentId = commonUtils.isNotEmptyStr(slaveItem.sParentId) ? slaveItem.sParentId : slaveItem.sId; + let condition = {}; + if (sModelsType === 'sales/salesOrderPack') { + condition = { sParentId }; + } else { + condition = { sSlaveId }; + } + /* 通用报价单:101251240115016244276286330 */ + const dataUrl = slaveItem.sFormId === '19211681019715780306452560' || slaveItem.sFormId === '101251240115016076506222050' + || slaveItem.sFormId === '101251240115016036175782700' || slaveItem.sFormId === '101251240115016002356125200' || slaveItem.sFormId === '101251240115016244276286330' || + slaveItem.sFormId === '101251240115016197744514350' ? + `${commonConfig.server_host}salesorder/getQuotationPartsInfo?sModelsId=${sModelsId}` : + `${commonConfig.server_host}salesorder/getPartsInfo?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + slaveItem.sId = sSlaveId; + copyTo.controlData = returnData.controlData; + copyTo.materialsData = returnData.materialsData; + copyTo.processData = returnData.processData; + copyTo.packData = returnData.packData; + copyTo.colorData = returnData.colorData; + } else { + this.props.getServiceError(dataReturn); + } + } + + const copyToControlConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.control`.toLowerCase()); + const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; + if (controlAssignField !== '') { + if (commonUtils.isNotEmptyObject(copyTo.controlData)) { + const treeCopyNodes = new Map(); + let controlFilterData = []; + const srcFormRoute = copyTo.srcFormRoute; + if (srcFormRoute === '/indexPage/quotationPack' || (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes('quotationPack')) || slaveItem.sFormId === '101251240115016076506222050') { + controlFilterData = copyTo.controlData; + } else { + controlFilterData = copyTo.controlData.filter(controlItem => controlItem.sSlaveId === slaveItem.sId || controlItem.sSlaveId === slaveItem.sSlaveId); + } + await controlFilterData.forEach(async (controlItem) => { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.control = controlItem; + const newSid = commonUtils.createSid(); + let controlRow = commonFunc.getDefaultData(config.controlConfig, newCopyTo, { newSid }); // 取默认值 + controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 + if ((!commonUtils.isEmpty(controlRow.dProductQty) && controlRow.dProductQty !== controlRow.dSrcQty) || + (!commonUtils.isEmpty(controlRow.dAuxiliaryQty) && controlRow.dAuxiliaryQty !== controlRow.dSrcAuxiliaryQty)) { + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty'; + commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, controlRow); + } + controlRow.handleType = 'add'; + controlRow.sId = newSid; + controlRow.sOriginalId = controlItem.sId; /* 复制前的部件表sId */ + controlRow.sParentId = masterData.sId; + controlRow.sSlaveId = slaveRow.sId; + if (sModelsType === 'sales/salesOrderPack') { + /* 如果有树形结构 则sAllId,sControlParentId赋值 */ + const sAllOldId = controlItem.sAllId; + let arr = []; + if (commonUtils.isNotEmptyObject(sAllOldId)) { + arr = sAllOldId.split(','); + } + const newId = controlRow.sId; + let sOldParentId = ''; + let sNewParentAllId = ''; + if (arr.length < 2) { /* 根节点复制 */ + controlRow.sAllId = newId; + sOldParentId = newId; + sNewParentAllId = newId; + } else { + sOldParentId = arr[arr.length - 2]; + if (treeCopyNodes.has(sOldParentId)) { + sNewParentAllId = treeCopyNodes.get(sOldParentId); + } else { + const obj = arr[arr.length - 1]; + sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + } + const sNewArr = sNewParentAllId.split(','); + controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; + sNewParentAllId = `${sNewParentAllId},${newId}`; + controlRow.sAllId = sNewParentAllId; + } + treeCopyNodes.set(controlItem.sId, sNewParentAllId); + } + controlData.push(controlRow); + + const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase()); + const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; + if (materialsAssignField !== '') { + if (commonUtils.isNotEmptyObject(copyTo.materialsData)) { + let materialsFilterData = []; + const srcFormRoute = copyTo.srcFormRoute; + if (srcFormRoute === '/indexPage/quotationPack' || (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes('quotationPack')) || slaveItem.sFormId === '101251240115016076506222050') { + materialsFilterData = copyTo.materialsData.filter(materialsItem => materialsItem.sControlId === controlItem.sId); + } else { + materialsFilterData = copyTo.materialsData.filter(materialsItem => (materialsItem.sSlaveId === slaveItem.sId || + materialsItem.sSlaveId === slaveItem.sSlaveId ) && materialsItem.sControlId === controlItem.sId); + } + await materialsFilterData.forEach(async (materialsItem) => { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.materials = materialsItem; + const newSid = commonUtils.createSid(); + let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo, { newSid }); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + if ((!commonUtils.isEmpty(materialsRow.dProductQty) && materialsRow.dProductQty !== materialsRow.dSrcQty) || + (!commonUtils.isEmpty(materialsRow.dAuxiliaryQty) && materialsRow.dAuxiliaryQty !== materialsRow.dSrcAuxiliaryQty)) { + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty'; + commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, materialsRow); + } + materialsRow.handleType = 'add'; + materialsRow.sId = newSid; + materialsRow.sParentId = masterData.sId; + materialsRow.sControlId = controlRow.sId; + materialsRow.sPartsName = controlRow.sPartsName; + materialsRow.sSlaveId = slaveRow.sId; + // 材料对应工序的ID要变化 + if (commonUtils.isNotEmptyArr(copyTo.processData)) { + const iProcessIndex = processData.findIndex(item => item.sControlId === controlRow.sId && item.sSrcProcessTbId === materialsItem.sProcessTbId); + if (iProcessIndex > -1) { + materialsRow.sProcessTbId = processData[iProcessIndex].sId; + } + } + if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) { + const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const valueMaterialsStock = { + sProName: 'Sp_Inventory_MaterialsInventoryV56', + paramsMap: { + sMaterialsGuid: materialsRow.sMaterialsId, + sMaterialsStyle: materialsRow.sMaterialsStyle, + sWarehouseGuid: materialsRow.sWarehouseId, + sLocationalGuid: materialsRow.sLocationId, + sWarehouseLocationGuid: materialsRow.sWarehouseLocationId, + sDefine_no: materialsRow.sDefineNo, + sDefine_no2: materialsRow.sDefineNo2, + iGetQty: 1, + iHasZero: 1, + }, + }; + const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data; + if (returnDataMaterialsStock.code === 1) { + materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; + } + } + if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) { + const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const valueMaterialsAvailableQty = { + sProName: 'Sp_Inventory_MaterialsInventoryV56', + paramsMap: { + sMaterialsGuid: materialsRow.sMaterialsId, + sMaterialsStyle: materialsRow.sMaterialsStyle, + sWarehouseGuid: materialsRow.sWarehouseId, + sLocationalGuid: materialsRow.sLocationId, + sWarehouseLocationGuid: materialsRow.sWarehouseLocationId, + sDefine_no: materialsRow.sDefineNo, + sDefine_no2: materialsRow.sDefineNo2, + iGetQty: 2, + iHasZero: 1, + }, + }; + const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data; + if (returnDataMaterialsAvailableQty.code === 1) { + materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; + } + } + materialsData.push(materialsRow); + }); + } + } + /* 合版表复制到 */ + if (sModelsType && sModelsType.includes('sales/salesOrderPack') ) { + const copyToPackConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.pack`.toLowerCase()); + const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : ''; + if (commonUtils.isNotEmptyObject(packAssignField)) { + /* 复制到时增加合版表 */ + if (commonUtils.isNotEmptyArr(copyTo.packData)) { + await copyTo.packData.filter(item => item.sControlId === controlItem.sId).forEach(async (packItem) => { + newCopyTo.pack = packItem; + let packRow = commonFunc.getDefaultData(config.packConfig, newCopyTo); // 取默认值 + packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段 + /* sSlaveId赋值 */ + const packRowAdd = this.handlePackDataAdd(slaveRow, 0, controlRow.sId); + packRow = { ...packRow, ...packRowAdd }; + packRow.sOrderSlaveId = slaveRow.sId; + + /* 将控制表中的合版备注sId为新的sId */ + let JsonData = []; + const jsonStr = controlRow.sCombinedMemo; + if (commonUtils.isNotEmptyObject(jsonStr) && commonUtils.isJSON(jsonStr)) { + JsonData = JSON.parse(jsonStr); + if (commonUtils.isNotEmptyArr(JsonData)) { + let sCombinedMemoNew = ''; + JsonData.forEach((item, index) => { + if (item.sId === packItem.sId) { + JsonData[index].sId = packRow.sId; + } + }); + sCombinedMemoNew = JSON.stringify(JsonData); + controlRow.sCombinedMemo = sCombinedMemoNew; + const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId); + if (icontrolIndex) { + controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew }; + } + } + } + + + packData.push(packRow); + }); + } + } + } + const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase()); + const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; + if (processAssignField !== '') { + if (commonUtils.isNotEmptyObject(copyTo.processData)) { + let processFilterData = []; + const srcFormRoute = copyTo.srcFormRoute; + if (srcFormRoute === '/indexPage/quotationPack' || (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes('quotationPack')) || slaveItem.sFormId === '101251240115016076506222050') { + processFilterData = copyTo.processData.filter(processItem => processItem.sControlId === controlItem.sId); + } else { + processFilterData = copyTo.processData.filter(processItem => (processItem.sSlaveId === slaveItem.sId || + processItem.sSlaveId === slaveItem.sSlaveId) && processItem.sControlId === controlItem.sId); + } + processFilterData.forEach((processItem) => { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.process = processItem; + const newSid = commonUtils.createSid(); + let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo, { newSid }); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + if ((!commonUtils.isEmpty(processRow.dProductQty) && processRow.dProductQty !== processRow.dSrcQty) || + (!commonUtils.isEmpty(processRow.dAuxiliaryQty) && processRow.dAuxiliaryQty !== processRow.dSrcAuxiliaryQty)) { + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'process'; + const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty'; + commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, processRow); + } + processRow.handleType = 'add'; + processRow.sId = newSid; + processRow.sParentId = masterData.sId; + processRow.sControlId = controlRow.sId; + processRow.sPartsName = controlRow.sPartsName; + processRow.sSlaveId = slaveRow.sId; + /* 根据合版表的源sOriginalId找到新sId */ + let sNewIds = ''; + let sNewNames = ''; + const sOldIds = processRow.sCombinePartsName; + if (commonUtils.isNotEmptyObject(sOldIds)) { + const sOldArr = sOldIds.split(','); + for (const sId of sOldArr) { + const index = packData.findIndex(item => item.sOriginalId === sId); + if (index > -1) { + const tableDataRow = packData[index]; + sNewIds += `${tableDataRow.sId},`; + sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName}-${tableDataRow.sCombinePartsName},`; + } + } + sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; + sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; + } + processRow.sCombinePartsName = sNewIds; + processRow.sCombinePartsNameNew = sNewNames; + processData.push(processRow); + }); + } + } + + }); + } + + const copyToMaterialsConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.materials`.toLowerCase()); + const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; + if (materialsAssignField !== '') { + if (commonUtils.isNotEmptyObject(copyTo.materialsData)) { + let materialsFilterData = []; + const srcFormRoute = copyTo.srcFormRoute; + if (srcFormRoute === '/indexPage/quotationPack' || (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes('quotationPack')) || slaveItem.sFormId === '101251240115016076506222050') { + materialsFilterData = copyTo.materialsData.filter(item => item.sType === '2'); + } else { + materialsFilterData = copyTo.materialsData.filter(item => (item.sSlaveId === slaveItem.sId || item.sSlaveId === slaveItem.sSlaveId + || item.sCombinePartsName === slaveItem.sId || item.sCombinePartsName === slaveItem.sSlaveId) && item.sType === '2'); + } + await materialsFilterData.forEach(async (materialsItem) => { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.materials = materialsItem; + const newSid = commonUtils.createSid(); + let materialsRow = commonFunc.getDefaultData(config.materialsConfig, newCopyTo, { newSid }); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + if ((!commonUtils.isEmpty(materialsRow.dProductQty) && materialsRow.dProductQty !== materialsRow.dSrcQty) || + (!commonUtils.isEmpty(materialsRow.dAuxiliaryQty) && materialsRow.dAuxiliaryQty !== materialsRow.dSrcAuxiliaryQty)) { + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty'; + commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, materialsRow); + } + materialsRow.handleType = 'add'; + materialsRow.sId = newSid; + materialsRow.sParentId = masterData.sId; + materialsRow.sSlaveId = slaveRow.sId; + + /* 根据从表源sOriginalId找到新sId */ + let sNewIds = ''; + let sNewNames = ''; + const sOldIds = materialsItem.sCombinePartsName; + if (commonUtils.isNotEmptyObject(sOldIds)) { + const sOldArr = sOldIds.split(','); + for (const sId of sOldArr) { + const index = slaveData.findIndex(item => item.sOriginalId === sId); + if (index > -1) { + const tableDataRow = slaveData[index]; + sNewIds += `${tableDataRow.sId},`; + sNewNames += `${tableDataRow.sProductName},`; + } + } + sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; + sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; + } + materialsRow.sCombinePartsName = sNewIds; + materialsRow.sCombinePartsNameNew = sNewNames; + + if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) { + const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const valueMaterialsStock = { + sProName: 'Sp_Inventory_MaterialsInventoryV56', + paramsMap: { + sMaterialsGuid: materialsRow.sMaterialsId, + sMaterialsStyle: materialsRow.sMaterialsStyle, + sWarehouseGuid: materialsRow.sWarehouseId, + sLocationalGuid: materialsRow.sLocationId, + sWarehouseLocationGuid: materialsRow.sWarehouseLocationId, + sDefine_no: materialsRow.sDefineNo, + sDefine_no2: materialsRow.sDefineNo2, + iGetQty: 1, + iHasZero: 1, + }, + }; + const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data; + if (returnDataMaterialsStock.code === 1) { + materialsRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; + } + } + if (Object.keys(materialsRow).length > 0 && Object.keys(materialsRow).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) { + const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const valueMaterialsAvailableQty = { + sProName: 'Sp_Inventory_MaterialsInventoryV56', + paramsMap: { + sMaterialsGuid: materialsRow.sMaterialsId, + sMaterialsStyle: materialsRow.sMaterialsStyle, + sWarehouseGuid: materialsRow.sWarehouseId, + sLocationalGuid: materialsRow.sLocationId, + sWarehouseLocationGuid: materialsRow.sWarehouseLocationId, + sDefine_no: materialsRow.sDefineNo, + sDefine_no2: materialsRow.sDefineNo2, + iGetQty: 2, + iHasZero: 1, + }, + }; + const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data; + if (returnDataMaterialsAvailableQty.code === 1) { + materialsRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; + } + } + materialsData.push(materialsRow); + }); + } + } + const copyToProcessConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.process`.toLowerCase()); + const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; + if (processAssignField !== '') { + if (commonUtils.isNotEmptyObject(copyTo.processData)) { + let processFilterData = []; + const srcFormRoute = copyTo.srcFormRoute; + if (srcFormRoute === '/indexPage/quotationPack' || (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes('quotationPack')) || slaveItem.sFormId === '101251240115016076506222050') { + processFilterData = copyTo.processData.filter(item => item.sType === '3'); + } else { + processFilterData = copyTo.processData.filter(item => (item.sSlaveId === slaveItem.sId || item.sSlaveId === slaveItem.sSlaveId || + item.sCombinePartsName === slaveItem.sId || item.sCombinePartsName === slaveItem.sSlaveId) && item.sType === '3'); + } + processFilterData.forEach((processItem) => { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.process = processItem; + const newSid = commonUtils.createSid(); + let processRow = commonFunc.getDefaultData(config.processConfig, newCopyTo, { newSid }); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + if ((!commonUtils.isEmpty(processRow.dProductQty) && processRow.dProductQty !== processRow.dSrcQty) || + (!commonUtils.isEmpty(processRow.dAuxiliaryQty) && processRow.dAuxiliaryQty !== processRow.dSrcAuxiliaryQty)) { + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'process'; + const sFieldName = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'dProductQty' : 'dAuxiliaryQty'; + commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, processRow); + } + processRow.handleType = 'add'; + processRow.sId = newSid; + processRow.sParentId = masterData.sId; + processRow.sSlaveId = slaveRow.sId; + /* 根据合版表的源sOriginalId找到新sId */ + let sNewIds = ''; + let sNewNames = ''; + const sOldIds = processItem.sCombinePartsName; + if (commonUtils.isNotEmptyObject(sOldIds)) { + const sOldArr = sOldIds.split(','); + for (const sId of sOldArr) { + const index = slaveData.findIndex(item => item.sOriginalId === sId); + if (index > -1) { + const tableDataRow = slaveData[index]; + sNewIds += `${tableDataRow.sId},`; + sNewNames += `${tableDataRow.sCustomerName}-${tableDataRow.sProductName},`; + } + } + } + sNewIds = commonUtils.isNotEmptyObject(sNewIds) ? sNewIds.substr(0, sNewIds.length - 1) : ''; + sNewNames = commonUtils.isNotEmptyObject(sNewNames) ? sNewNames.substr(0, sNewNames.length - 1) : ''; + processRow.sCombinePartsName = sNewIds; + processRow.sCombinePartsNameNew = sNewNames; + processData.push(processRow); + }); + } + } + /* 颜色表 */ + const copyToColorConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.param`.toLowerCase()); + const colorAssignField = commonUtils.isNotEmptyArr(copyToColorConfig) ? copyToColorConfig[0].sAssignField : ''; + if (colorAssignField !== '') { + if (commonUtils.isNotEmptyArr(copyTo.colorData)) { + if (commonUtils.isNotEmptyObject(config.colorConfig)) { + copyTo.colorData.forEach((colorItem) => { + newCopyTo.color = colorItem; + const newSid = commonUtils.createSid(); + let colorRow = commonFunc.getDefaultData(config.colorConfig, newCopyTo, { newSid }); // 取默认值 + colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(colorAssignField, colorItem, newCopyTo) }; // 取赋值字段 + colorRow.handleType = 'add'; + colorRow.sId = newSid; + colorRow.sParentId = masterData.sId; + colorData.push(colorRow); + }); + } + } + } + } + } + } + + /* 若有层级 则拼装新的slaveData层级 */ + // if(commonUtils.isNotEmptyArr(slaveData)) { + // const slaveNewData = commonUtils.genTreeDataByArr(slaveData, 'sNodeId', 'sFatherSlaveId'); + // if(commonUtils.isNotEmptyArr(slaveNewData)) { + // slaveData = slaveNewData; + // } + // } + } + if (!commonUtils.isEmpty(masterData.sTestStandardId)) { + const dataUrl = `${commonConfig.server_host}eleteamemployee/getObtainInspectionStandards?sModelsId=${sModelsId}&sParentId=${masterData.sTestStandardId}`; + const dataReturn = (await commonServices.getService(this.props.app.token, dataUrl)).data; + const slaveDelData = []; + if (dataReturn.code === 1) { + const returnSlaveData = dataReturn.dataset.rows; + slaveData.forEach((item) => { + item.handleType = 'del'; + slaveDelData.push(item); + }); + slaveData = []; + const newCopyTo = {}; + newCopyTo.master = masterData; + const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'sTestStandardName'); + const slaveConfig = commonUtils.isEmptyObject(config) ? {} : config.slaveConfig; + if (!isWait) { + masterConfig = this.props.slaveConfig; + } + const iSqlIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sActValue'); + returnSlaveData.forEach((item, iIndex) => { + const newSid = commonUtils.createSid(); + let tableDataRow = commonFunc.getDefaultData(config.slaveConfig, {}, { newSid }); + tableDataRow.handleType = 'add'; + tableDataRow.sId = newSid; + tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null; + tableDataRow.key = tableDataRow.sId; + tableDataRow.iOrder = iIndex; + if (iConfigIndex > -1) { + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(masterConfig.gdsconfigformslave[iConfigIndex].sAssignField, item, newCopyTo) }; // 取赋值字段 + const sTestReference = tableDataRow.sTestReference; + const sParamObj = {}; + if (commonUtils.isNotEmptyObject(sTestReference)) { + if (sTestReference.indexOf('|') >= 0) { + sTestReference.split('|').forEach((itemField) => { + sParamObj[itemField] = itemField; + }); + tableDataRow.sParamDropDownsActValue = sParamObj; + if (iSqlIndex > -1) { + slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = 'sql'; + } else { + slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = ''; + } + } + } + } + if(location.pathname && location.pathname.includes('commonOeeBill')) { + if(commonUtils.isNotEmptyObject(app) && app.currentPane && app.currentPane.copyTo){ + const masterCopyToData = app.currentPane.copyTo.masterData; + if(commonUtils.isNotEmptyObject(masterCopyToData)) { + tableDataRow.sReportPanel = masterCopyToData.sReportPanel; + tableDataRow.sReportParam = masterCopyToData.sReportParam; + tableDataRow.sProcessParam = masterCopyToData.sProcessParam; + tableDataRow.sProcessPanel = masterCopyToData.sProcessPanel; + tableDataRow.sSrcSlaveId = masterCopyToData.sSlaveId; + } + } + } + + slaveData.push(tableDataRow); + }); + } + } + } + if (!commonUtils.isEmpty(copyTo) && copyTo.bCopyToTree && commonUtils.isNotEmptyArr(copyTo.copyOtherData)) { + const copyToDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.detail`.toLowerCase()); + const detailAssignField = commonUtils.isNotEmptyArr(copyToDetailConfig) ? copyToDetailConfig[0].sAssignField : ''; + if (detailAssignField !== '') { + const copyDetail = copyTo.copyOtherData.filter(item => item.name === 'detail')[0]; + const detail = copyDetail.data; + if (commonUtils.isNotEmptyArr(detail)) { + detail.forEach((detailItem) => { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.detail = detailItem; + const newSid = commonUtils.createSid(); + let tempDetail = commonFunc.getDefaultData(config.orderDetailConfig, newCopyTo, { newSid }); // 取默认值 + tempDetail = { ...tempDetail, ...commonFunc.getAssignFieldValue(detailAssignField, detailItem, newCopyTo) }; // 取赋值字段 + tempDetail.handleType = 'add'; + tempDetail.sId = newSid; + tempDetail.sParentId = masterData.sId; + /* commonListTree生成单据时候,要生成sId - sFatherParentId关系, 原关系是sSlaveId - sFatherParent */ + if(commonUtils.isNotEmptyArr(slaveData)) { + const iIndex = slaveData.findIndex(item => item.sSrcSlaveId === tempDetail.sFatherSlaveId); /* 找到对应的父级行 */ + if(iIndex > -1) { + const sFartherId = slaveData[iIndex].sId; + tempDetail.sFatherSlaveId = sFartherId; + } + } + slaveChildData.push(tempDetail); + }); + } + } + } else if (!commonUtils.isEmpty(copyTo) && commonUtils.isNotEmptyArr(copyTo.copyOtherData)) { + const copyToDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.detail`.toLowerCase()); + const detailAssignField = commonUtils.isNotEmptyArr(copyToDetailConfig) ? copyToDetailConfig[0].sAssignField : ''; + if (detailAssignField !== '') { + const copyDetail = copyTo.copyOtherData.filter(item => item.name === 'detail')[0]; + const detail = copyDetail.data; + if(commonUtils.isNotEmptyArr(detail)) { + detail.forEach((detailItem) => { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.detail = detailItem; + const newSid = commonUtils.createSid(); + let tempDetail = commonFunc.getDefaultData(config.orderDetailConfig, newCopyTo, { newSid }); // 取默认值 + tempDetail = { ...tempDetail, ...commonFunc.getAssignFieldValue(detailAssignField, detailItem, newCopyTo) }; // 取赋值字段 + const iIndex = slaveData.findIndex(slaveItem => slaveItem.sMaterialsId + slaveItem.sMaterialsStyle === detailItem.sMaterialsGS); + if (iIndex !== -1) { + slaveData[iIndex].sWorkOrderNo = commonUtils.isEmptyObject(slaveData[iIndex].sWorkOrderNo) ? detailItem.sWorkOrderNo : `${slaveData[iIndex].sWorkOrderNo},${detailItem.sWorkOrderNo}`; + } + tempDetail.handleType = 'add'; + tempDetail.sId = newSid; + tempDetail.sParentId = masterData.sId; + orderDetailData.push(tempDetail); + }); + } + } + } + /* 剔除订单到收款单,费用分摊单据新增空行 */ + if (slaveData.length === 0 && commonUtils.isNotEmptyObject(configNew.slaveConfig) && this.props.sModelsType !== 'cashier/receipt' && this.props.sModelsType !== 'cashier/payment' && this.props.sModelsType !== 'cost/cosexpenseshare' + && sModelsType !== 'sales/salesInvoice' && sModelsType !== 'purchase/purchaseInvoice' && sModelsType !== 'purchase/outsideInvoice') { + const allTableData = {}; + allTableData.master = masterData; + allTableData.slave = slaveData; + const newSid = commonUtils.createSid(); + const tableDataRowAdd = commonFunc.getDefaultData(configNew.slaveConfig, allTableData, { newSid }); + tableDataRowAdd.handleType = 'add'; + tableDataRowAdd.sId = newSid; + tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; + tableDataRowAdd.sNodeId = commonUtils.createSid(); + tableDataRowAdd.key = tableDataRowAdd.sId; + tableDataRowAdd.bDefault = false; + tableDataRowAdd.iOrder = 1; + /* 新增时生成采购批号 */ + if (sModelsType === 'purchase/purchaseInstore') { + let iIndex = app.systemData.findIndex(item => item.sName === 'CbxMaterialsDefine'); + if(commonUtils.isNotEmptyObject(masterData.sMinusSrcId) || commonUtils.isNotEmptyObject(masterData.sMinusUsed) ){ + console.log('红冲', masterData); + iIndex = -1; + } + if (iIndex > -1) { + const sCbxMaterialsDefine = app.systemData[iIndex].sValue; + if (sCbxMaterialsDefine === 'datenum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYYMMDD'); + } else if (sCbxMaterialsDefine === 'datetimenum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYYMMDDHHmm'); + } else if (sCbxMaterialsDefine === 'yearnum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYY'); + } else if (sCbxMaterialsDefine === 'yearmonthnum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYYMM'); + } else if (sCbxMaterialsDefine === 'worknum') { + tableDataRowAdd.sDefineNo = tableDataRowAdd.sWorkOrderNo; + } else if (sCbxMaterialsDefine === 'manuualno') { + tableDataRowAdd.sDefineNo = tableDataRowAdd.sManualNo; + } else if (sCbxMaterialsDefine === 'createnownum') { /* 批号根据生产日期+当前日期 */ + tableDataRowAdd.sDefineNo = moment(tableDataRowAdd.tProductionDate).format('YYYYMMDDHHmm') + moment(new Date()).format('YYYYMMDDHHmm'); + } + } + } else if (sModelsType === 'productStock/productInStore' || sModelsType === 'outside/outsideinstoreAll') { /* 成品入库、整单发外入库 */ + let iIndex = app.systemData.findIndex(item => item.sName === 'CbxProductDefine'); + if(commonUtils.isNotEmptyObject(masterData.sMinusSrcId) || commonUtils.isNotEmptyObject(masterData.sMinusUsed) ){ + console.log('红冲', masterData); + iIndex = -1; + } + if (iIndex > -1) { + const sCbxProductDefine = app.systemData[iIndex].sValue; + if (sCbxProductDefine === 'datenum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYYMMDD'); + } else if (sCbxProductDefine === 'datetimenum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYYMMDDHHmm'); + } else if (sCbxProductDefine === 'yearnum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYY'); + } else if (sCbxProductDefine === 'yearmonthnum') { + tableDataRowAdd.sDefineNo = moment(new Date()).format('YYYYMM'); + } else if (sCbxProductDefine === 'worknum') { + tableDataRowAdd.sDefineNo = tableDataRowAdd.sWorkOrderNo; + } else if (sCbxProductDefine === 'manuualno') { + tableDataRowAdd.sDefineNo = tableDataRowAdd.sManualNo; + } else if (sCbxProductDefine === 'worktimenum') { /* 批号根据工单号码+日期时间批号 */ + tableDataRowAdd.sDefineNo = tableDataRowAdd.sWorkOrderNo + moment(new Date()).format('YYYYMMDDHH'); + } else if (sCbxProductDefine === 'yearToDate') { /* 2259 批号根据工单制单日期年月日,年取两位 */ + tableDataRowAdd.sDefineNo = moment(copyTo.masterData.tCreateDate || new Date()).format('YYMMDD'); + } + } + } + const bEmptyAddLine = configNew.slaveConfig.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine'); + if (!(commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible)) { + slaveData.push(tableDataRowAdd); + } + } + if (sModelsType === 'sales/salesSgoods') { /* 送货单中如果只有一个仓库,默认带这个仓库 */ + // const sWareHouseNameDropDown = commonUtils.getStoreDropDownData(sModelsId, 'master', 'sWareHouseName'); + let sWareHouseNameDropDown; + const masterIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWareHouseName'); + if (masterIndex > -1) { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[masterIndex]); + sWareHouseNameDropDown = sqlDropDownData.dropDownData; + } + if (commonUtils.isNotEmptyArr(sWareHouseNameDropDown) && sWareHouseNameDropDown.length === 1) { + const addStata = {}; + addStata.sWareHouseId = sWareHouseNameDropDown[0].sId; + addStata.sWareHouseNo = sWareHouseNameDropDown[0].sNo; + addStata.sWareHouseName = sWareHouseNameDropDown[0].sName; + addStata.sLocationId = sWareHouseNameDropDown[0].sLocationId; + addStata.sLocationNo = sWareHouseNameDropDown[0].sLocationNo; + addStata.sLocationName = sWareHouseNameDropDown[0].sLocationName; + addStata.sWareHouseLocationId = sWareHouseNameDropDown[0].sWareHouseLocationId; + addStata.sWareHouseLocationNo = sWareHouseNameDropDown[0].sWareHouseLocationNo; + addStata.sWareHouseLocationName = sWareHouseNameDropDown[0].sWareHouseLocationName; + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWareHouseName'); + if (iIndex > -1) { + masterData = { ...masterData, ...addStata }; /* 主表赋默认仓库 */ + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) { /* 从表赋默认仓库 */ + slaveData.forEach((item, index) => { + slaveData[index] = { ...item, ...addStata }; + }); + } + } + } + } + const sTableType = commonUtils.isNotEmptyObject(configNew.slaveConfig) ? configNew.slaveConfig.sTableType : 'zero'; + const state = { + masterData, + slaveData, + slaveTotal: [], + slaveSelectedRowKeys: [], + checkData: [], + checkSelectedRowKeys: [], + searchUpDownData: {}, + enabled: true, + controlData, + materialsData, + processData, + dailyData, + packData, + colorData, + orderDetailData, + slaveChildData, + processSelectedRowKeys: [], + controlSelectedRowKeys: [], + materialsSelectedRowKeys: [], + calculated: false, + sTableType, + }; + state.sUseInfo = ''; + + /* 如果是红冲数据有值 则单据全部锁定 */ + if (commonUtils.isNotEmptyObject(masterData) && ((commonUtils.isNotEmptyObject(masterData.sMinusSrcId)) || commonUtils.isNotEmptyObject(masterData.sMinusUsed))) { + state.sUseInfo = 'bUsed'; + } + + if (isWait) { + return state; + } else { + this.props.onSaveState(state); + return true; + } + }; + /** 点击修改按钮操作 */ + handleEdit = async (cb) => { + const { + masterConfig, slaveConfig, checkConfig, currentId, app, masterData, dispatch, billnosetting, + } = this.props; + const { userinfo, systemData } = app; + const { sMakePerson } = masterData; /* 本单据制单人 */ + const { sUserName, sType } = userinfo;/* 登录用户 */ + // 判断是否全局都有配置 + const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson'); + let sValue = 0; + if (iIndex > -1) { + sValue = systemData[iIndex].sValue; // 全局配置的值; 1为开启:所有人都可以编辑,0是关闭; + } + const bModify = billnosetting.bModify; /* 勾选了可修改及代表普通用户非制单人可以修改单据 */ + if (!+sValue && !bModify && sType !== 'sysadmin' && sUserName !== sMakePerson) { + message.error(commonFunc.showMessage(app.commonConst, 'NoUpdateByNoMakePerson')); + this.props.onSaveState({ + loading: false + }); + return; + } + let timValue = 0; + if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) { + this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } }); + timValue = 3000; + } + const reset = (ws, config1) => { + clearTimeout(config1.timerServer); + clearTimeout(config1.serverTimer); + start(ws, config1); + }; + const start = (ws, config1) => { + config1.timerServer = setTimeout(() => { + const message = { sendFrom: this.props.app.userinfo.sId, connectTest: 'test' }; // param 存放其它参数 keyName 需要放入Redis的数据key,keyValue 需要放入Redis的数据key 的值 + ws.send(JSON.stringify(message)); + }, config1.timeoutServer); + }; + setTimeout(() => { + this.props.app.webSocket.onmessage = async (msg) => { + reset(this.props.app.webSocket, commonConfig); + const rtmsg = JSON.parse(msg.data); + if (rtmsg.action === 'showMsg') { + message.warning(rtmsg.msg); + this.props.onSaveState({ loading: false }); + } else if (rtmsg.action === 'loginOut') { + if (location.pathname.indexOf('/indexOee') > -1) { + dispatch({ type: 'app/throwErrorOee', payload: { code: -2, msg: rtmsg.msg } }); + } else if (location.pathname.indexOf('/indexMobile') > -1) { + dispatch({ type: 'app/throwErrorMobile', payload: { code: -2, msg: rtmsg.msg } }); + } else { + dispatch({ type: 'app/throwError', payload: { code: -2, msg: rtmsg.msg } }); + } + } else if (rtmsg.action === 'update') { + await this.handleGetData(masterConfig, slaveConfig, checkConfig,'update'); + if (cb && typeof cb === 'function') { + this.props.onSaveState({ enabled: false, calculated: false }, () => { cb(); }); + } else { + this.props.onSaveState({ enabled: true, calculated: false, loading: false }); + } + } else if (this.props.app.webSocket.homeAction) { + this.props.app.webSocket.homeAction(msg); + } + }; + this.props.handleSendSocketMessage('update', 'showMsg', currentId, userinfo.sId, null, null); + }, timValue); + }; + /** 表单回带 */ + handleForm = (form) => { + this.form = form; + }; + /** toolbar审核(消审) */ + handleAudit = async (flag) => { + /* 待用数据声明 */ + let bResult = true; + const { masterData, gdsformconst } = this.props; + if (!commonUtils.isEmpty(masterData)) { + /* 作废订单不能审核 */ + if (masterData.bInvalid) { + message.warning(gdsformconst.filter(item => (item.sName === 'sToVoid'))[0].showName); + return ''; + } + /** 数据审核 */ + bResult = await this.dataAudit(flag); + } else { + this.props.onSaveState({ + loading: false, + }); + } + return bResult; + }; + + /** 数据审核 */ + dataAudit = async (flag, tmpCheck, isWait) => { + message.destroy(); + /* 待用数据声明 */ + const { + sModelsId, masterData, app, masterConfig, slaveConfig, checkConfig, token, sModelsType, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, slaveData, orderDetailConfig, + } = this.props; + const sSlaveIdArray = []; + if (commonUtils.isNotEmptyArr(slaveData)) { + slaveData.forEach((item) => { + sSlaveIdArray.push(commonUtils.isNotEmptyObject(item.sId) ? item.sId : item.sSlaveId); + }); + } + const slaveId = sSlaveIdArray.toString(); + /* 数据参数 */ + const value = { + sClientType: '1', + paramsMap: { + iFlag: flag, + iTmpCheck: commonUtils.isEmptyNumber(tmpCheck) ? 0 : tmpCheck, + sFormGuid: sModelsId, + sGuid: masterData.sId, + sSlaveId: slaveId, + sBillNo: commonUtils.isNotEmptyObject(masterData.sBillNo) ? masterData.sBillNo : '', + }, + }; + let clearFlag = false; + if (sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder')) { + if (commonUtils.isNotEmptyArr(slaveData)) { + for (const item of slaveData) { + if (commonUtils.isNotEmptyStr(item.sProductInfo)) { + clearFlag = true; + break; + } + } + } else { + this.props.onSaveState({ + loading: false, + }); + return; + } + } + /* 数据审核 */ + const url = `${commonConfig.server_host}business/doExamine?sModelsId=${sModelsId}`; + const returnData = (await commonServices.postValueService(app.token, value, url)).data; + if (isWait) { + return returnData; + } else { + /* 接收返回值 */ + const check = commonFunc.showMessage(app.commonConst, 'BtnExamine');/* 审核 */ + const BtnCancelExamine = commonFunc.showMessage(app.commonConst, 'BtnCancelExamine');/* 销审 */ + if (returnData.code === 1) { /* 成功 */ + this.props.onSaveState({ + loading: false, + }); + if (flag === 1) { + /* 审核 */ + if (clearFlag && (sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder'))) { + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductName', []); + } + let outData; + if (commonUtils.isNotEmptyObject(returnData.dataset)) { + outData = returnData.dataset.rows[0].dataSet.outData; + } + if (commonUtils.isNotEmptyStr(outData[0].sReturn)) { + const sReturnArray = outData[0].sReturn.split('|'); + if (outData[0].sReturn.split('-').length < 2) { + // 正常业务提示,非审核模板 + // if (this.props.app.currentPane.refresh !== undefined) { + // this.props.app.currentPane.refresh(); + // } + message.error(check + outData[0].sReturn); + return; + } + const checkConditions = []; + let checkPersonData = {}; + sReturnArray.forEach((item) => { + const checkCondition = item.split('-')[2]; + const iIndex = checkConditions.findIndex(itemCondition => itemCondition.condition === checkCondition); + if (iIndex <= -1) { + checkConditions.push({ + key: commonUtils.createSid(), + condition: checkCondition, + }); + } + }); + const sCheckModelId = sReturnArray[0].split('-')[1]; + if (commonUtils.isNotEmptyStr(sCheckModelId)) { + const urlCheck = `${commonConfig.server_host}checkModel/getUserListByModelId/${sCheckModelId}?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.getService(token, urlCheck)).data; + if (dataReturn.code === 1) { + checkPersonData = dataReturn.dataset.rows; + checkPersonData.forEach((item) => { + item.key = commonUtils.createSid(); + }); + this.props.onSaveState({ + checkConditions, checkPersonData, sCheckModelId, visible: true, + }); + return true; + } else { /* 失败 */ + this.props.getServiceError({ msg: check + dataReturn }); + } + } + } else { + message.success(check + returnData.msg); + } + } else { + /* 消审 */ + const { outData } = returnData.dataset.rows[0].dataSet; + if (commonUtils.isNotEmptyStr(outData[0].sReturn)) { + message.error(outData[0].sReturn); + } else { + // if (this.props.app.currentPane.refresh !== undefined) { + // this.props.app.currentPane.refresh(); + // } + message.success(BtnCancelExamine + returnData.msg); + } + } + await this.handleGetData(masterConfig, slaveConfig, checkConfig); + if ((sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder')) && !commonUtils.isEmpty(controlConfig)) { + await this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig); + } else if (commonUtils.isNotEmptyObject(orderDetailConfig)) { + await this.handleGetOneMemoData('orderDetail', orderDetailConfig); + } + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + } else if(returnData.code === -8){ + Modal.info({ + title: '温馨提示:', + content: ( +
+ {this.handleGetMsg(returnData.msg)} +
+ ), + okText: '确认', + onOk() {}, + }); + this.props.onSaveState({ + loading: false, + }); + return false; + } else { /* 失败 */ + this.props.getServiceError(returnData); + this.props.onSaveState({ + loading: false, + }); + return false; + } + return true; + } + }; + + /** toolbar保存 */ + handleSaveData = async (params) => { + const { + token, sModelsId, currentId, masterData, masterConfig, slaveConfig, checkConfig, billnosetting, app, sModelsType, controlConfig, materialsConfig, processConfig, colorConfig, packConfig, orderDetailConfig, dispatch, + } = this.props; + const { userinfo } = app; + const { copyTo } = app.currentPane; + const onSendSocketMessage = this.props.handleSendSocketMessage; + const BtnSave = commonFunc.showMessage(app.commonConst, 'BtnSave');/* 保存 */ + params.optName = BtnSave; + const returnData = await commonBusiness.saveData({ token, value: params, sModelsId }); + if (commonUtils.isNotEmptyObject(returnData)) { + /* 防呆校验 */ + if (returnData.code === -7) { + // eslint-disable-next-line no-underscore-dangle + const _this = this; + confirm({ + title: '单据校验', /* 防呆校验 */ + content: returnData.msg, + onOk() { + params.iFlag = 1; + _this.handleSaveData(params); + }, + onCancel() { + }, + okText: '保存', + cancelText: '不保存', + }); + this.props.onSaveState({ + loading: false, + }); + return true; + } + if (commonUtils.isNotEmptyObject(copyTo) && commonUtils.isNotEmptyArr(copyTo.slaveData)) { + const { slaveData } = copyTo; + const sIdArray = []; + slaveData.forEach((item) => { + const redisKey = item.sSlaveId; + sIdArray.push(redisKey); + }); + /* 处理只有单主表解锁问题 */ + if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sSrcSlaveId)) { + sIdArray.push(masterData.sSrcSlaveId); + } + const sId = sIdArray.toString(); + onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null); + } + onSendSocketMessage('release', 'noAction', currentId, userinfo.sId, null, null); + this.props.onSaveState({ + enabled: false, currentId: masterData.sId, + }); + // 保存后更新panes,currentPane的checkedId,防止浏览器刷新时重新又变成新增。 + if (location.pathname !== '/indexOee/commonOeeBill') { + const iPaneIndex = app.panes.findIndex(item => item.key === app.currentPane.key); + app.panes[iPaneIndex].checkedId = masterData.sId; + app.currentPane.checkedId = masterData.sId; + dispatch({ type: 'app/savePanesAndCurrentPane', payload: { panes: app.panes, currentPane: app.currentPane } }); + } + + if (billnosetting.bAutoCheck) { + await this.handleAudit(1); + } else { + await this.handleGetData(masterConfig, slaveConfig, checkConfig); + if ((sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder')) && !commonUtils.isEmpty(controlConfig)) { + await this.handleGetMemoData(controlConfig, materialsConfig, processConfig, colorConfig, packConfig); + } else if (commonUtils.isNotEmptyObject(orderDetailConfig)) { + await this.handleGetOneMemoData('orderDetail', orderDetailConfig); + } + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + } + this.props.onSaveState({ + loading: false, + }); + return true; + } else { + this.props.onSaveState({ + loading: false, + }); + return false; + } + }; + /** toolbar校验保存 */ + handleValidateSave = () => { + this.form.validateFields(async (err) => { + /* 验证通过与不通过走不同的流程 */ + if (err) { /* 验证失败 */ + /* 直接渲染显示错误提示 */ + for (const key of Object.keys(err)) { + message.error(err[key].errors[0].message); + } + this.props.onSaveState({ + loading: false, + }); + } else { /* 验证成功 */ + const { + masterConfig, slaveConfig, slaveData, app, sModelsType, controlConfig, controlData, controlDelData, materialsConfig, materialsData, materialsDelData, processConfig, processData, processDelData, colorConfig, colorData, colorDelData, packConfig, packData, packDelData, orderDetailConfig, orderDetailData, orderDetailDelData, + } = this.props; + let { slaveDelData } = this.props; + let { masterData } = this.props; + if (sModelsType !== 'commonBill/onlyMaster' && commonUtils.isEmptyArr(slaveData) && !sModelsType.includes('sales/salesInvoice') && !sModelsType.includes('purchase/purchaseInvoice') && !sModelsType.includes('purchase/outsideInvoice') && sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment' + && !sModelsType.includes('cashier/receipt') && !sModelsType.includes('cashier/payment') && !sModelsType.includes('purchase/purchaseEnquiry')) { + /* 如果有审核按钮 则校验从表是否为空 */ + let bCheck = false; + let iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnCheck' || item.sControlName === 'BtnExamine' || item.sControlName === 'BtnSubmit'); + /* 配置了表格允许为空 则不进行校验 */ + if (slaveConfig && slaveConfig.bNotCanEmpty ) { + message.error(`${slaveConfig.sChinese || ''}${commonFunc.showMessage(app.commonConst, 'slaveNotNull')}`); // 从表不能为空! + this.props.onSaveState({ + loading: false, + }); + return; + } + const isForceCanEmpty = slaveConfig?.gdsconfigformslave?.find(item => item?.sControlName === 'sForceCanEmpty'); + if ((iIndex > -1) && !isForceCanEmpty) { + bCheck = true; + } + if(bCheck) { + message.error(`${slaveConfig.sChinese || ''}${commonFunc.showMessage(app.commonConst, 'slaveNotNull')}`); // 从表不能为空! + this.props.onSaveState({ + loading: false, + }); + return; + } + } + // && sModelsType === 'materialsStock/productionmaterialsadjust' + if (commonUtils.isNotEmptyArr(slaveData)) { + let flag = true; + for (const item of slaveData) { + if (sModelsType === 'materialsStock/productionmaterialsadjust') { + if (commonUtils.isNotEmptyStr(item.sWareHouseId)) { + if (masterData.sWareHouseId === item.sWareHouseId && masterData.sWarehouseLocationId === item.sWarehouseLocationId && masterData.sLocationId === item.sLocationId) { + message.error(commonFunc.showMessage(app.commonConst, 'NotSameMateMaterialWarehouse'));/* 材料调拨原仓库与调入仓库不能一致 */ + flag = false; + break; + } + } + } + // {"paper":"纸张","finished":"成品","half_finished":"半成品","accessories":"辅料","corrugated":"瓦楞"} + if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) { + if (sModelsType.includes('sales/')) { + message.error(item.sProductName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sProductName}"的规格 */ + } else { + message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写"${item.sMaterialsName}"的规格 */ + } + flag = false; + break; + } + } + if (!flag) { + this.props.onSaveState({ + loading: false, + }); + return; + } + } + if (!commonBusiness.validateTable(slaveConfig, slaveData, this.props)) { + this.props.onSaveState({ + loading: false, + }); + return; + } + // if (commonUtils.isNotEmptyArr(slaveData) && sModelsType === 'materialsStock/productionmaterials') { + // let flag = true; + // const iIndex = app.systemData.findIndex(item => item.sName === 'CkxMaterialsStockLimit'); + // if (iIndex > -1) { + // const bCkxMaterialsStockLimit = app.systemData[iIndex].sValue; + // if (bCkxMaterialsStockLimit === '1') { + // flag = await this.handleEleMaterialsStoreCurrQty(slaveData); + // } + // } + // if (!flag) { + // this.props.onSaveState({ + // loading: false, + // }); + // return; + // } + // } + if (sModelsType === 'purchase/purchaseEnquiry') { + delete masterData.maxBillNo; + } + if (sModelsType === 'cashier/receipt' || sModelsType === 'cashier/payment') { + let flag = true; + if (masterData.sSettlementId === 'bank') { + if (commonUtils.isEmptyStr(masterData.sBankId) || commonUtils.isEmptyStr(masterData.sBankAccount)) { + message.error(commonFunc.showMessage(app.commonConst, 'requiredsBankAccount'));/* 收/付款条件为银行时,银行、银行账号为必填项 */ + flag = false; + } + } + if (masterData.sSettlementId === 'bill') { + if (commonUtils.isEmptyStr(masterData.sBankId) || commonUtils.isEmptyStr(masterData.sInvoiceNo)) { + message.error(commonFunc.showMessage(app.commonConst, 'requiredsInvoiceNo'));/* 收/付款条件为票据时,银行、票据号码为必填项 */ + flag = false; + } + } + let dslaveTotalMoney = 0; + let flagCheckSave = true; + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) { + for (const item of slaveData) { + if (item.handleType !== 'del') { + if (commonUtils.isNotEmptyNumber(item.dTotalMoney)) { + dslaveTotalMoney += item.dTotalMoney; + } + const dBalanceMoney = commonUtils.isNull(item.dBalanceMoney, 0); + const dTotalMoney = commonUtils.isNull(item.dTotalMoney, 0); + const dRoundingMoney = commonUtils.isNull(item.dRoundingMoney, 0); + const dCount = dRoundingMoney + dTotalMoney; + let bWarning = false; + if (dBalanceMoney > 0 || dBalanceMoney === 0) { + if (dCount > dBalanceMoney) { + bWarning = true; + } + } else if (dCount < dBalanceMoney) { + bWarning = true; + } + if (bWarning) { + if (sModelsType.includes('cashier/receipt')) { + message.error(commonFunc.showMessage(app.commonConst, 'NoOverBalanceMoneyReceipt'));/* 总金额不能超过未收/付款宽金额 */ + } else if (sModelsType.includes('cashier/payment')) { + message.error(commonFunc.showMessage(app.commonConst, 'NoOverBalanceMoneyPay'));/* 总金额不能超过未收/付款宽金额 */ + } + this.props.onSaveState({ + loading: false, + }); + return; + } + } + const flatDel = commonUtils.isNull(item.dTotalMoney, 0) !== 0 || commonUtils.isNull(item.dRoundingMoney, 0) !== 0; + if (!flatDel) { + if (item.handleType === 'add') { + item.handleType = undefined; /* 付款单和收款单,去掉收款和付款金额为0的记录 */ + } else if (item.handleType === 'update') { + item.handleType = 'del'; + item.bRollBack = true; /* 删除失败后 该条数据回滚到修改状态 */ + if (commonUtils.isEmptyArr(slaveDelData)) { + slaveDelData = []; + } + slaveDelData.push(item); + } + } else { + flagCheckSave = false; + } + } + } + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0 && flagCheckSave) { + message.warning('表格内容不能为空![dTotalMoney或dRoundingMoney必须大于0]'); + this.props.onSaveState({ + loading: false, + }); + return; + } + const dPmoney = this.props.getFloatNum('dProductMoney'); + dslaveTotalMoney = commonUtils.convertFixNum(dslaveTotalMoney, dPmoney);/* 取系统设定小数位 */ + if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyNumber(masterData.dTotalMoney) && commonUtils.isNotEmptyNumber(masterData.dAdvanceMoney) && commonUtils.convertFixNum(masterData.dTotalMoney - masterData.dAdvanceMoney, dPmoney) !== dslaveTotalMoney) { + message.error(commonFunc.showMessage(app.commonConst, 'NotSameTotalMoney'));/* 主从表总金额不一致 */ + flag = false; + } + /* 收付款保存前,看到从表没数据,预收勾上时,自动调用一下分摊 */ + if (commonUtils.isEmptyArr(slaveData)) { + masterData = this.handleShare(); + } + if (!flag) { + this.props.onSaveState({ + loading: false, + }); + return; + } + } + /* 销售发票、采购发票、发外发票 ,去掉总金额+舍入为0的数据 */ + if (sModelsType === 'sales/salesInvoice' || sModelsType === 'purchase/purchaseInvoice' || sModelsType === 'purchase/outsideInvoice') { + let flagCheckSave = true; + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) { + for (const item of slaveData) { + const flatDel = commonUtils.isNull(item.dTotalMoney, 0) !== 0 || commonUtils.isNull(item.dRoundingMoney, 0) !== 0; + if (!flatDel) { + if (item.handleType === 'add') { + item.handleType = undefined; /* 付款单和收款单,去掉收款和付款金额为0的记录 */ + } else if (item.handleType === 'update') { + item.handleType = 'del'; + item.bRollBack = true; /* 删除失败后 该条数据回滚到修改状态 */ + if (commonUtils.isEmptyArr(slaveDelData)) { + slaveDelData = []; + } + slaveDelData.push(item); + } + } else { + flagCheckSave = false; + } + } + } + /* 收付款保存前,看到从表没数据,预收勾上时,自动调用一下分摊 */ + if (commonUtils.isEmptyArr(slaveData)) { + masterData = this.handleShare(); + } + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0 && flagCheckSave) { + message.warning('表格内容不能为空![dTotalMoney或dRoundingMoney必须大于0]'); + this.props.onSaveState({ + loading: false, + }); + return; + } + } + const data = []; + data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData])); + if (sModelsType !== 'commonBill/onlyMaster' && sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment' && !sModelsType.includes('purchase/purchaseEnquiry')) { + data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData)); + } + if (sModelsType.includes('sales/salesOrder') && !commonUtils.isEmpty(controlConfig)) { + if (commonUtils.isNotEmptyArr(materialsData)) { + const flag = true; + // for (const item of materialsData) { /* 销售订单中的物料规格不是必填项,只有工单里才要判断必填 */ + // if (commonUtils.isNotEmptyObject(item.sMaterialsType) && item.sMaterialsType === 'paper' && commonUtils.isEmptyObject(item.sMaterialsStyle)) { + // message.error(item.sMaterialsName + commonFunc.showMessage(app.commonConst, 'NoStyle'));/* 请填写规格 */ + // flag = false; + // break; + // } + // } + if (!flag) { + this.props.onSaveState({ + loading: false, + }); + return; + } + } + data.push(commonBusiness.mergeData('control', controlConfig.sTbName, controlData, controlDelData)); + data.push(commonBusiness.mergeData('materials', materialsConfig.sTbName, materialsData, materialsDelData)); + data.push(commonBusiness.mergeData('process', processConfig.sTbName, processData, processDelData)); + if (commonUtils.isNotEmptyObject(colorConfig)) { + data.push(commonBusiness.mergeData('color', colorConfig.sTbName, colorData, colorDelData)); + } + if (commonUtils.isNotEmptyObject(packConfig)) { + data.push(commonBusiness.mergeData('pack', packConfig.sTbName, packData, packDelData)); + } + } + if (!commonUtils.isEmpty(orderDetailConfig)) { + data.push(commonBusiness.mergeData('detail', orderDetailConfig.sTbName, orderDetailData, orderDetailDelData)); + } + this.handleSaveData({ data, sClientType: '1', sSysLogSrcId: masterData.sId }); + } + }); + }; + + /* 切换作废状态 */ + handleOkChangeInvaild = async (props) => { + const { + sModelsId, masterData, masterConfig, handleType, + } = props; + const value = { + sClientType: '1', + sId: [masterData.sId], + sTableName: masterConfig.sTbName, + handleType, + }; + const url = `${commonConfig.server_host}checkModel/updatebInvalid?sModelsId=${sModelsId}`; + const { data } = await commonServices.postValueService(props.app.token, value, url); + if (data.code === 1) { + message.success(data.msg); + masterData.bInvalid = handleType === 'toVoid'; /* 作废状态 */ + props.onSaveState({ masterData }); + /* 审核(消审)后刷新跳转路由数据(commonList)的数据 */ + if (props.app.currentPane.refresh !== undefined) { + props.app.currentPane.refresh(); + } + } else { + props.getServiceError(data); + } + }; + + /* 作废、取消作废的公用函数 */ + handleInvalid = (obj) => { + const props = { ...this.props, ...this.state, ...obj }; + const onOkInvaild = this.handleOkChangeInvaild; + confirm({ + title: obj.title, + onOk() { + onOkInvaild(props); + }, + onCancel() { + }, + }); + }; + + /* 单据页上查下查跳转页面 */ + handleSearchUpDown = async (sId, sActiveId) => { + /* 待用数据声明 */ + const { dispatch, sTabId } = this.props; + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */ + sParentId: sTabId, /* 父页面编号 */ + checkedId: sId, + }, + }); + }; + + /* 上查下查三级菜单 在上一条下一条时必须清除searchUpDownData */ + handleSearchUpDownThird = async (upDownKey) => { + /* 待用数据声明 */ + const { masterConfig, searchUpDownData: searchUpDownDataOld } = this.props; + /** 获取sqlCondition参数:{sSqlCondition,sId} */ + const searchUpDownData = commonUtils.isEmptyObject(searchUpDownDataOld) ? {} : { ...searchUpDownDataOld }; + if (commonUtils.isNotEmptyObject(masterConfig)) { + const searchUpDownConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(`${upDownKey}`)); + for (const item of searchUpDownConfig) { + if (commonUtils.isEmptyArr(searchUpDownData[item.sControlName])) { + searchUpDownData[item.sControlName] = await this.getSearchUpDownData(item); + } + } + this.props.onSaveState({ searchUpDownData }); + } + }; + + /* 单据页复制到 */ + handleCopyTo = async (name, sActiveId) => { + /* 待用数据声明 */ + const { + masterConfig, + masterData, + slaveData, + controlData, + materialsData, + processData, + packData, + app, + token, + sModelsId, + formRoute, + slaveSelectedRowKeys, + } = this.props; + + // 从表有sCopyToCondition则不能复制,并提示 + if (commonUtils.isNotEmptyArr(slaveData) && name.includes('.')) { + const sCopyToConditionIndex = slaveData.findIndex(item => item.sCopyToCondition); + if (sCopyToConditionIndex !== -1) { + message.warning(slaveData[sCopyToConditionIndex].sCopyToCondition); + return; + } + } + + const copyTo = {}; + const copyToConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name)); + copyTo.name = name; + copyTo.config = copyToConfig; + copyTo.masterData = masterData; + copyTo.slaveData = slaveData; + copyTo.controlData = controlData; + copyTo.materialsData = materialsData; + copyTo.processData = processData; + copyTo.packData = packData; + copyTo.srcFormRoute = formRoute; + + // 部分红冲,需要将选中的从表数据带过去 + if (name.includes('Portion')) { + if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) { + message.warning('请选择至少一条从表数据'); + return; + } + const filterSlaveData = slaveData.filter(item => slaveSelectedRowKeys.includes(item.sId)); + copyTo.slaveData = filterSlaveData; + } + if(sModelsId === '12710101116943091653680' && name === 'BtnCopyTo.alumite'){ + if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) { + message.warning('请选择至少一条从表数据'); + return; + } + } + + + const tbSuffix = ''; + let sId = ''; + if (!commonUtils.isEmpty(slaveData)) { + sId = slaveData[0].sId; + } else { + sId = masterData.sId; + } + + const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName=${formRoute}`; + const values = { sSlaveId: sId }; + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + if (dataReturn.code === 1) { + // eslint-disable-next-line no-underscore-dangle + const _this = this; // 解决confirm中this指向问题; + if (dataReturn.dataset.rows.length > 0) { + confirm({ + title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */ + onOk() { + _this.handleDispatch(copyTo, sActiveId); + }, + onCancel() { + }, + }); + } else { + this.handleDispatch(copyTo, sActiveId); + } + } + }; + handleDispatch = (copyTo, sActiveId) => { + const { dispatch } = this.props; + dispatch({ + type: 'content/onRouter', + payload: { + url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}`, /* 接口地址 */ + copyTo, + }, + }); + } + + /* 复制从产品工艺卡列表 */ + handleCopyFrom = async (obj) => { + /* 待用数据声明 */ + const { + slaveData, masterData, masterConfig, + } = this.props; + /* 根据sql条件进行判断 */ + const buttonConfig = masterConfig.gdsconfigformslave.filter(item => item.sName === '' && item.showName !== '' && item.sControlName === obj.copyFromKey); + if (commonUtils.isNotEmptyArr(buttonConfig) && commonUtils.isNotEmptyObject(buttonConfig[0].sSqlCondition) && buttonConfig[0].sSqlCondition.includes('slave.') + && buttonConfig[0].sSqlCondition.includes('sCustomerId')) { + if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyStr(slaveData[0].sCustomerId) && commonUtils.isEmptyStr(masterData.sCustomerId)) { + message.error(commonFunc.showMessage(this.props.app.commonConst, 'pleaseInputCustomer'));/* 请填写客户 */ + return; + } + } + const { token } = this.props; + const url = `${commonConfig.server_host}/gdsmodule/getGdsmoduleById/${obj.copyFromSActiveId}?sModelsId=${obj.copyFromSActiveId}`; + const dataReturn = (await commonServices.getService(token, url)).data; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + if (obj.copyFromKey.includes('customizeFormInfo')) { /* 复制从自定义窗体 */ + this.props.onSaveState({ copyFromChooseVisible: true, copyFromChooseData: returnData, copyFromKey: obj.copyFromKey }); + } else { + this.props.onSaveState({ productProcessInfoChooseVisible: true, productProcessInfoChooseData: returnData, productProcessInfoCopyFromKey: obj.copyFromKey }); + } + } else { + this.props.getServiceError(dataReturn); + } + }; + + /* 上一条、下一条、首条、末条 */ + handleSearchData = async (handleType) => { + const { + sModelsId, app, currentIndexFlag, currentPageNo, + } = this.props; + + // 电化铝烫金资料 特殊处理 + if (sModelsId === '12710101116943091653680') { + this.handleSearchData1(handleType); + return; + } + + const { currentPane, token } = app; + const { + pages, sFilterOrderBy, bFilter, sListFormmasterId, currentIndex, + } = currentPane; + let currentPosition = currentIndexFlag ? currentPageNo : commonUtils.isEmptyObject(pages) ? 1 : (((pages.current - 1) * commonConfig.pageSize) + Number.parseInt(currentIndex, 10)) + 1; + if (currentIndex === undefined) { + currentPosition = 1; + } + if (handleType === 'first') { + currentPosition = 1; + } else if (handleType === 'end') { + currentPosition = pages.total; + } + if (!commonUtils.isNum(currentPosition)) { // 如果是列表直接点增加,就跳到第一条去 + currentPosition = 1; + } + + const value = { + sClientType: '1', sFilterOrderBy, bFilter, sListFormmasterId, currentPosition, handleType, iCountSum: pages.total, + }; + const url = `${commonConfig.server_host}business/getBusinessDataByIndex?sModelsId=${sModelsId}`; + /* 接收返回值 */ + const { data } = await commonServices.postValueService(token, value, url); + /* 接收返回值 */ + /* 成功的话刷新页面(同步主表和从表数据),不成功就弹出错误提示 */ + if (data.code === 1) { + /* 数据查询成功 */ + const returnData = data.dataset.rows[0]; + const { masterConfig, slaveConfig, checkConfig } = this.props; + this.props.onSaveState({ + currentIndexFlag: true, + currentPageNo: returnData.currentPosition, + currentId: returnData.sId, + searchUpDownData: {}, + slaveSelectedRowKeys: [], + }); + this.handleGetData(masterConfig, slaveConfig, checkConfig); + return true; + } else { /* 失败 */ + this.props.getServiceError(data); + return false; + } + }; + + // 电化铝烫金资料 特殊处理 上一条、下一条、首条、末条 + handleSearchData1 = async (handleType) => { + const { app, masterData } = this.props; + const { currentPane = {} } = app; + const { sListFormmasterId } = currentPane; + const { sProductNo, sId } = masterData; + + if (commonUtils.isEmpty(sProductNo)) { + message.error("sProductNo不能为空!"); + return; + } + + const result = await this.props.handleGetDataSet({ + name: 'temp', + configData: { + sId: '12710101117126334972631' // 电化铝烫金资料明细 + }, + condition: { + bFilter: [{ + bFilterCondition: "=", + bFilterName: "sProductNo", + bFilterValue: sProductNo, + }] + }, + isWait: true + }) || {}; + + const { tempData = [] } = result; + const dataSize = tempData.length; + const iIndex = tempData.findIndex(item => item.sId === sId); + + if (commonUtils.isEmptyArr(tempData)) { + message.error('数据查询失败!'); + return; + } + + let newId = ''; + + if (handleType === 'first') { + if (iIndex === 0) { + message.info('当前已是第一条数据!'); + return; + } + newId = tempData[0].sId; + } else if (handleType === 'end') { + if (iIndex === dataSize - 1) { + message.info('当前已是最后一条数据!'); + return; + } + newId = tempData[dataSize - 1].sId; + } else if (handleType === 'next') { + if (iIndex === dataSize - 1) { + message.info('当前已是最后一条数据!'); + return; + } + newId = tempData[iIndex + 1].sId; + } else if (handleType === 'up') { + if (iIndex === 0) { + message.info('当前已是第一条数据!'); + return; + } + newId = tempData[iIndex - 1].sId; + } + + const { masterConfig, slaveConfig, checkConfig } = this.props; + this.props.onSaveState({ + currentId: newId, + searchUpDownData: {}, + slaveSelectedRowKeys: [], + }); + this.handleGetData(masterConfig, slaveConfig, checkConfig); + }; + + /* 取消操作 */ + handleCancel = (obj) => { + /* 待用数据声明 */ + const that = this; + const { + currentId, masterConfig, slaveConfig, checkConfig, app, masterData, + } = this.props; + const { userinfo } = app; + const onSendSocketMessage = this.props.handleSendSocketMessage; + const onGetDataOk = this.handleGetData; + const onSaveStateOk = this.props.onSaveState; + const { copyTo } = app.currentPane; + confirm({ + title: obj.title, + onOk() { + // 解决新建页签sid为空的bug + if (!currentId) { + const { panes, currentPane } = that.props.app; + const currentPaneIndex = panes.findIndex(item => item.key === currentPane.key); + const newPanes = []; + if (currentPaneIndex > 0) { + panes.forEach((item, index) => { + if (index !== currentPaneIndex) { + newPanes.push(item); + } + }); + that.props.dispatch({ type: 'app/removePane', payload: { changePanes: newPanes, currentPane: panes[currentPaneIndex - 1] } });/* 关闭当前页签 */ + } + /* 复制到新增页签取消时 关闭页签 并清除操作记录 */ + if (commonUtils.isNotEmptyObject(copyTo)) { + const { slaveData, srcFormRoute, copyOtherData } = copyTo; + if (commonUtils.isNotEmptyObject(srcFormRoute) && srcFormRoute.includes('materialRequirementsPlanning')) { /* 物料需求计划用sWorkOrderMaterialId作为唯一键 */ + const sIdArray = []; + if (commonUtils.isNotEmptyArr(copyOtherData) && copyOtherData[0].name === 'detail' && commonUtils.isNotEmptyArr(copyOtherData[0].data)) { + const slaveDetailData = copyOtherData[0].data; + slaveDetailData.forEach((item) => { + const redisKey = item.sWorkOrderMaterialId; + sIdArray.push(redisKey); + }); + } else { /* 变更单、采购申请单 */ + slaveData.forEach((item) => { + const redisKey = item.sWorkOrderMaterialId; + sIdArray.push(redisKey); + }); + } + + const sId = sIdArray.toString(); + onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null); + } else if (commonUtils.isNotEmptyArr(slaveData)) { + const sIdArray = []; + slaveData.forEach((item) => { + const redisKey = item.sSlaveId; + sIdArray.push(redisKey); + }); + /* 处理只有单主表解锁问题 */ + if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sSrcSlaveId)) { + sIdArray.push(masterData.sSrcSlaveId); + } + const sId = sIdArray.toString(); + onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null); + } else if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyObject(masterData.sSrcSlaveId)) { + const sIdArray = []; + /* 处理只有单主表解锁问题 */ + sIdArray.push(masterData.sSrcSlaveId); + const sId = sIdArray.toString(); + onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null); + } + } + + return; + } + // + onGetDataOk(masterConfig, slaveConfig, checkConfig); + onSaveStateOk({ enabled: false }); + if (commonUtils.isNotEmptyObject(copyTo)) { + const { slaveData } = copyTo; + const sIdArray = []; + slaveData.forEach((item) => { + const redisKey = item.sSlaveId; + sIdArray.push(redisKey); + }); + const sId = sIdArray.toString(); + onSendSocketMessage('copyfinish', 'noAction', sId, userinfo.sId, null, null); + } + onSendSocketMessage('release', 'noAction', currentId, userinfo.sId, null, null); + }, + onCancel() { + }, + }); + }; + + /* 删除 */ + handleDel = (obj) => { + const props = { ...this.props, ...this.state }; + const onOkDel = this.handleOkDel; + confirm({ + title: obj.title, + onOk() { + onOkDel(props); + }, + onCancel() { + }, + }); + }; + + /* 确定要删除 */ + handleOkDel = async (props) => { + /* 数据参数 */ + const { + token, sModelsId, sModelsType, masterConfig, masterData, slaveConfig, checkConfig, orderDetailConfig, app, + } = props; + const { userinfo, systemData } = app; + const { sMakePerson } = masterData; /* 本单据制单人 */ + const { sUserName, sType } = userinfo;/* 登录用户 */ + const iIndex = systemData.findIndex(item => item.sName === 'CkxModifyBillNoMakePerson'); + if (iIndex > -1) { + const sValue = systemData[iIndex].sValue; + if (sValue === '0') { /* 系统未启用非制单人修改单据,普通用户非制单人不可以修改制单人的单据 */ + if (sType !== 'sysadmin' && sUserName !== sMakePerson) { + message.error(commonFunc.showMessage(app.commonConst, 'NoDelByNoMakePerson')); + return; + } + } + } + const value = { + sClientType: '1', + data: { + sMasterTable: masterConfig.sTbName, + sId: [masterData.sId], + }, + }; + const sSlaveTable = []; + if (commonUtils.isNotEmptyObject(slaveConfig)) { + sSlaveTable.push({ + tableName: slaveConfig.sTbName, + relationName: 'sParentId', + }); + } + if (commonUtils.isNotEmptyObject(checkConfig)) { + sSlaveTable.push({ + tableName: checkConfig.sTbName, + relationName: 'sParentId', + }); + } + if (sModelsType === 'purchase/purchaseOrder') { + sSlaveTable.push({ + tableName: orderDetailConfig.sTbName, + relationName: 'sParentId', + }); + } + value.sSlaveTable = sSlaveTable; + const { sBillNo, sId } = masterData || {}; + const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`; + /* 接收返回值 */ + const { data } = await commonServices.postValueService(token, value, url); + if (data.code === 1) { + /* 数据删除成功 */ + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + if (sModelsType !== 'commonOeeBill') { + this.handleDelDataSuccess(props); + } else { + message.info('删除成功!'); + } + } else { /* 失败 */ + this.props.getServiceError(data); + } + }; + + /* 数据删除成功跳转到新路由即pane */ + handleDelDataSuccess = (props) => { + const { app } = props; + let { panes, currentPane } = app; + /* 删除单据后退出当前路由后,标签panes变化后的集合 */ + panes = panes.filter(pane => pane.key !== currentPane.key); + /* 跳转到panes集合的最后一个路由,因为panes集合一定含有主页路由所以panes的集合大于等于1 */ + currentPane = panes[panes.length - 1]; + this.props.onRemovePane(panes, currentPane); + }; + + /** 添加表格空行 */ + handleTableAdd = (name, isWait) => { + /* 从CommonBase获取默认参数 */ + const { + masterData, masterConfig, sModelsType, app, [`${name}Pagination`]: tablePagination, + } = this.props; + let { [`${name}Data`]: tableData } = this.props; + tableData = commonUtils.isEmptyObject(tableData) ? [] : tableData; + const tableDataRow = this.props.onDataRowAdd(name, true); + /* 添加行的业务处理拿出去 */ + if (sModelsType.includes('sales/')) { + if (commonUtils.isEmptyStr(masterData.sCustomerId)) { + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => ((item.sName === 'sCustomerId' || item.sName === 'sCustomerNo' || item.sName === 'sCustomerName') && item.bVisible)); + if (iIndex > -1) { + const { showName } = masterConfig.gdsconfigformslave[iIndex]; + message.warn(showName + commonFunc.showMessage(app.commonConst, 'isNotNull')); // 不能为空 + return; + } + } + } + tableDataRow.sWareHouseId = masterData.sWareHouseId; + tableDataRow.sWareHouseNo = masterData.sWareHouseNo; + tableDataRow.sWareHouseName = masterData.sWareHouseName; + tableDataRow.sLocationId = masterData.sLocationId; + tableDataRow.sLocationNo = masterData.sLocationNo; + tableDataRow.sLocationName = masterData.sLocationName; + tableDataRow.sWareHouseLocationId = masterData.sWareHouseLocationId; + tableDataRow.sWareHouseLocationNo = masterData.sWareHouseLocationNo; + tableDataRow.sWareHouseLocationName = masterData.sWareHouseLocationName; + if (isWait) { + return tableDataRow; + } else if (commonUtils.isNotEmptyObject(tableDataRow)) { + tableData.push(tableDataRow); + this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }); + } + }; + + handleTableAddChild = (name, flag, bchild) => { + /* 从CommonBase获取默认参数 */ + const { + masterData, masterConfig, sModelsType, app, [`${name}Pagination`]: tablePagination, slaveSelectedRowKeys,[`${name}SelectedRowKeys`]: tableSelectedRowKeys, + } = this.props; + let { [`${name}Data`]: tableData } = this.props; + tableData = commonUtils.isEmptyObject(tableData) ? [] : tableData; + if(name === 'slave' && bchild === 'childNode') { + const tableDataRow = this.props.onDataRowAdd(name, true); + if(commonUtils.isEmptyArr(tableSelectedRowKeys)) { + message.error('请选择数据!'); + return ; + } + const iSlaveIndex = tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]); + if (iSlaveIndex > -1) { + const slaveRow = tableData[iSlaveIndex]; + if(commonUtils.isNotEmptyObject(slaveRow)) { + if(commonUtils.isEmptyObject(slaveRow.sNodeId)) { + message.warn("数据生成错误,请删除父级后重新添加"); // 获取父节点的sAllId + return; + } + tableDataRow.sFatherSlaveId = slaveRow.sNodeId; + if (commonUtils.isNotEmptyObject(tableDataRow)) { + tableData.push(tableDataRow); + this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, [`${name}SelectedRowKeys`]: [tableDataRow.sId] }); + } + } + } + + } + + }; + + /** 复制 */ + handleTableCopy = (name, isWait, isTree) => { + const { + [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, [`${name}Pagination`]: tablePagination, sModelsType, + } = this.props; + if (commonUtils.isEmptyArr(tableSelectedRowKeys)) { + message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */ + } else { + if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */ + const { + [`${name}SelectedRowKeys`]: treeSelectedKeys, + } = this.props; + const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]); + if (commonUtils.isNotEmptyArr(tableData)) { + controlChildData.forEach((itemNew) => { + tableSelectedRowKeys.push(itemNew.sId); + }); + } + } + const treeCopyNodes = new Map(); + for (const sId of tableSelectedRowKeys) { + const tableDataIndex = tableData.findIndex(item => item.sId === sId); + if (tableDataIndex > -1) { + const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex])); + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.key = tableDataRow.sId; + tableDataRow.sSrcSlaveId = ''; + tableDataRow.sSrcId = ''; + tableDataRow.dSrcQty = null; + tableDataRow.rowTag = null; + tableDataRow.sOrderdetailUsed = ''; + tableDataRow.sProductionUsed = ''; + tableDataRow.sWorkOrderUsed = ''; + tableDataRow.dWorkOrderQty = 0; + + delete tableDataRow.sMakePerson; + delete tableDataRow.tMakeDate; + delete tableDataRow.sUpdatePerson; + delete tableDataRow.tUpdate; + + const iOrderArr = []; + tableData.forEach((item) => { + const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */ + iOrderArr.push(iOrder); + }); + const iOrderMax = Math.max(...iOrderArr); + tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0; + + if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) { + tableDataRow.sMaterialsMemo = ''; + } + if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) { + tableDataRow.sProcessMemo = ''; + } + if (name === 'materials') { + tableDataRow.bPurchaseApplyComplete = 0; + tableDataRow.dPurchaseApplyAuxiliaryQty = 0; + tableDataRow.dPurchaseApplyQty = 0; + tableDataRow.bPurchaseComplete = 0; + tableDataRow.dPurchaseAuxiliaryQty = 0; + tableDataRow.dPurchaseQty = 0; + tableDataRow.dProductionAuxiliaryQty = 0; + tableDataRow.dProductionQty = 0; + tableDataRow.bProductionComplete = 0; + + tableDataRow.dProductionApplyAuxiliaryQty = 0; + tableDataRow.dProductionApplyQty = 0; + tableDataRow.bProductionApplyComplete = 0; + + tableDataRow.bComComplete = 0; + tableDataRow.dComAuxiliaryQty = 0; + tableDataRow.dComQty = 0; + } + if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */ + const sAllOldId = tableData[tableDataIndex].sAllId; + const arr = sAllOldId.split(','); + const newId = commonUtils.createSid(); + tableDataRow.sId = newId; + let sOldParentId = ''; + let sNewParentAllId = ''; + if (arr.length < 2) { /* 根节点复制 */ + tableDataRow.sAllId = newId; + sOldParentId = newId; + sNewParentAllId = newId; + } else { + sOldParentId = arr[arr.length - 2]; + if (treeCopyNodes.has(sOldParentId)) { + sNewParentAllId = treeCopyNodes.get(sOldParentId); + } else { + const obj = arr[arr.length - 1]; + sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + } + const sNewArr = sNewParentAllId.split(','); + tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1]; + sNewParentAllId = `${sNewParentAllId},${newId}`; + tableDataRow.sAllId = sNewParentAllId; + } + treeCopyNodes.set(sId, sNewParentAllId); + } + if (isWait) { + return tableDataRow; + } else if (commonUtils.isNotEmptyObject(tableDataRow)) { + tableData.push(tableDataRow); + this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }}); + } + } + } + } + }; + + + /** 复制全部 */ + handleTableCopyAll = (name, isWait, isTree) => { + const { + slaveData, controlData, slaveSelectedRowKeys, materialsData, [`${name}Pagination`]: tablePagination, sModelsType, + } = this.props; + let { processData } = this.props; + if (name === 'slave') { + if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) { + message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */ + } else { + for (const sId of slaveSelectedRowKeys) { + const slaveDataIndex = slaveData.findIndex(item => item.sId === sId); + if (slaveDataIndex > -1) { + const slaveDataRow = JSON.parse(JSON.stringify(slaveData[slaveDataIndex])); + slaveDataRow.sId = commonUtils.createSid(); + slaveDataRow.handleType = 'add'; + slaveDataRow.key = slaveDataRow.sId; + const iOrderArr = []; + slaveData.forEach((item) => { + const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */ + iOrderArr.push(iOrder); + }); + const iOrderMax = Math.max(...iOrderArr); + slaveDataRow.iOrder = commonUtils.isNotEmptyArr(slaveData) ? iOrderMax + 1 : 0; + slaveData.push(slaveDataRow); + if (sModelsType !== 'sales/salesOrderPack') { + if (commonUtils.isNotEmptyArr(controlData)) { + controlData.filter(itemControl => itemControl.sSlaveId === sId).forEach((itemControl) => { + const tableDataRow = JSON.parse(JSON.stringify(itemControl)); + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.key = tableDataRow.sId; + tableDataRow.sSlaveId = slaveDataRow.sId; + controlData.push(tableDataRow); + /* 部件表复制其材料表、工序表 */ + materialsData.filter(item => item.sControlId === itemControl.sId && item.sType !== '2').forEach((item) => { + const materialsRow = JSON.parse(JSON.stringify(item)); + materialsRow.sId = commonUtils.createSid(); + materialsRow.handleType = 'add'; + materialsRow.sControlId = tableDataRow.sId; + materialsRow.sPartsName = tableDataRow.sPartsName; + materialsRow.sSlaveId = tableDataRow.sSlaveId; + materialsData.push(materialsRow); + }); + processData.filter(item => item.sControlId === itemControl.sId && item.sType !== '3').forEach((item) => { + const processRow = JSON.parse(JSON.stringify(item)); + processRow.sId = commonUtils.createSid(); + processRow.handleType = 'add'; + processRow.sControlId = tableDataRow.sId; + processRow.sPartsName = tableDataRow.sPartsName; + processRow.sSlaveId = tableDataRow.sSlaveId; + processData.push(processRow); + }); + processData = this.sortData(controlData, processData); + }); + } + if (commonUtils.isNotEmptyArr(materialsData)) { /* 订单从表复制全部 复制成品材料 */ + materialsData.filter(item => item.sSlaveId === sId && item.sType === '2').forEach((materialsItem) => { + const materialsRow = JSON.parse(JSON.stringify(materialsItem)); + materialsRow.handleType = 'add'; + materialsRow.sId = commonUtils.createSid(); + materialsRow.sSlaveId = slaveDataRow.sId; + materialsData.push(materialsRow); + }); + } + + if (commonUtils.isNotEmptyArr(processData)) { /* 订单从表复制全部 复制成品工序 */ + processData.filter(item => item.sSlaveId === sId && item.sType === '3').forEach((processItem) => { + const processRow = JSON.parse(JSON.stringify(processItem)); + processRow.handleType = 'add'; + processRow.sId = commonUtils.createSid(); + processRow.sSlaveId = slaveDataRow.sId; + processData.push(processRow); + }); + } + } + } + this.props.onSaveState({ + slaveData, + [`${name}Pagination`]: { ...tablePagination, total: slaveData.length, current: 9999 }, + controlData, + materialsData, + processData, + }); + } + } + } else if (name === 'control') { + const { + [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys, + } = this.props; + if (commonUtils.isEmptyArr(tableSelectedRowKeys)) { + message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */ + } else { + /* 获取复制节点下的所有子节点 */ + if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */ + const { + [`${name}SelectedRowKeys`]: treeSelectedKeys, + } = this.props; + const controlChildData = tableData.filter(item => item.sAllId.indexOf(treeSelectedKeys[0]) > -1 && item.sId !== treeSelectedKeys[0]); + if (commonUtils.isNotEmptyArr(tableData)) { + controlChildData.forEach((itemNew) => { + tableSelectedRowKeys.push(itemNew.sId); + }); + } + } + const treeCopyNodes = new Map(); + for (const sId of tableSelectedRowKeys) { + const tableDataIndex = tableData.findIndex(item => item.sId === sId); + if (tableDataIndex > -1) { + const tableDataRow = JSON.parse(JSON.stringify(tableData[tableDataIndex])); + tableDataRow.sId = commonUtils.createSid(); + tableDataRow.handleType = 'add'; + tableDataRow.key = tableDataRow.sId; + const iOrderArr = []; + tableData.forEach((item) => { + const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */ + iOrderArr.push(iOrder); + }); + const iOrderMax = Math.max(...iOrderArr); + tableDataRow.iOrder = commonUtils.isNotEmptyArr(tableData) ? iOrderMax + 1 : 0; + if (sModelsType === 'sales/salesOrderPack' && isTree) { /* 树形 */ + const sAllOldId = tableData[tableDataIndex].sAllId; + const arr = sAllOldId.split(','); + const newId = commonUtils.createSid(); + tableDataRow.sId = newId; + let sOldParentId = ''; + let sNewParentAllId = ''; + if (arr.length < 2) { /* 根节点复制 */ + tableDataRow.sAllId = newId; + sOldParentId = newId; + sNewParentAllId = newId; + } else { + sOldParentId = arr[arr.length - 2]; + if (treeCopyNodes.has(sOldParentId)) { + sNewParentAllId = treeCopyNodes.get(sOldParentId); + } else { + const obj = arr[arr.length - 1]; + sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + } + const sNewArr = sNewParentAllId.split(','); + tableDataRow.sControlParentId = sNewArr[sNewArr.length - 1]; + sNewParentAllId = `${sNewParentAllId},${newId}`; + tableDataRow.sAllId = sNewParentAllId; + } + treeCopyNodes.set(sId, sNewParentAllId); + } + if (isWait) { + return tableDataRow; + } else if (commonUtils.isNotEmptyObject(tableDataRow)) { + tableData.push(tableDataRow); + /* 部件表复制其材料表、工序表 */ + materialsData.filter(item => item.sControlId === sId && item.sType !== '2').forEach((item) => { + const materialsRow = JSON.parse(JSON.stringify(item)); + materialsRow.sId = commonUtils.createSid(); + materialsRow.handleType = 'add'; + materialsRow.sControlId = tableDataRow.sId; + materialsRow.sPartsName = tableDataRow.sPartsName; + materialsData.push(materialsRow); + }); + processData.filter(item => item.sControlId === sId && item.sType !== '3').forEach((item) => { + const processRow = JSON.parse(JSON.stringify(item)); + processRow.sId = commonUtils.createSid(); + processRow.handleType = 'add'; + processRow.sControlId = tableDataRow.sId; + processRow.sPartsName = tableDataRow.sPartsName; + processData.push(processRow); + }); + processData = this.sortData(tableData, processData); + this.props.onSaveState({ + [`${name}Data`]: tableData, + [`${name}Pagination`]: { ...tablePagination, total: tableData.length, current: 9999 }, + materialsData, + processData + }); + } + } + } + } + } + }; + + + handleChildTableDel = (name, tableSelectedRowKeys, slaveData, sKey) => { + const tableData = this.props[`${name}Data`]; + let tableDelData = this.props[`${name}DelData`]; + tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData; + if (commonUtils.isNotEmptyArr(tableData)) { + for (const sId of tableSelectedRowKeys) { + /* 看看删除集合和从表中是否都存在该条数据 */ + let tableDataIndex = tableData.findIndex(item => item[sKey]=== sId); + while (tableDataIndex > -1) { + /* 删除从表中的数据并存入删除集合中 */ + const slaveDataFilter = tableData[tableDataIndex]; + tableData.splice(tableDataIndex, 1); + slaveDataFilter.handleType = 'del'; + tableDelData.push(slaveDataFilter); + tableDataIndex = tableData.findIndex(item => item[sKey] === sId); + } + } + return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] }; + } else { + return {}; + } + }; + + + singlePQtyChange = (tableDataRow) => { + const bZfZf = tableDataRow.iPrintMode === 2; // 正反版 + const bSample = tableDataRow.dSumPQty >= 4; // 样本 + tableDataRow.iPrintModePo = tableDataRow.iPrintMode <= 2 ? 2 : tableDataRow.iPrintMode === 3 ? 0 : -1; + + if (bSample) { + if (tableDataRow.dSinglePQty > 0) { + tableDataRow.dPlateQty = Math.ceil(tableDataRow.dSumPQty / tableDataRow.dSinglePQty); + } + + if (bZfZf && (tableDataRow.iPrintModePo === 2)) { // 双面样本,正反 + if (tableDataRow.dPlateQty < 2) { // 不管建议放正自翻版了,点方式什么是什么 + tableDataRow.dPlateQty = 2; + tableDataRow.iStick = Math.ceil(commonUtils.isNull(tableDataRow.dPlateQty, 0) / 2); + tableDataRow.dSumPlateQty = tableDataRow.iStick * ( + commonUtils.isNull(tableDataRow.iPositiveColor, 0) + + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); + } else { + if (tableDataRow.iPrintModePo !== 2) { // 单面样本 + tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty; + tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty); + tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0)); + } else { + tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1); + tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty / 2); + } + tableDataRow.dSumPlateQty = tableDataRow.iStick * ( + commonUtils.isNull(tableDataRow.iPositiveColor, 0) + + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); + } + } else { + if (tableDataRow.iPrintModePo !== 2) { // 单面样本 + tableDataRow.dPlateQty = (commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty; + } else { + tableDataRow.dPlateQty = commonUtils.isNull(tableDataRow.dSumPQty, 0) / commonUtils.isNull(commonUtils.nullIf(tableDataRow.dSinglePQty, 0), 1); + } + tableDataRow.iStick = Math.ceil(tableDataRow.dPlateQty); + tableDataRow.dSumPlateQty = tableDataRow.iStick * ( + commonUtils.isNull(tableDataRow.iPositiveColor, 0) + + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0)); + } + if (tableDataRow.iStick > 0 && tableDataRow.dSinglePQty > 0) { + tableDataRow.dMachineQty = commonUtils.convertFixNum((commonUtils.isNull(tableDataRow.dPartsQty, 0) * commonUtils.isNull(tableDataRow.dSumPQty, 0) * 0.5) / tableDataRow.dSinglePQty / tableDataRow.iStick, 0); + tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick; + } + } else { + tableDataRow.iStick = 1; + tableDataRow.dSumPlateQty = tableDataRow.iStick * ( + commonUtils.isNull(tableDataRow.iPositiveColor, 0) + + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); + if (bZfZf && tableDataRow.iPrintModePo === 2) { + tableDataRow.dPlateQty = 2; + tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0) + commonUtils.isNull(tableDataRow.iOppositeColor, 0) + + commonUtils.isNull(tableDataRow.iOppositeSpecialColor, 0)); + } else { + tableDataRow.dPlateQty = 1; + tableDataRow.dSumPlateQty = tableDataRow.iStick * (commonUtils.isNull(tableDataRow.iPositiveColor, 0) + + commonUtils.isNull(tableDataRow.iPositiveSpecialColor, 0)); + } + + if (tableDataRow.dSinglePQty > 0) { + if (tableDataRow.iPage > 1) { // 笔记本 用 非样本 来做, 倍率是每页都一样才可以用 原先 /2 是指页数, 现在直接按张数 + tableDataRow.dMachineQty = commonUtils.convertFixNum((tableDataRow.dPartsQty * tableDataRow.iPage) / tableDataRow.dSinglePQty, 0); + } else { + tableDataRow.dMachineQty = commonUtils.convertFixNum(commonUtils.isNull(tableDataRow.dPartsQty, 0) / tableDataRow.dSinglePQty, 0); + tableDataRow.dSumMachineQty = tableDataRow.dMachineQty * tableDataRow.iStick; + } + } + } + return tableDataRow; + }; + + /** 表格数据更改 */ + // name 不写完整的state名称作用为了要用到total // (name, changeValue, sId, dropDownData) + handleTableChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait) => { + /* 从CommonBase获取默认参数 */ + const { + [`${name}Data`]: tableData, sModelsType, sModelsId, token, app, slaveConfig, + } = this.props; + let { [`${name}InfoData`]: tableInfoData } = this.props; + if (name === 'control' && sModelsType.includes('sales/salesOrder')) { + const { [`${name}Data`]: tableData, materialsData: materialsDataOld, processData: processDataOld } = this.props; + let tableDataRow = await this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); + if (tableDataRow === undefined) return; + if (sFieldName === 'dSinglePQty' || sFieldName === 'dSumPQty' || sFieldName === 'iPrintModePo' || sFieldName === 'iPrintMode' || sFieldName === 'iPrintModePo' || sFieldName === 'iPositiveColor' || + sFieldName === 'iPositiveSpecialColor' || sFieldName === 'iOppositeColor' || sFieldName === 'iOppositeSpecialColor') { + if (sFieldName === 'iPrintModePo') { + if (tableDataRow.iPrintModePo === 0) { + tableDataRow.iPrintMode = 3; + if (tableDataRow.iPositiveColor === 0) { + tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; + tableDataRow.iOppositeColor = 0; + tableDataRow.iOppositeSpecialColor = 0; + } else { + tableDataRow.iOppositeColor = 0; + tableDataRow.iOppositeSpecialColor = 0; + } + } else if (tableDataRow.iPrintModePo === 1) { + tableDataRow.iPrintMode = 3; + if (tableDataRow.iPositiveColor === 0) { + tableDataRow.iPositiveColor = 0; + tableDataRow.iPositiveSpecialColor = 0; + tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? 4 : tableDataRow.iOppositeColor; + } else { + tableDataRow.iPositiveColor = 0; + tableDataRow.iPositiveSpecialColor = 0; + } + } else { + tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; + tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor; + } + } else if (sFieldName === 'iPrintMode') { + if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) { + tableDataRow.iPositiveColor = commonUtils.isEmpty(tableDataRow.iPositiveColor) || tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; + tableDataRow.iOppositeColor = tableDataRow.iPositiveColor; + tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor; + } else if (tableDataRow.iPrintMode === 2) { + tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; + tableDataRow.iOppositeColor = tableDataRow.iOppositeColor === 0 ? tableDataRow.iPositiveColor : tableDataRow.iOppositeColor; + } else if (tableDataRow.iPrintMode === 3) { + tableDataRow.iPositiveColor = tableDataRow.iPositiveColor === 0 ? 4 : tableDataRow.iPositiveColor; + tableDataRow.iOppositeColor = 0; + tableDataRow.iOppositeSpecialColor = 0; + } else if (tableDataRow.iPrintMode === 4) { + tableDataRow.iPositiveColor = 0; + tableDataRow.iPositiveSpecialColor = 0; + tableDataRow.iOppositeColor = 0; + tableDataRow.iOppositeSpecialColor = 0; + } + } else if (sFieldName === 'iPositiveColor' || sFieldName === 'iPositiveSpecialColor') { + if (tableDataRow.iPrintMode === 0 || tableDataRow.iPrintMode === 1) { + tableDataRow.iOppositeColor = tableDataRow.iPositiveColor; + tableDataRow.iOppositeSpecialColor = tableDataRow.iPositiveSpecialColor; + } + } + tableDataRow = this.singlePQtyChange(tableDataRow); + } + const materialsData = []; + const processData = []; + materialsDataOld.forEach((item) => { + const itemNew = { ...item }; + if (itemNew.sControlId === sId) { + itemNew.sPartsName = tableDataRow.sPartsName; + } + materialsData.push(itemNew); + }); + processDataOld.forEach((item) => { + const itemNew = { ...item }; + if (itemNew.sControlId === sId) { + itemNew.sPartsName = tableDataRow.sPartsName; + } + processData.push(itemNew); + }); + const materialsDataNew = this.sortData(tableData, materialsData); + const processDataNew = this.sortData(tableData, processData); + if (sModelsType === 'sales/salesOrderPack') { + if (sFieldName === 'sPartsName') { /* 部件名称与子部件同步 */ + const { sPartsName } = tableDataRow; + const { treeSelectedKeys, treeData } = this.props; + if (commonUtils.isNotEmptyArr(treeSelectedKeys)) { + this.handleSearchNodes(treeSelectedKeys[0], treeData, sPartsName); + } + } else if (sFieldName === 'dMachineQty') { /* 上机数量改变时,子级部件数量同步改变 */ + const { dMachineQty } = tableDataRow; + /* 查找该节的所有子节点,将上机数量改为部件数量 */ + tableData.forEach((item, index) => { + if (commonUtils.isNotEmptyObject(item.sAllId) && item.sAllId.indexOf(tableDataRow.sId) > -1 && item.sId !== tableDataRow.sId) { + const addstate = {}; + addstate.dPartsQty = dMachineQty; + tableData[index] = { ...tableData[index], ...addstate }; + } + }); + } + } + const iIndex = tableData.findIndex(item => item.sId === sId); + tableData[iIndex] = tableDataRow; + this.props.onSaveState({ + [`${name}Data`]: tableData, materialsData: materialsDataNew, processData: processDataNew, + }); + } else { + let { masterData } = this.props; + const sTableType = commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyObject(slaveConfig.sTableType) ? slaveConfig.sTableType : 'zero'; + const iIndex = tableData.findIndex(item => item.sId === sId); + // if (sFieldName.substring(0, 1) === 'd' && commonUtils.convertToNum(tableData[iIndex][sFieldName]) === commonUtils.convertToNum(changeValue[sFieldName])) { + // if (!(tableData[iIndex][sFieldName] === undefined && commonUtils.convertToNum(changeValue[sFieldName]) === 0)) return; + // } + if (sFieldName === 'sProductName' && name === 'slave' && (sModelsType.includes('sales/salesOrder') || sModelsType.includes('manufacture/workOrder') || sModelsType.includes('quotation/quotation'))) { + if (commonUtils.isNotEmptyObject(changeValue) && Object.keys(changeValue).length === 1 && Object.keys(changeValue)[0] === sFieldName) { + changeValue.sProductId = changeValue.sProductName; + } + } + let tableDataRow = this.props.onDataChange(name, sFieldName, changeValue, sId, dropDownData, true); + /* 添加备货数自动计算 */ + if ((sFieldName === 'dProductQty' || sFieldName === 'dGiveQty') && name === 'slave' && (sModelsType.includes('sales/salesOrderPack') || sModelsType.includes('sales/salesOrder'))) { + if (commonUtils.isNotEmptyObject(changeValue) && Object.keys(changeValue).length === 1 && Object.keys(changeValue)[0] === sFieldName) { + const dProductQty = commonUtils.isEmptyNumber(tableDataRow.dProductQty) ? 0 : tableDataRow.dProductQty; + const dGiveQty = commonUtils.isEmptyNumber(tableDataRow.dGiveQty) ? 0 : tableDataRow.dGiveQty; + const dStockupRate = commonUtils.isEmptyNumber(masterData.dStockupRate) ? 0 : masterData.dStockupRate; + if (dStockupRate !== 0) { /* 备货率不为0时,按照备货率计算,否则按照手填的算 */ + tableDataRow.dStockupQty = Math.round((dProductQty + dGiveQty) * dStockupRate); + } + } + } + if ((sFieldName === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductStyle' || sFieldName === 'sProductUnit' || sFieldName === 'sProductNo' + || sFieldName === 'sCustomerProductNo' || sFieldName === 'sProductClassifyId' || sFieldName === 'sProductClassifyName') && !commonUtils.isEmpty(tableDataRow.sProductId)) { + let productIdDropDown = []; + if (sFieldName === 'sProductStyle') { + const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName'); + if (iIndex > -1) { + if (this.inputSearch) { + clearTimeout(this.inputSearch); + } + this.inputSearch = setTimeout(async () => { + const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[iIndex], tableDataRow, tableDataRow.sProductName, 1); + productIdDropDown = sqlDropDownData.dropDownData; + }, 500); + } + } else { + productIdDropDown = dropDownData; + } + const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => (item.sId === tableDataRow.sProductId || item.sNId === tableDataRow.sProductId) && item.sProductStyle === tableDataRow.sProductStyle); + const bProductInfo = location.pathname && location.pathname.includes('workOrderPackTableTree'); + if (iProductIdIndex === -1 && bProductInfo) { + tableDataRow.sProductInfo = JSON.stringify({ + sProductId: tableDataRow.sProductName, + sProductName: tableDataRow.sProductName, + sProductStyle: tableDataRow.sProductStyle, + sProductUnit: tableDataRow.sProductUnit, + sProductNo: tableDataRow.sProductNo, + sCustomerProductNo: tableDataRow.sCustomerProductNo, + sProductClassifyId: tableDataRow.sProductClassifyId, + sProductClassifyName: tableDataRow.sProductClassifyName, + }); + } else { + tableDataRow.sProductInfo = ''; + } + tableDataRow.sMaterialsStyle = tableDataRow.sProductStyle; + if ((sFieldName === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductNo') && !commonUtils.isEmpty(changeValue.sProductId) && tableDataRow.sProductId !== tableDataRow.sProductName && sModelsType && sModelsType.includes('sales/salesOrder')) { + const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const { sCustomerId } = masterData; /* 增加客户id参数 */ + const value = { + sProName: 'Sp_Cashier_GetProductPrice', + paramsMap: { + sProductGuid: changeValue.sProductId, + sCustomerId, + }, + }; + const returnData = (await commonServices.postValueService(app.token, value, url)).data; + if (returnData.code === 1) { + tableDataRow.dNProductPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice; /* 产品单价 */ + const dProofingMoney = commonUtils.convertToNum(tableDataRow.dProofingMoney); /* 打样金额 */ + const dPlateMoney = commonUtils.convertToNum(tableDataRow.dPlateMoney); /* 制版金额 */ + const dKnifeMouldMoney = commonUtils.convertToNum(tableDataRow.dKnifeMouldMoney); /* 刀模金额 */ + const dProductQty = commonUtils.convertToNum(tableDataRow.dProductQty); /* 数量 */ + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + const { dNetPrice } = app.decimals; + if (dProductQty === 0 || (dProofingMoney === 0 && dPlateMoney === 0 && dKnifeMouldMoney === 0)) { + const dProductForeignPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice; + tableDataRow.dProductForeignPrice = dProductForeignPrice; + tableDataRow.dProductPrice = commonUtils.convertFixNum(dProductForeignPrice * dCurrencyRate, dNetPrice); + } + } + + const models = name === 'materials' ? 'Materials' : + sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) { + tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, 'dProductQty', app, token, models); + } + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dProductQty', masterData, tableDataRow); + // else { + // this.props.getServiceError(returnData); + // } + } + } else if (sModelsType.includes('sales/salesOrder') && (sFieldName === 'sProductClassifyId' || sFieldName === 'sProductClassifyName') && name === 'slave') { + const { controlData } = this.props; + if (controlData !== undefined && !commonUtils.isEmpty(tableData.sProductInfo)) { + const controlDataFilter = controlData.filter(item => item.sSlaveId === tableData[iIndex].sId); + const tableSelectedRowKeys = []; + controlDataFilter.forEach((item) => { + tableSelectedRowKeys.push(item.sId); + }); + const materialsReturnData = this.otherTableDel('materials', tableSelectedRowKeys); + const processReturnData = this.otherTableDel('process', tableSelectedRowKeys); + const controlReturnData = this.props.onDataRowDel('control', true, tableSelectedRowKeys); + this.props.onSaveState({ + ...materialsReturnData, + ...processReturnData, + ...controlReturnData, + }); + } + } else if ((sModelsType.includes('cashier/') || sModelsType.includes('sales/salesInvoice') || sModelsType.includes('purchase/purchaseInvoice') || sModelsType.includes('purchase/outsideInvoice')) && (sFieldName === 'dTotalMoney' || sFieldName === 'dRoundingMoney')) { /* 付款单、收款单,从表付款/收款金额改变,会自动汇总到主表付款金额中 */ + const addStata = {}; + let { handleType } = masterData; + handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + addStata.handleType = handleType; + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + const { dNetMoney } = app.decimals; + if (sFieldName === 'dTotalMoney') { + addStata.dTotalMoney = 0; + if (iIndex > -1) { /* 选中行 */ + let dMoney = commonUtils.isNotEmptyNumber(tableDataRow.dTotalMoney) ? tableDataRow.dTotalMoney : 0; + dMoney = commonUtils.convertStrToNumber(dMoney); + addStata.dTotalMoney = dMoney + commonUtils.convertStrToNumber(addStata.dTotalMoney); + tableDataRow.dTotalForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dMoney / dCurrencyRate : 0, dNetMoney); + } + // if (commonUtils.isNotEmptyNumber(tableDataRow.dBalanceMoney) && (tableDataRow.dTotalMoney > tableDataRow.dBalanceMoney)) { // 发外发票,采购发票,销售发票 付款单、收款单总金额不能大于余额 + // const dTotalMoneyName = slaveConfig.gdsconfigformslave.filter(item => item.sName === sFieldName)[0].showName; + // const dBalanceMoneyName = slaveConfig.gdsconfigformslave.filter(item => item.sName === 'dBalanceMoney')[0].showName; + // message.error(`${dTotalMoneyName}不能大于${dBalanceMoneyName}!`); + // tableDataRow = { ...tableDataRow, dTotalMoney: tableDataRow.dBalanceMoney }; + // // tableDataRow.dTotalMoney = commonUtils.convertStrToNumber(masterData.dTotalMoney); + // addStata.dTotalMoney = commonUtils.convertStrToNumber(masterData.dTotalMoney); + // } + tableData.forEach((item, index) => { /* 非选中行 */ + if (index !== iIndex) { + const dMoney = commonUtils.isNotEmptyNumber(item.dTotalMoney) ? item.dTotalMoney : 0; + addStata.dTotalMoney = commonUtils.convertFixNum(dMoney, 6) + commonUtils.convertFixNum(addStata.dTotalMoney, 6); + } + }); + /* 计算外币金额 */ + if (commonUtils.isNotEmptyNumber(addStata.dTotalMoney)) { + addStata.dProductForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? addStata.dTotalMoney / dCurrencyRate : 0, dNetMoney); + } + } else if (sFieldName === 'dRoundingMoney') { + addStata.dRoundingMoney = 0; + if (iIndex > -1) { /* 选中行 */ + let dMoney = commonUtils.isNotEmptyNumber(tableDataRow.dRoundingMoney) ? tableDataRow.dRoundingMoney : 0; + dMoney = commonUtils.convertStrToNumber(dMoney); + addStata.dRoundingMoney = dMoney + commonUtils.convertStrToNumber(addStata.dRoundingMoney); + } + tableData.forEach((item, index) => { /* 非选中行 */ + if (index !== iIndex) { + const dMoney = commonUtils.isNotEmptyNumber(item.dRoundingMoney) ? item.dRoundingMoney : 0; + addStata.dRoundingMoney = commonUtils.convertFixNum(dMoney, 6) + commonUtils.convertFixNum(addStata.dRoundingMoney, 6); + } + }); + } + masterData = { ...masterData, ...addStata }; + this.props.onSaveState({ masterData }); + } else if (sModelsType === 'purchase/purchaseOrder' && sFieldName === 'dProcurementCycle') { + /* 交货周期改变时,交货时间等于制单时间 +交货周期 */ + const dProcurementCycle = commonUtils.isNull(tableDataRow.dProcurementCycle, 0); + const tCreateDate = commonUtils.isNotEmptyObject(tableDataRow.tCreateDate) ? tableDataRow.tCreateDate : new Date(); + const tDeliverDate = moment(tCreateDate).add(dProcurementCycle, 'days').format(commonUtils.dateFormatA); + tableDataRow.tDeliverDate = tDeliverDate; + } + // 取工艺卡数据 + if (sModelsType.includes('sales/salesOrder') && (sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && name === 'slave') { + const { + controlConfig, materialsConfig, processConfig, packConfig, + } = this.props; + let { controlData, materialsData, processData, packData } = this.props; + let { slaveData } = this.props; + let bCkxCopyFromTechnology = '0'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue; + /* 若从表配置bNoCopyFromTechnology 则代表产品切换不调用工艺卡 */ + if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) { + const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bNoCopyFromTechnology'); + if (iIndex > -1) { + bCkxCopyFromTechnology = 0; + } + } + if(commonUtils.isEmptyArr(packData)) { + packData = []; + } + // console.log('bCkxCopyFromTechnology', bCkxCopyFromTechnology); + if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) { + const controlSelectedData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sSlaveId === sId) : []; + if (commonUtils.isNotEmptyObject(controlSelectedData)) { + const controlSelectedRowKeys = []; + controlSelectedData.forEach((item) => { + controlSelectedRowKeys.push(item.sId); + }); + const materialsReturnData = this.otherTableDel('materials', controlSelectedRowKeys); + const processReturnData = this.otherTableDel('process', controlSelectedRowKeys); + const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedRowKeys); + controlData = controlReturnData.controlData; + materialsData = materialsReturnData.materialsData; + processData = processReturnData.processData; + this.props.onSaveState({ + ...materialsReturnData, + ...processReturnData, + ...controlReturnData, + }); + } + const sCustomerId = masterData.sCustomerId; + const sProductId = changeValue.sProductId; + const sProductIdArray = []; + sProductIdArray.push(sProductId); + const sProductIds = sProductIdArray.toString(); + const condition = { sCustomerId, sProductIds, sType:'select' }; + let dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; + /* 如果是单表树形或是多表树形 则走新的逻辑 */ + if(sTableType !=='') { + dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataTree/?sModelsId=${sModelsId}`; + } + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnCopyFrom.ActProcessCard')); + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + const copyToSlaveConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Slave'.toLowerCase()); /* 从表赋值字段 */ + const copyToSlaveChildConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.SlaveChild'.toLowerCase()); /* 子表赋值字段 */ + const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Control'.toLowerCase()); + const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Materials'.toLowerCase()); + const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Process'.toLowerCase()); + const copyToPackConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Pack'.toLowerCase()); + const slaveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : ''; + const slaveChildAssignField = commonUtils.isNotEmptyArr(copyToSlaveChildConfig) ? copyToSlaveChildConfig[0].sAssignField : ''; + const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; + const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; + const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; + const packAssignField = commonUtils.isNotEmptyArr(copyToPackConfig) ? copyToPackConfig[0].sAssignField : ''; + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData; + + /* 订单选择产品 调用工艺卡数据 */ + if(commonUtils.isNotEmptyArr(returnData.slaveData)) { + returnData.slaveData.forEach((slaveItem) => { + /* 从工艺卡数据集 找到从表相同产品ID,客户ID */ + if(slaveItem.sProductId === tableDataRow.sProductId) { /* 选中当前行 */ + tableDataRow = { ... tableDataRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段 + // tableDataRow.sFatherSlaveId = slaveItem.sFatherSlaveId; + tableDataRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */ + tableDataRow.sBatchNo = tableDataRow.sId; /* 添加批次行 */ + tableData[iIndex] = { ... tableData[iIndex], ...tableDataRow }; // 取赋值字段 + } else{ /* 其他数据 新增 */ + newCopyTo.slave = slaveItem; + let slaveRow ={}; + slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段 + slaveRow.handleType = 'add'; + slaveRow.sFatherSlaveId = slaveItem.sFatherSlaveId; + slaveRow.sId = commonUtils.createSid(); + slaveRow.sParentId = masterData.sId; + slaveRow.sOriginalId = commonUtils.isNotEmptyObject(slaveItem.sSlaveId) ? slaveItem.sSlaveId : slaveItem.sId; /* 原始sId */ + slaveRow.sBatchNo = tableDataRow.sId; /* 添加批次行 */ + tableData.push(slaveRow); + } + }); + } + /* 若有层级 则拼装新的slaveData层级 */ + const tableFilterData = tableData.filter(item => item.sBatchNo ===tableDataRow.sId ); + if(commonUtils.isNotEmptyArr(tableFilterData)) { + const slaveNewData = commonUtils.genTreeDataByArrSales(tableFilterData, 'sId', 'sFatherSlaveId'); + if(commonUtils.isNotEmptyArr(slaveNewData)) { + slaveNewData.forEach((item) => { + const iIndex = tableData.findIndex(row => row.sId === item.sId); + if(iIndex > -1) { + tableData[iIndex] = {...tableData[iIndex], ...item }; + } + }) + } + } + + // if (commonUtils.isNotEmptyArr(returnData.controlData)) { + // const treeCopyNodes = new Map(); + // // eslint-disable-next-line no-loop-func + // returnData.controlData.forEach((controlItem) => { + // newCopyTo.control = controlItem; + // let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo); // 取默认值 + // controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 + // controlRow.handleType = 'add'; + // controlRow.sId = commonUtils.createSid(); + // const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === controlItem.sSlaveId); + // if(iSlaveIndex > -1) { + // controlRow.sSlaveId = slaveData[iSlaveIndex].sId; + // } + // + // /* 通过部件的sSlaveId源单 去找现在部件对应的新的从表sSlaveId */ + // controlRow.sParentId = masterData.sId; + // if (sModelsType === 'sales/salesOrderPack') { /* 树形 */ + // /* CopyTo时sAllId,sControlParentId 设置 */ + // const sAllOldId = controlItem.sAllId; + // let arr = []; + // if (commonUtils.isNotEmptyObject(sAllOldId)) { + // arr = sAllOldId.split(','); + // } + // const newId = controlRow.sId; + // let sOldParentId = ''; + // let sNewParentAllId = ''; + // if (arr.length < 2) { /* 根节点复制 */ + // controlRow.sAllId = newId; + // sOldParentId = newId; + // sNewParentAllId = newId; + // } else { + // sOldParentId = arr[arr.length - 2]; + // if (treeCopyNodes.has(sOldParentId)) { + // sNewParentAllId = treeCopyNodes.get(sOldParentId); + // } else { + // const obj = arr[arr.length - 1]; + // sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + // } + // const sNewArr = sNewParentAllId.split(','); + // controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; + // sNewParentAllId = `${sNewParentAllId},${newId}`; + // controlRow.sAllId = sNewParentAllId; + // } + // treeCopyNodes.set(controlItem.sId, sNewParentAllId); + // } + // controlData.push(controlRow); + // + // if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + // returnData.materialsData.filter(item => item.sControlId === controlItem.sId).forEach((materialsItem) => { + // newCopyTo.materials = materialsItem; + // let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值 + // materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + // materialsRow.handleType = 'add'; + // materialsRow.sId = commonUtils.createSid(); + // const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === materialsItem.sSlaveId); + // if(iSlaveIndex > -1) { + // materialsRow.sSlaveId = slaveData[iSlaveIndex].sId; + // } + // materialsRow.sParentId = masterData.sId; + // materialsRow.sControlId = controlRow.sId; + // materialsRow.sPartsName = controlRow.sPartsName; + // + // materialsData.push(materialsRow); + // }); + // } + // if (commonUtils.isNotEmptyArr(returnData.packData)) { + // returnData.packData.filter(item => item.sControlId === controlItem.sId).forEach((packItem) => { + // newCopyTo.pack = packItem; + // let packRow = commonFunc.getDefaultData(packConfig, newCopyTo); // 取默认值 + // packRow = { ...packRow, ...commonFunc.getAssignFieldValue(packAssignField, packItem, newCopyTo) }; // 取赋值字段 + // /* sSlaveId赋值 */ + // const packRowAdd = this.handlePackDataAdd(tableDataRow, 0, controlRow.sId); + // packRow = { ...packRow, ...packRowAdd }; + // const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === packItem.sSlaveId); + // if(iSlaveIndex > -1) { + // packRow.sOrderSlaveId = slaveData[iSlaveIndex].sId; + // } + // + // /* 添加控制表中的合版信息 */ + // const sCombinedMemoJsonData = []; + // /* 将控制表中的合版备注sId为新的sId */ + // const { + // sId, sProductNo, dCombineQty, dProductQty, dFactProductQty, sCombinePartsName, + // } = packRow; + // if (dCombineQty > 0) { /* 排版数大于0时,把数据带回到控制表 */ + // const jsonObj = {}; + // jsonObj.sId = sId; + // jsonObj.sProductNo = sProductNo; /* 产品编号 */ + // jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */ + // jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ + // jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ + // jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ + // sCombinedMemoJsonData.push(jsonObj); + // } + // const sCombinedMemoNew = commonUtils.isNotEmptyArr(sCombinedMemoJsonData) ? JSON.stringify(sCombinedMemoJsonData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ + // const icontrolIndex = controlData.findIndex(item => item.sId === controlRow.sId); + // if (icontrolIndex > -1) { + // controlData[icontrolIndex] = { ...controlData[icontrolIndex], sCombinedMemo: sCombinedMemoNew }; + // } + // packData.push(packRow); + // }); + // } + // + // if (commonUtils.isNotEmptyArr(returnData.processData)) { + // returnData.processData.filter(item => item.sControlId === controlItem.sId).forEach((processItem) => { + // newCopyTo.process = processItem; + // let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + // processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + // processRow.handleType = 'add'; + // processRow.sId = commonUtils.createSid(); + // const iSlaveIndex = slaveData.findIndex(item => item.sOriginalId === processItem.sSlaveId); + // if(iSlaveIndex > -1) { + // processRow.sSlaveId = slaveData[iSlaveIndex].sId; + // } + // processRow.sParentId = masterData.sId; + // processRow.sControlId = controlRow.sId; + // processRow.sPartsName = controlRow.sPartsName; + // processData.push(processRow); + // }); + // } + // }); + // } + // if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + // // eslint-disable-next-line no-loop-func + // returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { + // newCopyTo.materials = materialsItem; + // let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo); // 取默认值 + // materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + // materialsRow.handleType = 'add'; + // materialsRow.sId = commonUtils.createSid(); + // materialsRow.sSlaveId = tableDataRow.sId; + // materialsRow.sParentId = masterData.sId; + // materialsData.push(materialsRow); + // }); + // } + // if (commonUtils.isNotEmptyArr(returnData.processData)) { + // // eslint-disable-next-line no-loop-func + // returnData.processData.filter(item => item.sType === '3').forEach((processItem) => { + // newCopyTo.process = processItem; + // let processRow = commonFunc.getDefaultData(processConfig, newCopyTo); // 取默认值 + // processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + // processRow.handleType = 'add'; + // processRow.sId = commonUtils.createSid(); + // processRow.sSlaveId = tableDataRow.sId; + // processRow.sParentId = masterData.sId; + // processData.push(processRow); + // }); + // } + this.props.onSaveState({ + controlData, materialsData, processData, packData, slaveData, + }); + } + } + } else if (sModelsType.includes('sales/salesOrder') && (sFieldName === 'dProductQty' || sFieldName === 'dGiveQty' || sFieldName === 'dStockupQty') && name === 'slave') { + const { + controlData, slaveSelectedRowKeys, + } = this.props; + const controlSelectedData = controlData.filter(item => item.sSlaveId === slaveSelectedRowKeys[0]); + for (const one of controlSelectedData) { + one.handleType = commonUtils.isEmpty(one.handleType) ? 'update' : one.handleType; + one.dPartsQty = commonUtils.isNull(tableDataRow.dProductQty, 0) + commonUtils.isNull(tableDataRow.dGiveQty, 0) + commonUtils.isNull(tableDataRow.dStockupQty, 0); + } + this.props.onSaveState({ controlData }); + } else if (sModelsType.includes('purchase/') && (sFieldName === 'sMaterialsId' || sFieldName === 'sMaterialsNo' || sFieldName === 'sMaterialsName') && name === 'slave') { + const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const value = { + sProName: 'Sp_Cashier_GetMaterialsPrice', + paramsMap: { + sMaterialsGuid: changeValue.sMaterialsId, + sSupplyGuid: masterData.sSupplyId, + }, + }; + const returnData = (await commonServices.postValueService(app.token, value, url)).data; + if (returnData.code === 1) { + tableDataRow.dMaterialsPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice; + } + const models = name === 'materials' ? 'Materials' : + sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/')) { + tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, 'dAuxiliaryQty', app, token, models); + } + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dAuxiliaryQty', masterData, tableDataRow); + + if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAuxiliaryQty') > -1) { + const urlMaterialsStock = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const valueMaterialsStock = { + sProName: 'Sp_Inventory_MaterialsInventoryV56', + paramsMap: { + sMaterialsGuid: tableDataRow.sMaterialsId, + sMaterialsStyle: tableDataRow.sMaterialsStyle, + sWarehouseGuid: tableDataRow.sWarehouseId, + sLocationalGuid: tableDataRow.sLocationId, + sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId, + sDefine_no: tableDataRow.sDefineNo, + sDefine_no2: tableDataRow.sDefineNo2, + iGetQty: 1, + iHasZero: 1, + }, + }; + const returnDataMaterialsStock = (await commonServices.postValueService(app.token, valueMaterialsStock, urlMaterialsStock)).data; + if (returnDataMaterialsStock.code === 1) { + tableDataRow.dMaterialsStockAuxiliaryQty = returnDataMaterialsStock.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; + } + } + if (Object.keys(changeValue).length > 0 && Object.keys(changeValue).findIndex(item => item === 'dMaterialsStockAvailableQty') > -1) { + const urlMaterialsAvailableQty = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const valueMaterialsAvailableQty = { + sProName: 'Sp_Inventory_MaterialsInventoryV56', + paramsMap: { + sMaterialsGuid: tableDataRow.sMaterialsId, + sMaterialsStyle: tableDataRow.sMaterialsStyle, + sWarehouseGuid: tableDataRow.sWarehouseId, + sLocationalGuid: tableDataRow.sLocationId, + sWarehouseLocationGuid: tableDataRow.sWarehouseLocationId, + sDefine_no: tableDataRow.sDefineNo, + sDefine_no2: tableDataRow.sDefineNo2, + iGetQty: 2, + iHasZero: 1, + }, + }; + const returnDataMaterialsAvailableQty = (await commonServices.postValueService(app.token, valueMaterialsAvailableQty, urlMaterialsAvailableQty)).data; + if (returnDataMaterialsAvailableQty.code === 1) { + tableDataRow.dMaterialsStockAvailableQty = returnDataMaterialsAvailableQty.dataset.rows[0].dataSet.outData[0].dAuxiliaryQty; + } + } + /* 选择材料后 交货周期改变 则交货时间等于制单时间+交货周期 */ + const dProcurementCycle = commonUtils.isNull(tableDataRow.dProcurementCycle, 0); + const tCreateDate = commonUtils.isNotEmptyObject(tableDataRow.tCreateDate) ? tableDataRow.tCreateDate : new Date(); + const tDeliverDate = moment(tCreateDate).add(dProcurementCycle, 'days').format(commonUtils.dateFormatA); + tableDataRow.tDeliverDate = tDeliverDate; + // else { + // this.props.getServiceError(returnData); + // } + } else if (sModelsType === 'sales/salesCheck' && sFieldName === 'dLossMoney' && name === 'slave') { + const dPmoney = this.props.getFloatNum('dProductMoney'); + const { dNetPrice } = app.decimals; + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + const dTaxRate = commonUtils.convertToNum(tableDataRow.dTaxRate); /* 税率 */ + const dProductQty = commonUtils.convertToNum(tableDataRow.dProductQty); /* 数量 */ + if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) { + const dProductForeignMoney = commonUtils.convertFixNum(tableDataRow.dSrcNoCheckMoney - tableDataRow.dLossMoney, dPmoney); + const dProductMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductForeignMoney * dCurrencyRate : 0, dPmoney); /* 本位币金额 */ + tableDataRow.dProductForeignMoney = dProductForeignMoney; + tableDataRow.dProductMoney = dProductMoney; + const dProductNoTaxMoney = commonUtils.convertFixNum(dProductMoney / (1 + (dTaxRate / 100)), dPmoney); /* 不含税金额 */ + const dProductNoTaxPrice = commonUtils.convertFixNum(dProductQty !== 0 ? dProductNoTaxMoney / dProductQty : 0, dPmoney); /* 不含税价 */ + const dProductTaxMoney = commonUtils.convertFixNum(dProductMoney - dProductNoTaxMoney, dPmoney); /* 税额 */ + const dProductTaxForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductTaxMoney / dCurrencyRate : 0, dPmoney); /* 外币税额 */ + tableDataRow.dProductNoTaxMoney = dProductNoTaxMoney; /* 不含税金额 */ + tableDataRow.dProductNoTaxPrice = dProductNoTaxPrice; /* 不含税价 */ + tableDataRow.dProductTaxMoney = dProductTaxMoney; /* 税额 */ + tableDataRow.dProductTaxForeignMoney = dProductTaxForeignMoney; /* 外币税额 */ + /* 报损金额改变后 反算单价 */ + tableDataRow.dProductForeignPrice = tableDataRow.dProductQty !==0 ? commonUtils.convertFixNum( dProductForeignMoney/tableDataRow.dProductQty, dNetPrice) : 0; /* 外币税额 */ + tableDataRow.dProductPrice = tableDataRow.dProductQty !==0 ? commonUtils.convertFixNum( dProductMoney/tableDataRow.dProductQty, dNetPrice) : 0; /* 外币税额 */ + } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) { + const dProductForeignMoney = commonUtils.isNull(tableDataRow.dSrcNoCheckMoney, 0); + const dProductMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductForeignMoney * dCurrencyRate : 0, dPmoney); /* 本位币金额 */ + tableDataRow.dProductForeignMoney = dProductForeignMoney; + tableDataRow.dProductMoney = dProductMoney; + tableDataRow.dLossMoney = 0; + const dProductNoTaxMoney = commonUtils.convertFixNum(dProductMoney / (1 + (dTaxRate / 100)), dPmoney); /* 不含税金额 */ + const dProductNoTaxPrice = commonUtils.convertFixNum(dProductQty !== 0 ? dProductNoTaxMoney / dProductQty : 0, dPmoney); /* 不含税价 */ + const dProductTaxMoney = commonUtils.convertFixNum(dProductMoney - dProductNoTaxMoney, dPmoney); /* 税额 */ + const dProductTaxForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? dProductTaxMoney / dCurrencyRate : 0, dPmoney); /* 外币税额 */ + tableDataRow.dProductNoTaxMoney = dProductNoTaxMoney; /* 不含税金额 */ + tableDataRow.dProductNoTaxPrice = dProductNoTaxPrice; /* 不含税价 */ + tableDataRow.dProductTaxMoney = dProductTaxMoney; /* 税额 */ + tableDataRow.dProductTaxForeignMoney = dProductTaxForeignMoney; /* 外币税额 */ + } + } else if (sModelsType && (sModelsType === 'purchase/purchasecheck' || sModelsType.includes('outside/outsideChecking') ) && sFieldName === 'dLossMoney' && name === 'slave') { + const dPmoney = this.props.getFloatNum('dMaterialsMoney'); + const { dNetPrice } = app.decimals; + const dTaxRate = commonUtils.convertToNum(tableDataRow.dTaxRate); /* 税率 */ + const type = 'Materials'; + const dProductQty = commonUtils.convertToNum(tableDataRow[`d${type}Qty`]); /* 数量 */ + if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) { + const dMoney = commonUtils.convertFixNum(tableDataRow.dSrcNoCheckMoney - tableDataRow.dLossMoney, dPmoney); + tableDataRow[`d${type}Money`] = dMoney; + const dProductNoTaxMoney = commonUtils.convertFixNum(dMoney / (1 + (dTaxRate / 100)), dPmoney); /* 不含税金额 */ + const dProductNoTaxPrice = commonUtils.convertFixNum(dProductQty !== 0 ? dProductNoTaxMoney / dProductQty : 0, dPmoney); /* 不含税价 */ + const dProductTaxMoney = commonUtils.convertFixNum(dMoney - dProductNoTaxMoney, dPmoney); /* 税额 */ + tableDataRow[`d${type}NoTaxMoney`] = dProductNoTaxMoney; /* 不含税金额 */ + tableDataRow[`d${type}NoTaxPrice`] = dProductNoTaxPrice; /* 不含税价 */ + tableDataRow[`d${type}TaxMoney`] = dProductTaxMoney; /* 税额 */ + /* 报损金额改变后 反算单价 */ + tableDataRow[`d${type}Price`] = dProductQty !==0 ? commonUtils.convertFixNum( dMoney/dProductQty, dNetPrice) : 0; /* 外币税额 */ + } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcNoCheckMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) { + tableDataRow.dMaterialsMoney = commonUtils.isNull(tableDataRow.dSrcNoCheckMoney, 0); + tableDataRow.dLossMoney = 0; + } + } else if (sModelsType === 'cost/cosexpenseshare') { /* 改变费用分摊单据从表成本中心金额,总金额随之改变 */ + if (sFieldName.indexOf('dCostCenter') > -1) { + const { slaveColumn, app } = this.props; + const { dNetMoney } = app.decimals; + let dAllMoney = 0; + slaveColumn.forEach((item) => { + const sName = item.dataIndex; + if (sName.indexOf('dCostCenter') > -1) { + dAllMoney += commonUtils.isNotEmptyNumber(tableDataRow[sName]) ? commonUtils.convertFixNum(tableDataRow[sName], dNetMoney) : 0; + } + }); + tableDataRow.dShareMoney = commonUtils.convertFixNum(dAllMoney, dNetMoney); + } + } else if (sModelsType === 'purchase/purchaseInstore' && name === 'slave') { /* 采购入库 材料批次=材料生产日期tSReserve1(此客户手输)+当前日期 */ + if (sFieldName === 'tProductionDate') { + tableDataRow.sDefineNo = moment(tableDataRow.tProductionDate).format('YYYYMMDDHHmm') + moment(new Date()).format('YYYYMMDDHHmm'); + } + } + /* 各种金额,税额,价格计算 */ + let models = name === 'materials' ? 'Materials' : + sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') + || sModelsType.includes('outside/') || sModelsType.includes('semigoodsStock/') || sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') { + if (sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') { + tableDataRow.dAuxiliaryQty = tableDataRow.dProductQty; + } + tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models); + + if (sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck') { /* 如果是材料销售模块/销售对账 如果是材料 则用换算数量*单价 算金额 */ + /* 材料逻辑计算 */ + if (commonUtils.isNotEmptyNumber('dMaterialsQty') && tableDataRow.dMaterialsQty !== 0 && commonUtils.isNotEmptyObject(tableDataRow.sMaterialsUnit)) { + let modelsNew = ''; + if (models === 'Product') { /* 计算前将Product替换为Materials */ + modelsNew = 'Materials'; + + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + const { dNetPrice } = app.decimals; + const dForeignPrice = tableDataRow[`d${models}ForeignPrice`]; + if (commonUtils.isNotEmptyNumber(dForeignPrice)) { + /* 只有外币单价情況下 要算本位币单价 */ + const dProductPrice = commonUtils.convertFixNum(dForeignPrice * dCurrencyRate, dNetPrice); + tableDataRow[`d${models}Price`] = dProductPrice; + } + + tableDataRow[`dN${modelsNew}Price`] = tableDataRow[`d${models}ForeignPrice`]; + tableDataRow[`d${modelsNew}ForeignPrice`] = tableDataRow[`d${models}ForeignPrice`]; + tableDataRow[`d${modelsNew}Price`] = tableDataRow[`d${models}Price`]; + tableDataRow[`dN${modelsNew}Money`] = tableDataRow[`dN${models}Price`]; + tableDataRow[`dN${modelsNew}Money`] = tableDataRow[`d${models}ForeignMoney`]; + tableDataRow[`d${modelsNew}ForeignMoney`] = tableDataRow[`d${models}ForeignMoney`]; + tableDataRow[`d${modelsNew}Money`] = tableDataRow[`d${models}Money`]; + tableDataRow.bSalesMaterials = true;/* 材料销售 销售对账 材料计算 */ + models = 'Materials'; + sFieldName = commonUtils.isNotEmptyObject(sFieldName) ? sFieldName.replace('Product', 'Materials') : sFieldName; + } + } + } + } + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, tableDataRow); + let dMaterialsMoney = ''; + if (sModelsType.includes('outside/')) { /* 工序发外 && (sFieldName === 'sSupplyName' || sFieldName === 'sProcessName' || sFieldName === 'dAuxiliaryQty') */ + let sComputeId = {}; + const sSupplyId = masterData.sSupplyId; + const sProcessId = tableDataRow.sProcessId; + if (commonUtils.isNotEmptyObject(sProcessId)) { + /* 根据客户id,工序id获取公式ID */ + sComputeId = await commonBusiness.getOutSideProcessFormula({ + token, sModelsId, sSupplyId, sProcessId, + }); + if (!commonUtils.isEmpty(sComputeId)) { + dMaterialsMoney = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow, sComputeId, + }); + tableDataRow.dMaterialsMoney = dMaterialsMoney; + tableDataRow = commonBusiness.getCalculateMoney(app, masterData, tableDataRow, 'Materials'); + } + } + } + if (isWait) { + return tableDataRow; + } else { + tableData[iIndex] = tableDataRow; + if (name === 'report') { // 报表设计 + this.props.onSaveState({ reportPropsEnabled: true }); + } else { + this.props.onSaveState({ enabled: true }); + } + this.props.onSaveState({ [`${name}Data`]: tableData }); + } + } + }; + + /** 删除表格数据 */ + otherTableDel = (name, tableSelectedRowKeys) => { + const tableData = this.props[`${name}Data`]; + let tableDelData = this.props[`${name}DelData`]; + tableDelData = commonUtils.isEmptyArr(tableDelData) ? [] : tableDelData; + for (const sId of tableSelectedRowKeys) { + /* 看看删除集合和从表中是否都存在该条数据 */ + let tableDataIndex = tableData.findIndex(item => item.sControlId === sId); + while (tableDataIndex > -1) { + /* 删除从表中的数据并存入删除集合中 */ + const slaveDataFilter = tableData[tableDataIndex]; + tableData.splice(tableDataIndex, 1); + slaveDataFilter.handleType = 'del'; + tableDelData.push(slaveDataFilter); + tableDataIndex = tableData.findIndex(item => item.sControlId === sId); + } + } + return { [`${name}Data`]: tableData, [`${name}DelData`]: tableDelData, [`${name}SelectedRowKeys`]: [] }; + }; + + handleMaterialsChangeBak = async (tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models) => { + if (this.inputChange) { + clearTimeout(this.inputChange); + } + this.inputChange = setTimeout(async() => { + // /* 调用父组件的回带函数 */ + tableDataRow = await this.handleMaterialsChangeWait(tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models); + }, 10); + return tableDataRow; + } + + handleMaterialsChange = async (tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models) => { + const { sComputeId, sConversionComputeId, sReConversionComputeId } = tableDataRow; + const sFormulaIdType = tableDataRow.bInverse ? 'sReComputeId' : 'sComputeId'; /* 正算、反算类型 */ + if (sFieldName === 'sMaterialsNo' || sFieldName === 'sMaterialsName' || sFieldName === 'dAuxiliaryQty' || sFieldName === 'dReelAuxiliaryQty' || sFieldName === 'dConversionQty' || sFieldName === 'sMaterialsStyle' || sFieldName === 'dProductQty') { + if (sFieldName === 'dReelAuxiliaryQty') { + if (tableDataRow.sMaterialsUnit === '吨' && tableDataRow.bReel && tableDataRow.dGramWeight > 0) { + tableDataRow = commonBusiness.getMaterialsQty(app, { ...tableDataRow, sMaterialsStyle: tableDataRow.sReelMaterialsStyle }, 'dReelAuxiliaryQty', 'dMaterialsQty'); + tableDataRow.dAuxiliaryQty = tableDataRow.dMaterialsQty; + tableDataRow.sMaterialsStyle = tableDataRow.sMaterialsStyle !== undefined && tableDataRow.sMaterialsStyle.split('*').length > 1 ? tableDataRow.sMaterialsStyle.split('*')[0] : tableDataRow.sMaterialsStyle; + tableDataRow.sAuxiliaryUnit = tableDataRow.sMaterialsUnit; + } else if (tableDataRow.sMaterialsUnit.toUpper() === 'M2' && tableDataRow.bReel) { + tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dReelAuxiliaryQty', 'dMaterialsQty'); + tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; + } else { + tableDataRow.dAuxiliaryQty = tableDataRow.dReelAuxiliaryQty; + } + } + if (commonUtils.isEmpty(sComputeId) && sFieldName !== 'dConversionQty') { + if (sFieldName === 'dProductQty') { + tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dProductQty', 'dMaterialsQty'); + } else if (app.currentPane.sModelsType && app.currentPane.sModelsType.includes('outside/')) { + tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, 'dAuxiliaryQty', 'dMaterialsQty'); + } else { + tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow, sComputeId, sFormulaIdType, + }); + } + } else if (!commonUtils.isEmpty(sComputeId)) { + tableDataRow.dMaterialsQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow, sComputeId, + }); + } + if (sFieldName !== 'dConversionQty' && !commonUtils.isEmpty(sConversionComputeId)) { + tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow, sComputeId: sConversionComputeId, + }); + } + } else if (sFieldName === 'dMaterialsQty') { + const { sReComputeId } = tableDataRow; + if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) { + if (app.currentPane.sModelsType && app.currentPane.sModelsType.includes('outside/')) { + tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, 'dAuxiliaryQty'); + } else { + tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow, sReComputeId, sFormulaIdType, + }); + } + } else if (tableDataRow.bInverse) { + tableDataRow.dAuxiliaryQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow, sComputeId: sReComputeId, + }); + if (commonUtils.isNotEmptyArr(tableDataRow.dAuxiliaryQty) && tableDataRow.dAuxiliaryQty !== 0) { + tableDataRow.dProductQty = tableDataRow.dAuxiliaryQty; + } + } + if (!commonUtils.isEmpty(sReConversionComputeId)) { + tableDataRow.dConversionQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow, sComputeId: sReConversionComputeId, + }); + } + } else if (sFieldName === 'dAuxiliaryLossQty') { + const tableDataRowNew ={ ...tableDataRow ,dAuxiliaryQty:tableDataRow.dAuxiliaryLossQty }; + if (commonUtils.isEmpty(sComputeId)) { + // tableDataRow = commonBusiness.getMaterialsQty(app, tableDataRow, sFieldName, 'dLossQty'); + tableDataRow.dLossQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow:tableDataRowNew, sComputeId, sFormulaIdType, + }); + } else { + tableDataRow.dLossQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow:tableDataRowNew, sComputeId, + }); + } + if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { + tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; + tableDataRow.dMaterialsQty = commonUtils.convertFixNum(tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty, 6); + } + } else if (sFieldName === 'dLossQty') { + const { sReComputeId } = tableDataRow; + const tableDataRowNew ={ ...tableDataRow ,dMaterialsQty:tableDataRow.dLossQty }; + if (commonUtils.isEmpty(sReComputeId) && tableDataRow.bInverse) { + // tableDataRow = commonBusiness.getAuxiliaryQty(app, tableDataRow, sFieldName, 'dAuxiliaryLossQty'); + tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow:tableDataRowNew, sReComputeId, sFormulaIdType, + }); + } else { + tableDataRow.dAuxiliaryLossQty = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData, tableDataRow:tableDataRowNew, sComputeId: sReComputeId, + }); + } + if (!commonUtils.isEmpty(tableDataRow.dSrcSurplusAuxiliaryQty)) { + tableDataRow.dAuxiliaryQty = tableDataRow.dSrcSurplusAuxiliaryQty - tableDataRow.dAuxiliaryLossQty; + tableDataRow.dMaterialsQty = tableDataRow.dSrcSurplusQty - tableDataRow.dLossQty; + } + } else if (sFieldName === 'sProcessId' || sFieldName === 'sProcessNo' || sFieldName === 'sProcessName') { + const sProcessId = changeValue.sProcessId; + const url = `${commonConfig.server_host}process/outsideprocess?sModelsId=${sModelsId}&sProcessId=${sProcessId}`; + const dataReturn = (await commonServices.getService(token, url)).data; + if (dataReturn.code === 1) { + if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) { + tableDataRow.dMaterialsPrice = dataReturn.dataset.rows[0].dMaterialsPrice; + } + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'dMaterialsPrice', masterData, tableDataRow); + } + } + return tableDataRow; + } + + handleCustomerChange = (name, changeValue) => { + if (commonUtils.isNotEmptyObject(changeValue)) { + if (changeValue.sCustomerId !== this.state.changleCustomerId) { + const sCustomerId = []; + sCustomerId.push(changeValue.sCustomerId); + this.handleTableSelectRowChange(name, sCustomerId, changeValue); + } + } + this.setState({ changleCustomerId: changeValue.sCustomerId }); + } + handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait, masterDataNew) => { + if(location.pathname === '/indexPage/printlabel') { /* printlabel 打印成品批次标识卡(EBC) 客户下拉页签需调用接口 */ + this.handleCustomerChange(name, changeValue); // 注掉原因:产品名称可输入时,会慢一拍,会清空。 + } + const { + sModelsId, sModelsType, masterData: masterDataOld, app, masterConfig, slaveConfig, token, + controlData, materialsData, processData, slaveData, slaveSelectedRowKeys,controlSelectedRowKeys, + processSelectedRowKeys,materialsSelectedRowKeys,slaveInfoSelectedRowKeys, slaveInfoData, enabled, + } = this.props; + const addState = {}; + const masterData = masterDataNew === undefined ? masterDataOld === undefined ? {} : masterDataOld : masterDataNew; + let bNewSlaveData = false; + if (sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName') { + if (commonUtils.isNotEmptyArr(slaveData)) { + // 从表有数据,请删除后修改客户!不能去掉 + if (slaveData.length === 1 && commonUtils.isEmpty(slaveData[0].sProductId)) { + bNewSlaveData = true; + } else { + message.warn(commonFunc.showMessage(app.commonConst, 'slaveHasDataPleaseDel')); + return; + } + } + changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue }); + // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductId', []); + // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductNo', []); + // commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sProductName', []); + // + // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductId', []); + // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductNo', []); + // commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductName', []); + } if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName') { + changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue }); + } else if (sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName') { + commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsId', []); + commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'slave', 'sMaterialsName', []); + if (sModelsType === 'materialsStock/materialsCheck' || sModelsType === 'productStock/productCheck') { + let value = {}; + if (sModelsType === 'materialsStock/materialsCheck') { + value = { + sProName: 'Sp_System_AccountSquareCheck', + paramsMap: { + iType2: 1, + sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : '', + }, + }; + } else if (sModelsType === 'productStock/productCheck') { + value = { + sProName: 'Sp_System_AccountSquareCheck', + paramsMap: { + iType2: 2, + sWareHouseGuid: commonUtils.isNotEmptyObject(changeValue.sWareHouseId) ? changeValue.sWareHouseId : '', + }, + }; + } + const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`; + const returnData = (await commonServices.postValueService(app.token, value, url)).data; + if (returnData.code === 1) { + const outData = returnData.dataset.rows[0].dataSet.outData[0]; + if (outData.sCode === -1) { + message.error(outData.sReturn); + return; + } + } else { + this.props.getServiceError(returnData); + return; + } + } + } else if (sModelsType.includes('cashier/') && sFieldName === 'sBillType') { + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sCustomerName', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sSupplyName', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyId', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyNo', []); + commonUtils.setStoreDropDownData(sModelsId, 'master', 'sFamilyName', []); + changeValue.sCustomerId = ''; + const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerId'); + if (iIndex > -1) { + masterConfig.gdsconfigformslave[iIndex].bReGetDropDown = true; + } + changeValue.sSupplyId = ''; + const iSupplyIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sSupplyId'); + if (iSupplyIndex > -1) { + masterConfig.gdsconfigformslave[iSupplyIndex].bReGetDropDown = true; + } + /* 财务调整中切换调整类型后,对象名称清空 */ + const sBillTypeIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sFamilyName'); + if (sBillTypeIndex > -1) { + masterData.sFamilyName = ''; + } + this.props.onSaveState({ masterConfig }); + } else if (sFieldName === 'sGetPayId' || sFieldName === 'sGetPayName') { + changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue }); + } else if (sFieldName === 'tInvoiceDate') { + changeValue.tGetPayDate = commonBusiness.getGeyPayDate({ ...masterData, ...changeValue }); + } else if (sFieldName === 'sSettlementId') { + if (changeValue.sSettlementId === 'cash') { + const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount'); + if (sBankAccountIndex > -1) { + masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1; + masterData.sBankAccount = ''; + } + const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo'); + if (sInvoiceNoIndex > -1) { + masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1; + masterData.sInvoiceNo = ''; + } + const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId' || item.sName === 'sBankName'); + if (sBankIdIndex > -1) { + masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 1; + masterData.sBankId = ''; + masterData.sBankName = ''; + } + } + if (changeValue.sSettlementId === 'bank') { + const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo'); + if (sInvoiceNoIndex > -1) { + masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 1; + masterData.sInvoiceNo = ''; + } + const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount'); + if (sBankAccountIndex > -1) { + masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 0; + } + const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId' || item.sName === 'sBankName'); + if (sBankIdIndex > -1) { + masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0; + } + } + if (changeValue.sSettlementId === 'bill') { + const sBankAccountIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankAccount'); + if (sBankAccountIndex > -1) { + masterConfig.gdsconfigformslave[sBankAccountIndex].iTag = 1; + masterData.sBankAccount = ''; + } + const sInvoiceNoIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sInvoiceNo'); + if (sInvoiceNoIndex > -1) { + masterConfig.gdsconfigformslave[sInvoiceNoIndex].iTag = 0; + } + const sBankIdIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sBankId'); + if (sBankIdIndex > -1) { + masterConfig.gdsconfigformslave[sBankIdIndex].iTag = 0; + } + const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'tDueDate'); + if (tDueDateIndex > -1) { + masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 0; + } + } + } + let returnData = this.props.onChange(name, sFieldName, changeValue, sId, dropDownData, true, masterData); + if( commonUtils.isNotEmptyObject(returnData?.masterData.customConfig) && commonUtils.isJSON(returnData?.masterData.customConfig)) { + const columnConfig = JSON.parse(returnData.masterData.customConfig); + const newConfig =JSON.parse( JSON.stringify(slaveConfig)); + let buttonConfig = []; + if(commonUtils.isNotEmptyArr(slaveConfig?.gdsconfigformslave)) { + buttonConfig = slaveConfig?.gdsconfigformslave.filter(item => commonUtils.isEmptyObject(item.sName) && commonUtils.isNotEmptyObject(item.sControlName) ); + } + newConfig.gdsconfigformslave = columnConfig.concat(buttonConfig); + addState.slaveConfig = newConfig; + } + // const masterDataAfter = commonBusiness.getKeyUpEvent(name, sFieldName, masterConfig, returnData.masterData, {}, true); + // if (commonUtils.isNotEmptyObject(masterDataAfter)) { + // returnData.masterData = masterDataAfter; + // } + if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName' || sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' || + sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' || + sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName' || sFieldName === 'tDeliverDate' || + sFieldName === 'sCurrency' || sFieldName === 'dCurrencyRate') { + const slaveDataNew = []; + const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + for (const item of slaveData) { + let tableDataRow = ((sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' || + sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' || + sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') && (sModelsType.includes('materialsStock/productionmaterialsadjust'))) ? + { ...item } : { ...item, [sFieldName]: changeValue[sFieldName] }; + + if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName') { + tableDataRow.sTaxId = changeValue.sTaxId; + tableDataRow.sTaxNo = changeValue.sTaxNo; + tableDataRow.sTaxName = changeValue.sTaxName; + tableDataRow.dTaxRate = changeValue.dTaxRate; + tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; + let dMaterialsMoney = ''; + if (sModelsType.includes('outside/')) { /* 工序发外 */ + let sComputeId = ''; + const sSupplyId = changeValue.sSupplyId; + const sProcessId = tableDataRow.sProcessId; + /* 根据客户id,工序id获取公式ID */ + if (commonUtils.isNotEmptyObject(sSupplyId) && commonUtils.isNotEmptyObject(sProcessId)) { + sComputeId = await commonBusiness.getOutSideProcessFormula({ + token, sModelsId, sSupplyId, sProcessId, + }); + if (commonUtils.isNotEmptyObject(sComputeId)) { + dMaterialsMoney = await commonBusiness.getFormulaValue({ + token, sModelsId, masterData: returnData.masterData, tableDataRow, sComputeId, + }); + tableDataRow.dMaterialsMoney = dMaterialsMoney; + tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, 'Materials'); + } else { + tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, 'Materials'); /* 没有发外公式情况下 进行计算 */ + } + } else { + tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, 'Materials') + } + } else { + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, 'sTaxId', returnData.masterData, tableDataRow); + } + } else if (sFieldName === 'sCurrency' || sFieldName === 'dCurrencyRate') { + tableDataRow = commonBusiness.getCalculateAllMoney(app, models, `dN${models}Money`, returnData.masterData, tableDataRow); + tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; + } + if ((sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName' || + sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName' || + sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') && (!sModelsType.includes('materialsStock/productionmaterialsadjust'))) { + if (sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName') { + tableDataRow.sWareHouseId = changeValue.sWareHouseId; + tableDataRow.sWareHouseNo = changeValue.sWareHouseNo; + tableDataRow.sWareHouseName = changeValue.sWareHouseName; + } else if (sFieldName === 'sLocationId' || sFieldName === 'sLocationNo' || sFieldName === 'sLocationName') { + tableDataRow.sLocationId = changeValue.sLocationId; + tableDataRow.sLocationNo = changeValue.sLocationNo; + tableDataRow.sLocationName = changeValue.sLocationName; + } else if (sFieldName === 'sWareHouseLocationId' || sFieldName === 'sWareHouseLocationNo' || sFieldName === 'sWareHouseLocationName') { + tableDataRow.sWareHouseLocationId = changeValue.sWareHouseLocationId; + tableDataRow.sWareHouseLocationNo = changeValue.sWareHouseLocationNo; + tableDataRow.sWareHouseLocationName = changeValue.sWareHouseLocationName; + } + tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; + } else if (sFieldName === 'tDeliverDate') { + tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType; + } + slaveDataNew.push(tableDataRow); + } + addState.slaveData = slaveDataNew; + // this.props.onSaveState({ slaveData: slaveDataNew }); + } else if ((sFieldName === 'sCustomerId' || sFieldName === 'sCustomerNo' || sFieldName === 'sCustomerName')) { + if (bNewSlaveData) { + const slaveDataNew = []; + const allTableData = {}; + allTableData.master = returnData.masterData; + const newSid = commonUtils.createSid(); + const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData, { newSid }); + tableDataRowAdd.handleType = 'add'; + tableDataRowAdd.sId = newSid; + tableDataRowAdd.sNodeId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; + tableDataRowAdd.key = tableDataRowAdd.sId; + tableDataRowAdd.bDefault = false; + tableDataRowAdd.iOrder = 1; + slaveDataNew.push(tableDataRowAdd); + addState.slaveData = slaveDataNew; + // this.props.onSaveState({ slaveData: slaveDataNew }); + } else if (sModelsType.includes('sales/') || sModelsType.includes('cashier/') || sModelsType.includes('manufacture/')) { // 获取应收款 + if (commonUtils.isNotEmptyObject(masterData)) { + this.getCustomerReceipt({ masterData: returnData.masterData }); + } + } + } else if (sFieldName === 'sTestStandardId' || sFieldName === 'sTestStandardName') { + const { slaveDelData: slaveDelDataOld, slaveConfig, masterConfig } = this.props; + const dataUrl = `${commonConfig.server_host}eleteamemployee/getObtainInspectionStandards?sModelsId=${sModelsId}&sParentId=${returnData.masterData.sTestStandardId}`; + const dataReturn = (await commonServices.getService(this.props.app.token, dataUrl)).data; + const slaveDelData = commonUtils.isEmptyArr(slaveDelDataOld) ? [] : slaveDelDataOld; + if (dataReturn.code === 1) { + const returnSlaveData = dataReturn.dataset.rows; + if(commonUtils.isNotEmptyArr(slaveData)) { + slaveData.forEach((item) => { + item.handleType = 'del'; + slaveDelData.push(item); + }); + } + const slaveDataNew = []; + const newCopyTo = {}; + newCopyTo.master = masterData; + const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'sTestStandardName'); + const iSqlIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sActValue'); + returnSlaveData.forEach((item, iIndex) => { + const newSid = commonUtils.createSid(); + let tableDataRow = commonFunc.getDefaultData(slaveConfig, {}, { newSid }); + tableDataRow.handleType = 'add'; + tableDataRow.sId = newSid; + tableDataRow.sParentId = masterData && masterData.sId ? masterData.sId : null; + tableDataRow.key = tableDataRow.sId; + tableDataRow.iOrder = iIndex; + if (iConfigIndex > -1) { + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(masterConfig.gdsconfigformslave[iConfigIndex].sAssignField, item, newCopyTo) }; // 取赋值字段 + // tableDataRow.sTestReference = '15S|20S'; + const sTestReference = tableDataRow.sTestReference; + const sParamObj = {}; + if (commonUtils.isNotEmptyObject(sTestReference)) { + if (sTestReference.indexOf('|') >= 0) { + sTestReference.split('|').forEach((itemField) => { + sParamObj[itemField] = itemField; + }); + tableDataRow.sParamDropDownsActValue = sParamObj; + if (iSqlIndex > -1) { + slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = 'sql'; + } else { + slaveConfig.gdsconfigformslave[iSqlIndex].sDropDownType = ''; + } + } + } + } + slaveDataNew.push(tableDataRow); + }); + addState.slaveData = slaveDataNew; + } else { + this.props.getServiceError(dataReturn); + } + } else if (sFieldName === 'sPeriodID') { + const master = returnData.masterData; + let { handleType } = master; + handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + if (handleType === 'add') { /* 费用分摊单据新增时,选择不同月份,自动获取从表的数据 */ + const { sModelsId } = this.props; + let url = `${commonConfig.server_host}costCenter/getCostCenterData?sModelsId=${sModelsId}`; + const body = { + sPeriodId: changeValue.sPeriodID, + }; + /** + * 修改日期:2021-03-26 + * 修改人:吕杰 + * 区域:以下 4 行 + * BUG:2168 + * 说明:凭证导入表下主表月份切换从后台获取数据 + * 原代码: + */ + if (sModelsType === 'cashier/voucher') { + url = `${commonConfig.server_host}costCenter/getCosvoucherImportData?sModelsId=${sModelsId}`; + body.sWeek = masterDataOld.sWeek; + } + const dataReturn = (await commonServices.postValueService(app.token, body, url)).data; + if (dataReturn.code === 1) { + /* 获取数据集 */ + const { rows } = dataReturn.dataset; + const slaveDataNew = []; + rows.forEach((row) => { + /** + * 修改日期:2021-03-26 + * 修改人:吕杰 + * 区域:以下 13 行 + * BUG:2168 + * 说明:凭证导入表下主表月份切换从后台获取数据 + * 原代码: + */ + let tableDataRowAdd = row; + if (sModelsType === 'cashier/voucher') { + // 当主表中配置了转换信息时,对数据字段进行转换 + const index = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'Btnimport'); + if (index > -1) { + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = row; + const config = masterConfig.gdsconfigformslave[index]; + const slaveAssignField = config.sAssignField || ''; + tableDataRowAdd = { ...row, ...commonFunc.getAssignFieldValue(slaveAssignField, row, newCopyTo) }; + } + } + tableDataRowAdd.handleType = handleType; + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; + tableDataRowAdd.key = tableDataRowAdd.sId; + tableDataRowAdd.bDefault = false; + slaveDataNew.push(tableDataRowAdd); + }); + addState.slaveData = slaveDataNew; + } else { /* 失败 */ + this.props.getServiceError(dataReturn); + return []; + } + } + } else if (sFieldName === 'sWeek' && sModelsType === 'cashier/voucher') { + /** + * 修改日期:2021-03-26 + * 修改人:吕杰 + * 区域:此if内 + * BUG:2168 + * 说明:凭证导入表下主表周期切换从后台获取数据 + * 原代码: + */ + const master = returnData.masterData; + let { handleType } = master; + handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + if (handleType === 'add') { /* 费用分摊单据新增时,选择不同月份,自动获取从表的数据 */ + const { sModelsId } = this.props; + const url = `${commonConfig.server_host}costCenter/getCosvoucherImportData?sModelsId=${sModelsId}`; + const body = { + sWeek: changeValue.sWeek, + sPeriodId: masterDataOld.sPeriodId, + }; + const dataReturn = (await commonServices.postValueService(app.token, body, url)).data; + if (dataReturn.code === 1) { + /* 获取数据集 */ + const { rows } = dataReturn.dataset; + const slaveDataNew = []; + rows.forEach((row) => { + let tableDataRowAdd = row; + // 当主表中配置了转换信息时,对数据字段进行转换 + const index = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'Btnimport'); + if (index > -1) { + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = row; + const config = masterConfig.gdsconfigformslave[index]; + const slaveAssignField = config.sAssignField || ''; + tableDataRowAdd = { ...row, ...commonFunc.getAssignFieldValue(slaveAssignField, row, newCopyTo) }; + } + tableDataRowAdd.handleType = handleType; + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null; + tableDataRowAdd.key = tableDataRowAdd.sId; + tableDataRowAdd.bDefault = false; + slaveDataNew.push(tableDataRowAdd); + }); + addState.slaveData = slaveDataNew; + } else { /* 失败 */ + this.props.getServiceError(dataReturn); + return []; + } + } + } + const models = name === 'materials' ? 'Materials' : + sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('print/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + if (sModelsType.includes('purchase/') || sModelsType.includes('print/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/') || sModelsType.includes('quality/')) { + let masterData = await this.handleMaterialsChange(returnData.masterData, sModelsId, masterData, changeValue, sFieldName, app, token, models); + masterData = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, masterData); + if (sFieldName !== 'dPackQty') { + if (changeValue.dPackQty !== this.state.dPackQtyChange && changeValue.dPackQty !== undefined) { + masterData = commonBusiness.getCalculateAllMoney(app, models, 'dPackQty', masterData, masterData); + this.setState({ dPackQtyChange: changeValue.dPackQty }); + } + } + returnData = { ...returnData, masterData }; + } + + /* 将选中行塞到tableSelectedData数据集合中 */ + let slaveRow = {}; + let controlRow = {}; + let materialsRow ={}; + let processRow = {}; + let slaveInfoRow = {}; + if(commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { + const iSIndex = slaveData.findIndex(item =>slaveSelectedRowKeys.includes(item.sId)); + if(iSIndex > -1) { + slaveRow = slaveData[iSIndex]; + } + } + if(commonUtils.isNotEmptyArr(slaveInfoData) && commonUtils.isNotEmptyArr(slaveInfoSelectedRowKeys)) { + const iSIndex = slaveData.findIndex(item =>slaveInfoSelectedRowKeys.includes(item.sId)); + if(iSIndex > -1) { + slaveInfoRow = slaveInfoData[iSIndex]; + } + } + if(commonUtils.isNotEmptyArr(controlData) && commonUtils.isNotEmptyArr(controlSelectedRowKeys)) { + const iCIndex = controlData.findIndex(item => controlSelectedRowKeys.includes(item.sId)); + if(iCIndex > -1) { + controlRow = controlData[iCIndex]; + } + } + if(commonUtils.isNotEmptyArr(materialsData) && commonUtils.isNotEmptyArr(materialsSelectedRowKeys)) { + const iMIndex = materialsData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); + if(iMIndex > -1) { + materialsRow = materialsData[iMIndex]; + } + } + if(commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyArr(processSelectedRowKeys)) { + const iPIndex = processData.findIndex(item => processSelectedRowKeys.includes(item.sId)); + if(iPIndex > -1) { + processRow = processData[iPIndex]; + } + } + const tableAllData = {}; + tableAllData.master = masterData; + tableAllData.slave = slaveData; + tableAllData.control = controlData; + + const tableSelectedData = { + master: masterData, + slaveRow: slaveRow, + controlRow: controlRow, + materialsRow: materialsRow, + processRow: processRow, + } + const masterDataAfter = commonBusiness.getKeyUpEvent(name, sFieldName, masterConfig, returnData.masterData, tableAllData, true, tableAllData, tableSelectedData, app); + if (commonUtils.isNotEmptyObject(masterDataAfter)) { + if (masterDataAfter.bMultiTable) { + returnData.masterData = masterDataAfter.master; + if (commonUtils.isNotEmptyArr(masterDataAfter.slave)) { + returnData.slaveData = masterDataAfter.slave; + } + if (commonUtils.isNotEmptyArr(masterDataAfter.control)) { + returnData.controlData = masterDataAfter.control; + } + if (commonUtils.isNotEmptyArr(masterDataAfter.packing)) { + returnData.packingData = masterDataAfter.packing; + } + if (commonUtils.isNotEmptyArr(masterDataAfter.other)) { + returnData.otherData = masterDataAfter.other; + } + if (commonUtils.isNotEmptyArr(masterDataAfter.freight)) { + returnData.freightData = masterDataAfter.freight; + } + } else { + if(commonUtils.isNotEmptyObject(masterDataAfter.master)) { + returnData.masterData = masterDataAfter.master; + } else { + returnData.masterData = masterDataAfter; + } + } + } + + if (isWait) { + return { ...returnData, ...addState, enabled: true }; + } else { + this.props.onSaveState({ ...returnData, ...addState, enabled: true }); + return returnData; + } + } + handleBtnPrint =async (sActiveId, checked, eKey) => { + const { + app, sModelsId, masterConfig, masterData, slaveConfig, sModelsType, reportData, menuChildData, formRoute, controlConfig, + } = this.props; + // if (sModelsType.includes('manufacture/workOrder')) { + // this.handleUpdateProduction(); + // } + const { token } = app; + const queryFilter = {}; + queryFilter[masterConfig.sId] = { sId: masterData.sId }; + if (commonUtils.isNotEmptyObject(slaveConfig)) { + queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } }; + } + const queryFilterJson = JSON.stringify(queryFilter); + // const masterDataJson = JSON.stringify(masterData); + /* 拿到打印报表名称 */ + let printReportName = 'report'; + let printCustomerReportName = 'report'; + if (commonUtils.isNotEmptyArr(reportData)) { + const iIndex = reportData.findIndex(item => item.sId === sActiveId); + if (iIndex > -1) { + printReportName = reportData[iIndex].sReportName; + } + } + if (commonUtils.isNotEmptyArr(menuChildData)) { + const iIndex = menuChildData.findIndex(item => item.sId === sActiveId); + if (iIndex > -1) { + printCustomerReportName = menuChildData[iIndex].sReportName; + } + } + let urlPrint = ''; + if (formRoute === '/indexPage/printlabel') { + if (commonUtils.isNotEmptyObject(masterData)) { // masterData中必填的三个字段 + // const param = masterDataJson; + /* 把masterData放在数组中 */ + const ListData = []; + ListData.push(masterData); + const param = JSON.stringify(ListData); + if (eKey.indexOf('BtnPrint.') > -1) { + urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`; + } else if (eKey.indexOf('BtnPrintCus.') > -1) { + urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${checked ? 'fileType=.xlsx&' : ''}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`; + } + /* Get提交地址栏参数过多,更改Get提交为Post提交 */ + this.handleOpenPost(urlPrint, param); + } else { + const dTrunkQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dTrunkQty' && item.bNotEmpty); + const dFractionQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dFractionQty' && item.bNotEmpty); + const dPackQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dPackQty' && item.bNotEmpty); + if (masterData.dTrunkQty === undefined && commonUtils.isNotEmptyObject(dTrunkQtyName)) { + message.error(`${dTrunkQtyName[0].showName} 必填项!`); + } else if (masterData.dFractionQty === undefined && commonUtils.isNotEmptyObject(dFractionQtyName)) { + message.error(`${dFractionQtyName[0].showName} 必填项!`); + } else if (masterData.dPackQty === undefined && commonUtils.isNotEmptyObject(dPackQtyName)) { + message.error(`${dPackQtyName[0].showName} 必填项!`); + } + return; + } + } else if (eKey.indexOf('BtnPrint.') > -1) { + let { controlSelectedRowKeys } = this.props; + /* 不出现选择框,则打印全部;出现选择框,则打印勾选的 */ + let bisMutiSelect = false; + if (commonUtils.isNotEmptyObject(controlConfig) && commonUtils.isNotEmptyArr(controlConfig.gdsconfigformslave)) { + const filterData = controlConfig.gdsconfigformslave.filter(item => item.sControlName === 'bisMutiSelect'); + if (commonUtils.isNotEmptyArr(filterData)) { + bisMutiSelect = filterData[0].bVisible; + } + } + if (bisMutiSelect === false || bisMutiSelect === undefined) { + controlSelectedRowKeys = []; + } + urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}&sControlIds=${commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlSelectedRowKeys : []}`; + } else if (eKey.indexOf('BtnPrintCus.') > -1) { + urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}`; + } + if (formRoute !== '/indexPage/printlabel') { + window.open(`${encodeURI(`${urlPrint}&queryFilter=${queryFilterJson}`)}&token=${encodeURIComponent(token)}`); + } + }; + handleOpenPost= (url, params) => { + const newWin = window.open(); + let formStr = ''; + formStr = `
` + + `` + + ''; + newWin.document.body.innerHTML = formStr; + newWin.document.forms[0].submit(); + return newWin; + } + + handleUpdateProduction = async () => { + const { sModelsId, masterData } = this.props; + const { sBillNo, sId } = masterData || {}; + const dataUrl = `${commonConfig.server_host}business/addUpdateDelBusinessData?sModelsId=${sModelsId}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`; + const value = { + data: [{ + sTable: 'mftworkordermaster', + column: [{ handleType: 'update', sId: masterData.sId, bProduction: 1 }], + }], + sClientType: '1', + }; + const dataReturn = (await commonServices.postValueService(this.props.app.token, value, dataUrl)).data; + if (dataReturn.code === 1) { + message.success(dataReturn.msg); + } else { + this.props.getServiceError(dataReturn); + } + }; + + handleTitleChange = (slavePagination) => { + this.props.onSaveState({ slavePagination }); + }; + + handleTitleChange1 = (name, slavePagination, filters, sorter) => { + this.props.onSaveState({ [`${name}Pagination`]: slavePagination }); + const { + slaveConfig, slaveFilterCondition, sGroupByList,[`${name}Config`] : tableConfig, [`${name}FilterCondition`]: tableFilterCondition, + } = this.props; + let bGetData = true; + if (commonUtils.isNotEmptyObject(filters)) { + for (const key of Object.keys(filters)) { + if (commonUtils.isNotEmptyArr(filters[key])) { + bGetData = false; + break; + } + } + } + if (!bGetData) return; + const { treeFilterCondition } = this.props;/* 树过滤条件 */ + const sort = sorter.order === 'ascend' ? 'asc' : 'desc'; + const slaveOrderBy = Object.keys(sorter).length > 0 ? { [sorter.columnKey]: sort } : ''; // 后端未支持空对象, 先用空表示 + if (commonUtils.isNotEmptyArr(treeFilterCondition)) { /* 判断是否有树过滤条件 */ + this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, '', sGroupByList, '', treeFilterCondition); + } else { + this.handleGetDataOne(name, tableConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy); + // this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, '', sGroupByList, '', treeFilterCondition, + // slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config, + // slave11Config, slave12Config, slave13Config, slave14Config, slave15Config); + } + }; + + /* 工单、工艺卡、报价单控制表回带图片地址 */ + handleFilfileManageOk= async (controlFilfileData, controlFilfileDelData, sSrcSlaveId) => { + const { + controlData: tableData, app, sModelsId, token, controlConfig, + } = this.props; + if (commonUtils.isNotEmptyObject(sSrcSlaveId)) { + if (commonUtils.isNotEmptyArr(controlFilfileDelData)) { + const addState = {}; + const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId); + if (iIndex > -1) { + const tableDataNewRow = tableData[iIndex]; + const { sMaterialsPicturePath, sMachinePicturePath } = tableDataNewRow; + const controlsMaterialsPictureDelData = controlFilfileDelData.filter(item => item.sType === '3'); /* 开料 */ + if (commonUtils.isNotEmptyArr(controlsMaterialsPictureDelData)) { + controlsMaterialsPictureDelData.forEach((slaveItem) => { + if (slaveItem.sPicturePath === sMaterialsPicturePath) { + addState.sMaterialsPicturePath = ''; + } + }); + } + const sMachinePictureDelPath = controlFilfileDelData.filter(item => item.sType === '4'); /* 联版 */ + if (commonUtils.isNotEmptyArr(sMachinePictureDelPath)) { + sMachinePictureDelPath.forEach((slaveItem) => { + if (slaveItem.sPicturePath === sMachinePicturePath) { + addState.sMachinePicturePath = ''; + } + }); + } + if (commonUtils.isNotEmptyObject(addState) && (addState.sMachinePicturePath === '' || addState.sMaterialsPicturePath === '')) { + tableData[iIndex] = { ...tableDataNewRow, ...addState }; + const data = []; + const updataData = {}; + const updateWhere = {}; + const column = {}; + if (addState.sMaterialsPicturePath === '') { + column.sMaterialsPicturePath = addState.sMaterialsPicturePath; + } + if (addState.sMachinePicturePath === '') { + column.sMachinePicturePath = addState.sMachinePicturePath; + } + if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) { + updateWhere.sId = tableDataNewRow.sId; + updataData.sTable = controlConfig.sTbName; + updataData.sWhere = updateWhere; + updataData.column = column; + data.push(updataData); + /* 调用接口将图片地址存入控制表 */ + const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`; + const value = { + data, + sClientType: '1', + }; + const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data; + if (dataReturn.code === 1) { + /* 刷新 */ + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + } else { + this.getServiceError(dataReturn); + } + } + } + } + } + if (commonUtils.isNotEmptyArr(controlFilfileData)) { + const addState = {}; + const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId); + if (iIndex > -1) { + const tableDataNewRow = tableData[iIndex]; + const { sMaterialsPicturePath, sMachinePicturePath } = tableDataNewRow; + const controlsMaterialsPictureData = controlFilfileData.filter(item => item.sType === '3'); + if (commonUtils.isNotEmptyArr(controlsMaterialsPictureData)) { + addState.sMaterialsPicturePath = commonUtils.isNotEmptyObject(controlsMaterialsPictureData[0].sPicturePath) ? controlsMaterialsPictureData[0].sPicturePath : ''; /* 上机默认取上传图片的第一条 */ + } + const controlsMachinePictureData = controlFilfileData.filter(item => item.sType === '4'); + if (commonUtils.isNotEmptyArr(controlsMachinePictureData)) { + addState.sMachinePicturePath = commonUtils.isNotEmptyObject(controlsMachinePictureData[0].sPicturePath) ? controlsMachinePictureData[0].sPicturePath : ''; + } + if (commonUtils.isNotEmptyObject(addState)) { + tableData[iIndex] = { ...tableDataNewRow, ...addState }; + const data = []; + const updataData = {}; + const updateWhere = {}; + const column = {}; + if (commonUtils.isNotEmptyObject(addState.sMaterialsPicturePath) && addState.sMaterialsPicturePath !== sMaterialsPicturePath) { + column.sMaterialsPicturePath = addState.sMaterialsPicturePath; + } + if (commonUtils.isNotEmptyObject(addState.sMachinePicturePath) && addState.sMachinePicturePath !== sMachinePicturePath) { + column.sMachinePicturePath = addState.sMachinePicturePath; + } + if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) { + updateWhere.sId = tableDataNewRow.sId; + updataData.sTable = controlConfig.sTbName; + updataData.sWhere = updateWhere; + updataData.column = column; + data.push(updataData); + /* 调用接口将图片地址存入控制表 */ + const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`; + const value = { + data, + sClientType: '1', + }; + const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data; + if (dataReturn.code === 1) { + this.props.onSaveState({ tableData }); + /* 刷新 */ + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + } else { + this.getServiceError(dataReturn); + } + } + } + } + } + } else { + return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo')); + } + } + + handleFilfileManageOk1 = async (params) => { + const { controlFilfileData, controlFilfileDelData, sSrcSlaveId } = params; + const { + controlData: tableData, app, sModelsId, token, controlConfig, + } = this.props; + + if (!commonUtils.isNotEmptyObject(sSrcSlaveId)) { + message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo')); + return; + } + + // sMaterialsPicturePath:刀图 -> sType:2 + // sBeerMapPath:啤图 -> sType:1 + + if (commonUtils.isNotEmptyArr(controlFilfileDelData)) { + const addState = {}; + const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId); + if (iIndex > -1) { + const tableDataNewRow = tableData[iIndex]; + const { sMaterialsPicturePath, sBeerMapPath } = tableDataNewRow; + const controlsMaterialsPictureDelData = controlFilfileDelData.filter(item => item.sType === '2'); + if (commonUtils.isNotEmptyArr(controlsMaterialsPictureDelData)) { + controlsMaterialsPictureDelData.forEach((slaveItem) => { + if (slaveItem.sPicturePath === sMaterialsPicturePath) { + addState.sMaterialsPicturePath = ''; + } + }); + } + const sBeerMapPathDelPath = controlFilfileDelData.filter(item => item.sType === '1'); + if (commonUtils.isNotEmptyArr(sBeerMapPathDelPath)) { + sBeerMapPathDelPath.forEach((slaveItem) => { + if (slaveItem.sPicturePath === sBeerMapPath) { + addState.sBeerMapPath = ''; + } + }); + } + if (commonUtils.isNotEmptyObject(addState) && (addState.sBeerMapPath === '' || addState.sMaterialsPicturePath === '')) { + tableData[iIndex] = { ...tableDataNewRow, ...addState }; + const data = []; + const updataData = {}; + const updateWhere = {}; + const column = {}; + if (addState.sMaterialsPicturePath === '') { + column.sMaterialsPicturePath = addState.sMaterialsPicturePath; + } + if (addState.sBeerMapPath === '') { + column.sBeerMapPath = addState.sBeerMapPath; + } + if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) { + updateWhere.sId = tableDataNewRow.sId; + updataData.sTable = controlConfig.sTbName; + updataData.sWhere = updateWhere; + updataData.column = column; + data.push(updataData); + /* 调用接口将图片地址存入控制表 */ + const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`; + const value = { + data, + sClientType: '1', + }; + const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data; + if (dataReturn.code === 1) { + /* 刷新 */ + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + } else { + this.getServiceError(dataReturn); + } + } + } + } + } + if (commonUtils.isNotEmptyArr(controlFilfileData)) { + const addState = {}; + const iIndex = tableData.findIndex(item => item.sId === sSrcSlaveId); + if (iIndex > -1) { + const tableDataNewRow = tableData[iIndex]; + const { sMaterialsPicturePath, sBeerMapPath } = tableDataNewRow; + const controlsMaterialsPictureData = controlFilfileData.filter(item => item.sType === '2'); + if (commonUtils.isNotEmptyArr(controlsMaterialsPictureData)) { + let dataIndex = 0; + const sDefaultLen = controlsMaterialsPictureData.filter(item => item.bDefault).length; + if (sDefaultLen === 0) { + notification.warning({ message: '提示', description: "【刀图】未设置默认启用项,取第一项数据", placement: 'topRight', duration: 2 }); + } else if (sDefaultLen > 1) { + notification.warning({ message: '提示', description: "【刀图】设置了多个默认启用项,取第一项数据", placement: 'topRight', duration: 2 }); + } else { + dataIndex = controlsMaterialsPictureData.findIndex(item => item.bDefault); + } + const sPicturePath = controlsMaterialsPictureData[dataIndex].sPicturePath; + addState.sMaterialsPicturePath = commonUtils.isNotEmptyObject(sPicturePath) ? sPicturePath : ''; /* 上机默认取上传图片的第一条 */ + } + const sBeerMapPathData = controlFilfileData.filter(item => item.sType === '1'); + if (commonUtils.isNotEmptyArr(sBeerMapPathData)) { + let dataIndex = 0; + const sDefaultLen = sBeerMapPathData.filter(item => item.bDefault).length; + if (sDefaultLen === 0) { + notification.warning({ message: '提示', description: "【啤图】未设置默认启用项,取第一项数据", placement: 'topRight', duration: 2 }); + } else if (sDefaultLen > 1) { + notification.warning({ message: '提示', description: "【啤图】设置了多个默认启用项,取第一项数据", placement: 'topRight', duration: 2 }); + } else { + dataIndex = sBeerMapPathData.findIndex(item => item.bDefault); + } + const sPicturePath = sBeerMapPathData[dataIndex].sPicturePath; + addState.sBeerMapPath = commonUtils.isNotEmptyObject(sPicturePath) ? sPicturePath : ''; + } + if (commonUtils.isNotEmptyObject(addState)) { + tableData[iIndex] = { ...tableDataNewRow, ...addState }; + const data = []; + const updataData = {}; + const updateWhere = {}; + const column = {}; + if (commonUtils.isNotEmptyObject(addState.sMaterialsPicturePath) && addState.sMaterialsPicturePath !== sMaterialsPicturePath) { + column.sMaterialsPicturePath = addState.sMaterialsPicturePath; + } + if (commonUtils.isNotEmptyObject(addState.sBeerMapPath) && addState.sBeerMapPath !== sBeerMapPath) { + column.sBeerMapPath = addState.sBeerMapPath; + } + if (commonUtils.isNotEmptyObject(tableDataNewRow.sId) && commonUtils.isNotEmptyObject(column)) { + updateWhere.sId = tableDataNewRow.sId; + updataData.sTable = controlConfig.sTbName; + updataData.sWhere = updateWhere; + updataData.column = column; + data.push(updataData); + /* 调用接口将图片地址存入控制表 */ + const configUrl = `${commonConfig.server_host}business/updateBusinessData?sModelsId=${sModelsId}`; + const value = { + data, + sClientType: '1', + }; + const dataReturn = (await commonServices.postValueService(token, value, configUrl)).data; + if (dataReturn.code === 1) { + this.props.onSaveState({ tableData }); + /* 刷新 */ + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + } else { + this.getServiceError(dataReturn); + } + } + } + } + } + } + + // 收付款分摊 + handleShare = () => { + /* 分摊 */ + const { + sModelsType, masterData: masterDataOld, slaveData: slaveDataOld, app, + } = this.props; + if ((sModelsType.includes('cashier/receipt') && masterDataOld.sBillType !== 'customer') || + (sModelsType.includes('cashier/payment') && masterDataOld.sBillType !== 'supply')) { + return masterDataOld; + } + const { dNetMoney } = app.decimals; + const masterData = { ...masterDataOld }; + const slaveData = []; + if (commonUtils.isNotEmptyArr(slaveDataOld) && slaveDataOld.length > 0) { + slaveDataOld.forEach((item) => { + slaveData.push({ ...item }); + }); + } + + const dTotalMoney = masterData.dTotalMoney !== undefined ? masterData.dTotalMoney : 0; + let minusSum = 0; /* 负数求和 */ + let minusRoundingSum = 0; /* 负数舍入求和 */ + const minusData = []; /* 负数集 */ + let positiveSum = 0; /* 正数求和 */ + let positiveRoundingSum = 0; /* 正数舍入求和 */ + const positiveData = []; /* 正数集 */ + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) { + slaveData.forEach((child) => { + child.dTotalMoney = 0; + child.handleType = commonUtils.isEmpty(child.handleType) ? 'update' : child.handleType; + child.dRoundingMoney = commonUtils.isNum(child.dRoundingMoney) ? child.dRoundingMoney : 0; + child.dBalanceMoney = commonUtils.convertFixNum(child.dBalanceMoney, dNetMoney); /* 根据系统设定位数格式未付款金额*/ + if (child.dBalanceMoney < 0) { + minusSum -= Math.abs(child.dBalanceMoney); + minusRoundingSum -= Math.abs(child.dRoundingMoney); + minusData.push(child); + } else { + const positiveSumTemp = commonUtils.convertFixNum(child.dBalanceMoney, dNetMoney) + commonUtils.convertFixNum(positiveSum, dNetMoney); + positiveSum = commonUtils.convertFixNum(positiveSumTemp, dNetMoney); + const positiveRoundingSumTemp = commonUtils.convertFixNum(child.dRoundingMoney, dNetMoney) + commonUtils.convertFixNum(positiveRoundingSum, dNetMoney); + positiveRoundingSum = commonUtils.convertFixNum(positiveRoundingSumTemp, dNetMoney); + positiveData.push(child); + } + }); + } + if (commonUtils.convertFixNum(((minusSum - minusRoundingSum) + (positiveSum - positiveRoundingSum)) - dTotalMoney, dNetMoney) <= 0) { + /* 够扣 */ + positiveSum -= minusRoundingSum; + positiveSum -= positiveRoundingSum; + positiveSum -= dTotalMoney; /* 去除分摊金额 */ + if (positiveSum >= 0) { + for (let i = 0; i < minusData.length; i += 1) { + /* 负数遍历 */ + const dBalanceMoney = Math.abs(minusData[i].dBalanceMoney); /* 余额正数 */ + const dRoundingMoney = minusData[i].dRoundingMoney !== undefined + ? minusData[i].dRoundingMoney + : 0; + if (positiveSum <= dBalanceMoney) { + minusData[i].dTotalMoney = commonUtils.convertFixNum(-(positiveSum) - (dRoundingMoney * 1), dNetMoney); + if (minusData[i].handleType === undefined) { + minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType; + } + break; + } else { + minusData[i].dTotalMoney = commonUtils.convertFixNum(-(dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney); + positiveSum -= dBalanceMoney - (dRoundingMoney * 1); + if (minusData[i].handleType === undefined) { + minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType; + } + } + } + for (let i = 0; i < positiveData.length; i += 1) { + /* 正数遍历 */ + const { dBalanceMoney } = positiveData[i]; /* 余额正数 */ + const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined + ? positiveData[i].dRoundingMoney + : 0; + positiveData[i].dTotalMoney = commonUtils.convertFixNum((dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney); + if (positiveData[i].handleType === undefined) { + positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType; + } + } + masterData.dAdvanceMoney = 0; + masterData.bAdvance = false; + } else { + /* 有预收 */ + for (let i = 0; i < positiveData.length; i += 1) { + /* 正数遍历 */ + const { dBalanceMoney } = positiveData[i]; /* 余额正数 */ + const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined + ? positiveData[i].dRoundingMoney + : 0; + positiveData[i].dTotalMoney = commonUtils.convertFixNum((dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney); + positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType; + } + for (let i = 0; i < minusData.length; i += 1) { + /* 负数遍历 */ + minusData[i].dRoundingMoney = 0; + minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType; + } + masterData.dAdvanceMoney = commonUtils.convertFixNum(Math.abs(positiveSum), dNetMoney); + masterData.bAdvance = true; + } + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + /* 分摊算外币金额 */ + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) { + slaveData.forEach((item, index) => { + slaveData[index].dTotalForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? item.dTotalMoney / dCurrencyRate : 0, dNetMoney); + }); + } + masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType; + if (commonUtils.isNotEmptyNumber(masterData.dTotalMoney)) { + masterData.dProductForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? masterData.dTotalMoney / dCurrencyRate : 0, dNetMoney); + } + this.props.onSaveState({ masterData, slaveData }); + } else if (((minusSum - minusRoundingSum) + (positiveSum - positiveRoundingSum)) - dTotalMoney > 0) { + /* 不够扣情况 */ + minusSum -= minusRoundingSum; + minusSum -= positiveRoundingSum; + minusSum -= dTotalMoney; /* 去除分摊金额 */ + for (let i = 0; i < minusData.length; i += 1) { + /* 负数遍历 */ + const dBalanceMoney = Math.abs(minusData[i].dBalanceMoney); /* 余额正数 */ + const dRoundingMoney = minusData[i].dRoundingMoney !== undefined + ? minusData[i].dRoundingMoney + : 0; + minusData[i].dTotalMoney = commonUtils.convertFixNum(-(dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney); + minusData[i].handleType = commonUtils.isEmpty(minusData[i].handleType) ? 'update' : minusData[i].handleType; + } + for (let i = 0; i < positiveData.length; i += 1) { + /* 正数遍历 */ + const { dBalanceMoney } = positiveData[i]; /* 余额正数 */ + const dRoundingMoney = positiveData[i].dRoundingMoney !== undefined + ? positiveData[i].dRoundingMoney + : 0; + if (Math.abs(minusSum) <= dBalanceMoney) { + positiveData[i].dTotalMoney = commonUtils.convertFixNum(Math.abs(minusSum) - (dRoundingMoney * 1), dNetMoney); + positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType; + break; + } else { + positiveData[i].dTotalMoney = commonUtils.convertFixNum((dBalanceMoney * 1) - (dRoundingMoney * 1), dNetMoney); + minusSum = -(Math.abs(minusSum) - (dBalanceMoney * 1)); // - (dRoundingMoney * 1) + positiveData[i].handleType = commonUtils.isEmpty(positiveData[i].handleType) ? 'update' : positiveData[i].handleType; + } + } + const dCurrencyRate = commonUtils.convertIsNotNumToNumber1(masterData.dCurrencyRate); /* 汇率 */ + /* 分摊算外币金额 */ + if (commonUtils.isNotEmptyArr(slaveData) && slaveData.length > 0) { + slaveData.forEach((item, index) => { + slaveData[index].dTotalForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? item.dTotalMoney / dCurrencyRate : 0, dNetMoney); + }); + } + masterData.dAdvanceMoney = 0; + masterData.bAdvance = false; + masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType; /* 主表分摊算外币金额 */ + if (commonUtils.isNotEmptyNumber(masterData.dTotalMoney)) { + masterData.dProductForeignMoney = commonUtils.convertFixNum(dCurrencyRate !== 0 ? masterData.dTotalMoney / dCurrencyRate : 0, dNetMoney); + } + this.props.onSaveState({ masterData, slaveData }); + } + // let allTotalMoney = 0; + // let allRoundingMoney = 0; + // slaveData.forEach((child) => { + // if (child.dTotalMoney !== undefined) { + // allTotalMoney += child.dTotalMoney * 1; + // } + // if (child.dRoundingMoney !== undefined) { + // allRoundingMoney += child.dRoundingMoney * 1; + // } + // }); + // this.props.onSaveState({ allTotalMoney, allRoundingMoney }); + return masterData; + }; + + handleImport = async (num) => { + const { + sModelsId, sModelsType, masterConfig, masterData, slaveData, slaveDelData: slaveDelDataOld, app, + } = this.props; + if (commonUtils.isEmpty(masterData.sWareHouseId)) { + message.error(commonFunc.getConfigShowName(masterConfig, 'sWareHouseId') + commonFunc.showMessage(app.commonConst, 'isNotNull')); // 不能为空! + return; + } + let url; + if (sModelsType.includes('productStock/')) { + url = `${commonConfig.server_host}eleProductStock/getEleProductStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}&num=${num}`; + } else { + url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}&num=${num}`; + } + + const dataReturn = (await commonServices.getService(this.props.app.token, url)).data; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows; + const slaveDelData = commonUtils.isEmptyArr(slaveDelDataOld) ? [] : slaveDelDataOld; + slaveData.forEach((item) => { + item.handleType = 'del'; + slaveDelData.push({ ...item }); + }); + returnData.forEach((item, index) => { + const tableDataRow = this.handleTableAdd('slave', true); + item.handleType = 'add'; + item.sParentId = masterData.sId; + item.iOrder = index + 1; + returnData[index] = { ...tableDataRow, ...item }; + }); + this.props.onSaveState({ slaveData: returnData, slaveDelData }); + } else { + this.props.getServiceError(dataReturn); + } + this.props.onSaveState({ isGetDataVisible: false }); + }; + + handleOutTemplate = async () => { + const { + token, formData, + } = this.props; + const slaveConfig = formData.filter(item => item.sGrd === 'importTemplate')[0]; + window.location.href = `${commonConfig.server_host}import/exportTemplet?gdsconfigformmasterId=${slaveConfig.sId}&token=${token}`; + }; + + /* 导出模版数据 */ + handleOutTemplateData = async () => { + const { + slaveConfig, formRoute, masterData, sortedInfo, + } = this.props; + const sort = commonUtils.isNotEmptyObject(sortedInfo) ? sortedInfo.order === 'ascend' ? 'asc' : 'desc' : ''; + const slaveOrderBy = commonUtils.isNotEmptyObject(sortedInfo) && Object.keys(sortedInfo).length > 0 ? { [sortedInfo.columnKey]: sort } : ''; // + const sId = commonUtils.isNotEmptyObject(masterData) ? masterData.sId : ''; + if (commonUtils.isNotEmptyObject(sId)) { + const sSqlCondition = { sParentId: sId }; + let url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${slaveConfig.sParentId}&token=${this.props.app.token}&sName=${formRoute}`; + if (commonUtils.isNotEmptyObject(sSqlCondition)) { + url = `${url}&sSqlCondition=${encodeURIComponent(JSON.stringify(sSqlCondition))}`; + } + if (slaveOrderBy !== undefined && slaveOrderBy !== '' && Object.keys(slaveOrderBy).length > 0) { + url = `${url}&sFilterOrderBy=${encodeURIComponent(JSON.stringify(slaveOrderBy))}`; + } + window.open(url); + } else { + message.warn('没有主表数据!'); + } + }; + + + /* 导入未清数据 */ + handleImportFormData = () => { + const { masterData, sModelsType } = this.props; + if (commonUtils.isNotEmptyObject(masterData)) { + let bFilterProValue = ''; + let bFilterProName = ''; + if (sModelsType === 'cashier/payment') { /* 付款单 */ + const { sSupplyName, sSupplyId } = masterData; + if (commonUtils.isEmptyObject(sSupplyName)) { + message.error('供应商名称不能为空!'); + return; + } else { + bFilterProName = 'sSupplyGuid_pro'; + bFilterProValue = sSupplyId; + } + } else if (sModelsType === 'cashier/receipt') { /* 收款单 */ + const { sCustomerName, sCustomerId } = masterData; + if (commonUtils.isEmptyObject(sCustomerName)) { + message.error('客户名称不能为空!'); + return; + } else { + bFilterProName = 'sCustomerGuid_pro'; + bFilterProValue = sCustomerId; + } + } + this.props.onSaveState({ importFormDataVisible: true, bFilterProName, bFilterProValue }); + } + } + handleDesignFunction = () => { + this.props.onSaveState({ visibleStatement: true }); + }; + handleBatchPriceUpdate = () => { + const { slaveData, slaveSelectedRowKeys, app } = this.props; + if (slaveSelectedRowKeys === undefined || slaveSelectedRowKeys.length !== 1) { + return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择一条数据进行操作 */ + } else { + const batchPriceUpdateData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]); + this.props.onSaveState({ batchPriceUpdateData, visibleBatchPriceUpdate: true }); + } + }; + + /* 有外币时,配置BtnBatchNPriceUpdate, 会调用这个方法 */ + handleBatchNPriceUpdate = () => { + const { slaveData, slaveSelectedRowKeys, app } = this.props; + if (slaveSelectedRowKeys === undefined || slaveSelectedRowKeys.length !== 1) { + return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择一条数据进行操作 */ + } else { + const batchNPriceUpdateData = slaveData.filter(item => item.sId === slaveSelectedRowKeys[0]); + this.props.onSaveState({ batchNPriceUpdateData, visibleBatchNPriceUpdate: true }); + } + }; + + /* 解析消息 */ + handleGetMsg = (str) => { + const msgArr = commonUtils.isNotEmptyObject(str) ? str.split('xpm'): ''; + const divStr = []; + if(commonUtils.isNotEmptyArr(msgArr)) { + for (let i = 0; i < msgArr.length; i ++) { + divStr.push(

{msgArr[i]}

); + } + } + return divStr; + } + + /* 导出Excel */ + handleOut = async () => { + const { + slaveConfig, formRoute, masterData, + } = this.props; + + /* 导出使用Post提交 */ + const url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${slaveConfig.sParentId}&sName=${formRoute}&token=${encodeURIComponent(this.props.app.token)}`; + const conditionValuesStr = JSON.stringify({ sId: masterData?.sId, sBillNo: masterData?.sBillNo }); + this.handleOpenOut(url, '', '', undefined, conditionValuesStr); + }; + + /* Get提交地址栏参数过多,更改Get提交为Post提交 */ + handleOpenOut = (url, bFilter, slaveOrderBy, sGroupByList, conditionValues) => { + const newWin = window.open(); + let formStr = ''; + // 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据 + formStr = `
` + + ``; + if (commonUtils.isNotEmptyObject(conditionValues)) { + formStr += ``; + } + formStr += ''; + newWin.document.body.innerHTML = formStr; + newWin.document.forms[0].submit(); + return newWin; + } + + /** 按钮操作事件 */ + handleButtonClick = async (name) => { + if (name === 'BtnOut') { + this.handleOut(); + } else if (name === 'BtnDesignFunction') { + this.handleDesignFunction(); + } else if (name === 'BtnBatchPriceUpdate') { + this.handleBatchPriceUpdate(); + } else if (name === 'BtnBatchNPriceUpdate') { + this.handleBatchNPriceUpdate(); + } else if (name === 'BtnOutTemplate') { + this.handleOutTemplate(); + } else if (name === 'BtnOutTemplateData') { /* 导出模版数据 */ + this.handleOutTemplateData(); + }else if (name === 'BtnShowAll') { /* 显示全部部件 */ + this.handleTableCancelSelect('slave'); + } else if (name === 'BtnShowControl') { /* 显示部件层级 */ + const { controlData } = this.props; + const expandedRowKeys =[]; + if(commonUtils.isNotEmptyArr(controlData)) { /* 当显示全部时 展开所有部件层级 */ + controlData.forEach((item) => { + const { sId } = item; + expandedRowKeys.push(sId); + }); + } + this.props.onSaveState({ showAllTreeVisible: true, controlShowExpandedRowKeys: { expandedRowKeys: expandedRowKeys } }); + } else if (name === 'BtnRefresh') { + if (this.props.app.currentPane.refresh !== undefined) { + this.props.app.currentPane.refresh(); + } + const { masterConfig, slaveConfig, checkConfig } = this.props; + this.handleGetData(masterConfig, slaveConfig, checkConfig); + } else if(name && name.includes('BtnTempSql')) { /* 通过BtnTempSql按钮 自定义调用Sql 并将数据回填到界面上 */ + const { masterConfig, slaveConfig, sModelsId, token } = this.props; + let { masterData,slaveData } = this.props; + const slave0Data = []; + const slave1Data = []; + const slave2Data = []; + const slave3Data = []; + const slave4Data = []; + const copyTo ={}; + copyTo.name = name; + copyTo.slaveData = slaveData; + const buttonConfigArr = masterConfig && masterConfig.gdsconfigformslave.filter(item => item.sControlName && item.sControlName.includes('BtnTempSql')); + const allConfig = { + slaveConfig, masterConfig, + }; + if(commonUtils.isNotEmptyArr(buttonConfigArr)) { + copyTo.config = buttonConfigArr; + const sTmpInfoConfig = buttonConfigArr.filter(item => item.sControlName && item.sControlName.includes('BtnTempSql'))[0]; + const sControlName = sTmpInfoConfig.sControlName; + const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`; + const sConfigformId = commonUtils.isEmpty(sTmpInfoConfig) ? '' : sTmpInfoConfig.sParentId; + if (commonUtils.isNotEmptyObject(sTmpInfoConfig)) { + const newCopyTo = {}; + newCopyTo.master = copyTo.masterData; + newCopyTo.slave = commonUtils.isEmpty(copyTo.slaveData) ? [] : copyTo.slaveData[0]; + // const sRowData = copyTo.slaveData; + const sRowData = [masterData]; + const condition = { sConfigformId, sControlName, sRowData }; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + if (dataReturn.code === 1) { + slaveData = []; + const returnData = dataReturn.dataset.rows[0]; + const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.masterdetail`.toLowerCase()); + const copyToSlaveConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave`.toLowerCase()); + const copyToSlaveDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slavedetail`.toLowerCase()); + const copyToSlave1Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave1`.toLowerCase()); + const copyToSlave0Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave0`.toLowerCase()); + const copyToSlave2Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave2`.toLowerCase()); + const copyToSlava3Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava3`.toLowerCase()); + const copyToSlava4Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slava4`.toLowerCase()); + const masterDetailAssignField = commonUtils.isNotEmptyArr(copyToMasterDetailConfig) ? copyToMasterDetailConfig[0].sAssignField : ''; + const salveDetailAssignField = commonUtils.isNotEmptyArr(copyToSlaveDetailConfig) ? copyToSlaveDetailConfig[0].sAssignField : ''; + const salveAssignField = commonUtils.isNotEmptyArr(copyToSlaveConfig) ? copyToSlaveConfig[0].sAssignField : ''; + const slave1AssignField = commonUtils.isNotEmptyArr(copyToSlave1Config) ? copyToSlave1Config[0].sAssignField : ''; + const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[0].sAssignField : ''; + const slave2AssignField = commonUtils.isNotEmptyArr(copyToSlave2Config) ? copyToSlave2Config[0].sAssignField : ''; + const slave3AssignField = commonUtils.isNotEmptyArr(copyToSlava3Config) ? copyToSlava3Config[0].sAssignField : ''; + const slave4AssignField = commonUtils.isNotEmptyArr(copyToSlava4Config) ? copyToSlava4Config[0].sAssignField : ''; + if (commonUtils.isNotEmptyArr(returnData.master) && masterDetailAssignField) { + masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo) }; + } + if (commonUtils.isNotEmptyArr(returnData.slave)) { + returnData.slave.forEach((slaveItem) => { + newCopyTo.slave = slaveItem; + const newSid = commonUtils.createSid(); + let slaveRow = commonFunc.getDefaultData(allConfig.slaveConfig, newCopyTo, { newSid }); // 取默认值 + if (salveDetailAssignField) { + slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo) }; + } else if (salveAssignField) { + slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, slaveItem, newCopyTo) }; // 取赋值字段 + } + slaveRow.handleType = 'add'; + slaveRow.sId = newSid; + slaveRow.sParentId = masterData.sId; + slaveData.push(slaveRow); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave0)) { + returnData.slave0.forEach((slave0Item) => { + newCopyTo.slave0 = slave0Item; + const newSid = commonUtils.createSid(); + let slave0Row = commonFunc.getDefaultData(allConfig.slave0Config, newCopyTo, { newSid }); // 取默认值 + slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段 + slave0Row.handleType = 'add'; + slave0Row.sId = newSid; + slave0Row.sParentId = masterData.sId; + slave0Data.push(slave0Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave1)) { + returnData.slave1.forEach((slave1Item) => { + newCopyTo.slave1 = slave1Item; + const newSid = commonUtils.createSid(); + let slave1Row = commonFunc.getDefaultData(allConfig.slave1Config, newCopyTo, { newSid }); // 取默认值 + slave1Row = { ...slave1Row, ...commonFunc.getAssignFieldValue(slave1AssignField, slave1Item, newCopyTo) }; // 取赋值字段 + slave1Row.handleType = 'add'; + slave1Row.sId = newSid; + slave1Row.sParentId = masterData.sId; + slave1Data.push(slave1Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave2)) { + returnData.slave2.forEach((slave2Item) => { + newCopyTo.slave2 = slave2Item; + const newSid = commonUtils.createSid(); + let slave2Row = commonFunc.getDefaultData(allConfig.slave2Config, newCopyTo, { newSid }); // 取默认值 + slave2Row = { ...slave2Row, ...commonFunc.getAssignFieldValue(slave2AssignField, slave2Item, newCopyTo) }; // 取赋值字段 + slave2Row.handleType = 'add'; + slave2Row.sId = newSid; + slave2Row.sParentId = masterData.sId; + slave2Data.push(slave2Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave3)) { + returnData.slave3.forEach((slave3Item) => { + newCopyTo.slave3 = slave3Item; + const newSid = commonUtils.createSid(); + let slave3Row = commonFunc.getDefaultData(allConfig.slave3Config, newCopyTo, { newSid }); // 取默认值 + slave3Row = { ...slave3Row, ...commonFunc.getAssignFieldValue(slave3AssignField, slave3Item, newCopyTo) }; // 取赋值字段 + slave3Row.handleType = 'add'; + slave3Row.sId = newSid; + slave3Row.sParentId = masterData.sId; + slave3Data.push(slave3Row); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.slave4)) { + returnData.slave4.forEach((slave4Item) => { + newCopyTo.slave4 = slave4Item; + const newSid = commonUtils.createSid(); + let slave4Row = commonFunc.getDefaultData(allConfig.slave4Config, newCopyTo, { newSid }); // 取默认值 + slave4Row = { ...slave4Row, ...commonFunc.getAssignFieldValue(slave4AssignField, slave4Item, newCopyTo) }; // 取赋值字段 + slave4Row.handleType = 'add'; + slave4Row.sId = newSid; + slave4Row.sParentId = masterData.sId; + slave4Data.push(slave4Row); + }); + } + this.props.onSaveState({ slaveData, slave1Data, slave2Data, slave3Data, slave4Data}); + } else { + this.props.getServiceError(dataReturn); + } + } + } else { + message.error('请正确配置自定义按钮!'); + } + }else if (name && name.includes('BtnCalc')) { /* 实现通用计算功能 */ + const { masterConfig, masterData, sModelsId, } = this.props; + this.props.onSaveState({ + pageLoading: true + }); + const btnConfig = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => (item.sControlName === name))) ? + masterConfig.gdsconfigformslave.filter(item => (item.sControlName === name))[0] : {};// sButtonEnabled sButtonParam + if(commonUtils.isNotEmptyObject(btnConfig)) { + /* 组装allTableData */ + const allTableMap ={}; + const allReturnMap ={}; + const slaveNameList = []; + /* 从props找到 所有的Config */ + if(commonUtils.isNotEmptyArr(this.props)) { + for (const key of Object.keys(this.props)) { + if(key.includes('Config') && !key.includes('onGet') && !key.includes('report')) { + const tablename = key.replace('Config', '').trim(); + if (this.props.sModelsType === 'manufacture/workOrder3') { + if (tablename === 'materials') continue; + } + slaveNameList.push(tablename); + } + } + } + + if (commonUtils.isNotEmptyArr(slaveNameList)) { + slaveNameList.forEach((name, index) => { + const tableConfig = this.props[name +'Config']; /* 动态配置 */ + if(commonUtils.isNotEmptyObject(tableConfig)) { + const tableData = this.props[name +'Data']; /* 动态配置 */ + const tableSelectedRowKeys = this.props[name + 'SelectedRowKeys']; /* 选中Key */ + allTableMap[name +'.'+ tableConfig.sTbName] = tableData + } + }) + const masterTbName = masterConfig.sTbName; + allTableMap['master.'+ masterTbName] = masterData; + } + const sButtonParam = btnConfig.sButtonParam; + const btn = JSON.parse(sButtonParam); + const sProName = btn.sproName; + const url = `${commonConfig.server_host}calcprocedure/calc?sModelsId=${sModelsId}`; + const value = { + sProName, + sButtonParam, + allTableMap + }; + const dataReturn = (await commonServices.postValueService(this.props.app.token, value, url)).data; + if (dataReturn.code === 1) { + /* 数据操作 数据回传页面 */ + message.success('操作成功!'); + const returnData = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyArr(slaveNameList) && commonUtils.isNotEmptyObject(returnData)) { + if (this.props.sModelsType === 'manufacture/workOrder3') { + slaveNameList.push('materials'); + } + slaveNameList.forEach((name, index) => { + const tableConfig = this.props[name +'Config']; /* 动态配置 */ + let tableDelData = this.props[name +'DelData']; + if(commonUtils.isEmptyArr(tableDelData)) { + tableDelData = []; + } + if (name === 'materials') { + if (this.props.sModelsType === 'manufacture/workOrder3') { + const tableData = this.props[name +'Data']; /* 动态配置 */ + returnData[name +'.'+ tableConfig.sTbName] = tableData; + } + } + let tableDelDataNew = [] + let tableData = []; + if(commonUtils.isNotEmptyObject(tableConfig)) { + tableData = returnData[name +'.'+ tableConfig.sTbName]; /* 动态配置 */ + if(commonUtils.isNotEmptyArr(tableData) && Array.isArray(tableData)) { + tableDelDataNew = tableData.filter(item => item.handleType === 'del'); + tableData = tableData.filter(item => item.handleType !== 'del'); + tableDelData = tableDelData.concat(tableDelDataNew); + } + + } + allReturnMap[name +'Data'] = tableData; + allReturnMap[name +'DelData'] = tableDelData; + }); + const masterTbName = masterConfig.sTbName; + allReturnMap.master = returnData['master.'+ masterTbName]; + console.log('计算返回', allReturnMap); + } + this.props.onSaveState({ ...allReturnMap, pageLoading:false, }); + }else if (dataReturn.code === -8 || dataReturn.code === 2) { + Modal.info({ + title: '温馨提示:', + content: ( +
+ {this.handleGetMsg(dataReturn.msg)} +
+ ), + okText: '确认', + onOk() {}, + }); + this.props.onSaveState({ ...allReturnMap, pageLoading:false, }); + } else { /* 失败 */ + this.props.getServiceError(dataReturn); + this.props.onSaveState({ pageLoading:false, }); + } + + } + } else if (name && name.includes('BtnViewPartsInfo')) { + const partsInfoType = name.split('_')[1]; + const { masterConfig } = this.props; + const btnConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName === name); + const sCusModelId = '12710101117151497988680'; + const slaveGuidConfig = await this.handleGetFormConfig(sCusModelId); + this.props.onSaveState({ + partsInfoModalVisible: true, + partsInfoModalTitle: btnConfig[0].showName, + partsInfoType, + partsInfoBtnConfig: btnConfig[0], + slaveGuidConfig + }); + } else if (name === 'BtnTmpInfoBySql') { /* 自定义数据源 */ + this.handleBtnTmpInfoBySql(name); + } + const { sModelsType } = this.props; + // 收付款分摊 + if (sModelsType.includes('cashier/') || sModelsType.includes('sales/') || sModelsType.includes('purchase/')) { + if (name === 'BtnShare') { + this.handleShare(); + } + if (sModelsType.includes('cashier/') && name === 'BtnImportFormData') { /* 导入未清数据 */ + this.handleImportFormData(name); + } + } else if (sModelsType.includes('materialsStock/') || sModelsType.includes('productStock/')) { + if (name === 'BtnImport') { + this.props.onSaveState({ isGetDataVisible: true }); + } + } + }; + + handleBtnTmpInfoBySql = async (btnName) => { + const { masterConfig, masterData, slaveConfig, slaveData, slaveSelectedRowKeys, token, sModelsId} = this.props; + let slaveRow = {}; + if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { + const iIndex = slaveData.findIndex(item => slaveSelectedRowKeys.includes(item.sId)); + if(iIndex > -1) { + slaveRow = slaveData[iIndex]; + } + } else { + slaveRow = slaveData[0]; + } + const tableConfig = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === btnName)) ? + masterConfig.gdsconfigformslave.filter(item => item.sControlName === btnName)[0] : {}; + const sTmpInfoConfig = tableConfig; + const sButtonParam = tableConfig.sButtonParam; + const btn = commonUtils.isNotEmptyObject(sButtonParam) ? JSON.parse(sButtonParam) : ''; + if(commonUtils.isNotEmptyObject(btn)) { + const sProName = commonUtils.isNotEmptyObject(btn) ? btn.sproName : ''; + const sTmpInfoBySqlBtnName = btn.sControlName; + const newCopyTo = {}; + newCopyTo.master = masterData; + /* 找到自定义TempInfo配置1111 */ + const sTmpInfoBySqlBtnConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes(sTmpInfoBySqlBtnName)); + const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`; + const sConfigformId = commonUtils.isEmpty(sTmpInfoBySqlBtnConfig) ? '' : sTmpInfoBySqlBtnConfig[0].sParentId; + const sControlName = commonUtils.isNotEmptyObject(sTmpInfoBySqlBtnName) ? sTmpInfoBySqlBtnName : 'TmpInfoBySql'; + const sAssignField = sTmpInfoBySqlBtnConfig[0].sAssignField; + const sRowData = [slaveRow]; + /* 如果sqlCondition条件 不在rowData中 则添加 */ + const sSqlCondition = sTmpInfoBySqlBtnConfig[0].sSqlCondition; + if(commonUtils.isNotEmptyObject(sSqlCondition)) { + let name = ''; /* 拿到条件表名 */ + let conditionValues = {}; + if(sSqlCondition.includes('.')) { + let newRow = {}; + const name = sSqlCondition.split('.')[0]; + if(name === 'master') { + newRow = masterData; + } + conditionValues = this.props.getSqlCondition(sTmpInfoBySqlBtnConfig[0], name, newRow); + if(commonUtils.isNotEmptyObject(conditionValues)) { + for (const key of Object.keys(conditionValues)) { + if(commonUtils.isNotEmptyArr(sRowData)) { + if(commonUtils.isEmptyObject(sRowData[0][key])) { + sRowData[0][key] = conditionValues[key]; + } + } + + } + } + } + } + const values = { sConfigformId, sControlName, sRowData }; + if (true) { + const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data; + const allReturnMap = {}; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(returnData)) { + for (const key of Object.keys(returnData)) { + const sName = `${key}Data`; + const sDelName = `${key}DelData`; + // allReturnMap[sName] = returnData[key]; + let { [`${key}Data`]: oldData, [`${key}Data`]: oldDelData } = this.props; + + if (commonUtils.isEmptyArr(oldDelData)) { + oldDelData = []; + } + if (commonUtils.isEmptyArr(oldData)) { + oldData = []; + } + if (sTmpInfoBySqlBtnName.includes('_edit')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + const sActiveKey = sTmpInfoBySqlBtnConfig[0].sActiveKey; + const keyData = returnData[key]; + let newData = []; + if (commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + const filterData = oldData.filter(item => item[sActiveKey] !== child[sActiveKey]); + if (commonUtils.isNotEmptyArr(filterData) && filterData.length === oldData.length) { + let tableRow = {}; + tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.handleType = 'add'; + newData.push(tableRow); + } + }); + newData = oldData.concat(newData) + } + allReturnMap[sName] = newData; + } else if (sTmpInfoBySqlBtnName.includes('_del')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + oldData.forEach((child) => { + child.handleType ='del'; + oldDelData.push(child); + }); + allReturnMap[sDelName] = oldDelData; + oldData = []; + console.log('returnData', returnData[key]); + const keyData = returnData[key]; + if (commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + const tableRow = { ...child, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.handleType = 'add'; + oldData.push(tableRow); + }); + } + allReturnMap[sName] = oldData; + } else { + allReturnMap[sName] = returnData[key]; + } + + } + if (commonUtils.isNotEmptyArr(allReturnMap.masterData) && Array.isArray(allReturnMap.masterData)) { + allReturnMap.masterData = allReturnMap.masterData[0]; + if(commonUtils.isNotEmptyObject(allReturnMap.masterData.customConfig)) { + const columnConfig = JSON.parse(allReturnMap.masterData.customConfig); + console.log('columnConfig:', columnConfig); + const newConfig =JSON.parse(JSON.stringify(slaveConfig)); + let buttonConfig = []; + if(commonUtils.isNotEmptyArr(slaveConfig?.gdsconfigformslave)) { + buttonConfig = slaveConfig?.gdsconfigformslave.filter(item => commonUtils.isEmptyObject(item.sName) && commonUtils.isNotEmptyObject(item.sControlName) ); + } + newConfig.gdsconfigformslave = columnConfig.concat(buttonConfig); + allReturnMap.slaveConfig = newConfig; + } + } + console.log('allReturnMap:', allReturnMap); + this.props.onSaveState({ ...allReturnMap }); + } + } else { + this.props.getServiceError(dataReturn); + } + } + } else { + message.error('配置错误,没有配置对应字段!'); + } + + } + + handleBtnChoose = async (name, sControlName, chooseConfig, recordIndex, tableName) => { + const { token } = this.props; + const { processSelectedRowKeys } = this.props; + /* 如果是材料 则校验必须选择工序 */ + if(name === 'materials') { + if (commonUtils.isEmptyArr(processSelectedRowKeys)) { + message.warning('请选择对应工序'); + return; + } + } + const url = `${commonConfig.server_host}/gdsmodule/getGdsmoduleById/${chooseConfig.sActiveId}?sModelsId=${chooseConfig.sActiveId}`; + const dataReturn = (await commonServices.getService(token, url)).data; + if (dataReturn.code === 1) { + const [returnData] = dataReturn.dataset.rows; + this.props.onSaveState({ + [`${name}ChooseVisible`]: true, [`${name}ChooseData`]: returnData, slaveSelectedIndex: recordIndex, tableName, + }); + } else { + this.props.getServiceError(dataReturn); + } + }; + + handleSelect = (name, selectConfig, selectData) => { + const { + [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterData, slaveSelectedIndex, + } = this.props; + if (commonUtils.isNotEmptyArr(selectData)) { + selectData.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + // newCopyTo.slave = item; + const newSid = commonUtils.createSid(); + let tableDataRow = commonFunc.getDefaultData(tableConfig, newCopyTo, { newSid }); // 取默认值 + tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 + tableDataRow.handleType = 'add'; + tableDataRow.sId = newSid; + tableDataRow.sParentId = masterData.sId; + if (name === 'slave' && selectConfig.sControlName === 'BtnChooseMaterials' && index === 0 && (commonUtils.isEmpty(tableData[slaveSelectedIndex].sProductName) || tableData[slaveSelectedIndex].sProductName === '')) { + tableData[slaveSelectedIndex] = { ...tableData[slaveSelectedIndex], ...tableDataRow }; + } else { + tableData.push(tableDataRow); + } + }); + } + this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}ChooseVisible`]: false }); + }; + + handleSelectCancel = (name) => { + if (name === 'process') this.isSColorSerialMemo.current = false; + this.props.onSaveState({ [`${name}ChooseVisible`]: false }); + }; + /* 双击弹出Memo */ + // handleGetMemo = (name, sValue, sMemoFiled, sRecord) => { + // const { sCurrMemoProps } = this.props; + // let { [`${name}Data`]: tableData } = this.props; + // const addStata = { [`${sMemoFiled}`]: sValue }; + // if (name !== 'master') { + // const iIndex = tableData.findIndex(item => item.sId === sRecord.sId); + // let handleType = tableData[iIndex].handleType;/* 获取操作类型 */ + // handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + // addStata.handleType = handleType; + // tableData[iIndex] = { ...tableData[iIndex], ...addStata }; + // } else { + // let handleType = tableData.handleType;/* 获取操作类型 */ + // handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + // addStata.handleType = handleType; + // tableData = { ...tableData, ...addStata }; + // } + // sCurrMemoProps.bVisibleMemo = false; + // this.props.onSaveState({ ...sCurrMemoProps, [`${name}Data`]: tableData }); + // }; + // handleGetMemoCancel = () => { + // const { sCurrMemoProps } = this.props; + // sCurrMemoProps.bVisibleMemo = false; + // this.props.onSaveState({ ...sCurrMemoProps }); + // }; + // async await + handleEleMaterialsStoreCurrQty = async (slaveData) => { + const { sModelsId, app } = this.props; + let flag = true; + const InsufficientInventory = commonFunc.showMessage(app.commonConst, 'InsufficientInventory');/* 库存不足,不能领料 */ + const MateriaTransferQuantityVerificationFailed = commonFunc.showMessage(app.commonConst, 'MateriaTransferQuantityVerificationFailed');/* 材料调拨数量校验失败,请稍后操作 */ + const url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStoreCurrQty?sModelsId=${sModelsId}`; + for (const item of slaveData) { + const body = { + sMaterialsId: item.sMaterialsId, /* 查询条件 */ + sMaterialsStyle: item.sMaterialsStyle, + sWareHouseId: item.sWareHouseId, + }; + if (commonUtils.isNotEmptyStr(item.sLocationId)) { + body.sLocationId = item.sLocationId; + } + if (commonUtils.isNotEmptyStr(item.sWarehouseLocationId)) { + body.sWarehouseLocationId = item.sWarehouseLocationId; + } + if (commonUtils.isNotEmptyStr(item.sDefineNo)) { + body.sDefineNo = item.sDefineNo; + } + if (commonUtils.isNotEmptyStr(item.sDefineNo2)) { + body.sDefineNo2 = item.sDefineNo2; + } + const dataReturn = (await commonServices.postValueService(this.props.app.token, body, url)).data; + if (dataReturn.code === 1) { + if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) { + const materials = dataReturn.dataset.rows[0]; + if (materials.dAuxiliaryQty < item.dAuxiliaryQty) { + const sMaterialsName = commonUtils.isEmpty(item.sMaterialsName) ? item.sMaterialsName1 : item.sMaterialsName; + message.error(`[${sMaterialsName}${item.sMaterialsStyle}], ${InsufficientInventory}`); + flag = false; + break; + } + } else { + const sMaterialsName = commonUtils.isEmpty(item.sMaterialsName) ? item.sMaterialsName1 : item.sMaterialsName; + message.error(`[${sMaterialsName}${item.sMaterialsStyle}], ${InsufficientInventory}`); + flag = false; + break; + } + } else { + message.error(MateriaTransferQuantityVerificationFailed); + flag = false; + break; + } + } + return flag; + } + handleTableSelectRowChange = async (name, selectedRowKeys, changeValue, isWait) => { + if (name === 'slave' || name === 'master') { + const { token, sModelsId, [`${name}Data`]: tableData } = this.props; + if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isNotEmptyArr(selectedRowKeys)) { + let url = ''; + let sCustomerId = ''; + if (sModelsId === '192116810113315228246447250' || sModelsId === '101251240115015952245193980' || sModelsId === '12710101117015005250780') { + if (name === 'master') { + sCustomerId = changeValue.sCustomerId; + } else if (name === 'slave') { + const sCustomerIdIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]); + if (sCustomerIdIndex > -1) { + sCustomerId = tableData[sCustomerIdIndex].sCustomerId; + } + } + if (commonUtils.isNotEmptyObject(sCustomerId)) { + url = `${commonConfig.file_host_ebc}printReport/getReportByCustomerId/${sCustomerId}?sModelsId=${sModelsId}`; + const values = {}; + const masterReturn = (await commonServices.postValueService(token, values, url)).data; + if (masterReturn.code === 1) { + const menuChildData = masterReturn.dataset.rows; + this.props.onSaveState({ menuChildData }); + } + } + } else { + let sProcessId = ''; + if (name === 'master') { + sProcessId = changeValue.sProcessClassifyId; + } else if (name === 'slave') { + const sProcessIdIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]); + if (sProcessIdIndex > -1) { + sProcessId = tableData[sProcessIdIndex].sProcessClassifyId; + } + } + if (commonUtils.isNotEmptyObject(sProcessId)) { + url = `${commonConfig.file_host_ebc}printReport/getReportByProcessId/${sProcessId}?sModelsId=${sModelsId}`; + const values = {}; + const masterReturn = (await commonServices.postValueService(token, values, url)).data; + if (masterReturn.code === 1) { + const menuChildData = masterReturn.dataset.rows; + this.props.onSaveState({ menuChildData }); + } + } + } + } + } else if (name === 'control') { + const { treeData, sModelsType } = this.props; /* 赋值给树组件节点 */ + if (sModelsType === 'sales/salesOrderPack') { + let { treeSelectedKeys } = this.props; /* 赋值给树组件节点 */ + if (treeData !== undefined) { + treeSelectedKeys = selectedRowKeys; /* 把树形选中节点赋值给表格部件选中节点 */ + this.props.onSaveState({ treeSelectedKeys }); + } + } + } else if (name === 'sParam' && commonUtils.isNotEmptyArr(selectedRowKeys)) { + /* 点击工艺参数列表 根据点击行动态加载配置 */ + const { sParamData, sParamConfig } = this.props; + /* 找到最后一个选中 */ + const lastSelectedKeys = selectedRowKeys[selectedRowKeys.length - 1]; + const iIndex = sParamData.findIndex(item => lastSelectedKeys === item.sId); + /* 选中数据时 塞入选中行的配置 */ + if (iIndex > -1) { + const sParamObj = sParamData[iIndex]; + const index = sParamConfig.gdsconfigformslave.findIndex(item => item.sName === 'sParamValue'); + if (index > -1) { + if (commonUtils.isNotEmptyObject(sParamObj.sDropDownData)) { + sParamConfig.gdsconfigformslave[index].sDropDownType = 'const'; + sParamConfig.gdsconfigformslave[index].showDropDown = JSON.stringify(sParamObj.sDropDownData); + } else { + sParamConfig.gdsconfigformslave[index].sDropDownType = ''; + sParamConfig.gdsconfigformslave[index].showDropDown = undefined; + } + } + /* 点击时 若没打钩 则选择框打钩 若已经打钩则取消打钩 */ + if (sParamData[iIndex].bSelfCbx) { + // sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: false }; + } else { + sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: true }; + } + this.props.onSaveState({ + sParamData, + }); + } + } + /* 点按钮删除时,会触发行点击事件 导致selectedRowKeys为删除行的sId */ + const { [`${name}Data`]: tableData } = this.props; + if (Array.isArray(tableData) && tableData.length > 0 && selectedRowKeys.length) { + const iIndex = tableData.findIndex(item => item.sId === selectedRowKeys[0]); + if (iIndex === -1) { + if (commonUtils.isNotEmptyArr(tableData) && tableData.length > 0) { + selectedRowKeys = commonUtils.isNotEmptyArr(tableData) ? [tableData[0].sId] : []; + } + } + } + if (isWait) { + return await this.props.onTableSelectRowChange(name, selectedRowKeys, isWait); + } else { + this.props.onTableSelectRowChange(name, selectedRowKeys); + } + } + + /* 取消表格行选中 */ + handleTableCancelSelect= (name) => { + const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props; + if (name === 'slave') { + this.props.onSaveState({ + [`${name}SelectedRowKeys`]: [], controlSelectedRowKeys :[], processSelectedRowKeys :[], materials0SelectedRowKeys :[], + }); + } + } + + // 获取重量 + handleGetWeight = async () => { + const { masterConfig, app } = this.props; + const url = app.rxtx.sUrl; + const returnData = (await commonServices.getService(app.token, url)).data; + if (returnData.code === 1) { + const iConfigIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnGetWeight'); + const sAssignField = masterConfig.gdsconfigformslave[iConfigIndex].sAssignField; + const sAssignFieldStr = sAssignField.split(':')[0]; + const sAssignFieldName = sAssignFieldStr.split('.')[0]; + const sAssignFieldKey = sAssignFieldStr.split('.')[1]; + const dWeight = returnData.dataset.rows[0].dWeight; + if (commonUtils.isNotEmptyObject([`${sAssignFieldName}Data`])) { + const { [`${sAssignFieldName}Data`]: tableData } = this.props; + tableData[tableData.length - 1][sAssignFieldKey] = dWeight; + this.props.onSaveState({ tableData: [`${sAssignFieldName}Data`] }); + } + } else { + this.props.getServiceError(returnData); + } + } + handleViewClick = (name, sName, record, index, myConfig, configName) => { + if (name === 'process' && sName === 'sProcessParamStr') { // process sProcessParam + const { processConfig, enabled, sModelsType } = this.props; + const slaveSelectOneData = record; + let modalVisible = false; + const sProcessParamsSelects = []; + let paramType = ''; + if (commonUtils.isNotEmptyObject(slaveSelectOneData)) { + if (sModelsType.includes('manufacture/')) { + paramType = slaveSelectOneData.sWorkOrderParam; + } else if (sModelsType.includes('quotation/')) { + paramType = slaveSelectOneData.sProcessParam; + } + } + if (commonUtils.isNotEmptyObject(paramType) && enabled) { + const sProcessParam = JSON.parse(paramType); + modalVisible = true; + // eslint-disable-next-line no-plusplus + for (let i = 1; i < 11; i++) { + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); + if (iIndex > -1 && !commonUtils.isEmpty(sProcessParam[`sParam${i.toString()}`])) { + processConfig.gdsconfigformslave[iIndex].showName = sProcessParam[`sParam${i.toString()}`]; + if (!commonUtils.isEmpty(record[`sParamDropDown${i.toString()}`])) { + processConfig.gdsconfigformslave[iIndex].sDropDownType = 'sql'; + } else { + processConfig.gdsconfigformslave[iIndex].sDropDownType = ''; + } + // processConfig.gdsconfigformslave[iIndex].bVisible = !sProcessParam[`sParam${i.toString()}`].includes('参数值'); + record[`sParam${i.toString()}`] = sProcessParam[`sParam${i.toString()}`]; + sProcessParamsSelects.push(processConfig.gdsconfigformslave[iIndex]); + } else if (iIndex > -1) { + // processConfig.gdsconfigformslave[iIndex].showName = `sParamValue${i.toString()}`; + // processConfig.gdsconfigformslave[iIndex].bVisible = true; + } + } + } else { + modalVisible = false; + // eslint-disable-next-line no-plusplus + for (let i = 1; i < 11; i++) { + const iIndex = processConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`); + if (iIndex > -1) { + // processConfig.gdsconfigformslave[iIndex].bVisible = true; + } + } + } + this.props.onSaveState({ + processRecord: record, + sProcessParamsSelects, + sProcessParamsModalVisible: modalVisible, + }); + } else if (name === 'process' && sName === 'sQuoParams') { // 产品工艺卡报价参数 + const { processConfig, enabled, sModelsType } = this.props; + const slaveSelectOneData = record; + let modalVisible = false; + const sProcessParamsSelects = []; + let sParamData = []; + let paramType = ''; + if (commonUtils.isNotEmptyObject(slaveSelectOneData)) { + paramType = slaveSelectOneData.sProcessParam; + } + if(commonUtils.isEmpty(paramType)) { + message.warn('无报价参数!'); + return; + } + /* 工序参数以表格形式展示 列 */ + const sParamConfig = { + bisMutiSelect: false, + bMutiSelect: false, + }; + const gdsconfigformslave = [{ + sId: commonUtils.createSid(), + sName: 'sId', + showName: '主键', + bVisible: false, + iFitWidth: 200, + }, { + sId: commonUtils.createSid(), + sName: 'bSelfCbx', + showName: '选择', + bVisible: true, + iFitWidth: 37, + }, { + sId: commonUtils.createSid(), + sName: 'sParamKey', + showName: '参数主键', + bVisible: false, + iFitWidth: 200, + }, { + sId: commonUtils.createSid(), + sName: 'sParamName', + showName: '参数名', + bVisible: true, + iFitWidth: 230, + }, { + sId: commonUtils.createSid(), + sName: 'sParamValue', + showName: '参数值', + bVisible: true, + }]; + sParamConfig.gdsconfigformslave = gdsconfigformslave; + const sParamColumn = commonFunc.getHeaderConfig(sParamConfig); + if (commonUtils.isNotEmptyObject(paramType)) { + /* 要把数据以表格的形式显示出来 */ + const sParamJsonObj = JSON.parse(paramType); + for (const key of Object.keys(sParamJsonObj)) { + if (key.includes('sParam') && !key.includes('DropDown') && !key.includes('Default')) { + const obj = {}; + obj.sId = commonUtils.createSid(); + obj.sParamKey = key; + obj.sParamName = sParamJsonObj[key]; + /* 找到数字 找到下拉数据源 */ + const num = key.replace(/[^\d]/g, '').trim(); + if (Number(num)) { + const number = Number(num); + const sParamDropDownKey = `sParamDropDown${number}`; + obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */ + const sParamDefaultKey = `sParamDefault${number}`; + obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */ + } + sParamData.push(obj); + } + } + /* 将sParam1中的数据 还原到sParamData数据中 */ + if(commonUtils.isNotEmptyObject(record.sQuoParams)) { + const selectedData = JSON.parse(record.sQuoParams); + if(commonUtils.isNotEmptyArr(selectedData)) { + selectedData.forEach((itemS) => { + const iIndex = sParamData.findIndex(item => item.sParamName === itemS.sParamName); + if(iIndex > -1) { + const addState ={}; + addState.sParamValue = itemS.sParamValue; + addState.bSelfCbx = itemS.bSelfCbx; + sParamData[iIndex] ={...sParamData[iIndex], ...addState}; + } + }); + } + + /* 如果数据集有一个是非选中的则非选中状态 否则全选 */ + if(commonUtils.isNotEmptyArr(sParamColumn)) { + const iIndex = sParamColumn.findIndex(item => item.dataIndex ==='bSelfCbx'); + if(iIndex > -1) { + const filterData = sParamData.filter(item => !item.bSelfCbx); + if(commonUtils.isNotEmptyArr(filterData)) { + sParamColumn[iIndex] ={ ...sParamColumn[iIndex], bCheckAll:false}; + }else { + sParamColumn[iIndex] ={ ...sParamColumn[iIndex], bCheckAll:true}; + } + } + } + } + } + this.props.onSaveState({ + processRecord: record, + sProcessParamsSelects, + sParamsModalVisible: true, + sParamConfig, + sParamColumn, + sParamData, + sParamModalType:'sQuo' + }); + } else if (name === 'process' && sName === 'sParams') { // process sProcessParam + const { processConfig, enabled, sModelsType } = this.props; + const slaveSelectOneData = record; + let modalVisible = false; + const sProcessParamsSelects = []; + let sParamData = []; + let paramType = ''; + if (commonUtils.isNotEmptyObject(slaveSelectOneData)) { + paramType = slaveSelectOneData.sWorkOrderParam; + } + if(commonUtils.isEmpty(paramType)) { + message.warn('无工艺参数!'); + return; + } + /* 工序参数以表格形式展示 列 */ + const sParamConfig = { + bisMutiSelect: false, + bMutiSelect: false, + }; + const gdsconfigformslave = [{ + sId: commonUtils.createSid(), + sName: 'sId', + showName: '主键', + bVisible: false, + iFitWidth: 200, + }, { + sId: commonUtils.createSid(), + sName: 'bSelfCbx', + showName: '选择', + bVisible: true, + iFitWidth: 37, + }, { + sId: commonUtils.createSid(), + sName: 'sParamKey', + showName: '参数主键', + bVisible: false, + iFitWidth: 200, + }, { + sId: commonUtils.createSid(), + sName: 'sParamName', + showName: '参数名', + bVisible: true, + iFitWidth: 230, + }, { + sId: commonUtils.createSid(), + sName: 'sParamValue', + showName: '参数值', + bVisible: true, + }]; + sParamConfig.gdsconfigformslave = gdsconfigformslave; + const sParamColumn = commonFunc.getHeaderConfig(sParamConfig); + if (commonUtils.isNotEmptyObject(paramType)) { + /* 要把数据以表格的形式显示出来 */ + let sParamJsonObj = commonUtils.convertStrToObj(paramType, []); + + if(location.pathname ==='/indexPage/processCardPackTableTree') { + /* 增加印面配置到工艺参数中 */ + let iFaceValue = ''; + if( commonUtils.isNotEmptyObject(record) && record.iFace !== undefined) { + if(record.iFace === 0) { + iFaceValue = '正面'; + }else if(record.iFace === 1) { + iFaceValue = '反面'; + }else if(record.iFace === 2) { + iFaceValue = '双面'; + } + } + /* 设置印面配置 */ + const sParam1000 = { + sParam1000: '印面', + sParamDefault1000: iFaceValue, + sParamDropDown1000:{'':'','正面':'正面','反面':'反面','双面':'双面'}, + } + /* 设置色序配置 */ + const sParam1001 = { + sParam1001: '色序', + sParamDefault1001: commonUtils.isNotEmptyObject(record && record.sColorSerialMemo) ? record.sColorSerialMemo : '选择色序', + } + sParamJsonObj ={...sParamJsonObj, ...sParam1000}; + + sParamJsonObj ={...sParamJsonObj, ...sParam1001}; + } + + for (const key of Object.keys(sParamJsonObj)) { + if (key.includes('sParam') && !key.includes('DropDown') && !key.includes('Default')) { + const obj = {}; + obj.sId = commonUtils.createSid(); + obj.sParamKey = key; + obj.sParamName = sParamJsonObj[key]; + /* 找到数字 找到下拉数据源 */ + const num = key.replace(/[^\d]/g, '').trim(); + if (Number(num)) { + const number = Number(num); + const sParamDropDownKey = `sParamDropDown${number}`; + obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */ + const sParamDefaultKey = `sParamDefault${number}`; + obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */ + } + sParamData.push(obj); + } + } + /* 将sParam1中的数据 还原到sParamData数据中 */ + if(commonUtils.isNotEmptyObject(record.sParams)) { + let selectedData = []; + try { + selectedData = JSON.parse(record.sParams); + } catch (error) { + try { + selectedData = JSON.parse(record.sParams.replace(/'/g, '"')); + } catch (error) { } + } + if(commonUtils.isNotEmptyArr(selectedData)) { + selectedData.forEach((itemS) => { + const iIndex = sParamData.findIndex(item => item.sParamName === itemS.sParamName); + if(iIndex > -1) { + const addState ={}; + addState.sParamValue = itemS.sParamValue; + addState.bSelfCbx = itemS.bSelfCbx; + sParamData[iIndex] ={...sParamData[iIndex], ...addState}; + } + }); + } + + /* 如果数据集有一个是非选中的则非选中状态 否则全选 */ + if(commonUtils.isNotEmptyArr(sParamColumn)) { + const iIndex = sParamColumn.findIndex(item => item.dataIndex ==='bSelfCbx'); + if(iIndex > -1) { + const filterData = sParamData.filter(item => !item.bSelfCbx); + if(commonUtils.isNotEmptyArr(filterData)) { + sParamColumn[iIndex] ={ ...sParamColumn[iIndex], bCheckAll:false}; + }else { + sParamColumn[iIndex] ={ ...sParamColumn[iIndex], bCheckAll:true}; + } + } + } + } + } + this.props.onSaveState({ + processRecord: record, + sProcessParamsSelects, + sParamsModalVisible: true, + sParamConfig, + sParamColumn, + sParamData, + sParamModalType:'sWork', + enabled, + }); + }else if ( name === 'control' && sName === 'dSinglePQty') { /* 控制表 查看开版图 */ + this.props.onSaveState({ + showSinglePQtyPictureVisible: true, /* 弹出查看开版图Modal*/ + }); + } else { + if(sName === 'myTableConfig') { + this.handleQuickViewClick(name, sName, record, index, myConfig, configName); + } else { + this.props.onViewClick(name, sName, record, index, myConfig ); + } + } + }; + + handleQuickViewClick = async (name, sName, record, index , myConfigArr, configName) => { + const { + slaveConfig, + slaveData, + dispatch, + slaveFilterCondition, + slavePagination, + slaveOrderBy, + sModelsType, + formRoute, + treeFilterCondition, + app, + iPageSize, + sModelsId, + // slaveSelectedData, + // masterData, + // employeeConfig, + } = this.props; + + let picArr = []; + if(commonUtils.isNotEmptyArr(myConfigArr)) { + picArr = myConfigArr; + } + + if (picArr.length > 0) { + const getConfig = this.handleGetTableConfig; + const tableDataRow = record; + const iIndex = index; + const [{ sActiveId }] = picArr; + let [{ sActiveKey }] = picArr; + const sFormId = sActiveId === '1' ? commonUtils.isEmpty(tableDataRow.sFormId) ? tableDataRow.sSrcFormId : tableDataRow.sFormId : sActiveId; + if (commonUtils.isNotEmptyObject(sActiveKey) && sActiveKey.includes('.')) { /* 接口按钮跳转 如果有slave.对应字段 则需要取出对应字段 */ + const index = sActiveKey.lastIndexOf('.'); + sActiveKey = sActiveKey.substring(index + 1, sActiveKey.length); + } + const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sFormId}?sModelsId=${sFormId}&sName=${formRoute}`; + const filterCondition = []; + const conditionValues = this.props.getSqlCondition(picArr[0], name, tableDataRow); + if (!commonUtils.isEmpty(conditionValues)) { + Object.keys(conditionValues).forEach((item) => { + if ((item === 'tStartDate_pro' || item.substring(0, 1) === 'p')) { + if (!commonUtils.isEmpty(conditionValues[item]) && conditionValues[item].length >= 2) { + const tStartDate = moment(conditionValues[item][0]).format(this.sDateFormat); + const tEndDate = moment(conditionValues[item][1]).add(1, 'days').format(this.sDateFormat); + filterCondition.push({ + bFilterName: item, + bFilterCondition: '=', + bFilterValue: `${tStartDate},${tEndDate}`, + }); + } + } else if ((item === 'mStartDate_pro' || item.substring(0, 1) === 'm')) { + if (!commonUtils.isEmpty(conditionValues[item])) { + const tStartDate = moment(conditionValues[item]).startOf('month').format(this.sDateFormat); + const tEndDate = moment(conditionValues[item]).endOf('month').add(1, 'days').format(this.sDateFormat); + filterCondition.push({ + bFilterName: `t${item.substring(1, item.length)}`, + bFilterCondition: '=', + bFilterValue: `${tStartDate},${tEndDate}`, + }); + } + } else if (item.substring(0, 1) === 't') { + filterCondition.push({ + bFilterName: item, + bFilterCondition: '=', + bFilterValue: moment(conditionValues[item]).format(this.sDateFormat), + }); + } else { + filterCondition.push({ + bFilterName: item, + bFilterCondition: '=', + bFilterValue: conditionValues[item], + }); + } + }); + } + this.props.dispatch({ + type: 'content/onRouter', + payload: { + url: sNameUrl, + refresh: getConfig.bind(this, name, sModelsId, myConfigArr[0], configName), /* 刷新方法 */ + sTabId: commonUtils.createSid(), + sParentId: this.state.sTabId, + urlDataType: 'newPane', + checkedId: myConfigArr[0].sId, + sName: myConfigArr[0].sName, + bFilter: slaveFilterCondition, + pageSize: commonConfig.pageSize, + pages: slavePagination, + currentData: [tableDataRow], + conditonValues: conditionValues, + newKey: tableDataRow[sActiveKey], + currentIndex: iIndex, + filterCondition, + }, + }); + } + }; + + /* 选择基础颜色 */ + handleSelectSisColor = async (name, selectConfig, selectData) => { + const { + enabled, processData, processSelectedRowId, controlSelectedRowId, controlData, sisColorField, masterData, slaveSelectedRowKeys, slaveData,packData, paramSelectedRowId, + sParamData, + } = this.props; + if (enabled && commonUtils.isNotEmptyObject(processSelectedRowId)) { + let sColorSerialMemoStr = ''; + const jsonData = []; + if (commonUtils.isNotEmptyArr(selectData)) { + selectData.forEach((item) => { + const { + sId, sName, dColor, CreateDate, sMakePerson, + } = item; + const jsonObj = {}; + jsonObj.sId = sId; + jsonObj.sName = sName; /* 名称 */ + jsonObj.dColor = dColor; /* 色序 */ + jsonObj.CreateDate = CreateDate; + jsonObj.sMakePerson = sMakePerson; + sColorSerialMemoStr += `${sName}-${dColor},`; + jsonData.push(jsonObj); + }); + if (commonUtils.isNotEmptyObject(sColorSerialMemoStr)) { + sColorSerialMemoStr = commonUtils.isNotEmptyArr(jsonData) ? JSON.stringify(jsonData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ + } + } + const iIndex = processData.findIndex(item => item.sId === processSelectedRowId); + if (iIndex > -1) { + const addState = {}; + let { handleType } = processData[iIndex]; + handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + addState.handleType = handleType; + addState.sColorSerialMemo = sColorSerialMemoStr; + processData[iIndex] = { ...processData[iIndex], ...addState }; + } + + if(commonUtils.isNotEmptyArr(sParamData) && commonUtils.isNotEmptyObject(paramSelectedRowId)) { + const iParamIndex = sParamData.findIndex(item => item.sId === paramSelectedRowId); + if (iParamIndex > -1) { + const addState = {}; + // let { handleType } = sParamData[iIndex]; + // handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + // addState.handleType = handleType; + addState.sParamValue = sColorSerialMemoStr; + sParamData[iParamIndex] = { ...sParamData[iParamIndex], ...addState }; + } + } + + } else if (enabled && commonUtils.isNotEmptyObject(controlSelectedRowId)) { /* 控制表选择正面颜色、反面颜色 */ + let sColorSerialMemoStr = ''; + const jsonData = []; + const sFieldName = commonUtils.isNotEmptyObject(sisColorField) ? sisColorField : 'sPositiveColor'; + let trueColor = 0; /* 正色 */ + let trueSpecialColor = 0; /* 正专 */ + let falseColor = 0; /* 反色 */ + let falseSpecialColor = 0; /* 反专 */ + if (commonUtils.isNotEmptyArr(selectData)) { + selectData.forEach((item) => { + const { + sId, sName, dColor, CreateDate, sMakePerson, + } = item; + const jsonObj = {}; + jsonObj.sId = sId; + jsonObj.sName = sName; /* 名称 */ + jsonObj.dColor = dColor; /* 色序 */ + jsonObj.CreateDate = CreateDate; + jsonObj.sMakePerson = sMakePerson; + sColorSerialMemoStr += `${sName}-${dColor},`; + jsonData.push(jsonObj); + if (sFieldName === 'sPositiveColor') { + if (sName.toLowerCase().trim() === 'c' || sName.toLowerCase().trim() === 'm' || sName.toLowerCase().trim() === 'y' || sName.toLowerCase().trim() === 'k' || sName.toLowerCase().includes('c+m+y+k')) { + trueColor += dColor; + } else { + trueSpecialColor += dColor; + } + } else if (sFieldName === 'sOppositeColor') { + if (sName.toLowerCase().trim() === 'c' || sName.toLowerCase().trim() === 'm' || sName.toLowerCase().trim() === 'y' || sName.toLowerCase().trim() === 'k' || sName.toLowerCase().includes('c+m+y+k')) { + falseColor += dColor; + } else { + falseSpecialColor += dColor; + } + } + }); + if (commonUtils.isNotEmptyObject(sColorSerialMemoStr)) { + sColorSerialMemoStr = commonUtils.isNotEmptyArr(jsonData) ? JSON.stringify(jsonData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ + } + } + const iIndex = controlData.findIndex(item => item.sId === controlSelectedRowId); + if (iIndex > -1) { + const addState = {}; + let { handleType } = controlData[iIndex]; + handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + addState.handleType = handleType; + addState[sFieldName] = sColorSerialMemoStr; + if (sFieldName === 'sPositiveColor') { + addState.iPositiveColor = trueColor; + addState.iPositiveSpecialColor = trueSpecialColor; + addState.sOppositeColor= controlData[iIndex].sOppositeColor; + } else if (sFieldName === 'sOppositeColor') { + addState.iOppositeColor = falseColor; + addState.iOppositeSpecialColor = falseSpecialColor; + addState.sPositiveColor= controlData[iIndex].sPositiveColor; + } + controlData[iIndex] = { ...controlData[iIndex], ...addState }; + } + } + + this.isSColorSerialMemo.current = false; + this.props.onSaveState({ + sisColorChooseVisible: false, + }); + } + + handleViewChoose= (name, sName, record) => { + const { sId } = record; /* 控制表主键 */ + const { enabled, processSelectedRowKeys } = this.props; + const sisColorSelectedRowKeys = []; + let jsonData = []; + if (name === 'process' && sName === 'sColorSerialMemo') { + this.isSColorSerialMemo.current = true; + const { [`${name}Data`]: tableData } = this.props; + const iIndex = tableData.findIndex(item => item.sId === sId); + if (iIndex > -1) { + const sColorSerialMemo = tableData[iIndex].sColorSerialMemo; + + if (commonUtils.isNotEmptyObject(sColorSerialMemo)) { + try { + jsonData = JSON.parse(sColorSerialMemo); + jsonData.forEach((item) => { + sisColorSelectedRowKeys.push(item.sId); + }); + } catch (ex) { + // console.log('ex', ex); + } + } + } + this.props.onSaveState({ + sisColorChooseVisible: true, + processSelectedRowId: sId, /* 工序表选中行sId */ + enabled, + sisColorSelectedRowKeys, + sisColorSelectedData: jsonData, + }); + }else if (name === 'sParam' && sName === 'sParamValue') { + const { [`${name}Data`]: tableData } = this.props; + const iIndex = tableData.findIndex(item => item.sId === sId); + if (iIndex > -1) { + const sColorSerialMemo = tableData[iIndex].sParamValue; + + if (commonUtils.isNotEmptyObject(sColorSerialMemo)) { + try { + jsonData = JSON.parse(sColorSerialMemo); + jsonData.forEach((item) => { + sisColorSelectedRowKeys.push(item.sId); + }); + } catch (ex) { + // console.log('ex', ex); + } + } + } + const sProcessKeyId = commonUtils.isNotEmptyArr(processSelectedRowKeys) ? processSelectedRowKeys[0] : ''; /* 工序表选中行sId */ + + this.props.onSaveState({ + sisColorChooseVisible: true, + processSelectedRowId: sProcessKeyId, /* 工序表选中行sId */ + paramSelectedRowId: sId, /* 工艺参数表选中行sId */ + enabled, + sisColorSelectedRowKeys, + sisColorSelectedData: jsonData, + sisColorTbType:'sParam' /* 弹出表格 */ + }); + }else if (sName === 'sParams' && location.pathname.includes('productionReport')) { // 产量上报 工艺参数 + const { enabled } = this.props; + const slaveSelectOneData = record; + const sProcessParamsSelects = []; + const sParamData = []; + let paramType = ''; + if (commonUtils.isNotEmptyObject(slaveSelectOneData)) { + paramType = slaveSelectOneData.sReportParam; /* 上报参数 */ + } + if (commonUtils.isEmpty(paramType)) { + message.warn('无工艺参数!'); + return; + } + /* 工序参数以表格形式展示 列 */ + const sParamConfig = { + bisMutiSelect: false, + bMutiSelect: false, + }; + const gdsconfigformslave = [{ + sId: commonUtils.createSid(), + sName: 'sId', + showName: '主键', + bVisible: false, + iFitWidth: 200, + }, { + sId: commonUtils.createSid(), + sName: 'bSelfCbx', + showName: '选择', + bVisible: true, + iFitWidth: 37, + }, { + sId: commonUtils.createSid(), + sName: 'sParamKey', + showName: '参数主键', + bVisible: false, + iFitWidth: 200, + }, { + sId: commonUtils.createSid(), + sName: 'sParamName', + showName: '参数名', + bVisible: true, + iFitWidth: 230, + }, { + sId: commonUtils.createSid(), + sName: 'sParamValue', + showName: '参数值', + bVisible: true, + iFitWidth: 230, + }]; + sParamConfig.gdsconfigformslave = gdsconfigformslave; + const sParamColumn = commonFunc.getHeaderConfig(sParamConfig); + if (commonUtils.isNotEmptyObject(paramType)) { + /* 要把数据以表格的形式显示出来 */ + const sParamJsonObj = JSON.parse(paramType); + console.log('aaa111', sParamJsonObj, sParamConfig); + for (const key of Object.keys(sParamJsonObj)) { + if (key.includes('sParam') && !key.includes('DropDown') && !key.includes('Default')) { + const obj = {}; + obj.sId = commonUtils.createSid(); + obj.sParamKey = key; + obj.sParamName = sParamJsonObj[key]; + /* 找到数字 找到下拉数据源 */ + const num = key.replace(/[^\d]/g, '').trim(); + if (Number(num)) { + const number = Number(num); + const sParamDropDownKey = `sParamDropDown${number}`; + obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */ + const sParamDefaultKey = `sParamDefault${number}`; + obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */ + /* 如果sParamValue有值 则替换默认值 */ + const oldKey = `sParamValue${number}`; + const oldParamValue = slaveSelectOneData[oldKey]; /* 界面打开时,数据集中原始的sParamValue1,sParamValue2数据填充到数据上 */ + if (commonUtils.isNotEmptyObject(oldParamValue)) { + obj.sParamValue = oldParamValue; /* 默认值 */ + } + } + sParamData.push(obj); + } + } + /* 将sParam1中的数据 还原到sParamData数据中 */ + if (commonUtils.isNotEmptyObject(record.sParams)) { + const selectedData = JSON.parse(record.sParams); + if (commonUtils.isNotEmptyArr(selectedData)) { + selectedData.forEach((itemS) => { + const iIndex = sParamData.findIndex(item => item.sParamName === itemS.sParamName); + if (iIndex > -1) { + const addState = {}; + addState.sParamValue = itemS.sParamValue; + addState.bSelfCbx = itemS.bSelfCbx; + sParamData[iIndex] = { ...sParamData[iIndex], ...addState }; + } + }); + } + + /* 如果数据集有一个是非选中的则非选中状态 否则全选 */ + if (commonUtils.isNotEmptyArr(sParamColumn)) { + const iIndex = sParamColumn.findIndex(item => item.dataIndex === 'bSelfCbx'); + if (iIndex > -1) { + const filterData = sParamData.filter(item => !item.bSelfCbx); + if (commonUtils.isNotEmptyArr(filterData)) { + sParamColumn[iIndex] = { ...sParamColumn[iIndex], bCheckAll: false }; + } else { + sParamColumn[iIndex] = { ...sParamColumn[iIndex], bCheckAll: true }; + } + } + } + } + } + console.log('sParamData111', sParamData); + this.props.onSaveState({ + slaveRecord: record, + sProcessParamsSelects, + sParamsModalVisible: true, + sParamConfig, + sParamColumn, + sParamData, + sParamModalType: 'sReport', + enabled, + }); + }else if (enabled && name === 'control' && (sName === 'sPositiveColor' || sName === 'sOppositeColor')) { /* 控制表 选择正面颜色、反面颜色 */ + const { [`${name}Data`]: tableData } = this.props; + const iIndex = tableData.findIndex(item => item.sId === sId); + if (iIndex > -1) { + const sColorSerialMemo = tableData[iIndex][sName]; + + if (commonUtils.isNotEmptyObject(sColorSerialMemo)) { + try { + jsonData = JSON.parse(sColorSerialMemo); + jsonData.forEach((item) => { + sisColorSelectedRowKeys.push(item.sId); + }); + } catch (ex) { + // console.log('ex', ex); + } + } + } + this.props.onSaveState({ + sisColorChooseVisible: true, + controlSelectedRowId: sId, /* 控制表选中行sId */ + processSelectedRowId: '', /* 工序表选中行sId */ + enabled, + sisColorSelectedRowKeys, + sisColorSelectedData: jsonData, + sisColorField: sName, /* 弹出字段 */ + }); + } else if (enabled && name === 'control' && sName === 'dSinglePQty') { /* 控制表 查看开版图 */ + const { [`${name}Data`]: tableData } = this.props; + const iIndex = tableData.findIndex(item => item.sId === sId); + if (iIndex > -1) { + const tableDataRow = tableData[iIndex]; + const dProductLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dPartsWidth, 0)); /* 产品长 */ + const dProductWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dPartsLength, 0)); /* 产品宽 */ + // const dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */ + // const dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */ + + /* 算拼版数 */ + if (dProductLength !== 0 && dProductWidth !== 0) { + this.props.onSaveState({ + showSinglePQtyPictureVisible: true, /* 弹出查看开版图Modal111 */ + showSinglePQtyRow: tableDataRow, /* 弹出查看开版图行 */ + controlSelectedRowId: sId, /* 控制表选中行sId */ + processSelectedRowId: '', /* 工序表选中行sId */ + enabled, + sisColorSelectedRowKeys, + sisColorSelectedData: jsonData, + sisColorField: sName, /* 弹出字段 */ + }); + } + } + } + } + handleCancelModal = (modelVisible) => { + this.props.onSaveState({ + [modelVisible]: false, + }); + } + /* 根据不同条件 计算排版数 */ + //竖排(上机高、上机宽、部件高、部件宽、出血咬口) dPartsLength --》dMachineLength,dPartsWidth--》dMachineWidth + getSp = (dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth)=>{ + var dMachineWidth = dMachineWidth; + var dMachineLength = dMachineLength; + //计算合版数量 + var iTemp = Math.floor(dMachineWidth / dPartsWidth) * Math.floor(dMachineLength /dPartsLength ); + return iTemp; + } + //横排(上机高、上机宽、部件高、部件宽、出血咬口) dPartsLength --》dMachineWidth,dPartsWidth--》dMachineLength + getHp = (dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth) =>{ + var dMachineWidth = dMachineWidth; + var dMachineLength = dMachineLength; + //计算合版数量 + var iTemp = Math.floor(dMachineWidth / dPartsLength) * Math.floor(dMachineLength / dPartsWidth); + return iTemp; + } + //横竖取大 + getHSQD = (dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth) =>{ + var iTemp =this.getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + var iTemp2 =this.getSp(dMachineLength,dMachineWidth,dPartsLength,dPartsWidth); + if(iTemp2>iTemp){ + iTemp = iTemp2; + // tag= 2;//竖排 + } + return iTemp; + } + + /* 计算排版数 */ + handleResolveSinglePQty = (tableDataRow) => { + let dSingleQty = 0; /* 排版数 */ + const tag = 1;//1横排还是2竖排 + let dPartsWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dPartsWidth, 0)); /* 产品长 */ + let dPartsLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dPartsLength, 0)); /* 产品宽 */ + let dMachineWidth = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineWidth, 0)); /* 上机宽 */ + let dMachineLength = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dMachineLength, 0)); /* 上机长 */ + + const dBoold = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dBlood, 0)); /* 出血位 */ + const dBite = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.dBite, 0)); /* 咬口 */ + // console.log('dPartsWidth', dPartsWidth, dPartsLength); + var dMachineTmp = 0; + var dPartsTmp = 0; + var tagval = ""; + var xxfx = 3;//虚线方向 1:横虚线 2:树虚线;3:无需虚线 + var wlfx = 1;//竖纹 + //机器长宽转换 + if(dMachineWidth > dMachineLength){ + dMachineTmp = dMachineWidth;//上级高 + dMachineWidth = dMachineLength;//上级宽 + dMachineLength = dMachineTmp; + wlfx = 2; + } + //长宽转换(dLength 高度、dWidth 表示宽度,高度永远大于宽度) + if(dPartsWidth > dPartsLength){ + dPartsTmp = dPartsWidth;//上级高 + dPartsWidth = dPartsLength;//上级宽 + dPartsLength = dPartsTmp; + } + dMachineWidth = dMachineWidth-dBite; + + const sCutMethod = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.sCutMethod, 0)); /* 裁切方式 */ + const sSpineDirection = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.sSpineDirection, 0)); /* 书脊方向 */ + const sPrintingPlate = commonUtils.convertStrToNumber(commonUtils.isNull(tableDataRow.sPrintingPlate, 0)); /* 排版方式 */ + // console.log('sPrintingPlate', sPrintingPlate); + // console.log('sCutMethod', sCutMethod); + // console.log('sSpineDirection', sSpineDirection); + let tmpBl = 1;//排版数乘的数字,如果书类为2 默认是1 + let tmp = 0; + //三边裁切 + if( sCutMethod === 1){ + //长书(1,3,4) + if(sSpineDirection=== 1){ + dPartsLength = dPartsLength; + dPartsWidth = dPartsWidth*2; + }else{ + dPartsWidth = dPartsWidth + dPartsLength = dPartsLength*2; + } + tmpBl = 2; + dPartsWidth = dPartsWidth + 2*dBoold; + dPartsLength = dPartsLength + 2*dBoold; + if(sPrintingPlate === 1){ /* 横竖取大 */ + tmp = this.getHSQD(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + dSingleQty = tmp*2; + console.log('横竖取大排版数:', dSingleQty); + }else if(sPrintingPlate ===3){ /* 横排 */ + if(wlfx===1 && sSpineDirection===1){ + //长书脊 + tmp = this.getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + dSingleQty = tmp*2; + }else if(wlfx===2 && sSpineDirection===1){ + //长书脊 + tmp = this.getSp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,4,1); + dSingleQty = tmp*2; + }else if(wlfx===1 && sSpineDirection===2){ + //长书脊 + tmp = this.getSp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,4,1); + dSingleQty = tmp*2; + }else if(wlfx==2 && sSpineDirection==2){ + //长书脊 + tmp = this.getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,3,2); + dSingleQty = tmp*2; + } + }else if(sPrintingPlate===4) { /* 竖排 */ + //竖排 + if(wlfx===1 && sSpineDirection===1){ + //长书脊 + tmp = this.getSp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,4,1); + dSingleQty = tmp*2; + }else if(wlfx===2 && sSpineDirection===1){ + //长书脊 + tmp = this.getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,3,2); + dSingleQty = tmp*2; + }else if(wlfx===1 && sSpineDirection===2){ + //长书脊 + tmp = this.getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,3,2); + dSingleQty = tmp*2; + }else if(wlfx===2 && sSpineDirection===2){ + //长书脊 + tmp = this.getSp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,4,1); + dSingleQty = tmp*2; + } + }else if(sPrintingPlate===2){ /* 混排 */ + //混排 横排 多余部分 看看是否能够竖着排 如果竖排 看看能否再横着排(折页没有混排) + } + }else{ /* 四边裁 */ + dPartsWidth = dPartsWidth+2*dBoold; + dPartsLength = dPartsLength+2*dBoold; + if(sPrintingPlate===1){ + tmp = this.getHSQD(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + //1:横虚线 2:树虚线;3:无需虚线 + // if(tag==2){ + // //alert("横竖取大==版数:"+tmp); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,4,3); + // }else{ + // //alert("横竖取大==版数:"+tmp); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,3,3); + // } + console.log("四边裁-横竖取大:"+tmp); + dSingleQty = tmp; + }else if(sPrintingPlate===3){ + if(wlfx===1){ + //长书级 + tmp = this.getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + dSingleQty = tmp; + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,3,3); + }else{ + //长书级 + tmp = this.getSp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + dSingleQty = tmp; + // $("#dPlateQty").val(tmp); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,4,3); + } + // var tmp = getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + // alert("横排版数:"+tmp); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,3,2); + }else if(sPrintingPlate===4) { + //竖排 + if(wlfx===1){ + //长书级 + tmp = this.getSp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + console.log("竖排版数:"+tmp); + dSingleQty = tmp; + // $("#dPlateQty").val(tmp); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,4,3); + }else{ + //长书级 + tmp = this.getHp(dMachineLength,dMachineWidth ,dPartsLength ,dPartsWidth); + console.log("竖排版数:"+tmp); + dSingleQty = tmp; + // $("#dPlateQty").val(tmp); + // addHtml(dMachineLength,dMachineWidth ,dPartsLength,dPartsWidth,dBoold ,dBite,3,3); + } + }else if(sPrintingPlate===2){ + //混排 横排 多余部分 看看是否能够竖着排 如果竖排 看看能否再横着排(折页没有混排) + if( sCutMethod===1){ + message.warning("书没有混排"); + return; + } + //竖排+横排 + let htTmpTag = 0; + let tmp3 = 0; + tmp = this.getHHP(dMachineWidth,dMachineLength ,dPartsLength ,dPartsWidth); + tmp3 = this.getHHP(dMachineWidth,dMachineLength ,dPartsWidth,dPartsLength); + if(tmp { + const { slaveData, slaveSelectedRowKeys } = props || this.props; + if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyObject(slaveInfoConfig)) { + let record = slaveData[0]; /* 从表选中行 没有选中行时 取第一行 */ + if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) { + const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]); + if (iIndex > -1) { + record = slaveData[iIndex]; + } + } + let conditonValues = {}; + const sSqlCondition0 = slaveInfoConfig.sSqlCondition; + if (commonUtils.isNotEmptyObject(sSqlCondition0)) { + conditonValues = this.props.getSqlCondition(slaveInfoConfig, 'slave', record); + } + conditonValues = { sParentId: record.sId, ...conditonValues}; + const pageNum = commonUtils.isEmpty(page) ? 1 : page; + const pageTableSize = commonUtils.isNotEmptyNumber(pageSize) ? pageSize : commonConfig.pageSize; + let addState = await this.props.handleGetDataSet({ + name, + configData: slaveInfoConfig, + condition: { + pageNum, pageSize: pageTableSize, bFilter: [], sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues, + }, + flag: true, + clearSelectData: true, + isWait:true, + }); + if(isWait) { + if(commonUtils.isEmptyObject(addState)) { + addState = {}; + } + addState.pageLoading = false; + return addState; + } else { + this.props.onSaveState({ pageLoading: false, ...addState }); + } + } + }; + + /* 根据上机长、上机宽,材料长,材料宽 计算自动排版数 */ + handleResolveMachineComposing = (productLength, productWidth, maxMachineLength, maxMachineWidth) => { + let result1 = {}; + const productLengthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(productLength, 0)); /* 产品长 */ + const productWidthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(productWidth, 0)); /* 产品宽 */ + const maxMachineLengthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(maxMachineLength, 0)); /* 材料长 */ + const maxMachineWidthTemp = commonUtils.convertStrToNumber(commonUtils.isNull(maxMachineWidth, 0)); /* 材料宽 */ + if (isNaN(productLengthTemp) || productLengthTemp === 0 || isNaN(productWidthTemp) || productWidthTemp === 0 || isNaN(maxMachineLengthTemp) || maxMachineLengthTemp === 0 || isNaN(maxMachineWidthTemp) || maxMachineWidthTemp === 0) { + return result1; + } + const vh = this.handleDescVerticalComposing(productLength, productWidth, maxMachineLength, maxMachineWidth); + const hv = this.handleDescHorizonalComposing(productLength, productWidth, maxMachineLength, maxMachineWidth); + const totalNumVH = vh.totalNum; + const totalNumHV = hv.totalNum; + if (totalNumVH === totalNumHV) { + if (vh.remaining === 0) { + result1 = vh; + } else { + result1 = hv; + } + } else if (totalNumVH > totalNumHV) { + result1 = vh; + } else { + result1 = hv; + } + return result1; + }; + + handleDescHorizonalComposing = (productLength, productWidth, maxMachineLength, maxMachineWidth) => { + let horizonalWWNum = 0; + let horizonalLWNum = 0; + let verticalLLNum = 0; + let verticalLWNum = 0; + let totalNum = 0;// 总的排列数目 + let totalLength = 0;// 上机长,即最大排列占据的长度 + let totalWidth = 0;// 上机宽,即最大排列占据的宽度 + + let mLength = 0; + let mWidth = 0; + let horizonalRemaining = 0; + // let fTempmarginW = 0; + // let fTempmarginL = 0; + // const mTemp = 0; + const dmargin = 0; + + const result1 = {}; + + if (maxMachineLength > maxMachineWidth || maxMachineLength === maxMachineWidth) { + mLength = maxMachineLength; + } else { + mLength = maxMachineWidth; + } + + if (maxMachineLength < maxMachineWidth || maxMachineLength === maxMachineWidth) { + mWidth = maxMachineLength; + } else { + mWidth = maxMachineWidth; + } + maxMachineLength = mLength; + maxMachineWidth = mWidth; + + // 按机器优先横排--竖向横排数量,即上述竖向横排一共排几行 + verticalLLNum = Math.floor(maxMachineLength / this.handleZeroToOne(productWidth + commonUtils.convertFixNum(dmargin, 2))); + // 按机器优先横排--横向横排数量,即横向排列的时候,一行最多能排几个 + verticalLWNum = Math.floor(maxMachineWidth / this.handleZeroToOne(productLength + commonUtils.convertFixNum(dmargin, 2))); + + totalNum += verticalLLNum * verticalLWNum; + + // 画册类,不能混排,而且只能是偶数,如果是奇数,则首选在长方向去掉一列, + horizonalRemaining = 0; + // fTempmarginW = 0;// 宽方向 需减少的出血 + // fTempmarginL = 0;// 长方向 需减少的出血 + horizonalWWNum = 0; + horizonalLWNum = 0; + + if (totalNum > 0) { + // 上述横排完成之后,剩余的右边宽度,用于竖向排列 + horizonalRemaining = maxMachineWidth - (verticalLWNum * (productLength + commonUtils.convertFixNum(dmargin, 2))); + // 按机器优先长排--竖向横排一行能排的数量,即排完竖向之后,剩余的排横向的,看一行能排多少个 + + // / 剩余空间 横向 排数量 + horizonalWWNum = Math.floor(horizonalRemaining / (productWidth + commonUtils.convertFixNum(dmargin, 2))); + // 剩余空间 竖向 排数量 + horizonalLWNum = Math.floor(maxMachineLength / (productLength + commonUtils.convertFixNum(dmargin, 2))); + } + + if (horizonalWWNum * horizonalLWNum === 0) { + // 不是混排的情况 + totalLength = verticalLLNum * (productWidth + commonUtils.convertFixNum(dmargin, 2)); + totalWidth = verticalLWNum * (productLength + commonUtils.convertFixNum(dmargin, 2)); + } else { + totalNum += horizonalWWNum * horizonalLWNum; + // 有可能是左边横向排列占用的长度更长,也有可能是剩余右侧的竖向排列方式占用的长度更长,最终更长的那个作为上机尺寸 + if (verticalLLNum * (productWidth + dmargin) > horizonalLWNum * (productLength + commonUtils.convertFixNum(dmargin, 2))) { + totalLength = verticalLLNum * (productWidth + dmargin); + } else { + totalLength = horizonalLWNum * (productLength + dmargin); + } + // 最终宽度是所有左侧横向排列占据的宽度以及右侧剩余空间竖向排列占据的宽度之和 + totalWidth = (verticalLWNum * (productLength + dmargin)) + (horizonalWWNum * (productWidth + commonUtils.convertFixNum(dmargin, 2))); + } + + result1.remaining = horizonalLWNum * horizonalWWNum; + result1.iLengthComposing = verticalLLNum; + result1.iWidthComposing = verticalLWNum; + + + result1.sMethod = `W#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+L#${commonUtils.convertNumberToStr(horizonalWWNum)}*${commonUtils.convertNumberToStr(horizonalLWNum)}`; + result1.sMaterialMethod = `W#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+L#${commonUtils.convertNumberToStr(horizonalWWNum)}*${commonUtils.convertNumberToStr(horizonalLWNum)}`; + // 最终要保存排列之后的长和宽,按机器排的时候获取的是上机尺寸;按材料排的时候,就是最优材料排版 + if (totalLength > totalWidth) { + result1.totalLength = totalLength; + result1.totalWidth = totalWidth; + } else { + result1.totalLength = totalWidth; + result1.totalWidth = totalLength; + } + // 最终保存最大数目,以便比较最优排版数 + result1.totalNum = totalNum; + return result1; + }; + handleDescVerticalComposing = (productLength, productWidth, maxMachineLength, maxMachineWidth) => { + let horizonalWWNum = 0; + let horizonalLWNum = 0; + let verticalLLNum = 0; + let verticalLWNum = 0; + let mLength = 0; + let mWidth = 0; + let verticalRemaining = 0; + // eslint-disable-next-line no-unused-vars + let fTempmarginW = 0; + // eslint-disable-next-line no-unused-vars + let fTempmarginL = 0; + const result1 = {}; + // eslint-disable-next-line no-unused-vars + const TYHLLookupList = 0; + const dmargin = 0; + let totalNum = 0;// 总的排列数目 + let totalLength = 0;// 上机长,即最大排列占据的长度 + let totalWidth = 0; // 上机宽,即最大排列占据的宽度 + if (maxMachineLength >= maxMachineWidth) { + mLength = maxMachineLength; + } else { + mLength = maxMachineWidth; + } + + if (maxMachineLength <= maxMachineWidth) { + mWidth = maxMachineLength; + } else { + mWidth = maxMachineWidth; + } + maxMachineLength = mLength; + maxMachineWidth = mWidth; + // 画册类,不能混排,而且只能是偶数,如果是奇数,则首选在长方向去掉一列, + verticalRemaining = 0; + + fTempmarginW = 0;// 宽方向 需减少的出血 + fTempmarginL = 0;// 长方向 需减少的出血 + + horizonalWWNum = 0; + horizonalLWNum = 0; + + // 按机器优先长排--竖排竖方向排多少个 + verticalLLNum = Math.floor(maxMachineLength / this.handleZeroToOne(commonUtils.convertFixNum(productLength, 2) + commonUtils.convertFixNum(dmargin, 2))); + // 竖排横方向排多少个 + verticalLWNum = Math.floor(maxMachineWidth / this.handleZeroToOne(commonUtils.convertFixNum(productWidth, 2) + commonUtils.convertFixNum(dmargin, 2))); + totalNum += verticalLLNum * verticalLWNum; + + if (totalNum > 0) { + // 上述竖排完成之后,剩余的长度 + verticalRemaining = maxMachineLength - (verticalLLNum * (commonUtils.convertFixNum(productLength, 2) + commonUtils.convertFixNum(dmargin, 2))); + // 剩余下面 竖向 排数量 + horizonalLWNum = Math.floor(verticalRemaining / this.handleZeroToOne(productWidth + commonUtils.convertFixNum(dmargin, 2))); + // 剩余下面 横向 排数量 + horizonalWWNum = Math.floor(maxMachineWidth / this.handleZeroToOne(productLength + commonUtils.convertFixNum(dmargin, 2))); + } + + if (horizonalWWNum * horizonalLWNum === 0) { + totalLength = verticalLLNum * (productLength + commonUtils.convertFixNum(dmargin, 2)); + totalWidth = verticalLWNum * (productWidth + commonUtils.convertFixNum(dmargin, 2)); + } else { + totalNum += horizonalLWNum * horizonalWWNum; + totalLength = (verticalLLNum * (productLength + commonUtils.convertFixNum(dmargin, 2))) + ((productWidth + commonUtils.convertFixNum(dmargin, 2)) * horizonalLWNum); + // 最终宽度是所有左侧横向排列占据的宽度以及右侧剩余空间竖向排列占据的宽度之和 + if (verticalLWNum * (productWidth + dmargin) > horizonalWWNum * (productLength + commonUtils.convertFixNum(dmargin, 2))) { + totalWidth = verticalLWNum * (productWidth + commonUtils.convertFixNum(dmargin, 2)); + } else { + totalWidth = horizonalWWNum * (productLength + commonUtils.convertFixNum(dmargin, 2)); + } + } + result1.remaining = horizonalLWNum * horizonalWWNum; + result1.iLengthComposing = verticalLLNum; + result1.iWidthComposing = verticalLWNum; + result1.sMethod = `L#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+W#${commonUtils.convertNumberToStr(horizonalLWNum)}*${commonUtils.convertNumberToStr(horizonalWWNum)}`; + result1.sMaterialMethod = `L#${commonUtils.convertNumberToStr(verticalLLNum)}*${commonUtils.convertNumberToStr(verticalLWNum)}+W#${commonUtils.convertNumberToStr(horizonalWWNum)}*${commonUtils.convertNumberToStr(horizonalLWNum)}`; + // 最终要保存排列之后的长和宽,按机器排的时候获取的是上机尺寸;按材料排的时候,就是最优材料排版 + if (totalLength > totalWidth) { + result1.totalLength = totalLength; + result1.totalWidth = totalWidth; + } else { + result1.totalLength = totalWidth; + result1.totalWidth = totalLength; + } + // 最终保存最大数目,以便比较最优排版数 + result1.totalNum = Math.floor(totalNum); + return result1; + }; + handleZeroToOne = (num) => { + if (commonUtils.isEmptyNumber(num) && num === 0) { + num = 1; + } + return num; + }; + + /* 单据字段单击右键全部更新,弹出窗选择后,更新此列所有数据。(只更新非只读字段) */ + handleContextMenuOk= async (contextMenuValue, contextMenuData, contextMenuType) => { + const { + contextMenuConfig, contextMenuTbName, [`${contextMenuTbName}Data`]: tableData, [`${contextMenuTbName}SelectedRowKeys`]: selectedRowKeys, + } = this.props; + if (commonUtils.isNotEmptyObject(contextMenuTbName) && commonUtils.isNotEmptyArr(tableData)) { + if (commonUtils.isNotEmptyArr(contextMenuConfig) && commonUtils.isNotEmptyObject(contextMenuConfig[0])) { + const tableConfig = contextMenuConfig[0]; + const tableFilterData = tableData.filter(item => selectedRowKeys.includes(item.sId)); + if (commonUtils.isNotEmptyArr(tableFilterData)) { + let changeData = []; + const chooseType = commonUtils.isNotEmptyNumber(contextMenuType) ? contextMenuType : 1; + if(chooseType === 1) { + changeData = tableData; + } else if(chooseType === 2) { + const iIndex = tableData.findIndex(item => selectedRowKeys.includes(item.sId)); + changeData = tableData.filter((_, index) => index >= iIndex); + } + // const tableDataRow = tableFilterData[0]; + if (commonUtils.isNotEmptyArr(changeData) && commonUtils.isNotEmptyObject(tableConfig.sName) && !commonUtils.isEmpty(contextMenuValue)) { + const sName = tableConfig.sName; + for (let i = 0; i < changeData.length; i++) { + const child = changeData[i]; + const addState = {}; + addState[sName] = contextMenuValue; + const iIndex = tableData.findIndex(row => row.sId === child.sId); + const bShowProcess = [ + 'sMaterialsNo', + 'sMaterialsName', + 'dAuxiliaryQty', + 'dReelAuxiliaryQty', + 'dConversionQty', + 'sMaterialsStyle', + 'sMaterialsStyle', + 'dMaterialsQty', + 'dAuxiliaryLossQty', + 'dLossQty', + 'sProcessId', + 'sProcessNo', + 'sProcessName' + ].includes(sName); + bShowProcess && message.loading({ content: , key: "xlyProcess", duration: 0, className: styles.xlyProcess}); + if(iIndex > -1) { + addState.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? 'update' : tableData[iIndex].handleType; + tableData[iIndex] = { ...tableData[iIndex], ...addState, ...contextMenuData }; + const changeValue = { ...contextMenuData }; + changeValue[sName] = contextMenuValue; + this.xlyProcessPercent = ((i + 1) / changeData.length * 100).toFixed(2); + const duration = i === changeData.length - 1 ? 1 : 0; + bShowProcess && message.loading({ content: , key: "xlyProcess", duration, className: styles.xlyProcess}); + + /* 手动触发改变事件 */ + const result = await this.handleTableChange(contextMenuTbName, sName, changeValue, child.sId, [], true); + tableData[iIndex] = { ...tableData[iIndex], ...result }; + } + } + } + } + } + } + this.props.onSaveState({ + [`${contextMenuTbName}Data`]: tableData, + contextMenuModalVisible: false, /* 右击全部更新弹窗 */ + }); + } + + + /* 选择工艺参数点击确定 */ + handleParamsOk = () => { // 工艺参数弹窗确定按钮 + const { + processData, + processRecord, + processConfig, + // sParamData, + enabled, + sParamModalType + } = this.props; + let { sParamData } = this.props; + if(enabled) { + if (commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyObject(processRecord)) { + const processSelectDataIndex = processData.findIndex(item => item.sId === processRecord.sId); + if (processSelectDataIndex > -1) { + if (commonUtils.isNotEmptyArr(sParamData)) { + let sParamJsonData = ''; + // const sParamSeletedData = sParamData.filter(item => item.bSelfCbx); + const iFaceIndex = sParamData.findIndex(item => item.sParamKey === 'sParam1000'); + const iColorIndex = sParamData.findIndex(item => item.sParamKey === 'sParam1001'); + if(iFaceIndex > -1) { + let iFaceValue = ''; + const iFaceObj = sParamData[iFaceIndex]; + if(commonUtils.isNotEmptyObject(iFaceObj)) { + if(iFaceObj.sParamValue === '正面') { + iFaceValue = 0; + }else if(iFaceObj.sParamValue === '反面') { + iFaceValue = 1; + }else if(iFaceObj.sParamValue === '双面') { + iFaceValue = 2; + } + } + processData[processSelectDataIndex].iFace = iFaceValue; + sParamData.splice(iFaceIndex, 1); + } + /* 移除 印面、色序配置 */ + if(iColorIndex > -1) { + const iColorObj = sParamData[iColorIndex]; + sParamData.splice(iFaceIndex, 1); + } + /* 移除色序,单双面 */ + const sParamSeletedData = sParamData; + if(commonUtils.isNotEmptyObject(sParamSeletedData)) { + sParamJsonData = JSON.stringify(sParamSeletedData); + } + let { handleType } = processData[processSelectDataIndex]; + handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + if(sParamModalType === 'sQuo') { /* 报价参数点击确定 */ + processData[processSelectDataIndex].sQuoParams = sParamJsonData; + } else { /* 工单参数点击确定 */ + processData[processSelectDataIndex].sParams = sParamJsonData; + } + processData[processSelectDataIndex].handleType = handleType; + } + } + } + this.props.onSaveState({ + processData, + sParamsModalVisible: false, + }); + } else { + this.props.onSaveState({ + sParamsModalVisible: false, + }); + } + } + + /* 选择上报参数点击确定 */ + handleReportParamsOk = () => { // 工艺参数弹窗确定按钮 + const { + slaveData, + slaveRecord, + sParamData, + // enabled, + sParamModalType, + } = this.props; + if (true) { + if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isNotEmptyObject(slaveRecord)) { + const processSelectDataIndex = slaveData.findIndex(item => item.sId === slaveRecord.sId); + if (processSelectDataIndex > -1) { + if (commonUtils.isNotEmptyArr(sParamData)) { + let sParamJsonData = ''; + const sParamSeletedData = sParamData.filter(item => item.bSelfCbx); + if (commonUtils.isNotEmptyObject(sParamSeletedData)) { + sParamJsonData = JSON.stringify(sParamSeletedData); + } + let { handleType } = slaveData[processSelectDataIndex]; + handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType; + if (sParamModalType === 'sReport') { /* 报价参数点击确定 */ + slaveData[processSelectDataIndex].sParams = sParamJsonData; + } + slaveData[processSelectDataIndex].handleType = handleType; + } + } + } + console.log('gggg', slaveData); + this.props.onSaveState({ + slaveData, + sParamsModalVisible: false, + }); + } else { + this.props.onSaveState({ + sParamsModalVisible: false, + }); + } + } + + /* 动态参数标题选择框 全选/取消全选 */ + handleCheckParamChange = (name) => { + const { + processData, + processRecord, + processConfig, + sParamData, + sParamColumn, + enabled, + } = this.props; + /* 全选 取消全选功能 */ + if(commonUtils.isNotEmptyArr(sParamData)) { + /* 标题bSelfCbx加标识 */ + const iIndex = sParamColumn.findIndex(item=>item.dataIndex ==='bSelfCbx'); + if(iIndex > -1) { + let bSelfCbx = false; + if(sParamColumn[iIndex].bCheckAll) { + bSelfCbx = false; + } else { + bSelfCbx = true; + } + sParamColumn[iIndex] = {...sParamColumn[iIndex],bCheckAll:bSelfCbx} + sParamData.forEach((item, index) => { + sParamData[index] = { ...sParamData[index], bSelfCbx: bSelfCbx }; + }) + } + this.props.onSaveState({ + sParamData, + sParamColumn + }) + } + } + + /* 工单、工艺卡、报价单上移下移排序 */ + orderNum = (tableData, controlSelectedRowKeys) => { + /* 部件工序排序 */ + const tableFilterData = tableData.filter(item => controlSelectedRowKeys.includes(item.sControlId)); + if (commonUtils.isNotEmptyArr(tableFilterData)) { + tableFilterData.forEach((item, index) => { + item.iOrder = index + 1; + item.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType; + const index1 = tableData.findIndex(item1 => item1.sId === item.sId); + if (index1 > -1) { + tableData[index1] = { ...tableData[index1], ...item }; + } + }); + } + /* 成品工序 */ + const tableFilterCPData = tableData.filter(item => item.sType === '3'); + if (commonUtils.isNotEmptyArr(tableFilterCPData)) { + let num = 1001; + tableFilterCPData.forEach((item) => { + item.iOrder = num; + item.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType; + const index1 = tableData.findIndex(item1 => item1.sId === item.sId); + num += 1; + if (index1 > -1) { + tableData[index1] = { ...tableData[index1], ...item }; + } + }); + } + return tableData; + }; + + /* 单据预览PDF */ + handleBtnPreviewPdf = async (isWait) => { + const { + app, sModelsId, masterConfig, masterData, slaveConfig, reportData, formRoute, enabled, + } = this.props; + if (formRoute === '/indexPage/commonCheckBill' && commonUtils.isNotEmptyObject(masterData) && !enabled) { + const { token } = app; + const queryFilter = {}; + queryFilter[masterConfig.sId] = { sId: masterData.sId }; + if (commonUtils.isNotEmptyObject(slaveConfig)) { + queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } }; + } + let sActiveId = ''; + const queryFilterJson = JSON.stringify(queryFilter); + /* 拿到打印报表名称 */ + let printReportName = 'report'; + if (commonUtils.isNotEmptyArr(reportData)) { + const iIndex = 0; + if (iIndex > -1) { + printReportName = reportData[iIndex].sReportName; + sActiveId = reportData[iIndex].sId; + } + } else { + message.error('没有报表模块!'); + return; + } + + /* 调用POST接口拿到PDF地址 */ + const dataUrl = `${commonConfig.file_host_ebc}printReport/printPreviewPdf/${sActiveId}/${printReportName}.pdf?${false ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}`; + const value = { + queryFilter: queryFilterJson, + }; + const dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data; + if (dataReturn.code === 1) { + const url = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(url)) { + const previewUrl = `${commonConfig.file_host}file/downloadPreviewPdf?savePathStr=${url}`; + if (isWait) { + console.log('previewUrl', previewUrl); + return previewUrl; + } else { + this.props.onSaveState({ previewUrl }); + } + } + } else { + this.props.getServiceError(dataReturn); + } + } + }; + + /* 未审核单据 只能预览 */ + handleBtnPreview = async (sActiveId, checked, eKey) => { + const { + app, sModelsId, masterConfig, masterData, slaveConfig, reportData, menuChildData, formRoute, controlConfig, + } = this.props; + const { token } = app; + const queryFilter = {}; + queryFilter[masterConfig.sId] = { sId: masterData.sId }; + if (commonUtils.isNotEmptyObject(slaveConfig)) { + queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } }; + } + const queryFilterJson = JSON.stringify(queryFilter); + // const masterDataJson = JSON.stringify(masterData); + /* 拿到打印报表名称 */ + let printReportName = 'report'; + let printCustomerReportName = 'report'; + if (commonUtils.isNotEmptyArr(reportData)) { + const iIndex = reportData.findIndex(item => item.sId === sActiveId); + if (iIndex > -1) { + printReportName = reportData[iIndex].sReportName; + } + } + if (commonUtils.isNotEmptyArr(menuChildData)) { + const iIndex = menuChildData.findIndex(item => item.sId === sActiveId); + if (iIndex > -1) { + printCustomerReportName = menuChildData[iIndex].sReportName; + } + } + let urlPrint = ''; + if (formRoute === '/indexPage/printlabel') { + if (commonUtils.isNotEmptyObject(masterData) && masterData.dTrunkQty !== undefined && masterData.dFractionQty !== undefined && masterData.dPackQty !== undefined) { // masterData中必填的三个字段 + // const param = masterDataJson; + /* 把masterData放在数组中 */ + const ListData = []; + ListData.push(masterData); + const param = JSON.stringify(ListData); + if (eKey.indexOf('BtnPrint.') > -1) { + urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`; + } else if (eKey.indexOf('BtnPrintCus.') > -1) { + urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${checked ? 'fileType=.xlsx&' : ''}printType=noquery&sModelsId=${sModelsId}&token=${encodeURIComponent(token)}`; + } + /* Get提交地址栏参数过多,更改Get提交为Post提交 */ + this.handleOpenPost(urlPrint, param); + } else { + const dTrunkQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dTrunkQty'); + const dFractionQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dFractionQty'); + const dPackQtyName = masterConfig.gdsconfigformslave.filter(item => item.sName === 'dPackQty'); + if (masterData.dTrunkQty === undefined && commonUtils.isNotEmptyObject(dTrunkQtyName)) { + message.error(`${dTrunkQtyName[0].showName} 必填项!`); + } else if (masterData.dFractionQty === undefined && commonUtils.isNotEmptyObject(dFractionQtyName)) { + message.error(`${dFractionQtyName[0].showName} 必填项!`); + } else if (masterData.dPackQty === undefined && commonUtils.isNotEmptyObject(dPackQtyName)) { + message.error(`${dPackQtyName[0].showName} 必填项!`); + } + return; + } + } else if (eKey.indexOf('BtnPrint.') > -1) { + let { controlSelectedRowKeys } = this.props; + /* 不出现选择框,则打印全部;出现选择框,则打印勾选的 */ + let bisMutiSelect = false; + if (commonUtils.isNotEmptyObject(controlConfig) && commonUtils.isNotEmptyArr(controlConfig.gdsconfigformslave)) { + const filterData = controlConfig.gdsconfigformslave.filter(item => item.sControlName === 'bisMutiSelect'); + if (commonUtils.isNotEmptyArr(filterData)) { + bisMutiSelect = filterData[0].bVisible; + } + } + if (bisMutiSelect === false || bisMutiSelect === undefined) { + controlSelectedRowKeys = []; + } + urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}&sControlIds=${commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlSelectedRowKeys : []}`; + } else if (eKey.indexOf('BtnPrintCus.') > -1) { + urlPrint = `${commonConfig.file_host}printReport/printPdf/${printCustomerReportName}?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}`; + } + if (formRoute !== '/indexPage/printlabel') { + /* 调用POST接口拿到PDF地址 */ + const dataUrl = `${commonConfig.file_host_ebc}printReport/printPreviewPdf/${sActiveId}/${printReportName}.pdf?${false ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}`; + const value = { + queryFilter: queryFilterJson, + }; + const dataReturn = (await commonServices.postValueService(token, value, dataUrl)).data; + if (dataReturn.code === 1) { + const url = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(url)) { + const previewUrl = `${commonConfig.file_host}file/downloadPreviewPdf?savePathStr=${url}`; + console.log('previewUrl:', previewUrl); + if (true) { + this.handleOpenPrintTab(previewUrl); + } + } + } else { + this.props.getServiceError(dataReturn); + } + } + }; + + handleOpenPrintTab = (url) => { + const { dispatch } = this.props; + const newsId = '01251240115015952245193980'; /* 表格行的sId */ + const newKey = new Date().getTime().toString(); + const route = '/indexPage/printPdf'; + const title = '预览PDF'; + const sModelsType = 'print/printPdf'; + const previewUrl = url; + const pane = { + title, route, formId: newsId, key: newKey, sModelsType, previewUrl, + }; + dispatch({ type: 'app/addPane', payload: { pane } }); + }; + /* 选择产品 调用工艺卡 选择数据带回窗体 */ + handleSelectCommonPopupProduct = (currentPaneName, selectConfig, selectData, tbName) => { + const { + [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, masterData, + controlData, controlSelectedRowKeys, sModelsId, sModelsType, token, + } = this.props; + const addState = {}; + + let { [`${tbName}Data`]: tableData } = this.props; + if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isNotEmptyArr(selectData)) { + const iIndex = commonUtils.isNotEmptyArr(tableSelectedRowKeys) ? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]) : -1; + const iControlIndex = commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? controlData.findIndex(item => item.sId === controlSelectedRowKeys[0]) : -1; /* 控制表 */ + selectData.forEach(async (item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + const sName = selectConfig.sKeyUpFilter; /* 将后台配置筛选字段作为 列字段 */ + let sValue = ''; + if (iIndex > -1) { + newCopyTo.slave = tableData[iIndex]; + sValue = tableData[iIndex][sName]; + } + if (iControlIndex > -1) { + newCopyTo.control = controlData[iControlIndex]; + } + /* 第一条数据若字段值为空或者只有一条数据时 则添加到该行 否则新增一行s */ + if (selectData.length === 1 || (index === 0 && commonUtils.isEmptyObject(sValue))) { + let tableDataRow = {}; // 取默认值 + if (tbName === 'master') { + tableDataRow = { ...tableData, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 + tableData = tableDataRow; + tableData.handleType = commonUtils.isEmpty(tableData.handleType) ? 'update' : tableData.handleType; + } else { + tableDataRow = { ...tableData[iIndex], ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 + tableData[iIndex] = tableDataRow; + tableData[iIndex].handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? 'update' : tableData[iIndex].handleType; + + // 取工艺卡数据 + if (tbName === 'slave') { + const { + controlConfig, materialsConfig, processConfig, + } = this.props; + let { controlData, materialsData, processData } = this.props; + const sId = tableData[iIndex].sId; + const bCkxCopyFromTechnology = '1'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue; + if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) { + const controlSelectedData = controlData.filter(item => item.sSlaveId === sId); + if (commonUtils.isNotEmptyObject(controlSelectedData)) { + const controlSelectedRowKeys = []; + controlSelectedData.forEach((item) => { + controlSelectedRowKeys.push(item.sId); + }); + const materialsReturnData = this.otherTableDel('materials', controlSelectedRowKeys); + const processReturnData = this.otherTableDel('process', controlSelectedRowKeys); + const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedRowKeys); + controlData = controlReturnData.controlData; + materialsData = materialsReturnData.materialsData; + processData = processReturnData.processData; + this.props.onSaveState({ + ...materialsReturnData, + ...processReturnData, + ...controlReturnData, + }); + } + const sCustomerId = masterData.sCustomerId; + const sProductId = tableDataRow.sProductId; + const sProductIdArray = []; + sProductIdArray.push(sProductId); + const sProductIds = sProductIdArray.toString(); + const condition = { sCustomerId, sProductIds }; + const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnCopyFrom.ActProcessCard')); + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Control'.toLowerCase()); + const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Materials'.toLowerCase()); + const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Process'.toLowerCase()); + const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; + const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; + const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData; + if (commonUtils.isNotEmptyArr(returnData.controlData)) { + const treeCopyNodes = new Map(); + // eslint-disable-next-line no-loop-func + returnData.controlData.forEach((controlItem) => { + newCopyTo.control = controlItem; + const newSid = commonUtils.createSid(); + let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo, { newSid }); // 取默认值 + controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 + controlRow.handleType = 'add'; + controlRow.sId = newSid; + controlRow.sSlaveId = tableDataRow.sId; + controlRow.sParentId = masterData.sId; + if (sModelsType === 'sales/salesOrderPack') { /* 树形 */ + /* CopyTo时sAllId,sControlParentId 设置 */ + const sAllOldId = controlItem.sAllId; + let arr = []; + if (commonUtils.isNotEmptyObject(sAllOldId)) { + arr = sAllOldId.split(','); + } + const newId = controlRow.sId; + let sOldParentId = ''; + let sNewParentAllId = ''; + if (arr.length < 2) { /* 根节点复制 */ + controlRow.sAllId = newId; + sOldParentId = newId; + sNewParentAllId = newId; + } else { + sOldParentId = arr[arr.length - 2]; + if (treeCopyNodes.has(sOldParentId)) { + sNewParentAllId = treeCopyNodes.get(sOldParentId); + } else { + const obj = arr[arr.length - 1]; + sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + } + const sNewArr = sNewParentAllId.split(','); + controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; + sNewParentAllId = `${sNewParentAllId},${newId}`; + controlRow.sAllId = sNewParentAllId; + } + treeCopyNodes.set(controlItem.sId, sNewParentAllId); + } + controlData.push(controlRow); + + if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + returnData.materialsData.filter(item => item.sControlId === controlItem.sId).forEach((materialsItem) => { + newCopyTo.materials = materialsItem; + const newSid = commonUtils.createSid(); + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo, { newSid }); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + materialsRow.handleType = 'add'; + materialsRow.sId = newSid; + materialsRow.sSlaveId = tableDataRow.sId; + materialsRow.sParentId = masterData.sId; + materialsRow.sControlId = controlRow.sId; + materialsRow.sPartsName = controlRow.sPartsName; + + materialsData.push(materialsRow); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.processData)) { + returnData.processData.filter(item => item.sControlId === controlItem.sId).forEach((processItem) => { + newCopyTo.process = processItem; + const newSid = commonUtils.createSid(); + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo, { newSid }); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = newSid; + processRow.sSlaveId = tableDataRow.sId; + processRow.sParentId = masterData.sId; + processRow.sControlId = controlRow.sId; + processRow.sPartsName = controlRow.sPartsName; + processData.push(processRow); + }); + } + }); + } + if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + // eslint-disable-next-line no-loop-func + returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { + newCopyTo.materials = materialsItem; + const newSid = commonUtils.createSid(); + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo, { newSid }); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + materialsRow.handleType = 'add'; + materialsRow.sId = newSid; + materialsRow.sSlaveId = tableDataRow.sId; + materialsRow.sParentId = masterData.sId; + materialsData.push(materialsRow); + }); + } + if (commonUtils.isNotEmptyArr(returnData.processData)) { + // eslint-disable-next-line no-loop-func + returnData.processData.filter(item => item.sType === '3').forEach((processItem) => { + newCopyTo.process = processItem; + const newSid = commonUtils.createSid(); + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo, { newSid }); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = newSid; + processRow.sSlaveId = tableDataRow.sId; + processRow.sParentId = masterData.sId; + processData.push(processRow); + }); + } + addState.controlData = controlData; + addState.materialsData = materialsData; + addState.processData = processData; + addState.controlData = controlData; + } + } + } + } + } else { + let tableDataRowAdd = this.handleTableAdd(tbName, true); + tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段 + // 取工艺卡数据 + if (tbName === 'slave') { + const { + controlConfig, materialsConfig, processConfig, + } = this.props; + let { controlData, materialsData, processData } = this.props; + const sId = tableData[iIndex].sId; + const bCkxCopyFromTechnology = '1'; // app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue; + if (bCkxCopyFromTechnology === '1' && tableDataRowAdd.sProductId !== tableDataRowAdd.sProductName) { + const controlSelectedData = controlData.filter(item => item.sSlaveId === sId); + if (commonUtils.isNotEmptyObject(controlSelectedData)) { + const controlSelectedRowKeys = []; + controlSelectedData.forEach((item) => { + controlSelectedRowKeys.push(item.sId); + }); + const materialsReturnData = this.otherTableDel('materials', controlSelectedRowKeys); + const processReturnData = this.otherTableDel('process', controlSelectedRowKeys); + const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedRowKeys); + controlData = controlReturnData.controlData; + materialsData = materialsReturnData.materialsData; + processData = processReturnData.processData; + this.props.onSaveState({ + ...materialsReturnData, + ...processReturnData, + ...controlReturnData, + }); + } + const sCustomerId = masterData.sCustomerId; + const sProductId = tableDataRowAdd.sProductId; + const sProductIdArray = []; + sProductIdArray.push(sProductId); + const sProductIds = sProductIdArray.toString(); + const condition = { sCustomerId, sProductIds }; + const dataUrl = `${commonConfig.server_host}salesorder/getProcessCardDataByCustomIdProductId/?sModelsId=${sModelsId}`; + const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data; + const config = this.props.masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnCopyFrom.ActProcessCard')); + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + const copyToControlConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Control'.toLowerCase()); + const copyToMaterialsConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Materials'.toLowerCase()); + const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Process'.toLowerCase()); + const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : ''; + const materialsAssignField = commonUtils.isNotEmptyArr(copyToMaterialsConfig) ? copyToMaterialsConfig[0].sAssignField : ''; + const processAssignField = commonUtils.isNotEmptyArr(copyToProcessConfig) ? copyToProcessConfig[0].sAssignField : ''; + const newCopyTo = {}; + newCopyTo.master = masterData; + newCopyTo.slave = commonUtils.isEmptyArr(tableData) ? {} : tableData; + if (commonUtils.isNotEmptyArr(returnData.controlData)) { + const treeCopyNodes = new Map(); + // eslint-disable-next-line no-loop-func + returnData.controlData.forEach((controlItem) => { + newCopyTo.control = controlItem; + const newSid = commonUtils.createSid(); + let controlRow = commonFunc.getDefaultData(controlConfig, newCopyTo, { newSid }); // 取默认值 + controlRow = { ...controlRow, ...commonFunc.getAssignFieldValue(controlAssignField, controlItem, newCopyTo) }; // 取赋值字段 + controlRow.handleType = 'add'; + controlRow.sId = newSid; + controlRow.sSlaveId = tableDataRowAdd.sId; + controlRow.sParentId = masterData.sId; + if (sModelsType === 'sales/salesOrderPack') { /* 树形 */ + /* CopyTo时sAllId,sControlParentId 设置 */ + const sAllOldId = controlItem.sAllId; + let arr = []; + if (commonUtils.isNotEmptyObject(sAllOldId)) { + arr = sAllOldId.split(','); + } + const newId = controlRow.sId; + let sOldParentId = ''; + let sNewParentAllId = ''; + if (arr.length < 2) { /* 根节点复制 */ + controlRow.sAllId = newId; + sOldParentId = newId; + sNewParentAllId = newId; + } else { + sOldParentId = arr[arr.length - 2]; + if (treeCopyNodes.has(sOldParentId)) { + sNewParentAllId = treeCopyNodes.get(sOldParentId); + } else { + const obj = arr[arr.length - 1]; + sNewParentAllId = sAllOldId.replace((`,${obj}`), ''); + } + const sNewArr = sNewParentAllId.split(','); + controlRow.sControlParentId = sNewArr[sNewArr.length - 1]; + sNewParentAllId = `${sNewParentAllId},${newId}`; + controlRow.sAllId = sNewParentAllId; + } + treeCopyNodes.set(controlItem.sId, sNewParentAllId); + } + controlData.push(controlRow); + + if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + returnData.materialsData.filter(item => item.sControlId === controlItem.sId).forEach((materialsItem) => { + newCopyTo.materials = materialsItem; + const newSid = commonUtils.createSid(); + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo, { newSid }); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + materialsRow.handleType = 'add'; + materialsRow.sId = newSid; + materialsRow.sSlaveId = tableDataRowAdd.sId; + materialsRow.sParentId = masterData.sId; + materialsRow.sControlId = controlRow.sId; + materialsRow.sPartsName = controlRow.sPartsName; + + materialsData.push(materialsRow); + }); + } + + if (commonUtils.isNotEmptyArr(returnData.processData)) { + returnData.processData.filter(item => item.sControlId === controlItem.sId).forEach((processItem) => { + newCopyTo.process = processItem; + const newSid = commonUtils.createSid(); + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo, { newSid }); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = newSid; + processRow.sSlaveId = tableDataRowAdd.sId; + processRow.sParentId = masterData.sId; + processRow.sControlId = controlRow.sId; + processRow.sPartsName = controlRow.sPartsName; + processData.push(processRow); + }); + } + }); + } + if (commonUtils.isNotEmptyArr(returnData.materialsData)) { + // eslint-disable-next-line no-loop-func + returnData.materialsData.filter(item => item.sType === '2').forEach((materialsItem) => { + newCopyTo.materials = materialsItem; + const newSid = commonUtils.createSid(); + let materialsRow = commonFunc.getDefaultData(materialsConfig, newCopyTo, { newSid }); // 取默认值 + materialsRow = { ...materialsRow, ...commonFunc.getAssignFieldValue(materialsAssignField, materialsItem, newCopyTo) }; // 取赋值字段 + materialsRow.handleType = 'add'; + materialsRow.sId = newSid; + materialsRow.sSlaveId = tableDataRowAdd.sId; + materialsRow.sParentId = masterData.sId; + materialsData.push(materialsRow); + }); + } + if (commonUtils.isNotEmptyArr(returnData.processData)) { + // eslint-disable-next-line no-loop-func + returnData.processData.filter(item => item.sType === '3').forEach((processItem) => { + newCopyTo.process = processItem; + const newSid = commonUtils.createSid(); + let processRow = commonFunc.getDefaultData(processConfig, newCopyTo, { newSid }); // 取默认值 + processRow = { ...processRow, ...commonFunc.getAssignFieldValue(processAssignField, processItem, newCopyTo) }; // 取赋值字段 + processRow.handleType = 'add'; + processRow.sId = newSid; + processRow.sSlaveId = tableDataRowAdd.sId; + processRow.sParentId = masterData.sId; + processData.push(processRow); + }); + } + addState.controlData = controlData; + addState.materialsData = materialsData; + addState.processData = processData; + addState.controlData = controlData; + } + } + } + tableData.push(tableDataRowAdd); + } + this.props.onSaveState({ [`${tbName}Data`]: tableData, ...addState }); + }); + } + }; + + handleTableBlur = async (name, sFieldName, record, tableConfig) => { + const { sModelsId, app, token, sModelsType, [`${name}Data`]: tableData, [`${name}Data`]: tableSelectedRowKeys, masterData , [`${name}Config`]: tempConfig } = this.props; + const models = name === 'materials' ? 'Materials' : + sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('print/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') ? 'Product' : 'Materials'; + let tableDataRow = {}; + if (sFieldName === 'sMaterialsNo' || sFieldName === 'sMaterialsName' || (sModelsType && sModelsType !== 'outside/outsideprocessAll' && sFieldName === 'dAuxiliaryQty') || sFieldName === 'dReelAuxiliaryQty' || sFieldName === 'dConversionQty' || sFieldName === 'sMaterialsStyle') { + let iIndex = -1; + if(commonUtils.isEmptyArr(tableSelectedRowKeys)) { + iIndex = 0; + } else { + tableData.findIndex(item => item.sId === tableSelectedRowKeys.toString()) + } + tableDataRow = await this.handleMaterialsChange(record, sModelsId, masterData, {}, sFieldName, app, token, models); + if(iIndex > -1) { + tableData[iIndex] = tableDataRow; + } + this.props.onSaveState({ [`${name}Data`]: tableData}) + } else if(commonUtils.isNotEmptyObject(tableConfig) && commonUtils.isNotEmptyObject(tableConfig.sButtonParam) && sFieldName === 'sInkBOM') { + let { materials0Data, materials0DelData } = this.props; + if(commonUtils.isEmptyArr(materials0Data)) { + materials0Data = []; + } + if(commonUtils.isEmptyArr(materials0DelData)) { + materials0DelData = []; + } + const sTmpInfoConfig = tableConfig; + const sButtonParam = tableConfig.sButtonParam; + const btn = commonUtils.isNotEmptyObject(sButtonParam) && commonUtils.isJSON(sButtonParam)? JSON.parse(sButtonParam) : {};; + const sProName = commonUtils.isNotEmptyObject(btn) ? btn.sproName : ''; + const sTmpInfoBySqlBtnName = commonUtils.isNotEmptyObject(btn) ? btn.sControlName : ''; + const sActiveKey = sTmpInfoConfig.sActiveKey; + if (commonUtils.isNotEmptyObject(sTmpInfoConfig) && sTmpInfoBySqlBtnName.includes('sTmpInfoBySql')) { + const newCopyTo = {}; + newCopyTo.master = masterData; + /* 找到自定义TempInfo配置 */ + + const btnConfig = tempConfig.gdsconfigformslave.filter(item => item.sControlName.includes(sTmpInfoBySqlBtnName)); + const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`; + const sConfigformId = commonUtils.isEmpty(btnConfig) ? '' : btnConfig[0].sParentId; + const sControlName = commonUtils.isNotEmptyObject(sTmpInfoBySqlBtnName) ? sTmpInfoBySqlBtnName : 'TmpInfoBySql'; + const sAssignField = btnConfig[0].sAssignField; + const sActiveKeyNew = btnConfig[0].sActiveKey; + const sRowData = [record]; + const values = { sConfigformId, sControlName, sRowData }; + if (true){ + const dataReturn = (await commonServices.postValueService(app.token, values, dataUrl)).data; + const allReturnMap = {}; + if (dataReturn.code === 1) { + const returnData = dataReturn.dataset.rows[0]; + if (commonUtils.isNotEmptyObject(returnData)) { + for (const key of Object.keys(returnData)) { + const keyData = returnData[key]; + if(commonUtils.isEmptyArr(keyData)) { + return ; + } + const sName = `${key}Data`; + const sDelName = `${key}DelData`; + // allReturnMap[sName] = returnData[key]; + let {[`${key}Data`]: oldData, [`${key}Data`]: oldDelData } = this.state; + if(commonUtils.isEmptyArr(oldDelData)) { + oldDelData = []; + } + if(commonUtils.isEmptyArr(oldData)) { + oldData = []; + } + if(sTmpInfoBySqlBtnName.includes('_edit')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + const sActiveKey = sTmpInfoConfig.sActiveKey; + let newData = []; + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + const filterData = oldData.filter(item => item[sActiveKeyNew] !== child[sActiveKeyNew]); + if(commonUtils.isNotEmptyArr(filterData)) { + const tableRow = { ...child, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段111 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + newData.push(tableRow); + } + }); + newData = oldData.concat(newData) + } + + }else if(sTmpInfoBySqlBtnName.includes('_del')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */ + /* 对应字段 */ + const sActiveKey = sTmpInfoConfig.sActiveKey; + const oldFilterData = oldData.filter(old => old.sParentMaterialsId === record.sId); + oldFilterData.forEach((child) => { + child.handleType ='del'; + oldDelData.push(child); + }); + + /* 找到老数据的oldRowMap sInkBOMId 信息 */ + // const recordOldRow = record.oldRowMap; + let oldMFilterData = materials0Data.filter(old => old.sInkFatherMaterialsTbId === record.sId); + // if(commonUtils.isEmptyArr(oldMFilterData) && commonUtils.isNotEmptyObject(recordOldRow)) { + // oldMFilterData = materials0Data.filter(old => commonUtils.isNotEmptyObject(old.sInkBOMId) && commonUtils.isNotEmptyObject(old.sInkBOMsSlaveId) && old.sInkBOMId === recordOldRow.sInkBOMId && old.sInkBOMsSlaveId === recordOldRow.sInkBOMsSlaveId && commonUtils.isEmpty(old.sInkBOMsMaterialsId) ); + // } + oldMFilterData.forEach((child) => { + child.handleType ='del'; + const iIndex = materials0Data.findIndex(item => item.sId === child.sId); + if(iIndex > -1 ) { + materials0Data.splice(iIndex, 1); + } + materials0DelData.push(child); + }); + + allReturnMap[sDelName] = oldDelData; + oldData = []; + if(commonUtils.isNotEmptyArr(keyData)) { + keyData.forEach((child) => { + const tableRow = { ...child, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段111 + tableRow.sId = commonUtils.createSid(); + tableRow.sParentId = masterData.sId; + tableRow.sInkFatherMaterialsTbId = record.sId; + tableRow.handleType = 'add'; + // tableRow.sBclassifyName ='油墨'; + oldData.push(tableRow); + materials0Data.push(tableRow); + }); + } + allReturnMap[sName] = oldData; + allReturnMap.materials0Data = materials0Data; + allReturnMap.materials0DelData = materials0DelData; + } else { + allReturnMap[sName] = returnData[key]; + } + + } + if (commonUtils.isNotEmptyArr(allReturnMap.masterData) && Array.isArray(allReturnMap.masterData)) { + allReturnMap.masterData = allReturnMap.masterData[0]; + } + this.props.onSaveState({ ...allReturnMap }); + } + } else { + this.getServiceError(dataReturn); + } + } + + } + } else { + this.props.onDropDownBlur(name, sFieldName, record, tableConfig); + } + }; + + handleShowParam = (name, record, tableSelectedRowKeys) => { + let processSelectedData = []; + if(commonUtils.isNotEmptyObject(record)) { + processSelectedData = [record]; + } + this.props.onSaveState({ + commonParamVisible: true, + processSelectedData, + processSelectedRowKeys:tableSelectedRowKeys, + }); + } + + handleSelectCommonPopup = (currentPaneName, selectConfig, selectData, tbName, commonPopupShowConfig, other) => { + const { + [`${tbName}Data`]: tableData, [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, masterData, processConfig, + } = this.props; + + /* 工单,工艺卡 放大镜选择材料 直接插入全部材料中 */ + if(selectConfig.sControlName && selectConfig.sControlName === 'BtnPopupMaterialsWorkOrder') { + + let { materials0Data, materials1Data, materials1Config, materials2Data, materials2Config, } = this.props; + + if(commonUtils.isEmptyArr(materials0Data)){ + materials0Data = []; + } + if(commonUtils.isEmptyArr(materials1Data)){ + materials1Data = []; + } + if(commonUtils.isEmptyArr(materials2Data)){ + materials2Data = []; + } + /* 找到放大镜复制到配置 */ + + /* 材料大类 */ + const copyToConfig = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${selectConfig.sControlName}.materials0`.toLowerCase()); + const copyToAssignField = commonUtils.isNotEmptyArr(copyToConfig) ? copyToConfig[0].sAssignField : ''; /* 材料大类 */ + + const addState ={}; + const iIndex = commonUtils.isNotEmptyArr(tableSelectedRowKeys) ? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]) : -1; + if (commonUtils.isNotEmptyArr(selectData)) { + const selectFilterDataAll = selectData; /* 除了油墨,专色墨,电化铝之外的物料大类 */ + + /* 全部材料 */ + if(commonUtils.isNotEmptyArr(selectFilterDataAll)) { + selectFilterDataAll.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iIndex > -1) { + newCopyTo.materials0 = item; + } + let tableDataRowAdd = this.handleTableAdd('materials0', true); + item.handleType = 'add'; + // tableDataRowAdd = { ...tableDataRowAdd, ...item }; // 取赋值字段 + tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(copyToAssignField, item) }; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + tableDataRowAdd.sParentSlaveId = tableData[iIndex].sId; /* 选中从表的sId */ + materials0Data.push(tableDataRowAdd); + }); + } + + if(commonUtils.isNotEmptyArr(materials0Data) && location.pathname.includes('processCardPackTableTree')) { + /* 根据配置过滤数据 */ + const sSqlCondition1 = materials1Config ? materials1Config.sSqlCondition : 'materials0.sBclassifyName.油墨'; + if (commonUtils.isNotEmptyObject(sSqlCondition1)) { + let targetTbName = sSqlCondition1.split('.')[0]; /* 1.表名 control */ + let filteredValue = sSqlCondition1.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ + let sParentKey = sSqlCondition1.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ + if (targetTbName === 'materials0') { + const filterData = materials0Data.filter(item => sParentKey && sParentKey.includes(item[filteredValue])); + if (commonUtils.isNotEmptyArr(filterData)) + filterData.forEach((item, index) => { + materials1Data.push(item); + }) + } + } + + + const sSqlCondition2 = materials2Config ? materials2Config.sSqlCondition : 'materials0.sBclassifyName.电化铝'; + if (commonUtils.isNotEmptyObject(sSqlCondition2)) { + let targetTbName = sSqlCondition2.split('.')[0]; /* 1.表名 control */ + let filteredValue = sSqlCondition2.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ + let sParentKey = sSqlCondition2.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ + if (targetTbName === 'materials0') { + const filterData = materials0Data.filter(item => item[filteredValue] === sParentKey); + if (commonUtils.isNotEmptyArr(filterData)) + filterData.forEach((item, index) => { + materials2Data.push(item); + }) + } + } + + addState.materials1Data = materials1Data; + addState.materials2Data = materials2Data; + } else if(commonUtils.isNotEmptyArr(materials0Data) && location.pathname.includes('workOrderResearchTableTree')) { + /* 根据配置过滤数据 */ + const sSqlCondition1 = materials1Config ? materials1Config.sSqlCondition : 'materials0.sBclassifyName.纸张'; + if (commonUtils.isNotEmptyObject(sSqlCondition1)) { + let targetTbName = sSqlCondition1.split('.')[0]; /* 1.表名 control */ + let filteredValue = sSqlCondition1.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ + let sParentKey = sSqlCondition1.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ + if (targetTbName === 'materials0') { + const filterData = materials0Data.filter(item => sParentKey && sParentKey.includes(item[filteredValue])); + if (commonUtils.isNotEmptyArr(filterData)) + filterData.forEach((item, index) => { + materials1Data.push(item); + }) + } + } + + + const sSqlCondition2 = materials2Config ? materials2Config.sSqlCondition : 'materials0.sBclassifyName.油墨'; + if (commonUtils.isNotEmptyObject(sSqlCondition2)) { + let targetTbName = sSqlCondition2.split('.')[0]; /* 1.表名 control */ + let filteredValue = sSqlCondition2.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ + let sParentKey = sSqlCondition2.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ + if (targetTbName === 'materials0') { + const filterData = materials0Data.filter(item => item[filteredValue] === sParentKey); + if (commonUtils.isNotEmptyArr(filterData)) + filterData.forEach((item, index) => { + materials2Data.push(item); + }) + } + } + + addState.materials1Data = materials1Data; + addState.materials2Data = materials2Data; + } + this.props.onSaveState({ materials0Data, ...addState }); + } + } else if(selectConfig.sControlName && selectConfig.sControlName === 'BtnPopupMaterialsQuo') { + + let { materialsData, materials0Data, materials1Data, materials0Config, materials1Config, materials2Data, materials2Config, } = this.props; + + if(commonUtils.isEmptyArr(materialsData)){ + materialsData = []; + } + if(commonUtils.isEmptyArr(materials0Data)){ + materials0Data = []; + } + + if(commonUtils.isEmptyArr(materials1Data)){ + materials1Data = []; + } + if(commonUtils.isEmptyArr(materials2Data)){ + materials2Data = []; + } + /* 找到放大镜复制到配置 */ + + /* 材料大类 */ + const copyToConfig = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${selectConfig.sControlName}.materials0`.toLowerCase()); + const copyToAssignField = commonUtils.isNotEmptyArr(copyToConfig) ? copyToConfig[0].sAssignField : ''; /* 材料大类 */ + + const addState ={}; + const iIndex = commonUtils.isNotEmptyArr(tableSelectedRowKeys) ? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]) : -1; + if (commonUtils.isNotEmptyArr(selectData)) { + const selectFilterDataAll = selectData; /* 除了油墨,专色墨,电化铝之外的物料大类 */ + /* 全部材料 */ + if(commonUtils.isNotEmptyArr(selectFilterDataAll)) { + selectFilterDataAll.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iIndex > -1) { + newCopyTo.materials0 = item; + } + let tableDataRowAdd = this.handleTableAdd('materials0', true); + item.handleType = 'add'; + // tableDataRowAdd = { ...tableDataRowAdd, ...item }; // 取赋值字段 + tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(copyToAssignField, item) }; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + tableDataRowAdd.sParentSlaveId = tableData[iIndex].sId; /* 选中从表的sId */ + materialsData.push(tableDataRowAdd); + }); + } + if(false && commonUtils.isNotEmptyArr(materialsData)) { + /* 根据配置过滤数据 */ + const sSqlCondition1 = materials0Config ? materials0Config.sSqlCondition : 'materials0.sBclassifyName.油墨'; + if (commonUtils.isNotEmptyObject(sSqlCondition1)) { + let targetTbName = sSqlCondition1.split('.')[0]; /* 1.表名 control */ + let filteredValue = sSqlCondition1.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ + let sParentKey = sSqlCondition1.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ + if (targetTbName === 'materials0') { + const filterData = materials0Data.filter(item => sParentKey && sParentKey.includes(item[filteredValue])); + if (commonUtils.isNotEmptyArr(filterData)) + filterData.forEach((item, index) => { + materials0Data.push(item); + }) + } + } + + + const sSqlCondition2 = materials1Config ? materials1Config.sSqlCondition : 'materials0.sBclassifyName.电化铝'; + if (commonUtils.isNotEmptyObject(sSqlCondition2)) { + let targetTbName = sSqlCondition2.split('.')[0]; /* 1.表名 control */ + let filteredValue = sSqlCondition2.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ + let sParentKey = sSqlCondition2.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ + if (targetTbName === 'materials0') { + const filterData = materials0Data.filter(item => item[filteredValue] === sParentKey); + if (commonUtils.isNotEmptyArr(filterData)) + filterData.forEach((item, index) => { + materials1Data.push(item); + }) + } + } + addState.materialsData = materialsData; + addState.materials0Data = materials0Data; + addState.materials1Data = materials1Data; + addState.materials2Data = materials2Data; + } + this.props.onSaveState({ ...addState }); + } + }else if(selectConfig.sControlName && (selectConfig.sControlName === 'BtnPopupMaterials1Child' || selectConfig.sControlName.includes('BtnHeadPopup') )) { + const {materials0SelectedRowKeys, materials1SelectedRowKeys, materials2SelectedRowKeys} = this.props; /* 油墨数据选中行 */ + let { materials0Data } = this.props; + let fatherRow = {}; + if(tbName === 'materials1Child') { + const iIndex = commonUtils.isNotEmptyArr(materials1SelectedRowKeys) ? materials0Data.findIndex(item => item.sId === materials1SelectedRowKeys[0]) : -1; + if(iIndex === -1) { + message.error('请选择左侧选择行!'); + return; + } + fatherRow = materials1Data[iIndex]; + }else if(tbName === 'materials2Child') { + const iIndex = commonUtils.isNotEmptyArr(materials2SelectedRowKeys) ? materials0Data.findIndex(item => item.sId === materials2SelectedRowKeys[0]) : -1; + if(iIndex === -1) { + message.error('请选择左侧选择行!'); + return; + } + fatherRow = materials2Data[iIndex]; + } else if(tbName === 'materials0Child') { + const iIndex = commonUtils.isNotEmptyArr(materials0SelectedRowKeys) ? materials0Data.findIndex(item => item.sId === materials0SelectedRowKeys[0]) : -1; + if(iIndex === -1) { + message.error('请选择左侧选择行!'); + return; + } + fatherRow = materials0Data[iIndex]; + } + + let { [`${tbName}Data`]: tableData } = this.props; + if(commonUtils.isEmptyArr(tableData)) { + tableData = []; + } + if(commonUtils.isEmptyArr(materials0Data)) { + materials0Data = []; + } + + if (commonUtils.isNotEmptyArr(selectData)) { + // eslint-disable-next-line no-unused-vars + selectData.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + let tableDataRowAdd = this.handleTableAdd(tbName, true); + item.handleType = 'add'; + tableDataRowAdd = {...tableDataRowAdd, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item)}; // 取赋值字段 + tableDataRowAdd.handleType = 'add'; + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + tableDataRowAdd.sParentMaterialsId = fatherRow.sId; /* 选中从表的sId */ + tableDataRowAdd.sProcessId = fatherRow.sProcessId; /* 工序ID */ + tableDataRowAdd.sProcessTbId = fatherRow.sProcessTbId; /* 工序表格ID */ + if(tbName === 'materials0Child') { /* 替代料 */ + tableDataRowAdd.sMaterialsNo1 = fatherRow.sMaterialsNo; /* 原材料编号 */ + tableDataRowAdd.sMaterialsName1 = fatherRow.sMaterialsName; /* 原材料名称 */ + tableDataRowAdd.bAlternative = true; + } + + // const newTableDataRowAdd = JSON.parse(JSON.stringify(tableDataRowAdd)); + // newTableDataRowAdd.sId = commonUtils.createSid(); + materials0Data.push(tableDataRowAdd); + + + }); + console.log('放大镜确认数据:',tbName, tableData, materials0Data) + this.props.onSaveState({ materials0Data }); + } + } else if(selectConfig.sControlName && selectConfig.sControlName.includes('BtnPopupMaterials')) { /* 报价单工序表放大镜 选择材料 */ + /* materials1ChildData:油墨, materials2ChildData:电化铝 */ + let { materials1Data, materials1ChildData, materials2Data, materials2ChildData, materials0Data } = this.props; + let materialsOtherData = []; + + if(commonUtils.isEmptyArr(materials0Data)){ + materials0Data = []; + } + + if(commonUtils.isEmptyArr(materials1Data)){ + materials1Data = []; + } + + if(commonUtils.isEmptyArr(materials1ChildData)){ + materials1ChildData = []; + } + + if(commonUtils.isEmptyArr(materials2ChildData)){ + materials2ChildData = []; + } + + if(commonUtils.isEmptyArr(materials2Data)) { + materials2Data = []; + } + + /* 找到放大镜复制到配置 */ + /* 材料大类 */ + const copyToConfig = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${selectConfig.sControlName}.materials0`.toLowerCase()); + const copyToAssignField = commonUtils.isNotEmptyArr(copyToConfig) ? copyToConfig[0].sAssignField : ''; /* 材料大类 */ + + /* 自调专色墨 */ + const copyToConfig1Left = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${selectConfig.sControlName}.materials1`.toLowerCase()); + const copyToAssignField1Left = commonUtils.isNotEmptyArr(copyToConfig1Left) ? copyToConfig1Left[0].sAssignField : ''; /* 专色墨 */ + + /* 油墨 */ + const copyToConfig1 = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${selectConfig.sControlName}.materials1Child`.toLowerCase()); + const copyToAssignField1 = commonUtils.isNotEmptyArr(copyToConfig1) ? copyToConfig1[0].sAssignField : ''; /* 油墨 */ + + /* 油墨 */ + const copyToConfig2 = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${selectConfig.sControlName}.materials2Child`.toLowerCase()); + const copyToAssignField2 = commonUtils.isNotEmptyArr(copyToConfig2) ? copyToConfig2[0].sAssignField : ''; /* 电化铝 */ + + const iIndex = commonUtils.isNotEmptyArr(tableSelectedRowKeys) ? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]) : -1; + if (commonUtils.isNotEmptyArr(selectData)) { + if (commonUtils.isEmpty(materials1ChildData)) { + materials1ChildData = []; + } + if (commonUtils.isEmpty(materials2ChildData)) { + materials2ChildData = []; + } + const selectFilterData1 = selectData.filter(item => item.sZmldlName === sMaterialsClassfiy.youmo); + const selectFilterData1Left = selectData.filter(item => item.sZmldlName === sMaterialsClassfiy.zsm); + // const selectFilterData1 = selectData.filter(item => item.sZmldlName === '纸张'); + const selectFilterData2 = selectData.filter(item => item.sZmldlName === sMaterialsClassfiy.dhl ); + + const selectFilterDataOther = selectData.filter(item => item.sZmldlName !== sMaterialsClassfiy.youmo && + item.sZmldlName !== sMaterialsClassfiy.zsm && item.sZmldlName !== sMaterialsClassfiy.dhl ); /* 除了油墨,专色墨,电化铝之外的物料大类 */ + + /* 自动专色墨 */ + if(commonUtils.isNotEmptyArr(selectFilterData1Left)) { + selectFilterData1Left.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iIndex > -1) { + newCopyTo.materials1Child = item; + } + let tableDataRowAdd = this.handleTableAdd('materials1', true); + item.handleType = 'add'; + // tableDataRowAdd = { ...tableDataRowAdd, ...item }; // 取赋值字段 + tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(copyToAssignField1Left, item) }; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + tableDataRowAdd.sParentSlaveId = tableData[iIndex].sId; /* 选中从表的sId */ + materials1Data.push(tableDataRowAdd); + }); + } + + /* 油墨 */ + if(commonUtils.isNotEmptyArr(selectFilterData1)) { + selectFilterData1.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iIndex > -1) { + newCopyTo.materials1Child = item; + } + let tableDataRowAdd = this.handleTableAdd('materials1Child', true); + item.handleType = 'add'; + // tableDataRowAdd = { ...tableDataRowAdd, ...item }; // 取赋值字段 + tableDataRowAdd = {...tableDataRowAdd, ...commonFunc.getAssignFieldValue(copyToAssignField1, item)}; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + tableDataRowAdd.sParentSlaveId = tableData[iIndex].sId; /* 选中从表的sId */ + materials1ChildData.push(tableDataRowAdd); + }); + } + + /* 电化铝 */ + if(commonUtils.isNotEmptyArr(selectFilterData2)) { + selectFilterData2.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iIndex > -1) { + newCopyTo.materials2Child = item; + } + let tableDataRowAdd = this.handleTableAdd('materials2Child', true); + item.handleType = 'add'; + // tableDataRowAdd = { ...tableDataRowAdd, ...item }; // 取赋值字段 + tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(copyToAssignField2, item) }; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + tableDataRowAdd.sParentSlaveId = tableData[iIndex].sId; /* 选中从表的sId */ + materials2ChildData.push(tableDataRowAdd); + }); + } + + if(commonUtils.isNotEmptyArr(materials2ChildData)) { + materials2ChildData.forEach((val) => { + const iIndex = materials2Data.findIndex(item => item.sMaterialsId === val.sMaterialsId && item.sControlId === val.sControlId && item.sMaterialsStyle === val.sMaterialsStyle); + if(iIndex === -1){ + materials2Data.push(val); + } + }); + } + + /* 其他材料 */ + if(commonUtils.isNotEmptyArr(selectFilterDataOther)) { + selectFilterDataOther.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + if (iIndex > -1) { + newCopyTo.materials0 = item; + } + let tableDataRowAdd = this.handleTableAdd('materials0', true); + item.handleType = 'add'; + // tableDataRowAdd = { ...tableDataRowAdd, ...item }; // 取赋值字段 + tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(copyToAssignField, item) }; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + tableDataRowAdd.sParentSlaveId = tableData[iIndex].sId; /* 选中从表的sId */ + materialsOtherData.push(tableDataRowAdd); + }); + } + const temp1Data = materials1Data.concat(materials1ChildData); + const temp2Data = temp1Data.concat(materials2Data); + + materials0Data = temp2Data.concat(materialsOtherData); + + console.log('materials1Data1:', materials0Data, materials1Data, materials1ChildData, materials2ChildData, materialsOtherData); + + this.props.onSaveState({ materials1Data, materials1ChildData, materials2ChildData, materialsOtherData, materials0Data }); + } + }else if( location.pathname && location.pathname.includes('quotationPackTableTree') && selectConfig.sName && selectConfig.sName === 'sAlumiteBomBillNo') { /* 报价单电化铝Bom选择数据后,数据带入到电化铝 */ + let { materialsData,materials1Data, materials2Data, materials2ChildData, materials0Data } = this.props; + const addState ={}; + if(commonUtils.isEmptyArr(materials0Data)){ + materials0Data = []; + } + if(commonUtils.isEmptyArr(materials0Data)){ + materials0Data = []; + } + if(commonUtils.isEmptyArr(materials1Data)){ + materials1Data = []; + } + if(commonUtils.isEmptyArr(materials2Data)){ + materials2Data = []; + } + if(commonUtils.isEmptyArr(materials2ChildData)){ + materials2ChildData = []; + } + const sControlName = 'sPopupsAlumiteBomBillNo'; + /* 电化铝父级赋值配置 */ + const copyToConfig = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${sControlName}.materials2Data`.toLowerCase()); + const copyToAssignField = commonUtils.isNotEmptyArr(copyToConfig) ? copyToConfig[0].sAssignField : ''; /* 电化铝 */ + + /* 电化铝子级赋值配置 */ + const copyToChildConfig = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${sControlName}.materials2ChildData`.toLowerCase()); + const copyToChildAssignField = commonUtils.isNotEmptyArr(copyToChildConfig) ? copyToChildConfig[0].sAssignField : ''; /* 电化铝子级 */ + + if (commonUtils.isNotEmptyArr(selectData)) { + // eslint-disable-next-line no-unused-vars + selectData.forEach((item, index) => { + const newCopyTo = {}; + newCopyTo.master = masterData; + let tableDataRowAdd = this.handleTableAdd('materials1Data', true); + item.handleType = 'add'; + tableDataRowAdd = {...tableDataRowAdd, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item)}; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + // tableDataRowAdd.sParentMaterialsId = fatherRow.sId; /* 选中从表的sId */ + materials1Data.push(tableDataRowAdd); + const newTableDataRowAdd = JSON.parse(JSON.stringify(tableDataRowAdd)); + // newTableDataRowAdd.sId = commonUtils.createSid(); + materialsData.push(newTableDataRowAdd); + }); + addState.materials1Data = materials1Data; + addState.materialsData = materialsData; + this.props.onSaveState({ materials1Data, materials2Data, materials0Data }); + } + } else if( (selectConfig.sName && selectConfig.sName === 'sAlumiteBomBillNo') || selectConfig?.sControlName === 'BtnPopupsAlumiteBomBillNo') { /* 电化铝Bom选择数据后,数据带入到电化铝 */ + let { materials2Data, materials2ChildData, materialsData, materials0Data, processData, processSelectedRowKeys, materialsDelData, materials0DelData } = this.props; + const addState ={}; + if(commonUtils.isEmptyArr(materialsData)){ + materialsData = []; + } + if(commonUtils.isEmptyArr(materials0Data)){ + materials0Data = []; + } + if(commonUtils.isEmptyArr(materials2Data)){ + materials2Data = []; + } + if(commonUtils.isEmptyArr(materials2ChildData)){ + materials2ChildData = []; + } + if(commonUtils.isEmptyArr(materials0DelData)){ + materials0DelData = []; + } + if(commonUtils.isEmptyArr(materialsDelData)){ + materialsDelData = []; + } + const sControlName = 'sPopupsAlumiteBomBillNo'; + /* 电化铝父级赋值配置 */ + const copyToConfig = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${sControlName}.materials2Data`.toLowerCase()); + const copyToAssignField = commonUtils.isNotEmptyArr(copyToConfig) ? copyToConfig[0].sAssignField : ''; /* 电化铝 */ + + /* 电化铝子级赋值配置 */ + const copyToChildConfig = processConfig.gdsconfigformslave.filter(item => item.sControlName.toLowerCase() === `${sControlName}.materials2ChildData`.toLowerCase()); + const copyToChildAssignField = commonUtils.isNotEmptyArr(copyToChildConfig) ? copyToChildConfig[0].sAssignField : ''; /* 电化铝子级 */ + + if (commonUtils.isNotEmptyArr(selectData)) { + if (commonUtils.isNotEmptyArr(processSelectedRowKeys) && commonUtils.isNotEmptyArr(processData)) { + const iProcessIndex = processData.findIndex(item => item.sId === processSelectedRowKeys[0]); + processData[iProcessIndex].handleType = commonUtils.isEmpty(processData[iProcessIndex].handleType) ? 'update' : processData[iProcessIndex].handleType; + processData[iProcessIndex].sAlumiteBomBillNo = selectData[0].sVersionNum; + addState.processData = processData; + /* 移除该工序下的所有电化铝 */ + const filterDelData = materials0Data.filter(row => row.sProcessId === processData[iProcessIndex].sProcessId && + row.sProcessTbId === processData[iProcessIndex].sId && row.sBclassifyName === '电化铝' && commonUtils.isEmptyObject(row.sParentMaterialsId)); + console.log('移除该工序下的所有电化铝', filterDelData); + if(commonUtils.isNotEmptyArr(filterDelData)) { + filterDelData.forEach((item, index) => { + const iIndex = materials0Data.findIndex(row => row.sId === item.sId); + if(iIndex > -1) { + const delRow = materials0Data[iIndex]; + delRow.handleType = 'del'; + if(selectConfig?.sControlName === 'BtnPopupsAlumiteBomBillNo') { + materialsData.splice(iIndex, 1); + materialsDelData.push(delRow); + } else { + materials0Data.splice(iIndex, 1); + materials0DelData.push(delRow); + } + } + }) + } + } + // eslint-disable-next-line no-unused-vars + selectData.forEach((item, index) => { + // const iIndex = materials0Data.findIndex(row => row.sAluminumBomId === item.sId && row.sAluminumBomSlaveId === item.sSlaveId); + // console.log('iIndex', iIndex); + // if(iIndex > -1) { + // const delRow = materials0Data[iIndex]; + // delRow.handleType = 'del'; + // if(selectConfig?.sControlName === 'BtnPopupsAlumiteBomBillNo') { + // materialsData.splice(iIndex, 1); + // materialsDelData.push(delRow); + // } else { + // materials0Data.splice(iIndex, 1); + // materials0DelData.push(delRow); + // } + // } + const newCopyTo = {}; + newCopyTo.master = masterData; + let tableDataRowAdd = this.handleTableAdd('materials2Data', true); + item.handleType = 'add'; + tableDataRowAdd = {...tableDataRowAdd, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item)}; // 取赋值字段 + tableDataRowAdd.sId = commonUtils.createSid(); + tableDataRowAdd.sParentId = masterData.sId; + // tableDataRowAdd.sParentMaterialsId = fatherRow.sId; /* 选中从表的sId */ + materials2Data.push(tableDataRowAdd); + + /* 替代料对应的材料id重新刷一遍 */ + const tdlFilterData = materials0Data.filter(item => commonUtils.isNotEmptyObject(item.sParentMaterialsId) && + item.sMaterialsNo1 === tableDataRowAdd.sMaterialsNo); + if(commonUtils.isNotEmptyObject(tdlFilterData)){ + tdlFilterData.forEach((item, index) => { + const iFIndex = materials0Data.findIndex(child => child.sId ===item.sId); + if(iFIndex > -1) { + const addState = {}; + addState.sParentMaterialsId = tableDataRowAdd.sId; + addState.handleType = commonUtils.isEmpty(materials0Data[iFIndex].handleType) ? 'update' : materials0Data[iFIndex].handleType; + materials0Data[iFIndex] ={...materials0Data[iFIndex], ...addState}; + } + }); + } + + const newTableDataRowAdd = JSON.parse(JSON.stringify(tableDataRowAdd)); + // newTableDataRowAdd.sId = commonUtils.createSid(); + materials0Data.push(newTableDataRowAdd); + if(selectConfig?.sControlName === 'BtnPopupsAlumiteBomBillNo') { + materialsData.push(newTableDataRowAdd); + } + }); + if(selectConfig?.sControlName === 'BtnPopupsAlumiteBomBillNo') { + addState.materialsData = materialsData; + addState.materialsDelData = materialsDelData; + } else { + addState.materials0Data = materials0Data; + addState.materials0DelData = materials0DelData; + } + + + const iIndex = commonUtils.isNotEmptyArr(tableSelectedRowKeys) ? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]) : -1; + if (commonUtils.isJSON(selectData[0].sParams)) { + const paramsNewData = JSON.parse(selectData[0].sParams); + if (commonUtils.isJSON(tableData[iIndex].sParams)) { + const paramsOldData = JSON.parse(tableData[iIndex].sParams); + const iNewIndex = paramsNewData.findIndex(item => item.sParamType === 'sWorkOrder'); + if (iNewIndex > -1) { + const iOldIndex = paramsOldData.findIndex(item => item.sParamType === 'sWorkOrder'); + if (iOldIndex > -1) { + paramsOldData[iOldIndex].data = {...paramsOldData[iOldIndex].data, ...paramsNewData[iNewIndex].data}; + } else { + paramsOldData.push(paramsNewData[iNewIndex]); + } + tableData[iIndex].sParams = JSON.stringify(paramsOldData); + } + } else { + tableData[iIndex].sParams = selectData[0].sParams; + } + } + console.log('materials0DelData', materials0DelData ); + + this.props.onSaveState({ ...addState }); + } + } else if (selectConfig.sControlName?.startsWith('BtnPopupEdit')) { + if (!Array.isArray(selectData)) return; + if (other?.index >= 0 && tableData[other.index]) { + tableData[other.index][selectConfig.sActiveKey] = JSON.stringify(selectData || []); + if (!tableData[other.index].handleType) { + tableData[other.index].handleType = 'update'; + } + } + this.props.onSaveState({ [`${tbName}Data`]: [...tableData] }); + }else if(selectConfig.sControlName && selectConfig.sControlName === 'BtnPopup.dPreMatProductQty') { /* 消耗备料 */ + let { slaveData, slaveSelectedRowKeys } = this.props; + const addState ={}; + if(commonUtils.isEmptyArr(slaveData)){ + slaveData = []; + } + const iIndex = this.handleGetSelectedIndex(this.props, 'slave'); + let dModifyProductQty = 0; + const jsonData = []; + let jsonStr = ''; + if (commonUtils.isNotEmptyArr(selectData)) { + // eslint-disable-next-line no-unused-vars + selectData.forEach((item, index) => { + dModifyProductQty += commonUtils.isNull(item.dModifyProductQty, 0); + const obj ={}; + obj.sSlaveId = commonUtils.isNotEmptyObject(item.sSlaveId) ? item.sSlaveId : item.sId; + obj.sId = item.sId; + obj.dModifyProductQty = commonUtils.isNotEmptyNumber(item.dModifyProductQty) ? item.dModifyProductQty : 0; + jsonData.push(obj); + }); + addState.dPreMatProductQty = dModifyProductQty; + addState.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? 'update' : tableData[iIndex].handleType; + if(commonUtils.isNotEmptyArr(jsonData)) { + jsonStr = commonUtils.isNotEmptyArr(jsonData) ? JSON.stringify(jsonData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ + addState.sPreMatProduct = jsonStr; + } + if(iIndex > -1) { + slaveData[iIndex] = { ...slaveData[iIndex], ...addState }; + } + addState.slaveData = slaveData; + this.props.onSaveState({ ...addState }); + } else { + addState.dPreMatProductQty = 0; + addState.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? 'update' : tableData[iIndex].handleType; + addState.sPreMatProduct = ''; + if(iIndex > -1) { + slaveData[iIndex] = { ...slaveData[iIndex], ...addState }; + } + addState.slaveData = slaveData; + this.props.onSaveState({ ...addState }); + } + } else if(selectConfig.sName === 'sOrderNo' ) { /* 选择试制订单号 */ + const { controlData : controlDataNew, packData} = this.props; + const addReturn = this.props.onSelectCommonPopup(currentPaneName, selectConfig, selectData, tbName, true); + const addState = {}; + const tableData = commonUtils.isNotEmptyObject(addReturn) && commonUtils.isNotEmptyArr(addReturn[tbName +'Data']) ? addReturn[tbName +'Data'] : []; + if(commonUtils.isNotEmptyArr(tableData)) { + const iIndex = commonUtils.isNotEmptyArr(tableSelectedRowKeys) && commonUtils.isNotEmptyObject(tableSelectedRowKeys[0]) ? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]) : -1; + const tableDataRow = iIndex > -1 ? tableData[iIndex] : {}; + /* 如果packData只有一条数据 则同步合版数据 及增加控制表合版备注 */ + if (commonUtils.isNotEmptyArr(packData) && packData.length === 1 && packData[0].sSlaveId === tableDataRow.sId) { + let packDataRow = packData[0]; + const sControlId = packDataRow.sControlId; + packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId); + packDataRow.dCombineQty = 1; + packData[0] = { ...packData[0], ...packDataRow } + + if (commonUtils.isNotEmptyObject(packData[0])) { + const { sId, sProductNo, dProductQty, dCombineQty, dFactProductQty, sCombinePartsName } = packData[0]; + const tableCombineSelectedData = []; + const jsonObj = {}; + jsonObj.sId = sId; + jsonObj.sProductNo = sProductNo; /* 产品编号 */ + jsonObj.dCombineQty = commonUtils.isNotEmptyNumber(dCombineQty) ? dCombineQty : 0; /* 排版数 */ + jsonObj.dProductQty = commonUtils.isNotEmptyNumber(dProductQty) ? dProductQty : 0; /* 生产数 */ + jsonObj.dFactProductQty = commonUtils.isNotEmptyNumber(dFactProductQty) ? dFactProductQty : 0; /* 实际生产数 */ + jsonObj.sCombinePartsName = sCombinePartsName; /* 合版部件名称 */ + tableCombineSelectedData.push(jsonObj); + const sCombinedMemo = commonUtils.isNotEmptyArr(tableCombineSelectedData) ? JSON.stringify(tableCombineSelectedData) : ''; /* JSON对象转换为字符串存放到合版信息中 */ + // const controlDataNew =commonUtils.isNotEmptyArr(addState.controlData)? addState.controlData: controlDataOld; + if (commonUtils.isNotEmptyArr(controlDataNew)) { + const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId); + if (iControlIndex > -1) { + controlDataNew[iControlIndex].sCombinedMemo = sCombinedMemo; + controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName; + } + addState.controlData = controlDataNew; + } + } + } else if (packData.length > 1) { + const packFilterData = packData.filter(item => item.sSlaveId === tableDataRow.sId); + if (commonUtils.isNotEmptyArr(packFilterData)) { + packFilterData.forEach((itemPack, index) => { + let packDataRow = itemPack; + const sControlId = packDataRow.sControlId; + packDataRow = this.handlePackDataAdd(tableDataRow, 0, sControlId); + // packDataRow.dCombineQty = 1; + const pIndex = packData.findIndex(item => item.sId === itemPack.sId); + if (pIndex > -1){ + packData[pIndex] = { ...packData[pIndex], ...packDataRow}; /* 根据选中的从表 找到所有的合版数据,将合版数据中的产品换成切换后的产品 */ + let sCombinedMemoStr = ''; /* 将控制表合版信息中的产品换成新选择的产品 */ + if(commonUtils.isNotEmptyArr(controlDataNew)) { + const iControlIndex = controlDataNew.findIndex(item => item.sId === sControlId); + if (iControlIndex > -1) { + sCombinedMemoStr = controlDataNew[iControlIndex].sCombinedMemo; + if(sCombinedMemoStr) { + const sCombinedMemoArr = commonUtils.isNotEmptyObject(sCombinedMemoStr) ? JSON.parse(sCombinedMemoStr): {}; + if(commonUtils.isNotEmptyArr(sCombinedMemoArr)) { + const iIndex = sCombinedMemoArr.findIndex(item => item.sId === itemPack.sId); + if(iIndex > -1){ + const addState ={}; + addState.sProductId = tableDataRow.sProductId; /* 产品id */ + addState.sCustomerId = tableDataRow.sCustomerId; /* 客户id */ + addState.sCustomerName = tableDataRow.sCustomerName; /* 客户名称 */ + addState.sProductName = tableDataRow.sProductName; /* 产品名称 */ + addState.sProductNo = tableDataRow.sProductNo; /* 产品编号 */ + sCombinedMemoArr[iIndex] ={...sCombinedMemoArr[iIndex], ...addState}; + const sCombinedMemo = commonUtils.isNotEmptyArr(sCombinedMemoArr) ? JSON.stringify(sCombinedMemoArr) : ''; /* JSON对象转换为字符串存放到合版信息中 */ + controlDataNew[iControlIndex].sCombinedMemo =sCombinedMemo; + controlDataNew[iControlIndex].sPartsName = tableDataRow.sProductName; + } + } + } + } + } + } + }); + addState.controlData = controlDataNew; + } + + } + addState.packData = packData; + this.props.onSaveState({ [`${tbName}Data`]: tableData, ...addState }); + } + + } + else { + this.props.onSelectCommonPopup(currentPaneName, selectConfig, selectData, tbName); + } + }; + handleGetSplitData = (allData, config, type) => { + const addState = {}; + let newData = []; + const sSqlCondition = config ? config.sSqlCondition : 'materials0.sBclassifyName.油墨'; + if (commonUtils.isNotEmptyArr(allData) && commonUtils.isNotEmptyObject(sSqlCondition)) { + let targetTbName = sSqlCondition.split('.')[0]; /* 1.表名 control */ + if (commonUtils.isEmptyObject(targetTbName)) { + targetTbName = 'materials0'; + } + let filteredValue = sSqlCondition.split('.')[1]; /* 2.解析filterValue: controlSelectedRowKeys */ + let sParentKey = sSqlCondition.split('.')[2]; /* 2.解析本身表对应的值,如控制表筛选材料表 则材料表的sControlId = 控制表的controlSelectedRowKeys[0] */ + if (commonUtils.isEmptyObject(targetTbName)) { + if (type === 'materials1') { /* materials0.sBclassifyName.油墨 */ + filteredValue = 'sBclassifyName'; + sParentKey = '油墨'; + } else if (type === 'materials2') { /* materials0.sBclassifyName.电化铝 */ + filteredValue = 'sBclassifyName'; + sParentKey = '电化铝'; + } + } + if (targetTbName === 'materials0') { + // const filterData = allData.filter(item => item[filteredValue] === sParentKey); + const filterData = allData.filter(item => sParentKey && sParentKey.includes(item[filteredValue])); + if (commonUtils.isNotEmptyArr(filterData)) { + newData = filterData; + } + } + + } + addState[`${type}Data`] = newData; + return addState; + } + handleOnExpand = async (expanded, record) => { + const { expKeys } = this.props; + /* 添加移除展开的sId */ + const { formRoute } = this.props; + let newExp = commonUtils.isNotEmptyArr(expKeys) ? expKeys : []; + let rowKeyId = ''; + if (formRoute === '/indexPage/materialRequirementsPlanning') { + rowKeyId = record.sMaterialsGS; + } + if (expanded) { + if (commonUtils.isNotEmptyObject(rowKeyId)) { + newExp.push(rowKeyId); + } + } else { + newExp = newExp.filter(item => item !== rowKeyId); + } + this.props.onSaveState({ expKeys: newExp }); + } + /* 点击展开图标时,调用接口获取嵌套字表数据 */ + handleOnExpandMultiTree = async (expanded, record) => { + const { + expKeys, slaveInfoConfig, slaveFilterCondition, + } = this.props; + let { slaveInfoData } = this.props; + const { sId: sSlaveId, sSqlConditionId } = record; + const sProductionPlanId = sSlaveId; + /* 添加移除展开的sId */ + const rowKey = 'sId'; + let newExp = commonUtils.isNotEmptyArr(expKeys) ? expKeys : []; + if (expanded) { + newExp.push(record[rowKey]); + } else { + newExp = newExp.filter(item => item !== record[rowKey]); + } + let childrenData = []; + /* 查看是否已经获取到明细表数据 */ + if (commonUtils.isNotEmptyArr(slaveInfoData)) { + childrenData = slaveInfoData.filter(item => item.sSqlConditionId === sSqlConditionId); + } + if (expanded && commonUtils.isEmptyArr(childrenData)) { + if (commonUtils.isNotEmptyObject(sProductionPlanId)) { + const planLoadingSate = {}; + planLoadingSate.sId = sProductionPlanId; + planLoadingSate.planLoading = true; + const addStateSlaveInfo = await this.handleGetMultiDataInfo(slaveInfoConfig, slaveFilterCondition, 1, undefined, record, true); + if (commonUtils.isNotEmptyObject(addStateSlaveInfo)) { + const returnData = addStateSlaveInfo.slaveInfoData; + if (commonUtils.isNotEmptyArr(returnData)) { + childrenData = returnData; + if (commonUtils.isEmptyArr(slaveInfoData)) { + slaveInfoData = []; + } + childrenData.forEach((child) => { + const iIndex = slaveInfoData.findIndex(item => item.sSlaveId === child[rowKey]); + if (iIndex === -1) { + // child.sFatherSlaveId = record.sSlaveId; /* 增加父行的主键作为从表行的sFatherSlaveId */ + slaveInfoData.push(child); + } + }); + const childrendFilterData = childrenData.filter(item => item.sSqlConditionId === record.sSqlConditionId); + if(commonUtils.isNotEmptyArr(childrendFilterData)){ + childrendFilterData.forEach((child) => { + const iIndex = slaveInfoData.findIndex(item => item[rowKey] === child[rowKey]); + if (iIndex > -1) { + slaveInfoData[iIndex].sFatherSlaveId = record[rowKey]; + } + }); + } + } + planLoadingSate.planLoading = false; + planLoadingSate.expKeys = newExp; + this.props.onSaveState({ + planLoadingSate, slaveInfoData, + }); + } else { + planLoadingSate.planLoading = false; + this.props.onSaveState({ planLoadingSate }); + } + } + } else if (expanded && commonUtils.isNotEmptyArr(slaveInfoData)) { /* 已获得明细表数据时 */ + childrenData.forEach((child) => { + const iIndex = slaveInfoData.findIndex(item => item[rowKey] === child[rowKey]); + if (iIndex > -1) { + slaveInfoData[iIndex].sFatherSlaveId = record[rowKey]; + } + }); + } + } + + handleGetNewSelectData = (data) => { + const { + processData, controlSelectedRowKeys, + } = this.props; + const newData = []; + let startIndex = 0; /* 最开始下标 */ + const iOrderArr = []; + /* 当前控制表选中行下的工序 接着编号 */ + const filterData = commonUtils.isNotEmptyArr(processData) && commonUtils.isNotEmptyArr(controlSelectedRowKeys) ? + processData.filter(item => controlSelectedRowKeys.includes(item.sControlId)) : []; + if (commonUtils.isNotEmptyArr(filterData)) { + /* 找到最大序号值 接着拍 */ + filterData.forEach((item) => { + const iOrder = commonUtils.isNotEmptyNumber(item.iOrder) ? item.iOrder : 0; /* 获取tableData中iOrder最大值 */ + iOrderArr.push(iOrder); + }); + } + /* 对所有移动的数据 进行一次重新排序 */ + if (commonUtils.isNotEmptyArr(iOrderArr)) { + startIndex = Math.max(...iOrderArr); + } + if (commonUtils.isNotEmptyArr(data)) { + data.forEach((item, index) => { + const iOrderNew = startIndex + index + 1; + const newRow = { ...item, iOrder: iOrderNew }; + newData.push(newRow); + }); + } + return newData; + } + /* 根据配置拉窗体配置 */ + handleGetFormConfig = async (sModelsId) => { + let formConfig = {}; + const configUrl = `${commonConfig.server_host}business/getModelBysId/${sModelsId}?sModelsId=${sModelsId}&sName=/commonAuto`; + const configReturn = (await commonServices.getService('', configUrl)).data; + if (configReturn.code === 1) { + const dataReturn = configReturn.dataset.rows; + if (commonUtils.isNotEmptyArr(dataReturn)) { + const { formData } = dataReturn[0]; + if (commonUtils.isNotEmptyArr(formData)) { + formConfig = formData[0]; + } + } + } else { + message.error(configReturn.msg); + } + return formConfig; + } + + handleGetSelectedIndex = (props, tableName) => { + const selectedRowKeys = props[`${tableName}SelectedRowKeys`] || []; + let selectedDataIndex = -1; + const tableData = props[`${tableName}Data`]; + if (commonUtils.isNotEmptyArr(tableData)) { + if (commonUtils.isNotEmptyArr(selectedRowKeys)) { + selectedDataIndex = tableData.findIndex( + item => item.sId === selectedRowKeys[0] + ); + } else { + selectedDataIndex = 0; + } + } + return selectedDataIndex; + }; + + handleGetSelectedData = (props, tableName) => { + const selectedRowKeys = props[`${tableName}SelectedRowKeys`] || []; + let selectedDataIndex = -1; + const tableData = props[`${tableName}Data`]; + if (commonUtils.isNotEmptyArr(tableData)) { + if (commonUtils.isNotEmptyArr(selectedRowKeys)) { + selectedDataIndex = tableData.findIndex( + item => item.sId === selectedRowKeys[0] + ); + } else { + selectedDataIndex = 0; + } + } + if( selectedDataIndex > -1) { + return props[`${tableName}Data`][selectedDataIndex]; + } else { + return {}; + } + }; + + handleBtnParamPage = (props, comparedTableId, type) =>{ + /* 找到所选择控制表, 根据当前行找 上条,下条,首条,末条 */ + const { processData} = props; + const processRow = this.handleGetSelectedData(props, 'process'); /* 工序当前选中行 */ + const controlRow = this.handleGetSelectedData(props, 'control'); /* 控制表当前选中行 */ + let filterData = []; + if(commonUtils.isNotEmptyObject(controlRow) && commonUtils.isNotEmptyArr(processData)){ + filterData = processData.filter(item => item.sControlId === controlRow.sId); + } + let tableDataRow = {}; + if( commonUtils.isNotEmptyArr(filterData)) { + const iIndex = filterData.findIndex(item => item.sId === processRow.sId); + if(iIndex > -1) { + const len = filterData.length; + if (type === 'first') { + tableDataRow = filterData[0]; + + }else if (type === 'last') { + tableDataRow = filterData[len -1]; + + }else if (type === 'before') { + if(iIndex === 0 || iIndex > len -1) { + message.error('当前是首条'); + return; + } + tableDataRow = filterData[iIndex - 1]; + + }else if (type === 'next') { + if(iIndex === len-1 || iIndex > len -1) { + message.error('当前是末条'); + return; + } + tableDataRow = filterData[iIndex + 1]; + } + if(commonUtils.isNotEmptyObject(tableDataRow)) { + props.onSaveState({ processSelectedRowKeys: [tableDataRow.sId]}) + } + }else{ + message.error('数据错误!'); + } + } else{ + message.error('数据错误!'); + } + + } + + render() { + const { masterData } = this.props; + const imgSrc = commonBusiness.handleAddIcon(masterData); + return ( + + ); + } + }; +}; diff --git a/src/components/Common/CommonExamInfo/index.js b/src/components/Common/CommonExamInfo/index.js new file mode 100644 index 0000000..dc0d509 --- /dev/null +++ b/src/components/Common/CommonExamInfo/index.js @@ -0,0 +1,425 @@ +/* eslint-disable */ +import React, { Component } from 'react'; +import moment from 'moment'; +import { Input, Layout, Steps, Select, Button, Modal,message, Spin } from 'antd'; +import { UserOutlined } from '@ant-design/icons'; +import * as commonUtils from '@/utils/utils';/* 通用方法 */ +import * as commonServices from '@/services/services';/* 服务类 */ +import commonConfig from '../../../utils/config'; +import flowPicture2 from '@/assets/flow/flowpic.png'; +import styles from './index.less'; +import AntdDraggableModal from "../AntdDraggableModal"; +import {value} from "lodash/seq"; + + +const { Content } = Layout; +const { TextArea } = Input; +class CommonExamInfo extends Component { + constructor(props) { + super(props); + this.state = { + flowLoading: false, + }; + } + /* 同意/驳回 */ + submitHandler = async (btnName ) => { + const { app } = this.props; + const { textareaValue } = this.state; + const { currentPane, panes, userinfo } = app; + const sFlowData = currentPane?.sFlowData; /* 业务流完整数据源 */ + let sFlowObj = {}; + if (commonUtils.isNotEmptyObject(sFlowData)) { + const sFlowArr = [JSON.parse(sFlowData.toString())]; + if (commonUtils.isNotEmptyArr(sFlowArr)) { + sFlowObj = sFlowArr[0]; + } + } + const historyList = sFlowObj?.historyList; /* 审批流程 */ + const sBrandsId = userinfo?.sBrandsId; + const sSubsidiaryId = userinfo?.sSubsidiaryId; + const sUserId = userinfo?.sUserName; + const taskId = sFlowObj?.taskId; + const sTaskId = sFlowObj?.taskId; + const commentObj = document.getElementById('comment'); + const comment = commentObj?.value ; /* 驳回理由 */ + if(btnName ==='reject' && commonUtils.isEmptyObject(comment)){ + message.error("请输入驳回理由!") + return; + } + const bizFlowVo = sFlowObj.bizFlowVo; + const sTableParamsValue= sFlowObj.bizFlowVo?.sTableParamsValue; + const sFormData= commonUtils.isNotEmptyObject(sTableParamsValue) ? JSON.parse(sTableParamsValue) : {}; + const prefix = commonConfig.server_host + "currencyFlow"; + let url = prefix + "/complete/" + taskId+"/"+sBrandsId+"/"+sSubsidiaryId+"/"+sUserId; + // const data = $('#form-leave-edit').serialize(); + const data = sFormData; + if(btnName === 'agree'){ + data.approved = true; + }else if(btnName ==='reject') { + data.approved = false; + } + data.id = bizFlowVo?.id; + data.taskId = taskId; + data.sTaskId = sTaskId; + data.sSrcId = bizFlowVo?.sSrcId; + data.sSrcFormId = bizFlowVo?.sSrcFormId; + data.sUserId = sUserId; + data.sUserName = sUserId; + data.messagesTitle = bizFlowVo?.title; + data.selectMap = {}; + data.comment = this.state.textareaValue; + const { token }= this.props; + const sReturn = (await commonServices.postValueService(token, data, url)).data; + if(commonUtils.isNotEmptyObject(sReturn)) { + if (sReturn.code > 0 || sReturn.code === 0) { + message.success('操作成功!'); + /* 找到当前登陆人 把登录人的状态更新为已同意 或是已驳回 */ + // const userIndex = commonUtils.isNotEmptyArr(historyList) ? historyList.findIndex(item => item.assigneeName?.includes(sUserId)) : -1; + const userIndex = commonUtils.isNotEmptyArr(historyList) ? 0 : -1; + if(userIndex > -1) { + historyList[userIndex].comment = data.approved ? '已同意' : '已驳回'; + historyList[userIndex].assigneeName = sUserId; + historyList[userIndex].endTime = moment().format('YYYY-MM-DD HH:mm:ss'); + + /* 关闭页签 */ + const currentPaneIndex = panes?.findIndex(item => item.key === currentPane.key); + const newPanes = []; + if (currentPaneIndex > 0) { + panes.forEach((item, index) => { + if (index !== currentPaneIndex) { + newPanes.push(item); + } + }); + this.props.dispatch({ type: 'app/removePane', payload: { changePanes: newPanes, currentPane: panes[currentPaneIndex - 1] } });/* 关闭当前页签 */ + } + const iframe = document.getElementById('iframe1'); + if(commonUtils.isNotEmptyObject(iframe)) { + const iframeWindow = iframe.contentWindow; + // 调用iframe中的函数 + // let iframeDoc = iframe.contentWindow || iframe.contentDocument; + // if (iframeDoc.document) iframeDoc = iframeDoc.document; // 处理IE兼容性 + iframeWindow.location.reload(); // 刷新iframe中的页面 + } + this.setState({ historyNewList: historyList, bHandleShow: false, flowLoading: false}) ; + } + + } else { + this.props.getServiceError(sReturn); + } + }else { + message.error('操作异常!') + } + + } + + /* 转办弹出转办人弹出窗 */ + transferHandler = (btnName ) => { + const bTransferUserVisible = true; + this.setState({ + bTransferUserVisible + }) + } + /* 执行转办逻辑 */ + transferCall = async () => { + const { delegateToUserId, delegateToUser} = this.state; + const { app } = this.props; + const { currentPane, panes, userinfo } = app; + const sFlowData = currentPane?.sFlowData; /* 业务流完整数据源 */ + const sBrandsId = userinfo?.sBrandsId; + const sSubsidiaryId = userinfo?.sSubsidiaryId; + const sUserId = userinfo?.sUserName; + let sFlowObj = {}; + if (commonUtils.isNotEmptyObject(sFlowData)) { + const sFlowArr = [JSON.parse(sFlowData.toString())]; + if (commonUtils.isNotEmptyArr(sFlowArr)) { + sFlowObj = sFlowArr[0]; + } + } + const userList = []; + const taskId = sFlowObj?.taskId; + const data =[]; + if(commonUtils.isEmptyObject(delegateToUser)) { + message.error('请选择转办人!') + return; + } + if(delegateToUser === sUserId){ + message.error('请选择非自己的待办人'); + return; + } + this.setState({flowLoaing:true}); + let redata = { + taskId: taskId, + delegateToUser: delegateToUser, + delegateToUserId: delegateToUserId + }; + const url = commonConfig.server_host + "process/delegatePhone/"+sUserId+"/"+sBrandsId+"/"+sSubsidiaryId; + const { token }= this.props; + const sReturn = (await commonServices.postValueService(token, redata, url)).data; + if(commonUtils.isNotEmptyObject(sReturn)) { + if (sReturn.code > 0 || sReturn.code === 0) { + message.success('转办成功!'); + /* 关闭页签 */ + const currentPaneIndex = panes?.findIndex(item => item.key === currentPane.key); + const newPanes = []; + if (currentPaneIndex > 0) { + panes.forEach((item, index) => { + if (index !== currentPaneIndex) { + newPanes.push(item); + } + }); + this.props.dispatch({ type: 'app/removePane', payload: { changePanes: newPanes, currentPane: panes[currentPaneIndex - 1] } });/* 关闭当前页签 */ + } + const iframe = document.getElementById('iframe1'); + if(commonUtils.isNotEmptyObject(iframe)) { + const iframeWindow = iframe.contentWindow; + // 调用iframe中的函数 + iframeWindow.location.reload(); // 刷新iframe中的页面 + } + this.props.onSaveState({ bDelegate: true}); /* 已转办 */ + this.setState({flowLoaing:false}); + } else { + this.props.getServiceError(sReturn); + } + } else { + message.error('操作异常!') + } + this.setState({ bTransferUserVisible:false }) + } + handleCancelModal = (modelVisible) => { + this.setState({ bTransferUserVisible:false }) + } + /* 设置textareaValue */ + handleTextareaChange = (e) => { + console.log('驳回', e); + this.setState({ + textareaValue: e.target.value, + }); + } + handleSelectChange = (value) => { + this.setState({ + delegateToUserId: value, + delegateToUser: value + }); + }; + + handleOptionChange = (value) => { + this.setState({ + delegateToUserId: value, + delegateToUser:'sEmployeeName' + }); + }; + + render() { + const { bTransferUserVisible, historyNewList, flowLoading }= this.state; + let { bHandleShow =true }= this.state; + const { app, masterConfig } = this.props; + const { currentPane } = app; + const sFlowData = currentPane?.sFlowData; /* 业务流完整数据源 */ + let sFlowObj = {}; + if (commonUtils.isNotEmptyObject(sFlowData) && commonUtils.isJSON(sFlowData)) { + sFlowObj = JSON.parse(sFlowData.toString()); + // const sFlowArr = JSON.parse(sFlowData.toString()); + // if (commonUtils.isNotEmptyArr(sFlowArr)) { + // sFlowObj = sFlowArr[0]; + // } + } + console.log('sFlowObj:', sFlowObj); + // const bHandleShow = sFlowObj?.bHandleShow; /* 是否展示按钮及审批意见区域 */ + let sFlowTitle = sFlowObj?.title; /* 审批标题 */ + const dataList = sFlowObj?.dataList; /* 审批数据源 */ + let historyList = sFlowObj?.historyList; /* 审批流程 */ + if(commonUtils.isNotEmptyArr(historyNewList)) { + historyList = historyNewList; + } + let sCheckInfo = '审批记录'; + if(commonUtils.isEmptyObject(sFlowObj)) { + bHandleShow = false; + sFlowTitle ='暂无审批信息'; + sCheckInfo = ''; + } + let userList = commonUtils.isNotEmptyArr(sFlowObj?.userData)? sFlowObj?.userData : []; /* 转办人 */ + const dataDynamicList = commonUtils.isNotEmptyArr(dataList) ? dataList.filter(item => item.name !=='sEmployeeName') : []; + const sBillNoObj =commonUtils.isNotEmptyArr(dataList) ? dataList.find(item => item.name === 'sBillNo') : null; /* 申请人员 */ + const sBillNo = commonUtils.isNotEmptyObject(sBillNoObj) ? sBillNoObj.value : ''; + const sApplyObj = commonUtils.isNotEmptyArr(dataList) ? dataList.find(item => item.name === 'sEmployeeName') : null; /* 申请人员 */ + const sApplyName = commonUtils.isNotEmptyObject(sApplyObj) ? sApplyObj.value : ''; + + const sApplyDateObj = sFlowObj?.bizFlowVo; /* 申请人员 */ + const sApplyDate = commonUtils.isNotEmptyObject(sApplyDateObj) ? sApplyDateObj.applyTime : ''; + const historyItem = []; + if(commonUtils.isNotEmptyObject(historyList)) { + historyList.forEach((item) => { + const activityName = item.activityName; + const time = item.endTime; + const status = item.comment; + const assigneeName = item.assigneeName; /* 同意人 */ + const flowMemo = item.memo ; /* 例: 备注:项目加急,需要加班 */ + const sDescription = ( +
+
+
+
头像
+
{assigneeName}
+
+
{status}·{time}
+
+
+ {flowMemo} +
+
+ ); + const obj = { + title: activityName, + description: sDescription, + icon: , + } + historyItem.push(obj) + }) + } + return ( + + + +
{sFlowTitle}
+
+ { + commonUtils.isNotEmptyObject(dataList) ? +
+ { + commonUtils.isNotEmptyArr(sApplyName) ? +
+
申请人:
+
{sApplyName}
+
+ : '' + } +
+
申请时间:
+
{sApplyDate}
+
+ { + dataDynamicList && dataDynamicList.map((child) => { + const name = child.name; + const title = child.title; + const value = child.value; + const bEdit = !child.bEdit; /* 是否编辑 */ + const type= child.type; /* 文本类型 */ + const bSelect = child.bSelect; /* 是否下拉 */ + const selectConfig = bSelect && commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sName === name) : []; + const showDropDown = commonUtils.isNotEmptyArr(selectConfig) ? selectConfig[0].showDropDown : []; /* 可编辑的下拉 */ + return ( +
+
{title}
+ { + bEdit && type === 's' ? + : + bEdit && type === 's' && bSelect ? +