@bit-sun/business-component 4.2.0-alpha.13 → 4.2.0-alpha.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import './PathDisplay.less';
2
3
  interface PathDisplayProps {
3
4
  recordType?: string;
4
5
  businessType?: string;
package/dist/index.esm.js CHANGED
@@ -2,7 +2,7 @@ import axios from 'axios';
2
2
  import request$1 from 'umi-request';
3
3
  import cookie from 'js-cookie';
4
4
  import { message as message$1, Tooltip, Image, Popover, Card, Avatar, Badge, Menu, Input, InputNumber, Space, Button, Dropdown, Upload, Checkbox, Modal, ConfigProvider, Tag, Select, Spin, Form, Table, Empty, Row, Col, Tabs, TreeSelect, DatePicker, Typography, Alert, Breadcrumb, Drawer as Drawer$1, List, Radio, Tree, Result, Affix, Cascader, TimePicker, Divider, Switch, Collapse } from 'antd';
5
- import _, { omit, uniqBy, escapeRegExp, isNil, isBoolean, debounce, cloneDeep as cloneDeep$1, throttle, isEmpty } from 'lodash';
5
+ import _, { omit, uniqBy, escapeRegExp, isNil, cloneDeep, isEmpty, isBoolean, debounce, throttle } from 'lodash';
6
6
  import memoizeOne from 'memoize-one';
7
7
  import { formatMessage, history, useLocation, Link, useModel, setLocale, useIntl, request as request$3 } from 'umi';
8
8
  import isEqual from 'lodash/isEqual';
@@ -21,7 +21,7 @@ import { SortableHandle, SortableElement, SortableContainer } from 'react-sortab
21
21
  import { arrayMoveImmutable } from 'array-move';
22
22
  import classNames from 'classnames';
23
23
  import ProLayout from '@ant-design/pro-layout';
24
- import cloneDeep from 'lodash/cloneDeep';
24
+ import cloneDeep$1 from 'lodash/cloneDeep';
25
25
  import debounce$1 from 'lodash/debounce';
26
26
  import { DndProvider, useDrop, useDrag } from 'react-dnd';
27
27
  import { HTML5Backend } from 'react-dnd-html5-backend';
@@ -5743,6 +5743,29 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5743
5743
  removeListener();
5744
5744
  };
5745
5745
  }, [isModalVisible]);
5746
+ var safeJSONParse = function safeJSONParse(str) {
5747
+ try {
5748
+ return JSON.parse(str);
5749
+ } catch (error) {
5750
+ console.warn('JSON解析失败:', error);
5751
+ return null;
5752
+ }
5753
+ };
5754
+ // 获取回显的value值 如果开启了搜索条件 则需要过滤掉搜索条件
5755
+ var getShowValue = function getShowValue(value) {
5756
+ var newValue = cloneDeep(value);
5757
+ if (selectProps.useSearchCondition && newValue) {
5758
+ // 回显的时候 把搜索项的内容去掉
5759
+ if (selectMode) {
5760
+ newValue = newValue.filter(function (item) {
5761
+ var parsedItem = safeJSONParse(decodeURIComponent(item));
5762
+ // 过滤掉JSON对象(搜索条件),保留非JSON数据(实际选择项)
5763
+ return !parsedItem || !(parsedItem && _typeof(parsedItem) === 'object' && !Array.isArray(parsedItem));
5764
+ });
5765
+ }
5766
+ }
5767
+ return newValue;
5768
+ };
5746
5769
  var showModal = function showModal() {
5747
5770
  if (sDisabled) return;
5748
5771
  setSelectOpen(false);
@@ -5752,12 +5775,13 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5752
5775
  // 回显
5753
5776
  if (value) {
5754
5777
  if (selectMode) {
5755
- setSelectedRowKeys(labelInValue ? value.map(function (i) {
5778
+ var newValue = getShowValue(value);
5779
+ setSelectedRowKeys(labelInValue ? newValue.map(function (i) {
5756
5780
  return i.key;
5757
- }) : value);
5758
- setSelectedRows(labelInValue ? value.map(function (i) {
5781
+ }) : newValue);
5782
+ setSelectedRows(labelInValue ? newValue.map(function (i) {
5759
5783
  return _defineProperty(_defineProperty(_defineProperty({}, mappingValueField, i.key), "value", i.key), "text", i.label);
5760
- }) : value.map(function (i) {
5784
+ }) : newValue.map(function (i) {
5761
5785
  return _defineProperty(_defineProperty({}, mappingValueField, i), "value", i);
5762
5786
  }));
5763
5787
  setPopValue(labelInValue ? value.map(function (i) {
@@ -5794,7 +5818,24 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5794
5818
  formaData(selectedValue, source);
5795
5819
  } else {
5796
5820
  var formatResult = selectMode ? [] : null;
5797
- onChange(formatResult, selectedValue);
5821
+ // 支持使用查询条件 筛选
5822
+ if (selectProps.useSearchCondition) {
5823
+ var formValue = form.getFieldsValue();
5824
+ // 一次性处理数据转换和过滤
5825
+ var processedFormValue = Object.keys(formValue).reduce(function (acc, key) {
5826
+ var value = formValue[key];
5827
+ // 过滤空值(确保trim函数存在)
5828
+ var trimmedValue = typeof value === 'string' ? value.trim() : value;
5829
+ if (trimmedValue && trimmedValue !== '') {
5830
+ acc[key] = trimmedValue;
5831
+ }
5832
+ return acc;
5833
+ }, {});
5834
+ var result = JSON.stringify(processedFormValue);
5835
+ onChange(isEmpty(processedFormValue) ? formatResult : selectMode ? [result] : result, selectedValue);
5836
+ } else {
5837
+ onChange(formatResult, selectedValue);
5838
+ }
5798
5839
  }
5799
5840
  };
5800
5841
  var handleOk = function handleOk() {
@@ -5824,7 +5865,7 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
5824
5865
  setConfirmLoading(false);
5825
5866
  });
5826
5867
  } else {
5827
- handleSelectOver(popvalue);
5868
+ handleSelectOver(selectedRows.length ? popvalue : []);
5828
5869
  handleCancel();
5829
5870
  }
5830
5871
  };
@@ -6450,9 +6491,25 @@ var SearchSelect = /*#__PURE__*/forwardRef(function (props, ref) {
6450
6491
  confirmLoading: confirmLoading,
6451
6492
  onOk: handleOk,
6452
6493
  onCancel: handleCancel,
6453
- footer: selectMode || (modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter) ? [/*#__PURE__*/React$1.createElement(Button, {
6494
+ footer: selectMode || (modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter) ? [selectProps.useSearchCondition ? (/*#__PURE__*/React$1.createElement("div", {
6495
+ key: "instructions",
6496
+ style: {
6497
+ position: 'absolute',
6498
+ width: 'calc(100% - 500px)',
6499
+ textAlign: 'left'
6500
+ }
6501
+ }, /*#__PURE__*/React$1.createElement("div", null, "\u64CD\u4F5C\u8BF4\u660E\uFF1A\u7ED3\u679C\u96C6\u8FC7\u591A\u65F6\uFF0C\u53EF\u65E0\u9700\u9009\u62E9\u5177\u4F53\u6570\u636E\uFF0C\u7CFB\u7EDF\u5C06\u76F4\u63A5\u6309\u5DF2\u8BBE\u7B5B\u9009\u6761\u4EF6\u67E5\u8BE2"), /*#__PURE__*/React$1.createElement(Input, {
6502
+ style: {
6503
+ marginTop: '3px',
6504
+ height: '22px'
6505
+ },
6506
+ value: value
6507
+ }))) : /*#__PURE__*/React$1.createElement(React$1.Fragment, null), /*#__PURE__*/React$1.createElement(Button, {
6454
6508
  key: "back",
6455
- onClick: handleCancel
6509
+ onClick: handleCancel,
6510
+ style: {
6511
+ margin: selectProps.useSearchCondition ? '10px 0' : 0
6512
+ }
6456
6513
  }, "\u53D6\u6D88"), /*#__PURE__*/React$1.createElement(Button, {
6457
6514
  key: "submit",
6458
6515
  type: "primary",
@@ -10165,8 +10222,9 @@ function commonFun(type, prefixUrl, parentProps) {
10165
10222
  name: 'qp-name-like',
10166
10223
  label: '供应商名称'
10167
10224
  }, {
10168
- name: 'qp-code-like',
10169
- label: '供应商编码'
10225
+ name: 'qp-code-in',
10226
+ label: '供应商编码',
10227
+ type: 'multipleQueryInput'
10170
10228
  }, {
10171
10229
  name: 'qp-createOrgCode-eq',
10172
10230
  type: 'select',
@@ -20216,7 +20274,7 @@ var searchMenuData = function searchMenuData(router, name, callBack) {
20216
20274
  }
20217
20275
  var btnAuth = JSON.parse(localStorage.getItem(getMenuAuthDataKey()) || '[]');
20218
20276
  var resultList = [];
20219
- var newRouter = cloneDeep(router);
20277
+ var newRouter = cloneDeep$1(router);
20220
20278
  var _deep = function deep(router) {
20221
20279
  if (router && Array.isArray(router)) {
20222
20280
  router.forEach(function (item) {
@@ -21157,7 +21215,7 @@ var GlobalHeaderCom = function GlobalHeaderCom(props) {
21157
21215
  };
21158
21216
  var initRoute = function initRoute(router, name) {
21159
21217
  var resultList = [];
21160
- var newRouter = cloneDeep$1(router);
21218
+ var newRouter = cloneDeep(router);
21161
21219
  var btnAuth = JSON.parse(localStorage.getItem(getMenuAuthDataKey()) || '[]');
21162
21220
  var _deep = function deep(router) {
21163
21221
  if (router && Array.isArray(router)) {
@@ -40614,7 +40672,7 @@ var PathDisplay = /*#__PURE__*/React$1.forwardRef(function (_ref, ref) {
40614
40672
  });
40615
40673
  var boock = function boock(nodeItem) {
40616
40674
  return /*#__PURE__*/React$1.createElement("div", {
40617
- className: css_248z$y.pathItem_block
40675
+ className: "pathItem_block"
40618
40676
  }, /*#__PURE__*/React$1.createElement("div", null, "\u3010", nodeItem.code, "\u3011", nodeItem.name), /*#__PURE__*/React$1.createElement("div", null, "\u7EC4\u7EC7\u5206\u7C7B\uFF1A", getDictionaryTextByValue('BUSINESS_ORG_CLASSIFICATION', nodeItem.orgClassification || '')));
40619
40677
  };
40620
40678
  // 调用接口获取数据
@@ -40720,7 +40778,7 @@ var PathDisplay = /*#__PURE__*/React$1.forwardRef(function (_ref, ref) {
40720
40778
  }
40721
40779
  };
40722
40780
  return /*#__PURE__*/React$1.createElement("div", {
40723
- className: css_248z$y.pathItem_line
40781
+ className: "pathItem_line"
40724
40782
  }, nodeItem.targetOrgCode && (/*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement(Tooltip, {
40725
40783
  title: /*#__PURE__*/React$1.createElement("div", {
40726
40784
  style: {
@@ -40730,7 +40788,7 @@ var PathDisplay = /*#__PURE__*/React$1.forwardRef(function (_ref, ref) {
40730
40788
  }, /*#__PURE__*/React$1.createElement("div", null, "\u7ED3\u7B97\u5355\u636E\uFF1A", nodeItem.targetRecordName), /*#__PURE__*/React$1.createElement("div", null, "\u4E1A\u52A1\u7C7B\u578B\uFF1A", getDictionaryTextByValue(getRecordBusinessType(nodeItem.targetRecordType || ''), nodeItem.targetBusinessType || '')), /*#__PURE__*/React$1.createElement("div", null, "\u4EF7\u683C\u6765\u6E90\uFF1A", nodeItem.targetOtherLineInfo), /*#__PURE__*/React$1.createElement("div", null, "\u7269\u8D44\u51ED\u8BC1\uFF1A", nodeItem.targetRecordNo || ' '), /*#__PURE__*/React$1.createElement("div", null, nodeItem.targetOccupyType === 1 ? '信贷占用单' : '结算取价单', "\uFF1A", nodeItem.targetCreditSettleNo || ' ')),
40731
40789
  placement: "top"
40732
40790
  }, /*#__PURE__*/React$1.createElement("div", {
40733
- className: css_248z$y.record_info
40791
+ className: "record_info"
40734
40792
  }, /*#__PURE__*/React$1.createElement("div", {
40735
40793
  style: {
40736
40794
  fontSize: '12px',
@@ -40755,13 +40813,13 @@ var PathDisplay = /*#__PURE__*/React$1.forwardRef(function (_ref, ref) {
40755
40813
  return handleCreditSettleJump(nodeItem.targetCreditSettleId || '');
40756
40814
  }
40757
40815
  }, nodeItem.targetCreditSettleNo)) : nodeItem.targetCreditSettleNo)))), /*#__PURE__*/React$1.createElement("div", {
40758
- className: css_248z$y.pathItem_line_withRightArrow
40816
+ className: "pathItem_line_withRightArrow"
40759
40817
  }, /*#__PURE__*/React$1.createElement("div", {
40760
- className: css_248z$y.pathItem_line_rightArrow
40818
+ className: "pathItem_line_rightArrow"
40761
40819
  })))) || null, nodeItem.sourceOrgCode && (/*#__PURE__*/React$1.createElement(React$1.Fragment, null, /*#__PURE__*/React$1.createElement("div", {
40762
- className: css_248z$y.pathItem_line_withLeftArrow
40820
+ className: "pathItem_line_withLeftArrow"
40763
40821
  }, /*#__PURE__*/React$1.createElement("div", {
40764
- className: css_248z$y.pathItem_line_leftArrow
40822
+ className: "pathItem_line_leftArrow"
40765
40823
  })), /*#__PURE__*/React$1.createElement(Tooltip, {
40766
40824
  title: /*#__PURE__*/React$1.createElement("div", {
40767
40825
  style: {
@@ -40771,7 +40829,7 @@ var PathDisplay = /*#__PURE__*/React$1.forwardRef(function (_ref, ref) {
40771
40829
  }, /*#__PURE__*/React$1.createElement("div", null, "\u7ED3\u7B97\u5355\u636E\uFF1A", nodeItem.sourceRecordName), /*#__PURE__*/React$1.createElement("div", null, "\u4E1A\u52A1\u7C7B\u578B\uFF1A", getDictionaryTextByValue(getRecordBusinessType(nodeItem.sourceRecordType || ''), nodeItem.sourceBusinessType || '')), /*#__PURE__*/React$1.createElement("div", null, "\u4EF7\u683C\u6765\u6E90\uFF1A", nodeItem.sourceOtherLineInfo), /*#__PURE__*/React$1.createElement("div", null, "\u7269\u8D44\u51ED\u8BC1\uFF1A", nodeItem.sourceRecordNo || ' '), /*#__PURE__*/React$1.createElement("div", null, nodeItem.sourceOccupyType === 1 ? '信贷占用单' : '结算取价单', "\uFF1A", nodeItem.sourceCreditSettleNo || ' ')),
40772
40830
  placement: "top"
40773
40831
  }, /*#__PURE__*/React$1.createElement("div", {
40774
- className: css_248z$y.record_info
40832
+ className: "record_info"
40775
40833
  }, /*#__PURE__*/React$1.createElement("div", {
40776
40834
  style: {
40777
40835
  fontSize: '12px',
@@ -40798,14 +40856,14 @@ var PathDisplay = /*#__PURE__*/React$1.forwardRef(function (_ref, ref) {
40798
40856
  }, nodeItem.sourceCreditSettleNo || ' ')) : nodeItem.sourceCreditSettleNo || ' ')))))) || null);
40799
40857
  };
40800
40858
  return /*#__PURE__*/React$1.createElement("div", {
40801
- className: css_248z$y.wrap_pathContentBox
40859
+ className: "wrap_pathContentBox"
40802
40860
  }, /*#__PURE__*/React$1.createElement(Spin, {
40803
40861
  spinning: loading,
40804
40862
  tip: "\u52A0\u8F7D\u4E2D..."
40805
40863
  }, routeCode && /*#__PURE__*/React$1.createElement("div", {
40806
- className: css_248z$y.wrap_pathContentBoxTitle
40864
+ className: "wrap_pathContentBoxTitle"
40807
40865
  }, "\u8DE8\u7EC4\u7EC7\u94FE\u8DEF\u540D\u79F0\uFF1A\u3010", routeCode, "\u3011", routeCodeName), /*#__PURE__*/React$1.createElement("div", {
40808
- className: css_248z$y.pathItem_content
40866
+ className: "pathItem_content"
40809
40867
  }, pathList.map(function (nodeItem, index) {
40810
40868
  return /*#__PURE__*/React$1.createElement(React$1.Fragment, {
40811
40869
  key: "node_".concat(index)
package/dist/index.js CHANGED
@@ -5766,6 +5766,29 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5766
5766
  removeListener();
5767
5767
  };
5768
5768
  }, [isModalVisible]);
5769
+ var safeJSONParse = function safeJSONParse(str) {
5770
+ try {
5771
+ return JSON.parse(str);
5772
+ } catch (error) {
5773
+ console.warn('JSON解析失败:', error);
5774
+ return null;
5775
+ }
5776
+ };
5777
+ // 获取回显的value值 如果开启了搜索条件 则需要过滤掉搜索条件
5778
+ var getShowValue = function getShowValue(value) {
5779
+ var newValue = _.cloneDeep(value);
5780
+ if (selectProps.useSearchCondition && newValue) {
5781
+ // 回显的时候 把搜索项的内容去掉
5782
+ if (selectMode) {
5783
+ newValue = newValue.filter(function (item) {
5784
+ var parsedItem = safeJSONParse(decodeURIComponent(item));
5785
+ // 过滤掉JSON对象(搜索条件),保留非JSON数据(实际选择项)
5786
+ return !parsedItem || !(parsedItem && _typeof(parsedItem) === 'object' && !Array.isArray(parsedItem));
5787
+ });
5788
+ }
5789
+ }
5790
+ return newValue;
5791
+ };
5769
5792
  var showModal = function showModal() {
5770
5793
  if (sDisabled) return;
5771
5794
  setSelectOpen(false);
@@ -5775,12 +5798,13 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5775
5798
  // 回显
5776
5799
  if (value) {
5777
5800
  if (selectMode) {
5778
- setSelectedRowKeys(labelInValue ? value.map(function (i) {
5801
+ var newValue = getShowValue(value);
5802
+ setSelectedRowKeys(labelInValue ? newValue.map(function (i) {
5779
5803
  return i.key;
5780
- }) : value);
5781
- setSelectedRows(labelInValue ? value.map(function (i) {
5804
+ }) : newValue);
5805
+ setSelectedRows(labelInValue ? newValue.map(function (i) {
5782
5806
  return _defineProperty(_defineProperty(_defineProperty({}, mappingValueField, i.key), "value", i.key), "text", i.label);
5783
- }) : value.map(function (i) {
5807
+ }) : newValue.map(function (i) {
5784
5808
  return _defineProperty(_defineProperty({}, mappingValueField, i), "value", i);
5785
5809
  }));
5786
5810
  setPopValue(labelInValue ? value.map(function (i) {
@@ -5817,7 +5841,24 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5817
5841
  formaData(selectedValue, source);
5818
5842
  } else {
5819
5843
  var formatResult = selectMode ? [] : null;
5820
- onChange(formatResult, selectedValue);
5844
+ // 支持使用查询条件 筛选
5845
+ if (selectProps.useSearchCondition) {
5846
+ var formValue = form.getFieldsValue();
5847
+ // 一次性处理数据转换和过滤
5848
+ var processedFormValue = Object.keys(formValue).reduce(function (acc, key) {
5849
+ var value = formValue[key];
5850
+ // 过滤空值(确保trim函数存在)
5851
+ var trimmedValue = typeof value === 'string' ? value.trim() : value;
5852
+ if (trimmedValue && trimmedValue !== '') {
5853
+ acc[key] = trimmedValue;
5854
+ }
5855
+ return acc;
5856
+ }, {});
5857
+ var result = JSON.stringify(processedFormValue);
5858
+ onChange(_.isEmpty(processedFormValue) ? formatResult : selectMode ? [result] : result, selectedValue);
5859
+ } else {
5860
+ onChange(formatResult, selectedValue);
5861
+ }
5821
5862
  }
5822
5863
  };
5823
5864
  var handleOk = function handleOk() {
@@ -5847,7 +5888,7 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
5847
5888
  setConfirmLoading(false);
5848
5889
  });
5849
5890
  } else {
5850
- handleSelectOver(popvalue);
5891
+ handleSelectOver(selectedRows.length ? popvalue : []);
5851
5892
  handleCancel();
5852
5893
  }
5853
5894
  };
@@ -6473,9 +6514,25 @@ var SearchSelect = /*#__PURE__*/React$1.forwardRef(function (props, ref) {
6473
6514
  confirmLoading: confirmLoading,
6474
6515
  onOk: handleOk,
6475
6516
  onCancel: handleCancel,
6476
- footer: selectMode || (modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter) ? [/*#__PURE__*/React__default['default'].createElement(antd.Button, {
6517
+ footer: selectMode || (modalTableProps === null || modalTableProps === void 0 ? void 0 : modalTableProps.modalRadioNeedFooter) ? [selectProps.useSearchCondition ? (/*#__PURE__*/React__default['default'].createElement("div", {
6518
+ key: "instructions",
6519
+ style: {
6520
+ position: 'absolute',
6521
+ width: 'calc(100% - 500px)',
6522
+ textAlign: 'left'
6523
+ }
6524
+ }, /*#__PURE__*/React__default['default'].createElement("div", null, "\u64CD\u4F5C\u8BF4\u660E\uFF1A\u7ED3\u679C\u96C6\u8FC7\u591A\u65F6\uFF0C\u53EF\u65E0\u9700\u9009\u62E9\u5177\u4F53\u6570\u636E\uFF0C\u7CFB\u7EDF\u5C06\u76F4\u63A5\u6309\u5DF2\u8BBE\u7B5B\u9009\u6761\u4EF6\u67E5\u8BE2"), /*#__PURE__*/React__default['default'].createElement(antd.Input, {
6525
+ style: {
6526
+ marginTop: '3px',
6527
+ height: '22px'
6528
+ },
6529
+ value: value
6530
+ }))) : /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null), /*#__PURE__*/React__default['default'].createElement(antd.Button, {
6477
6531
  key: "back",
6478
- onClick: handleCancel
6532
+ onClick: handleCancel,
6533
+ style: {
6534
+ margin: selectProps.useSearchCondition ? '10px 0' : 0
6535
+ }
6479
6536
  }, "\u53D6\u6D88"), /*#__PURE__*/React__default['default'].createElement(antd.Button, {
6480
6537
  key: "submit",
6481
6538
  type: "primary",
@@ -10188,8 +10245,9 @@ function commonFun(type, prefixUrl, parentProps) {
10188
10245
  name: 'qp-name-like',
10189
10246
  label: '供应商名称'
10190
10247
  }, {
10191
- name: 'qp-code-like',
10192
- label: '供应商编码'
10248
+ name: 'qp-code-in',
10249
+ label: '供应商编码',
10250
+ type: 'multipleQueryInput'
10193
10251
  }, {
10194
10252
  name: 'qp-createOrgCode-eq',
10195
10253
  type: 'select',
@@ -40637,7 +40695,7 @@ var PathDisplay = /*#__PURE__*/React__default['default'].forwardRef(function (_r
40637
40695
  });
40638
40696
  var boock = function boock(nodeItem) {
40639
40697
  return /*#__PURE__*/React__default['default'].createElement("div", {
40640
- className: css_248z$y.pathItem_block
40698
+ className: "pathItem_block"
40641
40699
  }, /*#__PURE__*/React__default['default'].createElement("div", null, "\u3010", nodeItem.code, "\u3011", nodeItem.name), /*#__PURE__*/React__default['default'].createElement("div", null, "\u7EC4\u7EC7\u5206\u7C7B\uFF1A", getDictionaryTextByValue('BUSINESS_ORG_CLASSIFICATION', nodeItem.orgClassification || '')));
40642
40700
  };
40643
40701
  // 调用接口获取数据
@@ -40743,7 +40801,7 @@ var PathDisplay = /*#__PURE__*/React__default['default'].forwardRef(function (_r
40743
40801
  }
40744
40802
  };
40745
40803
  return /*#__PURE__*/React__default['default'].createElement("div", {
40746
- className: css_248z$y.pathItem_line
40804
+ className: "pathItem_line"
40747
40805
  }, nodeItem.targetOrgCode && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
40748
40806
  title: /*#__PURE__*/React__default['default'].createElement("div", {
40749
40807
  style: {
@@ -40753,7 +40811,7 @@ var PathDisplay = /*#__PURE__*/React__default['default'].forwardRef(function (_r
40753
40811
  }, /*#__PURE__*/React__default['default'].createElement("div", null, "\u7ED3\u7B97\u5355\u636E\uFF1A", nodeItem.targetRecordName), /*#__PURE__*/React__default['default'].createElement("div", null, "\u4E1A\u52A1\u7C7B\u578B\uFF1A", getDictionaryTextByValue(getRecordBusinessType(nodeItem.targetRecordType || ''), nodeItem.targetBusinessType || '')), /*#__PURE__*/React__default['default'].createElement("div", null, "\u4EF7\u683C\u6765\u6E90\uFF1A", nodeItem.targetOtherLineInfo), /*#__PURE__*/React__default['default'].createElement("div", null, "\u7269\u8D44\u51ED\u8BC1\uFF1A", nodeItem.targetRecordNo || ' '), /*#__PURE__*/React__default['default'].createElement("div", null, nodeItem.targetOccupyType === 1 ? '信贷占用单' : '结算取价单', "\uFF1A", nodeItem.targetCreditSettleNo || ' ')),
40754
40812
  placement: "top"
40755
40813
  }, /*#__PURE__*/React__default['default'].createElement("div", {
40756
- className: css_248z$y.record_info
40814
+ className: "record_info"
40757
40815
  }, /*#__PURE__*/React__default['default'].createElement("div", {
40758
40816
  style: {
40759
40817
  fontSize: '12px',
@@ -40778,13 +40836,13 @@ var PathDisplay = /*#__PURE__*/React__default['default'].forwardRef(function (_r
40778
40836
  return handleCreditSettleJump(nodeItem.targetCreditSettleId || '');
40779
40837
  }
40780
40838
  }, nodeItem.targetCreditSettleNo)) : nodeItem.targetCreditSettleNo)))), /*#__PURE__*/React__default['default'].createElement("div", {
40781
- className: css_248z$y.pathItem_line_withRightArrow
40839
+ className: "pathItem_line_withRightArrow"
40782
40840
  }, /*#__PURE__*/React__default['default'].createElement("div", {
40783
- className: css_248z$y.pathItem_line_rightArrow
40841
+ className: "pathItem_line_rightArrow"
40784
40842
  })))) || null, nodeItem.sourceOrgCode && (/*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, null, /*#__PURE__*/React__default['default'].createElement("div", {
40785
- className: css_248z$y.pathItem_line_withLeftArrow
40843
+ className: "pathItem_line_withLeftArrow"
40786
40844
  }, /*#__PURE__*/React__default['default'].createElement("div", {
40787
- className: css_248z$y.pathItem_line_leftArrow
40845
+ className: "pathItem_line_leftArrow"
40788
40846
  })), /*#__PURE__*/React__default['default'].createElement(antd.Tooltip, {
40789
40847
  title: /*#__PURE__*/React__default['default'].createElement("div", {
40790
40848
  style: {
@@ -40794,7 +40852,7 @@ var PathDisplay = /*#__PURE__*/React__default['default'].forwardRef(function (_r
40794
40852
  }, /*#__PURE__*/React__default['default'].createElement("div", null, "\u7ED3\u7B97\u5355\u636E\uFF1A", nodeItem.sourceRecordName), /*#__PURE__*/React__default['default'].createElement("div", null, "\u4E1A\u52A1\u7C7B\u578B\uFF1A", getDictionaryTextByValue(getRecordBusinessType(nodeItem.sourceRecordType || ''), nodeItem.sourceBusinessType || '')), /*#__PURE__*/React__default['default'].createElement("div", null, "\u4EF7\u683C\u6765\u6E90\uFF1A", nodeItem.sourceOtherLineInfo), /*#__PURE__*/React__default['default'].createElement("div", null, "\u7269\u8D44\u51ED\u8BC1\uFF1A", nodeItem.sourceRecordNo || ' '), /*#__PURE__*/React__default['default'].createElement("div", null, nodeItem.sourceOccupyType === 1 ? '信贷占用单' : '结算取价单', "\uFF1A", nodeItem.sourceCreditSettleNo || ' ')),
40795
40853
  placement: "top"
40796
40854
  }, /*#__PURE__*/React__default['default'].createElement("div", {
40797
- className: css_248z$y.record_info
40855
+ className: "record_info"
40798
40856
  }, /*#__PURE__*/React__default['default'].createElement("div", {
40799
40857
  style: {
40800
40858
  fontSize: '12px',
@@ -40821,14 +40879,14 @@ var PathDisplay = /*#__PURE__*/React__default['default'].forwardRef(function (_r
40821
40879
  }, nodeItem.sourceCreditSettleNo || ' ')) : nodeItem.sourceCreditSettleNo || ' ')))))) || null);
40822
40880
  };
40823
40881
  return /*#__PURE__*/React__default['default'].createElement("div", {
40824
- className: css_248z$y.wrap_pathContentBox
40882
+ className: "wrap_pathContentBox"
40825
40883
  }, /*#__PURE__*/React__default['default'].createElement(antd.Spin, {
40826
40884
  spinning: loading,
40827
40885
  tip: "\u52A0\u8F7D\u4E2D..."
40828
40886
  }, routeCode && /*#__PURE__*/React__default['default'].createElement("div", {
40829
- className: css_248z$y.wrap_pathContentBoxTitle
40887
+ className: "wrap_pathContentBoxTitle"
40830
40888
  }, "\u8DE8\u7EC4\u7EC7\u94FE\u8DEF\u540D\u79F0\uFF1A\u3010", routeCode, "\u3011", routeCodeName), /*#__PURE__*/React__default['default'].createElement("div", {
40831
- className: css_248z$y.pathItem_content
40889
+ className: "pathItem_content"
40832
40890
  }, pathList.map(function (nodeItem, index) {
40833
40891
  return /*#__PURE__*/React__default['default'].createElement(React__default['default'].Fragment, {
40834
40892
  key: "node_".concat(index)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bit-sun/business-component",
3
- "version": "4.2.0-alpha.13",
3
+ "version": "4.2.0-alpha.15",
4
4
  "scripts": {
5
5
  "start": "dumi dev",
6
6
  "docs:build": "dumi build",
@@ -237,7 +237,7 @@ export function commonFun (type?: string, prefixUrl: any, parentProps?:any) {
237
237
  }
238
238
  tableSearchForm = [
239
239
  { name: 'qp-name-like', label: '供应商名称' }, // field: { type: 'input', props: { placeholder: '请输入'}}
240
- { name: 'qp-code-like', label: '供应商编码' },
240
+ { name: 'qp-code-in', label: '供应商编码', type: 'multipleQueryInput' },
241
241
  { name: 'qp-createOrgCode-eq', type: 'select', label: '创建组织', field: {
242
242
  type: 'select',
243
243
  props: {
@@ -35,7 +35,7 @@ import PathDisplay from '@/components/Business/TrialCalculation/PathDisplay';
35
35
 
36
36
  ```tsx
37
37
  import React from 'react';
38
- import PathDisplay from '@/components/Business/TrialCalculation/PathDisplay';
38
+ import PathDisplay from '@/components/Business/TrialCalculation';
39
39
 
40
40
  const Demo = () => {
41
41
  return (
@@ -2,7 +2,7 @@ import React, { useState, useEffect } from 'react';
2
2
  import { Tooltip, message, Spin } from 'antd';
3
3
  import request from '@/utils/request';
4
4
  import { getDictionaryTextByValue, handleError } from '@/utils';
5
- import styles from './PathDisplay.less';
5
+ import './PathDisplay.less';
6
6
 
7
7
  const formatPaths = (list: any) => {
8
8
  const result = list.map((l: any, index: number) => {
@@ -104,7 +104,7 @@ const PathDisplay = React.forwardRef<PathDisplayRef, PathDisplayProps>(({
104
104
  }));
105
105
 
106
106
  const boock = (nodeItem: NodeItem) => (
107
- <div className={styles.pathItem_block}>
107
+ <div className="pathItem_block">
108
108
  <div>【{nodeItem.code}】{nodeItem.name}</div>
109
109
  <div>组织分类:{getDictionaryTextByValue('BUSINESS_ORG_CLASSIFICATION', nodeItem.orgClassification || '')}</div>
110
110
  </div>
@@ -194,7 +194,7 @@ const PathDisplay = React.forwardRef<PathDisplayRef, PathDisplayProps>(({
194
194
  };
195
195
 
196
196
  return (
197
- <div className={styles.pathItem_line}>
197
+ <div className="pathItem_line">
198
198
  {nodeItem.targetOrgCode && (
199
199
  <>
200
200
  <Tooltip
@@ -209,7 +209,7 @@ const PathDisplay = React.forwardRef<PathDisplayRef, PathDisplayProps>(({
209
209
  }
210
210
  placement="top"
211
211
  >
212
- <div className={styles.record_info}>
212
+ <div className="record_info">
213
213
  <div style={{ fontSize: '12px', lineHeight: '1.5' }}>
214
214
  <div>{nodeItem.targetRecordName}</div>
215
215
  <div>{getDictionaryTextByValue(getRecordBusinessType(nodeItem.targetRecordType || ''), nodeItem.targetBusinessType || '')}</div>
@@ -241,15 +241,15 @@ const PathDisplay = React.forwardRef<PathDisplayRef, PathDisplayProps>(({
241
241
  </div>
242
242
  </div>
243
243
  </Tooltip>
244
- <div className={styles.pathItem_line_withRightArrow}>
245
- <div className={styles.pathItem_line_rightArrow}></div>
244
+ <div className="pathItem_line_withRightArrow">
245
+ <div className="pathItem_line_rightArrow"></div>
246
246
  </div>
247
247
  </>
248
248
  ) || null}
249
249
  {nodeItem.sourceOrgCode && (
250
250
  <>
251
- <div className={styles.pathItem_line_withLeftArrow}>
252
- <div className={styles.pathItem_line_leftArrow}></div>
251
+ <div className="pathItem_line_withLeftArrow">
252
+ <div className="pathItem_line_leftArrow"></div>
253
253
  </div>
254
254
  <Tooltip
255
255
  title={
@@ -263,7 +263,7 @@ const PathDisplay = React.forwardRef<PathDisplayRef, PathDisplayProps>(({
263
263
  }
264
264
  placement="top"
265
265
  >
266
- <div className={styles.record_info}>
266
+ <div className="record_info">
267
267
  <div style={{ fontSize: '12px', lineHeight: '1.5' }}>
268
268
  <div>{nodeItem.sourceRecordName}</div>
269
269
  <div>{getDictionaryTextByValue(getRecordBusinessType(nodeItem.sourceRecordType || ''), nodeItem.sourceBusinessType || '')}</div>
@@ -302,11 +302,11 @@ const PathDisplay = React.forwardRef<PathDisplayRef, PathDisplayProps>(({
302
302
  };
303
303
 
304
304
  return (
305
- <div className={styles.wrap_pathContentBox}>
305
+ <div className="wrap_pathContentBox">
306
306
  <Spin spinning={loading} tip="加载中...">
307
- {routeCode && <div className={styles.wrap_pathContentBoxTitle}>跨组织链路名称:【{routeCode}】{routeCodeName}</div> }
307
+ {routeCode && <div className="wrap_pathContentBoxTitle">跨组织链路名称:【{routeCode}】{routeCodeName}</div> }
308
308
 
309
- <div className={styles.pathItem_content}>
309
+ <div className="pathItem_content">
310
310
  {pathList.map((nodeItem, index) => (
311
311
  <React.Fragment key={`node_${index}`}>
312
312
  {boock(nodeItem)}
@@ -4,7 +4,7 @@ import { useDebounceFn } from 'ahooks';
4
4
  import { Input, Button, Modal, Select, Divider, message, Spin, Form, Table, Checkbox, TreeSelect, Tooltip, Tag, Row, Col, Space, Tabs, Empty, DatePicker } from 'antd';
5
5
  import { SearchOutlined, CopyOutlined, CaretLeftOutlined } from '@ant-design/icons';
6
6
  import request from '@/utils/request';
7
- import _, { escapeRegExp, isNil, values } from "lodash"
7
+ import _, { escapeRegExp, isNil, values, cloneDeep, isEmpty } from "lodash"
8
8
  import './index.less';
9
9
  import { BusinessSearchSelect, QueryMutipleInput, QueryMutipleSearchSelect } from '@/index';
10
10
  import { handleSourceName, getFormRowInfo, hasMoreQueryFields, defaultVisibleFieldsCount, getRealStr, getTableHeigth, getCurrentSRKs, getRenderSource, handleParams, convertUrlQueryParams, convertBodyParams, formatSelectedValue, convertResData, makeUniqueValue, handleSelectOptionsShowValue, LightHeightOption, maxTagPlaceholder, getShowStr, handleTableColumns } from './utils';
@@ -362,6 +362,30 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
362
362
  };
363
363
  },[isModalVisible])
364
364
 
365
+ const safeJSONParse = (str: string) => {
366
+ try {
367
+ return JSON.parse(str);
368
+ } catch (error) {
369
+ console.warn('JSON解析失败:', error);
370
+ return null;
371
+ }
372
+ };
373
+
374
+ // 获取回显的value值 如果开启了搜索条件 则需要过滤掉搜索条件
375
+ const getShowValue = (value: any) => {
376
+ let newValue = cloneDeep(value);
377
+ if(selectProps.useSearchCondition && newValue) {
378
+ // 回显的时候 把搜索项的内容去掉
379
+ if(selectMode) {
380
+ newValue = newValue.filter((item: any) => {
381
+ const parsedItem = safeJSONParse(decodeURIComponent(item));
382
+ // 过滤掉JSON对象(搜索条件),保留非JSON数据(实际选择项)
383
+ return !parsedItem || !(parsedItem && typeof parsedItem === 'object' && !Array.isArray(parsedItem));
384
+ });
385
+ }
386
+ }
387
+ return newValue;
388
+ }
365
389
  const showModal = () => {
366
390
  if(sDisabled) return;
367
391
 
@@ -373,8 +397,9 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
373
397
  // 回显
374
398
  if (value) {
375
399
  if (selectMode) {
376
- setSelectedRowKeys(labelInValue ? value.map(i => i.key) : value)
377
- setSelectedRows(labelInValue ? value.map(i => ({ [mappingValueField]: i.key, value: i.key, text: i.label })) : value.map(i => ({ [mappingValueField]: i, value: i })))
400
+ const newValue = getShowValue(value);
401
+ setSelectedRowKeys(labelInValue ? newValue.map(i => i.key) : newValue)
402
+ setSelectedRows(labelInValue ? newValue.map(i => ({ [mappingValueField]: i.key, value: i.key, text: i.label })) : newValue.map(i => ({ [mappingValueField]: i, value: i })))
378
403
  setPopValue(labelInValue ? value.map(i => ({ value: i.key, text: i.label })) : value.map(i => ({ value: i })));
379
404
  setIndeterminate(!!value.length && value.length < itemsTotal);
380
405
  setCheckedAll(itemsTotal && value.length === itemsTotal);
@@ -395,8 +420,25 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
395
420
  setSelectDataSource(source,source?.length)
396
421
  formaData(selectedValue, source);
397
422
  } else {
398
- const formatResult = selectMode ? [] : null
399
- onChange(formatResult, selectedValue)
423
+ var formatResult = selectMode ? [] : null;
424
+ // 支持使用查询条件 筛选
425
+ if (selectProps.useSearchCondition) {
426
+ var formValue = form.getFieldsValue();
427
+ // 一次性处理数据转换和过滤
428
+ var processedFormValue = Object.keys(formValue).reduce(function (acc, key) {
429
+ var value = formValue[key];
430
+ // 过滤空值(确保trim函数存在)
431
+ var trimmedValue = typeof value === 'string' ? value.trim() : value;
432
+ if (trimmedValue && trimmedValue !== '') {
433
+ acc[key] = trimmedValue;
434
+ }
435
+ return acc;
436
+ }, {});
437
+ const result = JSON.stringify(processedFormValue)
438
+ onChange(isEmpty(processedFormValue) ? formatResult : selectMode ? [result] : result, selectedValue);
439
+ } else {
440
+ onChange(formatResult, selectedValue);
441
+ }
400
442
  }
401
443
  }
402
444
  const handleOk = () => {
@@ -426,7 +468,7 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
426
468
  setConfirmLoading(false)
427
469
  })
428
470
  } else {
429
- handleSelectOver(popvalue)
471
+ handleSelectOver(selectedRows.length ? popvalue : [])
430
472
  handleCancel();
431
473
  }
432
474
  };
@@ -934,7 +976,20 @@ const SearchSelect = forwardRef((props: any, ref: any) => {
934
976
  footer={
935
977
  selectMode || modalTableProps?.modalRadioNeedFooter
936
978
  ? [
937
- <Button key="back" onClick={handleCancel}>
979
+ selectProps.useSearchCondition ? (
980
+ <div
981
+ key="instructions"
982
+ style={{
983
+ position: 'absolute',
984
+ width: 'calc(100% - 500px)',
985
+ textAlign: 'left'
986
+ }}
987
+ >
988
+ <div>操作说明:结果集过多时,可无需选择具体数据,系统将直接按已设筛选条件查询</div>
989
+ <Input style={{marginTop: '3px', height: '22px'}} value={value} />
990
+ </div>
991
+ ) : <></>,
992
+ <Button key="back" onClick={handleCancel} style={{margin: selectProps.useSearchCondition ? '10px 0' : 0}}>
938
993
  取消
939
994
  </Button>,
940
995
  <Button