浏览代码

support yuban

Xiaopeng Zhang 5 月之前
父节点
当前提交
f4d63b598c

+ 1 - 1
README

@@ -2,6 +2,6 @@ JD_PeiBiF 表很有用,它可以用来找一个材料的组成。
 举个例子,810078NT3 是陶粒混凝土CL20,他是由中沙,水泥,陶粒组成,这个关系在JD_PeiBiF立面可以查到·
 TODO
 回程费 按照百分比算的
-公式 比如 [1-274]*2
+公式 比如 [1-274]*2 没必要支持,完全可以改数量
 附注 小众情况还不支持
 材料甲供标志是有用的,这个还没处理

文件差异内容过多而无法显示
+ 1 - 0
front/dist/379.bundle.js


+ 67 - 0
front/dist/379.bundle.js.LICENSE.txt

@@ -0,0 +1,67 @@
+/*!
+	Copyright (c) 2018 Jed Watson.
+	Licensed under the MIT License (MIT), see
+	http://jedwatson.github.io/classnames
+*/
+
+/*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
+
+/**
+ * @license React
+ * react-is.production.min.js
+ *
+ * Copyright (c) Facebook, Inc. and its affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**
+ * @license React
+ * use-sync-external-store-with-selector.production.js
+ *
+ * Copyright (c) Meta Platforms, Inc. and affiliates.
+ *
+ * This source code is licensed under the MIT license found in the
+ * LICENSE file in the root directory of this source tree.
+ */
+
+/**![caret-down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg0MC40IDMwMEgxODMuNmMtMTkuNyAwLTMwLjcgMjAuOC0xOC41IDM1bDMyOC40IDM4MC44YzkuNCAxMC45IDI3LjUgMTAuOSAzNyAwTDg1OC45IDMzNWMxMi4yLTE0LjIgMS4yLTM1LTE4LjUtMzV6IiAvPjwvc3ZnPg==) */
+
+/**![caret-up](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1OC45IDY4OUw1MzAuNSAzMDguMmMtOS40LTEwLjktMjcuNS0xMC45LTM3IDBMMTY1LjEgNjg5Yy0xMi4yIDE0LjItMS4yIDM1IDE4LjUgMzVoNjU2LjhjMTkuNyAwIDMwLjctMjAuOCAxOC41LTM1eiIgLz48L3N2Zz4=) */
+
+/**![check](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkxMiAxOTBoLTY5LjljLTkuOCAwLTE5LjEgNC41LTI1LjEgMTIuMkw0MDQuNyA3MjQuNSAyMDcgNDc0YTMyIDMyIDAgMDAtMjUuMS0xMi4ySDExMmMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlsMjczLjkgMzQ3YzEyLjggMTYuMiAzNy40IDE2LjIgNTAuMyAwbDQ4OC40LTYxOC45YzQuMS01LjEuNC0xMi44LTYuMy0xMi44eiIgLz48L3N2Zz4=) */
+
+/**![close-circle](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNTEyIDY0YzI0Ny40IDAgNDQ4IDIwMC42IDQ0OCA0NDhTNzU5LjQgOTYwIDUxMiA5NjAgNjQgNzU5LjQgNjQgNTEyIDI2NC42IDY0IDUxMiA2NHptMTI3Ljk4IDI3NC44MmgtLjA0bC0uMDguMDZMNTEyIDQ2Ni43NSAzODQuMTQgMzM4Ljg4Yy0uMDQtLjA1LS4wNi0uMDYtLjA4LS4wNmEuMTIuMTIgMCAwMC0uMDcgMGMtLjAzIDAtLjA1LjAxLS4wOS4wNWwtNDUuMDIgNDUuMDJhLjIuMiAwIDAwLS4wNS4wOS4xMi4xMiAwIDAwMCAuMDd2LjAyYS4yNy4yNyAwIDAwLjA2LjA2TDQ2Ni43NSA1MTIgMzM4Ljg4IDYzOS44NmMtLjA1LjA0LS4wNi4wNi0uMDYuMDhhLjEyLjEyIDAgMDAwIC4wN2MwIC4wMy4wMS4wNS4wNS4wOWw0NS4wMiA0NS4wMmEuMi4yIDAgMDAuMDkuMDUuMTIuMTIgMCAwMC4wNyAwYy4wMiAwIC4wNC0uMDEuMDgtLjA1TDUxMiA1NTcuMjVsMTI3Ljg2IDEyNy44N2MuMDQuMDQuMDYuMDUuMDguMDVhLjEyLjEyIDAgMDAuMDcgMGMuMDMgMCAuMDUtLjAxLjA5LS4wNWw0NS4wMi00NS4wMmEuMi4yIDAgMDAuMDUtLjA5LjEyLjEyIDAgMDAwLS4wN3YtLjAyYS4yNy4yNyAwIDAwLS4wNS0uMDZMNTU3LjI1IDUxMmwxMjcuODctMTI3Ljg2Yy4wNC0uMDQuMDUtLjA2LjA1LS4wOGEuMTIuMTIgMCAwMDAtLjA3YzAtLjAzLS4wMS0uMDUtLjA1LS4wOWwtNDUuMDItNDUuMDJhLjIuMiAwIDAwLS4wOS0uMDUuMTIuMTIgMCAwMC0uMDcgMHoiIC8+PC9zdmc+) */
+
+/**![close](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIGZpbGwtcnVsZT0iZXZlbm9kZCIgdmlld0JveD0iNjQgNjQgODk2IDg5NiIgZm9jdXNhYmxlPSJmYWxzZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBkPSJNNzk5Ljg2IDE2Ni4zMWMuMDIgMCAuMDQuMDIuMDguMDZsNTcuNjkgNTcuN2MuMDQuMDMuMDUuMDUuMDYuMDhhLjEyLjEyIDAgMDEwIC4wNmMwIC4wMy0uMDIuMDUtLjA2LjA5TDU2OS45MyA1MTJsMjg3LjcgMjg3LjdjLjA0LjA0LjA1LjA2LjA2LjA5YS4xMi4xMiAwIDAxMCAuMDdjMCAuMDItLjAyLjA0LS4wNi4wOGwtNTcuNyA1Ny42OWMtLjAzLjA0LS4wNS4wNS0uMDcuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMyAwLS4wNS0uMDItLjA5LS4wNkw1MTIgNTY5LjkzbC0yODcuNyAyODcuN2MtLjA0LjA0LS4wNi4wNS0uMDkuMDZhLjEyLjEyIDAgMDEtLjA3IDBjLS4wMiAwLS4wNC0uMDItLjA4LS4wNmwtNTcuNjktNTcuN2MtLjA0LS4wMy0uMDUtLjA1LS4wNi0uMDdhLjEyLjEyIDAgMDEwLS4wN2MwLS4wMy4wMi0uMDUuMDYtLjA5TDQ1NC4wNyA1MTJsLTI4Ny43LTI4Ny43Yy0uMDQtLjA0LS4wNS0uMDYtLjA2LS4wOWEuMTIuMTIgMCAwMTAtLjA3YzAtLjAyLjAyLS4wNC4wNi0uMDhsNTcuNy01Ny42OWMuMDMtLjA0LjA1LS4wNS4wNy0uMDZhLjEyLjEyIDAgMDEuMDcgMGMuMDMgMCAuMDUuMDIuMDkuMDZMNTEyIDQ1NC4wN2wyODcuNy0yODcuN2MuMDQtLjA0LjA2LS4wNS4wOS0uMDZhLjEyLjEyIDAgMDEuMDcgMHoiIC8+PC9zdmc+) */
+
+/**![double-left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTI3Mi45IDUxMmwyNjUuNC0zMzkuMWM0LjEtNS4yLjQtMTIuOS02LjMtMTIuOWgtNzcuM2MtNC45IDAtOS42IDIuMy0xMi42IDYuMUwxODYuOCA0OTIuM2EzMS45OSAzMS45OSAwIDAwMCAzOS41bDI1NS4zIDMyNi4xYzMgMy45IDcuNyA2LjEgMTIuNiA2LjFINTMyYzYuNyAwIDEwLjQtNy43IDYuMy0xMi45TDI3Mi45IDUxMnptMzA0IDBsMjY1LjQtMzM5LjFjNC4xLTUuMi40LTEyLjktNi4zLTEyLjloLTc3LjNjLTQuOSAwLTkuNiAyLjMtMTIuNiA2LjFMNDkwLjggNDkyLjNhMzEuOTkgMzEuOTkgMCAwMDAgMzkuNWwyNTUuMyAzMjYuMWMzIDMuOSA3LjcgNi4xIDEyLjYgNi4xSDgzNmM2LjcgMCAxMC40LTcuNyA2LjMtMTIuOUw1NzYuOSA1MTJ6IiAvPjwvc3ZnPg==) */
+
+/**![double-right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTUzMy4yIDQ5Mi4zTDI3Ny45IDE2Ni4xYy0zLTMuOS03LjctNi4xLTEyLjYtNi4xSDE4OGMtNi43IDAtMTAuNCA3LjctNi4zIDEyLjlMNDQ3LjEgNTEyIDE4MS43IDg1MS4xQTcuOTggNy45OCAwIDAwMTg4IDg2NGg3Ny4zYzQuOSAwIDkuNi0yLjMgMTIuNi02LjFsMjU1LjMtMzI2LjFjOS4xLTExLjcgOS4xLTI3LjkgMC0zOS41em0zMDQgMEw1ODEuOSAxNjYuMWMtMy0zLjktNy43LTYuMS0xMi42LTYuMUg0OTJjLTYuNyAwLTEwLjQgNy43LTYuMyAxMi45TDc1MS4xIDUxMiA0ODUuNyA4NTEuMUE3Ljk4IDcuOTggMCAwMDQ5MiA4NjRoNzcuM2M0LjkgMCA5LjYtMi4zIDEyLjYtNi4xbDI1NS4zLTMyNi4xYzkuMS0xMS43IDkuMS0yNy45IDAtMzkuNXoiIC8+PC9zdmc+) */
+
+/**![down](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4NCAyNTZoLTc1Yy01LjEgMC05LjkgMi41LTEyLjkgNi42TDUxMiA2NTQuMiAyMjcuOSAyNjIuNmMtMy00LjEtNy44LTYuNi0xMi45LTYuNmgtNzVjLTYuNSAwLTEwLjMgNy40LTYuNSAxMi43bDM1Mi42IDQ4Ni4xYzEyLjggMTcuNiAzOSAxNy42IDUxLjcgMGwzNTIuNi00ODYuMWMzLjktNS4zLjEtMTIuNy02LjQtMTIuN3oiIC8+PC9zdmc+) */
+
+/**![ellipsis](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTE3NiA1MTFhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMTAtMTEyIDB6bTI4MCAwYTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDEwLTExMiAwem0yODAgMGE1NiA1NiAwIDEwMTEyIDAgNTYgNTYgMCAxMC0xMTIgMHoiIC8+PC9zdmc+) */
+
+/**![file](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg1NC42IDI4OC42TDYzOS40IDczLjRjLTYtNi0xNC4xLTkuNC0yMi42LTkuNEgxOTJjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjgzMmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg2NDBjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzExLjNjMC04LjUtMy40LTE2LjctOS40LTIyLjd6TTc5MC4yIDMyNkg2MDJWMTM3LjhMNzkwLjIgMzI2em0xLjggNTYySDIzMlYxMzZoMzAydjIxNmE0MiA0MiAwIDAwNDIgNDJoMjE2djQ5NHoiIC8+PC9zdmc+) */
+
+/**![filter](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTM0OSA4MzhjMCAxNy43IDE0LjIgMzIgMzEuOCAzMmgyNjIuNGMxNy42IDAgMzEuOC0xNC4zIDMxLjgtMzJWNjQySDM0OXYxOTZ6bTUzMS4xLTY4NEgxNDMuOWMtMjQuNSAwLTM5LjggMjYuNy0yNy41IDQ4bDIyMS4zIDM3NmgzNDguOGwyMjEuMy0zNzZjMTIuMS0yMS4zLTMuMi00OC0yNy43LTQ4eiIgLz48L3N2Zz4=) */
+
+/**![folder-open](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkyOCA0NDRIODIwVjMzMC40YzAtMTcuNy0xNC4zLTMyLTMyLTMySDQ3M0wzNTUuNyAxODYuMmE4LjE1IDguMTUgMCAwMC01LjUtMi4ySDk2Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY1OTJjMCAxNy43IDE0LjMgMzIgMzIgMzJoNjk4YzEzIDAgMjQuOC03LjkgMjkuNy0yMGwxMzQtMzMyYzEuNS0zLjggMi4zLTcuOSAyLjMtMTIgMC0xNy43LTE0LjMtMzItMzItMzJ6TTEzNiAyNTZoMTg4LjVsMTE5LjYgMTE0LjRINzQ4VjQ0NEgyMzhjLTEzIDAtMjQuOCA3LjktMjkuNyAyMEwxMzYgNjQzLjJWMjU2em02MzUuMyA1MTJIMTU5bDEwMy4zLTI1Nmg2MTIuNEw3NzEuMyA3Njh6IiAvPjwvc3ZnPg==) */
+
+/**![folder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTg4MCAyOTguNEg1MjFMNDAzLjcgMTg2LjJhOC4xNSA4LjE1IDAgMDAtNS41LTIuMkgxNDRjLTE3LjcgMC0zMiAxNC4zLTMyIDMydjU5MmMwIDE3LjcgMTQuMyAzMiAzMiAzMmg3MzZjMTcuNyAwIDMyLTE0LjMgMzItMzJWMzMwLjRjMC0xNy43LTE0LjMtMzItMzItMzJ6TTg0MCA3NjhIMTg0VjI1NmgxODguNWwxMTkuNiAxMTQuNEg4NDBWNzY4eiIgLz48L3N2Zz4=) */
+
+/**![holder](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMwMCAyNzYuNWE1NiA1NiAwIDEwNTYtOTcgNTYgNTYgMCAwMC01NiA5N3ptMCAyODRhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCAyMjhhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6bTAgMjg0YTU2IDU2IDAgMTAxMTIgMCA1NiA1NiAwIDAwLTExMiAwek0zMDAgODQ0LjVhNTYgNTYgMCAxMDU2LTk3IDU2IDU2IDAgMDAtNTYgOTd6TTY0MCA3OTZhNTYgNTYgMCAxMDExMiAwIDU2IDU2IDAgMDAtMTEyIDB6IiAvPjwvc3ZnPg==) */
+
+/**![left](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTcyNCAyMTguM1YxNDFjMC02LjctNy43LTEwLjQtMTIuOS02LjNMMjYwLjMgNDg2LjhhMzEuODYgMzEuODYgMCAwMDAgNTAuM2w0NTAuOCAzNTIuMWM1LjMgNC4xIDEyLjkuNCAxMi45LTYuM3YtNzcuM2MwLTQuOS0yLjMtOS42LTYuMS0xMi42bC0zNjAtMjgxIDM2MC0yODEuMWMzLjgtMyA2LjEtNy43IDYuMS0xMi42eiIgLz48L3N2Zz4=) */
+
+/**![loading](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjAgMCAxMDI0IDEwMjQiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTk4OCA1NDhjLTE5LjkgMC0zNi0xNi4xLTM2LTM2IDAtNTkuNC0xMS42LTExNy0zNC42LTE3MS4zYTQ0MC40NSA0NDAuNDUgMCAwMC05NC4zLTEzOS45IDQzNy43MSA0MzcuNzEgMCAwMC0xMzkuOS05NC4zQzYyOSA4My42IDU3MS40IDcyIDUxMiA3MmMtMTkuOSAwLTM2LTE2LjEtMzYtMzZzMTYuMS0zNiAzNi0zNmM2OS4xIDAgMTM2LjIgMTMuNSAxOTkuMyA0MC4zQzc3Mi4zIDY2IDgyNyAxMDMgODc0IDE1MGM0NyA0NyA4My45IDEwMS44IDEwOS43IDE2Mi43IDI2LjcgNjMuMSA0MC4yIDEzMC4yIDQwLjIgMTk5LjMuMSAxOS45LTE2IDM2LTM1LjkgMzZ6IiAvPjwvc3ZnPg==) */
+
+/**![minus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMzY4YzQuNCAwIDgtMy42IDgtOHYtNDhjMC00LjQtMy42LTgtOC04SDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
+
+/**![plus-square](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTMyOCA1NDRoMTUydjE1MmMwIDQuNCAzLjYgOCA4IDhoNDhjNC40IDAgOC0zLjYgOC04VjU0NGgxNTJjNC40IDAgOC0zLjYgOC04di00OGMwLTQuNC0zLjYtOC04LThINTQ0VjMyOGMwLTQuNC0zLjYtOC04LThoLTQ4Yy00LjQgMC04IDMuNi04IDh2MTUySDMyOGMtNC40IDAtOCAzLjYtOCA4djQ4YzAgNC40IDMuNiA4IDggOHoiIC8+PHBhdGggZD0iTTg4MCAxMTJIMTQ0Yy0xNy43IDAtMzIgMTQuMy0zMiAzMnY3MzZjMCAxNy43IDE0LjMgMzIgMzIgMzJoNzM2YzE3LjcgMCAzMi0xNC4zIDMyLTMyVjE0NGMwLTE3LjctMTQuMy0zMi0zMi0zMnptLTQwIDcyOEgxODRWMTg0aDY1NnY2NTZ6IiAvPjwvc3ZnPg==) */
+
+/**![right](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTc2NS43IDQ4Ni44TDMxNC45IDEzNC43QTcuOTcgNy45NyAwIDAwMzAyIDE0MXY3Ny4zYzAgNC45IDIuMyA5LjYgNi4xIDEyLjZsMzYwIDI4MS4xLTM2MCAyODEuMWMtMy45IDMtNi4xIDcuNy02LjEgMTIuNlY4ODNjMCA2LjcgNy43IDEwLjQgMTIuOSA2LjNsNDUwLjgtMzUyLjFhMzEuOTYgMzEuOTYgMCAwMDAtNTAuNHoiIC8+PC9zdmc+) */
+
+/**![search](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTAiIGhlaWdodD0iNTAiIGZpbGw9IiNjYWNhY2EiIHZpZXdCb3g9IjY0IDY0IDg5NiA4OTYiIGZvY3VzYWJsZT0iZmFsc2UiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTkwOS42IDg1NC41TDY0OS45IDU5NC44QzY5MC4yIDU0Mi43IDcxMiA0NzkgNzEyIDQxMmMwLTgwLjItMzEuMy0xNTUuNC04Ny45LTIxMi4xLTU2LjYtNTYuNy0xMzItODcuOS0yMTIuMS04Ny45cy0xNTUuNSAzMS4zLTIxMi4xIDg3LjlDMTQzLjIgMjU2LjUgMTEyIDMzMS44IDExMiA0MTJjMCA4MC4xIDMxLjMgMTU1LjUgODcuOSAyMTIuMUMyNTYuNSA2ODAuOCAzMzEuOCA3MTIgNDEyIDcxMmM2NyAwIDEzMC42LTIxLjggMTgyLjctNjJsMjU5LjcgMjU5LjZhOC4yIDguMiAwIDAwMTEuNiAwbDQzLjYtNDMuNWE4LjIgOC4yIDAgMDAwLTExLjZ6TTU3MC40IDU3MC40QzUyOCA2MTIuNyA0NzEuOCA2MzYgNDEyIDYzNnMtMTE2LTIzLjMtMTU4LjQtNjUuNkMyMTEuMyA1MjggMTg4IDQ3MS44IDE4OCA0MTJzMjMuMy0xMTYuMSA2NS42LTE1OC40QzI5NiAyMTEuMyAzNTIuMiAxODggNDEyIDE4OHMxMTYuMSAyMy4yIDE1OC40IDY1LjZTNjM2IDM1Mi4yIDYzNiA0MTJzLTIzLjMgMTE2LjEtNjUuNiAxNTguNHoiIC8+PC9zdmc+) */

文件差异内容过多而无法显示
+ 0 - 0
front/dist/629.bundle.js


文件差异内容过多而无法显示
+ 0 - 0
front/dist/765.bundle.js


文件差异内容过多而无法显示
+ 0 - 0
front/dist/766.bundle.js


文件差异内容过多而无法显示
+ 0 - 0
front/dist/874.bundle.js


文件差异内容过多而无法显示
+ 0 - 0
front/dist/924.bundle.js


文件差异内容过多而无法显示
+ 0 - 0
front/dist/main.bundle.js


文件差异内容过多而无法显示
+ 1 - 1
front/dist/report.html


文件差异内容过多而无法显示
+ 0 - 0
front/dist/src_App2_js.bundle.js


文件差异内容过多而无法显示
+ 0 - 0
front/dist/src_Home2_js.bundle.js


文件差异内容过多而无法显示
+ 0 - 0
front/dist/src_Service_js.bundle.js


文件差异内容过多而无法显示
+ 17 - 0
front/dist/vendors-node_modules_antd_es_table_index_js-node_modules_antd_lib_locale_zh_CN_js-node_module-966f82.bundle.js


文件差异内容过多而无法显示
+ 17 - 0
front/dist/vendors-node_modules_antd_es_table_index_js-node_modules_antd_lib_locale_zh_CN_js-node_module-bd8e62.bundle.js


文件差异内容过多而无法显示
+ 77 - 0
front/dist/vendors-node_modules_mui_icons-material_esm_AccountCircle_js-node_modules_mui_icons-material_-615a29.bundle.js


文件差异内容过多而无法显示
+ 105 - 0
front/dist/vendors-node_modules_uuid_dist_esm-browser_v4_js-node_modules_mui_material_esm_Box_Box_js-nod-aa1e40.bundle.js


文件差异内容过多而无法显示
+ 105 - 0
front/dist/vendors-node_modules_uuid_dist_esm-browser_v4_js-node_modules_mui_material_esm_Box_Box_js-nod-e39d16.bundle.js


+ 106 - 2
front/src/Qingdan3.js

@@ -12,7 +12,7 @@ import Service from './Service';
 import Button from '@mui/material/Button';
 import ButtonGroup from '@mui/material/ButtonGroup';
 import {extractFuzhu} from './utils';
-import {shanchu, undo, redo, danxiangdinge, updateDercj, changguidinge, handleBeizhu, huan, updateShuliang} from './editor';
+import {shanchu, undo, redo, danxiangdinge, updateDercj, changguidinge, handleBeizhu, huan, updateShuliang, handleYuban} from './editor';
 import Backdrop from '@mui/material/Backdrop';
 import CircularProgress from '@mui/material/CircularProgress';
 import { DataGrid } from '@mui/x-data-grid';
@@ -65,8 +65,10 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
      const [rcjhl, setRcjhl] = React.useState([]);
      const [rcjhl2, setRcjhl2] = React.useState([]);
      const [fuzhu, setFuzhu] = React.useState([]);//展示用的附注行
+     const [yuban, setYuban] = React.useState([{'key': '0', '说明': '无'}, {'key': '1', '说明': '湿拌砂浆'}, {'key': '2', '说明': '散装干拌(混)砂浆'}, {'key': '3', '说明': '袋装干拌(混)砂浆'}]);
      const [tuijian, setTuijian] = React.useState([]);
      const [fuzhuEnable, setFuzhuEnable] = React.useState(false);
+     const [yubanEnable, setYubanEnable] = React.useState(false);
      const hotRcjRef = React.useRef(null);
      const hotTuijianRef = React.useRef(null);
      const highlight = React.useRef([]);
@@ -92,6 +94,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
      const cldeRef = React.useRef(null);
      const isQdrcj = React.useRef(false);
      const [selectedRowKeys, setSelectedRowKeys] = React.useState([]);
+     const [selectedRowKeys2, setSelectedRowKeys2] = React.useState([]);
      const onSelectChange = (newSelectedRowKeys) => {
           console.log('selectedRowKeys changed: ', newSelectedRowKeys);
           setSelectedRowKeys(newSelectedRowKeys);
@@ -129,6 +132,44 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
         };
 
 
+        const onSelectChange2 = (newSelectedRowKeys) => {
+          
+          setSelectedRowKeys2(newSelectedRowKeys);
+          const [newData, newHl]  = handleYuban(selectedRowKeysTable.current[0], newSelectedRowKeys);
+          if (newData) {
+               myTable.current.updateData(newData.filter(x=>x['key'] == selectedRowKeysTableParent.current));
+               let y =[];
+               for (let i = 1; i < newHl.length; i++) {
+                 y.push({
+               'ID' : newHl[i][0],
+               '人材机编码' : newHl[i][1],
+               '名称' : newHl[i][2],
+               '规格型号': newHl[i][3],
+               '单位' : newHl[i][4],
+               '单价' : newHl[i][5],
+               '产地' : newHl[i][6],
+               '供应厂商' : newHl[i][7],
+               '人材机类别' : newHl[i][8],
+               '甲供标志': newHl[i][9],
+               '含量' : newHl[i][10],
+               '合价' : newHl[i][11],
+               '暂估价标志' : newHl[i][12],
+               '主要材料标志' : newHl[i][13],
+               '主材标志' : newHl[i][14],
+               '设备标志' : newHl[i][15] 
+
+               });
+             }
+              setRcjhl(y);
+              if (rcjTable.current) {
+                 rcjTable.current.replaceData(y);
+              }
+
+            }
+        
+        };
+
+
      /**fuzhu select */
      const rowSelection = {
           selectedRowKeys,
@@ -140,6 +181,18 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
           }
      };
 
+     const rowSelection2 = {
+          type: 'radio',
+          selectedRowKeys: selectedRowKeys2,
+          selections: [Table.SELECTION_NONE],
+          onChange: onSelectChange2,
+          getCheckboxProps: (record) => {
+               return {
+                    disabled: !yubanEnable
+               };
+          }
+     };
+
 
      var editCheck = function(cell){
           //cell - the cell component for the editable cell
@@ -178,6 +231,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
                selectedRowKeysTableParent.current = row._row['data']['key'];
 
                setFuzhu([]);
+               setYubanEnable(false);
+               setSelectedRowKeys2([]);
                Service.generateQingdanrcj(name, bh,bt,row._row.data['清单编码']).then(x=>{
                 
                 
@@ -218,6 +273,7 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
              });
           }else{
                setTuijian([]);
+               
                if (tuijianTable.current) tuijianTable.current.replaceData([]);
               let row_parent = row._row;
               while(row_parent.modules.dataTree.parent) {
@@ -264,6 +320,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
                                    rcjTable.current.replaceData(y);
                               }
                  setFuzhuEnable(x[1]);
+                 setYubanEnable(x[1]);
+                 setSelectedRowKeys2(x[2]);
                  //hotRcjRef.current?.hotInstance?.loadData(x);
                  isQdrcj.current = false;
                  let toHighlight = [];
@@ -810,6 +868,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
                                              rcjTable.current.replaceData([]);
                                         }
                                         setFuzhu([]);
+                                        setSelectedRowKeys2([]);
+                                        setYubanEnable(false);
                                         isQdrcj.current = true;
                                         highlight.current = [];
                                  });
@@ -831,6 +891,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
                                    rcjTable.current.replaceData([]);
                                   }
                                   setFuzhu([]);
+                                  setSelectedRowKeys2([]);
+                                  setYubanEnable(false);
                                   isQdrcj.current = true;
                                   highlight.current = [];
                               }
@@ -855,6 +917,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
                               rcjTable.current.replaceData([]);
                          }
                          setFuzhu([]);
+                         setSelectedRowKeys2([]);
+                         setYubanEnable(false);
                          isQdrcj.current = true;
                          highlight.current = [];
                          
@@ -874,6 +938,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
                               rcjTable.current.replaceData([]);
                          }
                          setFuzhu([]);
+                         setSelectedRowKeys2([]);
+                         setYubanEnable(false);
                          isQdrcj.current = true;
                          highlight.current = [];
                    });
@@ -904,7 +970,8 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
                            <Tab sx={{p: 0, minHeight: '24px'}} label="人材机含量" value="1" />
                            <Tab sx={{p: 0, minHeight: '24px'}} label="标准定额人材机含量" value="2" />
                            <Tab sx={{p: 0, minHeight: '24px'}} label="定额附注" value="3" />
-                           <Tab sx={{p: 0, minHeight: '24px'}} label="组价推荐" value="4" />
+                           <Tab sx={{p: 0, minHeight: '24px'}} label="预拌砂浆" value="4" />
+                           <Tab sx={{p: 0, minHeight: '24px'}} label="组价推荐" value="5" />
                          </TabList>
                        </Box>
                        
@@ -961,6 +1028,43 @@ export default function Qingdan3({name, bh, bt, rgde, jxde, clde, beizhu/*后台
 
                        </TabPanel>
                        <TabPanel sx={{p: 1}} value="4">
+                        <Box sx={{maxHeight: `190px`}}>
+                        <ConfigProvider
+                          locale={zhCN}
+                          theme={{
+                            components: {
+                              Table: {
+                                 /* here is your component tokens */
+                                 cellPaddingBlock : 8
+                              },
+                            },
+                          }}
+                        >
+
+                          <Table 
+                             scroll={{ x: 'max-content' , y : 190}}
+                             pagination={false}
+                             rowSelection={rowSelection2}
+                             columns={
+                              [
+                                 
+                                   {
+                                        title: '说明',
+                                        dataIndex: '说明',
+                                        width: 550
+                                    
+                                   },
+                                  
+                                 ]
+                             }
+                           dataSource={yuban} />
+
+
+                         </ConfigProvider>
+                        </Box>
+                       </TabPanel>
+                       
+                       <TabPanel sx={{p: 1}} value="5">
                        <div ref={tuijianRef}></div>
 
                        </TabPanel>

+ 98 - 8
front/src/Service.js

@@ -707,7 +707,7 @@ class Service{
         }
         let qd = this.cache.filter(x=>x["清单编码"] == qdbm)[0];
         let de = qd["_children"].filter(x=>x["清单编码"]==debm)[0];
-        return [copy(de["dercj"]), de["fuzhuEnable"]];
+        return [copy(de["dercj"]), de["fuzhuEnable"], de['yuban']];
         
         
           
@@ -1573,7 +1573,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
     }
 
 
-    updateDercj_(row, data, xuhao) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename
+    updateDercj_(row, data, xuhao, yuban) {///change 一条定额 inplace, 汇总一条定额的rcj, xuhao is for rename, yuban is 预拌砂浆
         console.log("data updated");
         //处理附注
         let huan = false;//换
@@ -1589,7 +1589,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     huan = true;
                 }
             }
-
+           
             if (de['fuzhuEnable'] && de.hasOwnProperty('fuzhu')) {//没强行改过含量
                 
                 for(let j = 1; j < de['rcjdg'].length; j++) {
@@ -1648,6 +1648,65 @@ async generateQingdanTuijian(name, bh, bt, bm) {
             de['dercj'] = copy(data);
             data = de['dercj'];
         }
+        data = data.filter(x=>x[1] != 'S00001' && x[1] != 'JD0001');
+        de['dercj'] = copy(data);
+
+        if (de.hasOwnProperty("rcjdg") && de['fuzhuEnable'] && yuban.length > 0) {//没强行改过含量
+            if (yuban.includes('1')) {
+                for(let i = 1; i < data.length; i++) {
+                    if (data[i][4]=='工日') {
+                        data[i][10] = Number(data[i][10]) - 0.45;
+                    }
+                    if (data[i][2].includes('搅拌机')) {
+                        data[i][10] = 0;
+                    }
+                    if (data[i][2].includes('砂浆') && !data[i][2].includes('搅拌机')) {
+                        data[i][2] = data[i][2].concat('(湿拌砂浆)')
+                    }
+                }
+
+            } else if (yuban.includes('2')) {
+                let origin = 0;
+                for(let i = 1; i < data.length; i++) {
+                  if (data[i][4]=='工日') {
+                    data[i][10] = Number(data[i][10]) - 0.3;
+                  }
+                  if (data[i][2].includes('搅拌机')) {
+                    data[i][10] = 0;
+                  }
+                  
+                  if (data[i][2].includes('砂浆') && !data[i][2].includes('搅拌机')) {
+                    data[i][2] = data[i][2].concat('(干拌(混)砂浆)');
+                    origin = Number(data[i][10]); 
+                    data[i][10] = origin * 1.75;
+                  }
+                }
+                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','']);
+                data.push(['', 'JD0001', '其他机械费(电)', '', '度', '0.65', '', '', '3', 'false', (origin * 2.15).toString(), '', '','','','']);
+
+
+
+
+            } else if (yuban.includes('3')) {
+                let origin = 0;
+                for(let i = 1; i < data.length; i++) {
+                  if (data[i][4]=='工日') {
+                    data[i][10] = Number(data[i][10]) - 0.2;
+                  }
+                 
+                  
+                  if (data[i][2].includes('砂浆') && !data[i][2].includes('搅拌机')) {
+                    data[i][2] = data[i][2].concat('(干拌(混)砂浆)');
+                    origin = Number(data[i][10]); 
+                    data[i][10] = origin * 1.75;
+                  }
+                }
+                data.push(['', 'S00001', '水', '', 't', '4.70', '', '', '2', 'false', (origin * 0.29).toString(), '', '','','','']);
+                
+
+            }
+            de['dercj'] = copy(data);
+        }
         //模拟formula计算每一行的合价
         for(let i = 1; i < data.length; i++) {
             data[i][11] = Number(data[i][10]) * Number(data[i][5]);
@@ -1731,7 +1790,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
 
         
-        this.updateDercj_(row, data, alreadyFuzhu);
+        this.updateDercj_(row, data, alreadyFuzhu, de['yuban']);
         //let qd = this.cache.filter(x=>x["children"].filter(y=>y['key']==row).length > 0)[0];
 
         let newData = this.cache.map(x=>{
@@ -1806,7 +1865,7 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
         }
         de['fuzhu'] = copy(selected);
-        this.updateDercj_(row, de['dercj'], xuhao);
+        this.updateDercj_(row, de['dercj'], xuhao, de['yuban']);
 
         let newData = this.cache.map(x=>{
             if (x['key'] == qd['key']) {
@@ -2053,11 +2112,12 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                     "dercj": dercj,
                     'rcjdg': copy(dercj),
                     'key' :   newKey,
-                    "fuzhuEnable": true
+                    "fuzhuEnable": true,
+                    'yuban': []
     
                     
                 });
-                this.updateDercj_(newKey, dercj, []);
+                this.updateDercj_(newKey, dercj, [], []);
                 let summarized = this.summarize(this.cache);
                 this.push_op(copy(summarized));
                 /////////////////
@@ -2106,7 +2166,8 @@ async generateQingdanTuijian(name, bh, bt, bm) {
                    ['', bh, mingcheng, '', danwei, '', '', '', '2', '', '1', '', '',  '', '', '' ]
                       ],
                 'key' :   uuidv4(),
-                "fuzhuEnable": false
+                "fuzhuEnable": false,
+                'yuban': []
 
                 
             });
@@ -2171,6 +2232,35 @@ async generateQingdanTuijian(name, bh, bt, bm) {
 
     }
 
+    handleYuban(row, selected) {
+        let qd = this.cache.filter(x=>x["_children"].filter(y=>y['key']==row).length > 0)[0];
+        if (!qd) return [null, null];
+        let de = qd["_children"].filter(x=>x['key'] == row)[0];
+        let bm = de['清单编码'];
+        let alreadyFuzhu = extractFuzhu(bm);//[xuhao]
+        if (de.hasOwnProperty("rcjdg")) {//底稿
+
+        } else {///老数据不能有底稿,附注功能也不使能,预拌也不能使
+            //de['rcjdg'] = copy(de['dercj']);
+
+        }
+        de['yuban'] = copy(selected);
+        this.updateDercj_(row, de['dercj'], alreadyFuzhu, selected);
+
+        let newData = this.cache.map(x=>{
+            if (x['key'] == qd['key']) {
+                return qd;
+            } else {
+                return x;
+            }
+        });
+        let summarized = this.summarize(newData);
+        this.push_op(summarized);
+        /////////////////
+        this.cache = copy(summarized);
+        return [copy(this.cache), copy(de['dercj'])];
+    }
+
     
 }
 

+ 5 - 0
front/src/editor.js

@@ -99,6 +99,11 @@ export const changguidinge_djcs = (dingeclick, selectedRow) => {
 
 };
 
+export const handleYuban = (derow, select ) => {
+    return Service.handleYuban(derow, select);
+
+};
+
 export const handleBeizhu = (beizhuFK, derow, fuzhuSelect, fuzhu ) => {
     console.log(beizhuFK);
     let bianma = [];

+ 2 - 0
subdir/db.py

@@ -528,6 +528,7 @@ async def resolve(data, client):
                     dercj = getDjcsDingercj_(root, entry["bh"], "", cs["清单编码"], child["清单编码"])
                     child["dercj"] = dercj
                     child['fuzhuEnable'] = False
+                    child['yuban'] = []
             await collection.insert_one(cs)
 
     collection = db["qdxm"]
@@ -552,6 +553,7 @@ async def resolve(data, client):
                         dercj = getDingercj_(root, entry["bh"], bt, qd["清单编码"], child["清单编码"])
                         child["dercj"] = dercj
                         child['fuzhuEnable'] = False
+                        child['yuban'] = []
                 await collection.insert_one(qd)
             
 

部分文件因为文件数量过多而无法显示