Commit 4679f2efb6ac10afbad33f76c0da5542bb3b1950

Authored by qiang.tian
1 parent b48f7830

refactor: add showHeader

1 import { ControlOutlined } from '@ant-design/icons'; 1 import { ControlOutlined } from '@ant-design/icons';
2 import { Select, Tooltip } from 'antd'; 2 import { Select, Tooltip } from 'antd';
3 import cls from 'classnames'; 3 import cls from 'classnames';
  4 +import dayjs from 'dayjs';
4 import { size } from 'lodash-es'; 5 import { size } from 'lodash-es';
5 import React, { useEffect, useRef, useState } from 'react'; 6 import React, { useEffect, useRef, useState } from 'react';
6 import { FieldBaseType, type QxBaseConditionField } from '../qx-base-condition'; 7 import { FieldBaseType, type QxBaseConditionField } from '../qx-base-condition';
@@ -12,7 +13,6 @@ import { @@ -12,7 +13,6 @@ import {
12 QxFlowNodeFieldSelector, 13 QxFlowNodeFieldSelector,
13 } from '../qx-flow-node-selector'; 14 } from '../qx-flow-node-selector';
14 import { QxWidgetIcon } from '../qx-widget-icon'; 15 import { QxWidgetIcon } from '../qx-widget-icon';
15 -import dayjs from 'dayjs';  
16 16
17 import './index.less'; 17 import './index.less';
18 18
@@ -693,6 +693,7 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({ @@ -693,6 +693,7 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({
693 showAssignment = true, 693 showAssignment = true,
694 isMixValue, 694 isMixValue,
695 fieldType, 695 fieldType,
  696 + showHeader = true,
696 }) => { 697 }) => {
697 const valuesObj = value?.valuesObj?.[0] || {}; 698 const valuesObj = value?.valuesObj?.[0] || {};
698 const [open, setOpen] = useState(false); 699 const [open, setOpen] = useState(false);
@@ -703,7 +704,9 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({ @@ -703,7 +704,9 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({
703 const handleChange = (val: any[]) => { 704 const handleChange = (val: any[]) => {
704 onChange?.({ 705 onChange?.({
705 ...(value || {}), 706 ...(value || {}),
706 - mappingValues: val?.length ? val?.map((i: any) => i.extVal || i.value) : [], 707 + mappingValues: val?.length
  708 + ? val?.map((i: any) => i.extVal || i.value)
  709 + : [],
707 valuesObj: val, 710 valuesObj: val,
708 }); 711 });
709 }; 712 };
@@ -814,37 +817,41 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({ @@ -814,37 +817,41 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({
814 817
815 return ( 818 return (
816 <div className="qx-base-condition-item"> 819 <div className="qx-base-condition-item">
817 - <div className="qx-base-condition-item__header">  
818 - <div className="qx-base-condition-item__header-left">  
819 - <span className="qx-base-condition-item__header-icon">  
820 - {field?.extract?.widget ? (  
821 - <QxWidgetIcon widgetName={field.extract.widget} />  
822 - ) : (  
823 - `[${FieldMapType[fieldType]}]`  
824 - )}  
825 - </span>  
826 - <span  
827 - className={cls('qx-base-condition-item__header-text', {  
828 - error: !field,  
829 - })}  
830 - >  
831 - {field?.name || '已删除'}  
832 - </span>  
833 - </div>  
834 - <div className="qx-base-condition-item__header-right">  
835 - <span className="qx-base-condition-item__header-filter">  
836 - <RenderFilter />  
837 - </span>  
838 - <span className="qx-base-condition-item__header-delete">  
839 - <Tooltip title="删除">  
840 - <QxBaseIcon  
841 - type="qx-icon-delete"  
842 - onClick={() => remove?.(value)}  
843 - />  
844 - </Tooltip>  
845 - </span>  
846 - </div>  
847 - </div> 820 + {showHeader ? (
  821 + <>
  822 + <div className="qx-base-condition-item__header">
  823 + <div className="qx-base-condition-item__header-left">
  824 + <span className="qx-base-condition-item__header-icon">
  825 + {field?.extract?.widget ? (
  826 + <QxWidgetIcon widgetName={field.extract.widget} />
  827 + ) : (
  828 + `[${FieldMapType[fieldType]}]`
  829 + )}
  830 + </span>
  831 + <span
  832 + className={cls('qx-base-condition-item__header-text', {
  833 + error: !field,
  834 + })}
  835 + >
  836 + {field?.name || '已删除'}
  837 + </span>
  838 + </div>
  839 + <div className="qx-base-condition-item__header-right">
  840 + <span className="qx-base-condition-item__header-filter">
  841 + <RenderFilter />
  842 + </span>
  843 + <span className="qx-base-condition-item__header-delete">
  844 + <Tooltip title="删除">
  845 + <QxBaseIcon
  846 + type="qx-icon-delete"
  847 + onClick={() => remove?.(value)}
  848 + />
  849 + </Tooltip>
  850 + </span>
  851 + </div>
  852 + </div>
  853 + </>
  854 + ) : null}
848 <div className="qx-base-condition-item__content"> 855 <div className="qx-base-condition-item__content">
849 {showAssignment ? ( 856 {showAssignment ? (
850 <QxFlowNodeFieldSelector 857 <QxFlowNodeFieldSelector
@@ -853,7 +860,11 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({ @@ -853,7 +860,11 @@ export const QxBaseConditionItem: React.FC<QxBaseConditionItemProps> = ({
853 node={node!} 860 node={node!}
854 nodes={nodes!} 861 nodes={nodes!}
855 open={open} 862 open={open}
856 - value={FieldBaseType[valuesObj?.type] === 'DATE' ? dayjs(valuesObj?.value || '') : valuesObj?.value} 863 + value={
  864 + FieldBaseType[valuesObj?.type] === 'DATE'
  865 + ? dayjs(valuesObj?.value || '')
  866 + : valuesObj?.value
  867 + }
857 onChange={handleAssignment} 868 onChange={handleAssignment}
858 limitTypes={limitTypes} 869 limitTypes={limitTypes}
859 subset={subset} 870 subset={subset}
@@ -878,6 +889,7 @@ export interface ValueAssignmentPopupProps @@ -878,6 +889,7 @@ export interface ValueAssignmentPopupProps
878 } 889 }
879 890
880 export interface QxBaseConditionItemProps { 891 export interface QxBaseConditionItemProps {
  892 + showHeader?: boolean;
881 field: QxBaseConditionField; 893 field: QxBaseConditionField;
882 value?: any; 894 value?: any;
883 onChange?: (val: any) => void; 895 onChange?: (val: any) => void;