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 (
+
+ );
+ },
+ }];
+ 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) ?
+
+
+
+ : ''
+ }
+
+
+ : ''}
+
+
+
+ );
+ }
+}
+
+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 (
+
+ );
+});
+
+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 = `';
+ 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 = (
+
+ );
+ const obj = {
+ title: activityName,
+ description: sDescription,
+ icon: ,
+ }
+ historyItem.push(obj)
+ })
+ }
+ return (
+
+
+
+ {sFlowTitle}
+
+ {
+ commonUtils.isNotEmptyObject(dataList) ?
+
+ {
+ commonUtils.isNotEmptyArr(sApplyName) ?
+
+ : ''
+ }
+
+ {
+ 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 ?
+
:
+
{value}
+ }
+
+
+ );
+ })
+ }
+
+
+ : ''
+ }
+
+
+
+
+
+
{sCheckInfo}
+
+ {/*{*/}
+ {/* historyList && historyList.map((child) => {*/}
+ {/* const title = child.title;*/}
+ {/* const value = child.value;*/}
+ {/* return (*/}
+ {/*
*/}
+ {/*
{title}
*/}
+ {/*
{value}
*/}
+ {/*
*/}
+ {/* );*/}
+ {/* })*/}
+ {/*}*/}
+
+
+
+
+
+
+ {
+ bHandleShow ?
+
+
+
+
+
: ''
+ }
+
+ {
+ bTransferUserVisible ?
+ this.setState({ bTransferUserVisible : false})}
+ // afterClose={handleCancel}
+ footer={null}
+ >
+
+
+
+
+
+
+
+
+ : ''
+ }
+
+
+
+
+ );
+ }
+}
+
+export default CommonExamInfo;
diff --git a/src/components/Common/CommonExamInfo/index.less b/src/components/Common/CommonExamInfo/index.less
new file mode 100644
index 0000000..d455a8f
--- /dev/null
+++ b/src/components/Common/CommonExamInfo/index.less
@@ -0,0 +1,307 @@
+
+.outbox {
+ width: 95%;
+ margin: 0 auto;
+ padding-top: 8px
+ /* padding-top: 8px;
+padding-left: 10%; */
+}
+
+.search {
+ /* padding-left: 20px;
+ margin-left: 17px; */
+ /* margin: 12px; */
+ height: 33px;
+ line-height: 31px;
+ display: flex;
+ flex-direction: row;
+
+}
+
+.content {
+ /* background-color: aquamarine; */
+ height: calc(92vh - 40px);
+ overflow-y: auto;
+}
+.iptBox{
+ width: 98%;
+ border-radius: 2px;
+}
+
+.ipt {
+ height: 30px;
+ /* width: 85%; */
+ width: 98%;
+ border-radius: 15px;
+ border: 1px solid #c0c0c3;
+ background-color: #fff;
+ padding: 10px;
+}
+
+.iptText {
+ font-size: 16px;
+ width: 15%;
+ margin-left: 15px;
+ color: orangered;
+ font-weight: bold;
+}
+
+.iptText a {
+ text-decoration: none;
+}
+
+.tabList {
+ border-top: 1px solid #c0c0c3;
+ background-color: #fff;
+ position: fixed;
+ bottom: 0;
+ height: 9vh;
+ width: 100%;
+ display: flex;
+ flex-direction: row;
+}
+
+.tab {
+ padding: 10px;
+ display: flex;
+ flex-direction: column;
+ width: 25%;
+ text-align: center;
+ height: 8vh;
+ font-size: 12px;
+}
+
+
+.imgTab {
+ width: 28px;
+}
+
+
+.imgSearch {
+ right: 37px;
+ top: 12px;
+ height: 22px;
+ position: absolute;
+}
+
+
+.main {
+ padding: 1.2rem 1rem 1rem 1rem;
+
+}
+
+.card {
+ margin: 0 auto;
+ margin-bottom: 20px;
+ padding: 0 1rem;
+ /* margin-top: 20%; */
+ /* padding-top: 20%; */
+ width: 85%;
+ min-height: 150px;
+ background-color: #ffffff;
+ border-radius: 0.5rem;
+ line-height: 2rem;
+}
+
+.cardTitle {
+ font-weight: bold;
+ //height: 6rem;
+ min-height: 4rem;
+ max-height: 6rem;
+ //line-height: 6rem;
+ color: #000;
+ border-bottom: 1px dashed #dfdfdf;
+ font-size: 20px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+}
+
+
+
+.cardBox {
+ padding-top: 0.7rem;
+}
+
+.cardDate {
+ color: #808080;
+ margin-bottom: 1rem;
+ height: 3rem;
+}
+
+.cardShort {
+ font-size: 17px;
+ font-weight: bolder;
+}
+
+.cardMsg {
+ color: #808080;
+ line-height: 1.4rem;
+ padding-bottom: 1rem;
+ padding-top: 0.3rem;
+}
+
+.cardMore {
+ display: flex;
+ flex-direction: row;
+ justify-content: space-between;
+ height: 3rem;
+ line-height: 3rem;
+ border-top: 1px solid #dfdfdf;
+}
+
+.cardContent {
+ padding-bottom: 0.5rem;
+ line-height: 2rem;
+}
+
+.cardBillTitle {
+ height: 3rem;
+ font-weight: 540;
+}
+
+.cardBill {
+ line-height: 2rem;
+}
+
+.cardLine {
+ display: flex;
+ flex-direction: row;
+}
+
+.cardColumn {
+ color: #808080;
+ width: 30%;
+ text-align: left;
+ margin-left: 12%;
+ word-break: break-all;
+}
+
+.cardValue {
+ color: #000;
+ text-align: left;
+
+ margin-left: -5%;
+}
+.cardValue img{
+ margin-bottom: -4px;
+ width: 50px;
+ height: 23px;
+}
+
+a {
+ border: none;
+ color: #808080;
+}
+
+
+.splitLine{
+ height: 1px;
+ line-height: 1px;
+ color: #000;
+ border-bottom: 1px dashed #dfdfdf;
+}
+.memo{
+ width: 95%;
+}
+.cardAgree {
+
+ margin-top: 1.5rem;
+ display: flex;
+ justify-content: space-between;
+ padding: 0px 10px 10px 39px;
+}
+/* 已同意 */
+.btnAgreeDone {
+ width: 100%;
+ line-height: 45px;
+ border: 0;
+ border-radius: 7px;
+ font-size: 16px;
+ background-color: #eef1f0;
+}
+
+.btnAgreeDone {
+ width: 100%;
+ line-height: 45px;
+ border: 0;
+ border-radius: 7px;
+ font-size: 16px;
+ background-color: #eef1f0;
+}
+.btnTransfer{
+ width: 28%;
+ background-color: #808A87;
+ color: #fff;
+ line-height: 45px;
+ border: 0;
+ border-radius: 7px;
+ font-size: 16px;
+}
+.btnAgree {
+ width: 28%;
+ background-color: #347ecd;
+ color: #fff;
+ line-height: 45px;
+ border: 0;
+ border-radius: 7px;
+ font-size: 16px;
+
+}
+
+.btnRefuse {
+ width: 28%;
+ background-color: #ff0000;
+ color: #fff;
+ line-height: 45px;
+ border: 0;
+ border-radius: 7px;
+ font-size: 16px;
+}
+.flowInfo{
+ padding: 10px 30px;
+}
+.flowTitle{
+ font-weight: bold;
+ height: 4rem;
+ line-height: 4rem;
+ color: #000;
+ border-bottom: 1px dashed #dfdfdf;
+ font-size: 20px;
+ text-align: left;
+ padding-left:12px;
+}
+.flowStep{
+ padding: 10px 20px;
+}
+.flowDescription{
+ margin-top: 10px;
+ display: flex;
+ justify-content: space-between;
+ padding: 8px 0;
+}
+.floweExtra{
+ font-size: 12px;
+ padding-left: 35px;
+}
+
+.sPersonInfo{
+ display: flex;
+ flex-direction: row;
+ align-items:center;
+ color: #000;
+}
+.sPersonName{
+ margin-left: 10px;
+}
+.sPersonStatus{
+ color: #000;
+ margin-top: 5px;
+}
+
+.sStatusInfo{
+
+}
+.flowComments{
+
+}
diff --git a/src/components/Common/CommonListEdit.js b/src/components/Common/CommonListEdit.js
new file mode 100644
index 0000000..a612e33
--- /dev/null
+++ b/src/components/Common/CommonListEdit.js
@@ -0,0 +1,275 @@
+/* 此组件作用是 可编辑列表 */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+import { Layout, Spin, Slider } from 'antd-v4';
+import CommonListEvent from '@/components/Common/CommonListEditEvent';/* 继承销售模块业务功能 */
+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 CommonBase from '@/components/Common/CommonBase';/* 获取配置及数据 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组件 */
+import commonConfig from '@/utils/config';
+import * as commonUtils from '@/utils/utils';
+import StaticEditTree from '@/components/Common/Tree/StaticTree';
+import Eject from '@/assets/eject.svg';/* 弹出图标 */
+import Close from '@/assets/close.svg';/* 关闭图标 */
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelect from '@/components/Common/CommonListSelect';/* 选择界面 */
+
+const { Header, Content } = Layout;
+let NoTotalData = '';
+class CommonListEdit extends Component {
+ handleEject = () => {
+ const { currentPane, panes } = this.props.app;
+ if (commonUtils.isNotEmptyArr(panes) && commonUtils.isNotEmptyObject(currentPane)) {
+ // const index = panes.indexOf(currentPane);
+ const index = panes.findIndex(item => item.formId === currentPane.formId && item.key === currentPane.key && item.notCurrentPane === currentPane.notCurrentPane && item.route === currentPane.route && item.title === currentPane.title && item.sModelsType === currentPane.sModelsType && item.sProcName === currentPane.sProcName);
+ /* 当前页签 */
+ let currentTab = document.getElementById('navTabWrap').children[index];
+ if (commonUtils.isEmpty(currentTab)) {
+ const oChildren = document.getElementById('navTabWrap').getElementsByClassName('ant-tabs-content')[0].children;
+ for (const child of oChildren) {
+ if (child.nodeName === 'DIV' && index !== undefined && child.getAttribute('id') === `navTabWrap-panel-${panes[index].key}`) {
+ currentTab = child;
+ }
+ }
+ }
+ if (!commonUtils.isEmpty(currentTab)) {
+ const filterTreeArr = currentTab.getElementsByClassName('xly-filter-tree');/* 获取当前页签下的树组件 */
+ if (commonUtils.isNotEmptyArr(filterTreeArr)) {
+ const filterTree = filterTreeArr[0];
+ if (filterTree.style.display === 'block') {
+ filterTree.style.display = 'none';
+ } else {
+ filterTree.style.display = 'block';
+ }
+ }
+ }
+ }
+ };
+ /** 树节点选中 */
+ handleTreeSelect = (name, checkedKeys, e) => {
+ this.props.onSelect(name, checkedKeys, e); /* 调用CommonListEvent通用处理 */
+ };
+
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ handleSelectModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+
+const CommonListEditComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveConfig, slaveColumn, isSmall, iHeight, logVisible, sModelsType, app,
+ } = props;
+ // isSmall将分页变小,以及去掉跳转页面和总条数记录
+ /* 回带表单 */
+ if (commonUtils.isNotEmptyObject(slavePagination)) {
+ // if (isSmall) {
+ // slavePagination.showTotal = null;
+ // }
+ }
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ ...slavePagination,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const tableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: { rowKey: 'sSlaveId', pagination, onChange: props.onTitleChange },
+ onSaveState: props.onSaveState,
+ clearArray: props.clearArray,
+ isSmall,
+ sGroupByList: props.sGroupByList,
+ bRowClick: true,
+ enabled: true,
+ };
+ const masterSum = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bSum && item.sName !== '') : [];
+ const masterTitleGroup = commonUtils.isNotEmptyObject(slaveColumn) ? slaveColumn.filter(item => commonUtils.isNotEmptyObject(item.title) && item.title.indexOf('-') > -1) : [];
+ const hasColumnGroup = masterTitleGroup.length;
+ if (masterSum.length > 0) {
+ NoTotalData = hasColumnGroup > 0 ? 'TitleGroup' : 'NoTitleGroup';
+ } else {
+ NoTotalData = hasColumnGroup > 0 ? 'NoTotalData TitleGroup' : 'NoTotalData NoTitleGroup';
+ }
+ // const mProps = { ...commonBusiness.createMemoProps('master', props)};
+
+ const name = 'filterTree';
+ const treeProps = {
+ ...commonBusiness.getTreeTypes('tree', props),
+ isSearch: false,
+ checkable: false,
+ disabled: false,
+ checkedAll: false,
+ unChecked: false,
+ [`${name}Column`]: props[`${name}Column`],
+ [`${name}Config`]: props[`${name}Config`],
+ [`${name}Data`]: props[`${name}Data`],
+ getFloatNum: props.getFloatNum,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getDateFormat: props.getDateFormat,
+ onDoubleClick: props.onDoubleClick,
+ onSelect: props.onSelectTree,
+ expandedKeys: props.expandedKeys,
+ };
+ const logProps = {
+ app: {
+ ...props.app,
+ currentPane: {
+ ...props.app.currentPane,
+ formRoute: '/indexPage/commonList',
+ route: '/indexPage/commonList',
+ name: 'logView',
+ config: props.logConfig,
+ select: props.onSelectModal.bind(this, 'logVisible'),
+ selectCancel: props.onCancelModal.bind(this, 'logVisible'),
+ sModelsType: 'modal/logView',
+ },
+ },
+ token: props.app.token,
+ slaveColumn: props.logColumn, /* 表头 */
+ slaveConfig: props.logConfig,
+ slaveData: props.logData,
+ dispatch: props.dispatch,
+ content: props.content,
+ id: new Date().getTime().toString(),
+ pageLoading: false,
+ };
+ const sReportParams = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, 'sReportParams')) ?
+ commonFunc.showMessage(app.commonConst, 'sReportParams') : '上报参数标准';
+ /* 新方式的上报参数 */
+ const sParamProps = {
+ ...commonBusiness.getTableTypes('sParam', props),
+ tableProps: {
+ rowKey: 'sId',
+ pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ rowSelection: null,
+ },
+ bRowClick: true,
+ enabled: true,
+ };
+ const onOkProps = {
+ disabled: false,
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonListEvent(CommonListEdit));
diff --git a/src/components/Common/CommonListEditEvent.js b/src/components/Common/CommonListEditEvent.js
new file mode 100644
index 0000000..cda276b
--- /dev/null
+++ b/src/components/Common/CommonListEditEvent.js
@@ -0,0 +1,2900 @@
+/* eslint-disable */
+/* eslint-disable prefer-destructuring */
+/**
+ * Created by mar105 on 2019-03-27.
+ */
+import React, { Component } from 'react';
+import { Modal, message } from 'antd';
+import * as commonUtils from '../../utils/utils'; /* 通用方法 */
+import * as commonFunc from './commonFunc'; /* 通用单据方法 */
+import commonConfig from '../../utils/config';
+import * as commonServices from '../../services/services';
+import * as commonBusiness from './commonBusiness';
+
+const { confirm } = Modal;
+
+export default (ChildComponent) => {
+ return class extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {};
+ this.loadingCount = 0;
+ }
+
+ componentWillMount() {
+ /* 获取配置 */
+ this.mounted = true;
+ const {
+ slaveData, slaveSelectedRowKeys, formRoute, app, sModelsType,
+ } = this.props;
+ const { currentPane } = app;
+ /* 选择合版部件 slaveConfig,slaveColumn,slaveData有值 会将值存储到state中 */
+ if (currentPane.name === 'combineParts' || currentPane.name === 'logView' || currentPane.name === 'sisColor' || currentPane.name === 'commonPopup') {
+ const bFilterProName = currentPane.bFilterProName;
+ const bFilterProValue = currentPane.bFilterProValue;
+ this.props.onSaveState({
+ slaveData, formRoute, pageLoading: false, slaveSelectedRowKeys, selectedRowKeys: slaveSelectedRowKeys, sModelsType, bFilterProName, bFilterProValue,
+ });
+ } else if (currentPane.name === 'chooseProductProcess') { /* 选择成品工序 */
+ const { slaveFinalConfig, slaveFinalColumn, slaveFinalData } = this.props;
+ this.props.onSaveState({
+ slaveData,
+ formRoute,
+ pageLoading: false,
+ slaveSelectedRowKeys,
+ sModelsType,
+ slaveFinalConfig, /* 成品工序 对应的工单从表配置 */
+ slaveFinalColumn, /* 成品工序 对应的工单从表表头 */
+ slaveFinalData, /* 成品工序 对应的工单从表数据源 */
+ });
+ }
+ }
+
+ async componentWillReceiveProps(nextProps) {
+ const {
+ app, formData, currentId, searchSolution, masterData, sGroupByList, formRoute, sModelsType,
+ } = nextProps;
+ let { slaveConfig: slaveConfigOld } = nextProps;
+ // nextProps.onSaveState({ realizeHeight: nextProps.realizeHeight });
+ let { iPageSize } = nextProps;
+ // formRoute === '/indexOee'为oee报产页面;
+ if (nextProps.customConfig) {
+ let slaveColumn = commonFunc.getHeaderConfig({gdsconfigformslave: nextProps.customConfig});
+ if (JSON.stringify(slaveColumn) !== JSON.stringify(nextProps.slaveColumn)) {
+ this.props.onSaveState({slaveColumn});
+ }
+ }
+ if (commonUtils.isEmptyObject(slaveConfigOld) && formData.length > 0 && (formRoute.indexOf('/indexOee') > -1 || searchSolution !== undefined)) {
+ const sId = currentId !== undefined ? currentId : '';
+ /* 数据Id */
+ const slaveConfig = formData[0];
+ let addState = {};
+ if (sModelsType === 'cost/cotordercostanalysis') { /* 工单实际成本 */
+ const { sModelsId } = this.props;
+ const { gdsconfigformslave } = slaveConfig;
+ if (commonUtils.isNotEmptyArr(gdsconfigformslave)) {
+ const gdsconfigformslaveNew = gdsconfigformslave.filter(item => item.sName !== undefined && item.sName.indexOf('dExpense') < 0);
+ const iIndex = gdsconfigformslave.findIndex(item => item.sName !== undefined && item.sName.indexOf('dExpense'));
+ if (iIndex > -1) {
+ let iOrder = 0;
+ /* 取可见配置中最大iOrder */
+ const costVisibleConfig = gdsconfigformslave.filter(item => item.bVisible);
+ if (commonUtils.isNotEmptyArr(costVisibleConfig)) {
+ const len = costVisibleConfig.length;
+ iOrder = costVisibleConfig[len - 1].iOrder;
+ iOrder = commonUtils.isNotEmptyNumber(iOrder) ? iOrder : 0;
+ }
+ const { sId, sParentId } = slaveConfig;
+ const url = `${commonConfig.server_host}costCenter/getCostCenterConfigByOrder/${iOrder}?sModelsId=${sModelsId}`;
+ const body = { sId, sParentId };
+ 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) {
+ const costdExpenseConfigNew = rows[0].gdsconfigformslave;/* 获取新的费用配置 */
+ costdExpenseConfigNew.forEach((item) => {
+ /* 去后台配置中通过sName匹配配置 */
+ let itemNew;
+ const dtIndex = gdsconfigformslave.findIndex(child => child.sName === item.sName);
+ if (dtIndex > -1) {
+ itemNew = { ...gdsconfigformslave[dtIndex], showName: item.showName, bVisible: item.bVisible };
+ } else {
+ itemNew = item;
+ }
+ const iIndex = gdsconfigformslaveNew.findIndex(child => child.sId === item.sId);
+ if (iIndex === -1) {
+ gdsconfigformslaveNew.push(itemNew);
+ }
+ });
+ slaveConfig.gdsconfigformslave = gdsconfigformslaveNew;
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ return [];
+ }
+ }
+ }
+ }
+ let slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ /* 选择工序选中表-拷贝slave配置 */
+ const slaveFilterConfig = formData[0];
+ const slaveFilterColumn = commonFunc.getHeaderConfig(slaveFilterConfig);
+ let filterCondition = [];
+ if (commonUtils.isNotEmptyObject(masterData) && !commonUtils.isEmpty(masterData.sSearchSolutionId) && commonUtils.isNotEmptyArr(searchSolution)) {
+ const iIndex = searchSolution.findIndex(item => item.sId === masterData.sSearchSolutionId);
+ if (iIndex > -1 && !commonUtils.isEmpty(searchSolution[iIndex].sCondition)) {
+ filterCondition = JSON.parse(searchSolution[iIndex].sCondition);
+ }
+ }
+ let slaveInfoColumn = {};
+ let slaveInfoConfig;
+ let iOeePageSize = iPageSize;/* OEE没有分页组件 只需要根据后台设定页数分页 */
+ if (commonUtils.isNotEmptyNumber(formData[0].iPageSize) && formData[0].iPageSize !== 0) {
+ iOeePageSize = formData[0].iPageSize;
+ }
+ // oee页面从表
+ if (sModelsType === '/indexOee/processReportList') { // 机台任务
+ const bFilter = [];
+ bFilter.push({
+ bFilterName: 'sMachineId_s_pro',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ const pageNum = 1;
+ addState = (await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ // condition: { pageNum, pageSize: commonConfig.pageSize, bFilter },
+ condition: { bFilter, pageSize: iOeePageSize, pageNum },
+ isWait: true,
+ }));
+ if (commonUtils.isNotEmptyObject(addState)) {
+ addState.slaveSelectedRowKeys = commonUtils.isNotEmptyArr(this.props.slaveSelectedRowKeys) ? this.props.slaveSelectedRowKeys : [];
+ }
+ } if (sModelsType === '/indexOee/process') { // 所有任务
+ const bFilter = [];
+ bFilter.push({
+ bFilterName: 'sMachineId_s_pro',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ }, {
+ bFilterName: 'sProceeAllMachine_pro',
+ bFilterCondition: '=',
+ bFilterValue: 'process',
+ });
+ const pageNum = 1;
+ addState = (await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ // condition: { pageNum, pageSize: commonConfig.pageSize, bFilter },
+ condition: { bFilter, pageSize: iOeePageSize, pageNum },
+ isWait: true,
+ }));
+ if (commonUtils.isNotEmptyObject(addState)) {
+ addState.slaveSelectedRowKeys = commonUtils.isNotEmptyArr(this.props.slaveSelectedRowKeys) ? this.props.slaveSelectedRowKeys : [];
+ }
+ } else if (sModelsType === '/indexOee/oeeCurrentState') { // 历史记录
+ let masterData = [];
+ let masterDataIndex = -1;
+ const bFilter = [];
+ bFilter.push({
+ bFilterName: 'sMachineId',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ const pageNum = 1;
+ addState = (await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: { bFilter, pageSize: iOeePageSize, pageNum },
+ isWait: true,
+ }));
+ addState.slaveData.forEach((item, iIndex) => {
+ if (commonUtils.isNotEmptyObject(item.sReportParam)) {
+ item = { ...item, ...commonUtils.convertStrToObj(item.sReportParam) };
+ addState.slaveData[iIndex] = item;
+ }
+ });
+
+ // 获取正在开工的数据
+ // masterDataIndex = commonUtils.isNotEmptyObject(addState) ? addState.slaveData.findIndex(item => item.sStatus === commonFunc.showMessage(app.commonConst, 'startWorking') || item.sStatus === 'startWorking') : -1;
+ masterDataIndex = commonUtils.isNotEmptyObject(addState) ? 0 : -1; /* 当前设备永远获取第一条数据 */
+ if (commonUtils.isNotEmptyObject(addState)) {
+ if (commonUtils.isNotEmptyArr(this.props.slaveSelectedRowKeys) && commonUtils.isNotEmptyArr(addState.slaveData)) {
+ addState.slaveSelectedRowKeys = this.props.slaveSelectedRowKeys;
+ const currentKeyArrIndex = addState.slaveData.findIndex(item => item.sId === this.props.slaveSelectedRowKeys[0]);
+ if (currentKeyArrIndex > -1) {
+ addState.slaveSelectedData.push(addState.slaveData[currentKeyArrIndex]);
+ }
+ } else {
+ addState.slaveSelectedRowKeys = [];
+ }
+ }
+ if (masterDataIndex > -1) {
+ if (commonUtils.isNotEmptyObject(addState) && commonUtils.isNotEmptyArr(addState.slaveData)) {
+ masterData = commonFunc.getDefaultData(slaveConfig); // 取当前设备状态配置的默认值
+ masterData = { ...masterData, ...addState.slaveData[masterDataIndex] };
+ masterData.handleType = 'update';
+ masterData.sTeamId = app.sTeamNameSId;
+ masterData.sTeamName = app.sTeamNameSName;
+
+ if (commonUtils.isNotEmptyObject(masterData.sReportParam)) {
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 11; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1 && !commonUtils.isEmpty(masterData[`sParam${i.toString()}`])) {
+ slaveConfig.gdsconfigformslave[iIndex].showName = masterData[`sParam${i.toString()}`];
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = !masterData[`sParam${i.toString()}`].includes('参数值');
+ } else if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ } else {
+ // eslint-disable-next-line no-plusplus
+ for (let i = 1; i < 11; i++) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === `sParamValue${i.toString()}`);
+ if (iIndex > -1) {
+ slaveConfig.gdsconfigformslave[iIndex].bVisible = false;
+ }
+ }
+ }
+ }
+ if (commonUtils.isNotEmptyObject(masterData)) {
+ const employeeConfig = formData.filter(item => item.bGrd && item.sTbName === 'mftmachineworkemployee')[0];
+ const employeeColumn = commonFunc.getHeaderConfig(employeeConfig);
+ const bFilter = [];
+ bFilter.push({
+ bFilterName: 'sParentId',
+ bFilterCondition: '=',
+ bFilterValue: masterData.sTeamId,
+ });
+ const getData = await this.props.handleGetDataSet({
+ name: 'employee', configData: employeeConfig, condition: { bFilter }, isWait: true,
+ });
+ if (commonUtils.isNotEmptyObject(getData) && getData.employeeDelData === undefined) {
+ getData.employeeDelData = [];
+ }
+ // const employeeData = commonUtils.isNotEmptyObject(app.employeeAndProcessData) && commonUtils.isNotEmptyArr(app.employeeAndProcessData.employeeData) ? app.employeeAndProcessData.employeeData : [];
+ // 为oee历史记录员工数据进行数据缓存
+ if (commonUtils.isJSON(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`)) && JSON.parse(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`)).length > 0 && !this.props.employeeDataSetted) {
+ getData.employeeData = JSON.parse(localStorage.getItem(`${commonConfig.prefix}oeeEmployeeData_${app.sTeamNameSId}`));
+ }
+ addState = {
+ ...addState, masterData, employeeConfig, employeeColumn, ...getData,
+ };
+ }
+ }
+ } else if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('dynamicList')) { /* 改分支用于动态列处理 */
+ if (commonUtils.isNotEmptyNumber(formData[0].iPageSize) && formData[0].iPageSize !== 0) {
+ iPageSize = formData[0].iPageSize;
+ }
+ const bFilter = [];
+ if (!commonUtils.isEmptyArr(filterCondition)) {
+ bFilter.push(...filterCondition);
+ }
+ addState = await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum: 1, pageSize: iPageSize, bFilter,
+ },
+ flag: true,
+ isWait: true,
+ });
+ if (commonUtils.isNotEmptyObject(addState)) {
+ const { slaveData } = addState;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const gdsconfigformslave = slaveConfig.gdsconfigformslave;
+ const columnConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.showName !== '' && !(item.sControlName !== '' && item.sControlName.indexOf('Btn') > -1)) : [];
+ const slaveRow = slaveData[0];
+ if (commonUtils.isNotEmptyObject(slaveRow)) {
+ const iOrderArr = [];
+ for (const key of Object.keys(slaveRow)) {
+ let splitData = [];
+ splitData = commonUtils.isNotEmptyObject(key) ? key.split('_') : [];
+ /* 标题需要按照s_名称_序号 规则设定 */
+ if (splitData.length > 1) {
+ let title = splitData[1];/* 标题名称 */
+ /* 如果有### ,替换为 . */
+ if (commonUtils.isNotEmptyObject(title) && title.includes('###')) {
+ title = title.replace('###', '.');
+ }
+ const iOrder = splitData[2];/* 排序号 */
+ iOrderArr.push(iOrder);
+ /* 根据接口返回列的序号 匹配后台配置列下标 */
+ if (commonUtils.isNotEmptyObject(columnConfig[iOrder])) {
+ columnConfig[iOrder].showName = title;
+ columnConfig[iOrder].sChinese = title;
+ columnConfig[iOrder].sName = key;
+ const iIndex = gdsconfigformslave.findIndex(item => item.sId === columnConfig[iOrder].sId);
+ if (iIndex > -1) {
+ gdsconfigformslave[iIndex] = columnConfig[iOrder];
+ }
+ }
+ }
+ }
+
+ /* 把多余字段隐藏掉 找到最大下标 把其他多余显示行隐藏掉 */
+ if (commonUtils.isNotEmptyArr(iOrderArr)) {
+ const iOrderMax = Math.max(...iOrderArr);
+ if (commonUtils.isNotEmptyArr(columnConfig)) {
+ columnConfig.forEach((itemConfig, iIndex) => {
+ if (iIndex > iOrderMax) {
+ const iIndexConfig = gdsconfigformslave.findIndex(item => item.sId === itemConfig.sId);
+ if (iIndexConfig > -1) {
+ gdsconfigformslave[iIndexConfig].bVisible = false;
+ }
+ }
+ });
+ }
+ }
+
+ slaveConfig.gdsconfigformslave = gdsconfigformslave;
+ slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ }
+ }
+ }
+ } else if (sModelsType === 'commonGantte') { /* 获取甘特图列表数据集 */
+ /* 找到配置的存储过程名称 */
+ const ganntObj = {
+ sProcedureName: slaveConfig.sTbName,
+ };
+ this.handleGanttChar(ganntObj, filterCondition);
+ } else if (sModelsType !== '/indexOee/wagesSearch' && sModelsType !== '/indexOee/processReportList') { /* 该分支用于除OEE外的列表再次获取时执行 */
+ /* 首先以下拉页数为准 否则以后台页数为准 如果以上都没有设置 则依照config配置的页码设置 */
+ if (commonUtils.isNotEmptyNumber(formData[0].iPageSize) && formData[0].iPageSize !== 0) {
+ iPageSize = formData[0].iPageSize;
+ }
+ await this.handleGetData(slaveConfig, filterCondition, 1, commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize, '', false, sGroupByList);
+ slaveInfoConfig = formData[1];
+ slaveInfoColumn = {};
+ if (commonUtils.isNotEmptyObject(slaveInfoConfig)) {
+ slaveInfoColumn = commonFunc.getHeaderConfig(slaveInfoConfig);
+ await this.handleGetDataInfo(slaveInfoConfig, filterCondition, 1);
+ }
+ /* 判断是否要加载过滤树数据 */
+ const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree);
+ if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) {
+ const filterTreeConfig = filterTreeConfigArr[0];
+ // if (this.props.productProcess) {
+ // filterCondition.push({
+ // bFilterCondition: '=',
+ // bFilterName: 'sType',
+ // bFilterValue: '3',
+ // });
+ // }
+ await this.handleGetFilterTreeData(filterTreeConfig, filterCondition, 1);
+ }
+ const iIndexBtnFirst = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnFirst');
+ if (iIndexBtnFirst < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnFirst', sControlName: 'BtnFirst',
+ });
+ }
+ const iIndexBtnPrior = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnPrior');
+ if (iIndexBtnPrior < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnPrior', sControlName: 'BtnPrior',
+ });
+ }
+ const iIndexBtnNext = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnNext');
+ if (iIndexBtnNext < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnNext', sControlName: 'BtnNext',
+ });
+ }
+ const iIndexBtnLast = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnLast');
+ if (iIndexBtnLast < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnLast', sControlName: 'BtnLast',
+ });
+ }
+ const iIndexBtnSave = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnSave');
+ if (iIndexBtnSave < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnSave', sControlName: 'BtnSave',
+ });
+ }
+ const iIndexBtnCancel = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnCancel');
+ if (iIndexBtnCancel < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnCancel', sControlName: 'BtnCancel',
+ });
+ }
+ const iIndexBtnCopyFrom = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnCopyFrom');
+ if (iIndexBtnCopyFrom < 0) {
+ slaveConfig.gdsconfigformslave.push({
+ sId: commonUtils.createSid(), bVisible: false, sName: '', showName: 'BtnCopyFrom', sControlName: 'BtnCopyFrom',
+ });
+ }
+ }
+ this.props.onSaveState({
+ masterConfig: slaveConfig,
+ slaveConfig,
+ slaveColumn,
+ slaveInfoConfig,
+ slaveInfoColumn,
+ sId,
+ pageLoading: false,
+ slaveFilterColumn,
+ slaveFilterConfig,
+ ...addState,
+ });
+ } else if (JSON.stringify(app.currentPane.conditonValues) !== JSON.stringify(this.props.app.currentPane.conditonValues)) {
+ const { slaveConfig, slaveFilterCondition } = nextProps;
+ this.handleGetData(slaveConfig, slaveFilterCondition, 1, commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize, undefined, undefined, undefined, nextProps);
+ } else if (JSON.stringify(nextProps.id) !== JSON.stringify(this.props.id)) {
+ this.props.onSaveState({ slaveSelectedRowKeys: [] });
+ } else if (commonUtils.isEmptyObject(slaveConfigOld) && formData.length > 0 && formRoute === '/indexPage/unifiedPlanning') {
+ // const masterConfig = formData.filter(item => !item.bGrd && item.sTbName === 'elemachine')[0];
+ // const masterColumn = commonFunc.getHeaderConfig(masterConfig); masterColumn,
+ const importConfigTypes = [];
+ importConfigTypes.push({ ...commonFunc.getImitateGdsconfigTypes('计算时间', 'tCurrTime', 'tCurrTime', false, '', '', false), sDateFormat: 'YYYY-MM-DD' });
+ importConfigTypes.push(commonFunc.getImitateGdsconfigTypes('计算', 'BtnCalculation', '', false, '', '', true));
+
+ const currConfig = {};
+ currConfig.rowGdsconfig = [{ gdsconfigformslave: importConfigTypes }];
+
+ const masterData = {};
+ masterData.handleType = '';
+ masterData.sId = commonUtils.createSid();
+
+ const slaveConfig = formData.filter(item => item.bGrd && item.sTbName === 'elemachine')[0];
+ const slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ this.handleGetData(slaveConfig, undefined, undefined, undefined, undefined, undefined, undefined, nextProps);
+ this.props.onSaveState({
+ masterConfig: currConfig, masterData, slaveConfig, slaveColumn, enabled: true, pageLoading: false,
+ });
+ } else if (!commonUtils.isEmpty(this.props.pageNum) && this.props.pageNum !== nextProps.pageNum) {
+ const {
+ slaveConfig, slaveFilterCondition, sGroupByList, treeFilterCondition, slavePagination, slaveOrderBy,
+ } = this.props;
+ if (this.props.pageNum >= Math.ceil(slavePagination.total / slavePagination.pageSize)) {
+ this.props.onToFirst();
+ } else if (commonUtils.isNotEmptyArr(treeFilterCondition)) { /* 判断是否有树过滤条件 */
+ this.handleGetData(slaveConfig, slaveFilterCondition, nextProps.pageNum, slavePagination.pageSize, slaveOrderBy, '', sGroupByList, '', treeFilterCondition);
+ } else {
+ this.handleGetData(slaveConfig, slaveFilterCondition, nextProps.pageNum, slavePagination.pageSize, slaveOrderBy, '', sGroupByList);
+ }
+ }
+ if (sModelsType === 'search/workSchedule') {
+ if (!nextProps.pageLoading && !this.props.pageLoading) {
+ this.loadingCount = this.loadingCount + 1;
+ if (this.loadingCount === 2) {
+ this.loadingCount = 0;
+ this.props.onSaveState({
+ realizeHeight: this.props.realizeHeight,
+ });
+ }
+ }
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { slaveColumn } = nextProps;
+ return commonUtils.isNotEmptyArr(slaveColumn);
+ }
+
+ /** 获取表数据 */
+ handleGetData = async (slaveConfig, slaveFilterCondition, page, pageSize, slaveOrderBy, clearSelectData, sGroupByListNew, nextProps, treeFilterCondition) => {
+ const {
+ app,
+ name,
+ formRoute,
+ slavePagination,
+ selectedRowKeys,
+ fatherModelsType,
+ iPageSize,
+ } = commonUtils.isEmpty(nextProps) ? this.props : nextProps;
+ let { sModelsType } = app.currentPane; /* 特殊处理 选择工序不分页s */
+ const sGroupByList = sGroupByListNew !== undefined ? commonUtils.isEmptyArr(sGroupByListNew) ? null : sGroupByListNew : this.props.sGroupByList;
+ const conditonValues = app.currentPane.conditonValues;
+ const filterCondition = app.currentPane.filterCondition;
+ const bFilter = [];
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ if (formRoute === '/indexOee/processReportList' || formRoute === '/indexOee/process') {
+ bFilter.push({
+ bFilterName: 'sMachineId_s_pro',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ if (formRoute === '/indexOee/process') {
+ bFilter.push({
+ bFilterName: 'sProceeAllMachine_pro',
+ bFilterCondition: '=',
+ bFilterValue: 'process',
+ });
+ }
+ pageSize = 100;
+ } else if (formRoute === '/indexOee/wagesSearch') {
+ bFilter.push({
+ bFilterName: 'sMachineGuid_pro',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ pageSize = 20;
+ } else if (sModelsType === 'search/importFormData') {
+ /* 导入未清数据 根据客户ID 获取数据集 */
+ const { currentPane } = app;
+ const bFilterProName = currentPane.bFilterProName;
+ const bFilterProValue = currentPane.bFilterProValue;
+ if (commonUtils.isNotEmptyObject(bFilterProValue)) {
+ bFilter.push({
+ bFilterName: bFilterProName,
+ bFilterCondition: '=',
+ bFilterValue: bFilterProValue,
+ });
+ }
+ } else if (sModelsType === 'search/workSchedule') { /* 生产排程 工艺流程 查看生产进度详情 */
+ const { currentPane } = app;
+ const bFilterProName = currentPane.bFilterProName;
+ const bFilterProValue = currentPane.bFilterProValue;
+ if (commonUtils.isNotEmptyObject(bFilterProValue)) {
+ bFilter.push({
+ bFilterName: bFilterProName,
+ bFilterCondition: '=',
+ bFilterValue: bFilterProValue,
+ });
+ }
+ }
+ if (!commonUtils.isEmptyArr(slaveFilterCondition)) {
+ bFilter.push(...slaveFilterCondition);
+ }
+ if (!commonUtils.isEmptyArr(filterCondition)) {
+ bFilter.push(...filterCondition);
+ }
+ if (!commonUtils.isEmptyArr(treeFilterCondition)) {
+ bFilter.push(...treeFilterCondition);
+ }
+ pageSize = commonUtils.isEmpty(pageSize) ? commonUtils.isEmpty(slavePagination) || commonUtils.isEmpty(slavePagination.pageSize) ? iPageSize : slavePagination.pageSize : pageSize;
+ if (formRoute === '/indexOee/oeeCurrentState') {
+ bFilter.push({
+ bFilterName: 'sMachineId',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ sModelsType = this.props.sModelsType;
+ }
+ if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType === 'modal/searchProcess') { // 选择工序中的取数并获取工艺参数配置
+ const addState = await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum: 1, pageSize: 10000, bFilter, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues, sGroupList: sGroupByList,
+ },
+ flag: true,
+ isWait: true,
+ clearSelectData,
+ });
+ if (commonUtils.isNotEmptyObject(fatherModelsType)) {
+ addState.slaveData.forEach((item, iIndex) => {
+ if (commonUtils.isNotEmptyObject(fatherModelsType.includes('quotation/') ? item.sProcessParam : fatherModelsType.includes('manufacture/') ? item.sWorkOrderParam : item.sProcessParam)) {
+ item = { ...item, ...commonUtils.convertStrToObj(fatherModelsType.includes('quotation/') ? item.sProcessParam : fatherModelsType.includes('manufacture/') ? item.sWorkOrderParam : item.sProcessParam) };
+ addState.slaveData[iIndex] = item;
+ }
+ });
+ addState.slaveConfig = slaveConfig;
+ }
+ this.props.onSaveState({
+ ...addState,
+ });
+ } else if (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('dynamicList')) { /* 动态列回刷 */
+ const { formData } = commonUtils.isEmpty(nextProps) ? this.props : nextProps;
+ let { slaveColumn } = commonUtils.isEmpty(nextProps) ? this.props : nextProps;
+ const slaveConfigNew = commonUtils.isNotEmptyObject(formData[0]) ? formData[0] : slaveConfig;
+ const addState = await this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfigNew,
+ condition: {
+ pageNum: commonUtils.isNotEmptyObject(sModelsType) && sModelsType === 'modal/searchProcess' ? '' : pageNum, pageSize: commonUtils.isNotEmptyObject(sModelsType) && (sModelsType === 'modal/searchProcess' || sModelsType === '/productionPlan/unifiedPlanning' || sModelsType === 'modal/logView') ? '' : pageSize, bFilter, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues, sGroupList: sGroupByList,
+ },
+ flag: true,
+ isWait: true,
+ clearSelectData,
+ });
+ if (commonUtils.isNotEmptyObject(addState)) { /* 动态列 */
+ const { slaveData } = addState;
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const gdsconfigformslave = slaveConfigNew.gdsconfigformslave;
+ const columnConfig = commonUtils.isNotEmptyObject(slaveConfigNew) ? slaveConfigNew.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.showName !== '' && !(item.sControlName !== '' && item.sControlName.indexOf('Btn') > -1)) : [];
+ const columnConfigOld = commonUtils.isNotEmptyObject(slaveConfigNew) ? slaveConfigNew.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.showName !== '' && !(item.sControlName !== '' && item.sControlName.indexOf('Btn') > -1)) : [];
+ const slaveRow = slaveData[0];
+ if (commonUtils.isNotEmptyObject(slaveRow)) {
+ const iOrderArr = [];
+ for (const key of Object.keys(slaveRow)) {
+ let splitData = [];
+ splitData = commonUtils.isNotEmptyObject(key) ? key.split('_') : [];
+ /* 标题需要按照s_名称_序号 规则设定 */
+ if (splitData.length > 1) {
+ let title = splitData[1];/* 标题名称 */
+ /* 如果有### ,替换为 . */
+ if (commonUtils.isNotEmptyObject(title) && title.includes('###')) {
+ title = title.replace('###', '.');
+ }
+ const iOrder = splitData[2];/* 排序号 */
+ iOrderArr.push(iOrder);
+ /* 根据接口返回列的序号 匹配后台配置列下标 */
+ if (commonUtils.isNotEmptyObject(columnConfig[iOrder])) {
+ columnConfig[iOrder].showName = title;
+ columnConfig[iOrder].sChinese = title;
+ columnConfig[iOrder].sName = key;
+ const iIndex = gdsconfigformslave.findIndex(item => item.sId === columnConfig[iOrder].sId);
+ if (iIndex > -1) {
+ gdsconfigformslave[iIndex] = columnConfig[iOrder];
+ }
+ }
+ }
+ }
+ /* 把多余字段隐藏掉 找到最大下标 把其他多余显示行隐藏掉 */
+ if (commonUtils.isNotEmptyArr(iOrderArr)) {
+ const iOrderMax = Math.max(...iOrderArr);
+ if (commonUtils.isNotEmptyArr(columnConfigOld)) {
+ columnConfigOld.forEach((itemConfig, iIndex) => {
+ if (iIndex > iOrderMax) {
+ const iIndexConfig = gdsconfigformslave.findIndex(item => item.sId === itemConfig.sId);
+ if (iIndexConfig > -1) {
+ gdsconfigformslave[iIndexConfig].bVisible = false;
+ }
+ }
+ });
+ }
+ }
+ slaveConfigNew.gdsconfigformslave = gdsconfigformslave;
+ slaveColumn = commonFunc.getHeaderConfig(slaveConfigNew);
+ }
+ }
+ this.props.onSaveState({ ...addState, slaveConfig: slaveConfigNew, slaveColumn });
+ }
+ } else {
+ this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum: commonUtils.isNotEmptyObject(sModelsType) && sModelsType === 'modal/searchProcess' ? '' : pageNum, pageSize: commonUtils.isNotEmptyObject(sModelsType) && (sModelsType === 'modal/searchProcess' || sModelsType === '/productionPlan/unifiedPlanning' || sModelsType === 'modal/logView') ? '' : pageSize, bFilter, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues, sGroupList: sGroupByList,
+ },
+ flag: true,
+ clearSelectData,
+ });
+ }
+ if (formRoute === '/indexPage/materialRequirementsPlanning' && clearSelectData) {
+ const { slaveFilterCondition, slaveInfoConfig } = this.props;
+ if (commonUtils.isNotEmptyObject(slaveInfoConfig)) {
+ this.handleGetDataInfo(slaveInfoConfig, slaveFilterCondition, 1);
+ }
+ }
+ // 复制到过后,没有选中的情况下打印菜单置空
+ if (commonUtils.isNotEmptyObject(name) && name.indexOf('BtnCopyTo') > -1 && commonUtils.isEmptyArr(selectedRowKeys)) {
+ this.props.onSaveState({ menuChildData: [] });
+ }
+ };
+
+ /** 获取过滤树数据数据 */
+ handleGetFilterTreeData= (slaveConfig, slaveFilterCondition, page, slaveOrderBy, props) => {
+ const { app } = props === undefined ? this.props : props;
+ const conditonValues = app.currentPane.conditonValues;
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ this.props.handleGetTreeDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum, pageSize: commonConfig.pageSize, bFilter: slaveFilterCondition, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ };
+
+ /** 获取表详情数据 */
+ handleGetDataInfo = (slaveInfoConfig, slaveFilterCondition, page, slaveOrderBy, props) => {
+ const { app } = props === undefined ? this.props : props;
+ const conditonValues = app.currentPane.conditonValues;
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ this.props.handleGetDataSet({
+ name: 'slaveInfo',
+ configData: slaveInfoConfig,
+ condition: {
+ pageNum, pageSize: commonConfig.pageSize, bFilter: slaveFilterCondition, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ };
+ /* 获取commonGantte列表数据集 */
+ handleGanttChar = async (ganttChart, slaveFilterCondition) => {
+ const {
+ token, sModelsId, formRoute,
+ } = this.props;
+ const char = {};
+ if (commonUtils.isNotEmptyObject(ganttChart)) {
+ char.sProcedureName = ganttChart.sProcedureName;
+ char.paramsMap = {};
+ }
+ let charGanttData = {};
+ const value = {
+ sProName: char.sProcedureName,
+ paramsMap: char.prodParamsMap,
+ bFilter: slaveFilterCondition,
+ };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const { data: returnData } = await commonServices.postValueService(token, value, url);
+ if (returnData.code === 1) {
+ const { dataset } = returnData;
+ if (commonUtils.isNotEmptyObject(dataset)) {
+ const outData = returnData.dataset.rows[0].dataSet.outData[0];
+ if (outData.sCode === -1) {
+ message.error(outData.sReturn);
+ } else {
+ charGanttData = commonUtils.isEmpty(outData.sReturn) ? [] : JSON.parse(outData.sReturn);
+ this.props.onSaveState({ charGanttData });
+ }
+ }
+ } else {
+ message.error(returnData.msg);
+ }
+ };
+
+
+ handleTitleChange = (slavePagination, filters, sorter) => {
+ const {
+ slaveConfig, slaveFilterCondition, sGroupByList, // slaveOrderBy: slaveOrderByOld,
+ } = 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.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, '', sGroupByList);
+ }
+ };
+
+ handleDoubleClick = async (record) => {
+ const {
+ slaveConfig,
+ slaveData,
+ dispatch,
+ slaveFilterCondition,
+ slavePagination,
+ slaveOrderBy,
+ sModelsType,
+ formRoute,
+ treeFilterCondition,
+ app,
+ iPageSize,
+ // slaveSelectedData,
+ // masterData,
+ // employeeConfig,
+ } = this.props;
+ // oee双击查看开工任务
+ // if (formRoute.indexOf('indexOee') > -1) {
+ // if (slaveSelectedData[0].sCompleteCheck !== 'bCompleteCheck' && commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ // this.props.changePage(false, 'startWork', '2', false);
+ // this.props.onSaveState({
+ // masterData: slaveSelectedData[0],
+ // });
+ // if (commonUtils.isNotEmptyObject(record)) {
+ // const bFilter1 = [];
+ // bFilter1.push({
+ // bFilterName: 'sParentId',
+ // bFilterCondition: '=',
+ // bFilterValue: record.sId,
+ // });
+ // const employeeData = (await this.props.handleGetDataSet({
+ // name: 'employee',
+ // configData: employeeConfig,
+ // condition: { bFilter: bFilter1 },
+ // isWait: true,
+ // }));
+ // this.props.onSaveState({
+ // ...employeeData,
+ // });
+ // }
+ // }
+ // } else {}
+ const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ const getData = this.handleGetData;
+ if (picArr.length > 0) {
+ let sActiveId = '';
+ if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr' && sModelsType !== 'commonList/msg') {
+ [{ sActiveId }] = picArr;
+ if (sActiveId === '1') {
+ sActiveId = sActiveId === '1' ? commonUtils.isEmpty(record.sFormId) ? record.sSrcFormId : record.sFormId : sActiveId;
+ }
+ } else if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr' && sModelsType === 'commonList/msg' && (record.sType === '消息' || record.sType === '1')) {
+ [{ sActiveId }] = picArr;
+ } else if (sModelsType === 'commonList/msg' && (record.sType !== '消息' || record.sType !== '1')) {
+ sActiveId = '19211681019715633459786050';
+ }
+ /* 消息列表双击打开时 调用获取websocket消息 */
+ if (sModelsType === 'commonList/msg') {
+ const { webSocket, userinfo } = app;
+ const timValue = 2000;
+ if (this.props.app.webSocket === null || this.props.app.webSocket.readyState !== WebSocket.OPEN) {
+ this.props.dispatch({ type: 'app/createWebSocket', payload: { reStart: true, dispatch } });
+ }
+ setTimeout(() => {
+ webSocket.onmessage = async (msg) => {
+ const rtmsg = JSON.parse(msg.data);
+ if (rtmsg.action === 'showImg') {
+ const msgData = JSON.parse(msg.data);
+ dispatch({ type: 'app/saveMsgCount', payload: { msgCount: msgData.msg } });
+ } else if (this.props.app.webSocket.homeAction) {
+ this.props.app.webSocket.homeAction(msg);
+ }
+ };
+ this.props.handleSendSocketMessage('reflush', 'showImg', record.sId, userinfo.sId, '您有消息待审核', null);
+ }, timValue);
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ }
+ const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, undefined, undefined, undefined, treeFilterCondition), /* 刷新方法 */
+ url: sNameUrl,
+ sTabId: commonUtils.createSid(),
+ sParentId: this.state.sTabId,
+ urlDataType: 'newPane',
+ checkedId: record.sId,
+ bFilter: slaveFilterCondition,
+ pageSize: commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize,
+ pages: slavePagination,
+ currentData: slaveData,
+ sListFormmasterId: slaveConfig.sId,
+ newKey: record.sId,
+ currentIndex: slaveData.findIndex(item => item.sId === record.sId),
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ };
+
+ /** 表单回带 */
+ handleForm = (form) => {
+ this.form = form;
+ };
+
+ /** 点击新增按钮 */
+ handleAdd = (extendsParams) => {
+ const {
+ slaveConfig, slaveData, dispatch, slaveFilterCondition, slavePagination, slaveOrderBy, formRoute, treeFilterCondition, iPageSize,
+ } = this.props;
+ const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ const getData = this.handleGetData;
+ if (picArr.length > 0) {
+ let sActiveId = '';
+ if (picArr[0].sName === 'picArr' && picArr[0].sDropDownType === 'picArr') {
+ [{ sActiveId }] = picArr;
+ }
+ const sNameUrl = `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`;
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, commonUtils.isEmpty(slavePagination) ? iPageSize : slavePagination.pageSize, slaveOrderBy, undefined, undefined, undefined, treeFilterCondition), /* 刷新方法 */
+ url: sNameUrl,
+ sTabId: commonUtils.createSid(),
+ sParentId: this.state.sTabId,
+ urlDataType: 'newPane',
+ bFilter: slaveFilterCondition,
+ pageSize: iPageSize,
+ pages: slavePagination,
+ currentData: slaveData,
+ sListFormmasterId: slaveConfig.sId,
+ ...extendsParams,
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ };
+
+ /* 确定要删除 */
+ handleOkDel = async (props) => {
+ /* 数据参数 */
+ const {
+ token, sModelsId, slaveConfig, slaveData, slaveSelectedRowKeys, slaveFilterCondition, slavePagination, slaveOrderBy, formRoute, app, iPageSize,
+ } = props;
+ const allId = [];
+ slaveSelectedRowKeys.forEach((key) => {
+ const iIndex = slaveData.findIndex(item => item.sSlaveId === key);
+ if (iIndex > -1) {
+ if (allId.indexOf(slaveData[iIndex].sId) === -1) {
+ allId.push(slaveData[iIndex].sId);
+ }
+ }
+ });
+ if (commonUtils.isNotEmptyArr(allId)) {
+ const value = {
+ sClientType: '1',
+ data: {
+ sMasterTable: slaveConfig.sTbName,
+ sId: allId,
+ sSlaveTable: 'commonList',
+ },
+ };
+ const { sBillNo, sId } = props.masterData || {};
+ const url = `${commonConfig.server_host}business/delMasSlaBusinessData?sModelsId=${sModelsId}&sName=${formRoute}&sBillNo=${sBillNo}&sSysLogSrcId=${sId}`;
+ /* 接收返回值 */
+ const { data } = await commonServices.postValueService(token, value, url);
+ if (data.code === 1) {
+ /* 数据删除成功 */
+ const oeeCurrentStateFilter = [];
+ if (formRoute === '/indexOee/oeeCurrentState') {
+ oeeCurrentStateFilter.push({
+ bFilterName: 'sMachineId',
+ bFilterCondition: '=',
+ bFilterValue: app.sMachineNameSId,
+ });
+ }
+ message.success(data.msg);
+ this.props.handleGetDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum: formRoute === '/indexOee/oeeCurrentState' ? '' : slavePagination.current,
+ pageSize: formRoute === '/indexOee/oeeCurrentState' ? '' : commonUtils.isNotEmptyNumber(iPageSize) && iPageSize !== 0 ? iPageSize : commonConfig.pageSize,
+ bFilter: formRoute === '/indexOee/oeeCurrentState' ? oeeCurrentStateFilter : slaveFilterCondition,
+ slaveOrderBy: formRoute === '/indexOee/oeeCurrentState' ? '' : slaveOrderBy,
+ },
+ clearSelectData: true,
+ });
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ }
+ }
+ };
+
+ handleDel = () => {
+ const onOkDel = this.handleOkDel;
+ const props = this.props;
+ confirm({
+ title: commonFunc.showMessage(props.app.commonConst, 'SureDel'),
+ onOk() {
+ onOkDel(props);
+ },
+ onCancel() {},
+ });
+ };
+ // 销售订单明细获取订单号
+ handleGetGoods = () => {
+ this.props.onSaveState({ visibleGetGoods: true });
+ };
+
+ handleGetGoodsValue = async (value) => {
+ const { sModelsId, token, formRoute } = this.props;
+ const url = `${commonConfig.server_host}erpOrderProcurement/getPlatOrderOne?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const values = { orderHeaderId: value };
+
+ const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (masterReturn.code === 1) {
+ message.success(masterReturn.msg);
+ this.handleButtonClick('BtnRefresh');
+ } else {
+ this.props.getServiceError(masterReturn);
+ }
+
+ this.props.onSaveState({
+ visibleGetGoods: false,
+ });
+ }
+ handleGetGoodsCancle = () => {
+ this.props.onSaveState({
+ visibleGetGoods: false,
+ });
+ }
+
+ /* 导出Excel */
+ handleOut = async () => {
+ const {
+ slaveConfig, slaveFilterCondition, slaveOrderBy, formRoute, slaveSelectedRowKeys, sGroupByList, formData, app,
+ } = this.props;
+ const { currentPane } = app;
+ const slaveFilterConditionNew = slaveFilterCondition === undefined ? [] : [...slaveFilterCondition];
+ let sids = '';
+ let bMutiSelect = false; /* 默认单选或不选 true :多选 */
+ if (commonUtils.isNotEmptyArr(formData)) {
+ bMutiSelect = formData[0].bMutiSelect;
+ }
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys) && bMutiSelect) { /* 导出Excel 只有多选情况下 导出时是根据勾选行 否则导出全部 */
+ slaveSelectedRowKeys.forEach((item, i) => {
+ if (i === slaveSelectedRowKeys.length - 1) {
+ sids = `${sids}${item}`;
+ } else {
+ sids = `${sids}${item},`;
+ }
+ });
+ const addFilter = {};
+ addFilter.bFilterName = 'sSlaveId';
+ addFilter.bFilterCondition = 'in';
+ addFilter.bFilterValue = sids;
+ slaveFilterConditionNew.push(addFilter);
+ }
+ /* 如果列表是别的界面弹窗进来,则需要加当前界面的条件 */
+ let conditionValues ={};
+ if(commonUtils.isNotEmptyObject(currentPane) && !commonUtils.isEmpty(currentPane.conditonValues)) {
+ conditionValues = currentPane.conditonValues;
+ }
+ // let url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${slaveConfig.sParentId}&token=${this.props.app.token}&sName=${formRoute}`;
+ // if (commonUtils.isNotEmptyArr(slaveFilterConditionNew)) {
+ // url = `${url}&bFilter=${encodeURIComponent(JSON.stringify(slaveFilterConditionNew))}`;
+ // }
+ // if (slaveOrderBy !== undefined && slaveOrderBy !== '' && Object.keys(slaveOrderBy).length > 0) {
+ // url = `${url}&sFilterOrderBy=${encodeURIComponent(JSON.stringify(slaveOrderBy))}`;
+ // }
+ // if (commonUtils.isNotEmptyArr(sGroupByList)) {
+ // url = `${url}&sGroupList=${encodeURIComponent(JSON.stringify(sGroupByList))}`;
+ // }
+ // window.open(url);
+
+ /* 导出使用Post提交 */
+ const url = `${commonConfig.server_host}excel/export/${slaveConfig.sId}?sModelsId=${slaveConfig.sParentId}&sName=${formRoute}&token=${encodeURIComponent(this.props.app.token)}`;
+ const bFilter = JSON.stringify(slaveFilterConditionNew);
+ const sFilterOrderBy = JSON.stringify(slaveOrderBy);
+ const sGroupList = JSON.stringify(sGroupByList);
+ const conditionValuesStr = JSON.stringify(conditionValues);
+ this.handleOpenOut(url, bFilter, sFilterOrderBy, sGroupList, conditionValuesStr);
+ };
+
+ /* Get提交地址栏参数过多,更改Get提交为Post提交 */
+ handleOpenOut= (url, bFilter, slaveOrderBy, sGroupByList, conditionValues) => {
+ const newWin = window.open();
+ let formStr = '';
+ // 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据
+ formStr = `';
+ newWin.document.body.innerHTML = formStr;
+ newWin.document.forms[0].submit();
+ return newWin;
+ }
+
+ /* 批量审核 */
+ handleBatchExamine = () => {
+ this.handleAudit(1);
+ };
+
+ /* 批量消审 */
+ handleBatchCancelExamine = () => {
+ this.handleAudit(0);
+ };
+
+ deteleObject = (obj) => {
+ // eslint-disable-next-line camelcase
+ const replace_data = obj;
+ const result = []; // 去重后的数组对象集合
+ const hash = {};
+ // eslint-disable-next-line no-plusplus
+ for (let i = 0; i < replace_data.length; i++) {
+ const elem = replace_data[i].sId;
+ if (!hash[elem]) {
+ result.push(replace_data[i]);
+ hash[elem] = true;
+ }
+ }
+ return result;
+ }
+ /** toolbar批量审核(消审) */
+ handleAudit = async (flag) => {
+ /* 待用数据声明 */
+ const {
+ slaveSelectedData, app, slaveConfig, slavePagination, slaveFilterCondition, slaveOrderBy,
+ } = this.props;
+ /* 作废订单不能审核 */
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const slaveSelectedDataNew = this.deteleObject(slaveSelectedData); // 删除sid重复的数据
+ let allMsg = '';
+ let allErrorMsg = '';
+ let dataAuditProcessValue = 0;
+ const dataAuditProcessMaxValue = slaveSelectedDataNew.length;
+ for (const child of slaveSelectedDataNew) {
+ if (child.bInvalid) {
+ message.warning(`已作废的单据${child.sBillNo}不能审核!`);
+ return '';
+ }
+ /** 数据审核 */
+ const strMsgs = await this.dataAudit(flag, `${child.sId}_${child.sFormId}`, child.sBillNo);
+ if (commonUtils.isNotEmptyStr(strMsgs.strMsg)) {
+ allMsg += `${strMsgs.strMsg} \n `;
+ } else {
+ allMsg += '';
+ }
+ if (commonUtils.isNotEmptyStr(strMsgs.strErrorMsg)) {
+ allErrorMsg += `${strMsgs.strErrorMsg} \n `;
+ } else {
+ allErrorMsg += '';
+ }
+ dataAuditProcessValue += 1;
+ this.props.onSaveState({ bDataAuditProgress: true, dataAuditProcessValue, dataAuditProcessMaxValue });
+ }
+ if (commonUtils.isNotEmptyStr(allMsg)) {
+ message.info(allMsg);
+ }
+ if (allErrorMsg !== undefined && commonUtils.isNotEmptyStr(allErrorMsg)) {
+ message.error(allErrorMsg);
+ }
+ this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ this.props.onSaveState({ bDataAuditProgress: false });
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseData'));/* 请选择一条数据 */
+ }
+ };
+
+ /** 数据审核 */
+ dataAudit = async (flag, sId_sFormId, sBillNo, tmpCheck, isWait) => {
+ const [sId, sFormId] = sId_sFormId.split('_');
+ /* 待用数据声明 */
+ const {
+ sModelsId, app, slaveConfig, formRoute,
+ } = this.props;
+ /* 数据参数 */
+ const picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === 'picArr'));
+ const value = {
+ sClientType: '1',
+ paramsMap: {
+ iFlag: flag,
+ iTmpCheck: commonUtils.isEmptyNumber(tmpCheck) ? 0 : tmpCheck,
+ sFormGuid: commonUtils.isEmptyArr(picArr) ? sFormId : picArr[0].sActiveId,
+ sGuid: sId,
+ },
+ };
+ /* 数据审核 */
+ const url = `${commonConfig.server_host}business/doExamine?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ const msgs = {};
+ if (isWait) {
+ return returnData;
+ } else {
+ /* 接收返回值 */
+ if (returnData.code === 1) { /* 成功 */
+ if (flag === 1) {
+ /* 审核 */
+ const { outData } = returnData.dataset.rows[0].dataSet;
+ if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${outData[0].sReturn}` : `${outData[0].sReturn}`;
+ // if (outData[0].sReturn.split('-').length < 2) {
+ // // 正常业务提示,非审核模板
+ // if (this.props.app.currentPane.refresh !== undefined) {
+ // this.props.app.currentPane.refresh();
+ // }
+ // msgs.strMsg = `${sBillNo}审核${outData[0].sReturn}`;
+ // return msgs;
+ // }
+ // const sReturnArray = outData[0].sReturn.split('|');
+ // const sCheckModelId = sReturnArray[0].split('-')[1];
+ // if (commonUtils.isNotEmptyStr(sCheckModelId)) {
+ // msgs.strMsg = `${sBillNo}审核失败`;
+ // }
+ } else {
+ // this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ // message.destroy();
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${returnData.msg}` : `${returnData.msg}`;
+ }
+ } else {
+ /* 消审 */
+ const { outData } = returnData.dataset.rows[0].dataSet;
+ if (commonUtils.isNotEmptyStr(outData[0].sReturn)) {
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${outData[0].sReturn}` : `$${outData[0].sReturn}`;
+ } else {
+ // this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ msgs.strMsg = commonUtils.isNotEmptyObject(sBillNo) ? `${sBillNo}${returnData.msg}` : `${returnData.msg}`;
+ }
+ }
+ } else { /* 失败 */
+ msgs.strErrorMsg = returnData.msg;
+ // this.props.getServiceError(returnData);
+ }
+ return msgs;
+ }
+ };
+
+ /** 按钮操作事件 */
+ handleButtonClick = (name, isFresh) => {
+ if (name === 'BtnOut') {
+ this.handleOut();
+ } else if (name === 'BtnDesignFunction') {
+ this.handleDesignFunction();
+ } else if (name === 'BtnRefresh') {
+ const {
+ slaveConfig, slavePagination, slaveFilterCondition, slaveOrderBy,
+ } = this.props;
+ this.props.onSaveState({
+ clearArray: [], searchText: '', slaveSelectedRowKeys: [], slaveSelectedData: [], slaveInfoSelectedRowKeys: [], slaveInfoSelectedData: [], treeSelectedKeys: [], treeFilterCondition: [], loading: false, pageLoading: true, isFresh,
+ });
+ if (slavePagination === undefined) return;
+ this.handleGetData(slaveConfig, slaveFilterCondition, slavePagination.current, slavePagination.pageSize, slaveOrderBy, true); /* 刷新方法 */
+ // if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ // if (commonUtils.isNotEmptyObject(slaveInfoConfig)) {
+ // this.handleGetDataInfo(slaveInfoConfig, slaveFilterCondition, 1);
+ // }
+ // }
+ /* 判断是否要加载过滤树数据 */
+ const filterTreeConfigArr = slaveConfig.gdsconfigformslave.filter(item => item.bTree);
+ if (commonUtils.isNotEmptyArr(filterTreeConfigArr)) {
+ const filterTreeConfig = filterTreeConfigArr[0];
+ this.handleGetFilterTreeData(filterTreeConfig, slaveFilterCondition, 1);
+ }
+ const { clearArray } = this.props;
+ if (!commonUtils.isEmpty(clearArray)) {
+ for (const item of clearArray) {
+ const { confirm, clearFilters } = item;
+ confirm();
+ clearFilters();
+ }
+ }
+ } else if (name === 'BtnSelect') {
+ const { slaveSelectedData, app } = this.props;
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ this.props.app.currentPane.select(this.props.app.currentPane.name, this.props.app.currentPane.config, slaveSelectedData);
+ } else {
+ message.error(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); /* 请选择一条数据 */
+ }
+ } else if (name === 'BtnSelectCancel') {
+ this.props.app.currentPane.selectCancel(this.props.app.currentPane.name);
+ } else if (name === 'BtnBatchExamine') {
+ this.handleBatchExamine();
+ } else if (name === 'BtnBatchCancelExamine') {
+ this.handleBatchCancelExamine();
+ } else if (name === 'BtnNoForceComplete') {
+ this.handleNoForceComplete();
+ } else if (name === 'BtnSettleAccounts') {
+ this.handleToSettlement(1);
+ } else if (name === 'BtnReverseCheckout') {
+ this.handleToSettlement(2);
+ } else if (name === 'BtnBatchWorkListPriceUpdate') { /* 工单列表价格批量更新 */
+ this.handleBatchWorkListsPriceUpdate();
+ }
+ };
+ /* OEE机台任务 点击开工执行的逻辑 */
+ handleOeeCopyTo = async (name) => {
+ const {
+ token, app, sModelsId, slaveSelectedData, slaveConfig, slaveDelData,
+ } = this.props;
+ const newCopyTo = {};
+ const slaveData = [];
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ // 验证是否单据是否使用
+ const sMachineId = app.sMachineNameSId;
+ const creatId = commonUtils.createSid();
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheckWork?sModelsId=${sModelsId}`;
+ const values = { sMachineId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const copyToConfig = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.sControlName === name) : '';
+ const slaveAssignField = commonUtils.isNotEmptyObject(copyToConfig) ? copyToConfig[0].sAssignField : '';
+ slaveSelectedData.forEach((slaveItem) => {
+ newCopyTo.slave = slaveItem;
+ let colorRow = commonFunc.getDefaultData(slaveConfig, newCopyTo); // 取默认值
+ colorRow = { ...colorRow, ...commonFunc.getAssignFieldValue(slaveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ colorRow.handleType = 'add';
+ colorRow.sStatus = 'adjustment'; /* 点击开工进来是调机中,原来是生产中 */
+ colorRow.sId = creatId;
+ colorRow.sTeamId = app.sTeamNameSId;
+ colorRow.sMachineId = app.sMachineNameSId;
+ colorRow.sParentId = colorRow.sId;
+ colorRow.tCreateDate = new Date();
+ slaveData.push(colorRow);
+ });
+ const params = {};
+ params.data = [];
+ params.data.push(commonBusiness.mergeData('slave', 'plc_machinedata', slaveData, slaveDelData));
+ // params.data = slaveData;
+ const BtnSave = commonFunc.showMessage(app.commonConst, 'BtnSave');/* 保存 */
+ params.optName = BtnSave;
+ params.sClientType = '1';
+ const returnData = await commonBusiness.saveData({ token, value: params, sModelsId });
+ if (commonUtils.isNotEmptyObject(returnData)) {
+ if (returnData.code === 1) {
+ // const copyTo = {};
+ // copyTo.name = name;
+ // copyTo.config = commonUtils.isNotEmptyArr(copyToConfig) ? copyToConfig[0] : {};
+ // copyTo.slaveData = slaveData;
+ // copyTo.copyOtherData = [];
+ // dispatch({
+ // type: 'content/onRouter',
+ // payload: {
+ // url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
+ // copyTo,
+ // },
+ // });
+ // 改变indexOee中的activeKey,
+ this.props.onSaveCurrentState(slaveData, true, undefined, undefined, 1);
+ }
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ }
+ handleOeeLabelCopyTo = async (name, sActiveId) => {
+ const {
+ slaveSelectedData, dispatch,
+ } = this.props;
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const formRouteNew = '/indexOee/labelPrint';
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRouteNew}`, /* 接口地址 */
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ }
+
+ /* 单据页复制到 */
+ handleCopyTo = async (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ slaveConfig, slaveSelectedData, token, app, sModelsId, formRoute, slaveInfoConfig, slaveInfoSelectedData, slaveFilterCondition,
+ slavePagination, slaveOrderBy, treeFilterCondition, dispatch,
+ } = this.props;
+
+ // 从表有sCopyToCondition则不能复制,并提示
+ if (commonUtils.isNotEmptyArr(slaveSelectedData) && name.includes('.')) {
+ const sCopyToConditionIndex = slaveSelectedData.findIndex(item => item.sCopyToCondition);
+ if (sCopyToConditionIndex !== -1) {
+ message.warning(slaveSelectedData[sCopyToConditionIndex].sCopyToCondition);
+ return;
+ }
+ }
+
+ let isRefresh = true;
+
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const copyToConfig = slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ let copyToData = slaveSelectedData;
+ const addcopyOther = [];
+ let tbSuffix = '';
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ if (name === 'BtnCopyTo.ActPurchaseOrder') {
+ const detailCopy = {};
+ detailCopy.name = 'detail';
+ detailCopy.config = slaveInfoConfig;
+ detailCopy.data = slaveInfoSelectedData;
+ addcopyOther.push(detailCopy);
+ tbSuffix = 'detail';
+ isRefresh = true;
+ } else {
+ copyToData = slaveInfoSelectedData;
+ isRefresh = true;
+ }
+ /* 物料需求计划生成采购申请、采购订单去重处理 */
+ if (commonUtils.isNotEmptyArr(copyToData)) {
+ const copyToDataNew = [];
+ copyToData.forEach((item) => {
+ const iIndex = copyToDataNew.findIndex(child => child.sWorkOrderMaterialId === item.sWorkOrderMaterialId);
+ if (iIndex < 0) {
+ copyToDataNew.push(item);
+ }
+ });
+ copyToData = copyToDataNew;
+ }
+ } else if (name === 'BtnCopyTo.ActProduceReport') { /* 若机台中点击暂停 则待产量上报中点击上报提示”工序已暂停,无法上报 */
+ if (commonUtils.isNotEmptyArr(copyToData) && copyToData[0].sState === '3') {
+ message.warn('工序已暂停,无法开工!');
+ return;
+ }
+ }
+ // 不重复字段处理 例如 复制到时只能同一客户复制到
+ const iIndex = copyToConfig.findIndex(item => item.sControlName === name);
+ if (iIndex > -1 && !commonUtils.isEmpty(copyToConfig[iIndex].sNotRepeatColumn)) {
+ const sNotRepeatColumn = copyToConfig[iIndex].sNotRepeatColumn.trim();
+ const sNotRepeatValue = copyToData[0][sNotRepeatColumn];
+ const iCount = copyToData.filter(item => item[sNotRepeatColumn] === sNotRepeatValue).length;
+ if (iCount !== copyToData.length) {
+ const iConfigIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === sNotRepeatColumn);
+ const sNotRepeatShowName = iConfigIndex > -1 ? slaveConfig.gdsconfigformslave[iConfigIndex].showName : '';
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseSame') + sNotRepeatShowName); // 请选择相同
+ return;
+ }
+ }
+ const { userinfo } = app;
+ const sIdArray = [];
+ copyToData.forEach((item) => {
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ sIdArray.push(item.sWorkOrderMaterialId); /* 物料需求计划生成用sWorkOrderMaterialId作为唯一键 */
+ } else {
+ sIdArray.push(item.sSlaveId);
+ }
+ });
+ 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;
+ }
+ setTimeout(async () => {
+ this.props.app.webSocket.onmessage = (msg) => {
+ const rtmsg = JSON.parse(msg.data);
+ if (rtmsg.action === 'execute') {
+ if (rtmsg.msg === 'continue') {
+ const { formRoute } = this.state;
+ if (commonUtils.isNotEmptyArr(copyToData)) {
+ const copyTo = {};
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = copyToData[0];
+ copyTo.slaveData = copyToData;
+ copyTo.copyOtherData = addcopyOther;
+ copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
+ copyTo,
+ refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition),
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ }
+ } else {
+ message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */
+ }
+ } 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 (this.props.app.webSocket.homeAction) {
+ this.props.app.webSocket.homeAction(msg);
+ }
+ };
+ const sId = sIdArray.toString();
+ const getData = this.handleGetData;
+ 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) {
+ const sendSocketMessage = this.props.handleSendSocketMessage;
+ if (dataReturn.dataset.rows.length > 0) {
+ confirm({
+ title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ onOk() {
+ sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
+ },
+ onCancel() {
+ },
+ });
+ } else {
+ sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }, timValue);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ }
+ };
+
+
+ handleBillCopyTo = async (name, sActiveId, copyToBillConfig, callBack) => {
+ /* 待用数据声明 */
+ const {
+ slaveConfig, slaveSelectedData, token, app, sModelsId, slaveInfoConfig, slaveInfoSelectedData, slaveFilterCondition,
+ slavePagination, slaveOrderBy, treeFilterCondition, dispatch,
+ } = this.props;
+ let isRefresh = true;
+ const formRoute = '/indexOee/commonOeeBill';
+
+ if (commonUtils.isNotEmptyArr(slaveSelectedData)) {
+ const copyToConfig = slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes(name));
+ let copyToData = slaveSelectedData;
+ const addcopyOther = [];
+ let tbSuffix = '';
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ if (name === 'BtnCopyTo.ActPurchaseOrder') {
+ const detailCopy = {};
+ detailCopy.name = 'detail';
+ detailCopy.config = slaveInfoConfig;
+ detailCopy.data = slaveInfoSelectedData;
+ addcopyOther.push(detailCopy);
+ tbSuffix = 'detail';
+ isRefresh = true;
+ } else {
+ copyToData = slaveInfoSelectedData;
+ isRefresh = true;
+ }
+ /* 物料需求计划生成采购申请、采购订单去重处理 */
+ if (commonUtils.isNotEmptyArr(copyToData)) {
+ const copyToDataNew = [];
+ copyToData.forEach((item) => {
+ const iIndex = copyToDataNew.findIndex(child => child.sWorkOrderMaterialId === item.sWorkOrderMaterialId);
+ if (iIndex < 0) {
+ copyToDataNew.push(item);
+ }
+ });
+ copyToData = copyToDataNew;
+ }
+ } else if (name === 'BtnCopyTo.ActProduceReport') { /* 若机台中点击暂停 则待产量上报中点击上报提示”工序已暂停,无法上报 */
+ if (commonUtils.isNotEmptyArr(copyToData) && copyToData[0].sState === '3') {
+ message.warn('工序已暂停,无法开工!');
+ return;
+ }
+ }
+ // 不重复字段处理 例如 复制到时只能同一客户复制到
+ const iIndex = copyToConfig.findIndex(item => item.sControlName === name);
+ if (iIndex > -1 && !commonUtils.isEmpty(copyToConfig[iIndex].sNotRepeatColumn)) {
+ const sNotRepeatColumn = copyToConfig[iIndex].sNotRepeatColumn.trim();
+ const sNotRepeatValue = copyToData[0][sNotRepeatColumn];
+ const iCount = copyToData.filter(item => item[sNotRepeatColumn] === sNotRepeatValue).length;
+ if (iCount !== copyToData.length) {
+ const iConfigIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === sNotRepeatColumn);
+ const sNotRepeatShowName = iConfigIndex > -1 ? slaveConfig.gdsconfigformslave[iConfigIndex].showName : '';
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseSame') + sNotRepeatShowName); // 请选择相同
+ return;
+ }
+ }
+ const { userinfo } = app;
+ const sIdArray = [];
+ copyToData.forEach((item) => {
+ if (formRoute === '/indexPage/materialRequirementsPlanning') {
+ sIdArray.push(item.sWorkOrderMaterialId); /* 物料需求计划生成用sWorkOrderMaterialId作为唯一键 */
+ } else if (formRoute === '/indexOee/commonOeeBill') {
+ const activeKey = commonUtils.isNotEmptyObject(copyToBillConfig) ? copyToBillConfig.sActiveKey : 'sWorkOrderSlaveId';
+ sIdArray.push(item[activeKey]); /* 物料需求计划生成用sWorkOrderMaterialId作为唯一键 */
+ } else {
+ sIdArray.push(item.sSlaveId);
+ }
+ });
+ 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;
+ }
+ setTimeout(async () => {
+ this.props.app.webSocket.onmessage = (msg) => {
+ const rtmsg = JSON.parse(msg.data);
+ if (rtmsg.action === 'execute') {
+ if (rtmsg.msg === 'continue') {
+ const { formRoute } = this.state;
+ if (commonUtils.isNotEmptyArr(copyToData)) {
+ const copyTo = {};
+ copyTo.name = name;
+ copyTo.config = copyToConfig;
+ copyTo.masterData = copyToData[0];
+ copyTo.slaveData = copyToData;
+ copyTo.copyOtherData = addcopyOther;
+ copyTo.srcFormRoute = this.props.formRoute; /* 未清来源路由 */
+ dispatch({
+ type: 'content/onRouter',
+ payload: {
+ url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
+ copyTo,
+ refresh: getData.bind(this, slaveConfig, slaveFilterCondition, commonUtils.isEmpty(slavePagination) ? 0 : slavePagination.current, slavePagination.pageSize, slaveOrderBy, isRefresh, undefined, undefined, treeFilterCondition),
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ }
+ } else {
+ message.warning(rtmsg.handlers + commonFunc.showMessage(app.commonConst, 'InOperation'));/* 在操作,请稍后再操作! */
+ }
+ } 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 (this.props.app.webSocket.homeAction) {
+ this.props.app.webSocket.homeAction(msg);
+ }
+ };
+ const sId = sIdArray.toString();
+ const getData = this.handleGetData;
+
+ const dataUrl = `${commonConfig.server_host}bill/billCopyToCheck/?sModelsId=${sModelsId}&sActiveId=${sActiveId}&tbSuffix=${tbSuffix}&sName='/indexOee/commonOeeBill'`;
+ const values = { sSlaveId: sId };
+ const dataReturn = (await commonServices.postValueService(token, values, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const sendSocketMessage = this.props.handleSendSocketMessage;
+ if (dataReturn.dataset.rows.length > 0) {
+ const { sId } = dataReturn.dataset.rows[0];
+ if (commonUtils.isNotEmptyObject(sId)) { /* 查看 */
+ sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
+ this.props.onSaveOeeState({ checkedId: sId });
+ }
+ // confirm({
+ // title: commonFunc.showMessage(app.commonConst, 'beUsedToNew'), /* 单据已存在,是否填写新单据 */
+ // onOk() {
+ // sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
+ // },
+ // onCancel() {
+ // },
+ // });
+ } else {
+ sendSocketMessage('copy', 'execute', sId, userinfo.sId, null, null);
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ if (callBack) {
+ callBack();
+ }
+ }, timValue);
+ } else {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ }
+ };
+
+ // CopyTo = (refresh, copyToData, name, copyToConfig, sActiveId, dispatch, app, copyOther) => {
+ // const { formRoute } = this.state;
+ // if (commonUtils.isNotEmptyArr(copyToData)) {
+ // const copyTo = {};
+ // copyTo.name = name;
+ // copyTo.config = copyToConfig;
+ // copyTo.masterData = copyToData[0];
+ // copyTo.slaveData = copyToData;
+ // copyTo.copyOtherData = copyOther;
+ // dispatch({
+ // type: 'content/onRouter',
+ // payload: {
+ // url: `${commonConfig.server_host}gdsmodule/getGdsmoduleById/${sActiveId}?sModelsId=${sActiveId}&sName=${formRoute}`, /* 接口地址 */
+ // copyTo,
+ // refresh,
+ // },
+ // });
+ // } else {
+ // message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择数据
+ // }
+ // };
+ // handleForceComplete = (name) => {
+ // const { slaveSelectedRowKeys, app, masterConfig } = this.props;
+ // if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ // message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择记录
+ // } else {
+ // const slaveMemoConfigOld = [];
+ // let btnConfigNameArr = [];
+ // if (name.indexOf('BtnRepair') > -1) {
+ // const btnConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName === name)[0];// sButtonEnabled sButtonParam
+ // if (!commonUtils.isEmpty(btnConfig.sActiveKey)) {
+ // btnConfigNameArr = btnConfig.sActiveKey.split(',');
+ // }
+ // if (commonUtils.isNotEmptyArr(btnConfigNameArr)) {
+ // // eslint-disable-next-line array-callback-return
+ // btnConfigNameArr.map((i) => {
+ // const singleConfig = this.props.slaveConfig.gdsconfigformslave.filter(item => (item.sName === i))[0];
+ // slaveMemoConfigOld.push(singleConfig);
+ // });
+ // }
+ // }
+ // const sysLogData = { sId: slaveSelectedRowKeys.toString() };
+ // this.props.onSaveState({
+ // slaveMemoConfig: slaveMemoConfigOld,
+ // sCurrMemoProps: {
+ // bVisibleMemo: true,
+ // sMemoField: 'sReason',
+ // sRecord: sysLogData,
+ // dataSource: sysLogData,
+ // btnName: name,
+ // },
+ // });
+ // }
+ // }
+
+ handleNoForceComplete = async () => {
+ const {
+ sModelsId, slaveSelectedRowKeys, slaveConfig, app, formRoute,
+ } = this.props;
+ const { token } = this.props.app;
+ if (commonUtils.isEmptyArr(slaveSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'pleaseChooseData')); // 请选择记录
+ } else {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnNoForceComplete');
+ const btnConfig = slaveConfig.gdsconfigformslave[iIndex];
+ const sRelation = btnConfig.sRelation;
+ const url = `${commonConfig.server_host}bill/billForceComplete?sModelsId=${sModelsId}&sName=${formRoute}`;
+ const values = { sqlParam: sRelation, sId: slaveSelectedRowKeys.toString(), sType: 'noforce' };
+
+ const dataReturn = (await commonServices.postValueService(token, values, url)).data;
+ if (dataReturn.code === 1) {
+ message.success(dataReturn.msg);
+ this.handleButtonClick('BtnRefresh');
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ }
+
+ // /* 双击弹出Memo */
+ // handleGetMemo = (name, sValue, sMemoFiled, sRecord) => {
+ // const { sCurrMemoProps } = this.props;
+ // sCurrMemoProps.bVisibleMemo = false;
+ // sRecord[sMemoFiled] = sValue;
+ // this.props.onSaveState({ sCurrMemoProps });
+ // this.handleToForceComplete(sValue);
+ // };
+
+ /* 设计报表功能 */
+ handleDesignFunction = () => {
+ this.props.onSaveState({ visibleStatement: true });
+ };
+ handleBtnPrint = (sActiveId, checked, key) => {
+ const {
+ app,
+ sModelsId,
+ masterConfig,
+ menuChildData,
+ reportData,
+ slaveFilterCondition,
+ slaveSelectedRowKeys,
+ slaveSelectedData,
+ formRoute,
+ treeFilterCondition,
+ slaveData,
+ } = this.props;
+ const { token } = app;
+ const slaveFilterConditionNew = slaveFilterCondition === undefined ? [] : [...slaveFilterCondition];
+ // const queryFilter = {};
+ // queryFilter[masterConfig.sId] = { sId: masterData.sId };
+ // queryFilter[slaveConfig.sId] = { sSqlCondition: { sParentId: masterData.sId } };
+
+ let sids = '';
+ slaveSelectedRowKeys.forEach((item, i) => {
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ const iIndex = slaveData.findIndex(child => child.sSlaveId === item);
+ if (iIndex > -1) {
+ if (i === slaveSelectedRowKeys.length - 1) {
+ sids = `${sids}${item}`;
+ } else {
+ sids = `${sids}${item},`;
+ }
+ }
+ }
+ });
+ if (sids !== '') {
+ const addFilter = {};
+ addFilter.bFilterName = 'sSlaveId';
+ addFilter.bFilterCondition = 'in';
+ addFilter.bFilterValue = sids;
+ slaveFilterConditionNew.push(addFilter);
+ }
+ // 将过滤数的赛选条件塞入打印中
+ if (key.indexOf('BtnPrint.') > -1 && commonUtils.isNotEmptyArr(treeFilterCondition)) {
+ // eslint-disable-next-line array-callback-return
+ treeFilterCondition.map((item) => {
+ slaveFilterConditionNew.push(item);
+ });
+ }
+ const queryFilter = {};
+
+ queryFilter[masterConfig.sId] = { bFilter: slaveFilterConditionNew };
+ const queryFilterJson = encodeURIComponent(JSON.stringify(queryFilter));
+ /* 拿到打印报表名称 */
+ let printReportName = 'report';
+ let slaveOneData = commonUtils.isNotEmptyArr(slaveSelectedData) ? JSON.stringify(slaveSelectedData) : '[]';
+ slaveOneData = slaveOneData.replace("'", '');
+ if (key.indexOf('BtnPrint.') > -1) {
+ if (commonUtils.isNotEmptyArr(reportData)) {
+ const iIndex = reportData.findIndex(item => item.sId === sActiveId);
+ if (iIndex > -1) {
+ printReportName = reportData[iIndex].sReportName;
+ }
+ }
+ const urlPrint = `${commonConfig.file_host}printReport/printPdf/${sActiveId}/${printReportName}.pdf?${checked ? 'fileType=.xlsx&' : ''}queryFilter=${queryFilterJson}&sModelsId=${sModelsId}&sMaintableId=${masterConfig.sId}&token=${encodeURIComponent(token)}&sName=${formRoute}`;
+ window.open(urlPrint);
+ } else if (key.indexOf('BtnPrintCus.') > -1) {
+ if (commonUtils.isNotEmptyArr(menuChildData)) {
+ const iIndex = menuChildData.findIndex(item => item.sId === sActiveId);
+ if (iIndex > -1) {
+ printReportName = menuChildData[iIndex].sReportName;
+ }
+ }
+ // const urlPrint = `${commonConfig.file_host}printReport/printPdf/${printReportName}?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&printType=noquery&slaveOneData=${slaveOneData}`;
+ // window.open(`${encodeURI(`${urlPrint}&queryFilter=${queryFilterJson}`)}&token=${encodeURIComponent(token)}`);
+
+ /* Get提交地址栏参数过多,更改Get提交为Post提交 */
+ const url = `${commonConfig.file_host}printReport/printPdf/${printReportName}?${checked ? 'fileType=.xlsx&' : ''}sModelsId=${sModelsId}&printType=noquery&token=${encodeURIComponent(token)}`;
+ const param = slaveOneData;
+ this.handleOpenPost(url, param);
+ }
+ };
+ /* 工单列表价格批量更新 */
+ handleBatchWorkListsPriceUpdate = () => {
+ const { slaveData, slaveSelectedRowKeys, app } = this.props;
+ if (commonUtils.isEmptyStr(slaveSelectedRowKeys)) {
+ return message.warning(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请选择一条数据进行操作 */
+ } else {
+ const batchPriceWorkListUpdateData = slaveData.filter(item => slaveSelectedRowKeys.includes(item.sId));
+ this.props.onSaveState({ batchPriceWorkListUpdateData, visibleBatchWorkListPriceUpdate: true });
+ }
+ };
+
+ handleOpenPost= (url, params) => {
+ const newWin = window.open();
+ let formStr = '';
+ // 设置样式为隐藏,打开新标签再跳转页面前,如果有可现实的表单选项,用户会看到表单内容数据
+ formStr = `';
+ newWin.document.body.innerHTML = formStr;
+ newWin.document.forms[0].submit();
+ return newWin;
+ }
+
+ // handleGetMemoCancel = () => {
+ // const sCurrMemoProps = { bVisibleMemo: false };
+ // this.props.onSaveState({ sCurrMemoProps });
+ // };
+
+ // handleToForceComplete = async (sValue) => {
+ // const {
+ // app, slaveSelectedRowKeys, slaveConfig, sModelsId, slaveInfoSelectedRowKeys, formRoute,
+ // } = this.props;
+ //
+ // const { token } = app;
+ // const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'BtnForceComplete' || item.sControlName === 'BtnNoPurchase');
+ // const btnConfig = slaveConfig.gdsconfigformslave[iIndex];
+ // const sRelation = btnConfig.sRelation;
+ //
+ // let selectedRowKeys = '';
+ // if (formRoute === '/materialRequirementsPlanning') {
+ // selectedRowKeys = slaveInfoSelectedRowKeys.toString();
+ // } else {
+ // selectedRowKeys = slaveSelectedRowKeys.toString();
+ // }
+ //
+ // const url = `${commonConfig.server_host}bill/billForceComplete?sModelsId=${sModelsId}&sName=${formRoute}`;
+ // const values = { sqlParam: sRelation, sId: selectedRowKeys, sReason: sValue };
+ //
+ // const masterReturn = (await commonServices.postValueService(token, values, url)).data;
+ // if (masterReturn.code === 1) {
+ // message.success(masterReturn.msg);
+ // this.handleButtonClick('BtnRefresh');
+ // } else {
+ // this.props.getServiceError(masterReturn);
+ // }
+ // }
+
+ handleToSettlement = async (sType) => {
+ const {
+ app, sModelsId, slaveSelectedRowKeys, slaveData, formRoute,
+ } = this.props;
+ let continueFlag = true;
+ let msg = '';
+
+ const selectedData = slaveData.filter(item => slaveSelectedRowKeys.includes(item.sId));
+ const point = commonUtils.convertStrToNumber(selectedData[0].sPeriodId);
+ if (sType === 1) {
+ for (const item of slaveData) {
+ const curr = commonUtils.convertStrToNumber(item.sPeriodId);
+ if (curr > point && item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}已结账`;
+ break;
+ } else if (curr < point && !item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}未结账`;
+ break;
+ }
+ }
+ } else if (sType === 2) {
+ for (const item of slaveData) {
+ const curr = commonUtils.convertStrToNumber(item.sPeriodId);
+ if (curr < point && item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}已结账`;
+ break;
+ } else if (curr > point && !item.bFrozen) {
+ continueFlag = false;
+ msg = `${item.sPeriodId}未结账`;
+ break;
+ }
+ }
+ }
+ // tStartDate: "2017-01-02 16:00:00" tEndDate: "2017-02-01 16:00:00" tStartDate, tEndDate,
+ if (continueFlag) {
+ const value = {
+ sProName: 'Sp_System_AutoMaterialsPriceSingle',
+ paramsMap: { tStartDate: selectedData[0].tStartDate, tEndDate: selectedData[0].tEndDate },
+ };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}&sName=${formRoute}`;
+ 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);
+ }
+ } else {
+ this.props.getServiceError(returnData);
+ }
+ } else {
+ message.warn(msg);
+ }
+ }
+ handleTreeSelect = (name, selectedKeys, e) => {
+ const { slaveFilterCondition, slaveConfig, slavePagination } = this.props;
+ const slaveFilterConditionNew = {};
+ let ids = '';
+ const treeFilterCondition = [];
+ this.props.onTreeSelect(name, selectedKeys, e);
+ /* 加过滤条件 */
+ for (const sId of selectedKeys) {
+ const searchId = sId.split('_')[1];
+ const searchName = sId.split('_')[0];
+ ids = slaveFilterConditionNew[`${searchName}`];
+ if (commonUtils.isNotEmptyObject(ids)) {
+ ids += `,${searchId}`;
+ } else {
+ ids = searchId;
+ }
+ slaveFilterConditionNew[`${searchName}`] = ids;
+ }
+ if (commonUtils.isNotEmptyObject(slaveFilterConditionNew)) {
+ Object.keys(slaveFilterConditionNew).forEach((item) => {
+ if (commonUtils.isNotEmptyObject(slaveFilterConditionNew[item])) {
+ treeFilterCondition.push({
+ bFilterName: item,
+ bFilterCondition: 'in',
+ bFilterValue: slaveFilterConditionNew[item],
+ bFilterType: 'tree',
+ });
+ }
+ });
+ if (commonUtils.isNotEmptyArr(treeFilterCondition)) {
+ this.props.onSaveState({
+ treeFilterCondition,
+ });
+ }
+ }
+ this.handleGetData(slaveConfig, slaveFilterCondition, 1, slavePagination.pageSize, '', false, '', '', treeFilterCondition);
+ /* 如果有选中树节点,则展开选中节点的父节点,否则默认展开第一个父节点 */
+ if (commonUtils.isNotEmptyArr(selectedKeys) && selectedKeys.length > 0) {
+ const { treeData } = this.props;
+ const expandedKeys = [];
+ const len = selectedKeys.length;
+ const iIndex = treeData.findIndex(item => item.key === selectedKeys[len - 1] || item.sName === selectedKeys[len - 1].split('_')[0]);
+ if (iIndex > -1) { /* 选中的是父节点 */
+ expandedKeys.push(treeData[iIndex].key);
+ }
+ this.props.onSaveState({
+ expandedKeys,
+ });
+ }
+ };
+ handleTableSelectRowChange = async (name, selectedRowKeys, changeValue) => {
+ if (name === 'slave' || name === 'master') {
+ const {
+ token, sModelsId, [`${name}Total`]: totalData, [`${name}AllTotal`]: totalAllData, [`${name}Config`]: tableConfig, [`${name}Data`]: tableData, formData, app,
+ } = this.props;
+ const { dNetMoney, dNetPrice } = app.decimals;
+ const selectedTotalData = [];
+ let bMutiSelect = false; /* 默认单选或不选 true :多选 */
+ if (commonUtils.isNotEmptyArr(formData)) {
+ bMutiSelect = formData[0].bMutiSelect;
+ }
+ if (commonUtils.isNotEmptyArr(tableData) && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ let url = '';
+ if (sModelsId === '19211681019715326709731800') {
+ let sProcessId = '';
+ if (name === 'master') {
+ sProcessId = changeValue.sProcessClassifyId;
+ } else if (name === 'slave') {
+ const sProcessIdIndex = tableData.findIndex(item => item.sSlaveId === 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 });
+ }
+ }
+ }
+ /* 只有多选情况下 汇总勾选行字段 */
+ if (commonUtils.isNotEmptyArr(totalData)) {
+ if (commonUtils.isNotEmptyObject(tableConfig) && tableConfig.gdsconfigformslave && bMutiSelect) {
+ const tableConfigSum = tableConfig.gdsconfigformslave.filter(item => commonUtils.isNotEmptyObject(item.sName) && item.bSum && item.bVisible);
+ const tableFilterData = tableData.filter(item => selectedRowKeys.includes(item.sSlaveId));
+ if (commonUtils.isNotEmptyArr(tableConfigSum) && commonUtils.isNotEmptyArr(tableFilterData)) {
+ const selectedTotal = {};
+ selectedTotal.bSum = true;
+ selectedTotal.key = '0000';
+ tableConfigSum.forEach((itemConfig) => {
+ const sName = itemConfig.sName;
+ if (commonUtils.isNotEmptyObject(sName)) {
+ tableFilterData.forEach((child) => {
+ if (commonUtils.isNotEmptyNumber(child[sName])) {
+ /* 金额、单价 保留系统设置小数位 */
+ if (sName.toLowerCase().endsWith('price')) { /* 价格 */
+ selectedTotal[sName] = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(child[sName], 0),dNetPrice) + commonUtils.convertFixNum(commonUtils.isNull(selectedTotal[sName], 0),dNetPrice),dNetPrice);
+ } else if (sName.toLowerCase().endsWith('money')) { /* 金额 */
+ selectedTotal[sName] = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(child[sName], 0),dNetMoney) + commonUtils.convertFixNum(commonUtils.isNull(selectedTotal[sName], 0),dNetMoney),dNetMoney);
+ } else{
+ selectedTotal[sName] = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(child[sName], 0),dNetMoney) + commonUtils.convertFixNum(commonUtils.isNull(selectedTotal[sName], 0),dNetMoney),dNetMoney);
+ }
+
+ }
+ });
+ }
+ });
+ if (commonUtils.isNotEmptyObject(selectedTotal)) {
+ selectedTotalData.push(selectedTotal);
+ }
+ }
+ }
+ }
+ } else if (commonUtils.isEmptyArr(selectedRowKeys)) {
+ const menuChildData = [];
+ this.props.onSaveState({ menuChildData });
+ }
+ this.props.onSaveState({ [`${name}Total`]: commonUtils.isNotEmptyArr(selectedRowKeys) && bMutiSelect ? selectedTotalData : totalAllData });
+ }
+ 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,
+ });
+ }
+ }
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+
+
+ // OEE自定义按钮调用存储过程
+ handleOEEProcedureCall = async (btnConfig, proName, proInParam) => {
+ const { app, sModelsId } = this.props;
+ const value = {
+ sProName: proName,
+ paramsMap: {
+ sMachineId: app.sMachineNameSId,
+ sProInParam: proInParam,
+ },
+ };
+ const url = `${commonConfig.server_host}business/getProData?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (returnData.code === 1) {
+ message.success(returnData.msg);
+ this.handleButtonClick('BtnRefresh');
+ this.props.onSaveState({ oeeBtnStatus: true }); /* oeeBtnStatus 按钮点击时置灰 执行数据完成后按钮回置 */
+ } else {
+ this.props.onSaveState({ loading: false, oeeBtnStatus: true });
+ this.props.getServiceError(returnData);
+ }
+ }
+ // 根据配置解析拼接具体参数
+ handleProParams = (sKey, arr) => {
+ const { [`${sKey}Data`]: tableData, [`${sKey}SelectedRowKeys`]: selectedRowKeys } = this.props;
+ const keyData = commonUtils.isNotEmptyArr(tableData) ? tableData.filter(item => selectedRowKeys.includes(item.sId) || selectedRowKeys.includes(item.sSlaveId)) : [];
+ if (commonUtils.isNotEmptyArr(keyData)) {
+ const addState = {};
+ addState.key = sKey;
+ const val = [];
+ keyData.forEach((currData) => {
+ const currVal = {};
+ arr.forEach((filed) => {
+ currVal[`${filed}`] = currData[`${filed}`];
+ });
+ val.push(currVal);
+ });
+ addState.value = val;
+ return addState;
+ } else {
+ return undefined;
+ }
+ };
+ // 进行存储过程按钮存储过程参数解析拼接 根据存储过程按钮参数配置进行解析,配置是json格式 {"sproName":"cal_sss","inMap":"master.sSlaveId,slave.sId"}
+ handleOeeBtnEent = (btnConfig) => {
+ const { masterData } = this.props;
+ const { sButtonParam } = btnConfig;
+ const btn = JSON.parse(sButtonParam);
+ const sProName = btn.sproName;
+ const inParams = [];
+ const { inMap } = btn;
+ const inlist = inMap.split(',');
+ const masterArr = [];
+ const slaveArr = [];
+
+ if (inlist.length > 0) {
+ inlist.forEach((item) => {
+ const itemArr = item.split('.');
+ if (itemArr.length > 0) {
+ const sname = itemArr[0];
+ const stype = itemArr[1];
+ if (commonUtils.isNotEmptyStr(sname) && sname === 'master') {
+ masterArr.push(stype);
+ }
+ if (commonUtils.isNotEmptyStr(sname) && sname === 'slave') {
+ slaveArr.push(stype);
+ }
+ }
+ });
+
+ if (commonUtils.isNotEmptyArr(masterArr) && commonUtils.isNotEmptyObject(masterData)) {
+ const addState = {};
+ addState.key = 'master';
+ const val = [];
+ const currVal = {};
+ masterArr.forEach((filed) => {
+ currVal[`${filed}`] = masterData[`${filed}`];
+ });
+ val.push(currVal);
+ addState.value = val;
+ inParams.push({ ...addState });
+ }
+ if (commonUtils.isNotEmptyArr(slaveArr)) {
+ const addState = this.handleProParams('slave', slaveArr);
+ if (commonUtils.isNotEmptyObject(addState)) {
+ inParams.push({ ...addState });
+ }
+ }
+ }
+ /* OEE模块调用OEE自定义按钮存储过程 */
+ if (location.pathname.toLowerCase().indexOf('oee') > -1) {
+ this.handleOEEProcedureCall(btnConfig, sProName, JSON.stringify({ params: inParams }));
+ }
+ };
+
+
+ // 进行存储过程按钮存储过程参数解析拼接 根据存储过程按钮参数配置进行解析,配置是json格式 {"sproName":"cal_sss","inMap":"master.sSlaveId,slave.sId"}
+ // handleBtnEent = (btnConfig, name, sValue) => {
+ // const { masterData, sCurrMemoProps } = this.props;
+ // if (commonUtils.isNotEmptyObject(sCurrMemoProps) && name.indexOf('BtnRepair') > -1) {
+ // sCurrMemoProps.bVisibleMemo = false;
+ // this.props.onSaveState({ sCurrMemoProps });
+ // }
+ // const sButtonParam = btnConfig.sButtonParam;
+ // const btn = JSON.parse(sButtonParam);
+ // const sProName = btn.sproName;
+ // const inParams = [];
+ // const inMap = btn.inMap;
+ // const inlist = inMap.split(',');
+ //
+ // const masterArr = [];
+ // const slaveArr = [];
+ // const slaveInfoArr = [];
+ // const controlArr = [];
+ // const materialsArr = [];
+ // const processArr = [];
+ //
+ // if (inlist.length > 0) {
+ // inlist.forEach((item) => {
+ // const itemArr = item.split('.');
+ // if (itemArr.length > 0) {
+ // const sname = itemArr[0];
+ // const stype = itemArr[1];
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'master') {
+ // masterArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'slave') {
+ // slaveArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'slaveInfo') {
+ // slaveInfoArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'control') {
+ // controlArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'materials') {
+ // materialsArr.push(stype);
+ // }
+ // if (commonUtils.isNotEmptyStr(sname) && sname === 'process') {
+ // processArr.push(stype);
+ // }
+ // }
+ // });
+ //
+ // if (commonUtils.isNotEmptyArr(masterArr) && commonUtils.isNotEmptyObject(masterData)) {
+ // const addState = {};
+ // addState.key = 'master';
+ // const val = [];
+ // const currVal = {};
+ // masterArr.forEach((filed) => {
+ // currVal[`${filed}`] = masterData[`${filed}`];
+ // });
+ // val.push(currVal);
+ // addState.value = val;
+ // inParams.push({ ...addState });
+ // }
+ // if (commonUtils.isNotEmptyArr(slaveArr)) {
+ // const addState = this.handleProParams('slave', slaveArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(slaveInfoArr)) {
+ // const addState = this.handleProParams('slaveInfo', slaveInfoArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(controlArr)) {
+ // const addState = this.handleProParams('control', controlArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(materialsArr)) {
+ // const addState = this.handleProParams('materials', materialsArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // if (commonUtils.isNotEmptyArr(processArr)) {
+ // const addState = this.handleProParams('process', processArr);
+ // if (commonUtils.isNotEmptyObject(addState)) {
+ // inParams.push({ ...addState });
+ // }
+ // }
+ // }
+ //
+ // this.handleProcedureCall(btnConfig, sProName, JSON.stringify({ params: inParams, changeValue: sValue }));
+ // };
+ // 根据配置解析拼接具体参数
+ // handleProParams = (sKey, arr) => {
+ // const { [`${sKey}Data`]: tableData, [`${sKey}SelectedRowKeys`]: selectedRowKeys } = this.props;
+ // const keyData = tableData.filter(item => selectedRowKeys.includes(item.sId) || selectedRowKeys.includes(item.sSlaveId));
+ // if (commonUtils.isNotEmptyArr(keyData)) {
+ // const addState = {};
+ // addState.key = sKey;
+ // const val = [];
+ // keyData.forEach((currData) => {
+ // const currVal = {};
+ // arr.forEach((filed) => {
+ // currVal[`${filed}`] = currData[`${filed}`];
+ // });
+ // val.push(currVal);
+ // });
+ // addState.value = val;
+ // return addState;
+ // } else {
+ // return undefined;
+ // }
+ // };
+ // 存储过程按钮调用存储过程
+ // handleProcedureCall = async (btnConfig, proName, proInParam) => {
+ // const { app, sModelsId } = this.props;
+ // const value = { sProName: proName, sProInParam: proInParam };
+ // const url = `${commonConfig.server_host}procedureCall/doGenericProcedureCall?sModelsId=${sModelsId}`;
+ // const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ // if (returnData.code === 1) {
+ // message.success(returnData.msg);
+ // this.handleButtonClick('BtnRefresh');
+ // } else {
+ // this.props.onSaveState({ loading: false });
+ // this.props.getServiceError(returnData);
+ // }
+ // }
+ /* 点击展开图标时,调用接口获取嵌套字表数据 */
+ 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 });
+ }
+ handleTableAdd = (name, isWait) => {
+ const { formRoute } = this.props;
+ if (commonUtils.isNotEmptyObject(formRoute) && formRoute.indexOf('/indexOee') > -1 && name === 'employee') { // oee开工页面人员表点击增加弹窗人员选择框
+ this.props.onSaveState({ employeeVisble: true });
+ } else if (isWait) { /* 报表设计新增 */
+ const tableDataRow = this.props.onDataRowAdd(name, isWait);
+ return tableDataRow;
+ }
+ }
+
+ /* 操作日志点击链接弹出Modal呈现日志明细 */
+ handleGetLogDetail=(record) => {
+ const { sModelsType } = this.props;
+ let { logColumn } = this.props;
+ /* 操作日志明细弹窗功能 */
+ if (sModelsType === 'commonList/logdetail') {
+ const { sDetailMemo } = record;
+ let JsonData = [];
+ const logData = [];
+ const logConfig = {};
+ if (commonUtils.isNotEmptyObject(sDetailMemo)) {
+ const addState = {};
+ addState.logVisible = true;
+ if (commonUtils.isEmptyArr(logColumn)) {
+ logConfig.sId = commonUtils.createSid();
+ logConfig.gdsconfigformslave = [{
+ bVisible: false,
+ sName: 'sId',
+ bNotEmpty: true,
+ showName: '表sId',
+ bFind: false,
+ }, {
+ bVisible: false,
+ sName: 'sSlaveId',
+ bNotEmpty: true,
+ showName: '表主键',
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sTableName',
+ bNotEmpty: true,
+ showName: '表名称',
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sTableType',
+ bReadOnly: true,
+ showName: '表类型',
+ iTag: 1,
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'handleType',
+ bReadOnly: true,
+ showName: '状态',
+ iTag: 1,
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sFieldName',
+ bReadOnly: true,
+ showName: '字段名',
+ iTag: 1,
+ bFind: false,
+ }, {
+ bVisible: true,
+ sName: 'sFieldValue',
+ bReadOnly: true,
+ showName: '字段值',
+ iTag: 1,
+ bFind: false,
+ }];
+ logColumn = [{
+ title: '表名称',
+ dataIndex: 'sTableName',
+ width: 200,
+ bFind: true,
+ }, {
+ title: '表类型',
+ dataIndex: 'sTableType',
+ width: 100,
+ bFind: true,
+ }, {
+ title: '状态',
+ dataIndex: 'handleType',
+ width: 100,
+ bFind: true,
+ }, {
+ title: '字段名',
+ dataIndex: 'sFieldName',
+ width: 200,
+ bFind: true,
+ }, {
+ title: '字段值',
+ dataIndex: 'sFieldValue',
+ width: 200,
+ bFind: true,
+ }];
+ addState.logColumn = logColumn;
+ addState.logConfig = logConfig;
+ }
+ try {
+ JsonData = JSON.parse(sDetailMemo);
+ /* 弹窗字段取值 */
+ JsonData.forEach((item) => {
+ const columnArr = item.column;
+ if (commonUtils.isNotEmptyArr(columnArr)) {
+ columnArr.forEach((column) => {
+ // eslint-disable-next-line guard-for-in
+ for (const property in column) {
+ const logObj = {};
+ logObj.sTableName = item.sTable;
+ logObj.sTableType = item.name;
+ logObj.sFieldName = property;
+ logObj.sFieldValue = column[property];
+ const newId = commonUtils.createSid();
+ logObj.sId = newId;
+ logObj.sSlaveId = newId;
+ const handleType = column.handleType;
+ switch (handleType) {
+ case 'add':
+ logObj.handleType = '新增';
+ break;
+ case 'update':
+ logObj.handleType = '修改';
+ break;
+ case 'del':
+ logObj.handleType = '删除';
+ break;
+ default:
+ break;
+ }
+ logData.push(logObj);
+ }
+ });
+ }
+ });
+ addState.logData = logData;
+ } catch (e) {
+ JsonData = [];
+ }
+ this.props.onSaveState({
+ ...addState,
+ });
+ }
+ }
+ }
+
+ handleViewClick = (name, sName, record, index, myConfig) => {
+ /* 操作日志明细链接弹出Modal */
+ if (sName === 'sDetailMemoview') {
+ this.handleGetLogDetail(record);
+ } else {
+ if (sName === 'myTableConfig') {
+ this.handleQuickViewClick(name, sName, record, index, myConfig);
+ } else {
+ this.props.onViewClick(name, sName, record, index, myConfig);
+ }
+ }
+ }
+
+ handleQuickViewClick = async (name, sName, record, index, myConfigArr) => {
+ const {
+ slaveConfig,
+ slaveData,
+ dispatch,
+ slaveFilterCondition,
+ slavePagination,
+ slaveOrderBy,
+ sModelsType,
+ formRoute,
+ treeFilterCondition,
+ app,
+ iPageSize,
+ sModelsId,
+ // slaveSelectedData,
+ // masterData,
+ // employeeConfig,
+ } = this.props;
+
+ let picArr = slaveConfig.gdsconfigformslave.filter(item => (item.sName === sName));
+ 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), /* 刷新方法 */
+ 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: slaveData,
+ conditonValues: conditionValues,
+ newKey: tableDataRow[sActiveKey],
+ currentIndex: iIndex,
+ filterCondition,
+ sSrcModelsId: this.props.sModelsId,
+ },
+ });
+ }
+ };
+
+ handleGetTableConfig = async (name, sModelsId) => {
+ if (commonUtils.isNotEmptyObject(sModelsId)) {
+ const newConfig = await this.props.onGetTableConfig(name, sModelsId);
+ if (commonUtils.isNotEmptyObject(newConfig)) {
+ let slaveColumn = commonFunc.getHeaderConfig(newConfig);
+ this.props.onSaveState({[`${[name]}Config`]: newConfig, slaveColumn })
+ }
+ }
+ }
+
+ handlePartNameClick =(sName, showConfig, record) => {
+ if (commonUtils.isNotEmptyObject(sName) && commonUtils.isNotEmptyObject(showConfig) && commonUtils.isNotEmptyObject(record)) {
+ this.props.onSaveState({ workScheduleConfig: showConfig, workScheduleRecord: record, workScheduleVisible: true });
+ }
+ }
+ handleCloseModel = (modelVisible) => {
+ this.props.onSaveState({ [modelVisible]: false });
+ };
+
+ /* 获取树形slaveTreeData数据 */
+ handleGetSlaveTreeData = (slaveData) => {
+ const slaveTreeData = []; /* 用于界面树形展示的slaveData */
+ const expKeys = [];
+ const addState = {};
+ if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveData.forEach((tableDataRow) => {
+ const tableDataRowNew = JSON.parse(JSON.stringify(tableDataRow));
+ if (commonUtils.isEmpty(tableDataRow.sParentId)) { /* 一级分类 */
+ const childrenData = this.handleGetChildData(slaveData, tableDataRowNew.sId); /* 获取子数据 */
+ if (commonUtils.isNotEmptyArr(childrenData)) {
+ expKeys.push(tableDataRow.sSlaveId);
+ tableDataRowNew.children = childrenData;
+ }
+ slaveTreeData.push(tableDataRowNew);
+ } else { /* 搜索后的数据集 若没有完整的树形结构 没有父级时 挂载当层 */
+ const sParentId = tableDataRow.sParentId;
+ /* 层级里去查sParentId的层级 */
+ const slaveFilterData = slaveData.filter(item => item.sId === sParentId); /* 查找该节点的父级 */
+ if (slaveFilterData.length === 0) { /* 没有父级 代表搜索后零散数据 */
+ const childrenData = this.handleGetChildData(slaveData, tableDataRowNew.sId); /* 获取子数据 */
+ if (commonUtils.isNotEmptyArr(childrenData)) {
+ expKeys.push(tableDataRow.sSlaveId);
+ tableDataRowNew.children = childrenData;
+ }
+ slaveTreeData.push(tableDataRowNew);
+ }
+ }
+ });
+ }
+ addState.slaveTreeData = slaveTreeData;
+ addState.expKeys = expKeys;
+ return addState;
+ }
+ /* 获取子节点数据 */
+ handleGetChildData = (data, sId) => {
+ if (commonUtils.isNotEmptyArr(data)) {
+ const filterData = data.filter(item => item.sParentId === sId);
+ if (commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach((child, index) => {
+ const filterChildData = this.handleGetChildData(data, child.sId);
+ if (commonUtils.isNotEmptyArr(filterChildData)) {
+ filterData[index].children = filterChildData;
+ }
+ });
+ }
+ return filterData;
+ }
+ }
+
+ /* 选择上报参数点击确定 */
+ 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,
+ });
+ }
+ }
+
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled } = this.props;
+ let jsonData = [];
+ if (sName === 'sParams') { // 产量上报 工艺参数
+ 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);
+ 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 };
+ }
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ slaveRecord: record,
+ sProcessParamsSelects,
+ sParamsModalVisible: true,
+ sParamConfig,
+ sParamColumn,
+ sParamData,
+ sParamModalType: 'sReport',
+ enabled,
+ });
+ }
+ }
+
+
+ /* 动态参数标题选择框 全选/取消全选 */
+ handleCheckParamChange = () => {
+ const {
+ sParamData,
+ sParamColumn,
+ } = 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 };
+ });
+ }
+ this.props.onSaveState({
+ sParamData,
+ sParamColumn,
+ });
+ }
+ }
+
+
+ render() {
+ return (
+
+ );
+ }
+ };
+};
diff --git a/src/components/Common/CommonNewBill.js b/src/components/Common/CommonNewBill.js
new file mode 100644
index 0000000..02a0bf3
--- /dev/null
+++ b/src/components/Common/CommonNewBill.js
@@ -0,0 +1,3179 @@
+/* eslint-disable */
+
+import React, { Component, useState, useRef, useEffect } from 'react';
+import { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import {Row, Col, Checkbox, Layout, Spin, Tabs, Dropdown, Avatar, Button, Menu, Table, Upload} from 'antd';
+import { message } from '@/utils/common/message';
+import {DownOutlined, UploadOutlined,} from '@ant-design/icons';
+import CommonNewSales from '@/components/Common/CommonNewBillEvent';/* 继承销售模块业务功能 */
+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 AssignmentField from './AssignmentField';
+import CommonView from '@/components/Common/CommonView';
+import CommonViewTable from '@/components/Common/CommonViewTable';
+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 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 AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelect from "./CommonListSelect";
+import WorkCalendar from '@/components/Common/WorkCalendar/WorkCalendar';
+import ContextMenuModal from '@/components/Common/ContextMenuModal';
+import CommonViewDragable from "@/components/Common/CommonViewDragable";
+import CommonExamInfo from '@/components/Common/CommonExamInfo';
+import lodash from 'lodash';
+
+// 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';
+
+
+const width = '18px';
+const height = '18px';
+const setAdd = {
+ 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:
,
+// };
+
+// console.log('btn; ', setAdd, setDelete, setCopy);
+const { Header, Content } = Layout;
+const { TabPane } = Tabs;
+
+let _this ={};
+
+// const { confirm } = Modal;
+class CommonNewBill extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ currentTab: ''
+ };
+ _this = this;
+ }
+
+ componentDidUpdate() {
+ // 没有默认页签情况下, 非编辑状态进入,展示第一个tab
+ const { enabled, masterConfig } = this.props;
+ // 获取默认展开tab
+ const defaultTabConfig = masterConfig && masterConfig.gdsconfigformslave.find(item =>
+ [
+ 'MainContent',
+ 'zMaterials',
+ 'zCheck',
+ ...new Array(10).fill('').map((_, index) => `zSlaveInfo${index}`)
+ ].includes(item.sControlName) &&
+ item.sDefault
+ );
+ if (!enabled && !this.firstLoaded && commonUtils.isEmptyObject(defaultTabConfig)) {
+ clearTimeout(this.timer);
+ this.timer = setTimeout(() => {
+ this.firstLoaded = true;
+ if (this.slaveTabsRef) {
+ const oFirstTab = this.slaveTabsRef.querySelector('.ant-tabs-nav-list')?.querySelector('.ant-tabs-tab');
+ if (oFirstTab) {
+ // 创建一个自定义的 click 事件
+ const clickEvent = new Event('click', { bubbles: true, cancelable: true });
+ // 触发该元素的 click 事件
+ oFirstTab.dispatchEvent(clickEvent);
+ }
+ }
+ }, 500);
+ }
+
+ }
+
+ /** 行选择 */
+ 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;
+ }
+ };
+
+
+ /** 上传后执行函数 */
+ // handleUploadChange = (info) => {
+ // const { file } = info;
+ // console.log(info, 'infoinfoinfoinfoinfoinfoinfoinfoinfo');
+ // const { masterData, sModelsId, slaveConfig } = this.props;
+ // if (file.response) {
+ // if (file.response.code === 1) {
+ // /* 数据查询成功 */
+ // const errorInfo = file.response.dataset.rows[0].nocanbeInsert;
+ // if (commonUtils.isNotEmptyObject(errorInfo)) {
+ // message.error(errorInfo[0].sReason);
+ // return;
+ // }
+ // const returnData = file.response.dataset.rows[0].canbeInsert;
+ // returnData.forEach(async (tableDataRow) => {
+ // tableDataRow.handleType = 'add';
+ // tableDataRow.sId = commonUtils.createSid();
+ // tableDataRow.sParentId = masterData.sId;
+ // tableDataRow.key = tableDataRow.sId;
+ // 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];
+ // }
+ // }
+ // // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductId');
+ // let productIdDropDown;
+ // const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductId');
+ // if (slaveIndex > -1) {
+ // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex]);
+ // productIdDropDown = sqlDropDownData.dropDownData;
+ // }
+ // if (productIdDropDown !== undefined) {
+ // const iProductIdIndex = productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
+ // if (iProductIdIndex === -1) {
+ // 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,
+ // });
+ // }
+ // }
+ // });
+ // this.props.onSaveState({ slaveData: returnData });
+ // } else { /* 失败 */
+ // this.props.getServiceError(file.response);
+ // }
+ // }
+ // };
+ /** 图片上传后执行函数 */
+ handleUploadChange = (info, name) => {
+ const { file } = info;
+ if (file.response && file.response.code === 1) {
+ const sPicturePath = file.response.dataset.rows[0].savePathStr;
+ const uploadInfo = {
+ sPicturePath,
+ sFileName: file.name,
+ };
+ const tableDataRow = this.props.onDataRowAdd(name, true);
+ const { [`${name}Column`]: tableColumn, masterData, [`${name}Data`]: tableData } = this.props;
+ 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);
+ }
+ };
+ 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) }, /* 是否显示 */
+ };
+ }
+ };
+
+ handleOk = async (flag, tmpCheck, isWait) => {
+ const {
+ sModelsId, masterData, app, checkConditions, sCheckModelId, checkPersonData, currentId, masterConfig, slaveConfig, checkConfig,
+ } = 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: '',
+ 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,
+ } = this.props;
+ const addState = {};
+ if (this.props.sModelsType === '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 = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductClassifyId');
+ let dropdownProductClassifyId;
+ const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductClassifyId');
+ if (slaveIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex]);
+ 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;
+ }
+ // dropdownProductClassifyId = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductClassifyName');
+ }
+ 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 = slaveData[iSlaveIndex].dProductQty;
+ 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,
+ });
+ };
+ 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 = () => {
+ const {
+ controlData, slave0Data, processData, sModelsId, slaveData, slaveSelectedRowKeys, materialsConfig, processConfig,
+ } = this.props;
+ const ctData = controlData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]);
+ const mtData = slave0Data.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0]);
+ const pData = processData.filter(item => item.handleType !== 'del' && item.sSlaveId === slaveSelectedRowKeys[0] && item.sType === '2');
+ if (commonUtils.isNotEmptyArr(ctData)) {
+ let mDetail = '';
+ let pDetail = '';
+ const slaveIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ ctData.forEach(async (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));
+ // const materialsIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'materials', 'sMaterialsName');
+ 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 ? '' : ',';
+ if (materialsIdDropDown) {
+ const materialsIdIndex = materialsIdDropDown.findIndex(item => item.sId === mItem.sMaterialsId);
+ if (materialsIdIndex > -1) {
+ imDetail = `${imDetail}${fh} ${materialsIdDropDown[materialsIdIndex].sMaterialsName}`;
+ }
+ }
+ });
+ // processPropsType
+ const process = pData.filter(processItem => (processItem.sControlId === controlItem.sId));
+ // const processIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'process', 'sProcessName');
+ 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;
+ }
+ process.forEach((pItem, i) => {
+ const fh = i === 0 ? '' : ',';
+ if (processIdDropDown) {
+ const processIdIndex = processIdDropDown.findIndex(item => item.sId === pItem.sProcessId);
+ if (processIdIndex > -1) {
+ ipDetail = `${ipDetail}${fh} ${processIdDropDown[processIdIndex].sProcessName}`;
+ }
+ }
+ });
+ if (commonUtils.isNotEmptyObject(imDetail)) {
+ mDetail = `${yDetail}${imDetail}`;
+ }
+ if (commonUtils.isNotEmptyObject(ipDetail)) {
+ pDetail = `${gDetail}${ipDetail}`;
+ }
+ }
+ }
+ });
+ 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,
+ slave0Data,
+ processData,
+ slaveData,
+ });
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ handleFilterSlaveData = (name, dataIndex, value, record) => {
+ return (commonUtils.isNotEmptyStr(record.sSlaveId) && record.sSlaveId.toString().toLowerCase().includes(value.toLowerCase()));
+ };
+ /** 控制选择控制表时,显示部件工序与成品工序 */
+ // eslint-disable-next-line no-unused-vars
+ handleFilterData = (name, dataIndex, value, record) => {
+ return true;
+ // 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;
+ }
+ };
+ /** 添加表格空行 */
+ handleTableAdd = async (name, flag) => {
+ /* 外置处理业务 */
+ const {
+ sModelsId, sModelsType, gdsformconst, slaveData, controlData, controlSelectedRowKeys, [`${name}Data`]: tableData, slaveSelectedRowKeys, slaveConfig,
+ } = this.props;
+ let tableDataRow = {};
+ if (name === 'control') {
+ 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);
+ });
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', 'sProductName');
+ 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 === '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;
+ }
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: [tableDataRow.sId] });
+ } 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) => {
+ const {
+ slaveSelectedRowKeys, slaveData, slaveConfig, sModelsId, masterData,
+ } = this.props;
+ if (name === 'control') {
+ const tableSelectedRowKeys = this.props[`${name}SelectedRowKeys`];
+ 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 {
+ return false;
+ }
+ }else if (name === 'slave') { /* 删除子表 */
+ 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 if(sModelsId ==='12710101117000994807090') { /* 从表删除 更新主表入仓数量 */
+ const slaveReturnData = this.props.onDataRowDel(name, true, slaveSelectedRowKeys);
+ if(commonUtils.isNotEmptyObject(slaveReturnData) && commonUtils.isNotEmptyArr(slaveReturnData.slaveData) && commonUtils.isNotEmptyObject(masterData) ) {
+ let dSumProductQty = 0;
+ slaveReturnData.slaveData.forEach((item, index) => {
+ dSumProductQty = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(dSumProductQty, 0),6) + commonUtils.convertFixNum(commonUtils.isNull(item.dSampleQty),6),6);
+ });
+ masterData.dInspectQty = commonUtils.convertFixNum(dSumProductQty * 10000, 6);
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ slaveReturnData.masterData= masterData;
+ }
+ 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}Config`]: tableConfig, masterData, masterConfig, controlSelectedRowKeys, sModelsId, token, app,
+ } = this.props;
+ const tableSelectedRowKeys = [];
+ if (name === 'productProcessInfo') {
+ 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 {
+ 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 === '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 });
+ }
+ };
+
+ 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;
+ };
+ /** 上传后执行函数 */
+ handleBeforeUpload = () => {
+ // const isLt10M = file.size / 1024 / 1024 < 10;
+ // if (!isLt10M) {
+ // message.error(commonFunc.showMessage(this.props.app.commonConst, 'picMax'));/* 图片大小需小于10MB! */
+ // }
+ };
+
+ handleTabChange = (key) => {
+ setTimeout(() => {
+ this.setState({
+ currentTab: key
+ })
+ }, 0);
+ }
+
+ 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,
+ });
+ };
+ handleSlaveInit = async (name) => {
+ const { app, masterData, [`${name}Data`]: slaveData } = this.props;
+ if (masterData.sName !== null && masterData.sName !== undefined) {
+ message.warn('该节点不能初始化!');
+ return;
+ }
+ // const comfiled = service.service_path.filter(item => (item.route ===
+ // app.currentPane.route)).length <= 0 ? {} :
+ // service.service_path.filter(item => (item.route ===
+ // app.currentPane.route))[0];
+ const comfiled = {
+ path: 'gdsconfigform',
+ pathTwo: 'Gdsconfigformmaster',
+ pathSlave: 'Gdsconfigformslave',
+ pathCustom: 'Customslave',
+ pathInit: 'GdsconfigformslaveByMaster',
+ pathSlaveSelect: 'gdsmodule',
+ pathSlaveSelectTwo: 'SelectFormData',
+ };
+ const url = `${commonConfig.server_host}${comfiled.path}/get${comfiled.pathInit
+ }?sParentId=${masterData.sId}&sTbName=${masterData.sTbName}&sType=${masterData.sType}`;
+ const dataReturn = (await commonServices.getService(this.props.app.token, url)).data;
+ if (dataReturn.code === 1) {
+ /* 数据查询成功 */
+ if (commonUtils.isNotEmptyArr(dataReturn.dataset.rows)) {
+ const tempData = dataReturn.dataset.rows;
+ const initData = [];
+ tempData.forEach((item) => {
+ item.handleType = 'add';
+ initData.push(item);
+ });
+ const newData = [...slaveData, ...initData];
+ this.props.onSaveState({ slaveData: newData, enabled: true });
+ message.success('初始化成功!');
+ } else {
+ message.warn('当前表格无需初始化!');
+ }
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ }
+ };
+ handleCopyRow = (name, toname) => {
+ this.props.onCopyRow(name, toname);
+ };
+ handleCopy2Custom = () => {
+ let toname = 'slave2';
+ for (let i = 0; i < 10; i++) {
+ const slaveConfigName = `slave${i}Config`;
+ const slaveConfig = this.props[slaveConfigName];
+ if (slaveConfig && commonUtils.isNotEmptyObject(slaveConfig)) {
+ if (slaveConfig.sTbName === 'gdsconfigformcustomslave') {
+ toname = `slave${i}`;
+ break;
+ }
+ }
+ }
+ this.props.onCopyRow('slave', toname);
+ };
+ /** 添加行 */
+ handleAddRow = (name, index) => {
+ this.props.onDataRowAdd(name, null, index);
+ };
+ /** 删除行 */
+ handleDelRow = (name) => {
+ const { [`${name}SelectedRowKeys`]: tableSelectedRowKeys } = this.props;
+ if (this.props.onDataRowDel(name, false, tableSelectedRowKeys)) {
+ message.success('删除成功!');
+ }
+ };
+
+ /* 字段双击弹出 */
+ handleFieldDoubleClick = (sValue, showConfig, tbName) => {
+ const { [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, [`${tbName}Data`]: tableData } = this.props;
+ if (commonUtils.isNotEmptyObject(showConfig) && showConfig.sName === 'sAssignField') {
+ let tableDataRow = {};
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ const tableFilterData = tableData.filter(item => tableSelectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(tableFilterData)) {
+ tableDataRow = tableFilterData[0];
+ }
+ }
+ const sAssignFieldColumn = [
+ {
+ sId: commonUtils.createSid(),
+ sParentId: tableDataRow.sId,
+ dataIndex: 'sNewName',
+ title: '现字段',
+ width: '220px',
+ editable: true,
+ bNotSort: true,
+ }, {
+ sId: commonUtils.createSid(),
+ sParentId: tableDataRow.sId,
+ dataIndex: 'sOldName',
+ title: '源字段',
+ width: '220px',
+ editable: true,
+ bNotSort: true,
+ },
+ ];
+ const sAssignFieldData = [];
+ if (commonUtils.isNotEmptyObject(tableDataRow) && commonUtils.isNotEmptyObject(sValue)) {
+ const selectedRowKeys = [];
+ const sAssignFieldDataTemp = sValue.split(',');
+ sAssignFieldDataTemp.forEach((index) => {
+ const aAssignFieldObj = {};
+ const splitData = index.split(':');
+ if (commonUtils.isNotEmptyArr(splitData)) {
+ aAssignFieldObj.sId = commonUtils.createSid();
+ aAssignFieldObj.sNewName = splitData[0];
+ aAssignFieldObj.sOldName = splitData[1];
+ sAssignFieldData.push(aAssignFieldObj);
+ }
+ selectedRowKeys[0] = sAssignFieldData[0].sId;
+ });
+ const { enabled } = this.props;
+ this.props.onSaveState({
+ sAssignFieldColumn,
+ visibleAssignmentField: true,
+ sAssignFieldData,
+ sAssignFieldName: tbName,
+ sAssignFieldRowId: tableDataRow.sId, /* 选中行的sId */
+ enabled,
+ });
+ } else {
+ this.props.onSaveState({
+ sAssignFieldColumn,
+ visibleAssignmentField: true,
+ sAssignFieldData: [],
+ sAssignFieldName: tbName,
+ sAssignFieldRowId: tableDataRow.sId, /* 选中行的sId */
+ });
+ }
+ }
+ };
+ /* 拿到赋值字段 */
+ handleGetsAssignField = (data, sFieldName) => {
+ if (sFieldName === 'sAssignField') {
+ const { sAssignFieldRowId, sAssignFieldName } = this.props; /* 双击弹出赋值窗体的行ID */
+ const { [`${sAssignFieldName}Data`]: tableData } = this.props;
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ const iIndex = tableData.findIndex(item => item.sId === sAssignFieldRowId);
+ const newData = {};
+ /* 将数组变成赋值字符串 */
+ let sAssignFieldStr = '';
+ const len = data.length;
+ data.forEach((item, index) => {
+ sAssignFieldStr += `${item.sNewName}:${item.sOldName}`;
+ if (index !== (len - 1)) {
+ sAssignFieldStr += ',';
+ }
+ });
+ newData.sAssignField = sAssignFieldStr;
+ newData.handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? 'update' : tableData[iIndex].handleType;
+ tableData[iIndex] = { ...tableData[iIndex], ...newData };
+ this.props.onSaveState({ [`${sAssignFieldName}Data`]: tableData });
+ }
+ }
+ }
+
+ 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) }, /* 是否显示 */
+ };
+ }
+ };
+
+ handleUploadChangeFile = async (info) => {
+ const { file } = info;
+ const {
+ masterData, sModelsId, app, token, sModelsType, slaveConfig, slaveData,
+ } = this.props;
+ if (file.response) {
+ if (file.response.code === 1) {
+ if (file.response.dataset.rows.length > 1) {
+ const addState = {};
+ for (let i = 0; i < file.response.dataset.rows.length; i++) {
+ const row = file.response.dataset.rows[i];
+ /* 数据查询成功 */
+ const errorInfo = row.nocanbeInsert;
+ if (commonUtils.isNotEmptyObject(errorInfo)) {
+ const importErrorData = errorInfo;
+ this.props.onSaveState({
+ showImportErrorVisible: true,
+ importData: importErrorData
+ });
+ return;
+ }
+
+ const tableName = ['', 0, 1, 2, 3, 4, 5, 6, 7, 8, 9].filter(item => {
+ const name = `slave${item}Config`;
+ const config = this.props[name] || {};
+ return config.sGrd === row.sGrd || config.sTableName === row.sTableName;
+ }).map(item => `slave${item}`)[0];
+
+ if (!tableName) continue;
+
+ const tableDelData = [];
+ const { [`${tableName}Data`]: tableData = [], [`${tableName}Config`]: tableConfig } = this.props;
+ /* 把之前存放的数据删除 */
+ addState[`${tableName}DelData`] = [];
+ tableData.forEach((item) => {
+ if (item.handleType !== 'add') {
+ item.handleType = 'del';
+ tableDelData.push(item);
+ }
+ });
+
+ const returnData = row.canbeInsert;
+ let iCount = 0;
+ let productIdDropDown;
+ if (productIdDropDown === undefined && commonUtils.isNotEmptyArr(returnData)) { /* 无论导入多少条数据 都只调用1次接口,获取产品下拉数据集 */
+ const iIndex = tableConfig.gdsconfigformslave.findIndex(item => item.sName === 'sProductName');
+ if (iIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, tableName, tableConfig.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 || item.sNId === tableDataRow.sProductId) && item.sProductStyle === tableDataRow.sProductStyle);
+ 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);
+ }
+ });
+
+ addState[`${tableName}Data`] = returnData;
+ addState[`${tableName}DelData`] = tableDelData;
+ }
+ this.props.onSaveState(addState);
+ } else {
+ /* 数据查询成功 */
+ const errorInfo = file.response.dataset.rows[0].nocanbeInsert;
+ if (commonUtils.isNotEmptyObject(errorInfo)) {
+ // message.error(errorInfo[0].sReason);
+ const importErrorData = errorInfo;
+ this.props.onSaveState({
+ showImportErrorVisible: true,
+ importData: importErrorData
+ });
+ 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 || item.sNId === tableDataRow.sProductId) && item.sProductStyle === tableDataRow.sProductStyle);
+ 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);
+ }
+ }
+ };
+
+ handleSetTabNumList = (tabNumList) => {
+ this.tabNumList = tabNumList;
+ }
+
+ /** 通用下载 */
+ handleDownload = (name, flag, tableSelectedRowKeys) => {
+ const {
+ [`${name}Data`]: tableData, sModelsId, app,
+ } = this.props;
+ if (tableSelectedRowKeys === undefined || tableSelectedRowKeys.length !== 1) {
+ message.warn(commonFunc.showMessage(app.commonConst, 'selectedRowKeysNo'));/* 请先选择一条数据 */
+ return;
+ }
+ const dataSelect = tableData.filter(item => item.sId === tableSelectedRowKeys[0]);
+ const { token } = this.props.app;
+ const { sPicturePath } = dataSelect[0];
+ const urlPrint = `${commonConfig.file_host}file/download?sModelsId=${sModelsId}&token=${token}&savePathStr=${sPicturePath}`;
+ window.open(urlPrint);
+ };
+
+
+ // ----------------------------数据修改回带wend ---------------------------- //
+
+ render() {
+ const {
+ pageLoading, visible, checkConditions, checkPersonData, app,
+ } = 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',
+ }];
+ 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');/* 审核人 */
+ return (
+
+
+
+
this.tabNumList}
+ onSetTabNumList={this.handleSetTabNumList}
+ onDataRowDownload={this.handleDownload}
+ onDelRow={this.handleTableDel}
+ />
+ {
+ visible ?
+ {BtnClose},
+ ,
+ ]}
+ >
+
+ {checkPerson}
+
+
+
+ { commonUtils.isNotEmptyObject(checkPersonData) ?
+ checkPersonData.map((item) => {
+ return (
+
+ {item.sUserName}
+
+ );
+ })
+ : ''
+ }
+
+
+
+
+ : ''
+ }
+
+
+
+ );
+ }
+}
+
+const BillComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData, masterConfig} = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form, masterConfig);
+ return obj;
+ },
+})((props) => {
+ const {
+ form,
+ onReturnForm,
+ AutoTableHeight,
+ onlySlave,
+ onlySlave0,
+ onlySlave1,
+ onlyslave2,
+ onlyslave3,
+ onlyslave4,
+ onlyslave5,
+ onlyslave6,
+ onlyslave7,
+ onlyslave8,
+ onlyslave9,
+ onlyslave10,
+ slaveData,
+ slave0Data,
+ slave1Data,
+ slave2Data,
+ slave3Data,
+ slave4Data,
+ slave5Data,
+ slave6Data,
+ slave7Data,
+ slave8Data,
+ slave9Data,
+ slave10Data,
+ slaveConfig,
+ slave0Config,
+ slave1Config,
+ slave2Config,
+ slave3Config,
+ slave4Config,
+ slave5Config,
+ slave6Config,
+ slave7Config,
+ slave8Config,
+ slave9Config,
+ slave10Config,
+ slaveSelectedRowKeys,
+ slave0SelectedRowKeys,
+ slave1SelectedRowKeys,
+ slave2SelectedRowKeys,
+ slave3SelectedRowKeys,
+ slave4SelectedRowKeys,
+ app,
+ slavePagination,
+ slave0Pagination,
+ slave1Pagination,
+ slave2Pagination,
+ slave3Pagination,
+ slave4Pagination,
+ slave5Pagination,
+ slave6Pagination,
+ slave7Pagination,
+ slave8Pagination,
+ slave9Pagination,
+ slave10Pagination,
+ slavePageSize,
+ slave0PageSize,
+ slave1PageSize,
+ slave2PageSize,
+ slave3PageSize,
+ slave4PageSize,
+ slave5PageSize,
+ slave6PageSize,
+ slave7PageSize,
+ slave8PageSize,
+ slave9PageSize,
+ slave10PageSize,
+ sModelsType,
+ sModelsId,
+ bDelegate,
+ } = props;
+ const masterConfig = props.onMergeMasterConfig();
+ const masterConfigOld = { ...masterConfig };
+ /* 回带表单 */
+ onReturnForm(form);
+ const autoHeight = `calc( ${AutoTableHeight} - 96px)`;
+ const isSmall = false;
+ let pageSize = commonConfig.pageSize;
+ if (props.slaveConfig && props.slaveConfig.iPageSize) {
+ pageSize = props.slaveConfig.iPageSize;
+ }
+
+ const { currentPane } = app;
+ let bFlow = currentPane?.bFlow; /* 是否需要展示审批流程信息 */
+ if(bDelegate) {
+ bFlow = false;
+ }
+
+ const bPagination = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.bPagination : false;
+ const bPagination0 = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.bPagination : false;
+ const bPagination1 = commonUtils.isNotEmptyObject(slave1Config) ? slave1Config.bPagination : false;
+ const bPagination2 = commonUtils.isNotEmptyObject(slave2Config) ? slave2Config.bPagination : false;
+ const bPagination3 = commonUtils.isNotEmptyObject(slave3Config) ? slave3Config.bPagination : false;
+ const bPagination4 = commonUtils.isNotEmptyObject(slave4Config) ? slave4Config.bPagination : false;
+ const bPagination5 = commonUtils.isNotEmptyObject(slave5Config) ? slave5Config.bPagination : false;
+ const bPagination6 = commonUtils.isNotEmptyObject(slave6Config) ? slave6Config.bPagination : false;
+ const bPagination7 = commonUtils.isNotEmptyObject(slave7Config) ? slave7Config.bPagination : false;
+ const bPagination8 = commonUtils.isNotEmptyObject(slave8Config) ? slave8Config.bPagination : false;
+ const bPagination9 = commonUtils.isNotEmptyObject(slave9Config) ? slave9Config.bPagination : false;
+ const bPagination10 = commonUtils.isNotEmptyObject(slave10Config) ? slave10Config.bPagination : false;
+
+ const pagination = !bPagination ? false : {
+ 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 pagination0 = !bPagination0 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave0PageSize) && slave0PageSize !== 0 ? slave0PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave0Data) ? 0 : slave0Data.length,
+ current: commonUtils.isEmptyObject(slave0Pagination) ? 1 : slave0Pagination.current,
+ ...slave0Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: false,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination1 = !bPagination1 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave1PageSize) && slave1PageSize !== 0 ? slave1PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave1Data) ? 0 : slave1Data.length,
+ current: commonUtils.isEmptyObject(slave1Pagination) ? 1 : slave1Pagination.current,
+ ...slave1Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination2 = !bPagination2 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave2PageSize) && slave2PageSize !== 0 ? slave2PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave2Data) ? 0 : slave2Data.length,
+ current: commonUtils.isEmptyObject(slave2Pagination) ? 1 : slave2Pagination.current,
+ ...slave2Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination3 = !bPagination3 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave3PageSize) && slave3PageSize !== 0 ? slave3PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave3Data) ? 0 : slave3Data.length,
+ current: commonUtils.isEmptyObject(slave3Pagination) ? 1 : slave3Pagination.current,
+ ...slave3Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination4 = !bPagination4 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave4PageSize) && slave4PageSize !== 0 ? slave4PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave4Data) ? 0 : slave4Data.length,
+ current: commonUtils.isEmptyObject(slave4Pagination) ? 1 : slave4Pagination.current,
+ ...slave4Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+
+ const pagination5 = !bPagination5 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave5PageSize) && slave5PageSize !== 0 ? slave5PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave5Data) ? 0 : slave5Data.length,
+ current: commonUtils.isEmptyObject(slave5Pagination) ? 1 : slave5Pagination.current,
+ ...slave5Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination6 = !bPagination6 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave6PageSize) && slave6PageSize !== 0 ? slave6PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave6Data) ? 0 : slave6Data.length,
+ current: commonUtils.isEmptyObject(slave6Pagination) ? 1 : slave6Pagination.current,
+ ...slave6Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination7 = !bPagination7 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave7PageSize) && slave7PageSize !== 0 ? slave7PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave7Data) ? 0 : slave7Data.length,
+ current: commonUtils.isEmptyObject(slave7Pagination) ? 1 : slave7Pagination.current,
+ ...slave7Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination8 = !bPagination8 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave8PageSize) && slave8PageSize !== 0 ? slave8PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave8Data) ? 0 : slave8Data.length,
+ current: commonUtils.isEmptyObject(slave8Pagination) ? 1 : slave8Pagination.current,
+ ...slave8Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination9 = !bPagination9 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave9PageSize) && slave9PageSize !== 0 ? slave9PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave9Data) ? 0 : slave9Data.length,
+ current: commonUtils.isEmptyObject(slave9Pagination) ? 1 : slave9Pagination.current,
+ ...slave9Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+ const pagination10 = !bPagination10 ? false : {
+ pageSize: commonUtils.isNotEmptyNumber(slave10PageSize) && slave10PageSize !== 0 ? slave10PageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slave10Data) ? 0 : slave10Data.length,
+ current: commonUtils.isEmptyObject(slave10Pagination) ? 1 : slave10Pagination.current,
+ ...slave10Pagination,
+ // showQuickJumper: true,
+ hideOnSinglePage: true,
+ size: isSmall ? 'small' : 'large',
+ pageSizeOptions: commonConfig.pageSizeOptions,
+ showSizeChanger: !isSmall,
+ showQuickJumper: !isSmall,
+ };
+
+ /* 表1-commonView显示区域 */
+ const ableConfigs = commonUtils.isNotEmptyObject(slaveConfig) ? slaveConfig.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+ /* 选中行 */
+ let showAll = true; /* 只显示表格 */
+ let bShowLeft = true; /* 表格显示在左侧 */
+ let iColValueView = 12;
+ let iColValueTable = 12;
+ 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];
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveRow = slaveData[0];
+ }
+ if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) {
+ const iIndexArea = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll = false;
+ }
+ if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) {
+ const iShowLeft = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft > -1) {
+ bShowLeft = true;
+ iColValueTable = slaveConfig.gdsconfigformslave[iShowLeft].iColValue;
+ } else if (iShowRight > -1) {
+ bShowLeft = false;
+ iColValueTable = slaveConfig.gdsconfigformslave[iShowRight].iColValue;
+ }
+ }
+ }
+ iColValueView = commonUtils.isNotEmptyNumber(iColValueTable) ? 24 - iColValueTable : 12;
+ const iShowOrder = bShowLeft ? 1 : 100;
+
+
+ /* 表2-commonView显示区域 */
+ const ableConfigs0 = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+ let showAll0 = true; /* 只显示表格 */
+ let bShowLeft0 = true; /* 表格显示在左侧 */
+ let iColValueView0 = 12;
+ let iColValueTable0 = 12;
+ let slave0Row = {};
+ if (commonUtils.isNotEmptyArr(slave0SelectedRowKeys)) {
+ const iIndex = slave0Data.findIndex(item => slave0SelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ slave0Row = slave0Data[iIndex];
+ } else {
+ slave0Row = slave0Data[0];
+ }
+ } else if (commonUtils.isNotEmptyArr(slave0Data)) {
+ slave0Row = slave0Data[0];
+ }
+ if (commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyArr(slave0Config.gdsconfigformslave)) {
+ const iIndexArea = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll0 = false;
+ }
+ if (commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyArr(slave0Config.gdsconfigformslave)) {
+ const iShowLeft0 = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight0 = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft0 > -1) {
+ bShowLeft0 = true;
+ iColValueTable0 = slave0Config.gdsconfigformslave[iShowLeft0].iColValue;
+ } else if (iShowRight0 > -1) {
+ bShowLeft0 = false;
+ iColValueTable0 = slave0Config.gdsconfigformslave[iShowRight0].iColValue;
+ }
+ }
+ }
+ iColValueView0 = commonUtils.isNotEmptyNumber(iColValueTable0) ? 24 - iColValueTable0 : 12;
+ const iShowOrder0 = bShowLeft0 ? 1 : 100;
+
+
+ /* 表3-commonView显示区域 */
+ const ableConfigs1 = commonUtils.isNotEmptyObject(slave1Config) ? slave1Config.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+ let showAll1 = true; /* 只显示表格 */
+ let bShowLeft1 = true; /* 表格显示在左侧 */
+ let iColValueView1 = 12;
+ let iColValueTable1 = 12;
+ let slave1Row = {};
+ if (commonUtils.isNotEmptyArr(slave1SelectedRowKeys)) {
+ const iIndex = slave1Data.findIndex(item => slave1SelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ slave1Row = slave1Data[iIndex];
+ } else {
+ slave1Row = slave1Data[0];
+ }
+ } else if (commonUtils.isNotEmptyArr(slave1Data)) {
+ slave1Row = slave1Data[0];
+ }
+ if (commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyArr(slave1Config.gdsconfigformslave)) {
+ const iIndexArea = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll1 = false;
+ }
+ if (commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyArr(slave1Config.gdsconfigformslave)) {
+ const iShowLeft1 = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight1 = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft1 > -1) {
+ bShowLeft1 = true;
+ iColValueTable1 = slave1Config.gdsconfigformslave[iShowLeft1].iColValue;
+ } else if (iShowRight1 > -1) {
+ bShowLeft1 = false;
+ iColValueTable1 = slave1Config.gdsconfigformslave[iShowRight1].iColValue;
+ }
+ }
+ }
+ iColValueView1 = commonUtils.isNotEmptyNumber(iColValueTable1) ? 24 - iColValueTable1 : 12;
+ const iShowOrder1 = bShowLeft1 ? 1 : 100;
+
+
+ /* 表4-commonView显示区域 */
+ const ableConfigs2 = commonUtils.isNotEmptyObject(slave2Config) ? slave2Config.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+ let showAll2 = true; /* 只显示表格 */
+ let bShowLeft2 = true; /* 表格显示在左侧 */
+ let iColValueView2 = 12;
+ let iColValueTable2 = 12;
+ let slave2Row = {};
+ if (commonUtils.isNotEmptyArr(slave2SelectedRowKeys)) {
+ const iIndex = slave2Data.findIndex(item => slave2SelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ slave2Row = slave2Data[iIndex];
+ } else {
+ slave2Row = slave2Data[0];
+ }
+ } else if (commonUtils.isNotEmptyArr(slave2Data)) {
+ slave2Row = slave2Data[0];
+ }
+ if (commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyArr(slave2Config.gdsconfigformslave)) {
+ const iIndexArea = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll2 = false;
+ }
+ if (commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyArr(slave2Config.gdsconfigformslave)) {
+ const iShowLeft2 = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight2 = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft2 > -1) {
+ bShowLeft2 = true;
+ iColValueTable2 = slave2Config.gdsconfigformslave[iShowLeft2].iColValue;
+ } else if (iShowRight2 > -1) {
+ bShowLeft2 = false;
+ iColValueTable2 = slave2Config.gdsconfigformslave[iShowRight2].iColValue;
+ }
+ }
+ }
+ iColValueView2 = commonUtils.isNotEmptyNumber(iColValueTable2) ? 24 - iColValueTable2 : 12;
+ if (slave2Config && slave2Config.sChinese === '上批对比') {
+ iColValueView2 = iColValueView1
+ }
+ const iShowOrder2 = bShowLeft2 ? 1 : 100;
+
+ /* 表5-commonView显示区域 */
+ const ableConfigs3 = commonUtils.isNotEmptyObject(slave3Config) ? slave3Config.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+ let showAll3 = true; /* 只显示表格 */
+ let bShowLeft3 = true; /* 表格显示在左侧 */
+ let iColValueView3 = 12;
+ let iColValueTable3 = 12;
+ let slave3Row = {};
+ if (commonUtils.isNotEmptyArr(slave3SelectedRowKeys)) {
+ const iIndex = slave3Data.findIndex(item => slave3SelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ slave3Row = slave3Data[iIndex];
+ } else {
+ slave3Row = slave3Data[0];
+ }
+ } else if (commonUtils.isNotEmptyArr(slave3Data)) {
+ slave3Row = slave3Data[0];
+ }
+ if (commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyArr(slave3Config.gdsconfigformslave)) {
+ const iIndexArea = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll3 = false;
+ }
+ if (commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyArr(slave3Config.gdsconfigformslave)) {
+ const iShowLeft3 = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight3 = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft3 > -1) {
+ bShowLeft3 = true;
+ iColValueTable3 = slave3Config.gdsconfigformslave[iShowLeft3].iColValue;
+ } else if (iShowRight3 > -1) {
+ bShowLeft3 = false;
+ iColValueTable3 = slave3Config.gdsconfigformslave[iShowRight3].iColValue;
+ }
+ }
+ }
+ iColValueView3 = commonUtils.isNotEmptyNumber(iColValueTable3) ? 24 - iColValueTable3 : 12;
+ const iShowOrder3 = bShowLeft3 ? 1 : 100;
+
+ /* 表6-commonView显示区域 */
+ const ableConfigs4 = commonUtils.isNotEmptyObject(slave4Config) ? slave4Config.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+ let showAll4 = true; /* 只显示表格 */
+ let bShowLeft4 = true; /* 表格显示在左侧 */
+ let iColValueView4 = 12;
+ let iColValueTable4 = 12;
+ let slave4Row = {};
+ if (commonUtils.isNotEmptyArr(slave4SelectedRowKeys)) {
+ const iIndex = slave4Data.findIndex(item => slave4SelectedRowKeys.includes(item.sId));
+ if (iIndex > -1) {
+ slave4Row = slave4Data[iIndex];
+ } else {
+ slave4Row = slave4Data[0];
+ }
+ } else if (commonUtils.isNotEmptyArr(slave4Data)) {
+ slave4Row = slave4Data[0];
+ }
+ if (commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyArr(slave4Config.gdsconfigformslave)) {
+ const iIndexArea = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName !== '' && item.sControlName.includes('bShow'));
+ if (iIndexArea > -1) {
+ showAll4 = false;
+ }
+ if (commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyArr(slave4Config.gdsconfigformslave)) {
+ const iShowLeft4 = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowLeft' && item.bVisible);
+ const iShowRight4 = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bShowRight' && item.bVisible);
+ if (iShowLeft4 > -1) {
+ bShowLeft4 = true;
+ iColValueTable4 = slave4Config.gdsconfigformslave[iShowLeft4].iColValue;
+ } else if (iShowRight4 > -1) {
+ bShowLeft4 = false;
+ iColValueTable4 = slave4Config.gdsconfigformslave[iShowRight4].iColValue;
+ }
+ }
+ }
+ iColValueView4 = commonUtils.isNotEmptyNumber(iColValueTable4) ? 24 - iColValueTable4 : 12;
+ const iShowOrder4 = bShowLeft4 ? 1 : 100;
+
+
+ const listType = 'commonMultiList' ;
+ const bCheck = commonUtils.isNotEmptyObject(slaveConfig) && slaveConfig.sTbName === 'sysbillcheckresult' ? true : false;
+
+ 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),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, bShowTreeAddChild:bShowTreeAddChild, pagination, onChange: props.onTitleChange.bind(this, 'slave'),
+ },
+ noVlistTable: bPagination,
+ onDelRow: props.onDelRow,
+ data: bSingleTree && commonUtils.isNotEmptyArr(slaveData) ? commonUtils.genTreeByArr(slaveData, 'sId', 'sFatherSlaveId') : slaveData,
+ onTreeAddChild: props.onDataRowAddChild,
+ customConfig: props.customConfig,
+ };
+
+ const bCheck0 = commonUtils.isNotEmptyObject(slave0Config) && slave0Config.sTbName === 'sysbillcheckresult' ? true : false;
+ const slave0TableProps = {
+ ...commonBusiness.getTableTypes('slave0', props),
+ tableBelone: (sModelsType === listType) || bCheck ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination : pagination0, onChange: props.onTitleChange.bind(this, 'slave0'),
+ },
+ };
+ const bCheck1 = commonUtils.isNotEmptyObject(slave1Config) && slave1Config.sTbName === 'sysbillcheckresult' ? true : false;
+ const slave1TableProps = {
+ ...commonBusiness.getTableTypes('slave1', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination1, onChange: props.onTitleChange.bind(this, 'slave1'),
+ },
+ };
+ const bCheck2 = commonUtils.isNotEmptyObject(slave2Config) && slave2Config.sTbName === 'sysbillcheckresult' ? true : false;
+ const slave2TableProps = {
+ ...commonBusiness.getTableTypes('slave2', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination2, onChange: props.onTitleChange.bind(this, 'slave2'),
+ },
+ };
+ const slave3TableProps = {
+ ...commonBusiness.getTableTypes('slave3', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination3, onChange: props.onTitleChange.bind(this, 'slave3'),
+ },
+ };
+ const slave4TableProps = {
+ ...commonBusiness.getTableTypes('slave4', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination4, onChange: props.onTitleChange.bind(this, 'slave4'),
+ },
+ };
+ const slave5TableProps = {
+ ...commonBusiness.getTableTypes('slave5', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination5, onChange: props.onTitleChange.bind(this, 'slave5'),
+ },
+ };
+
+ const slave6TableProps = {
+ ...commonBusiness.getTableTypes('slave6', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination6, onChange: props.onTitleChange.bind(this, 'slave6'),
+ },
+ };
+
+ const slave7TableProps = {
+ ...commonBusiness.getTableTypes('slave7', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination7, onChange: props.onTitleChange.bind(this, 'slave7'),
+ },
+ };
+
+ const slave8TableProps = {
+ ...commonBusiness.getTableTypes('slave8', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination8, onChange: props.onTitleChange.bind(this, 'slave8'),
+ },
+ };
+
+ const slave9TableProps = {
+ ...commonBusiness.getTableTypes('slave9', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination9, onChange: props.onTitleChange.bind(this, 'slave9'),
+ },
+ };
+
+ const slave10TableProps = {
+ ...commonBusiness.getTableTypes('slave10', props),
+ tableBelone: sModelsType === listType ? 'list' : '', /* 新需求:做个1带N的只可查看不可编辑的表格,模块类型名:commonMultiList */
+ tableProps: {
+ setAdd, setCopy, setCopyAll, setDelete, pagination: pagination10, onChange: props.onTitleChange.bind(this, 'slave10'),
+ },
+ };
+
+
+ /* 从表view */
+ const slaveViewProps = {
+ ...props,
+ viewConfigs: ableConfigs,
+ tableConfig: slaveConfig,
+ iColValueView,
+ viewRow: slaveRow,
+ tableName: 'slave',
+ };
+
+ /* 第二张表 */
+ const slave0ViewProps = {
+ ...props,
+ viewConfigs: ableConfigs0,
+ tableConfig: slave0Config,
+ iColValueView:iColValueView0,
+ viewRow: slave0Row,
+ tableName: 'slave0',
+ };
+ /* */
+ const slave1ViewProps = {
+ ...props,
+ viewConfigs: ableConfigs1,
+ tableConfig: slave1Config,
+ iColValueView:iColValueView1,
+ viewRow: slave1Row,
+ tableName: 'slave1',
+ };
+ /* 从表view */
+ const slave2ViewProps = {
+ ...props,
+ viewConfigs: ableConfigs2,
+ tableConfig: slave2Config,
+ iColValueView:iColValueView2,
+ viewRow: slave2Row,
+ tableName: 'slave2',
+ };
+
+ /* pack表view */
+ const slave3ViewProps = {
+ ...props,
+ viewConfigs: ableConfigs3,
+ tableConfig: slave3Config,
+ iColValueView:iColValueView3,
+ viewRow: slave3Row,
+ tableName: 'slave3',
+ };
+
+ const slave4ViewProps = {
+ ...props,
+ viewConfigs: ableConfigs4,
+ tableConfig: slave4Config,
+ iColValueView:iColValueView4,
+ viewRow: slave4Row,
+ tableName: 'slave4',
+ };
+
+ /* 获取AssignmentField中的props */
+ const assignmentFieldProps = {
+ visibleAssignmentField: props.visibleAssignmentField, /* 是否展示 */
+ sAssignFieldData: props.sAssignFieldData, /* 数据 */
+ sAssignFieldColumn: props.sAssignFieldColumn, /* 表头 */
+ selectedRowKeys: props.selectedRowKeys, /* 选中 */
+ sAssignFieldSelectedRowKeys: props.selectedRowKeys, /* 选中 */
+ onSaveState: props.onSaveState, /* 保存数据方法 */
+ onDataRowAdd: props.handleAddRow.bind(this, 'sAssignField'),
+ onDataRowDel: props.handleDelRow.bind(this, 'sAssignField'),
+ onDataRowCopy: props.handleCopyRow.bind(this, 'sAssignField'),
+ // onRowClick: props.handleRowClick.bind(this, 'sAssignField'),
+ config: props.config,
+ app: props.app,
+ enabled: props.enabled,
+ onDataChange: props.onChange,
+ onGetsAssignField: props.onGetsAssignField,
+ handleFieldDoubleClick: props.handleFieldDoubleClick,
+ };
+
+ // const slaveInfo = commonFunc.showMessage(app.commonConst, 'MainContent'); /* 从表信息 */
+ // const materialsInfo = commonFunc.showMessage(app.commonConst, 'zMaterials'); /* 材料表 */
+ // const checkInfo = commonFunc.showMessage(app.commonConst, 'zCheck'); /* 审核表 */
+ // const slaveInfo0 = commonFunc.showMessage(app.commonConst, 'zSlaveInfo0'); /* 工序表 */
+ // const slaveInfo1 = commonFunc.showMessage(app.commonConst, 'zSlaveInfo1'); /* 表二 */
+ // const slaveInfo2 = commonFunc.showMessage(app.commonConst, 'zSlaveInfo2'); /* 表三 */
+ let slaveInfo = '';
+ let materialsInfo = '';
+ let checkInfo = '';
+ let slaveInfo0 = '';
+ let slaveInfo1 = '';
+ let slaveInfo2 = '';
+ let slaveInfo3 = '';
+ let slaveInfo4 = '';
+ let slaveInfo5 = '';
+ let slaveInfo6 = '';
+ let slaveInfo7 = '';
+ let slaveInfo8 = '';
+
+ let defaultTab = '';
+
+ if (commonUtils.isNotEmptyObject(masterConfig) && commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave)) {
+ slaveInfo = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'MainContent')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'MainContent')[0].showName : commonFunc.showMessage(app.commonConst, 'MainContent'); /* 从表信息 */
+ materialsInfo = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zMaterials')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zMaterials')[0].showName : commonFunc.showMessage(app.commonConst, 'zMaterials'); /* 表一 */
+ checkInfo = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zCheck')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zCheck')[0].showName : commonFunc.showMessage(app.commonConst, 'zCheck'); /* 表二 */
+ slaveInfo0 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo0')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo0')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo0'); /* 表三 */
+ slaveInfo1 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo1')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo1')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo1'); /* 表四 */
+ slaveInfo2 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo2')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo2')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo2'); /* 表五 */
+ slaveInfo3 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo3')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo3')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo3'); /* 表六 */
+ slaveInfo4 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo4')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo4')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo4'); /* 表七 */
+ slaveInfo5 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo5')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo5')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo5'); /* 表八 */
+ slaveInfo6 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo6')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo6')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo6'); /* 表九 */
+ slaveInfo7 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo7')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo7')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo7'); /* 表十 */
+ slaveInfo8 = commonUtils.isNotEmptyArr(masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo8')) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName === 'zSlaveInfo8')[0].showName : commonFunc.showMessage(app.commonConst, 'zSlaveInfo8'); /* 表十一 */
+
+ // 获取默认展开tab
+ const defaultTabConfig = masterConfig.gdsconfigformslave.find(item =>
+ [
+ 'MainContent',
+ 'zMaterials',
+ 'zCheck',
+ ...new Array(10).fill('').map((_, index) => `zSlaveInfo${index}`)
+ ].includes(item.sControlName) &&
+ item.sDefault
+ )
+ if (defaultTabConfig) {
+ if (defaultTabConfig.sControlName === 'MainContent') {
+ defaultTab = '10';
+ } else if (defaultTabConfig.sControlName === 'zMaterials') {
+ defaultTab = '20';
+ } else if (defaultTabConfig.sControlName === 'zCheck') {
+ defaultTab = '30';
+ } else {
+ try {
+ defaultTab = `${Number(defaultTabConfig.sControlName.split('zSlaveInfo')[1]) * 10 + 40}`;
+ } catch (error) { }
+ }
+ }
+ if (defaultTab && props.currentTab === '') {
+ props.onTabChange(defaultTab);
+ }
+ }
+
+ let productProcessInfoType = {};
+ let productProcessInfoConfig = {};
+ let processCardSearchResult = commonFunc.showMessage(app.commonConst, 'processCardSearchResult');/* 复制从工艺卡查询结果 */
+ if (commonUtils.isNotEmptyObject(props.productProcessInfoChooseData)) {
+ const productProcessInfoCopyFromKey = props.productProcessInfoCopyFromKey;
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sControlName === productProcessInfoCopyFromKey);
+ if (iIndex > -1) {
+ productProcessInfoConfig = 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: props.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 isSysSetting = false;
+ if (props && props.app && props.app.currentPane && props.app.currentPane.title && props.app.currentPane && props.app.currentPane.title === "功能模块界面设置单据") {
+ isSysSetting = true;
+ }
+ const templateProps = props.formData.filter(item => item.sGrd === 'importTemplate')[0];
+ 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();
+ const BtnimportData = commonFunc.showMessage(app.commonConst, 'importData');/* 导入数据 */
+ const ImportData = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.sControlName.includes('ImportData') && item.bVisible) : '';/* 后台是否配置导入 */
+
+
+ /* 显示导入报错信息 */
+ 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: {
+ pagination:null, AutoTableHeight: 400,
+ },
+ // data: bSingleTree && commonUtils.isNotEmptyArr(slaveData) ? commonUtils.genTreeByArr(slaveData, 'sId', 'sFatherSlaveId') : slaveData,
+ onDelRow: props.onDelRow,
+ onKeyDown: props.onKeyDown,
+ onContextMenu: props.onContextMenu,
+ masterData: props.masterData, // 为通用弹窗提供主表数据(孟总需求:产品新增需要带上客户信息)
+ tableBelone: 'list',
+ };
+ }
+ const sProcessParams = commonFunc.showMessage(app.commonConst, 'sProcessParams');/* 选择工艺参数标题 */
+
+ const sProcessParamsNew = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, 'sProcessParamsNew')) ?
+ commonFunc.showMessage(app.commonConst, 'sProcessParamsNew') : '选择新的工艺参数';/* 选择工艺参数标题 */
+ /* 新方式的工艺参数 */
+ const sParamProps = {
+ ...commonBusiness.getTableTypes('sParam', props),
+ tableProps: {
+ rowKey: 'sId',
+ // pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ },
+ bRowClick: true,
+ enabled: false,
+ };
+
+ const sParamNewProps = {
+ ...commonBusiness.getTableTypes('sParamNew', props),
+ tableProps: {
+ rowKey: 'sId',
+ // pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ },
+ bRowClick: true,
+ };
+ //
+ // const menu = (
+ //
+ // );
+ /* 取 masterConfig中有多少个Tab页签配置 */
+ const masterShowConfig = commonUtils.isNotEmptyObject(masterConfigOld) ? masterConfigOld.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '') : [];
+ const diliverConfigTypeArr = []; /* 有Tab的配置 */
+ masterShowConfig.forEach((child) => {
+ if (child.sControlName.indexOf('_') > -1) {
+ const tableType = child.sControlName.split('_')[1];
+ const isIndex = diliverConfigTypeArr.findIndex(item => item === tableType);
+ if (isIndex === -1) {
+ diliverConfigTypeArr.push(tableType);
+ }
+ }
+ });
+
+ /* 主表页签+表格页签排序规则,表格页签以10位一个间隔,10,20,30,40,50,60,如果想进行排序 则页签顺序介入其间即可 */
+ /* 找到各个主表页签Tab所处的区间 */
+ let diliverConfigTypeArr1 = [];
+ let diliverConfigTypeArr2= [];
+ let diliverConfigTypeArr3 = [];
+ let diliverConfigTypeArr4 = [];
+ let diliverConfigTypeArr5 = [];
+ let diliverConfigTypeArr6 = [];
+ for (const item of diliverConfigTypeArr) {
+ let numStr = item.replace(/[^\d]/g, '').trim();
+ let num = Number(numStr);
+ if(!commonUtils.isEmpty(num)) {
+ if(num < 10) { /* 0- 10 */
+ diliverConfigTypeArr1.push(item);
+ } else if(num < 20) { /* 10- 20 */
+ diliverConfigTypeArr2.push(item);
+ } else if(num < 30) { /* 20- 30 */
+ diliverConfigTypeArr3.push(item);
+ } else if(num < 40) { /* 30- 40 */
+ diliverConfigTypeArr4.push(item);
+ } else if(num < 50) { /* 40- 50 */
+ diliverConfigTypeArr5.push(item);
+ } else if(num < 60) { /* 50- 60 */
+ diliverConfigTypeArr6.push(item);
+ }
+ }
+ }
+
+ const tabNumList = [
+ ...diliverConfigTypeArr1,
+ onlySlave ? '10' : '',
+ ...diliverConfigTypeArr2,
+ onlySlave0 ? '20' : '',
+ ...diliverConfigTypeArr3,
+ onlySlave1 ? '30' : '',
+ ...diliverConfigTypeArr4,
+ onlyslave2 ? '40' : '',
+ ...diliverConfigTypeArr5,
+ onlyslave3 ? '50' : '',
+ ...diliverConfigTypeArr6,
+ onlyslave4 ? '60' : '',
+ onlyslave5 ? '70' : '',
+ onlyslave6 ? '80' : '',
+ onlyslave7 ? '90' : '',
+ onlyslave8 ? '100' : '',
+ onlyslave9 ? '110' : '',
+ onlyslave10 ? '150' : '',
+ ].filter(item => item);
+ const { enabled } = props.masterData || {};
+ if (enabled) { // 只有修改状态才会根据数据改变tab页
+ const tabNumListOld = props.onGetTabNumList(tabNumList);
+ if (tabNumListOld && JSON.stringify(tabNumListOld) !== JSON.stringify(tabNumList)) {
+ const addData = tabNumList.find(item => tabNumListOld.indexOf(item) === -1);
+ props.onSetTabNumList(tabNumList);
+ if (addData) {
+ const activeKey = addData.replace(/[^\d]/g, '').trim();
+ props.onTabChange(activeKey);
+ } else if (!tabNumList.some(item => props.currentTab === item.replace(/[^\d]/g, '').trim())) {
+ const activeKey = tabNumList[0].replace(/[^\d]/g, '').trim();
+ props.onTabChange(activeKey);
+ }
+ }
+ }
+
+ if (!defaultTab && props.currentTab === '' && commonUtils.isNotEmptyArr(tabNumList)) {
+ const activeKey = tabNumList[0].replace(/[^\d]/g, '').trim();
+ props.onSetTabNumList(tabNumList);
+ props.onTabChange(activeKey);
+ }
+
+ // 组件展示是否单独Tab页
+ let bControlSeparateTab = false;
+ let bControlSeparateTab0 = false;
+ let bControlSeparateTab1 = false;
+ let bControlSeparateTab2 = false;
+ let bControlSeparateTab3 = false;
+ let bControlSeparateTab4 = false;
+ let bControlSeparateTab5 = false;
+ let bControlSeparateTab6 = false;
+ let bControlSeparateTab7 = false;
+ let bControlSeparateTab8 = false;
+ let bControlSeparateTab9 = false;
+ let bControlSeparateTab10 = false;
+
+ let separateTabName, separateTabName0, separateTabName1, separateTabName2, separateTabName3, separateTabName4, separateTabName5, separateTabName6, separateTabName7, separateTabName8, separateTabName9, separateTabName10;
+
+ if (commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyArr(slaveConfig.gdsconfigformslave)) {
+ const iIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex !== -1) {
+ const separateTabConfig = slaveConfig.gdsconfigformslave[iIndex];
+ bControlSeparateTab = true;
+ separateTabName = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyArr(slave0Config.gdsconfigformslave)) {
+ const iIndex = slave0Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex !== -1) {
+ const separateTabConfig = slave0Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab0 = true;
+ separateTabName0 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyArr(slave1Config.gdsconfigformslave)) {
+ const iIndex = slave1Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex !== -1) {
+ const separateTabConfig = slave1Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab1 = true;
+ separateTabName1 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyArr(slave2Config.gdsconfigformslave)) {
+ const iIndex = slave2Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave2Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab2 = true;
+ separateTabName2 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyArr(slave3Config.gdsconfigformslave)) {
+ const iIndex = slave3Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave3Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab3 = true;
+ separateTabName3 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyArr(slave4Config.gdsconfigformslave)) {
+ const iIndex = slave4Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave4Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab4 = true;
+ separateTabName4 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave5Config) && commonUtils.isNotEmptyArr(slave5Config.gdsconfigformslave)) {
+ const iIndex = slave5Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave5Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab5 = true;
+ separateTabName5 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave6Config) && commonUtils.isNotEmptyArr(slave6Config.gdsconfigformslave)) {
+ const iIndex = slave6Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave6Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab6 = true;
+ separateTabName6 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave7Config) && commonUtils.isNotEmptyArr(slave7Config.gdsconfigformslave)) {
+ const iIndex = slave7Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave7Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab7 = true;
+ separateTabName7 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave8Config) && commonUtils.isNotEmptyArr(slave8Config.gdsconfigformslave)) {
+ const iIndex = slave8Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave8Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab8 = true;
+ separateTabName8 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave9Config) && commonUtils.isNotEmptyArr(slave9Config.gdsconfigformslave)) {
+ const iIndex = slave9Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave9Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab9 = true;
+ separateTabName9 = separateTabConfig.showName;
+ }
+ }
+ if (commonUtils.isNotEmptyObject(slave10Config) && commonUtils.isNotEmptyArr(slave10Config.gdsconfigformslave)) {
+ const iIndex = slave10Config.gdsconfigformslave.findIndex(item => item.sControlName === 'bControlSeparateTab');
+ if (iIndex!== -1) {
+ const separateTabConfig = slave10Config.gdsconfigformslave[iIndex];
+ bControlSeparateTab10 = true;
+ separateTabName10 = separateTabConfig.showName;
+ }
+ }
+
+ const flexRowStyle = bFlow ? {display:'flex', flexDirection:'row'} : {};
+ const flexContentStyle = bFlow ? { width:'75%'} : {};
+ // 设置初始宽度
+ const [containerWidth, setContainerWidth] = useState(410);
+ const containerRef = useRef(null);
+ const dividerRef = useRef(null);
+ const [isDragging, setIsDragging] = useState(false);
+ const [startX, setStartX] = useState(0);
+ const [initialWidth, setInitialWidth] = useState(0);
+ const handleMouseDown = (e) => {
+ setIsDragging(true);
+ setStartX(e.clientX);
+ if (containerRef.current) {
+ setInitialWidth(containerRef.current.offsetWidth);
+ }
+ };
+ const handleMouseMove = (e) => {
+ if (!isDragging) return;
+ // 当前鼠标移动位置
+ const currentX = e.clientX;
+ // 移动距离
+ const diffX = currentX - startX;
+ const newWidth = initialWidth + diffX;
+ // 限制宽度在一定范围内最小宽度为200
+ if (newWidth < 200) {
+ setContainerWidth(200);
+ return;
+ }
+ setContainerWidth(newWidth);
+ };
+ const handleMouseUp = () => {
+ setIsDragging(false);
+ document.removeEventListener('mousemove', handleMouseMove);
+ document.removeEventListener('mouseup', handleMouseUp);
+ };
+
+ useEffect(() => {
+ document.addEventListener('mousemove', handleMouseMove);
+ document.addEventListener('mouseup', handleMouseUp);
+ return () => {
+ document.removeEventListener('mousemove', handleMouseMove);
+ document.removeEventListener('mouseup', handleMouseUp);
+ };
+ }, [isDragging]);
+ return (
+
+ );
+});
+
+// 工艺参数弹窗
+const ModalComponent = props => {
+ if (!props.sParamsModalVisible && !props.sParamsNewModalVisible) return '';
+
+ const sProcessParams = props.sParamsModalVisible ? "原工艺参数" : "工艺参数新";
+ const bVisible = props.sParamsModalVisible || props.sParamsNewModalVisible;
+ return bVisible ? (
+ {
+ props.onSaveState({
+ sParamsModalVisible: false,
+ sParamsNewModalVisible: false
+ });
+ }}
+ footer={
+ //
+ //
+ //
+ //
+ //
+ //
+ //
+
+ //
+ //
+ //
+
+ //
+
+
+ }
+ >
+ {[""].map(() => {
+ const commonViewDragableProps = {
+ ...props,
+ hideTabsNav: true,
+ comparedTableId: props.processTableId,
+ sParamData: [
+ {
+ sParamType: "sWorkOrder",
+ sParamName: "工单参数"
+ }
+ ],
+ tableName: "slave"
+ };
+
+ // 如果是工艺参数新
+ if (props.sParamsNewModalVisible) {
+ const { slaveData = [] } = props;
+ const slaveDataNew = lodash.cloneDeep(slaveData);
+ slaveDataNew.forEach(item => {
+ item.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ item.sParams = item.sParamsNew;
+ item.sWorkOrderParams = item.sWorkOrderParamsNew;
+ });
+ commonViewDragableProps.slaveData = slaveDataNew;
+ commonViewDragableProps.onCostomSaveData = (tableData) => {
+ const slaveDataTemp = lodash.cloneDeep(slaveData);
+ slaveDataTemp.forEach(item => {
+ const rowData = tableData.find(i => i.sId === item.sId);
+ item.handleType = commonUtils.isEmpty(item.handleType) ? 'update' : item.handleType;
+ item.sParamsNew = rowData.sParams;
+ item.sWorkOrderParamsNew = rowData.sWorkOrderParams;
+ });
+ props.onSaveState({ slaveData: slaveDataTemp });
+ }
+ }
+ return ;
+ })}
+
+ ) : (
+ ""
+ );
+};
+
+export default CommonBase(CommonNewSales(CommonNewBill));
diff --git a/src/components/Common/CommonNewBillEvent.js b/src/components/Common/CommonNewBillEvent.js
new file mode 100644
index 0000000..eda7432
--- /dev/null
+++ b/src/components/Common/CommonNewBillEvent.js
@@ -0,0 +1,5745 @@
+/* eslint-disable */
+import React, { Component } from 'react';
+import { Modal, 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;
+
+export default (ChildComponent) => {
+ return class extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ initSId: ''
+ }
+ // 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.form = {}; /* 表单对象 */
+ this.copyName = '';
+ const { sModelsId, sModelsType } = props;
+ if (sModelsType && 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,
+ } = nextProps;
+ const { masterConfig: masterConfigOld, app } = nextProps;
+ if (commonUtils.isEmptyObject(masterConfigOld) && formData.length > 0) {
+ const sId = currentId !== undefined ? currentId : '';
+ const masterConfig = formData.filter(item => !item.bGrd)[0];
+
+ const sReasonTitle = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, 'sReason'))?
+ commonFunc.showMessage(app.commonConst, 'sReason') : '报错原因';/* 导入报错原因 */
+
+ /* 导入错误配置 */
+ 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);
+ }
+
+ const config = {};
+ let addState = {};
+ let addOtherState = {};
+ let onlySlave = false;
+ let onlySlave0 = false;
+ let onlySlave1 = false;
+ let onlyslave2 = false;
+ let onlyslave3 = false;
+ let onlyslave4 = false;
+ let slaveColumn = [];
+ let slave0Column = [];
+ let slave1Column = [];
+ let slave2Column = [];
+ let slave3Column = [];
+ let slave4Column = [];
+ const slaveConfig = formData.length > 1 ? formData[1] : {};
+ if (!commonUtils.isEmptyObject(slaveConfig) && slaveConfig.bGrdVisible && slaveConfig.sGrd !== 'importTemplate') {
+ config.slaveConfig = slaveConfig;
+ slaveColumn = commonFunc.getHeaderConfig(slaveConfig);
+ onlySlave = true;
+ const slavePageSize = commonUtils.isNotEmptyObject(slaveConfig) && commonUtils.isNotEmptyNumber(slaveConfig.iPageSize) && slaveConfig.iPageSize !== 0 ?
+ slaveConfig.iPageSize : commonConfig.pageSize;
+ addOtherState.slavePageSize = slavePageSize;
+ }
+ const slave0Config = formData.length > 2 ? formData[2] : {};
+ if (!commonUtils.isEmptyObject(slave0Config) && slave0Config.bGrdVisible && slave0Config.sGrd !== 'importTemplate') {
+ config.slave0Config = slave0Config;
+ slave0Column = commonFunc.getHeaderConfig(slave0Config);
+ onlySlave0 = true;
+ const slave0PageSize = commonUtils.isNotEmptyObject(slave0Config) && commonUtils.isNotEmptyNumber(slave0Config.iPageSize) && slave0Config.iPageSize !== 0 ?
+ slave0Config.iPageSize : commonConfig.pageSize;
+ addOtherState.slave0PageSize = slave0PageSize;
+
+ }
+ const slave1Config = formData.length > 3 ? formData[3] : {};
+ if (!commonUtils.isEmptyObject(slave1Config) && slave1Config.bGrdVisible && slave1Config.sGrd !== 'importTemplate') {
+ config.slave1Config = slave1Config;
+ slave1Column = commonFunc.getHeaderConfig(slave1Config);
+ onlySlave1 = true;
+ const slave1PageSize = commonUtils.isNotEmptyObject(slave1Config) && commonUtils.isNotEmptyNumber(slave1Config.iPageSize) && slave1Config.iPageSize !== 0 ?
+ slave1Config.iPageSize : commonConfig.pageSize;
+ addOtherState.slave1PageSize = slave1PageSize;
+ }
+ const slave2Config = formData.length > 4 ? formData[4] : {};
+ if (!commonUtils.isEmptyObject(slave2Config) && slave2Config.bGrdVisible && slave2Config.sGrd !== 'importTemplate') {
+ config.slave2Config = slave2Config;
+ slave2Column = commonFunc.getHeaderConfig(slave2Config);
+ onlyslave2 = true;
+ const slave2PageSize = commonUtils.isNotEmptyObject(slave2Config) && commonUtils.isNotEmptyNumber(slave2Config.iPageSize) && slave2Config.iPageSize !== 0 ?
+ slave2Config.iPageSize : commonConfig.pageSize;
+ addOtherState.slave2PageSize = slave2PageSize;
+ }
+ const slave3Config = formData.length > 5 ? formData[5] : {};
+ if (!commonUtils.isEmptyObject(slave3Config) && slave3Config.bGrdVisible && slave3Config.sGrd !== 'importTemplate') {
+ config.slave3Config = slave3Config;
+ slave3Column = commonFunc.getHeaderConfig(slave3Config);
+ onlyslave3 = true;
+ const slave3PageSize = commonUtils.isNotEmptyObject(slave3Config) && commonUtils.isNotEmptyNumber(slave3Config.iPageSize) && slave3Config.iPageSize !== 0 ?
+ slave3Config.iPageSize : commonConfig.pageSize;
+ addOtherState.slave3PageSize = slave3PageSize;
+ }
+ const slave4Config = formData.length > 6 ? formData[6] : {};
+ if (!commonUtils.isEmptyObject(slave4Config) && slave4Config.bGrdVisible && slave4Config.sGrd !== 'importTemplate') {
+ config.slave4Config = slave4Config;
+ slave4Column = commonFunc.getHeaderConfig(slave4Config);
+ onlyslave4 = true;
+ const slave4PageSize = commonUtils.isNotEmptyObject(slave4Config) && commonUtils.isNotEmptyNumber(slave4Config.iPageSize) && slave4Config.iPageSize !== 0 ?
+ slave4Config.iPageSize : commonConfig.pageSize;
+ addOtherState.slave4PageSize = slave4PageSize;
+ }
+
+ if (formData.length > 7) {
+ formData.forEach((item, index) => {
+ if (index > 6 && item.sGrd !== 'importTemplate') {
+ const num = index - 2;
+ addOtherState[`slave${num}Config`] = item;
+ config[`slave${num}Config`] = item;
+ addOtherState[`slave${num}Column`] = commonFunc.getHeaderConfig(item);
+ addOtherState[`onlyslave${num}`]= true;
+ const pageSize = commonUtils.isNotEmptyObject(item) && commonUtils.isNotEmptyNumber(item.iPageSize) && item.iPageSize !== 0 ?
+ item.iPageSize : commonConfig.pageSize;
+ addOtherState[`slave${num}PageSize`] = pageSize;
+ }
+ });
+ }
+
+ /* commonNewBill 可以一带N表 */
+ const tableConfigArr = formData.filter(item => item.bGrd && item.bGrdVisible && item.sGrd !== 'importTemplate');
+ const slaveOtherConfigArr = [];
+ if(commonUtils.isNotEmptyArr(tableConfigArr)) {
+ tableConfigArr.forEach((item, iIndex) => {
+ if(iIndex > 5) {
+ const iSlaveTag = iIndex - 1;
+ item.slaveNameTag = iSlaveTag;
+ slaveOtherConfigArr.push(item);
+ const slaveOtherConfigName = 'slave' + iSlaveTag + 'Config';
+ let slaveOtherColumnName = 'slave' + iSlaveTag + 'Column';
+ const onlyslaveTag= 'onlyslave' + iSlaveTag;
+ const slavePageSizeTag = 'slave' + iSlaveTag + 'PageSize';
+ const slaveOtherColumn = commonFunc.getHeaderConfig(item);
+ addOtherState[slaveOtherConfigName] = item;
+ addOtherState[slaveOtherColumnName] = slaveOtherColumn;
+ addOtherState[onlyslaveTag] = true;
+ const slavePageSize = commonUtils.isNotEmptyObject(item) && commonUtils.isNotEmptyNumber(item.iPageSize) && item.iPageSize !== 0 ?
+ item.iPageSize : commonConfig.pageSize;
+ addOtherState[slavePageSizeTag] = slavePageSize;
+ }
+ });
+ addOtherState.slaveOtherConfigArr = slaveOtherConfigArr;
+ }
+
+
+ config.masterConfig = masterConfig;
+
+ if (sId === '') {
+ addState = await this.handleAdd(config, nextProps.app.currentPane.copyTo, true);
+ // 如果配置了bEmptyAddLine, 默认不添加空数据
+ formData.forEach((item, index) => {
+ if (index > 0) {
+ const tempConfig = formData[index];
+ const i = index === 1 ? '' : index - 2;
+ if (commonUtils.isNotEmptyObject(tempConfig) && tempConfig.bGrdVisible) {
+ const bEmptyAddLine = tempConfig.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine');
+ if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
+ if (this.initHandleAddNoValue.includes(i)) {
+ addState[`slave${i}Data`] = [];
+ }
+ }
+ }
+ }
+ });
+ } else {
+ this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave5Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave6Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave7Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave8Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave9Config : null,
+ commonUtils.isNotEmptyObject(addOtherState)? addOtherState.slave10Config : null);
+ }
+ this.props.onSaveState({
+ masterConfig,
+ sId,
+ pageLoading: false,
+ ...addState,
+ slaveConfig,
+ slaveColumn,
+ slave0Config,
+ slave0Column,
+ slave1Config,
+ slave1Column,
+ slave2Config,
+ slave2Column,
+ slave3Config,
+ slave3Column,
+ slave4Config,
+ slave4Column,
+ onlySlave,
+ onlySlave0,
+ onlySlave1,
+ onlyslave2,
+ onlyslave3,
+ onlyslave4,
+ importConfig,
+ importColumn,
+ ...addOtherState
+ });
+ }
+ }
+
+ shouldComponentUpdate(nextProps) {
+ const { slaveColumn, masterConfig } = nextProps;
+ return commonUtils.isNotEmptyArr(slaveColumn) || commonUtils.isNotEmptyObject(masterConfig);
+ }
+
+ /** 获取应收账款 */
+ 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 [];
+ }
+ }
+ }
+ };
+
+ 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, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, bEditClick, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config) => {
+ const { currentId, app } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : '';
+ const { sModelsId, masterData, sModelsType, slaveSelectedRowKeys } = this.props;
+ await this.props.handleGetDataOne({ name: 'master', configData: masterConfig, condition: { sId, pageSize: '', pageNum: '' }, bEditClick });
+ let addStateSlave = {};
+ if (!commonUtils.isEmptyObject(slaveConfig)) {
+ addStateSlave = await this.props.handleGetDataSet({
+ name: 'slave', configData: slaveConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ // if (sModelsType === 'cost/cosInsert' && commonUtils.isNotEmptyObject(addStateSlave) && commonUtils.isNotEmptyArr(addStateSlave.slaveData)) {
+ // let slaveDelData = [];
+ // addStateSlave.slaveData.forEach((item) => {
+ // item.handleType = 'del';
+ // slaveDelData.push(item);
+ // });
+ // addStateSlave.slaveData = []
+ // let sDepartNameDropDown;
+ // const allTableData = {};
+ // const masterIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sDepartName');
+ // if (masterIndex > -1) {
+ // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[masterIndex]);
+ // sDepartNameDropDown = sqlDropDownData.dropDownData;
+ // sDepartNameDropDown.forEach((item) => {
+ // const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData);
+ // tableDataRowAdd.handleType = 'add';
+ // tableDataRowAdd.sId = commonUtils.createSid();
+ // tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ // tableDataRowAdd.key = tableDataRowAdd.sId;
+ // tableDataRowAdd.bDefault = false;
+ // tableDataRowAdd.iOrder = 0;
+ // tableDataRowAdd.sDepartName = item.sName;
+ // addStateSlave.slaveData.push(tableDataRowAdd);
+ // });
+ // }
+ if (app) {
+ const { currentPane } = app;
+ if (currentPane) {
+ const temp = addStateSlave.slaveData.find(item =>
+ item.sName === app.currentPane.sName
+ )
+ if (temp && bEditClick!=='update') {
+ addStateSlave.slaveSelectedRowKeys = [ temp.sId ];
+ this.setState({
+ initSId: temp.sId
+ })
+ } else if (temp && bEditClick === 'update') {
+ /* 修改后 选中行不要消失 */
+ if(commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ addStateSlave.slaveSelectedRowKeys = slaveSelectedRowKeys;
+ }
+
+ }
+ }
+ }
+ }
+ let addStateSlave1 = {};
+ if (!commonUtils.isEmptyObject(slave1Config)) {
+ addStateSlave1 = await this.props.handleGetDataSet({
+ name: 'slave1', configData: slave1Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+
+ let addStateSlave0 = {};
+ if (!commonUtils.isEmptyObject(slave0Config)) {
+ addStateSlave0 = await this.props.handleGetDataSet({
+ name: 'slave0', configData: slave0Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ /* 如果配置了控件Form 切数据为0 则初始化一条空数据 */
+ const ableConfigs0 = commonUtils.isNotEmptyObject(slave0Config) ? slave0Config.gdsconfigformslave.filter(item => item.sName !== '' && item.bControl && item.sControlName.indexOf('Btn') === -1) : [];
+
+ let slave0NewData = [];
+ if(commonUtils.isNotEmptyArr(ableConfigs0) && commonUtils.isEmptyArr(addStateSlave0.slave0Data)) {
+
+ const allTableData = {};
+ allTableData.masterData = masterData;
+ const newSid = commonUtils.createSid();
+ const tableDataRowAdd = commonFunc.getDefaultData(slave0Config, allTableData, { newSid });
+ tableDataRowAdd.handleType = 'add';
+ tableDataRowAdd.sId = newSid;
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 1;
+ slave0NewData.push(tableDataRowAdd);
+ addStateSlave0.slave0Data = slave0NewData;
+ }
+ // if (sModelsType === 'cost/cosInsert' && commonUtils.isNotEmptyObject(addStateSlave0) && commonUtils.isNotEmptyArr(addStateSlave0.slave0Data)) {
+ // let slave0DelData = []
+ // addStateSlave0.slave0Data.forEach((item) => {
+ // item.handleType = 'del';
+ // slave0DelData.push(item);
+ // });
+ // addStateSlave0.slave0Data = [];
+ //
+ // let sWorkCenterNameDropDown;
+ // const allTableData = {};
+ // const master1Index = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWorkCenterName');
+ // if (master1Index > -1) {
+ // const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[master1Index]);
+ // sWorkCenterNameDropDown = sqlDropDownData.dropDownData;
+ // console.log(sWorkCenterNameDropDown);
+ // sWorkCenterNameDropDown.forEach((item) => {
+ // const tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData);
+ // tableDataRowAdd.handleType = 'add';
+ // tableDataRowAdd.sId = commonUtils.createSid();
+ // tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ // tableDataRowAdd.key = tableDataRowAdd.sId;
+ // tableDataRowAdd.bDefault = false;
+ // tableDataRowAdd.iOrder = 1;
+ // tableDataRowAdd.sDepartName = item.sName;
+ // item.sDepartName = item.sName;
+ // addStateSlave0.slave0Data.push(item);
+ // })
+ // }
+ // }
+ }
+
+ let addStateSlave2 = {};
+ if (!commonUtils.isEmptyObject(slave2Config)) {
+ addStateSlave2 = await this.props.handleGetDataSet({
+ name: 'slave2', configData: slave2Config, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ let addStateSlave3 = {};
+ if (!commonUtils.isEmptyObject(slave3Config)) {
+ addStateSlave3 = await this.props.handleGetDataSet({
+ name: 'slave3', configData: slave3Config, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ let addStateSlave4 = {};
+ if (!commonUtils.isEmptyObject(slave4Config)) {
+ addStateSlave4 = await this.props.handleGetDataSet({
+ name: 'slave4', configData: slave4Config, condition: { sSqlCondition: { sParentId: sId } },
+ });
+ }
+ let addStateSlave5 = {};
+ if (!commonUtils.isEmptyObject(slave5Config)) {
+ addStateSlave5 = await this.props.handleGetDataSet({
+ name: 'slave5', configData: slave5Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ let addStateSlave6 = {};
+ if (!commonUtils.isEmptyObject(slave6Config)) {
+ addStateSlave6 = await this.props.handleGetDataSet({
+ name: 'slave6', configData: slave6Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ let addStateSlave7 = {};
+ if (!commonUtils.isEmptyObject(slave7Config)) {
+ addStateSlave7 = await this.props.handleGetDataSet({
+ name: 'slave7', configData: slave7Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ let addStateSlave8 = {};
+ if (!commonUtils.isEmptyObject(slave8Config)) {
+ addStateSlave8 = await this.props.handleGetDataSet({
+ name: 'slave8', configData: slave8Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ let addStateSlave9 = {};
+ if (!commonUtils.isEmptyObject(slave9Config)) {
+ addStateSlave9 = await this.props.handleGetDataSet({
+ name: 'slave9', configData: slave9Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ let addStateSlave10 = {};
+ if (!commonUtils.isEmptyObject(slave10Config)) {
+ addStateSlave10 = await this.props.handleGetDataSet({
+ name: 'slave10', configData: slave10Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ });
+ }
+ this.props.onSaveState({
+ pageLoading: false, ...addStateSlave, ...addStateSlave0, ...addStateSlave1, ...addStateSlave2, ...addStateSlave3, ...addStateSlave4,
+ ...addStateSlave5, ...addStateSlave6, ...addStateSlave7, ...addStateSlave8, ...addStateSlave9, ...addStateSlave10,
+ });
+
+ };
+ /* 获取表数据 */
+ handleGetMemoData = async (slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config) => {
+ const { currentId } = this.props; /* 当前页签数据 */
+ const sId = currentId !== undefined ? currentId : ''; /* 数据Id */
+ const addStateSlave = slaveConfig ? await this.props.handleGetDataSet({
+ name: 'slave', configData: slaveConfig, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }) : '';
+ const addStateSlave0 = slave0Config ? await this.props.handleGetDataSet({
+ name: 'slave0', configData: slave0Config, condition: { sSqlCondition: { sParentId: sId } },
+ }) : '';
+ const addStateSlave1 = slave1Config ? await this.props.handleGetDataSet({
+ name: 'slave1', configData: slave1Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }) : '';
+ const addStateslave2 = slave2Config ? await this.props.handleGetDataSet({
+ name: 'slave2', configData: slave2Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }) : '';
+ const addStateslave3 = slave3Config ? await this.props.handleGetDataSet({
+ name: 'slave3', configData: slave3Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }) : '';
+ const addStateslave4 = slave4Config ? await this.props.handleGetDataSet({
+ name: 'slave4', configData: slave4Config, condition: { sSqlCondition: { sParentId: sId } }, isWait: true,
+ }) : '';
+ // addStateProcess.processData = this.sortData(addStateControl.controlData, addStateProcess.processData);
+ this.props.onSaveState({
+ pageLoading: false,
+ ...addStateSlave,
+ ...addStateSlave0,
+ ...addStateSlave1,
+ ...addStateslave2,
+ ...addStateslave3,
+ ...addStateslave4,
+
+ });
+ };
+ /* 获取单张表数据 */
+ 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 } },
+ });
+ }
+ };
+
+ initHandleAddNoValue = [];
+
+ /** 点击新增按钮 */
+ handleAdd = async (config, copyTo, isWait) => {
+ /* 外置处理业务 */
+ const {
+ sModelsId, sModelsType, token, app,
+ } = 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过来的,则要获取关联的客户信息 */
+ if (this.props.app.currentPane.newRecordRelation !== undefined) {
+ const addStata = this.props.app.currentPane.newRecordRelation;
+ if (commonUtils.isNotEmptyObject(addStata) && commonUtils.isNotEmptyObject(addStata.sCustomerId)) {
+ masterData.sCustomerId = addStata.sCustomerId;
+ masterData.sCustomerNo = addStata.sCustomerNo;
+ masterData.sCustomerName = addStata.sCustomerName;
+ /* newRecord新增产品,客户不可修改 */
+ const ssCustomerNameIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sCustomerName');
+ if (ssCustomerNameIndex > -1) {
+ masterConfig.gdsconfigformslave[ssCustomerNameIndex].iTag = 1;
+ }
+ }
+ }
+ let slaveData = [];
+ let slave1Data = [];
+ let slave0Data = [];
+ let slave2Data = [];
+ let slave3Data = [];
+ let slave4Data = [];
+ const addstate = {};
+ // const slaveTotal = [];
+ // const tableDataTotal = {};
+ if (commonUtils.isNotEmptyObject(copyTo)) {
+ if (copyTo.formRoute === '/indexPage/commonListLeft') {
+ masterData = { ...masterData, ...copyTo.masterData };
+ } else {
+ 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) };
+ masterData.tGetPayDate = commonBusiness.getGeyPayDate(masterData);
+
+ if (sModelsType === 'semigoodsStock/matchbill') {
+ const sConfigformId = commonUtils.isEmpty(copyTo.config[0]) ? '' : copyTo.config[0].sParentId;
+ const sControlName = copyTo.name;
+ const sSqlCondition = { sProductId: copyTo.slaveData[0].sProductId, sId: copyTo.masterData.sId };
+ const condition = { sConfigformId, sControlName, sSqlCondition };
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfo/?sModelsId=${sModelsId}`;
+ 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)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo) };
+ }
+ if(salveAssignField) {
+ if (commonUtils.isNotEmptyArr(returnData.slave)) {
+ returnData.slave.forEach((slaveItem) => {
+ newCopyTo.slave = slaveItem;
+ const newSid = commonUtils.createSid();
+ let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo, { newSid }); // 取默认值
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo) };
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, slaveItem, newCopyTo) }; // 取赋值字段
+ slaveRow.handleType = 'add';
+ slaveRow.sId = newSid;
+ slaveRow.sParentId = masterData.sId;
+ slaveData.push(slaveRow);
+ });
+ }
+ }
+
+ if(slave0AssignField) {
+ 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(slave1AssignField) {
+ 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(slave2AssignField) {
+ 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(slave3AssignField) {
+ 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(slave4AssignField) {
+ 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 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}.master`.toLowerCase());
+ const copyToMasterConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.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 masterAssignField = commonUtils.isNotEmptyArr(copyToMasterConfig) ? copyToMasterConfig[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.TmpInfoBySql) && masterAssignField) {
+ masterData = {...masterData, ...commonFunc.getAssignFieldValue(masterAssignField, returnData.TmpInfoBySql[0], newCopyTo)};
+ }
+ 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 { /* 走copyTo数据源 */
+ const returnData = {
+ masterData : copyTo.masterData,
+ slave : commonUtils.isNotEmptyArr(copyTo.slaveData) ? copyTo.slaveData : [],
+ slave0 : commonUtils.isNotEmptyArr(copyTo.slave0Data) ? copyTo.slave0Data : [],
+ slave1 : commonUtils.isNotEmptyArr(copyTo.slave1Data) ? copyTo.slave1Data : [],
+ slave2 : commonUtils.isNotEmptyArr(copyTo.slave2Data) ? copyTo.slave2Data : [],
+ slave3 : commonUtils.isNotEmptyArr(copyTo.slave3Data) ? copyTo.slave3Data : [],
+ slave4 : commonUtils.isNotEmptyArr(copyTo.slave4Data) ? copyTo.slave4Data : [],
+ };
+ const copyToMasterDetailConfig = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}`.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}.slave3`.toLowerCase());
+ const copyToSlava4Config = copyTo.config.filter(item => item.sControlName.toLowerCase() === `${copyTo.name}.slave4`.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)) {
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(masterDetailAssignField, returnData.master[0], newCopyTo) };
+ }
+ if(salveAssignField) {
+ if (commonUtils.isNotEmptyArr(returnData.slave)) {
+ returnData.slave.forEach((slaveItem) => {
+ newCopyTo.slave = slaveItem;
+ const newSid = commonUtils.createSid();
+ let slaveRow = commonFunc.getDefaultData(config.slaveConfig, newCopyTo, { newSid }); // 取默认值
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveDetailAssignField, copyTo.masterData, newCopyTo) };
+ slaveRow = { ...slaveRow, ...commonFunc.getAssignFieldValue(salveAssignField, 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;
+ }
+ }
+ }
+ slaveRow = commonBusiness.getCalculateAllMoney(app, models, sFieldName, masterData, slaveRow);
+ }
+ slaveRow.handleType = 'add';
+ slaveRow.sId = newSid;
+ slaveRow.sParentId = masterData.sId;
+ slaveData.push(slaveRow);
+ });
+ }
+ }
+
+ if(slave0AssignField) {
+ 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(slave1AssignField) {
+ 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(slave2AssignField) {
+ 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(slave3AssignField) {
+ 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(slave4AssignField) {
+ 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);
+ });
+ }
+ }
+
+ }
+ }
+ }
+ // /* 剔除订单到收款单新增空行 */
+ let bUpload = false;
+ /* 图片文件不要新增空行 */
+ if(commonUtils.isNotEmptyObject(configNew.slaveConfig)) {
+ const filterData = configNew.slaveConfig.gdsconfigformslave.filter(item => item.sControlName.includes('BtnUpload') && item.bVisible);
+ if(commonUtils.isNotEmptyArr(filterData) && filterData.length > 0) {
+ bUpload = true;
+ }
+ }
+ if (slaveData.length === 0 && !bUpload && commonUtils.isNotEmptyObject(configNew.slaveConfig) && this.props.sModelsType !== 'cashier/receipt' && this.props.sModelsType !== 'cashier/payment') {
+ this.initHandleAddNoValue = [...new Set([...this.initHandleAddNoValue, ''])];
+ 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.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 1;
+ slaveData.push(tableDataRowAdd);
+ }
+ if(commonUtils.isNotEmptyObject(configNew)) {
+ for (const key of Object.keys(configNew)) {
+ if (key.includes('Config') && !key.includes('onGet') && !key.includes('report')) {
+ const tablename = key.replace('Config', '').trim();
+ let tableData = [];
+ if(tablename === 'slave0' && commonUtils.isEmptyArr(slave0Data)) {
+ this.initHandleAddNoValue = [...new Set([...this.initHandleAddNoValue, 0])];
+ const allTableData = {};
+ allTableData.master = masterData;
+ allTableData.slave = slaveData;
+ const newSid = commonUtils.createSid();
+ const tableDataRowAdd = {};
+ tableDataRowAdd.handleType = 'add';
+ tableDataRowAdd.sId = newSid;
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 1;
+ tableData.push(tableDataRowAdd);
+ addstate[`${tablename}Data`] = tableData;
+ }
+
+ }
+ }
+ }
+
+ if(commonUtils.isNotEmptyObject(copyTo) && copyTo.masterData) {
+ /* 重新塞入copyTo.masterData */
+ copyTo.masterData = masterData;
+ }
+
+ if(commonUtils.isNotEmptyObject(copyTo) && copyTo.masterData) {
+ /* 重新塞入copyTo.masterData */
+ copyTo.masterData = masterData;
+ }
+
+ const { slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config } = this.props;
+ if (commonUtils.isNotEmptyObject(slaveConfig) && slaveConfig.bGrdVisible) {
+ const bEmptyAddLine = slaveConfig.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine');
+ if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
+ slaveData = [];
+ }
+ }
+
+ if (commonUtils.isNotEmptyObject(slave0Config) && slave0Config.bGrdVisible) {
+ const bEmptyAddLine = slave0Config.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine');
+ if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
+ slave0Data = [];
+ }
+ }
+
+ if (commonUtils.isNotEmptyObject(slave1Config) && slave1Config.bGrdVisible) {
+ const bEmptyAddLine = slave1Config.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine');
+ if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
+ slave1Data = [];
+ }
+ }
+
+ if (commonUtils.isNotEmptyObject(slave2Config) && slave2Config.bGrdVisible) {
+ const bEmptyAddLine = slave2Config.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine');
+ if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
+ slave2Data = [];
+ }
+ }
+
+ if (commonUtils.isNotEmptyObject(slave3Config) && slave3Config.bGrdVisible) {
+ const bEmptyAddLine = slave3Config.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine');
+ if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
+ slave3Data = [];
+ }
+ }
+
+ if (commonUtils.isNotEmptyObject(slave4Config) && slave4Config.bGrdVisible) {
+ const bEmptyAddLine = slave4Config.gdsconfigformslave.find(item => item.sControlName === 'bEmptyAddLine');
+ if (commonUtils.isNotEmptyObject(bEmptyAddLine) && bEmptyAddLine.bVisible) {
+ slave4Data = [];
+ }
+ }
+
+
+ new Array(6).fill('').forEach((_, index) => {
+ const num = index + 5;
+ const config = this.props[`slave${num}Config`];
+ if (commonUtils.isNotEmptyArr(config)) {
+ addstate[`slave${num}Data`] = [];
+ }
+ });
+
+ const { slavePagination = {} } = this.props;
+ const slavePaginationNew = {
+ ...slavePagination,
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: 999,
+ };
+ masterData.enabled = true;
+
+ const state = {
+ masterData,
+ slaveData,
+ // slavePagination: slavePaginationNew,
+ slaveTotal: [],
+ slaveSelectedRowKeys: [],
+ slave1SelectedRowKeys: [],
+ searchUpDownData: {},
+ enabled: true,
+ slave0Data,
+ slave1Data,
+ slave2Data,
+ slave3Data,
+ slave4Data,
+ processSelectedRowKeys: [],
+ controlSelectedRowKeys: [],
+ slave0SelectedRowKeys: [],
+ ...addstate,
+ };
+ state.sUseInfo = '';
+ if (isWait) {
+ return state;
+ } else {
+ this.props.onSaveState(state);
+ return true;
+ }
+ };
+ /** 点击修改按钮操作 */
+ handleEdit = async () => {
+ const {
+ masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, currentId, app, masterData, dispatch,
+ } = this.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, '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, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, 'update');
+ this.props.onSaveState({ enabled: true, 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 (masterData.bInvalid) {
+ message.warning(gdsformconst.filter(item => (item.sName === 'sToVoid'))[0].showName);
+ return '';
+ }
+ /** 数据审核 */
+ bResult = await this.dataAudit(flag);
+ return bResult;
+ };
+
+ /** 数据审核 */
+ dataAudit = async (flag, tmpCheck, isWait) => {
+ message.destroy();
+ /* 待用数据声明 */
+ const {
+ sModelsId, masterData, app, masterConfig, slaveConfig, slave2Config, slave1Config, token, sModelsType, slave4Config, slave0Config, slave3Config, 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 === 'sales/salesOrder' || sModelsType === 'manufacture/workOrder') {
+ for (const item of slaveData) {
+ if (commonUtils.isNotEmptyStr(item.sProductInfo)) {
+ clearFlag = true;
+ break;
+ }
+ }
+ }
+ /* 数据审核 */
+ const url = `${commonConfig.server_host}business/doExamine?sModelsId=${sModelsId}`;
+ const returnData = (await commonServices.postValueService(app.token, value, url)).data;
+ if (isWait) {
+ return returnData;
+ } else {
+ /* 接收返回值 */
+ await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
+ const check = commonFunc.showMessage(app.commonConst, 'BtnExamine');/* 审核 */
+ const BtnCancelExamine = commonFunc.showMessage(app.commonConst, 'BtnCancelExamine');/* 销审 */
+ if ((sModelsType === 'sales/salesOrder' || sModelsType === 'manufacture/workOrder3') && !commonUtils.isEmpty(slave3Config)) {
+ await this.handleGetMemoData(slave4Config, slave0Config, slave3Config);
+ } else if (sModelsType === 'purchase/purchaseOrder') {
+ await this.handleGetOneMemoData('orderDetail', orderDetailConfig);
+ }
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ if (returnData.code === 1) { /* 成功 */
+ this.props.onSaveState({
+ loading: false,
+ });
+ if (flag === 1) {
+ /* 审核 */
+ if (clearFlag && (sModelsType === 'sales/salesOrder' || sModelsType === 'manufacture/workOrder')) {
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductId', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductNo', []);
+ commonUtils.setStoreDropDownData(sModelsId, 'master', 'sProductName', []);
+ }
+ const { outData } = returnData.dataset.rows[0].dataSet;
+ 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];
+ 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,
+ });
+ } 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);
+ }
+ }
+ }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,
+ slave1Config,
+ billnosetting,
+ app,
+ // eslint-disable-next-line no-unused-vars
+ sModelsType,
+ // eslint-disable-next-line no-unused-vars
+ slave0Config,
+ // eslint-disable-next-line no-unused-vars
+ slave2Config,
+ // eslint-disable-next-line no-unused-vars
+ slave3Config,
+ // eslint-disable-next-line no-unused-vars
+ slave4Config,
+ slave5Config,
+ slave6Config,
+ slave7Config,
+ slave8Config,
+ slave9Config,
+ slave10Config,
+ 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 (commonUtils.isNotEmptyObject(copyTo)) {
+ const sIdArray = [];
+ if(commonUtils.isNotEmptyArr(copyTo.slaveData)) {
+ const { slaveData } = copyTo;
+ 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,防止浏览器刷新时重新又变成新增。
+ 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 } });
+
+ /* 新记录时,关闭后能自动带值 */
+ const callBackRecord = this.props.app.currentPane.newRecordMethod;
+ if (callBackRecord !== undefined) {
+ const sId = masterData.sId === undefined ? masterData.sid : masterData.sId;/* sId */
+ /* 回调 传[新增的数据sId] */
+ if (this.props.app.currentPane.newRecordMethod !== undefined) {
+ this.props.app.currentPane.newRecordMethod(sId);
+ }
+ }
+
+ if (billnosetting.bAutoCheck) {
+ await this.handleAudit(1);
+ } else {
+ await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, null, slave5Config, slave6Config, slave7Config, slave8Config, slave9Config, slave10Config);
+ 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,
+ slaveDelData,
+ app,
+ sModelsType,
+ slave0Config,
+ slaveColumn,
+ slave0Data,
+ slave0Column,
+ slave0DelData,
+ slave1Config,
+ slave1Column,
+ slave1Data,
+ slave1DelData,
+ slave2Config,
+ slave2Column,
+ slave2Data,
+ slave2DelData,
+ slave3Config,
+ slave3Column,
+ slave3Data,
+ slave3DelData,
+ slave4Config,
+ slave4Column,
+ slave4Data,
+ slave4DelData,
+ } = this.props;
+ let { masterData } = this.props;
+ // if (commonUtils.isEmptyArr(slaveData) && !sModelsType.includes('sales/salesInvoice') && !sModelsType.includes('purchase/purchaseInvoice') && sModelsType !== 'cashier/financialTransfer' && sModelsType !== 'cashier/financialAdjustment'
+ // && !sModelsType.includes('cashier/receipt') && !sModelsType.includes('cashier/payment') && !sModelsType.includes('purchase/purchaseEnquiry') || !commonBusiness.validateTable(slave0Config, materialsData, this.props)) {
+ // message.error(commonFunc.showMessage(app.commonConst, 'slaveNotNull')); // 从表不能为空!
+ // this.props.onSaveState({
+ // loading: false,
+ // });
+ // return;
+ // }
+ if (!commonBusiness.validateMaster(masterConfig, masterData, this.props) || !commonBusiness.validateTable(slaveConfig, slaveData, this.props) || !commonBusiness.validateTable(slave1Config, slave1Data, this.props) ||
+ (!commonBusiness.validateTable(slave0Config, slave0Data, this.props)) || !commonBusiness.validateTable(slave2Config, slave2Data, this.props) ||
+ !commonBusiness.validateTable(slave3Config, slave3Data, this.props) || !commonBusiness.validateTable(slave4Config, slave4Data, this.props)) {
+ this.props.onSaveState({
+ loading: false,
+ });
+ return;
+ }
+
+ /* 根据配置校验 表格内容是否为空 */
+ if(commonUtils.isNotEmptyObject(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();
+ const tableConfigName = key;
+ const tableDataName = tablename +'Data';
+ const tableConfig = this.props[tableConfigName];
+ const tableData = this.props[tableDataName];
+ if(tableConfig && tableConfig.bNotCanEmpty){
+ if(commonUtils.isEmptyArr(tableData) ){
+ message.error(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) {
+ 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)) {
+ 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') {
+ const 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;
+ for (const item of slaveData) {
+ if (item.handleType !== 'del') {
+ if (commonUtils.isNotEmptyNumber(item.dTotalMoney)) {
+ dslaveTotalMoney += item.dTotalMoney;
+ }
+ }
+ }
+ 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;
+ }
+ }
+ const configNameList = Object.keys(this.props)
+ .filter(
+ item =>
+ (item && item.startsWith("slave") && item.endsWith("Config"))
+ )
+ .map(item => item.replace("Config", ""));
+
+ const data = [];
+ data.push(commonBusiness.mergeData('master', masterConfig.sTbName, [masterData]));
+ if (slaveConfig && commonUtils.isNotEmptyArr(slaveColumn)) {
+ data.push(commonBusiness.mergeData('slave', slaveConfig.sTbName, slaveData, slaveDelData));
+ }
+ if (slave0Config && commonUtils.isNotEmptyArr(slave0Column) && slave0Config.sTbName !== 'sysbillcheckresult') {
+ data.push(commonBusiness.mergeData('slave0', slave0Config.sTbName, slave0Data, slave0DelData));
+ }
+ if (slave1Config && commonUtils.isNotEmptyArr(slave1Column) && slave1Config.sTbName !== 'sysbillcheckresult') {
+ data.push(commonBusiness.mergeData('slave1', slave1Config.sTbName, slave1Data, slave1DelData));
+ }
+ if (slave2Config && commonUtils.isNotEmptyArr(slave2Column) && slave2Config.sTbName !== 'sysbillcheckresult') {
+ data.push(commonBusiness.mergeData('slave2', slave2Config.sTbName, slave2Data, slave2DelData));
+ }
+ if (slave3Config && commonUtils.isNotEmptyArr(slave3Column) && slave3Config.sTbName !== 'sysbillcheckresult') {
+ data.push(commonBusiness.mergeData('slave3', slave3Config.sTbName, slave3Data, slave3DelData));
+ }
+ if (slave4Config && commonUtils.isNotEmptyArr(slave4Column) && slave4Config.sTbName !== 'sysbillcheckresult') {
+ data.push(commonBusiness.mergeData('slave4', slave4Config.sTbName, slave4Data, slave4DelData));
+ }
+ if(commonUtils.isNotEmptyArr(configNameList)) {
+ configNameList.forEach(tbName => {
+ const {
+ [`${tbName}Config`]: tableConfig,
+ [`${tbName}Data`]: tableData,
+ [`${tbName}DelData`]: tableDelData
+ } = this.props;
+ if (tableConfig && tableConfig.sTbName && tableConfig.sSqlStr !== "noQuery"
+ && tbName!=='slave' && tbName!=='slave0' && tbName!=='slave1' && tbName!=='slave2' && tbName!=='slave3'
+ && tbName!=='slave4') {
+ const tableDataNew = tbName === "master" ? [tableData] : tableData;
+ data.push(
+ commonBusiness.mergeData(
+ tbName,
+ tableConfig.sTbName,
+ tableDataNew,
+ tableDelData
+ )
+ );
+ }
+ });
+ }
+
+ 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 = (name, sActiveId) => {
+ /* 待用数据声明 */
+ const {
+ dispatch, masterConfig, slave1Data, masterData, slaveData, slave2Data, slave0Data, slave3Data, slave4Data,
+ } = 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.slave1Data = slave1Data;
+ copyTo.slave0Data = slave0Data;
+ copyTo.slave2Data = slave2Data;
+ copyTo.slave3Data = slave3Data;
+ copyTo.slave4Data = slave4Data;
+ 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.')) {
+ // if (commonUtils.isNotEmptyArr(slaveData) && commonUtils.isEmptyStr(slaveData[0].sCustomerId) && commonUtils.isEmptyStr(masterData.sCustomerId)) {
+ // message.error(commonFunc.showMessage(this.props.app.commonConst, 'pleaseInputCustomer'));/* 请填写客户 */
+ // return;
+ // }
+ // }
+ this.copyName = obj.name;
+ 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, masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config,
+ } = this.props;
+ const { currentPane, token } = app;
+ let {
+ pages, sFilterOrderBy, bFilter, sListFormmasterId, currentIndex, fromKey,
+ } = currentPane;
+ if (fromKey === '1') {
+ const fromKeyConfig = masterConfig.gdsconfigformslave.find(i => i && i.sName === 'sListFormmasterId');
+ if (fromKeyConfig) sListFormmasterId = fromKeyConfig.sActiveKey;
+ }
+ 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 || 100;
+ }
+ if (!commonUtils.isNum(currentPosition)) { // 如果是列表直接点增加,就跳到第一条去
+ currentPosition = 1;
+ }
+
+ const value = {
+ sClientType: '1', sFilterOrderBy, bFilter, sListFormmasterId, currentPosition, handleType, iCountSum: pages?.total || 100,
+ };
+ 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];
+ this.props.onSaveState({
+ currentIndexFlag: true,
+ currentPageNo: returnData.currentPosition,
+ currentId: returnData.sId,
+ searchUpDownData: {},
+ slaveSelectedRowKeys: [],
+ });
+ this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
+ return true;
+ } else { /* 失败 */
+ this.props.getServiceError(data);
+ return false;
+ }
+ };
+
+ handleCancel = (obj) => {
+ /* 待用数据声明 */
+ const that = this;
+ const {
+ currentId, masterConfig, slaveConfig,slave0Config, slave1Config, slave2Config, slave3Config, slave4Config, 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, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
+ 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);
+ },
+ // onOk() {
+ // if (!currentId) {
+ // const { panes, currentPane } = that.props.app;
+ // const currentPaneIndex = panes.findIndex(item => item.key === currentPane.key);
+ // const newPanes = [];
+ // if (currentPaneIndex > 0 && currentPane.fromKey === '1') {
+ // panes.forEach((item, index) => {
+ // if (index !== currentPaneIndex) {
+ // newPanes.push(item);
+ // }
+ // });
+ // that.props.dispatch({ type: 'app/removePane', payload: { changePanes: newPanes, currentPane: panes[currentPaneIndex - 1] } });/* 关闭当前页签 */
+ // }
+ // }
+ // onGetDataOk(masterConfig, slaveConfig, slave1Config);
+ // onSaveStateOk({ enabled: false });
+ // if (commonUtils.isNotEmptyObject(copyTo)) {
+ // const { slaveData } = copyTo;
+ // const sIdArray = [];
+ // if(commonUtils.isNotEmptyArr(slaveData)) {
+ // 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);
+ // },
+ 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, slave1Config, orderDetailConfig, app, formData,
+ } = 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(slave1Config)) {
+ sSlaveTable.push({
+ tableName: slave1Config.sTbName,
+ relationName: 'sParentId',
+ });
+ }
+ if (sModelsType === 'purchase/purchaseOrder') {
+ let orderDetailConfig ={};
+ let orderDetailConfigArr = formData.filter(item => item.bGrd && item.sTbName === 'purpurchaseorderDetail');
+ if(commonUtils.isNotEmptyArr(orderDetailConfigArr)) {
+ orderDetailConfig = orderDetailConfigArr[0];
+ }
+
+ if(commonUtils.isNotEmptyObject(orderDetailConfig)) {
+ 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();
+ }
+ this.handleDelDataSuccess(props);
+ } 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,
+ } = 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`]: { 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)) {
+ tableDataRow.sFatherSlaveId = slaveRow.sId;
+ 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) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ 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;
+ if (commonUtils.isNotEmptyObject(tableDataRow.sMaterialsMemo)) {
+ tableDataRow.sMaterialsMemo = '';
+ }
+ if (commonUtils.isNotEmptyObject(tableDataRow.sProcessMemo)) {
+ tableDataRow.sProcessMemo = '';
+ }
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { total: tableData.length, current: 9999 } });
+ }
+ }
+ }
+ }
+ };
+
+ handleTableCopyTo = (name, toname, isWait) => {
+ const {
+ [`${name}Data`]: tableData, [`${toname}Data`]: tablePersonData, [`${name}SelectedRowKeys`]: tableSelectedRowKeys,
+ } = this.props;
+ if (commonUtils.isEmptyArr(tableSelectedRowKeys)) {
+ message.warn(commonFunc.showMessage(this.props.app.commonConst, 'pleaseChooseCopyData'));/* 请选择复制数据 */
+ } else {
+ 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;
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ if (commonUtils.isNotEmptyObject(toname)) {
+ tablePersonData.push(tableDataRow);
+ this.props.onSaveState({ [`${toname}Data`]: tablePersonData, [`${toname}Pagination`]: { total: tablePersonData.length, current: 9999 } });
+ message.success('操作成功!');
+ } else {
+ tableData.push(tableDataRow);
+ this.props.onSaveState({ [`${name}Data`]: tableData, [`${name}Pagination`]: { total: tableData.length, current: 9999 } });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ /** 复制全部 */
+ handleTableCopyAll = (name, isWait) => {
+ const {
+ slaveData, controlData, slaveSelectedRowKeys, slave0Data,
+ } = 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;
+ slaveData.push(slaveDataRow);
+ 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);
+ /* 部件表复制其材料表、工序表 */
+ slave0Data.filter(item => item.sControlId === itemControl.sId && item.sType !== '2').forEach((item) => {
+ const slave0Row = JSON.parse(JSON.stringify(item));
+ slave0Row.sId = commonUtils.createSid();
+ slave0Row.handleType = 'add';
+ slave0Row.sControlId = tableDataRow.sId;
+ slave0Row.sPartsName = tableDataRow.sPartsName;
+ slave0Row.sSlaveId = tableDataRow.sSlaveId;
+ slave0Data.push(slave0Row);
+ });
+ 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(slave0Data)) { /* 订单从表复制全部 复制成品材料 */
+ slave0Data.filter(item => item.sSlaveId === sId && item.sType === '2').forEach((slave0Item) => {
+ const slave0Row = JSON.parse(JSON.stringify(slave0Item));
+ slave0Row.handleType = 'add';
+ slave0Row.sId = commonUtils.createSid();
+ slave0Row.sSlaveId = slaveDataRow.sId;
+ slave0Data.push(slave0Row);
+ });
+ }
+
+ 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`]: { total: slaveData.length, current: 9999 },
+ controlData,
+ slave0Data,
+ 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 {
+ 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;
+ if (isWait) {
+ return tableDataRow;
+ } else if (commonUtils.isNotEmptyObject(tableDataRow)) {
+ tableData.push(tableDataRow);
+ /* 部件表复制其材料表、工序表 */
+ slave0Data.filter(item => item.sControlId === sId && item.sType !== '2').forEach((item) => {
+ const slave0Row = JSON.parse(JSON.stringify(item));
+ slave0Row.sId = commonUtils.createSid();
+ slave0Row.handleType = 'add';
+ slave0Row.sControlId = tableDataRow.sId;
+ slave0Row.sPartsName = tableDataRow.sPartsName;
+ slave0Data.push(slave0Row);
+ });
+ 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`]: { total: tableData.length, current: 9999 },
+ slave0Data,
+ processData,
+ });
+ }
+ }
+ }
+ }
+ }
+ };
+
+ handleCloseProductProcessInfoChooseModal = () => {
+ this.props.onSaveState({
+ productProcessInfoChooseVisible: false
+ })
+ }
+
+ 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, slave0Data, slaveData,
+ } = this.props;
+ const { dNetMoney, dNetPrice } = app.decimals;
+ if (name === 'control' && sModelsType === 'sales/salesOrder') {
+ const { [`${name}Data`]: tableData, slave0Data: slave0DataOld, slave2Data: slave2DataOld } = 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 slave0Data = [];
+ const slave2Data = [];
+ slave0DataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ slave0Data.push(itemNew);
+ });
+ slave2DataOld.forEach((item) => {
+ const itemNew = { ...item };
+ if (itemNew.sControlId === sId) {
+ itemNew.sPartsName = tableDataRow.sPartsName;
+ }
+ slave2Data.push(itemNew);
+ });
+ const slave0DataNew = this.sortData(tableData, slave0Data);
+ const slave2DataNew = this.sortData(tableData, slave2Data);
+
+ const iIndex = tableData.findIndex(item => item.sId === sId);
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({ [`${name}Data`]: tableData, slave0Data: slave0DataNew, slave2Data: slave2DataNew });
+ } else {
+ let { masterData } = this.props;
+ 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 === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductStyle' || sFieldName === 'sProductUnit' || sFieldName === 'sProductNo'
+ || sFieldName === 'sCustomerProductNo' || sFieldName === 'sProductClassifyId' || sFieldName === 'sProductClassifyName') && !commonUtils.isEmpty(tableDataRow.sProductId)) {
+ // const productIdDropDown = commonUtils.getStoreDropDownData(sModelsId, 'slave', sFieldName);
+ let productIdDropDown;
+ const slaveIndex = slaveConfig.gdsconfigformslave.findIndex(item => item.sName === sFieldName);
+ if (slaveIndex > -1) {
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'slave', slaveConfig.gdsconfigformslave[slaveIndex]);
+ productIdDropDown = sqlDropDownData.dropDownData;
+ }
+ const iProductIdIndex = commonUtils.isEmptyArr(productIdDropDown) ? -1 : productIdDropDown.findIndex(item => item.sId === tableDataRow.sProductId);
+ if (iProductIdIndex === -1) {
+ 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 = '';
+ }
+ if ((sFieldName === 'sProductId' || sFieldName === 'sProductName' || sFieldName === 'sProductNo') && !commonUtils.isEmpty(changeValue.sProductId)) {
+ 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.dProductPrice = returnData.dataset.rows[0].dataSet.outData[0].dPrice;
+ }
+ // else {
+ // this.props.getServiceError(returnData);
+ // }
+ }
+ } else if (sModelsType === '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 slave0ReturnData = this.otherTableDel('slave0', tableSelectedRowKeys);
+ const slave2ReturnData = this.otherTableDel('slave2', tableSelectedRowKeys);
+ const slave3ReturnData = this.props.onDataRowDel('slave3', true, tableSelectedRowKeys);
+ this.props.onSaveState({
+ ...slave0ReturnData,
+ ...slave2ReturnData,
+ ...slave3ReturnData,
+ });
+ }
+ } else if (sModelsType.includes('cashier/') && sFieldName === 'dTotalMoney') { /* 付款单、收款单,从表付款/收款金额改变,会自动汇总到主表付款金额中 */
+ const addStata = {};
+ 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);
+ }
+ 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);
+ }
+ });
+ masterData = { ...masterData, ...addStata };
+ this.props.onSaveState({ masterData });
+ }
+ // 取工艺卡数据
+ if (sModelsType && sModelsType.includes('sales/salesOrder') && (sFieldName === 'sProductId' || sFieldName === 'sProductNo' || sFieldName === 'sProductName') && name === 'slave') {
+ const {
+ controlConfig, slave0Config, processConfig,
+ } = this.props;
+ let { controlData, slave0Data, processData } = this.props;
+ const sId = tableData[iIndex].sId;
+ const bCkxCopyFromTechnology = app.systemData.filter(item => item.sName === 'CkxCopyFromTechnology')[0].sValue;
+ if (bCkxCopyFromTechnology === '1' && tableDataRow.sProductId !== tableDataRow.sProductName) {
+ const controlSelectedData = commonUtils.isNotEmptyArr(controlData) ? controlData.filter(item => item.sSlaveId === sId) : [];
+ if (commonUtils.isNotEmptyObject(controlSelectedData)) {
+ const slave0ReturnData = this.otherTableDel('slave0', controlSelectedData);
+ const processReturnData = this.otherTableDel('process', controlSelectedData);
+ const controlReturnData = this.props.onDataRowDel('control', true, controlSelectedData);
+ controlData = controlReturnData.controlData;
+ slave0Data = slave0ReturnData.slave0Data;
+ processData = processReturnData.processData;
+ this.props.onSaveState({
+ ...slave0ReturnData,
+ ...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' };
+ 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 copyToSlave0Config = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Slave0'.toLowerCase());
+ const copyToProcessConfig = config.filter(item => item.sControlName.toLowerCase() === 'BtnCopyFrom.ActProcessCard.Process'.toLowerCase());
+ const controlAssignField = commonUtils.isNotEmptyArr(copyToControlConfig) ? copyToControlConfig[0].sAssignField : '';
+ const slave0AssignField = commonUtils.isNotEmptyArr(copyToSlave0Config) ? copyToSlave0Config[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.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)) {
+ // 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;
+ controlData.push(controlRow);
+
+ if (commonUtils.isNotEmptyArr(returnData.slave0Data)) {
+ returnData.slave0Data.filter(item => item.sControlId === controlItem.sId).forEach((slave0Item) => {
+ newCopyTo.slave0 = slave0Item;
+ const newSid = commonUtils.createSid();
+ let slave0Row = commonFunc.getDefaultData(slave0Config, newCopyTo, { newSid }); // 取默认值
+ slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
+ slave0Row.handleType = 'add';
+ slave0Row.sId = newSid;
+ slave0Row.sSlaveId = tableDataRow.sId;
+ slave0Row.sParentId = masterData.sId;
+ slave0Row.sControlId = controlRow.sId;
+ slave0Row.sPartsName = controlRow.sPartsName;
+ slave0Data.push(slave0Row);
+ });
+ }
+
+ 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.slave0Data)) {
+ // eslint-disable-next-line no-loop-func
+ returnData.slave0Data.filter(item => item.sType === '2').forEach((slave0Item) => {
+ newCopyTo.slave0 = slave0Item;
+ const newSid = commonUtils.createSid();
+ let slave0Row = commonFunc.getDefaultData(slave0Config, newCopyTo, { newSid }); // 取默认值
+ slave0Row = { ...slave0Row, ...commonFunc.getAssignFieldValue(slave0AssignField, slave0Item, newCopyTo) }; // 取赋值字段
+ slave0Row.handleType = 'add';
+ slave0Row.sId = newSid;
+ slave0Row.sSlaveId = tableDataRow.sId;
+ slave0Row.sParentId = masterData.sId;
+ slave0Data.push(slave0Row);
+ });
+ }
+
+ 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);
+ });
+ }
+ this.props.onSaveState({ controlData, slave0Data, processData });
+ }
+ }
+ } else if (sModelsType === '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.dPartsQty = commonUtils.isNull(tableDataRow.dProductQty, 0) + commonUtils.isNull(tableDataRow.dGiveQty, 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;
+ }
+ // else {
+ // this.props.getServiceError(returnData);
+ // }
+ } else if (sModelsType === 'sales/salesCheck' && sFieldName === 'dLossMoney' && name === 'slave') {
+ if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isNotEmptyNumber(tableDataRow.dLossMoney)) {
+ const dPprice = this.props.getFloatNum('dProductPrice'); /* 获取系统设定小数位 */
+ tableDataRow.dProductMoney = commonUtils.convertFixNum(tableDataRow.dSrcMoney - tableDataRow.dLossMoney, dPprice);
+ } else if (commonUtils.isNotEmptyNumber(tableDataRow.dSrcMoney) && commonUtils.isEmptyNumber(tableDataRow.dLossMoney)) {
+ tableDataRow.dProductMoney = tableDataRow.dSrcMoney;
+ tableDataRow.dLossMoney = 0;
+ }
+ }
+ /* 各种金额,税额,价格计算 */
+ let models = name === 'materials' ? 'Materials' :
+ sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') || sModelsType.includes('semigoodsStock/') ? 'Product' : 'Materials';
+ const bSaleMaterials = models === 'Product' && commonUtils.isNotEmptyObject(tableDataRow.sMaterialsId);
+ 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' || bSaleMaterials) {
+ tableDataRow.dAuxiliaryQty = tableDataRow.dProductQty;
+ }
+ tableDataRow = await this.handleMaterialsChange(tableDataRow, sModelsId, masterData, changeValue, sFieldName, app, token, models);
+ }
+
+ if (bSaleMaterials || (sModelsType && (sModelsType.includes('sales/materials') || sModelsType === 'sales/salesCheck'))) { /* 如果是材料销售模块/销售对账 如果是材料 则用换算数量*单价 算金额 */
+ /* 材料逻辑计算 */
+ if (commonUtils.isNotEmptyNumber(tableDataRow.dMaterialsQty) && tableDataRow.dMaterialsQty !== 0 ) {
+ 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');
+ }
+ }
+
+ /* 在detail表(加工工序)中将每一个工序都填写单价,算出金额,几个工序金额应该汇总到slave表(回厂信息)最后一道工序金额中,并要自动算单价 */
+ // /* 将改变数量、金额 汇总到slave0回厂信息表 */
+ const iSlave0ProductIndex = slave0Data.findIndex(item => commonUtils.isNotEmptyObject(item.sCombineProcessIds) && item.sCombineProcessIds.split(',').includes(tableDataRow.sSrcSlaveId));
+ if(iSlave0ProductIndex > -1) {
+ const addState ={};
+ let dMaterialsProductMoneyAll = 0;
+ let dMaterialsProductPrice = 0;
+ const slaveORow = slave0Data[iSlave0ProductIndex];
+ /* 合计该组金额 */
+ const slaveFilterData = tableData.filter(item => commonUtils.isNotEmptyObject(slaveORow.sCombineProcessIds) && slaveORow.sCombineProcessIds.split(',').includes(item.sSrcSlaveId));
+ if(commonUtils.isNotEmptyArr(slaveFilterData)) {
+ for (const one of slaveFilterData) {
+ if(one.sId === tableDataRow.sId) {
+ dMaterialsProductMoneyAll += tableDataRow.dMaterialsMoney;
+ } else {
+ dMaterialsProductMoneyAll += commonUtils.isNull(one.dMaterialsMoney, 0);
+ }
+ }
+ }
+ // /* 更新数量 */
+ // if(slaveORow.sCombineProcessIds){
+ // const sFirstId =commonUtils.isNotEmptyArr(slaveORow.sCombineProcessIds.split(',')) ? slaveORow.sCombineProcessIds.split(',')[0] : '' ; /* 找到第一条 */
+ // if(sFirstId === tableDataRow.sSrcSlaveId) {
+ // addState.dAuxiliaryQty = tableDataRow.dAuxiliaryQty;
+ // addState.dMaterialsQty = tableDataRow.dMaterialsQty;
+ // }
+ // }
+
+ /* 更新数量(取同一部件,工序名称相同项数据的数量) */
+ if(slaveORow.sCombineProcessIds){
+ const sCombineProcessIdsArr = slaveORow.sCombineProcessIds.split(',');
+ if (tableDataRow.sProcessName === slaveORow.sProcessName && sCombineProcessIdsArr.includes(tableDataRow.sSrcSlaveId)) {
+ addState.dAuxiliaryQty = tableDataRow.dAuxiliaryQty;
+ addState.dMaterialsQty = tableDataRow.dMaterialsQty;
+ }
+ }
+ if(dMaterialsProductMoneyAll !==0) {
+ if(tableDataRow.dAuxiliaryQty !== 0 ) {
+ dMaterialsProductPrice = commonUtils.convertFixNum(dMaterialsProductMoneyAll / slaveORow.dMaterialsQty, dNetPrice);
+ }
+ addState.dMaterialsMoney = dMaterialsProductMoneyAll;
+ addState.dMaterialsPrice = dMaterialsProductPrice;
+ }
+ addState.handleType = commonUtils.isEmpty(slave0Data[iSlave0ProductIndex].handleType) ? 'update' : slave0Data[iSlave0ProductIndex].handleType;
+ slave0Data[iSlave0ProductIndex] = { ...slave0Data[iSlave0ProductIndex], ... addState};
+ slave0Data[iSlave0ProductIndex] = commonBusiness.getCalculateMoney(app, masterData, slave0Data[iSlave0ProductIndex], 'Materials');
+ }
+ this.props.onSaveState({ slave0Data, slaveData });
+ } else if (sModelsType === 'outside/outsideprocess1' && (sFieldName === 'sSupplyName' || sFieldName === 'sProcessName' || sFieldName === 'dAuxiliaryQty')) { /* 工序发外 */
+ tableDataRow = commonBusiness.getCalculateMoney(app, masterData, tableDataRow, 'Materials');
+ }
+
+ // 是否默认只能勾选一个
+ if (['bDefault'].includes(sFieldName)) {
+ if (changeValue.bDefault) {
+ tableData.forEach(i => {
+ i && i.bDefault && (i.bDefault = false);
+ })
+ }
+ }
+
+ if (isWait) {
+ return tableDataRow;
+ } else {
+ tableData[iIndex] = tableDataRow;
+ this.props.onSaveState({ [`${name}Data`]: tableData, enabled: true });
+ }
+ }
+ };
+
+ /** 删除表格数据 */
+ 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`]: [] };
+ };
+
+ 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;
+ }
+
+ handleMasterChange = async (name, sFieldName, changeValue, sId, dropDownData, isWait, masterDataNew) => {
+
+ // if (sFieldName === 'sZczlx' && changeValue.sZczlx === '01') {
+ // this.handleClearAllData();
+ // return;
+ // }
+
+ const {
+ sModelsId, sModelsType, masterData: masterDataOld,app, masterConfig, slaveConfig, token,
+ } = this.props;
+ let { slaveData, slave0Data = [] } = this.props;
+ const addState = {};
+ const masterData = masterDataNew === undefined ? masterDataOld === undefined ? {} : masterDataOld : masterDataNew;
+ let bNewSlaveData = false;
+
+ if ( sModelsType && (sModelsType.includes('sales/') || sModelsType.includes('productStock/')) && ( 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') {
+ 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 = '';
+ }
+ const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'tDueDate');
+ if (tDueDateIndex > -1) {
+ masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 1;
+ delete masterData.tDueDate;
+ }
+ }
+ 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;
+ }
+ const tDueDateIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'tDueDate');
+ if (tDueDateIndex > -1) {
+ masterConfig.gdsconfigformslave[tDueDateIndex].iTag = 1;
+ delete masterData.tDueDate;
+ }
+ }
+ 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);
+ 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 === 'tDeliverDate') {
+ const slaveDataNew = [];
+ for (const item of slaveData) {
+ let tableDataRow = ((sFieldName === 'sWareHouseId' || sFieldName === 'sWareHouseNo' || sFieldName === 'sWareHouseName') && (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;
+ const models = sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('productStock/') || sModelsType.includes('semigoodsStock/') ? 'Product' : 'Materials';
+ let dMaterialsMoney = '';
+ if (sModelsType && 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,
+ });
+ console.log('sComputeId', sComputeId);
+ if (commonUtils.isNotEmptyObject(sComputeId)) {
+ dMaterialsMoney = await commonBusiness.getFormulaValue({
+ token, sModelsId, masterData: returnData.masterData, tableDataRow, sComputeId,
+ });
+ console.log('dMaterialsMoney', dMaterialsMoney);
+ tableDataRow.dMaterialsMoney = dMaterialsMoney;
+ tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, 'Materials');
+ }
+ // else {
+ // tableDataRow.dMaterialsPrice = 0;
+ // tableDataRow.dMaterialsMoney = 0;
+ // }
+ }
+ } 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') && (!sModelsType.includes('materialsStock/productionmaterialsadjust'))) {
+ tableDataRow.sWareHouseId = changeValue.sWareHouseId;
+ tableDataRow.sWareHouseNo = changeValue.sWareHouseNo;
+ tableDataRow.sWareHouseName = changeValue.sWareHouseName;
+ tableDataRow.sLocationId = changeValue.sLocationId;
+ tableDataRow.sLocationNo = changeValue.sLocationNo;
+ tableDataRow.sLocationName = changeValue.sLocationName;
+ tableDataRow.sWareHouseLocationId = changeValue.sWareHouseLocationId;
+ tableDataRow.sWareHouseLocationNo = changeValue.sWareHouseLocationNo;
+ tableDataRow.sWareHouseLocationName = changeValue.sWareHouseLocationName;
+ tableDataRow.handleType = commonUtils.isEmpty(tableDataRow.handleType) ? 'update' : tableDataRow.handleType;
+ }
+ slaveDataNew.push(tableDataRow);
+ }
+ addState.slaveData = slaveDataNew;
+ // this.props.onSaveState({ slaveData: slaveDataNew });
+
+ if (sFieldName === 'sSupplyId' || sFieldName === 'sSupplyNo' || sFieldName === 'sSupplyName') {
+ const slave0DataNew = [];
+ for (const item of slave0Data) {
+ let tableDataRow = { ...item };
+ 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;
+ tableDataRow = commonBusiness.getCalculateMoney(app, returnData.masterData, tableDataRow, 'Materials');
+ slave0DataNew.push(tableDataRow);
+ }
+ addState.slave0Data = slave0DataNew;
+ }
+ } else 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;
+ }
+ }
+ if (bNewSlaveData && commonUtils.isEmptyArr(slaveData)) {
+ 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.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 0;
+ 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 === 'sExpenseeName') {
+ let { slaveDelData, slave0DelData}= this.props;
+ const allTableData = {};
+ allTableData.master = returnData.masterData;
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ const slaveDataNew = [];
+ const slave0DataNew = [];
+ if(commonUtils.isEmptyArr(slaveDelData)) {
+ slaveDelData = [];
+ }
+ if(commonUtils.isEmptyArr(slave0DelData)) {
+ slave0DelData = [];
+ }
+ //获取部门名称数据
+ let sDepartNameDropDown;
+ const masterIndex = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sDepartName');
+ slaveData.forEach((item) => {
+ item.handleType = 'del';
+ slaveDelData.push(item);
+ });
+ if (masterIndex > -1) {
+ const config = masterConfig.gdsconfigformslave[masterIndex];
+ const slaveAssignField = config.sAssignField || '';
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[masterIndex], returnData.masterData);
+ sDepartNameDropDown = sqlDropDownData.dropDownData;
+ sDepartNameDropDown.forEach((item) => {
+ const newSid = commonUtils.createSid();
+ let tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData, { newSid });
+ tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(slaveAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRowAdd.handleType = 'add';
+ tableDataRowAdd.sId = newSid;
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 0;
+ slaveDataNew.push(tableDataRowAdd);
+ });
+ }
+ // 获取工作中心数据
+ let sWorkCenterNameDropDown;
+ const master1Index = masterConfig.gdsconfigformslave.findIndex(item => item.sName === 'sWorkCenterName');
+ slave0Data.forEach((item) => {
+ item.handleType = 'del';
+ slave0DelData.push(item);
+ });
+ if (master1Index > -1) {
+ const config = masterConfig.gdsconfigformslave[master1Index];
+ const slaveAssignField = config.sAssignField || '';
+ const sqlDropDownData = await this.props.getSqlDropDownData(sModelsId, 'master', masterConfig.gdsconfigformslave[master1Index], returnData.masterData);
+ sWorkCenterNameDropDown = sqlDropDownData.dropDownData;
+ sWorkCenterNameDropDown.forEach((item) => {
+ const newSid = commonUtils.createSid();
+ let tableDataRowAdd = commonFunc.getDefaultData(slaveConfig, allTableData, { newSid });
+ tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(slaveAssignField, item, newCopyTo) }; // 取赋值字段
+ tableDataRowAdd.handleType = 'add';
+ tableDataRowAdd.sId = newSid;
+ tableDataRowAdd.sParentId = masterData && masterData.sId ? masterData.sId : null;
+ tableDataRowAdd.key = tableDataRowAdd.sId;
+ tableDataRowAdd.bDefault = false;
+ tableDataRowAdd.iOrder = 1;
+ slave0DataNew.push(tableDataRowAdd);
+ })
+ }
+ addState.slaveData = slaveDataNew;
+ addState.slaveDelData = slaveDelData;
+ addState.slave0Data = slave0DataNew;
+ addState.slave0DelData = slave0DelData;
+ }
+ const models = name === 'materials' ? 'Materials' :
+ sModelsType.includes('sales/') || sModelsType.includes('manufacture/') || sModelsType.includes('quotation/') || sModelsType.includes('productStock/') || sModelsType.includes('semigoodsStock/') ? 'Product' : 'Materials';
+ if (sModelsType.includes('purchase/') || sModelsType.includes('quotation/') || sModelsType.includes('manufacture/') || sModelsType.includes('materialsStock/') || sModelsType.includes('outside/') || sModelsType.includes('semigoodsStock/')) {
+ const masterData = await this.handleMaterialsChange(returnData.masterData, sModelsId, masterData, changeValue, sFieldName, app, token, models);
+ returnData = { ...returnData, masterData };
+ }
+
+ /* 将改变数量、金额 汇总到slave0回厂信息表 */
+ if (commonUtils.isNotEmptyArr(addState.slaveData) && commonUtils.isNotEmptyArr(addState.slave0Data)) {
+ const { dNetPrice } = app.decimals;
+ for (const tableDataRow of addState.slaveData) {
+ const iSlave0ProductIndex = addState.slave0Data.findIndex(item => commonUtils.isNotEmptyObject(item.sCombineProcessIds) && item.sCombineProcessIds.split(',').includes(tableDataRow.sSrcSlaveId));
+ if(iSlave0ProductIndex > -1) {
+ const addState1 = {};
+ let dMaterialsProductMoneyAll = 0;
+ let dMaterialsProductPrice = 0;
+ const slaveORow = slave0Data[iSlave0ProductIndex];
+ /* 合计该组金额 */
+ const slaveFilterData = addState.slaveData.filter(item => commonUtils.isNotEmptyObject(slaveORow.sCombineProcessIds) && slaveORow.sCombineProcessIds.split(',').includes(item.sSrcSlaveId));
+ if(commonUtils.isNotEmptyArr(slaveFilterData)) {
+ for (const one of slaveFilterData) {
+ if(one.sId === tableDataRow.sId) {
+ dMaterialsProductMoneyAll += commonUtils.isNull(tableDataRow.dMaterialsMoney, 0);
+ } else {
+ dMaterialsProductMoneyAll += commonUtils.isNull(one.dMaterialsMoney, 0);
+ }
+ }
+ }
+
+ /* 更新数量(取同一部件,工序名称相同项数据的数量) */
+ if(slaveORow.sCombineProcessIds){
+ const sCombineProcessIdsArr = slaveORow.sCombineProcessIds.split(',');
+ if (tableDataRow.sProcessName === slaveORow.sProcessName && sCombineProcessIdsArr.includes(tableDataRow.sSrcSlaveId)) {
+ addState1.dAuxiliaryQty = tableDataRow.dAuxiliaryQty;
+ addState1.dMaterialsQty = tableDataRow.dMaterialsQty;
+ }
+ }
+ if(dMaterialsProductMoneyAll !==0) {
+ if(tableDataRow.dAuxiliaryQty !== 0) {
+ dMaterialsProductPrice = commonUtils.convertFixNum(dMaterialsProductMoneyAll / slaveORow.dMaterialsQty, dNetPrice);
+ }
+ addState1.dMaterialsMoney = dMaterialsProductMoneyAll;
+ addState1.dMaterialsPrice = dMaterialsProductPrice;
+ }
+ addState1.handleType = commonUtils.isEmpty(addState.slave0Data[iSlave0ProductIndex].handleType) ? 'update' : addState.slave0Data[iSlave0ProductIndex].handleType;
+ addState.slave0Data[iSlave0ProductIndex] = { ...addState.slave0Data[iSlave0ProductIndex], ... addState1};
+ addState.slave0Data[iSlave0ProductIndex] = commonBusiness.getCalculateMoney(app, masterData, addState.slave0Data[iSlave0ProductIndex], 'Materials');
+ }
+ }
+ }
+
+ if (isWait) {
+ return { ...returnData, ...addState };
+ } else {
+ this.props.onSaveState({ ...returnData, ...addState }, () => {
+ if (['17038380450009419160550182640000'].includes(sModelsId)) {
+ if (['tYear'].includes(sFieldName)) {
+ this.props.onSaveState({ pageLoading: true });
+ this.handleButtonClick('BtnCalc').finally(() => {
+ this.props.onSaveState({ pageLoading: false });
+ });
+ }
+ }
+ });
+ return returnData;
+ }
+ }
+
+ // 清空所有数据
+ handleClearAllData = () => {
+ const { masterConfig, masterData = {}, slaveData = [] } = this.props;
+ const { handleType = 'update', sId } = masterData;
+ const copyTo = {
+ master: masterData,
+ slave: slaveData,
+ };
+ const addState = {};
+ addState.masterData = {
+ ...commonFunc.getDefaultData(masterConfig, copyTo),
+ handleType,
+ sId,
+ };
+
+ for (let i = 0; i < 11; i++) {
+ const num = i == 0 ? '' : i - 1;
+ const slaveName = `slave${num}`;
+ const onlySlaveName = `onlySlave${num}`;
+ const onlySlaveValue = this.props[onlySlaveName];
+ if (onlySlaveValue) {
+ addState[`${slaveName}Data`] = [];
+ if (handleType === 'update') {
+ const slaveDataOld = this.props[`${slaveName}Data`] || [];
+ addState[`${slaveName}DelData`] =
+ slaveDataOld
+ .filter(item => item.handleType !== 'add1')
+ .map(item => ({ ...item, handleType: 'del' }));
+ }
+ }
+ }
+ this.props.onSaveState(addState);
+ }
+
+ handleBtnPrint =async (sActiveId, checked, eKey) => {
+ const {
+ app, sModelsId, masterConfig, masterData, slaveConfig, sModelsType, reportData, menuChildData, formRoute, controlConfig,
+ } = this.props;
+ if (sModelsType === '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.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') {
+ 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 = (name, slavePagination) => {
+ this.props.onSaveState({ [`${name}Pagination`]: slavePagination });
+ };
+
+ /* 工单、工艺卡、报价单控制表回带图片地址 */
+ 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'));
+ }
+ }
+ // 收付款分摊
+ handleShare = () => {
+ /* 分摊 */
+ const { masterData: masterDataOld, slaveData: slaveDataOld, app } = this.props;
+ const { dNetMoney } = app.decimals;
+ const masterData = { ...masterDataOld };
+ const slaveData = [];
+ 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 = []; /* 正数集 */
+ slaveData.forEach((child) => {
+ child.dTotalMoney = 0;
+ child.dRoundingMoney = commonUtils.isNum(child.dRoundingMoney) ? child.dRoundingMoney : 0;
+ if (child.dBalanceMoney < 0) {
+ minusSum -= Math.abs(child.dBalanceMoney);
+ minusRoundingSum -= Math.abs(child.dRoundingMoney);
+ minusData.push(child);
+ } else {
+ positiveSum += child.dBalanceMoney;
+ positiveRoundingSum += child.dRoundingMoney;
+ 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;
+ }
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ 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;
+ }
+ }
+ masterData.dAdvanceMoney = 0;
+ masterData.bAdvance = false;
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ 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 () => {
+ 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}`;
+ } else {
+ url = `${commonConfig.server_host}eleMaterialsStock/getEleMaterialsStock?sModelsId=${sModelsId}&sWareHouseId=${masterData.sWareHouseId}`;
+ }
+
+ 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) => {
+ item.handleType = 'add';
+ item.sParentId = masterData.sId;
+ });
+ this.props.onSaveState({ slaveData: returnData, slaveDelData });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+
+ 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}`;
+ };
+ 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 });
+ }
+ };
+
+
+ /* 解析消息 */
+ 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 = `';
+ newWin.document.body.innerHTML = formStr;
+ newWin.document.forms[0].submit();
+ return newWin;
+ }
+ /* 导出模版数据 */
+ 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('没有主表数据!');
+ }
+ };
+ /** 按钮操作事件 */
+ handleButtonClick = async (name, bBtncalcComfim) => {
+ if (name === 'BtnOut') {
+ this.handleOut();
+ } else if (name === 'BtnDesignFunction') {
+ this.handleDesignFunction();
+ } else if (name === 'BtnBatchPriceUpdate') {
+ this.handleBatchPriceUpdate();
+ } else if (name && name.includes('BtnOutTemplateData')) { /* 导出模版数据 */
+ this.handleOutTemplateData();
+ } else if (name && name.includes('BtnOutTemplate')) {
+ this.handleOutTemplate();
+ }
+ const { sModelsType, masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config } = this.props;
+ if (name === 'BtnRefresh') {
+ if (this.props.app.currentPane.refresh !== undefined) {
+ this.props.app.currentPane.refresh();
+ }
+ this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
+ } else if ((name === 'BtnShare' || name === 'BtnOutTemplate') && (sModelsType.includes('cashier/') || sModelsType.includes('sales/') || sModelsType.includes('purchase/'))) {
+ // 收付款分摊
+ if (name === 'BtnShare') {
+ this.handleShare();
+ }
+ if (sModelsType.includes('sales/') && name === 'BtnOutTemplate') {
+ this.handleOutTemplate();
+ }
+ } else if (name === 'BtnImport' && (sModelsType.includes('materialsStock/') || sModelsType.includes('productStock/'))) {
+ if (name === 'BtnImport') {
+ this.handleImport();
+ }
+ } 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();
+ slaveNameList.push(tablename);
+ }
+ }
+ }
+
+ if (commonUtils.isNotEmptyArr(slaveNameList)) {
+ slaveNameList.forEach((name, index) => {
+ const tableConfig = this.props[name +'Config']; /* 动态配置 */
+ const tableData = this.props[name +'Data']; /* 动态配置 */
+ if(commonUtils.isNotEmptyObject(tableConfig)) {
+ allTableMap[name +'.'+ tableConfig.sTbName] = tableData;
+ }
+ });
+ const masterTbName = masterConfig.sTbName;
+ allTableMap['master.'+ masterTbName] = masterData;
+ }
+ const sButtonParam = btnConfig.sButtonParam;
+ const btn = commonUtils.isJSON(sButtonParam) ? JSON.parse(sButtonParam) : '';
+ const sProName = btn.sproName;
+ const url = `${commonConfig.server_host}calcprocedure/calc?sModelsId=${sModelsId}`;
+ const value = {
+ sProName,
+ sButtonParam,
+ allTableMap
+ };
+ if (bBtncalcComfim) {
+ value.iFlag = 1;
+ }
+ 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)) {
+ slaveNameList.forEach((name, index) => {
+ const tableConfig = this.props[name +'Config']; /* 动态配置 */
+ let tableDelData = this.props[name +'DelData'];
+ if(commonUtils.isEmptyArr(tableDelData)) {
+ tableDelData = [];
+ }
+ 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.masterData = returnData['master.'+ masterTbName];
+ allReturnMap.masterData.enabled = true;
+ }
+ // this.handleValidateSave();
+ 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({ pageLoading:false });
+ } else if (dataReturn.code === -7) {
+ const _this = this;
+ Modal.confirm({
+ title: "温馨提示:",
+ content: (
+
+ {this.handleGetMsg(dataReturn.msg)}
+
+ ),
+ okText: "确认",
+ cancelText: "取消",
+ onOk() {
+ _this.handleButtonClick(name, true);
+ },
+ onCancel() {}
+ });
+ this.props.onSaveState({ pageLoading:false });
+ } else { /* 失败 */
+ this.props.getServiceError(dataReturn);
+ this.props.onSaveState({ pageLoading:false });
+ }
+
+ }
+ } else if (name === 'BtnTmpInfoBySql') { /* 自定义数据源 */
+ this.handleBtnTmpInfoBySql(name);
+ }
+ };
+
+ handleBtnTmpInfoBySql = async (btnName) => {
+ const { masterConfig, masterData, 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配置 */
+ 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;
+ let sRowData = [slaveRow];
+ if(sTmpInfoBySqlBtnConfig[0].sSqlCondition && sTmpInfoBySqlBtnConfig[0].sSqlCondition.includes('master.')) {
+ sRowData = [masterData];
+ }
+ 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 = [];
+ const keyData = returnData[key];
+ if (commonUtils.isNotEmptyArr(keyData)) {
+ keyData.forEach((child) => {
+ let tableRow = {};
+ tableRow = { ...tableRow, ...commonFunc.getAssignFieldValue(sAssignField, child) }; // 取赋值字段
+ tableRow.sId = commonUtils.createSid();
+ tableRow.sParentId = masterData.sId;
+ tableRow.handleType = 'add';
+ tableRow.key = tableRow.sId;
+ 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];
+ }
+ console.log('allReturnMap:', allReturnMap);
+ this.props.onSaveState({ ...allReturnMap });
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }
+ } else {
+ message.error('配置错误,没有配置对应字段!');
+ }
+
+ }
+
+ handleBtnChoose = async (name, sControlName, chooseConfig) => {
+ const { token } = this.props;
+ 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 });
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ };
+ handleViewClick = (name, sName, record, index , myConfig) => {
+ 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 < 7; 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()}`];
+ 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;
+ }
+ }
+
+ /* Begin 找到除了工艺参数以外的额外参数 通过对应字段找到该字段配置 */
+ for (const key of Object.keys(slaveSelectOneData)) {
+ if (key.includes('sParam')) {
+ const iIndexOther = processConfig.gdsconfigformslave.findIndex(item => item.sName === key.replace('sParam', '').trim());
+ if (iIndexOther > -1 && !commonUtils.isEmpty(slaveSelectOneData[key])) {
+ const fieldConfig = processConfig.gdsconfigformslave[iIndexOther];
+ if (fieldConfig) {
+ const sFieldName = fieldConfig.sName; /* 字段名 */
+ const bSrcName = `bParamConfig${fieldConfig.sName}`;
+ const bSrc = slaveSelectOneData[bSrcName];
+ /* 如果不原配置 则同参数配置雷同 */
+ if (!bSrc) {
+ processConfig.gdsconfigformslave[iIndexOther].sFieldToContent = '1'; /* 从工序配置的DropDownData中拿数据 */
+ } else { /* 走原配置读取数据源 */
+ processConfig.gdsconfigformslave[iIndexOther].sFieldToContent = ''; /* 从工序配置的DropDownData中拿数据 */
+ }
+ processConfig.gdsconfigformslave[iIndexOther].bParam = true; /* 增加参数字段标识 */
+ processConfig.gdsconfigformslave[iIndexOther].showName = sProcessParam[`sParam${sFieldName.toString()}`];
+ sProcessParamsSelects.push(processConfig.gdsconfigformslave[iIndexOther]);
+ }
+ }
+ }
+ }
+ /* END */
+ } else {
+ modalVisible = false;
+ // 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) {
+ processConfig.gdsconfigformslave[iIndex].bVisible = true;
+ }
+ }
+ }
+ this.props.onSaveState({
+ processRecord: record,
+ sProcessParamsSelects,
+ sProcessParamsModalVisible: modalVisible,
+ });
+ } else if (name === 'process' && sName === 'sParams' && commonUtils.isNotEmptyObject(record.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)) {
+ if (sModelsType.includes('manufacture/')) {
+ paramType = slaveSelectOneData.sWorkOrderParam;
+ } else if (sModelsType.includes('quotation/')) {
+ paramType = slaveSelectOneData.sProcessParam;
+ }
+ }
+ /* 工序参数以表格形式展示 列 */
+ const sParamConfig = {
+ bisMutiSelect: true,
+ bMutiSelect: false,
+ };
+ const gdsconfigformslave = [{
+ sId: commonUtils.createSid(),
+ sName: 'sId',
+ showName: '主键',
+ bVisible: false,
+ iFitWidth: 200,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'bSelfCbx',
+ showName: '选择',
+ bVisible: true,
+ iFitWidth: 45,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamKey',
+ showName: '参数主键',
+ bVisible: true,
+ iFitWidth: 200,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamName',
+ showName: '参数名',
+ bVisible: true,
+ iFitWidth: 400,
+ }, {
+ sId: commonUtils.createSid(),
+ sName: 'sParamValue',
+ showName: '参数值',
+ bVisible: true,
+ }];
+ sParamConfig.gdsconfigformslave = gdsconfigformslave;
+ const sParamColumn = commonFunc.getHeaderConfig(sParamConfig);
+ if (commonUtils.isNotEmptyObject(paramType) && enabled) {
+ /* 将sParam1中的数据 还原到sParamData数据中 */
+ sParamData = JSON.parse(record.sParams);
+ }
+ this.props.onSaveState({
+ processRecord: record,
+ sProcessParamsSelects,
+ sParamsModalVisible: true,
+ sParamConfig,
+ sParamColumn,
+ sParamData
+ });
+ } else {
+ if(sName === 'myTableConfig') {
+ this.handleQuickViewClick(name, sName, record, index, myConfig );
+ } else {
+ this.props.onViewClick(name, sName, record, index, myConfig );
+ }
+ }
+ };
+
+ handleViewChoose= (name, sName, record) => {
+ const { sId } = record; /* 控制表主键 */
+ const { enabled } = this.props;
+ const sisColorSelectedRowKeys = [];
+ let jsonData = [];
+ if (name === 'process' && sName === 'sColorSerialMemo') {
+ 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 ( 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)) {
+ /* 要把数据以表格的形式显示出来 */
+ 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.sParams)) {
+ const selectedData = JSON.parse(record.sParams);
+ if(commonUtils.isNotEmptyArr(selectedData)) {
+ selectedData.forEach((itemS) => {
+ sParamData.forEach(j => {
+ if (!Object.prototype.hasOwnProperty.call(itemS?.data || {}, j?.sParamKey)) return;
+ const value = itemS?.data?.[j.sParamKey];
+ if (j) j.sParamValue = value;
+ })
+ 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 ( sName === 'sParamsNew') { // 工艺参数NEW
+ const { processConfig, enabled, sModelsType } = this.props;
+ const slaveSelectOneData = record;
+ let modalVisible = false;
+ const sProcessParamsSelects = [];
+ let sParamNewData = [];
+ let paramType = '';
+ if (commonUtils.isNotEmptyObject(slaveSelectOneData)) {
+ paramType = slaveSelectOneData.sWorkOrderParam;
+ }
+ if(commonUtils.isEmpty(paramType)) {
+ message.warn('无工艺参数!');
+ return;
+ }
+ /* 工序参数以表格形式展示 列 */
+ const sParamNewConfig = {
+ 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,
+ }];
+ sParamNewConfig.gdsconfigformslave = gdsconfigformslave;
+ const sParamNewColumn = commonFunc.getHeaderConfig(sParamNewConfig);
+ 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]; /* 默认值 */
+ }
+ sParamNewData.push(obj);
+ }
+ }
+ /* 将sParam1中的数据 还原到sParamData数据中 */
+ if(commonUtils.isNotEmptyObject(record.sParamsNew)) {
+ const selectedData = JSON.parse(record.sParamsNew);
+ if(commonUtils.isNotEmptyArr(selectedData)) {
+ selectedData.forEach((itemS) => {
+ sParamNewData.forEach(j => {
+ if (!Object.prototype.hasOwnProperty.call(itemS?.data || {}, j?.sParamKey)) return;
+ const value = itemS?.data?.[j.sParamKey];
+ if (j) j.sParamValue = value;
+ })
+ const iIndex = sParamNewData.findIndex(item => item.sParamName === itemS.sParamName);
+ if(iIndex > -1) {
+ const addState ={};
+ addState.sParamValue = itemS.sParamValue;
+ addState.bSelfCbx = itemS.bSelfCbx;
+ sParamNewData[iIndex] ={...sParamNewData[iIndex], ...addState};
+ }
+ });
+ }
+
+ /* 如果数据集有一个是非选中的则非选中状态 否则全选 */
+ if(commonUtils.isNotEmptyArr(sParamNewColumn)) {
+ const iIndex = sParamNewColumn.findIndex(item => item.dataIndex ==='bSelfCbx');
+ if(iIndex > -1) {
+ const filterData = sParamNewData.filter(item => !item.bSelfCbx);
+ if(commonUtils.isNotEmptyArr(filterData)) {
+ sParamNewColumn[iIndex] ={ ...sParamNewColumn[iIndex], bCheckAll:false};
+ }else {
+ sParamNewColumn[iIndex] ={ ...sParamNewColumn[iIndex], bCheckAll:true};
+ }
+ }
+ }
+ }
+ }
+ this.props.onSaveState({
+ tableRecord: record,
+ tableRecordName: name,
+ sProcessParamsSelects,
+ sParamsNewModalVisible: true,
+ sParamNewConfig,
+ sParamNewColumn,
+ sParamNewData,
+ sParamModalType:'sWork',
+ 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, /* 弹出字段 */
+ });
+ }
+ }
+
+ /* 选择工艺参数点击确定 */
+ handleParamsOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ processData,
+ processRecord,
+ processConfig,
+ sParamData,
+ enabled,
+ sParamModalType
+ } = 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);
+ 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,
+ });
+ }
+ }
+
+ handleParamsNewOk = () => { // 工艺参数弹窗确定按钮
+ const {
+ tableRecordName,
+ [`${tableRecordName}Data`]: processData ,
+ tableRecord: processRecord,
+ processConfig,
+ sParamNewData,
+ enabled,
+ sParamModalType
+ } = 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(sParamNewData)) {
+ let sParamJsonData = '';
+ let sParamSeletedData = sParamNewData.filter(item => item.bSelfCbx);
+ if(commonUtils.isNotEmptyObject(sParamSeletedData)) {
+ const originSParamsNew = JSON.parse(processData[processSelectDataIndex]?.sParamsNew || '[]');
+ if (!Array.isArray(originSParamsNew) || !originSParamsNew.length) return message.error('数据异常');
+ const replaceData = {}
+ sParamSeletedData.forEach(i => (i && i.sParamKey && ( replaceData[i.sParamKey] = i.sParamValue )));
+ sParamSeletedData = originSParamsNew.map( i => ({
+ ...i,
+ data: {
+ ...i.data || {},
+ ...replaceData || {},
+ }
+ }))
+ sParamJsonData = JSON.stringify(sParamSeletedData);
+ }
+ let { handleType } = processData[processSelectDataIndex];
+ handleType = commonUtils.isEmpty(handleType) ? 'update' : handleType;
+ if(sParamModalType === 'sQuo') { /* 报价参数点击确定 */
+ processData[processSelectDataIndex].sQuoParams = sParamJsonData;
+ } else { /* 工单参数点击确定 */
+ processData[processSelectDataIndex].sParamsNew = sParamJsonData;
+ }
+ processData[processSelectDataIndex].handleType = handleType;
+ }
+ }
+ }
+ this.props.onSaveState({
+ [`${tableRecordName}Data`]:processData,
+ sParamsNewModalVisible: false,
+ });
+ } else {
+ this.props.onSaveState({
+ sParamsNewModalVisible: false,
+ });
+ }
+ }
+ /* 获取表格数据 */
+ handleGetTableConfig = async (name, sModelsId) => {
+ if(commonUtils.isNotEmptyObject(sModelsId)) {
+ const newConfig = await this.props.onGetTableConfig(name, sModelsId);
+ if(commonUtils.isNotEmptyObject(newConfig)) {
+ const newColumn = commonFunc.getHeaderConfig(newConfig);
+ this.props.onSaveState({[`${[name]}Config`]: newConfig, [`${[name]}Column`]: newColumn })
+ }
+ }
+ }
+
+ /* 快捷键跳转 */
+ handleQuickViewClick = async (name, sName, record, index , myConfigArr) => {
+ const {
+ slaveConfig,
+ slaveData,
+ dispatch,
+ slaveFilterCondition,
+ slavePagination,
+ slaveOrderBy,
+ sModelsType,
+ formRoute,
+ treeFilterCondition,
+ app,
+ iPageSize,
+ sModelsId,
+ // slaveSelectedData,
+ // masterData,
+ // employeeConfig,
+ } = this.props;
+ console.log('myConfigArr',myConfigArr)
+ 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), /* 刷新方法 */
+ 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,
+ },
+ });
+ }
+ };
+ handleSelect = async (name, selectConfig, selectData) => {
+ const {
+ [`${name}Data`]: tableData, [`${name}Config`]: tableConfig, masterConfig, controlSelectedRowKeys, sModelsId, token, app, tableName, sModelsType,
+ slaveConfig, slave0Config,slave1Config, slave2Config, slave3Config ,slave4Config,
+ } = this.props;
+ let { masterData } = this.props;
+ if(selectConfig?.sControlName && selectConfig?.sControlName.includes('TmpInfoBySql')){
+ const copyConfig = selectConfig;
+ const sTmpInfoBySqlBtnConfig = copyConfig;
+ const sConfigformId = commonUtils.isEmpty(copyConfig) ? '' : copyConfig.sParentId;
+ const sControlName = commonUtils.isNotEmptyObject(copyConfig) && copyConfig.sControlName ? copyConfig.sControlName : 'TmpInfoBySql';
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
+ const sRowData = selectData;
+ const condition = { sConfigformId, sControlName, sRowData };
+ const dataReturn = (await commonServices.postValueService(token, condition, 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)) {
+ let config = masterConfig.gdsconfigformslave.filter(item => item.sControlName.split('.').length === 3 && item.sControlName.includes(selectConfig.sControlName + '.' + key))[0];
+ const sAssignField = config ? config.sAssignField : copyConfig.sAssignField;
+ const sTmpInfoBySqlBtnName = config?.sControlName;
+ 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 (key === 'master' || key === 'TmpInfoBySql' ) {
+ const newRow = Array.isArray(returnData[key]) ? returnData[key][0] : returnData[key];
+ masterData = { ...masterData, ...commonFunc.getAssignFieldValue(sAssignField, newRow) }; // 取赋值字段
+ masterData.maxBillNo = 'sBillNo';
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ allReturnMap.masterData = masterData;
+ } else if (sTmpInfoBySqlBtnName.includes('_add')) { /* 原有数据集不动,新数据插入 */
+ /* 对应字段 */
+ 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 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') || !sTmpInfoBySqlBtnName.includes('_')) { /* 替换 根据对应字段对比 相同的不管 不同的插入 */
+ /* 对应字段 */
+ 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];
+ }
+
+ }
+ console.log('allReturnMap:', allReturnMap);
+ this.props.onSaveState({ ...allReturnMap });
+ }
+ } else {
+ this.props.getServiceError(dataReturn);
+ }
+ }else if(selectConfig?.sControlName ==='BtnGetApiDialog') { /* 回刷单据 */
+ await this.handleGetData(masterConfig, slaveConfig, slave0Config, slave1Config, slave2Config, slave3Config, slave4Config);
+ }
+ }
+ handleSelect1 = async (name, selectConfig, selectData) => {
+ const {
+ masterData, masterConfig, token, sModelsId
+ } = this.props;
+ const _props = this.props;
+ const _this = this;
+ const copyConfig = masterConfig.gdsconfigformslave.filter(item => item.sControlName.split('.').length === 2 && item.sControlName.includes(this.copyName))[0];
+ const sConfigformId = commonUtils.isEmpty(copyConfig) ? '' : copyConfig.sParentId;
+ const sControlName = commonUtils.isNotEmptyObject(copyConfig) && copyConfig.sControlName ? copyConfig.sControlName : 'TmpInfoBySql';
+ const dataUrl = `${commonConfig.server_host}salesorder/getTmpInfoBySql/?sModelsId=${sModelsId}`;
+ const addState = {};
+ const sRowData = selectData;
+ async function fetchData() {
+ const condition = { sConfigformId, sControlName, sRowData };
+ const dataReturn = (await commonServices.postValueService(token, condition, dataUrl)).data;
+ if (dataReturn.code === 1) {
+ const returnData = dataReturn.dataset.rows[0];
+ for (const key in returnData) {
+ let arr = JSON.parse(JSON.stringify(returnData[key]));
+ arr.forEach((item, idx) => {
+ const newCopyTo = {};
+ newCopyTo.master = masterData;
+ let config = masterConfig.gdsconfigformslave.filter(item => item.sControlName.split('.').length === 3 && item.sControlName.includes(selectConfig.sControlName + '.' + key))[0];
+ const sAssignField = config ? config.sAssignField : copyConfig.sAssignField;
+ const newSid = commonUtils.createSid();
+ let mixData = commonFunc.getDefaultData(_props[`${key}Config`] || {}, newCopyTo, { newSid }); // 取默认值
+ mixData = { ...mixData, ...commonFunc.getAssignFieldValue(sAssignField, item, newCopyTo) }; // 取赋值字段
+ mixData.handleType = 'add';
+ mixData.sId = newSid;
+ mixData.sParentId = key === 'mater' || key ==='TmpInfoBySql' ? mixData.sParentId : masterData.sId;
+ if (key === 'master' || key === 'TmpInfoBySql') {
+ mixData.sFormId = _this.props.masterData.sFormId;
+ mixData.sId = _this.props.masterData.sId;
+ mixData.maxBillNo = 'sBillNo';
+ mixData.handleType = commonUtils.isEmpty( _this.props.masterData.handleType) ? 'update' : _this.props.masterData.handleType;
+ arr[idx] = mixData;
+ } else {
+ mixData.sParentId = _this.props.masterData.sId;
+ arr[idx] = mixData;
+ }
+ })
+ const tableName = key === 'mater' || key ==='TmpInfoBySql' ? 'master' : key;
+ if (addState[`${tableName}Data`] === undefined) {
+ addState[`${tableName}Data`] = [];
+ }
+ addState[`${tableName}Data`] = addState[`${tableName}Data`].concat(arr);
+ console.log('结果集', addState);
+ }
+ } else {
+ _this.props.getServiceError(dataReturn);
+ }
+ }
+ await fetchData();
+ if (addState.masterData) {
+ [addState.masterData] = addState.masterData;
+ }
+ if (Object.keys(addState).length) {
+ this.props.onSaveState({...addState});
+ }
+ };
+
+ handleSelectCancel = (name) => {
+ 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) {
+ message.error(`[${item.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;
+ }
+ handleBtnExportSql = () => {
+
+ }
+
+ componentDidUpdate() {
+ if (this.state.initSId) {
+ this.slaveTablePositon();
+ }
+ }
+
+ slaveTablePositon() {
+ if (!this.state.initSId) return;
+ const oSelectedTr = document.querySelector(`#dataBox tr[data-row-key='${this.state.initSId}']`);
+ if (oSelectedTr) {
+ const oTbody = oSelectedTr.parentNode.parentNode.parentNode;
+ if (oSelectedTr && oTbody) {
+ oTbody.scrollTop = oSelectedTr.offsetTop;
+ this.setState({
+ initSId: '',
+ });
+ }
+ }
+ }
+
+ handleTableBlur = async (name, sFieldName, record, tableConfig) => {
+ const { sModelsId, app, token, sModelsType, [`${name}Data`]: tableData, [`${name}Data`]: tableSelectedRowKeys, masterData } = 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' || 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 {
+ this.props.onDropDownBlur(name, sFieldName, record, tableConfig);
+ }
+ };
+
+ /* 单击右键全部更新,弹出窗选择后,更新此列所有数据 (只更新非只读字段) */
+ 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, /* 右击字段 */
+ });
+ }
+
+ /* 单据字段单击右键全部更新,弹出窗选择后,更新此列所有数据。(只更新非只读字段) */
+ 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, /* 右击全部更新弹窗 */
+ });
+ }
+
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ handleTableSelectRowChange = async (name, selectedRowKeys, changeValue, isWait) => {
+ if (name === 'sParamNew' && commonUtils.isNotEmptyArr(selectedRowKeys)) {
+ /* 点击工艺参数列表 根据点击行动态加载配置 */
+ const { sParamNewData, sParamNewConfig } = this.props;
+ /* 找到最后一个选中 */
+ const lastSelectedKeys = selectedRowKeys[selectedRowKeys.length - 1];
+ const iIndex = sParamNewData.findIndex(item => lastSelectedKeys === item.sId);
+ /* 选中数据时 塞入选中行的配置 */
+ if (iIndex > -1) {
+ const sParamObj = sParamNewData[iIndex];
+ const index = sParamNewConfig.gdsconfigformslave.findIndex(item => item.sName === 'sParamValue');
+ if (index > -1) {
+ if (commonUtils.isNotEmptyObject(sParamObj.sDropDownData)) {
+ sParamNewConfig.gdsconfigformslave[index].sDropDownType = 'const';
+ sParamNewConfig.gdsconfigformslave[index].showDropDown = JSON.stringify(sParamObj.sDropDownData);
+ } else {
+ sParamNewConfig.gdsconfigformslave[index].sDropDownType = '';
+ sParamNewConfig.gdsconfigformslave[index].showDropDown = undefined;
+ }
+ }
+ /* 点击时 若没打钩 则选择框打钩 若已经打钩则取消打钩 */
+ if (sParamNewData[iIndex].bSelfCbx) {
+ // sParamData[iIndex] = { ...sParamData[iIndex], bSelfCbx: false };
+ } else {
+ sParamNewData[iIndex] = { ...sParamNewData[iIndex], bSelfCbx: true };
+ }
+ this.props.onSaveState({
+ sParamNewData,
+ });
+ }
+ }
+ if (isWait) {
+ return await this.props.onTableSelectRowChange(name, selectedRowKeys, isWait);
+ } else {
+ this.props.onTableSelectRowChange(name, selectedRowKeys);
+ }
+ }
+
+ handleGetParamsValue = ({ sName, sValue, record = {} }) => {
+ const jsonData = commonUtils.convertStrToObj(sValue, []);
+ if (["sParams", 'sParamsNew'].includes(sName)) {
+ const { sWorkOrderParam: sWorkOrderParamStr } = record;
+ const sWorkOrderParam = commonUtils.convertStrToObj(
+ sWorkOrderParamStr,
+ {}
+ );
+ const sWorkOrderData =
+ jsonData.find(item => item.sParamType === "sWorkOrder") || {};
+ const { data = {} } = sWorkOrderData;
+ const result = [];
+ Object.keys(data).forEach(key => {
+ if (sWorkOrderParam[key] !== undefined) {
+ result.push(`${sWorkOrderParam[key]}: ${data[key]}`);
+ }
+ });
+ return result.join(";");
+ }
+
+ return sValue;
+ };
+
+ handleSelectCommonPopup = (currentPaneName, selectConfig, selectData, tbName) => {
+ const {
+ [`${tbName}SelectedRowKeys`]: tableSelectedRowKeys, masterData, processConfig,
+ } = this.props;
+ let {
+ [`${tbName}Data`]: tableData
+ } = this.props;
+ const addState = {};
+ if(selectConfig.sControlName && selectConfig.sControlName.includes('BtnPopupTray')) {
+ const iIndex = commonUtils.isNotEmptyArr(tableSelectedRowKeys) && commonUtils.isNotEmptyObject(tableSelectedRowKeys[0]) ? tableData.findIndex(item => item.sId === tableSelectedRowKeys[0]) : -1;
+ let dSumProductQty = 0;
+ if (commonUtils.isNotEmptyArr(selectData)) {
+ // eslint-disable-next-line no-unused-vars
+ 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 (selectData.length === 1 || (index === 0 && commonUtils.isEmptyObject(sValue))) {
+ let tableDataRow = {}; // 取默认值
+ tableDataRow = { ...tableData[iIndex] };
+ if (tbName === 'slave') {
+ tableDataRow.sSqlConditionId = tableDataRow.sId;
+ }
+ tableDataRow = { ...tableDataRow, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段
+ tableData[iIndex] = tableDataRow;
+ tableData[iIndex].handleType = commonUtils.isEmpty(tableData[iIndex].handleType) ? 'update' : tableData[iIndex].handleType;
+ } else {
+ let tableDataRowAdd = this.handleTableAdd(tbName, true);
+ if (tbName === 'slave') {
+ tableDataRowAdd.sSqlConditionId = tableDataRowAdd.sId;
+ }
+ tableDataRowAdd = { ...tableDataRowAdd, ...commonFunc.getAssignFieldValue(selectConfig.sAssignField, item, newCopyTo) }; // 取赋值字段0
+ tableData.push(tableDataRowAdd);
+ }
+
+ });
+ tableData.forEach((item, index) => {
+ dSumProductQty = commonUtils.convertFixNum(commonUtils.convertFixNum(commonUtils.isNull(dSumProductQty, 0),6) + commonUtils.convertFixNum(commonUtils.isNull(item.dSampleQty),6),6);
+ });
+ masterData.dInspectQty = commonUtils.convertFixNum(dSumProductQty * 10000, 6);
+ masterData.handleType = commonUtils.isEmpty(masterData.handleType) ? 'update' : masterData.handleType;
+ addState[`${tbName}Data`] = tableData;
+ addState.masterData = masterData;
+ this.props.onSaveState({ ...addState });
+ }
+ } else {
+ this.props.onSelectCommonPopup(currentPaneName, selectConfig, selectData, tbName);
+ }
+ }
+
+ /** 键盘事件监听 */
+ 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);
+ }
+ }
+ }
+
+ render() {
+ const { masterData } = this.props;
+ const imgSrc = commonBusiness.handleAddIcon(masterData);
+ return (
+
+ );
+ }
+ };
+};
diff --git a/src/components/Common/CommonView/index.js b/src/components/Common/CommonView/index.js
new file mode 100644
index 0000000..4a3b65c
--- /dev/null
+++ b/src/components/Common/CommonView/index.js
@@ -0,0 +1,432 @@
+/* eslint-disable object-curly-newline,prefer-destructuring */
+import React, { Component } from 'react';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col, Form, Tooltip } from 'antd';
+import { DoubleRightOutlined } from '@ant-design/icons';
+import commonConfig from '@/utils/config';
+import ShowType from '@/components/Common/CommonComponent';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+
+const FormItem = Form.Item;
+// const EachInputHeight = 32;
+// const Padding = 16;
+// const tableHeaderHeight = 29;
+// const tabHeight = 119;
+export default class CommonView extends Component {
+ // componentWillReceiveProps(nextProps) {
+ // if (nextProps.AutoTableHeight === undefined) {
+ // const masterConfig = nextProps.masterconfig ? nextProps.masterconfig : nextProps.masterConfig;
+ // const masterShowConfigNoMemo = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && !item.sName.toLowerCase().endsWith('memo') && item.sControlName.indexOf('_') === -1) : [];
+ // const masterShowConfigMemo = commonUtils.isNotEmptyObject(masterConfig) ? masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.sName.toLowerCase().endsWith('memo') && item.sControlName.indexOf('_') === -1) : [];
+ // const iNoMemo = masterShowConfigNoMemo.length / 4;
+ // const iMemo = masterShowConfigMemo.length; /* 产品部要求 备注设置成一行到底 */
+ // const Aheight = (Math.ceil(iNoMemo) + iMemo) * EachInputHeight;
+ // const searchMainFormHeight = Aheight + Padding;
+ // const tableHeight = window.innerHeight - tabHeight - searchMainFormHeight - tableHeaderHeight;
+ // // let AutoTableHeight = `calc( 100vh - ${AutoHeight}px - 22px )`;
+ // // const { formRoute } = nextProps;
+ // // if (commonUtils.isNotEmptyObject(formRoute) && formRoute !== '/indexPage/commonBill' && formRoute !== '/indexPage/commonNewBill' && formRoute !== '/indexPage/workOrderNew' && formRoute !== '/indexPage/workOrderPack' && formRoute !== '/indexPage/processCard' && formRoute !== '/indexPage/processCardPack' && formRoute !== '/indexPage/quotation' && formRoute !== '/indexPage/quotationPack' && formRoute !== '/indexPage/elemachineInfo') { /* 单独算基础信息表格高度 */
+ // // AutoTableHeight = `calc( 100vh - ${AutoHeight}px + 80px )`;
+ // // }
+ // this.props.onSaveState({
+ // AutoTableHeight: tableHeight,
+ // });
+ // }
+ // }
+ constructor(props) {
+ super(props);
+ this.state = {
+ openNewTabFlag: false,
+ commonFieldPopupVisible: false,
+ commonFieldPopupTbName: 'name',
+ commonFieldPopupShowConfig: {},
+ randomId: commonUtils.createSid(),
+ previewVisible: false, /* 图片预览弹窗 */
+ previewImage: '', /* 预览图片地址 */
+ expanded: false,
+ bShowArrow: true,
+ };
+ this.showConfigEnabledJson = {};
+ }
+
+ componentDidMount() {
+ this.handleArrow();
+ }
+
+ componentWillReceiveProps() {
+ if (this.state.openNewTabFlag) {
+ const dom = document.getElementsByClassName(`${this.state.randomId}-CommonListSelectTree`)[0];
+ dom.parentElement.parentElement.style.display = 'block';
+ this.setState({
+ openNewTabFlag: false,
+ });
+ }
+ }
+
+ componentDidUpdate() {
+ this.handleArrow();
+ }
+
+ // shouldComponentUpdate(nextProps) {
+ // const { masterData, expandView, enabled } = this.props;
+ // return masterData !== nextProps.masterData || expandView !== nextProps.expandView || enabled !== nextProps.enabled;
+ // }
+ onOpenNewTab = () => {
+ const dom = document.getElementsByClassName(`${this.state.randomId}-CommonListSelectTree`)[0];
+ dom.parentElement.parentElement.style.display = 'none';
+ this.setState({
+ openNewTabFlag: true,
+ });
+ };
+
+ handleArrow = () => {
+ const { expanded } = this.state;
+ if (this.rowRef) {
+ const { scrollHeight, clientHeight } = this.rowRef;
+ const { height } = this.rowRef.getBoundingClientRect();
+ if (!expanded && height && scrollHeight === clientHeight) { // 收缩、高度不为0,没有滚动条
+ if (this.arrowRef && this.arrowRef.style.display !== 'none') {
+ this.arrowRef.style.display = 'none';
+ }
+ }
+ }
+ }
+
+ handleToggle = () => {
+ const { expandView } = this.props;
+ this.props.onSaveState({ expandView: !expandView });
+ };
+ handleViewClick = (name, sName, record, index, myConfig) => {
+ this.props.onViewClick(name, sName, record, index, myConfig);
+ };
+ /* 字段弹窗 */
+ handleFieldPopupModal= (showConfig, name) => {
+ this.setState({
+ commonFieldPopupVisible: true,
+ commonFieldPopupTbName: name,
+ commonFieldPopupShowConfig: showConfig,
+ });
+ }
+ /* 所有备注非编辑状态下点击链接可以弹出备注窗体 */
+ handleMemoShow = (name, sName, record, index, showConfig) => {
+ if (commonUtils.isNotEmptyObject(record)) {
+ const sMemo = showConfig.sName;
+ const title = showConfig.showName;
+ const sCurrMemoProps = {
+ title,
+ name,
+ sValue: record[sName],
+ sMemoField: sMemo,
+ bVisibleMemo: true,
+ sRecord: record,
+ sMemoConfig: showConfig,
+ bOnlyShow: true,
+ };
+ this.props.onSaveState({ sCurrMemoProps });
+ }
+ }
+ handleSelectCommonFieldPopup = (name, selectConfig, selectData) => {
+ const { commonFieldPopupTbName, commonFieldPopupShowConfig } = this.state;
+ this.props.onSelectCommonPopup(name, selectConfig, selectData, commonFieldPopupTbName, commonFieldPopupShowConfig);
+ };
+ handleSelectCancel = (modelVisible) => {
+ this.setState({
+ [modelVisible]: false,
+ });
+ };
+
+ /* 预览缩略图 */
+ handlePreviewImage= (e, dataUrlArr) => {
+ if (commonUtils.isNotEmptyObject(dataUrlArr)) {
+ const { token } = this.props.app;
+ const previewImageArr = [];
+ dataUrlArr.forEach((item) => {
+ const dataPreviewUrl = `${commonConfig.file_host}file/download?savePathStr=${item}&width=800&&height=500&sModelsId=100&token=${token}`; /* 预览 */
+ previewImageArr.push(dataPreviewUrl);
+ });
+ this.setState({
+ previewImage: previewImageArr,
+ previewVisible: true,
+ });
+ }
+ };
+
+ handleCancelModal = (modelVisible) => {
+ this.setState({
+ [modelVisible]: false,
+ });
+ };
+
+ handleKeyDown = (masterShowConfig = [], e, record, sName) => {
+ let { keyCode } = e;
+ if (keyCode === 13) {
+ keyCode = 39;
+ }
+
+ if ([37, 39].includes(keyCode)) {
+ const masterSortConfig = masterShowConfig.filter(item => this.showConfigEnabledJson[item.sName]).sort((a, b) => a.iOrder - b.iOrder);
+ const iIndex = masterSortConfig.findIndex(item => item.sName === sName);
+ if (iIndex === -1) return;
+ let iNewIndex = keyCode === 37 ? iIndex - 1 : iIndex + 1;
+ iNewIndex = Math.max(0, iNewIndex);
+ iNewIndex = Math.min(iNewIndex, masterSortConfig.length - 1);
+ if (iIndex !== iNewIndex) {
+ commonUtils.focus(masterSortConfig[iNewIndex].sName, e, this.rowRef);
+ }
+ }
+ }
+
+ render() {
+ const { sModelsId, enabled, sUseInfo, app, sModelsType, tableConfigType, isEnabledPlcNo } = this.props;
+ const { commonFieldPopupVisible, randomId, previewVisible, previewImage, expanded, bShowArrow } = this.state;
+ let { masterData } = this.props;
+ masterData = masterData === undefined ? {} : masterData;
+
+ let masterShowConfig = [];
+ const masterConfig = this.props.onMergeMasterConfig();
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ if (tableConfigType) {
+ masterShowConfig = masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.sControlName.split('_')[1] === tableConfigType);
+ } else {
+ masterShowConfig = masterConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.sControlName.indexOf('_') === -1);
+ }
+ }
+
+ const formItemLayout = { labelCol: { span: 2, style: { color: 'rgba(0, 0, 0, 0.65)', backgroundColor: '#BFEFFF' } }, wrapperCol: { span: 22 } };
+
+ /* 字段弹窗功能 */
+ let commonFieldPopupProps = {};
+ let commonFieldPopupTitle = '选择弹窗';
+ if (commonUtils.isNotEmptyObject(this.props)) {
+ let commonFieldPopupConfig = {};
+ const { masterConfig, sModelsId } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => commonUtils.isNotEmptyObject(item.sName) && item.sDropDownType === 'popup');
+ if (iIndex > -1) {
+ commonFieldPopupConfig = masterConfig.gdsconfigformslave[iIndex];
+ commonFieldPopupTitle = commonUtils.isNotEmptyObject(commonFieldPopupConfig) && commonUtils.isNotEmptyObject(commonFieldPopupConfig.sActiveName) ? commonFieldPopupConfig.sActiveName : commonFieldPopupTitle;
+ commonFieldPopupProps = {
+ app: {
+ ...this.props.app,
+ currentPane: {
+ name: 'commonPopup',
+ config: commonFieldPopupConfig,
+ conditonValues: this.props.getSqlCondition(commonFieldPopupConfig),
+ title: commonFieldPopupTitle,
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: commonFieldPopupConfig.sActiveId,
+ key: sModelsId + commonFieldPopupConfig.sId,
+ sModelsType: 'search/commonPopup',
+ select: this.handleSelectCommonFieldPopup,
+ selectCancel: this.handleSelectCancel.bind(this, 'commonFieldPopupVisible'),
+ },
+ },
+ dispatch: this.props.dispatch,
+ content: this.props.content,
+ id: randomId,
+ onOpenNewTab: this.onOpenNewTab,
+ outerMasterData: this.props.masterData,
+ realizeHeight: this.props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+ }
+ }
+
+ if (!this.initLoaded && commonUtils.isNotEmptyObject(masterConfig)) {
+ this.initLoaded = 1;
+ const arrowConfig = masterConfig.gdsconfigformslave.find(item => item.sControlName === 'commonViewArrow');
+ if (arrowConfig) {
+ this.initLoaded = 2;
+ const { bVisible, sDefault } = arrowConfig;
+ if (bVisible && sDefault === '1') {
+ this.setState({
+ expanded: true,
+ });
+ }
+ if (!bVisible) {
+ this.setState({
+ expanded: true,
+ bShowArrow: false,
+ });
+ }
+ }
+ }
+ if (this.initLoaded === 1 && masterData.handleType === 'add') {
+ this.initLoaded = 2;
+ this.setState({
+ expanded: true,
+ });
+ }
+
+ return (
+
+
+ {
+ bShowArrow && location.pathname !== '/indexPage/commonCostomTabBill' && commonUtils.isNotEmptyArr(masterShowConfig) ? (
+ { this.arrowRef = ref; }}
+ >
+ {
+ const resize = new Event('resize');
+ window.dispatchEvent(resize);
+ this.setState({ expanded: !expanded });
+ }}
+ />
+
+ ) : ''
+ }
+ { this.rowRef = ref; }}>
+ {
+ masterShowConfig.map((child) => {
+ const sMemo = child.sName.toLowerCase().endsWith('memo');
+ const iRowNum = child.iColValue === 1 ? 6 : 1; /* 每个字段占的网格个数 ,网格总个数是24 */
+ const iColValue = sMemo ? 24 : child.iColValue * iRowNum; /* 跨度 */
+ // const iColValue = sMemo ? 24 : child.iColValue * 6; /* 跨度 */
+ const iOrder = sMemo ? 100 : child.iOrder > 100 ? 100 : child.iOrder; /* 排序 */
+ const sFormulaMemo = child.sName.toString() === 'sFormulaMemo' ? 'none' : 'block';
+ // sUseInfo是指被其他单据调用,或者被审核
+ let enabledNew = (enabled && !child.bReadonly && !child.specialControl && commonUtils.isEmpty(sUseInfo));
+ if (child.iTag === 1) {
+ enabledNew = false;
+ } else if (child.iTag === 3 && !masterData.bCheck) { /* 当非审核状态下, 初始值为3才能编辑 */
+ enabledNew = true;
+ }
+ // 设备信息页面修改MES系统PLC编号,控制是否输入
+ if (sModelsType === 'element/machineInfo' && child.sName === 'iPlcNo') {
+ enabledNew = isEnabledPlcNo;
+ }
+
+ /* 红冲中的单据 不可修改 */
+ if (commonUtils.isNotEmptyObject(masterData) && ((commonUtils.isNotEmptyObject(masterData.sMinusSrcId)) || commonUtils.isNotEmptyObject(masterData.sMinusUsed))) {
+ if (app?.currentPane?.copyTo?.name && app.currentPane.copyTo.name.toLowerCase().includes('portion')) {
+ // 部分红冲中可修改的字段
+ // const iIndex = child.sControlName && child.sControlName.includes('portionField');
+ // enabledNew = iIndex !== -1;
+
+ // 部分红冲时备注可以更改
+ if ((!child.sControlName || !child.sControlName.toLowerCase().includes('memo')) && !['tCreateDate'].includes(child?.sName)) {
+ enabledNew = false;
+ }
+ } else {
+ // eslint-disable-next-line
+ if (!['tCreateDate'].includes(child?.sName)) {
+ enabledNew = false;
+ }
+ }
+ }
+
+ this.showConfigEnabledJson[child.sName] = enabledNew;
+ const showTypeProps = {
+ app,
+ iColValue,
+ record: masterData,
+ name: 'master',
+ form: this.props.form,
+ formId: sModelsId,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ getDateFormat: this.props.getDateFormat,
+ onChange: this.props.onChange,
+ showConfig: child,
+ tableConfig: masterConfig,
+ formItemLayout: sMemo ? formItemLayout : {},
+ textArea: sMemo,
+ enabled: enabledNew,
+ dataValue: masterData[child.sName],
+ bTable: false,
+ onFilterDropDownData: this.props.onFilterDropDownData,
+ onDropDownBlur: this.props.onDropDownBlur,
+ onViewClick: this.handleViewClick,
+ onMemoShow: this.handleMemoShow,
+ onSaveState: this.props.onSaveState,
+ onFieldPopupModal: this.handleFieldPopupModal, /* 字段选择弹窗 */
+ onPreviewImage: this.handlePreviewImage, /* 预览缩略图 */
+ onCostomChange: this.props.onCostomChange, // 控件后自定义按钮事件
+ sBtnSendDialogConfigList: this.props.sBtnSendDialogConfigList, // 校验并获取物料主数据按钮配置
+ onToolBarBtnClick: this.props.onToolBarBtnClick, // 工具栏按钮事件
+ onExecInstructSet: this.props.onExecInstructSet, // 调用指令集
+ onKeyDown: this.handleKeyDown.bind(this, masterShowConfig),
+ };
+ return (
+
+
+ {masterData !== undefined && commonUtils.isEmptyObject(masterData[child.sName]) &&
+ (
+ [
+ 'sBillNo',
+ 'sMakePerson',
+ 'tCheckDate',
+ 'sCheckPerson',
+ 'sUpdatePerson',
+ 'tUpdate',
+ 'tMakeDate',
+ ].includes(child.sName)
+ ) ?
+
+ {sModelsType !== 'smg/sendMailMsg' ? '保存后自动生成' : '发送消息无需生成单据号'}
+ : '' }
+
+ );
+ })
+ }
+
+ {
+ /*
+
+ */
+ }
+ {
+ previewVisible && commonUtils.isNotEmptyArr(previewImage) ?
+
+
+
+ : ''
+ }
+ {
+ commonFieldPopupVisible ?
+
+
+
+ : ''
+ }
+
+
+ );
+ }
+}
diff --git a/src/components/Common/CommonView/index.less b/src/components/Common/CommonView/index.less
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/components/Common/CommonView/index.less
diff --git a/src/components/Common/CommonViewDragable/index.js b/src/components/Common/CommonViewDragable/index.js
new file mode 100644
index 0000000..9f29f27
--- /dev/null
+++ b/src/components/Common/CommonViewDragable/index.js
@@ -0,0 +1,637 @@
+/* eslint-disable */
+import React, {
+ useContext,
+ useEffect,
+ useReducer,
+ useRef,
+ useState
+} from "react";
+import "@ant-design/compatible/assets/index.css";
+import { Tabs, Tooltip, message } from "antd";
+import ShowType from "@/components/Common/CommonComponent";
+import * as commonBusiness from "@/components/Common/commonBusiness";
+import StaticEditTable from "@/components/Common/CommonTable";
+import * as commonUtils from "@/utils/utils";
+import * as rglUtils from "./rglUtils";
+import RGL, { WidthProvider } from "react-grid-layout";
+import styles from "./index.less";
+
+const ReactGridLayout = WidthProvider(RGL);
+const { myContext, reducer } = commonUtils;
+
+const initialState = {
+ // sParamList: ["sProcess", "sReport", "sWorkOrder", "sNorm", "sTest"],
+ // sParamNameList: ["工序参数", "上报参数", "工单参数", "标准书参数", "测试参数"],
+ selectedData: {} // 当前选中数据
+};
+
+// 可拖拽组件
+const CommonViewDragable = props => {
+ const { tableName } = props;
+ const [state, dispatch] = useReducer(reducer, initialState);
+
+ const selectedRowKeys = props[`${tableName}SelectedRowKeys`] || [];
+ const key = selectedRowKeys[0] || commonUtils.createSid();
+ const selectedData = handleGetSelectedData(props);
+
+ // 根据选中节点获取选中数据
+ useEffect(
+ () => {
+ dispatch(["saveState", { selectedData }]);
+ },
+ [selectedRowKeys[0], JSON.stringify(selectedData)]
+ );
+
+ return (
+
+
+
+
+
+ );
+};
+
+const TabComponent = () => {
+ const { props } = useContext(myContext);
+ const { hideTabsNav, sParamData = [] } = props;
+ return (
+ ({
+ label: sParamName,
+ key: sParamType,
+ children:
+ }))}
+ />
+ );
+};
+
+const TabPaneComponent = childProps => {
+ const { props } = useContext(myContext);
+ const { sParamType } = childProps;
+ const selectedData = handleGetSelectedData(props);
+ const fieldsName = `b${sParamType.replace("s", "").trim()}ParamTable`;
+ const bTable = selectedData[fieldsName];
+ return (
+
+ {bTable ? (
+
+ ) : (
+
+ )}
+
+ );
+};
+
+const ParamTableComponent = childProps => {
+ const { props, hooksProps } = useContext(myContext);
+ const { tableName } = props;
+ const { selectedData } = hooksProps;
+ const { sParamType } = childProps;
+
+ const [paramListTableProps, setParamListTableProps] = useState(null);
+ const xlyTableRef = useRef(null);
+
+ const tableData = props[`${tableName}Data`] || [];
+ useEffect(
+ () => {
+ if (commonUtils.isNotEmptyObject(selectedData)) {
+ const result = rglUtils.getTableParams(
+ sParamType,
+ selectedData,
+ xlyTableRef
+ );
+ setParamListTableProps({
+ ...commonBusiness.getTableTypes(sParamType, {
+ ...props,
+ ...result
+ }),
+ bSParamTable: true,
+ // enabled: true,
+ tableProps: {
+ AutoTableHeight: handleGetTableHeight(props, xlyTableRef, true)
+ },
+ onDataChange: (...args) => {
+ handleDataChange(props, args);
+ }
+ });
+ }
+ },
+ [JSON.stringify(selectedData), tableData.length]
+ );
+
+ return (
+
+ {paramListTableProps && }
+
+ );
+};
+
+const RGLComponent = childProps => {
+ const { props, hooksProps } = useContext(myContext);
+ const { tableName } = props;
+ const { selectedData } = hooksProps;
+ const { sParamType } = childProps;
+ const xlyRGLRef = useRef(null);
+ // const [maxHeight, setMaxHeight] = useState("auto");
+ const [rglConfig, setRglConfig] = useState({});
+ const {
+ layout = [],
+ configs = [],
+ paramData = {},
+ record = {},
+ recordDefault = {}
+ } = rglConfig;
+ const [layoutKey, setLayoutKey] = useState(0);
+ useEffect(
+ () => {
+ if (commonUtils.isNotEmptyObject(selectedData)) {
+ const result = rglUtils.getReactGridLayout(
+ sParamType,
+ selectedData,
+ props.sModelsId,
+ props.formRoute
+ );
+ setLayoutKey(selectedData.sId);
+ setRglConfig(result);
+ }
+ },
+ [JSON.stringify(selectedData)]
+ );
+
+ // const tableData = props[`${tableName}Data`] || [];
+ // useEffect(
+ // () => {
+ // setMaxHeight(handleGetTableHeight(props, xlyRGLRef));
+ // },
+ // [tableData.length]
+ // );
+
+ return configs.length ? (
+
+
+ {configs.map(child => {
+ const showTypeProps = handleGetShowTypeProps({
+ sParamType,
+ child,
+ props,
+ layout,
+ record,
+ recordDefault
+ });
+
+ return (
+
+ {/* {showTypeProps.layoutW === 1 ? (
+
+
+
+
+
+ ) : ( */}
+
+
+
+
+
+ {/* )} */}
+
+ );
+ })}
+
+
+ ) : (
+
+ );
+};
+
+const EmptyComponent = () => {
+ return 暂无数据
;
+};
+
+// 获取选中数据
+const handleGetSelectedData = props => {
+ const { tableName } = props;
+ const iIndex = handleGetSelectedDataIndex(props);
+ if (iIndex !== -1) {
+ return props[`${tableName}Data`][iIndex];
+ } else {
+ return {};
+ }
+};
+
+// 获取选中数据index
+const handleGetSelectedDataIndex = props => {
+ const { tableName } = props;
+ 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;
+};
+
+// 获取表单参数
+const handleGetShowTypeProps = params => {
+ const { sParamType, child, props, layout, record, recordDefault } = params;
+ const { app, form, tableName, comparedTableId, bSimpleMode } = props;
+
+ // 计算标题和组件的宽度比
+ let w = 6;
+ let h = 1;
+ const iIndex = layout.findIndex(item => item.i === child.sName);
+ if (iIndex !== -1) {
+ w = layout[iIndex].w;
+ h = layout[iIndex].h;
+ }
+ const flexWidth = w > 2 ? (3 * 66) / w : 0;
+ const formItemLayout = {
+ labelCol: {
+ flex: flexWidth + "%",
+ style: {
+ color: "rgba(0, 0, 0, 0.65)",
+ backgroundColor: "#BFEFFF"
+ }
+ },
+ wrapperCol: { flex: "auto" }
+ };
+
+ if (props.processTitleWidth) {
+ formItemLayout.labelCol.flex = props.processTitleWidth;
+ }
+
+ let bDisabled = !props.enabled;
+ const config = props[`${tableName}Config`];
+ if (commonUtils.isNotEmptyObject(config)) {
+ const sParamsConfig = config.gdsconfigformslave.find(
+ item => item.sName === "sParams"
+ );
+ if (sParamsConfig && sParamsConfig.iTag === 1) {
+ bDisabled = true;
+ }
+ }
+
+ if (child.bReadOnly) {
+ bDisabled = true;
+ }
+
+ const selectData = handleGetSelectedData(props);
+
+ const bIFace = ["单双面", "印面"].includes(child.showName);
+ const bAlumiteBomBillNo =
+ child.showName === "电化铝BOM" || child.showName === "电化铝版本";
+
+ let iFaceConfig = {};
+ let alumiteBomBillNoConfig = {};
+
+ let showConfig = { ...child };
+ if (!bSimpleMode) {
+ if (bIFace) {
+ iFaceConfig = config.gdsconfigformslave.find(
+ item => item.sName === "iFace"
+ );
+ showConfig = {
+ ...iFaceConfig,
+ sName: showConfig.sName,
+ showName: showConfig.showName,
+ bVisible: showConfig.bVisible
+ };
+ } else if (bAlumiteBomBillNo) {
+ alumiteBomBillNoConfig = config.gdsconfigformslave.find(
+ item => item.sName === "sAlumiteBomBillNo"
+ );
+ showConfig = {
+ ...alumiteBomBillNoConfig,
+ sName: showConfig.sName,
+ showName: showConfig.showName,
+ bVisible: showConfig.bVisible
+ };
+ }
+ }
+
+ const getDataValue = () => {
+ if (props.bSimpleMode) {
+ return record[child.sName];
+ } else if (child.showName === "色序") {
+ return selectData.sColorSerialMemo;
+ } else if (bIFace) {
+ if (commonUtils.isNotEmptyObject(iFaceConfig)) {
+ const showDropDown = commonUtils.convertStrToObj(
+ iFaceConfig.showDropDown
+ );
+ return showDropDown[selectData.iFace] || "";
+ } else {
+ return record[child.sName];
+ }
+ } else if (bAlumiteBomBillNo) {
+ return selectData.sAlumiteBomBillNo;
+ } else {
+ return record[child.sName];
+ }
+ };
+
+ const processTbName =
+ location.pathname === "/indexPage/commonCostomTabBill"
+ ? "slave0"
+ : "process";
+
+ return {
+ ...props,
+ className: h > 1 ? "multiLine" : "",
+ key: `${child.sName}_${flexWidth}`,
+ name: !bSimpleMode && bAlumiteBomBillNo ? tableName : sParamType,
+ formItemLayout,
+ onChange: (...args) => {
+ handleDataChange(
+ { ...props, bIFace, bAlumiteBomBillNo, showConfig, recordDefault },
+ args
+ );
+ },
+ onViewClick: props.handleViewClick,
+ enabled: !bDisabled,
+ bTable: true,
+ bViewTable: true,
+ dataValue: getDataValue(),
+ costomClassName: "",
+ layoutW: w,
+ bSColorSerialMemo:
+ !bSimpleMode && child.showName === "色序" && props.onViewChoose,
+ onViewChoose: () => {
+ props.onViewChoose("process", "sColorSerialMemo", selectData);
+ },
+ onFieldPopupModal: showConfig => {
+ if (window[`${comparedTableId}FieldPopupModal`]) {
+ if (bAlumiteBomBillNo) {
+ window[`${comparedTableId}FieldPopupModal`](
+ { ...showConfig, sName: "sAlumiteBomBillNo" },
+ processTbName
+ );
+ } else {
+ window[`${comparedTableId}FieldPopupModal`](showConfig, "process");
+ }
+ }
+ },
+ record: !bSimpleMode && bAlumiteBomBillNo ? selectData : record,
+
+ // record: { 'sParam1': 111, 'sParam2': 222,'sParam3': 333,'sParam4': 444,'sParam5': 555 },
+ // sId: viewRow.sId,
+ app,
+ form,
+ getSqlDropDownData: props.getSqlDropDownData,
+ getSqlCondition: props.getSqlCondition,
+ handleSqlDropDownNewRecord: props.handleSqlDropDownNewRecord,
+ getFloatNum: props.getFloatNum,
+ showConfig: {
+ ...showConfig,
+ sName: showConfig.sNameParam ? showConfig.sNameParam : showConfig.sName
+ },
+ textArea: h > 2,
+ formRoute: props.formRoute,
+ onFieldDoubleClick: props.handleFieldDoubleClick
+ };
+};
+
+// 判断是否在弹出框
+const bInModal = el => {
+ if (commonUtils.isEmpty(el) || commonUtils.isEmpty(el.classList)) {
+ return false;
+ } else if (el.classList.contains("ant-modal-root")) {
+ return true;
+ } else {
+ return bInModal(el.parentNode);
+ }
+};
+
+// 获取表格高度
+const handleGetTableHeight = (props, ref, bTable) => {
+ let tableHeight = "auto";
+ if (bInModal(ref.current)) {
+ tableHeight = "60vh";
+ } else {
+ const { comparedTableId } = props;
+ if (comparedTableId) {
+ const oTable = document.querySelector(`#${comparedTableId}`);
+ if (oTable) {
+ const oContainer = oTable.querySelector(".ant-table-container");
+ if (oContainer) {
+ tableHeight = oContainer.getBoundingClientRect().height;
+ if (bTable) {
+ tableHeight -= 30;
+ }
+ tableHeight = Math.max(tableHeight, 29 * 3); // 最少三行高度
+ }
+ }
+ }
+ }
+ return tableHeight;
+};
+
+// 数据修改
+const handleDataChange = (props, args) => {
+ const {
+ tableName,
+ bIFace,
+ bAlumiteBomBillNo,
+ bSimpleMode,
+ recordDefault
+ } = props;
+ const [sParamType, sName, returnValue, _sId, _dropDownDataNew, record] = args;
+
+ if (
+ returnValue[sName] &&
+ typeof returnValue[sName] === "string" &&
+ returnValue[sName].includes('"')
+ ) {
+ message.error("输入框不允许输入双引号");
+ return;
+ }
+ const iIndex = handleGetSelectedDataIndex(props);
+ if (iIndex !== -1) {
+ const tableData = props[`${tableName}Data`];
+
+ // 获取params数据
+ const { sParams, [`${sParamType}Param`]: sParamStr } = tableData[iIndex];
+ const recordDataAll = commonUtils.convertStrToObj(sParams, []);
+ const recordItemIndex = recordDataAll.findIndex(
+ item => item.sParamType === sParamType
+ );
+
+ let dataNew = {};
+ if (props.showConfig && props.showConfig.sNameParam) {
+ dataNew[props.showConfig.sName] = returnValue[sName];
+ }
+ dataNew =
+ record && record.sParamKey
+ ? { [record.sParamKey]: returnValue[sName] }
+ : { ...dataNew, ...returnValue };
+
+ if (recordItemIndex !== -1) {
+ let tempData = {
+ ...recordDefault,
+ ...recordDataAll[recordItemIndex].data,
+ ...dataNew
+ };
+ tempData = handleAssignField(
+ props,
+ recordDefault,
+ tempData,
+ sParamStr,
+ sName
+ );
+ recordDataAll[recordItemIndex].data = tempData;
+ } else {
+ let tempData = {
+ ...recordDefault,
+ ...dataNew
+ };
+ tempData = handleAssignField(
+ props,
+ recordDefault,
+ tempData,
+ sParamStr,
+ sName
+ );
+ recordDataAll.push({
+ sParamType,
+ data: tempData
+ });
+ }
+
+ const { [`${sParamType}Param`]: paramConfigStr } = tableData[iIndex];
+ const paramConfig = commonUtils.convertStrToObj(paramConfigStr);
+ const sAssFieldName = sName.replace("sParam", "sParamAssFieldName");
+ if (commonUtils.isNotEmptyStr(paramConfig[sAssFieldName])) {
+ paramConfig[sAssFieldName].split(",").map(item => {
+ tableData[iIndex][item] = dataNew[sName];
+ });
+ }
+
+ tableData[iIndex].sParams = commonUtils.convertObjToStr(recordDataAll);
+ tableData[iIndex].handleType = tableData[iIndex].handleType || "update";
+
+ if (!bSimpleMode) {
+ if (bIFace) {
+ tableData[iIndex].iFace = isNaN(returnValue[sName])
+ ? returnValue[sName]
+ : Number(returnValue[sName]);
+ }
+ if (bAlumiteBomBillNo) {
+ tableData[iIndex].sAlumiteBomBillNo = returnValue[sName];
+ }
+ }
+
+ if (props.onCostomSaveData) {
+ props.onCostomSaveData(tableData);
+ } else {
+ props.onSaveState({ [`${tableName}Data`]: tableData });
+ }
+ }
+};
+
+// 处理赋值字段
+const handleAssignField = (
+ props,
+ recordDefault,
+ tempData,
+ sParamStr,
+ sName
+) => {
+ const sParam = commonUtils.convertStrToObj(sParamStr);
+ let sParamAssignFieldList = Object.keys(sParam).reduce((result, key) => {
+ if (key.startsWith("sParamAssignField")) {
+ const assignField = sParam[key];
+ const iOrder = Number(key.replace("sParamAssignField", ""));
+ if (!sParam[`sParamDropDownType${iOrder}`]) {
+ const sParamName = `sParam${iOrder}`;
+ const sParamFieldName = sParam[`sParamFieldName${iOrder}`];
+ result.push({
+ sParamName,
+ sParamFieldName,
+ assignField
+ });
+ }
+ }
+ return result;
+ }, []);
+
+ sParamAssignFieldList = sParamAssignFieldList.filter(item => {
+ const { assignField } = item;
+ const result = assignField.split(/[^a-zA-Z0-9]+/).filter(Boolean);
+ return result.includes(sName);
+ });
+
+ if (sParamAssignFieldList.length) {
+ sParamAssignFieldList.forEach(item => {
+ const { sParamName, sParamFieldName, assignField } = item;
+ let result;
+ try {
+ const str = Object.keys({ ...recordDefault, ...tempData }).reduce(
+ (pre, cur) => {
+ if (cur.startsWith("d") || cur.startsWith("i")) {
+ return `${pre}let ${cur} = ${tempData[cur]}; `;
+ } else {
+ return `${pre}let ${cur} = "${tempData[cur]}"; `;
+ }
+ },
+ ""
+ );
+ try {
+ result = eval(str + assignField);
+ } catch (error) {
+ result = eval(str.replace(/let\ /g, "var ") + assignField);
+ }
+ } catch (error) {}
+ if (result !== undefined) {
+ tempData[sParamName] = result;
+ if (sParamFieldName) {
+ tempData[sParamFieldName] = result;
+ }
+ }
+ });
+ }
+
+ return tempData;
+};
+
+export default CommonViewDragable;
+
+/*
+ props参数:
+ {
+ hideTabsNav: boolean, // 是否隐藏tab导航
+ sParamData: Array, // tab展示的参数 格式[{ sParamType: 'sWorkOrder', sParamName: '工单参数' }, ...{} ]
+ selectedData: {}, // 当前选中数据
+ tableName: 'process', // 工序表名,用于修改数据
+ }
+**/
diff --git a/src/components/Common/CommonViewDragable/index.less b/src/components/Common/CommonViewDragable/index.less
new file mode 100644
index 0000000..b3a09d8
--- /dev/null
+++ b/src/components/Common/CommonViewDragable/index.less
@@ -0,0 +1,65 @@
+.commonViewDragable {
+ width: 100%;
+ height: 100%;
+
+ :global {
+
+ // 隐藏tabs头
+ .hideTabsNav {
+ .ant-tabs-nav {
+ display: none;
+ }
+ }
+
+ // tab内容
+ .ant-tabs-tabpane {
+ width: 100%;
+ height: 100%;
+
+ .tabPaneComponent {
+ width: 100%;
+ height: 100%;
+
+ .emptyComponent {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+
+ .xlyTable {
+ width: 100%;
+ height: 100%;
+ }
+ }
+ }
+
+ .showType {
+ *:not(.ant-select-arrow):not(.sActiveIdStyle_viewChooseSpan) {
+ height: 100% !important;
+ }
+
+ input[type="search"][disabled] {
+ background: transparent !important;
+ }
+
+ .ant-form-item-control {
+ min-width: 0;
+ }
+
+ .ant-input-number {
+ width: 100% !important;
+ }
+
+ .multiLine {
+ .ant-form-item-label {
+ label {
+ white-space: wrap;
+ }
+ }
+ }
+ }
+ }
+
+}
\ No newline at end of file
diff --git a/src/components/Common/CommonViewDragable/rglUtils.js b/src/components/Common/CommonViewDragable/rglUtils.js
new file mode 100644
index 0000000..fe2b5d6
--- /dev/null
+++ b/src/components/Common/CommonViewDragable/rglUtils.js
@@ -0,0 +1,337 @@
+/* eslint-disable */
+import * as commonUtils from "@/utils/utils";
+import * as commonFunc from "@/components/Common/commonFunc";
+
+// 获取RGL布局参数
+export function getReactGridLayout(
+ sParamType,
+ selectedData = {},
+ sModelsId = "",
+ formRoute = ""
+) {
+ const {
+ [`${sParamType}Panel`]: panelOld,
+ [`${sParamType}Param`]: param,
+ sParams
+ } = selectedData;
+
+ // 获取params数据
+ const recordDataAll = commonUtils.convertStrToObj(sParams, []);
+ const recordItem =
+ recordDataAll.find(item => item.sParamType === sParamType) || {};
+ let record = recordItem.data || {};
+
+ const recordDefault = {};
+
+ // 拼接config
+ const paramsConfig = {
+ gdsconfigformslave: [
+ {
+ sName: "sId",
+ showName: "sId",
+ bVisible: false
+ }
+ ]
+ };
+ const paramData = commonUtils.convertStrToObj(param);
+ Object.keys(paramData).forEach(key => {
+ const keyInArr = ["sParam"];
+ const keyOutArr = [
+ "sParamColumnConfig",
+ "sParamDropDown",
+ "sParamDefault",
+ "sParamNotEmpty",
+ "sParamNotFirstEmpty",
+ "sParamReadOnly",
+ "sParamAssFieldName",
+ "sParamFieldName",
+ "sParamNotZero",
+ "sParamDropDownType",
+ "sParamAssignField",
+ "sParamSqlCondition",
+ "sParamKeyUpFilter"
+ ];
+ // key包含所有keyInArr 且 不包含keyOutArr
+ if (
+ !keyInArr.some(keyIn => !key.includes(keyIn)) &&
+ !keyOutArr.some(keyOut => key.includes(keyOut))
+ ) {
+ const num = Number(key.replace("sParam", ""));
+ let gdsItem = {
+ sNameParam: commonUtils.isEmpty(paramData["sParamFieldName" + num])
+ ? key
+ : paramData["sParamFieldName" + num],
+ sName: key,
+ showName: paramData[key],
+ bVisible: true
+ };
+
+ /* 判断是否是sql下拉 */
+
+ gdsItem.sAssignField = commonUtils.isEmpty(
+ paramData["sParamAssignField" + num]
+ )
+ ? ""
+ : paramData["sParamAssignField" + num];
+ if (paramData["sParamNotZero" + num]) {
+ gdsItem.bNotZero = true;
+ }
+
+ const sqlDrownName = `sParamDropDown${num}`;
+ if (!commonUtils.isEmpty(paramData[sqlDrownName])) {
+ if (paramData["sParamDropDownType" + num] === "sql") {
+ gdsItem.sDropDownType = "sql";
+ gdsItem.showDropDown = paramData[sqlDrownName];
+ gdsItem.sSqlCondition = paramData["sParamSqlCondition" + num];
+ gdsItem.sKeyUpFilter = paramData["sParamKeyUpFilter" + num];
+ } else {
+ const conStr = JSON.stringify(paramData[sqlDrownName]);
+ gdsItem = {
+ ...gdsItem,
+ ...{ sDropDownType: "const", showDropDown: conStr }
+ };
+ }
+ }
+
+ /* 判断是否是必填 */
+ const bMustFieldName =
+ ["12710101117313076578090", "12710101117054908553170"].includes(
+ sModelsId
+ ) || ["/indexPage/commonCostomTabBill"].includes(formRoute)
+ ? "sParamNotFirstEmpty"
+ : "sParamNotEmpty";
+ const bNotEmptyName = `${bMustFieldName}${num}`;
+ if (paramData[bNotEmptyName]) {
+ gdsItem = {
+ ...gdsItem,
+ bNotEmpty: true
+ };
+ }
+
+ /* 判断是否是只读 */
+ const bReadOnlyName = `sParamReadOnly${num}`;
+ if (paramData[bReadOnlyName]) {
+ gdsItem = {
+ ...gdsItem,
+ bReadOnly: true
+ };
+ }
+
+ /* 判断是否是有默认值 */
+ const sParamDefault = `sParamDefault${num}`;
+ if (paramData[sParamDefault]) {
+ // if (record[key] === undefined) {
+ recordDefault[key] = paramData[sParamDefault];
+ const sParamFieldName = paramData[`sParamFieldName${num}`];
+ if (sParamFieldName) {
+ recordDefault[sParamFieldName] = paramData[sParamDefault];
+ }
+ // }
+ }
+
+ paramsConfig.gdsconfigformslave.push(gdsItem);
+ }
+ });
+
+ record = commonUtils.isNotEmptyObject(record)
+ ? record
+ : { ...recordDefault, ...record };
+
+ const configs = paramsConfig.gdsconfigformslave.filter(item => item.bVisible);
+ const panel = commonUtils.convertStrToObj(panelOld, []);
+ let layout = [];
+ if (commonUtils.isEmptyArr(panel)) {
+ // 如果没有保存过布局数据
+ let flag = 0;
+ layout = configs.map((item, index) => {
+ if (index % 4 === 0 && index !== 0) {
+ flag++;
+ }
+ const minH =
+ item.sName && item.sName.includes("sParamColumnConfig") ? 2 : 1;
+ return {
+ i: item.sName,
+ x: (index - flag * 4) * 6,
+ y: flag,
+ w: 6,
+ h: minH,
+ minH
+ };
+ });
+ } else {
+ // 如果保存过布局数据
+ // 判断配置数据和布局数据的sName是否一致
+ const arrAdd = configs.map(item => item.sName); // 新增的字段
+ const arrDel = []; // 删除的字段
+ const panelArr = panel;
+ panelArr.forEach(({ i: sName }, index) => {
+ const minH = sName && sName.includes("sParamColumnConfig") ? 2 : 1;
+ panelArr[index].minH = minH;
+ panelArr[index].h = Math.max(panelArr[index].h, minH);
+ const iIndex = arrAdd.findIndex(item => item === sName);
+ if (iIndex !== -1) {
+ arrAdd.splice(iIndex, 1);
+ } else {
+ arrDel.push(sName);
+ }
+ });
+
+ if (commonUtils.isEmptyArr(arrAdd) && commonUtils.isEmptyArr(arrDel)) {
+ // 数据没有变化
+ layout = panelArr;
+ }
+
+ if (commonUtils.isNotEmptyArr(arrDel)) {
+ // 有删除的数据
+ arrDel.forEach(sName => {
+ const iIndex = panelArr.findIndex(item => item.i === sName);
+ if (iIndex !== -1) {
+ panelArr.splice(iIndex, 1);
+ }
+ });
+ }
+
+ if (commonUtils.isNotEmptyArr(arrAdd)) {
+ // 有新增的数据
+ let newY = 0; // 新增数据的开始行位置
+ panelArr.forEach(({ y, h }) => {
+ newY = Math.max(y + h, newY);
+ });
+
+ let flag = 0;
+ arrAdd.forEach((sName, index) => {
+ if (index % 4 === 0 && index !== 0) {
+ flag++;
+ }
+ const minH = sName && sName.includes("sParamColumnConfig") ? 2 : 1;
+ panelArr.push({
+ i: sName,
+ x: (index - flag * 4) * 6,
+ y: flag + newY,
+ w: 6,
+ h: minH,
+ minH
+ });
+ });
+ }
+ layout = panelArr;
+ }
+
+ return { layout, configs, paramData, record, recordDefault };
+}
+
+// 获取表格布局参数
+export function getTableParams(sParamType, selectedData = {}, xlyTableRef) {
+ 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
+ }
+ ];
+
+ if (xlyTableRef.current) {
+ gdsconfigformslave[gdsconfigformslave.length - 1].iFitWidth =
+ xlyTableRef.current.getBoundingClientRect().width - 238;
+ }
+
+ const config = {
+ sId: commonUtils.createSid(),
+ bisMutiSelect: false,
+ bMutiSelect: false,
+ gdsconfigformslave
+ };
+
+ const column = commonFunc.getHeaderConfig(config);
+ const data = [];
+
+ const params = commonUtils.isNotEmptyObject(selectedData)
+ ? selectedData[`${sParamType}Param`]
+ : "";
+
+ const sParamJsonObj = commonUtils.convertStrToObj(params);
+ console.log("=====sParamJsonObj", sParamJsonObj);
+ Object.keys(sParamJsonObj).forEach(key => {
+ const keyInArr = ["sParam"];
+ const keyOutArr = [
+ "DropDown",
+ "Default",
+ "NotEmpty",
+ "ReadOnly",
+ "AssFieldName",
+ "FieldName",
+ "NotZero",
+ "DropDownType",
+ "SqlCondition",
+ "KeyUpFilter"
+ ];
+ // key包含所有keyInArr 且 不包含keyOutArr
+ if (
+ !keyInArr.some(keyIn => !key.includes(keyIn)) &&
+ !keyOutArr.some(keyOut => key.includes(keyOut))
+ ) {
+ const obj = {
+ sId: commonUtils.createSid(),
+ sParamKey: key,
+ sParamName: sParamJsonObj[key]
+ };
+ /* 找到数字 找到下拉数据源 */
+ const num = key.replace(/[^\d]/g, "").trim();
+ const number = Number(num);
+ if (number) {
+ const sParamDropDownKey = `sParamDropDown${number}`;
+ obj.sDropDownData = sParamJsonObj[sParamDropDownKey]; /* 下拉 */
+ const sParamDefaultKey = `sParamDefault${number}`;
+ obj.sParamValue = sParamJsonObj[sParamDefaultKey]; /* 默认值 */
+ // 如果保存过值了,取保存后的值
+ // 获取params数据
+ const recordDataAll = commonUtils.convertStrToObj(
+ selectedData.sParams,
+ []
+ );
+ const recordItem =
+ recordDataAll.find(item => item.sParamType === sParamType) || {};
+ const record = recordItem.data || {};
+ if (record[key] !== undefined) {
+ obj.sParamValue = record[key];
+ }
+ }
+ data.push(obj);
+ }
+ });
+
+ return {
+ [`${sParamType}Config`]: config,
+ [`${sParamType}Column`]: column,
+ [`${sParamType}Data`]: data
+ };
+}
diff --git a/src/components/Common/CommonViewTable/index.js b/src/components/Common/CommonViewTable/index.js
new file mode 100644
index 0000000..f751ebc
--- /dev/null
+++ b/src/components/Common/CommonViewTable/index.js
@@ -0,0 +1,430 @@
+/* eslint-disable */
+/* eslint-disable object-curly-newline,prefer-destructuring */
+import React, { Component } from 'react';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col, Divider, Tooltip } from 'antd';
+import ShowType from '@/components/Common/CommonComponent';
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import CommonListSelectTree from '@/components/Common/CommonListSelectTree';
+import CommonListSelect from '@/components/Common/CommonListSelect';
+import * as commonUtils from '@/utils/utils';/* 通用方法 */
+
+
+export default class CommonViewTable extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ openNewTabFlag: false,
+ commonFieldPopupVisible: false,
+ commonFieldPopupTbName: 'name',
+ commonFieldPopupShowConfig: {},
+ randomId: commonUtils.createSid(),
+ };
+ }
+
+ componentWillReceiveProps() {
+ if (this.state.openNewTabFlag) {
+ const dom = document.getElementsByClassName(`${this.state.randomId}-CommonListSelectTree`)[0];
+ dom.parentElement.parentElement.style.display = 'block';
+ this.setState({
+ openNewTabFlag: false,
+ });
+ }
+ }
+
+ // shouldComponentUpdate(nextProps) {
+ // const { masterData, expandView, enabled } = this.props;
+ // return masterData !== nextProps.masterData || expandView !== nextProps.expandView || enabled !== nextProps.enabled;
+ // }
+ onOpenNewTab = () => {
+ const dom = document.getElementsByClassName(`${this.state.randomId}-CommonListSelectTree`)[0];
+ dom.parentElement.parentElement.style.display = 'none';
+ this.setState({
+ openNewTabFlag: true,
+ });
+ };
+ handleToggle = () => {
+ const { expandView } = this.props;
+ this.props.onSaveState({ expandView: !expandView });
+ };
+ handleViewClick = (name, sName, sId) => {
+ this.props.onViewClick(name, sName, sId);
+ };
+ /* 字段弹窗 */
+ handleFieldPopupModal= (showConfig, name, type) => {
+ if (type) {
+ this.setState({
+ commonFieldPopupVisible: true,
+ commonFieldPopupType: type,
+ commonFieldPopupTbName: name,
+ commonFieldPopupShowConfig: showConfig,
+ });
+ } else {
+ this.setState({
+ commonFieldPopupVisible: true,
+ commonFieldPopupTbName: name,
+ commonFieldPopupShowConfig: showConfig,
+ });
+ }
+ }
+ handleSelectCommonFieldPopup = (name, selectConfig, selectData) => {
+ const { commonFieldPopupTbName, commonFieldPopupShowConfig } = this.state;
+ if (selectConfig.sControlName && selectConfig.sControlName.includes('sumeQty')) { /* 数据汇总求和 */
+ this.props.onSelectCommonPopupSum(name, selectConfig, selectData, commonFieldPopupTbName, commonFieldPopupShowConfig);
+ } else {
+ this.props.onSelectCommonPopup(name, selectConfig, selectData, commonFieldPopupTbName, commonFieldPopupShowConfig);
+ }
+ };
+ handleSelectCancel = (modelVisible) => {
+ this.setState({
+ [modelVisible]: false,
+ });
+ };
+
+ render() {
+ // eslint-disable-next-line no-unused-vars
+ const { iColValueView, viewRow = {}, app, tableConfigType, viewConfigs, tableConfig, tableName, slaveName, enabled, viewOrder } = this.props;
+ const { commonFieldPopupVisible, randomId, commonFieldPopupShowConfig, commonFieldPopupType } = this.state;
+ // eslint-disable-next-line no-unused-vars
+ let masterShowConfig = [];
+ if (tableConfigType) {
+ masterShowConfig = commonUtils.isNotEmptyObject(tableConfig) ? tableConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.sControlName.split('_')[1] === tableConfigType) : [];
+ } else {
+ masterShowConfig = commonUtils.isNotEmptyObject(tableConfig) ? tableConfig.gdsconfigformslave.filter(item => item.bVisible && item.sName !== '' && item.sControlName.indexOf('_') === -1) : [];
+ }
+ const formItemLayout = { labelCol: { span: 7, style: { color: 'rgba(0, 0, 0, 0.65)', backgroundColor: '#BFEFFF' } }, wrapperCol: { span: 17 } };
+
+ /* 字段弹窗功能 */
+ let commonFieldPopupProps = {};
+ let commonFieldPopupTitle = '选择弹窗';
+ if (commonFieldPopupType === 'CommonListSelect') {
+ const { sModelsId } = this.props;
+ const commonFieldPopupConfig = commonFieldPopupShowConfig;
+ commonFieldPopupTitle = commonFieldPopupConfig.sActiveName || '详情';
+ const bPassRate = commonFieldPopupShowConfig.sControlName && ( commonFieldPopupShowConfig.sControlName.includes('dReviewPassRate')
+ || commonFieldPopupShowConfig.sControlName.includes('dFeedingPassRate') ); /* 合格率评审数据取过滤后的工序表 */
+ let slaveData = [];
+ if (bPassRate) {
+ const { currentProductTechnologyVer, currentProductCardId, slave0Child1Data, slave0Child1SelectedRowKeys, slave0Data } = this.props;
+ const iSIndex = commonUtils.isNotEmptyArr(slave0Child1Data) ? slave0Child1Data.findIndex(item => slave0Child1SelectedRowKeys.includes(item.sId)) : -1;
+ let controlRow ={};
+ if(iSIndex > -1 ){
+ controlRow = slave0Child1Data[iSIndex];
+ } else if(commonUtils.isNotEmptyArr(slave0Child1Data)) {
+ const controlFilterData = slave0Child1Data.filter(item=> item.sProductCardId === currentProductCardId && item.sProductTechnologyVer === currentProductTechnologyVer );
+ if(commonUtils.isNotEmptyArr(controlFilterData) && controlFilterData.length ===1 ) {
+ controlRow = controlFilterData[0];
+ }
+
+ }
+ const filterData = slave0Data.filter(item=> item.sControlId === controlRow.sId);
+ if(commonUtils.isNotEmptyArr(filterData)) {
+ filterData.forEach((item,index ) => {
+ const newSlaveId = commonUtils.createSid();
+ filterData[index] ={...filterData[index], sSlaveId :newSlaveId};
+ });
+ }
+ slaveData = filterData;
+ }
+
+ commonFieldPopupProps = {
+ app: {
+ ...this.props.app,
+ currentPane: {
+ name: 'commonPopup',
+ config: commonFieldPopupConfig,
+ conditonValues: this.props.getSqlCondition(commonFieldPopupConfig),
+ title: commonFieldPopupTitle,
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: commonFieldPopupConfig.sActiveId,
+ key: sModelsId + commonFieldPopupConfig.sId,
+ sModelsType: bPassRate ? 'search/commonPopupPassRate' : 'search/commonPopup',
+ select: this.handleSelectCommonFieldPopup,
+ // select: () => {},
+ selectCancel: this.handleSelectCancel.bind(this, 'commonFieldPopupVisible'),
+ },
+ bEdit: this.props.enabled,
+ },
+ dispatch: this.props.dispatch,
+ content: this.props.content,
+ id: randomId,
+ onOpenNewTab: this.onOpenNewTab,
+ outerMasterData: this.props.masterData,
+ realizeHeight: this.props.realizeHeight, /* 拖动偏移高度 */
+ readOnly: !enabled || commonFieldPopupConfig.bReadOnly,
+ noChangeDiffMap: true,
+ };
+ if (bPassRate) {
+ commonFieldPopupProps.data = JSON.parse(JSON.stringify(slaveData));
+ }
+ if(commonFieldPopupConfig.sControlName && (
+ commonFieldPopupConfig.sControlName.includes('BtnPopup.dStockUpConsumeQty') ||
+ commonFieldPopupConfig.sControlName.includes('BtnPopup.dMergeProductionQty') ||
+ commonFieldPopupConfig.sControlName.includes('BtnPopup.dWorkPeriodQty') ||
+ commonFieldPopupConfig.sControlName.includes('BtnPopup.dSplitworkQty') ||
+ commonFieldPopupConfig.sControlName.includes('BtnPopup.dCombinedQty') ||
+ commonFieldPopupConfig.sControlName.includes('BtnPopup.dPreMatProductQty')
+ )) {
+ const { slaveData, slaveSelectedRowKeys, sModelsId } = this.props;
+ commonFieldPopupProps.app.currentPane.bEdit = this.props.enabled;
+ if( commonFieldPopupConfig.sControlName.includes('BtnPopup.dCombinedQty')) {
+ /* 工艺评审界面已经选了合版订单,拆分工单界面合版订单的数量不应该能再修改 补印工艺评审 */
+ commonFieldPopupProps.app.currentPane.bEdit = this.props.enabled && (sModelsId === '12710101117054908553170' || sModelsId === '12710101117183304335380');
+ commonFieldPopupProps.readOnly = !commonFieldPopupProps.app.currentPane.bEdit;
+ }
+
+ if( commonFieldPopupConfig.sControlName.includes('BtnPopup.dMergeProductionQty') || commonFieldPopupConfig.sControlName.includes('BtnPopup.dSplitworkQty')
+ || commonFieldPopupConfig.sControlName.includes('BtnPopup.dWorkPeriodQty') ) { /* 合并订单/拆分工单/在制品数量 */
+ /* 拆分工单 */
+ commonFieldPopupProps.app.currentPane.bEdit = this.props.enabled && sModelsId === '12710101117055453458840';
+ commonFieldPopupProps.readOnly = !commonFieldPopupProps.app.currentPane.bEdit;
+ }
+
+ if( commonFieldPopupConfig.sControlName.includes('BtnPopup.dPreMatProductQty')) {
+ /* 销售订单 */
+ commonFieldPopupProps.app.currentPane.bEdit = this.props.enabled && sModelsId === '101251240115016086186007360';
+ commonFieldPopupProps.readOnly = !commonFieldPopupProps.app.currentPane.bEdit;
+ }
+
+ let slaveDataSource = [];
+ if (commonUtils.isNotEmptyArr(slaveSelectedRowKeys)) {
+ const iIndex = slaveData.findIndex(item => item.sId === slaveSelectedRowKeys[0]);
+ if (iIndex > -1) {
+ slaveDataSource = [slaveData[iIndex]];
+ } else if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveDataSource = [slaveData[0]];
+ }
+ } else if (commonUtils.isNotEmptyArr(slaveData)) {
+ slaveDataSource = [slaveData[0]];
+ }
+
+ /* 将备货消耗数据JSON 回传到弹窗,并完成勾选 */
+ commonFieldPopupProps.app.currentPane.slaveDataSource = slaveDataSource; /* 父组件的从表数据集 */
+
+ }
+ // else if(commonFieldPopupConfig.sControlName && commonFieldPopupConfig.sControlName.includes('BtnPopup.dMergeProductionQty')) {
+ // const { slaveData : slaveDataSource } = this.props;
+ // commonFieldPopupProps.app.currentPane.bEdit = this.props.enabled;
+ // /* 将合并生产数据JSON 回传到弹窗,并完成勾选 */
+ // commonFieldPopupProps.app.currentPane.slaveDataSource = slaveDataSource; /* 父组件的从表数据集 */
+ //
+ // } else if(commonFieldPopupConfig.sControlName && commonFieldPopupConfig.sControlName.includes('BtnPopup.dSplitworkQty')) { /* 拆分工单数量 */
+ // const { slaveData : slaveDataSource } = this.props;
+ // commonFieldPopupProps.app.currentPane.bEdit = this.props.enabled;
+ // /* 将合并生产数据JSON 回传到弹窗,并完成勾选 */
+ // commonFieldPopupProps.app.currentPane.slaveDataSource = slaveDataSource; /* 父组件的从表数据集 */
+ //
+ // }else if(commonFieldPopupConfig.sControlName && commonFieldPopupConfig.sControlName.includes('BtnPopup.dPreMatProductQty')) { /* 消耗备料数 */
+ // const { slaveData : slaveDataSource } = this.props;
+ // commonFieldPopupProps.app.currentPane.bEdit = this.props.enabled;
+ // /* 将合并生产数据JSON 回传到弹窗,并完成勾选 */
+ // commonFieldPopupProps.app.currentPane.slaveDataSource = slaveDataSource; /* 父组件的从表数据集 */
+ //
+ // }
+ } else if (commonUtils.isNotEmptyObject(this.props)) {
+ let commonFieldPopupConfig = {};
+ const { masterConfig, sModelsId } = this.props;
+ if (commonUtils.isNotEmptyObject(masterConfig)) {
+ const iIndex = masterConfig.gdsconfigformslave.findIndex(item => commonUtils.isNotEmptyObject(item.sName) && item.sDropDownType === 'popup');
+ if (iIndex > -1) {
+ commonFieldPopupConfig = masterConfig.gdsconfigformslave[iIndex];
+ commonFieldPopupTitle = commonUtils.isNotEmptyObject(commonFieldPopupConfig) && commonUtils.isNotEmptyObject(commonFieldPopupConfig.sActiveName) ? commonFieldPopupConfig.sActiveName : commonFieldPopupTitle;
+ commonFieldPopupProps = {
+ app: {
+ ...this.props.app,
+ currentPane: {
+ name: 'commonPopup',
+ config: commonFieldPopupConfig,
+ conditonValues: this.props.getSqlCondition(commonFieldPopupConfig),
+ title: commonFieldPopupTitle,
+ route: '/indexPage/commonList',
+ formRoute: '/indexPage/commonList',
+ formId: commonFieldPopupConfig.sActiveId,
+ key: sModelsId + commonFieldPopupConfig.sId,
+ sModelsType: 'search/commonPopup',
+ select: this.handleSelectCommonFieldPopup,
+ selectCancel: this.handleSelectCancel.bind(this, 'commonFieldPopupVisible'),
+ },
+ },
+ dispatch: this.props.dispatch,
+ content: this.props.content,
+ id: randomId,
+ onOpenNewTab: this.onOpenNewTab,
+ outerMasterData: this.props.masterData,
+ realizeHeight: this.props.realizeHeight, /* 拖动偏移高度 */
+ };
+ }
+ }
+ }
+
+ // 解决新增数据时组件没有刷新问题
+ const viewRowSId = viewRow.sId || commonUtils.createSid();
+
+ return (
+ commonUtils.isNotEmptyArr(viewConfigs) ?
+
+
+
+ {
+ viewConfigs && viewConfigs.map((child) => {
+ const iOrder = sMemo ? 100 : child.iOrder > 100 ? 100 : child.iOrder; /* 排序 */
+ if (child.sControlName.indexOf('DividerArea') !== -1) {
+ return (
+
+
+ {child.sDefault === 'left' ?
+
+ : ''
+ }
+ {child.showName}
+
+
+ );
+ }
+
+ const iRowNum = child.iColValue === 1 ? 6 : 1; /* 1个字段占的网格个数 ,网格总个数是24 */
+ const iColValue = sMemo ? 24 : child.iColValue * iRowNum; /* 跨度 */ /* 产品部要求 备注设置成一行到底 */
+ const sMemo = child.sName.toLowerCase().endsWith('memo');
+ let enabledNew = (enabled && !child.bReadonly && !child.specialControl);
+ const sFormulaMemo = child.sName.toString() === 'sFormulaMemo' ? 'none' : 'block';
+ if (child.iTag === 1) {
+ enabledNew = false;
+ } else if (child.iTag === 3) {
+ enabledNew = true;
+ }
+ const showTypeProps = {
+ app,
+ iColValue,
+ name: tableName,
+ record: viewRow,
+ sId: commonUtils.isNotEmptyObject(viewRow) ? viewRow.sId : commonUtils.createSid(),
+ form: this.props.form,
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ onChange: this.props.onDataChange,
+ showConfig: child,
+ slaveConfig: this.props[`${slaveName || tableName}Config`],
+ formItemLayout,
+ textArea: sMemo,
+ enabled: enabledNew,
+ sysEnabled: enabled,
+ dataValue: commonUtils.isNotEmptyObject(viewRow) ? viewRow[child.sName] : null,
+ bTable: true,
+ bViewTable: true,
+ formRoute: this.props.formRoute,
+ onDropDownBlur: this.props.onDropDownBlur, /* 下拉框多选离开事件 */
+ onViewClick: this.handleViewClick,
+ onFieldDoubleClick: this.props.handleFieldDoubleClick,
+ getDateFormat: this.props.getDateFormat,
+ onFieldPopupModal: this.handleFieldPopupModal,
+ onCostomChange: this.props.onCostomChange, // 控件后自定义按钮事件
+ sBtnSendDialogConfigList: this.props.sBtnSendDialogConfigList, // 校验并获取物料主数据按钮配置
+ onToolBarBtnClick: this.props.onToolBarBtnClick, // 工具栏按钮事件
+ onExecInstructSet: this.props.onExecInstructSet, // 调用指令集
+ };
+ return (
+
+
+
+ );
+ })
+ }
+
+
+ {
+ commonFieldPopupVisible ?
+
+ {[''].map(() => {
+ const { commonFieldPopupType } = this.state;
+ if (commonFieldPopupType === 'CommonListSelect') {
+ return ;
+ } else {
+ return ;
+ }
+ })}
+
+ : ''
+ }
+
+ {
+ tableConfig.sChinese === '上批对比' ?
+
+
+
+ {tableConfig.sChinese}
+
+ : ''
+ }
+
+ : ''
+ );
+ }
+}
diff --git a/src/components/Common/CommonViewTable/index.less b/src/components/Common/CommonViewTable/index.less
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/components/Common/CommonViewTable/index.less
diff --git a/src/components/Common/ContextMenuModal.js b/src/components/Common/ContextMenuModal.js
new file mode 100644
index 0000000..fb7def7
--- /dev/null
+++ b/src/components/Common/ContextMenuModal.js
@@ -0,0 +1,182 @@
+/**
+ * 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 { Form } from '@ant-design/compatible';
+import '@ant-design/compatible/assets/index.css';
+import { Row, Col, Radio } from 'antd';
+import * as commonUtils from '../../utils/utils';
+import ShowType from './CommonComponent';/* 通用方法 */
+import AntdDraggableModal from '../Common/AntdDraggableModal';
+import * as commonFunc from './commonFunc';
+
+
+const FormItem = Form.Item;
+export default class ContextMenuModal extends Component {
+ /** 构造函数 */
+ constructor(props) {
+ super(props);
+ this.state = {
+ contextMenuValue: null,
+ contextType: 1,
+ };
+ this.form = {};
+ /* 表单对象 */
+ }
+ handleViewClick = (name, sName, sId) => {
+ this.props.onViewClick(name, sName, sId);
+ };
+ /* 右击弹出窗确定 取表单值 */
+ handleContextMenuOk= () => {
+ const { contextMenuTbName } = this.props;
+ const {
+ masterData,
+ contextMenuConfig,
+ [`${contextMenuTbName}Data`]: tableData,
+ [`${contextMenuTbName}SelectedRowKeys`]: selectedRowKeys,
+ } = this.props;
+ if (commonUtils.isNotEmptyObject(masterData) && commonUtils.isNotEmptyArr(contextMenuConfig)) {
+ const showConfig = contextMenuConfig[0];
+ if (commonUtils.isNotEmptyObject(showConfig.sName)) {
+ // const contextMenuValue = masterData[showConfig.sName]; /* 取弹窗框的值 */
+ let { contextMenuData } = this.state;
+ const { contextMenuValue, contextType } = this.state;
+ console.log('dddd', contextType);
+ const contextMenuType = commonUtils.isNotEmptyNumber(contextType) ? contextType : 1;
+ if (!commonUtils.isEmpty(contextMenuValue)) {
+ if (!contextMenuData) {
+ let tableDataRow = {};
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ const tableFilterData = tableData.filter(item => selectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(tableFilterData)) {
+ tableDataRow = tableFilterData[0];
+ tableDataRow.contextType = commonUtils.isNotEmptyNumber(contextType) ? contextType : 1;
+ }
+ }
+ contextMenuData = commonFunc.getAssignFieldValue(showConfig.sAssignField, tableDataRow);
+ }
+ console.log('ddda1a', contextMenuData, contextMenuType);
+ this.props.onContextMenuOk(contextMenuValue, contextMenuData, contextMenuType);
+ }
+ }
+ }
+ }
+
+ handleModalCancel = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ };
+
+ handleRdoChange = (e) => {
+ this.setState({ contextType: e.target.value });
+ };
+
+
+ /** 渲染 */
+ render() {
+ const {
+ contextMenuModalVisible,
+ contextMenuTbName,
+ contextMenuConfig,
+ contextMenuName,
+ app,
+ form,
+ sTabId,
+ [`${contextMenuTbName}Data`]: tableData, [`${contextMenuTbName}SelectedRowKeys`]: selectedRowKeys,
+ } = this.props;
+ const { contextMenuValue, contextType } = this.state;
+ let tableDataRow = {};
+ if (commonUtils.isNotEmptyArr(tableData)) {
+ const tableFilterData = tableData.filter(item => selectedRowKeys.includes(item.sId));
+ if (commonUtils.isNotEmptyArr(tableFilterData)) {
+ tableDataRow = tableFilterData[0];
+ }
+ }
+
+ if (contextMenuValue === null && commonUtils.isNotEmptyObject(tableDataRow) && commonUtils.isNotEmptyArr(contextMenuConfig)) {
+ this.setState({
+ contextMenuValue: tableDataRow[contextMenuConfig[0].sName],
+ });
+ }
+
+ const radioValue = commonUtils.isNotEmptyNumber(contextType) ? contextType : 1;
+ const pane = app.panes.filter(paneTmp => paneTmp.key === sTabId)[0];
+ return (
+
+ {
+ (pane.notCurrentPane ? false : contextMenuModalVisible) ?
+
+
+
+
+ 全部更新
+ 当前数据往下更新
+
+
+
+
+ { commonUtils.isNotEmptyArr(contextMenuConfig) ?
+ contextMenuConfig.map((child) => {
+ const sMemo = child.sName.toLowerCase().endsWith('memo');
+ let enabledNew = !child.bReadonly;
+ if (child.iTag === 1) {
+ enabledNew = false;
+ } else if (child.iTag === 3) {
+ enabledNew = true;
+ }
+ const showTypeProps = {
+ name: 'slave',
+ app,
+ form,
+ record: tableDataRow,
+ sId: commonUtils.createSid(),
+ getSqlDropDownData: this.props.getSqlDropDownData,
+ getSqlCondition: this.props.getSqlCondition,
+ handleSqlDropDownNewRecord: this.props.handleSqlDropDownNewRecord,
+ getFloatNum: this.props.getFloatNum,
+ onChange: (name, sFieldName, changeValue) => {
+ this.setState({
+ contextMenuValue: changeValue[sFieldName],
+ contextMenuData: changeValue,
+ });
+ },
+ onViewClick: this.handleViewClick,
+ getDateFormat: this.props.getDateFormat,
+ showConfig: child,
+ textArea: sMemo,
+ enabled: enabledNew,
+ dataValue: !commonUtils.isEmpty(contextMenuValue) ? contextMenuValue : commonUtils.isNotEmptyObject(tableDataRow) ? tableDataRow[child.sName] : '',
+ bTable: true,
+ formRoute: this.props.formRoute,
+ formItemLayout: {},
+ onExecInstructSet: this.props.onExecInstructSet,
+ };
+ return (
+
+
+
+ );
+ }) : ''
+ }
+
+
+
+
+ : ''
+ }
+
+
+ );
+ }
+}
diff --git a/src/components/Common/WorkCalendar/WorkCalendar.js b/src/components/Common/WorkCalendar/WorkCalendar.js
new file mode 100644
index 0000000..687de69
--- /dev/null
+++ b/src/components/Common/WorkCalendar/WorkCalendar.js
@@ -0,0 +1,294 @@
+/* eslint-disable */
+import React, { useRef, useState, useMemo, useEffect } from "react";
+import {
+ Calendar,
+ Tooltip,
+ Row,
+ Col,
+ Carousel,
+ Form,
+ Badge,
+ Avatar,
+ Modal,
+ Input,
+ message,
+ Select,
+ DatePicker
+} from "antd";
+import { LeftOutlined, RightOutlined } from "@ant-design/icons";
+import moment from "moment";
+import * as commonUtils from "@/utils/utils"; /* 通用方法 */
+import styles from "./index.less";
+
+const WorkCalendar = props => {
+ const [year, setYear] = useState(new Date().getFullYear());
+ const monthArr = [1, 2, 3, 4, 5, 6];
+ const [checkedDate, setCheckedDate] = useState([]);
+ const [detailModalOption, setDetailModalOption] = useState(null);
+ const clickTimer = useRef(null);
+
+ useEffect(() => {
+ const sDefaultYear = props.masterData?.tYear || moment();
+ setYear(moment(sDefaultYear).format('YYYY'));
+ }, [props.masterData?.tYear])
+
+ const handleSaveData = values => {
+ const slaveData = commonUtils.isNotEmptyArr(props.slaveData)
+ ? [
+ ...props.slaveData.filter(
+ i => i && Object.prototype.hasOwnProperty.call(i, "sTemplateName")
+ )
+ ]
+ : [];
+
+ const iIndex = slaveData.findIndex(
+ slaveItem => slaveItem.sId === values.sId
+ );
+ if (iIndex === -1) {
+ slaveData.push({
+ sParentId: props.masterData.sId,
+ sId: commonUtils.createSid(),
+ handleType: "add",
+ sCalDate: detailModalOption?.date,
+ ...values
+ });
+ } else {
+ slaveData[iIndex] = {
+ ...slaveData[iIndex],
+ sParentId: props.masterData.sId,
+ handleType: slaveData[iIndex]?.handleType || "update",
+ ...values
+ };
+ }
+
+ props.onSaveState({ slaveData: slaveData });
+ setDetailModalOption(null);
+ };
+
+ const handleCancel = () => {
+ setDetailModalOption(null);
+ };
+
+ const dateFullCellRender = (value, item) => {
+ const { slaveData = [] } = props;
+ const panelDate = value.format("YYYY-MM-DD");
+ let detailContent = "";
+ const iIndex = slaveData?.findIndex(item => item?.sCalDate === panelDate);
+ const hasDetail = iIndex !== -1;
+ let status = 'default';
+ if (hasDetail) {
+ const { sTemplateName } = slaveData[iIndex] || {};
+ detailContent = sTemplateName;
+ status = {
+ '节日': 'success',
+ '加班': 'error',
+ }[sTemplateName] || 'default'
+ }
+
+ // 自定义日期单元格内容
+ const customCell = (
+ {
+ clearTimeout(clickTimer.current);
+ clickTimer.current = setTimeout(() => {
+ if (!detailModalOption) {
+ if (checkedDate.includes(panelDate)) {
+ setCheckedDate(pre => pre.filter(item => item !== panelDate));
+ } else {
+ setCheckedDate(pre => [...pre, panelDate]);
+ }
+ }
+ }, 150);
+ }}
+ onDoubleClick={() => {
+ clearTimeout(clickTimer.current);
+ setDetailModalOption({ date: panelDate });
+ }}
+ >
+
+
+
+
+ {Number(panelDate.slice(-2))}
+
+
+ {detailContent && (
+
+ )}
+
+
+
+
+
+ );
+
+ return customCell;
+ };
+
+ const preClick = () => {
+ refCarousel?.current?.prev();
+ };
+
+ const nextClick = () => {
+ refCarousel?.current?.next();
+ };
+
+ const refCarousel = useRef();
+
+ return (
+
+
}
+ nextArrow={
}
+ >
+ {[0, 6].map(i => (
+ <>
+
+ {[...monthArr.map(j => j + i)].map(item => {
+ const startDate = moment(
+ `${year}-${item}`
+ ).startOf("month");
+ const endDate = moment(`${year}-${item}`).endOf(
+ "month"
+ );
+ return (
+
+
+
(
+ {`${
+ year
+ } 年 ${item} 月`}
+ )}
+ dateFullCellRender={value =>
+ dateFullCellRender(value, item)
+ }
+ fullscreen={false}
+ value={moment(`${year}-${item}`)}
+ validRange={[startDate, endDate]}
+ disabledDate={() => false}
+ />
+
+
+ );
+ })}
+
+ >
+ ))}
+
+
+
+ );
+};
+
+const DetailToolTipModal = props => {
+ const [form] = Form.useForm();
+
+ const slaveData = useMemo(
+ () =>
+ commonUtils.isNotEmptyArr(props.slaveData)
+ ? [
+ ...props.slaveData.filter(
+ i => i && Object.prototype.hasOwnProperty.call(i, "sTemplateName")
+ )
+ ]
+ : [],
+ [props.slaveData]
+ );
+
+ const fieldResult = slaveData.find(
+ slaveItem => slaveItem.sCalDate === props.detailModalOption?.date
+ );
+
+ useEffect(() => {
+ if (props.detailModalOption?.date) {
+ form.setFieldsValue({ ...fieldResult || {} });
+ }
+ }, [props.detailModalOption])
+
+ const formItemLayout = {
+ labelCol: {
+ span: 6,
+ style: { color: "rgba(0, 0, 0, 0.65)", backgroundColor: "#BFEFFF" }
+ },
+ wrapperCol: { span: 18 }
+ };
+
+ const queryFormItem = configItem => {
+ if (!configItem) return ;
+ const firstDataIndex = configItem.sName?.substring(0, 1);
+ let options = [];
+ if (["s"].includes(firstDataIndex)) {
+ try {
+ const result = JSON.parse(configItem?.sChineseDropDown);
+ options = Object.keys(result).map(i => ({
+ label: i,
+ value: result[i]
+ }));
+ } catch (error) {
+ options = [];
+ }
+ }
+
+ return (
+ {
+ i: ,
+ t: ,
+ s:
+ }[firstDataIndex] ||
+ );
+ };
+
+ const slaveItem = () =>
+ props.slaveConfig?.gdsconfigformslave
+ ?.filter(item => item.bVisible && item.sName !== "")
+ ?.map(configItem => {
+ const itemProperty = {
+ label: configItem.showName /* 标签 */,
+ name: configItem.sName,
+ ...formItemLayout /* 主要是rowspan和colspan */,
+ rules: [{ required: configItem.bNotEmpty, message: "请输入内容" }],
+ };
+ return (
+
+ {queryFormItem(configItem)}
+
+ );
+ });
+
+ return <>
+ {
+ try {
+ const values = await form.validateFields();
+ props.handleSaveData({ ...(fieldResult || {}), ...values });
+ } catch (error) {
+ return message.error("保存异常");
+ }
+ }} onCancel={props.handleCancel} destroyOnClose maskClosable={false}>
+
+
+ >;
+};
+
+export default WorkCalendar;
diff --git a/src/components/Common/WorkCalendar/index.less b/src/components/Common/WorkCalendar/index.less
new file mode 100644
index 0000000..f826cf3
--- /dev/null
+++ b/src/components/Common/WorkCalendar/index.less
@@ -0,0 +1,163 @@
+.content {
+ height: calc(100vh - 170px);
+ margin: 8px 40px 0;
+
+
+ :global {
+ .billToolBar {
+ margin-top: 8px;
+ }
+
+
+ .ant-carousel .slick-prev,
+ .ant-carousel .slick-next {
+ color: #000;
+ font-size: 20px;
+ }
+
+ .calendarMain {
+ display: flex !important;
+ flex-wrap: wrap;
+ }
+
+ .masterConent {
+ border: 1px solid #c2c3c5;
+ margin: 8px 8px 0px;
+ background-color: #ffffff;
+ }
+
+ .calendar {
+ width: calc(100% - 16px);
+ height: 100%;
+ margin: 8px;
+ border-top: 0;
+
+ .ant-picker-calendar {
+ .custom-header {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ background: #e8dfe5;
+ font-size: 14px;
+ }
+
+ thead {
+ th {
+ font-weight: bold;
+ padding: 5px 0 5px 0;
+ }
+ }
+
+ .ant-picker-cell {
+ padding: 0;
+ }
+
+ .ant-picker-cell-disabled {
+ visibility: hidden;
+ }
+
+
+ .ant-picker-date-panel,
+ .ant-picker-body,
+ .ant-picker-content {
+ height: 100%;
+ }
+
+ .custom-cell {
+ width: 100%;
+ height: 100%;
+ @size: 12px;
+ .ant-badge-count-sm {
+ height: @size;
+ min-width: @size;
+ font-size: 10px;
+ line-height: @size;
+ }
+ }
+
+ .date-mark {
+ text-decoration: underline;
+ font-weight: bold;
+ }
+
+ .custom-cell-special {
+ // border: 1px solid #fcd2d3;
+ color: #fd9498;
+ font-weight: bold;
+ }
+
+ .custom-cell-checked {
+ background: #fde4e5;
+ }
+
+ height: 50%;
+ border-top: 1px solid #c2c3c5;
+
+ &:nth-child(2),
+ &:nth-child(5) {
+ margin: 0 6px 0 6px;
+ // border-left: 1px solid #c2c3c5;
+ // border-right: 1px solid #c2c3c5;
+ }
+ }
+
+ tbody tr:hover {
+ background: none !important;
+
+ td {
+ background: none !important;
+ font-weight: initial !important;
+ }
+ }
+ }
+ }
+}
+
+.popover {
+ :global {
+ .ant-popover-arrow-content::before {
+ background-color: #e9e9e9;
+ }
+ .ant-popover-inner {
+ background-color: #e9e9e9;
+ }
+ }
+}
+
+.detailToolTipModal {
+ width: 400px;
+ min-height: 80px;
+ padding-bottom: 30px;
+ :global {
+ .header .ant-col{
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ &:nth-child(-n+3) {
+ border-right: 1px solid #b9b9b9;
+ }
+ }
+ .body {
+ .ant-col>div, .ant-col>input {
+ width: 100%;
+ }
+ input {
+ text-align: center;
+ }
+ .textBtn {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+ .footer {
+ width: 100%;
+ position: absolute;
+ bottom: 5px;
+ left: 0;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/components/Common/commonFunc.js b/src/components/Common/commonFunc.js
index fac124f..d9bf99d 100644
--- a/src/components/Common/commonFunc.js
+++ b/src/components/Common/commonFunc.js
@@ -1,5 +1,5 @@
/* eslint-disable no-mixed-operators,function-paren-newline,no-eval,radix */
-// import moment from 'moment';
+import moment from 'moment';
import lodash from 'lodash';
import * as commonUtils from '../../utils/utils';
import config from '../../utils/config';
diff --git a/src/components/CommonClassifyEvent/CommonClassify.js b/src/components/CommonClassifyEvent/CommonClassify.js
new file mode 100644
index 0000000..09cda15
--- /dev/null
+++ b/src/components/CommonClassifyEvent/CommonClassify.js
@@ -0,0 +1,176 @@
+/* eslint-disable */
+/* eslint-disable array-callback-return,no-undef */
+import React, { Component } from 'react';
+import { Form } from '@ant-design/compatible';
+// import '@ant-design/compatible/assets/index.css';
+import { Layout, Spin } from 'antd';
+import styles from '@/index.less';
+import Toolbar from '@/components/Common/ToolBar/ToolBarNew';
+import CommonBase from '@/components/Common/CommonBase';
+import CommonClassifyEvent from '@/components/Common/CommonClassifyEvent';
+import StaticEditTable from '@/components/Common/CommonTable';/* 可编辑表格 */
+import * as commonBusiness from '@/components/Common/commonBusiness';/* 单据业务功能 */
+import SearchComponent from '@/components/Common/SearchComponent';/* 搜索组件 */
+import AntdDraggableModal from '@/components/Common/AntdDraggableModal';
+import * as commonFunc from '@/components/Common/commonFunc';/* 通用单据方法 */ /* 通用单据方法 */
+import * as commonUtils from '@/utils/utils';
+import commonConfig from '@/utils/config';
+
+const { Header, Content } = Layout;
+
+class CommonClassify extends Component {
+ constructor(props) {
+ super(props);
+ this.state = {
+ };
+ }
+ handleCancelModal = (modelVisible) => {
+ this.props.onSaveState({
+ [modelVisible]: false,
+ });
+ }
+
+ /** 获取过滤树数据数据 */
+ handleGetFilterTreeData= (slaveConfig, slaveFilterCondition, page, slaveOrderBy, props) => {
+ const { app } = props === undefined ? this.props : props;
+ const { conditonValues } = app.currentPane;
+ const pageNum = commonUtils.isEmpty(page) ? 1 : page;
+ this.props.handleGetTreeDataSet({
+ name: 'slave',
+ configData: slaveConfig,
+ condition: {
+ pageNum, pageSize: commonConfig.pageSize, bFilter: slaveFilterCondition, sFilterOrderBy: slaveOrderBy, sSqlCondition: conditonValues,
+ },
+ flag: true,
+ clearSelectData: true,
+ });
+ };
+
+ render() {
+ const { pageLoading } = this.props;
+ return (
+
+ );
+ }
+}
+const CommonClassifyComponent = Form.create({
+ mapPropsToFields(props) {
+ const { masterData } = props;
+ const obj = commonFunc.mapPropsToFields(masterData, Form);
+ return obj;
+ },
+})((props) => {
+ const {
+ form, onReturnForm, slavePagination, slaveData, sModelsType, app, slaveConfig,
+ } = props;
+ /* 回带表单 */
+ onReturnForm(form);
+ const pagination = {
+ pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ ...slavePagination,
+ onChange: props.onPaginationChange,
+ size: 'large',
+ // pageSize: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+ // eslint-disable-next-line no-unused-vars
+ const paginationEnabled = {
+ pageSize: commonUtils.isNotEmptyNumber(props.iPageSize) && props.iPageSize !== 0 ? props.iPageSize : commonConfig.pageSize,
+ total: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ current: commonUtils.isEmptyObject(slavePagination) ? 1 : slavePagination.current,
+ size: 'large',
+ // pageSize: commonUtils.isEmptyArr(slaveData) ? 0 : slaveData.length,
+ showQuickJumper: true,
+ hideOnSinglePage: true,
+ };
+
+ let bTree = false;
+ if ((sModelsType === 'commonClassify/materialsClassify' || (commonUtils.isNotEmptyObject(sModelsType) && sModelsType.includes('children'))) && commonUtils.isNotEmptyArr(slaveData)) {
+ bTree = true;
+ }
+ /* 若关联性sSqlCondition配置 则取配置 */
+ let keyField = 'sId';
+ let keyParentField = 'sParentId';
+ let sSqlCondition = '';
+ if (commonUtils.isNotEmptyObject(slaveConfig)) {
+ sSqlCondition = slaveConfig.sSqlCondition;
+ if (commonUtils.isNotEmptyObject(sSqlCondition) && commonUtils.isNotEmptyArr(sSqlCondition.split('.')) && sSqlCondition.split('.').length > 2) {
+ keyField = sSqlCondition.split('.')[1];
+ keyParentField = sSqlCondition.split('.')[2];
+ }
+ }
+ const slaveTableProps = {
+ ...commonBusiness.getTableTypes('slave', props),
+ tableProps: { pagination, onChange: props.onTitleChange },
+ bRowClick: true, /* 处理多选状态下 修改行字段 选不中问题 */
+ // tableProps: commonUtils.isEmpty(props.enabled) ? { pagination, onChange: props.onTitleChange } : { paginationEnabled, onChange: props.onTitleChangeEnabled },
+ data: bTree && commonUtils.isNotEmptyArr(slaveData) ? commonUtils.genTreeByArr(slaveData, keyField, keyParentField) : slaveData,
+ };
+ const sReportParams = commonUtils.isNotEmptyObject(commonFunc.showMessage(app.commonConst, 'sReportParams')) ?
+ commonFunc.showMessage(app.commonConst, 'sReportParams') : '上报参数标准';
+ const sParamProps = {
+ ...commonBusiness.getTableTypes('sParam', props),
+ tableProps: {
+ rowKey: 'sId',
+ pagination,
+ onChange: props.onTitleChange,
+ sModelsType,
+ AutoTableHeight: 350,
+ rowSelection: null,
+ },
+ bRowClick: true,
+ enabled: props.enabled,
+ };
+ const onOkProps = {
+ disabled: !props.enabled,
+ };
+ return (
+
+ );
+});
+
+export default CommonBase(CommonClassifyEvent(CommonClassify));
+
diff --git a/src/global.less b/src/global.less
index 5a04ba4..7654dd4 100644
--- a/src/global.less
+++ b/src/global.less
@@ -33,6 +33,7 @@ html {
.content {
max-height: 100%;
+ background-color: #F0F2F5;
overflow-y: auto;
}
diff --git a/src/routes/commonClassify/commonClassify.css b/src/routes/commonClassify/commonClassify.css
new file mode 100644
index 0000000..303c49f
--- /dev/null
+++ b/src/routes/commonClassify/commonClassify.css
@@ -0,0 +1,25 @@
+.header {
+ background: #fff;
+ padding: 0;
+ height: auto;
+ line-height: inherit;
+}
+
+.clayout {
+ padding: 0 30px 30px 30px;
+ background: #fff;
+}
+
+.sider {
+ background: #fff;
+ flex: none!important;
+ max-width: none!important;
+ min-width: 0!important;
+ width: auto!important;
+}
+
+
+.content {
+ background: #fff;
+ min-height: 280px;
+}
diff --git a/src/routes/commonClassify/commonClassify.js b/src/routes/commonClassify/commonClassify.js
new file mode 100644
index 0000000..da3052e
--- /dev/null
+++ b/src/routes/commonClassify/commonClassify.js
@@ -0,0 +1,34 @@
+import { connect } from 'umi';
+import CommonClassify from '../../components/CommonClassifyEvent/CommonClassify';
+
+
+function commonClassify({ dispatch, app, content }) {
+ function getResult(resultValue) {
+ /* 更改返回值 */
+ dispatch({ type: 'app/changePpopupPane', payload: { resultValue } });
+ }
+
+ function getSecondResult(resultValue) {
+ /* 更改返回值 */
+ dispatch({ type: 'app/changeSecondPpopupPane', payload: { resultValue } });
+ }
+
+ function removeSecondModalPane(changePanes) {
+ dispatch({ type: 'app/removeSecondModalPane', payload: { changePanes } });
+ }
+
+ const commonClassifyProps = {
+ app,
+ content,
+ dispatch,
+ handleGetResult: getResult,
+ handleGetSelfResult: getSecondResult,
+ removeSecondModalPane,
+ };
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(commonClassify);
diff --git a/src/routes/commonList/commonBill.js b/src/routes/commonList/commonBill.js
new file mode 100644
index 0000000..bc9302d
--- /dev/null
+++ b/src/routes/commonList/commonBill.js
@@ -0,0 +1,23 @@
+import { connect } from 'umi';
+import CommonBillComponent from '@/components/Common/CommonBill';
+
+function CommonBill({ dispatch, app, content }) {
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+
+ const commonBillProps = {
+ app,
+ content,
+ dispatch,
+ onRemovePane: removePane,
+ };
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(CommonBill);
+
diff --git a/src/routes/commonList/commonListEdit.js b/src/routes/commonList/commonListEdit.js
index 4f00697..473bc89 100644
--- a/src/routes/commonList/commonListEdit.js
+++ b/src/routes/commonList/commonListEdit.js
@@ -3,8 +3,7 @@
* @Last modified time: 2019-06-26T18:40:44+08:00
*/
-import React from 'react';
-import { connect } from 'dva';
+import { connect } from 'umi';
import CommonListEdit from '../../components/Common/CommonListEdit';
function commonListEdit({
diff --git a/src/routes/commonList/commonNewBill.js b/src/routes/commonList/commonNewBill.js
new file mode 100644
index 0000000..f9b73f5
--- /dev/null
+++ b/src/routes/commonList/commonNewBill.js
@@ -0,0 +1,31 @@
+/**
+ * Created by mar105 on 2019-03-05.
+ */
+
+import { connect } from 'umi';
+import CommonNewBillComponent from '../../components/Common/CommonNewBill';
+
+function CommonNewBill({ dispatch, app, content }) {
+ const commonNewBillProps = {
+ app,
+ content,
+ dispatch,
+ onAddPane: getAddPane, /* 增加标签 */
+ onRemovePane: removePane,
+ };
+ function removePane(changePanes, currentPane) {
+ dispatch({ type: 'app/removePane', payload: { changePanes, currentPane } });
+ }
+ function getAddPane(pane) {
+ /* 增加标签 */
+ dispatch({ type: 'app/addPane', payload: { pane } });
+ }
+
+ return (
+
+ );
+}
+
+export default connect(({ app, content }) =>
+ ({ app, content }))(CommonNewBill);
+
diff --git a/src/routes/tab/tab.js b/src/routes/tab/tab.js
index cc74e09..866dcf1 100644
--- a/src/routes/tab/tab.js
+++ b/src/routes/tab/tab.js
@@ -4,7 +4,11 @@ import { ExclamationCircleOutlined } from '@ant-design/icons';
import { Tabs, Modal } from 'antd';
import IndexCenter from '@/routes/indexCenter/indexCenter';/* 首页 */
import TabComponent from '@/components/Tab/TabComponent';
+import CommonListEdit from '@/routes/commonList/commonListEdit'; /* 可编辑公共列表 */
import CommonList from '@/routes/commonList/commonList';/* 公共列表 */
+import CommonBill from '@/routes/commonList/commonBill';/* 通用单据页 */
+import CommonNewBill from '@/routes/commonList/commonNewBill';/* 通用单据页 */
+import CommonClassify from '@/routes/commonClassify/commonClassify';/* 公共分类 */
import styles from '@/index.less';
import { sendWebSocketMessage } from '@/components/Common/commonFunc';
import { isNotEmptyObject, isNotEmptyArr } from '@/utils/utils'; /* 通用方法 */
@@ -21,6 +25,10 @@ function Tab({ dispatch, app }) {
const bRecordFlagDisabled = (tagArr.length > 0 && pane.key !== tagLastKey);
const routeList = {
'/indexPage/commonList': ,
+ '/indexPage/commonNewBill': ,
+ '/indexPage/commonBill' : ,
+ '/indexPage/commonListEdit' : ,
+ '/indexPage/commonClassify' :
}
const content = routeList[pane.route] || ;