Commit a5dc3a3e8a632980e1bcd1bbbde5df709a193845
Merge branch 'feature/dataflow' of http://gitlab.qgutech.com/tianqiang/qx-common…
… into feature/dataflow
Showing
13 changed files
with
482 additions
and
216 deletions
| 1 | 1 | { |
| 2 | 2 | "name": "@qx/common", |
| 3 | - "version": "3.0.0-alpha.6", | |
| 3 | + "version": "3.0.0-alpha.8", | |
| 4 | 4 | "lockfileVersion": 2, |
| 5 | 5 | "requires": true, |
| 6 | 6 | "packages": { |
| 7 | 7 | "": { |
| 8 | 8 | "name": "@qx/common", |
| 9 | - "version": "3.0.0-alpha.6", | |
| 9 | + "version": "3.0.0-alpha.8", | |
| 10 | 10 | "license": "MIT", |
| 11 | 11 | "dependencies": { |
| 12 | 12 | "@ant-design/icons": "^5.2.5", | ... | ... |
| ... | ... | @@ -35,10 +35,11 @@ |
| 35 | 35 | .qx-field-setter { |
| 36 | 36 | display: flex; |
| 37 | 37 | width: 100%; |
| 38 | - background-color: transparent; | |
| 39 | 38 | border: 1px solid @N4; |
| 40 | 39 | border-radius: 4px; |
| 41 | 40 | min-height: 32px; |
| 41 | + box-sizing: border-box; | |
| 42 | + background-color: transparent; | |
| 42 | 43 | |
| 43 | 44 | &__icon-text { |
| 44 | 45 | color: @N9; |
| ... | ... | @@ -64,48 +65,62 @@ |
| 64 | 65 | border-radius: 4px 0 0 4px; |
| 65 | 66 | box-sizing: border-box; |
| 66 | 67 | } |
| 68 | + | |
| 67 | 69 | .ant-select-single:not(.ant-select-customize-input) .ant-select-selector { |
| 68 | 70 | padding: 0 4px 0 8px; |
| 69 | 71 | } |
| 72 | + | |
| 70 | 73 | .ant-picker { |
| 71 | 74 | padding: 4px 8px; |
| 72 | 75 | } |
| 76 | + | |
| 73 | 77 | .ant-input-number-input { |
| 74 | 78 | padding: 0 8px; |
| 75 | 79 | line-height: 30px; |
| 76 | 80 | } |
| 81 | + | |
| 77 | 82 | .ant-select.select.qx-filter-select { |
| 78 | - width: calc(100% - 24px); | |
| 83 | + width: calc(100% - 32px); | |
| 79 | 84 | padding: 0; |
| 80 | 85 | .ant-select-selector { |
| 86 | + border-radius: 6px 0 0 6px; | |
| 87 | + } | |
| 88 | + | |
| 89 | + .ant-select-selector { | |
| 81 | 90 | min-height: 32px; |
| 82 | 91 | padding: 0 4px 4px 8px; |
| 83 | 92 | } |
| 93 | + | |
| 84 | 94 | .ant-select-selection-overflow-item { |
| 85 | 95 | height: 28px; |
| 86 | 96 | } |
| 97 | + | |
| 87 | 98 | .ant-select-selection-placeholder { |
| 88 | 99 | left: 8px; |
| 89 | 100 | } |
| 101 | + | |
| 90 | 102 | .ant-select-selection-overflow-item-suffix { |
| 91 | 103 | padding-top: 4px; |
| 92 | 104 | } |
| 93 | 105 | } |
| 94 | 106 | |
| 95 | 107 | .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) |
| 96 | - .ant-select-selector { | |
| 108 | + .ant-select-selector { | |
| 97 | 109 | box-shadow: none; |
| 98 | 110 | } |
| 111 | + | |
| 99 | 112 | .ant-picker { |
| 100 | 113 | padding: 4px 8px; |
| 101 | 114 | } |
| 102 | 115 | |
| 103 | 116 | .ant-tag { |
| 104 | 117 | font-size: 14px; |
| 118 | + | |
| 105 | 119 | .anticon + span { |
| 106 | 120 | margin-left: 0; |
| 107 | 121 | } |
| 108 | 122 | } |
| 123 | + | |
| 109 | 124 | // todo 目前表单名字过长导致页面变形 |
| 110 | 125 | .qx-tags-input.ant-input .ant-tag, |
| 111 | 126 | .tag.qx-select-tag { |
| ... | ... | @@ -131,10 +146,12 @@ |
| 131 | 146 | font-size: 8px; |
| 132 | 147 | } |
| 133 | 148 | } |
| 149 | + | |
| 134 | 150 | .qx-tags-input__box { |
| 135 | 151 | margin-top: 4px; |
| 136 | 152 | padding-left: 0; |
| 137 | 153 | } |
| 154 | + | |
| 138 | 155 | .qx-tags-input.ant-input > .ant-tag:first-child { |
| 139 | 156 | margin-left: unset; |
| 140 | 157 | } | ... | ... |
| ... | ... | @@ -7,7 +7,6 @@ import { QxAppSelector } from '../qx-app-selector'; |
| 7 | 7 | import type { InputSelectProps } from '../qx-input-select'; |
| 8 | 8 | import { QxInputSelect } from '../qx-input-select'; |
| 9 | 9 | |
| 10 | -import { getFunInfo } from './service'; | |
| 11 | 10 | import './styles.less'; |
| 12 | 11 | |
| 13 | 12 | const prefix = 'qx-form-select'; |
| ... | ... | @@ -26,7 +25,7 @@ export const QxFormSelect: React.FC<FormSelectProps> = (props) => { |
| 26 | 25 | request, |
| 27 | 26 | disabled, |
| 28 | 27 | placeholder, |
| 29 | - title, | |
| 28 | + title | |
| 30 | 29 | } = props; |
| 31 | 30 | |
| 32 | 31 | const [state, setState] = useSetState<FormSelectState>({ |
| ... | ... | @@ -40,25 +39,10 @@ export const QxFormSelect: React.FC<FormSelectProps> = (props) => { |
| 40 | 39 | if (!val?.code) return; |
| 41 | 40 | function onOk() { |
| 42 | 41 | if (val?.code) { |
| 43 | - getFunInfo(request, val.code) | |
| 44 | - .then((res: any) => { | |
| 45 | - if (res) { | |
| 46 | - onChange?.({ | |
| 47 | - ...res, | |
| 48 | - appId: res.extract?.appId || val.appId, | |
| 49 | - isTree: res.extract?.isTree, | |
| 50 | - funId: res.code, | |
| 51 | - }); | |
| 52 | - } | |
| 53 | - setState({ | |
| 54 | - visible: false, | |
| 55 | - }); | |
| 56 | - }) | |
| 57 | - .catch(() => { | |
| 58 | - setState({ | |
| 59 | - visible: false, | |
| 60 | - }); | |
| 61 | - }); | |
| 42 | + onChange?.(val); | |
| 43 | + setState({ | |
| 44 | + visible: false, | |
| 45 | + }); | |
| 62 | 46 | } |
| 63 | 47 | } |
| 64 | 48 | onOk(); |
| ... | ... | @@ -96,6 +80,7 @@ export const QxFormSelect: React.FC<FormSelectProps> = (props) => { |
| 96 | 80 | ), |
| 97 | 81 | }} |
| 98 | 82 | disabled={disabled} |
| 83 | + popupOnBody={props?.popupOnBody} | |
| 99 | 84 | /> |
| 100 | 85 | |
| 101 | 86 | {state.modalVisible ? ( |
| ... | ... | @@ -129,6 +114,7 @@ interface FormSelectProps extends InputSelectProps { |
| 129 | 114 | appId?: string; |
| 130 | 115 | request?: any; |
| 131 | 116 | disabled?: boolean; |
| 117 | + popupOnBody?: boolean; | |
| 132 | 118 | } |
| 133 | 119 | interface FormSelectState { |
| 134 | 120 | visible: boolean; | ... | ... |
src/qx-form-select/service.ts
deleted
100644 → 0
| ... | ... | @@ -73,7 +73,13 @@ export const QxInputSelect = React.forwardRef<any, InputSelectProps>( |
| 73 | 73 | {...dropdownProps} |
| 74 | 74 | /> |
| 75 | 75 | )} |
| 76 | - getPopupContainer={(triggerNode) => triggerNode} | |
| 76 | + getPopupContainer={(triggerNode) => { | |
| 77 | + if (props?.popupOnBody) { | |
| 78 | + return document.body; | |
| 79 | + } else { | |
| 80 | + return triggerNode; | |
| 81 | + } | |
| 82 | + }} | |
| 77 | 83 | onOpenChange={onVisibleChange} |
| 78 | 84 | disabled={disabled} |
| 79 | 85 | > |
| ... | ... | @@ -96,6 +102,7 @@ export interface InputSelectProps extends Omit<InputProps, 'onChange'> { |
| 96 | 102 | options?: DropdownContentOptions[]; |
| 97 | 103 | dropdownProps?: DropdownContentProps; |
| 98 | 104 | disabled?: boolean; |
| 105 | + popupOnBody?: boolean; | |
| 99 | 106 | } |
| 100 | 107 | export interface InputSelectState { |
| 101 | 108 | visible: boolean; | ... | ... |
| 1 | 1 | /* eslint-disable array-callback-return */ |
| 2 | 2 | /* eslint-disable eqeqeq */ |
| 3 | 3 | import { |
| 4 | - DeleteOutlined, | |
| 5 | - PlusOutlined, | |
| 6 | - SisternodeOutlined, | |
| 7 | 4 | SnippetsOutlined, |
| 8 | 5 | } from '@ant-design/icons'; |
| 9 | 6 | import { |
| ... | ... | @@ -30,7 +27,7 @@ import React, { |
| 30 | 27 | } from 'react'; |
| 31 | 28 | import JSONEditor from './codeMirror'; |
| 32 | 29 | import './style.less'; |
| 33 | -import { QxFieldSetter } from '@qx/common'; | |
| 30 | +import { QxFieldSetter, QxFormSelect, ValueOptionProps } from '@qx/common'; | |
| 34 | 31 | import { formatEnum } from './constant'; |
| 35 | 32 | import { |
| 36 | 33 | typeTranslateFieIdtype, |
| ... | ... | @@ -39,11 +36,10 @@ import { |
| 39 | 36 | typeTranslateItemtype, |
| 40 | 37 | } from './constant'; |
| 41 | 38 | // import { Controlled as CodeMirror } from 'react-codemirror2' |
| 42 | -import { cloneDeep, debounce } from 'lodash-es'; | |
| 43 | -import _ from 'lodash'; | |
| 39 | +import { cloneDeep, debounce, isEmpty } from 'lodash-es'; | |
| 44 | 40 | import moment from 'dayjs'; |
| 45 | 41 | import { QxBaseIcon } from '@qx/common'; |
| 46 | - | |
| 42 | +import Icon from '@ant-design/icons'; | |
| 47 | 43 | const valueOptions = [ |
| 48 | 44 | { key: 'STRING', title: '文本' }, |
| 49 | 45 | { key: 'NUMBER', title: '数字' }, |
| ... | ... | @@ -58,6 +54,8 @@ const valueOptions = [ |
| 58 | 54 | { key: 'ORG', title: '部门' }, |
| 59 | 55 | ]; |
| 60 | 56 | |
| 57 | +import { ReactComponent as SubNodeIcon } from './sub-node.svg'; | |
| 58 | + | |
| 61 | 59 | const timeFormat = [ |
| 62 | 60 | { lable: '年', value: 'YEAR' }, |
| 63 | 61 | { lable: '年-月', value: 'YEAR_MONTH' }, |
| ... | ... | @@ -77,9 +75,11 @@ interface ParameterSettingProps { |
| 77 | 75 | handleChangeField: (val?: any, data?: any) => void; |
| 78 | 76 | handleChange: (e?: any, data?: any, code?: string) => void; |
| 79 | 77 | handleDrop: (val: any) => void; |
| 80 | - handleAddtree: (val: any) => void; | |
| 78 | + handleAddTree: (val: any) => void; | |
| 81 | 79 | handleAdd: (val: any) => void; |
| 82 | 80 | handleDelete: (val: any) => void; |
| 81 | + appFormList?: any[]; // 当前应用表单list | |
| 82 | + request?: any, | |
| 83 | 83 | } |
| 84 | 84 | const EditableContext = React.createContext<FormInstance<any> | null>(null); |
| 85 | 85 | |
| ... | ... | @@ -115,7 +115,7 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 115 | 115 | handleCancel, |
| 116 | 116 | handleDrop, |
| 117 | 117 | handleAdd, |
| 118 | - handleAddtree, | |
| 118 | + handleAddTree, | |
| 119 | 119 | handleDelete, |
| 120 | 120 | handleChange, |
| 121 | 121 | handleChangeField, |
| ... | ... | @@ -139,7 +139,7 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 139 | 139 | }; |
| 140 | 140 | |
| 141 | 141 | const checkShowTree = (_data: any) => { |
| 142 | - console.log('_data', _data) | |
| 142 | + // console.log('_data', _data) | |
| 143 | 143 | if (_data.type == 'ARRAY') { |
| 144 | 144 | if (_data.child && _data.child.length > 0) { |
| 145 | 145 | return false; |
| ... | ... | @@ -243,36 +243,33 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 243 | 243 | dataIndex: 'qxProps', |
| 244 | 244 | editable: true, |
| 245 | 245 | key: 'qxProps', |
| 246 | - render: (text, record) => ( | |
| 247 | - <div key={record.id}> | |
| 248 | - <span> | |
| 249 | - {record.type == 'TIME' | |
| 250 | - ? moment(text?.min).format( | |
| 251 | - formatEnum[text?.format] || 'YYYY-MM-DD', | |
| 252 | - ) | |
| 253 | - : text?.min} | |
| 254 | - </span> | |
| 255 | - {text?.min && ( | |
| 256 | - <Space style={{ marginLeft: 5, marginRight: 5 }}>-</Space> | |
| 257 | - )} | |
| 258 | - <span> | |
| 259 | - {record.type == 'TIME' | |
| 260 | - ? moment(text?.max).format( | |
| 261 | - formatEnum[text?.format] || 'YYYY-MM-DD', | |
| 262 | - ) | |
| 263 | - : text?.max} | |
| 264 | - </span> | |
| 265 | - </div> | |
| 266 | - // <Form.Item | |
| 267 | - // name={'qxProps' + record.id} | |
| 268 | - // > | |
| 269 | - // <> | |
| 270 | - // <Input disabled={record.disabled} defaultValue={text?.min} onBlur={(e) => props.handleChange(e, record, 'qxProps-min')} style={{ width: '45%' }} /> | |
| 271 | - // - | |
| 272 | - // <Input disabled={record.disabled} defaultValue={text?.max} onBlur={(e) => props.handleChange(e, record, 'qxProps-max')} style={{ width: '45%' }} /> | |
| 273 | - // </> | |
| 274 | - // </Form.Item> | |
| 275 | - ), | |
| 246 | + render: (text: any, record: any) => { | |
| 247 | + console.log('record ====', record); | |
| 248 | + console.log('text ====', text); | |
| 249 | + return ( | |
| 250 | + <> | |
| 251 | + {record.type === 'FORM' ? <> | |
| 252 | + <div key={record.id}> | |
| 253 | + <span> | |
| 254 | + {text?.name} | |
| 255 | + </span> | |
| 256 | + </div> | |
| 257 | + </> : <> | |
| 258 | + <div key={record.id}> | |
| 259 | + <span>{record.type == 'TIME' ? moment(text?.min).format( | |
| 260 | + formatEnum[text?.format] || 'YYYY-MM-DD') : text?.min} | |
| 261 | + </span> | |
| 262 | + {text?.min && ( | |
| 263 | + <Space style={{ marginLeft: 5, marginRight: 5 }}>-</Space> | |
| 264 | + )} | |
| 265 | + <span>{record.type == 'TIME' ? moment(text?.max).format( | |
| 266 | + formatEnum[text?.format] || 'YYYY-MM-DD') : text?.max} | |
| 267 | + </span> | |
| 268 | + </div> | |
| 269 | + </>} | |
| 270 | + </> | |
| 271 | + ) | |
| 272 | + }, | |
| 276 | 273 | }, |
| 277 | 274 | { |
| 278 | 275 | title: '必填', |
| ... | ... | @@ -343,26 +340,29 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 343 | 340 | <Space size="small"> |
| 344 | 341 | {isShowAdd && ( |
| 345 | 342 | <Button |
| 343 | + size={'small'} | |
| 346 | 344 | type="link" |
| 347 | 345 | disabled={record.disabled} |
| 348 | - icon={<PlusOutlined />} | |
| 346 | + icon={<QxBaseIcon style={{ fontSize: 16 }} type={'qx-icon-plus'} />} | |
| 349 | 347 | onClick={() => handleAdd(record.pid)} |
| 350 | 348 | /> |
| 351 | 349 | )} |
| 352 | 350 | {(record.type === 'OBJECT' || record.type === 'ARRAY') && |
| 353 | 351 | isShowTree && ( |
| 354 | 352 | <Button |
| 353 | + size={'small'} | |
| 355 | 354 | type="link" |
| 356 | 355 | disabled={record.disabled} |
| 357 | - icon={<SisternodeOutlined />} | |
| 358 | - onClick={() => handleAddtree(record.id)} | |
| 356 | + icon={<Icon style={{ fontSize: 16 }} component={SubNodeIcon} />} | |
| 357 | + onClick={() => handleAddTree(record.id)} | |
| 359 | 358 | /> |
| 360 | 359 | )} |
| 361 | 360 | <Button |
| 361 | + size={'small'} | |
| 362 | 362 | type="link" |
| 363 | 363 | className="btn-high-del" |
| 364 | 364 | disabled={record.disabled} |
| 365 | - icon={<DeleteOutlined />} | |
| 365 | + icon={<QxBaseIcon style={{ fontSize: 16 }} className={'title-btn-del-btn'} type={'qx-icon-delete'} />} | |
| 366 | 366 | onClick={() => handleDelete(record)} |
| 367 | 367 | /> |
| 368 | 368 | </Space> |
| ... | ... | @@ -434,6 +434,7 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 434 | 434 | const toggleEdit1 = (e) => { |
| 435 | 435 | const values = form.getFieldsValue(); |
| 436 | 436 | e.persist(); |
| 437 | + // console.log('vae.target.tagNamelues', e.target.tagName) | |
| 437 | 438 | if (e.target.tagName == 'DIV') { |
| 438 | 439 | setCurrentNode(e.target) |
| 439 | 440 | // console.log('values', values) |
| ... | ... | @@ -452,11 +453,11 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 452 | 453 | // form.setFieldsValue({ [dataIndex]: record[dataIndex] }); |
| 453 | 454 | }; |
| 454 | 455 | |
| 455 | - // const onQxpropsChangen = (value) => { | |
| 456 | + // const test = (value) => { | |
| 456 | 457 | // console.log('value', value) |
| 457 | - // form.setFieldsValue({ | |
| 458 | - // ['qxProps']: { value: value } | |
| 459 | - // }) | |
| 458 | + // // form.setFieldsValue({ | |
| 459 | + // // ['qxProps']: { value: value } | |
| 460 | + // // }) | |
| 460 | 461 | // } |
| 461 | 462 | // const toggleEdit2 = (e) => { |
| 462 | 463 | // e.persist(); |
| ... | ... | @@ -648,6 +649,29 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 648 | 649 | </Select> |
| 649 | 650 | </div> |
| 650 | 651 | ); |
| 652 | + case 'FORM': | |
| 653 | + return ( | |
| 654 | + <div | |
| 655 | + key={record.id} | |
| 656 | + ref={inputRef} | |
| 657 | + className="editable-around-cell" | |
| 658 | + // onBlur={(e) => toggleEdit1(e)} | |
| 659 | + tabIndex={ | |
| 660 | + 0 | |
| 661 | + } | |
| 662 | + > | |
| 663 | + <QxFormSelect | |
| 664 | + value={qxProps} | |
| 665 | + request={props?.request} | |
| 666 | + options={props?.appFormList} | |
| 667 | + placeholder={'选择表单'} | |
| 668 | + popupOnBody={true} | |
| 669 | + onChange={(val: any) => { | |
| 670 | + props.handleChange(val, record, 'qxProps'); | |
| 671 | + }} | |
| 672 | + /> | |
| 673 | + </div> | |
| 674 | + ); | |
| 651 | 675 | default: |
| 652 | 676 | return ( |
| 653 | 677 | <div |
| ... | ... | @@ -678,7 +702,7 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 678 | 702 | }; |
| 679 | 703 | |
| 680 | 704 | const handleField = (val) => { |
| 681 | - if (!val || _.isEmpty(val)) { | |
| 705 | + if (!val || isEmpty(val)) { | |
| 682 | 706 | return; |
| 683 | 707 | } |
| 684 | 708 | if (val[0].extVal) { |
| ... | ... | @@ -1041,8 +1065,8 @@ const ParameterModal: React.FC<ParameterSettingProps> = (props) => { |
| 1041 | 1065 | ) : ( |
| 1042 | 1066 | <Row> |
| 1043 | 1067 | <Col span={12}> |
| 1044 | - <Button type="link" onClick={() => onOpen()}> | |
| 1045 | - {'</>JSON参数设置'} | |
| 1068 | + <Button type="link" icon={<QxBaseIcon style={{ fontSize: 16 }} type={'qx-icon-flow-code'} />} onClick={() => onOpen()}> | |
| 1069 | + JSON参数设置 | |
| 1046 | 1070 | </Button> |
| 1047 | 1071 | </Col> |
| 1048 | 1072 | <Col | ... | ... |
| ... | ... | @@ -14,90 +14,22 @@ |
| 14 | 14 | Demo: |
| 15 | 15 | |
| 16 | 16 | ```tsx |
| 17 | -import { QxParameterSetting } from '@qx/common'; | |
| 17 | +import { QxParameterSetting, request } from '@qx/common'; | |
| 18 | 18 | import { Input } from 'antd'; |
| 19 | 19 | import React, { useState } from 'react'; |
| 20 | - | |
| 20 | +import { appFormList } from './mock'; | |
| 21 | 21 | export default () => { |
| 22 | 22 | const [value, setValue] = useState([ |
| 23 | 23 | { |
| 24 | - code: '29gnd', | |
| 25 | - id: 'f7724ff3557041588fcdcf69d31bec1d', | |
| 26 | - pid: '', | |
| 27 | - showCode: true, | |
| 28 | - qxProps: { | |
| 29 | - appId: 'HBZy3te6d9SxSMO3lLr', | |
| 30 | - formId: 'j9s5sUXvLiT2a1PJOsh', | |
| 31 | - formName: '合同管理', | |
| 32 | - }, | |
| 33 | - required: false, | |
| 34 | - title: '流程类萨', | |
| 35 | - type: 'OBJECT', | |
| 36 | - disabled: true, | |
| 37 | - child: [ | |
| 38 | - { | |
| 39 | - id: '519338cceed64b08aeadcc7f5b4c9d94', | |
| 40 | - pid: 'f7724ff3557041588fcdcf69d31bec1d', | |
| 41 | - code: '60edb3', | |
| 42 | - showCode: true, | |
| 43 | - title: '问问', | |
| 44 | - required: true, | |
| 45 | - qxProps: { | |
| 46 | - min: '2023-08-18', | |
| 47 | - max: '2023-08-08', | |
| 48 | - options: ['1231231231321'], | |
| 49 | - default: '2023-08-02', | |
| 50 | - format: 'YEAR_DATE', | |
| 51 | - }, | |
| 52 | - disabled: false, | |
| 53 | - type: 'TIME', | |
| 54 | - }, | |
| 55 | - ], | |
| 56 | - }, | |
| 57 | - { | |
| 58 | 24 | id: '6370b8fd52484b83abd702379870b05f', |
| 59 | 25 | pid: '', |
| 60 | 26 | code: 'ufsqtk', |
| 61 | 27 | showCode: true, |
| 62 | 28 | title: '爱的人翁热', |
| 63 | 29 | required: true, |
| 64 | - qxProps: { | |
| 65 | - min: 1, | |
| 66 | - max: 10, | |
| 67 | - options: ['232312312323423'], | |
| 68 | - default: 112, | |
| 69 | - precision: 2, | |
| 70 | - }, | |
| 71 | - disabled: false, | |
| 72 | - type: 'NUMBER', | |
| 73 | - }, | |
| 74 | - { | |
| 75 | - id: '2df392beea224ad5af58ac96dad04e7b', | |
| 76 | - pid: '', | |
| 77 | - code: 'ci4ihw', | |
| 78 | - showCode: true, | |
| 79 | - title: '来来来', | |
| 80 | - required: false, | |
| 81 | - child: [ | |
| 82 | - { | |
| 83 | - id: 'db1cd3c513534a82ae85f63e82cf0951', | |
| 84 | - pid: '2df392beea224ad5af58ac96dad04e7b', | |
| 85 | - code: 'b3cbef', | |
| 86 | - title: '啊实打实', | |
| 87 | - required: false, | |
| 88 | - qxProps: { | |
| 89 | - min: '2023-08-16', | |
| 90 | - max: '2023-08-01', | |
| 91 | - options: ["asdaa'd "], | |
| 92 | - default: '2023-08-03', | |
| 93 | - format: 'YEAR_DATE', | |
| 94 | - }, | |
| 95 | - disabled: false, | |
| 96 | - type: 'TIME', | |
| 97 | - }, | |
| 98 | - ], | |
| 30 | + qxProps: {}, | |
| 99 | 31 | disabled: false, |
| 100 | - type: 'ARRAY', | |
| 32 | + type: 'FORM', | |
| 101 | 33 | }, |
| 102 | 34 | ]); |
| 103 | 35 | const handleChange = (newValue) => { |
| ... | ... | @@ -140,39 +72,70 @@ export default () => { |
| 140 | 72 | }; |
| 141 | 73 | |
| 142 | 74 | const isHide = true; |
| 143 | - const isShow = true; | |
| 144 | 75 | |
| 145 | 76 | const componentItem = { |
| 146 | 77 | value: comValue, |
| 147 | 78 | onChange: comHandleChange, |
| 148 | 79 | }; |
| 80 | + const titleDom = ( | |
| 81 | + <div | |
| 82 | + style={{ | |
| 83 | + width: '100%', | |
| 84 | + display: 'flex', | |
| 85 | + justifyContent: 'flex-start', | |
| 86 | + flexDirection: 'column', | |
| 87 | + }} | |
| 88 | + > | |
| 89 | + <span | |
| 90 | + style={{ | |
| 91 | + overflow: 'hidden', | |
| 92 | + whiteSpace: 'nowrap', | |
| 93 | + textOverflow: 'ellipsis', | |
| 94 | + }} | |
| 95 | + > | |
| 96 | + 标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示 | |
| 97 | + </span> | |
| 98 | + <span | |
| 99 | + style={{ | |
| 100 | + overflow: 'hidden', | |
| 101 | + whiteSpace: 'nowrap', | |
| 102 | + textOverflow: 'ellipsis', | |
| 103 | + }} | |
| 104 | + > | |
| 105 | + 标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示标题展示 | |
| 106 | + </span> | |
| 107 | + </div> | |
| 108 | + ); | |
| 109 | + | |
| 149 | 110 | return ( |
| 150 | - <QxParameterSetting | |
| 151 | - value={value} | |
| 152 | - nodeItem={nodeItem} | |
| 153 | - // componentItem={componentItem} | |
| 154 | - onChange={handleChange} | |
| 155 | - isHideSearch={isHide} | |
| 156 | - isShowTitle={isShow} | |
| 157 | - isShowField={true} | |
| 158 | - title={'sadaasdasdasdwwwwwwwasdasdasdsdsd'} | |
| 159 | - // component={QxTagsInput} | |
| 160 | - /> | |
| 111 | + <div style={{ width: '400px' }}> | |
| 112 | + <QxParameterSetting | |
| 113 | + value={value} | |
| 114 | + nodeItem={nodeItem} | |
| 115 | + // componentItem={componentItem} | |
| 116 | + onChange={handleChange} | |
| 117 | + isHideSearch={isHide} | |
| 118 | + isShowField={true} | |
| 119 | + title={titleDom} | |
| 120 | + // component={QxTagsInput} | |
| 121 | + request={request} | |
| 122 | + appFormList={appFormList} | |
| 123 | + /> | |
| 124 | + </div> | |
| 161 | 125 | ); |
| 162 | 126 | }; |
| 163 | 127 | ``` |
| 164 | 128 | |
| 165 | 129 | ## 入参数据格式 |
| 166 | 130 | |
| 167 | -| 参数 | 说明 | 类型 | 默认值 | | |
| 168 | -| ------------ | -------------------------------- | ------ | ------ | | |
| 169 | -| isHideSearch | 是否隐藏搜索框 | bool | - | | |
| 170 | -| nodeItem | 节点信息,默认值右侧选择节点使用 | [] | - | | |
| 171 | -| value | | [] | - | | |
| 172 | -| isShowTitle | 是否显示左侧标题 | bool | - | | |
| 173 | -| title | 左侧标题 | string | - | | |
| 174 | -| isShowField | 是否显示下部默认值 item | bool | - | | |
| 175 | -| onChange | | | - | | |
| 131 | +| 参数 | 说明 | 类型 | 默认值 | | |
| 132 | +| ------------ | -------------------------------- | --------------- | ------ | | |
| 133 | +| isHideSearch | 是否隐藏搜索框 | bool | - | | |
| 134 | +| nodeItem | 节点信息,默认值右侧选择节点使用 | [] | - | | |
| 135 | +| value | | [] | - | | |
| 136 | +| title | 左侧标题 | React.ReactNode | - | | |
| 137 | +| isShowField | 是否显示下部默认值 item | bool | - | | |
| 138 | +| onChange | | | - | | |
| 176 | 139 | |
| 177 | 140 | ## 出参数据格式 |
| 178 | 141 | ... | ... |
| 1 | 1 | /* eslint-disable eqeqeq */ |
| 2 | 2 | /* eslint-disable array-callback-return */ |
| 3 | 3 | import React, { useCallback, useEffect, useState } from 'react'; |
| 4 | -// import type { FRWidgetProps } from '@/packages/qx-form-generator/src'; | |
| 5 | -import { | |
| 6 | - DeleteOutlined, | |
| 7 | - PlusOutlined, | |
| 8 | - SettingOutlined, | |
| 9 | -} from '@ant-design/icons'; | |
| 10 | 4 | import { |
| 11 | 5 | Button, |
| 12 | 6 | Dropdown, |
| ... | ... | @@ -17,6 +11,7 @@ import { |
| 17 | 11 | Tree, |
| 18 | 12 | message, |
| 19 | 13 | } from 'antd'; |
| 14 | +import Icon from '@ant-design/icons'; | |
| 20 | 15 | import type { TreeProps } from 'antd/lib/tree'; |
| 21 | 16 | import ParameterModal from './ParameterModal'; |
| 22 | 17 | import { formatEnum } from './constant'; |
| ... | ... | @@ -36,6 +31,8 @@ import { QxFieldSetter, QxBaseIcon } from '@qx/common'; |
| 36 | 31 | |
| 37 | 32 | import './style.less'; |
| 38 | 33 | |
| 34 | +import { ReactComponent as SubNodeIcon } from './sub-node.svg'; | |
| 35 | + | |
| 39 | 36 | const valueOptions = [ |
| 40 | 37 | { key: 'STRING', label: '文本' }, |
| 41 | 38 | { key: 'NUMBER', label: '数字' }, |
| ... | ... | @@ -70,12 +67,13 @@ interface ParameterSettingProps { |
| 70 | 67 | onChange: (val: any) => void; |
| 71 | 68 | value: any; |
| 72 | 69 | isHideSearch?: boolean; //是否隐藏搜索框 |
| 73 | - isShowTitle?: boolean; //是否显示左侧标题 | |
| 74 | - isShowField?: boolean; //是否显示下部默认值组件 | |
| 75 | - title?: string; | |
| 70 | + isShowField?: boolean; // 是否显示下部默认值组件 | |
| 71 | + title?: React.ReactNode; // 左侧标题 | |
| 76 | 72 | // component?: any; |
| 77 | 73 | // componentItem?: any; |
| 78 | 74 | // comHandleChange?: (val: any) => void; |
| 75 | + appFormList?: any[]; // 当前应用表单list | |
| 76 | + request?: any, | |
| 79 | 77 | } |
| 80 | 78 | |
| 81 | 79 | export const QxParameterSetting: React.FC<ParameterSettingProps> = (props) => { |
| ... | ... | @@ -451,7 +449,7 @@ export const QxParameterSetting: React.FC<ParameterSettingProps> = (props) => { |
| 451 | 449 | }; |
| 452 | 450 | |
| 453 | 451 | //增加子节点 |
| 454 | - const onAddtree = (key: string) => { | |
| 452 | + const onAddTree = (key: string) => { | |
| 455 | 453 | function addNode(pid: string, data: any) { |
| 456 | 454 | data.forEach((item) => { |
| 457 | 455 | const id = uidGen(); |
| ... | ... | @@ -623,18 +621,18 @@ export const QxParameterSetting: React.FC<ParameterSettingProps> = (props) => { |
| 623 | 621 | {(nodeData.type === 'OBJECT' || nodeData.type === 'ARRAY') && |
| 624 | 622 | isShowTree && ( |
| 625 | 623 | <Button |
| 626 | - icon={<PlusOutlined />} | |
| 624 | + icon={<Icon component={SubNodeIcon} />} | |
| 627 | 625 | disabled={disabled} |
| 628 | - type="text" | |
| 626 | + type="link" | |
| 629 | 627 | className="title-btn" |
| 630 | - onClick={() => onAddtree(nodeData.id)} | |
| 628 | + onClick={() => onAddTree(nodeData.id)} | |
| 631 | 629 | /> |
| 632 | 630 | )} |
| 633 | 631 | <Button |
| 634 | 632 | className="title-btn-del" |
| 635 | - icon={<DeleteOutlined />} | |
| 633 | + icon={<QxBaseIcon className={'title-btn-del-btn'} type={'qx-icon-delete'} />} | |
| 636 | 634 | disabled={disabled} |
| 637 | - type="text" | |
| 635 | + type="link" | |
| 638 | 636 | onClick={() => deleteParameter(nodeData)} |
| 639 | 637 | /> |
| 640 | 638 | </div> |
| ... | ... | @@ -702,18 +700,28 @@ export const QxParameterSetting: React.FC<ParameterSettingProps> = (props) => { |
| 702 | 700 | /> |
| 703 | 701 | )} |
| 704 | 702 | > |
| 705 | - <Button type={'link'}> | |
| 706 | - <PlusOutlined /> | |
| 703 | + <Button | |
| 704 | + size={'small'} | |
| 705 | + type={'link'} | |
| 706 | + style={{ | |
| 707 | + padding: '0 0 0 8px', | |
| 708 | + }} | |
| 709 | + > | |
| 710 | + <QxBaseIcon style={{fontSize: '16px'}} type={'qx-icon-plus'} /> | |
| 707 | 711 | 添加参数 |
| 708 | 712 | </Button> |
| 709 | 713 | </Dropdown> |
| 710 | 714 | <Button |
| 715 | + size={'small'} | |
| 711 | 716 | type={'link'} |
| 717 | + style={{ | |
| 718 | + padding: '0 0 0 12px', | |
| 719 | + }} | |
| 712 | 720 | onClick={() => { |
| 713 | 721 | openModal(); |
| 714 | 722 | }} |
| 715 | 723 | > |
| 716 | - <SettingOutlined /> | |
| 724 | + <QxBaseIcon style={{fontSize: '16px'}} type={'icon-app-terminal-box-line'} /> | |
| 717 | 725 | 高级设置 |
| 718 | 726 | </Button> |
| 719 | 727 | </div> |
| ... | ... | @@ -725,9 +733,9 @@ export const QxParameterSetting: React.FC<ParameterSettingProps> = (props) => { |
| 725 | 733 | onChange={onChange} |
| 726 | 734 | /> |
| 727 | 735 | )} |
| 728 | - {props.isShowTitle && ( | |
| 729 | - <div style={{ overflow: 'hidden', textOverflow: 'ellipsis' }}> | |
| 730 | - <span style={{ fontSize: '18px' }}>{props.title}</span> | |
| 736 | + {props.isHideSearch && !!props.title && ( | |
| 737 | + <div className={'header-title'}> | |
| 738 | + {props.title} | |
| 731 | 739 | </div> |
| 732 | 740 | )} |
| 733 | 741 | </div> |
| ... | ... | @@ -749,8 +757,6 @@ export const QxParameterSetting: React.FC<ParameterSettingProps> = (props) => { |
| 749 | 757 | onDrop={onDrop} |
| 750 | 758 | draggable |
| 751 | 759 | blockNode |
| 752 | - selectable | |
| 753 | - checkStrictly={true} //??这是啥意思 | |
| 754 | 760 | expandedKeys={expandedKeys ? expandedKeys : defaultExpandedKeys} |
| 755 | 761 | autoExpandParent={autoExpandParent} |
| 756 | 762 | onExpand={onExpand} |
| ... | ... | @@ -769,8 +775,10 @@ export const QxParameterSetting: React.FC<ParameterSettingProps> = (props) => { |
| 769 | 775 | handleDelete={deleteParameter} |
| 770 | 776 | handleChange={handleChange} |
| 771 | 777 | handleDrop={handleDrop} |
| 772 | - handleAddtree={onAddtree} | |
| 778 | + handleAddTree={onAddTree} | |
| 773 | 779 | visible={visible} |
| 780 | + request={props?.request} | |
| 781 | + appFormList={props?.appFormList} | |
| 774 | 782 | /> |
| 775 | 783 | </div> |
| 776 | 784 | ); | ... | ... |
src/qx-parameter-setting/mock.ts
0 → 100644
| 1 | +export const appFormList = [ | |
| 2 | + { | |
| 3 | + name: '地址', | |
| 4 | + code: 'UdXaoSj9EHYr3wZL253', | |
| 5 | + extract: { | |
| 6 | + code: 'o72gf', | |
| 7 | + isTree: false, | |
| 8 | + appName: 'LT-表单', | |
| 9 | + type: 'form', | |
| 10 | + }, | |
| 11 | + }, | |
| 12 | + { | |
| 13 | + name: '测试关联记录按钮', | |
| 14 | + code: 'ZRLa6NjJ98u3lFVLSur', | |
| 15 | + extract: { | |
| 16 | + code: 'vwxxw', | |
| 17 | + isTree: false, | |
| 18 | + appName: 'LT-表单', | |
| 19 | + type: 'form', | |
| 20 | + }, | |
| 21 | + }, | |
| 22 | + { | |
| 23 | + name: '测试关联记录权限', | |
| 24 | + code: 'SRqC0JJmcjKquqnn228', | |
| 25 | + extract: { | |
| 26 | + code: '60jte', | |
| 27 | + isTree: false, | |
| 28 | + appName: 'LT-表单', | |
| 29 | + type: 'form', | |
| 30 | + }, | |
| 31 | + }, | |
| 32 | + { | |
| 33 | + name: '子表', | |
| 34 | + code: 'GYsqE8yphn1amjVM2OY', | |
| 35 | + extract: { | |
| 36 | + code: 'oi0d2', | |
| 37 | + isTree: false, | |
| 38 | + appName: 'LT-表单', | |
| 39 | + type: 'form', | |
| 40 | + }, | |
| 41 | + }, | |
| 42 | + { | |
| 43 | + name: '关联基础', | |
| 44 | + code: '2wN04K7nF0fHjRbOAvu', | |
| 45 | + extract: { | |
| 46 | + code: '0jpbl', | |
| 47 | + isTree: false, | |
| 48 | + appName: 'LT-表单', | |
| 49 | + type: 'form', | |
| 50 | + }, | |
| 51 | + }, | |
| 52 | + { | |
| 53 | + name: '关联记录', | |
| 54 | + code: 's6k5W5aovjtiU7kvqVl', | |
| 55 | + extract: { | |
| 56 | + code: 'zbynu', | |
| 57 | + isTree: false, | |
| 58 | + appName: 'LT-表单', | |
| 59 | + type: 'form', | |
| 60 | + }, | |
| 61 | + }, | |
| 62 | + { | |
| 63 | + name: '关联记录-关联记录', | |
| 64 | + code: 'hfbs4k6Lbs4WV7tOept', | |
| 65 | + extract: { | |
| 66 | + code: 'fz7nl', | |
| 67 | + isTree: false, | |
| 68 | + appName: 'LT-表单', | |
| 69 | + type: 'form', | |
| 70 | + }, | |
| 71 | + }, | |
| 72 | + { | |
| 73 | + name: '关联属性-关联记录', | |
| 74 | + code: 'WPjXCOemcBxoXqeEX6x', | |
| 75 | + extract: { | |
| 76 | + code: 's585f', | |
| 77 | + isTree: false, | |
| 78 | + appName: 'LT-表单', | |
| 79 | + type: 'form', | |
| 80 | + }, | |
| 81 | + }, | |
| 82 | + { | |
| 83 | + name: '子表-关联记录', | |
| 84 | + code: 'H3moABKMnhVqjqcVbsa', | |
| 85 | + extract: { | |
| 86 | + code: 'snfhq', | |
| 87 | + isTree: false, | |
| 88 | + appName: 'LT-表单', | |
| 89 | + type: 'form', | |
| 90 | + }, | |
| 91 | + }, | |
| 92 | + { | |
| 93 | + name: '关联记录1', | |
| 94 | + code: 'PQspcwgyiewytF9iizd', | |
| 95 | + extract: { | |
| 96 | + code: 'f53ql', | |
| 97 | + isTree: false, | |
| 98 | + appName: 'LT-表单', | |
| 99 | + type: 'form', | |
| 100 | + }, | |
| 101 | + }, | |
| 102 | + { | |
| 103 | + name: '富文本', | |
| 104 | + code: 'On7QbrZv9u1qtVgMAGm', | |
| 105 | + extract: { | |
| 106 | + code: 'tmh23', | |
| 107 | + isTree: false, | |
| 108 | + appName: 'LT-表单', | |
| 109 | + type: 'form', | |
| 110 | + }, | |
| 111 | + }, | |
| 112 | + { | |
| 113 | + name: '关联记录删除', | |
| 114 | + code: 'MdUFSBxWOYKXSYGSqSk', | |
| 115 | + extract: { | |
| 116 | + code: 'uxenf', | |
| 117 | + isTree: false, | |
| 118 | + appName: 'LT-表单', | |
| 119 | + type: 'form', | |
| 120 | + }, | |
| 121 | + }, | |
| 122 | + { | |
| 123 | + name: '1', | |
| 124 | + code: 'HAJ8dEcoPLnjx81Uxjc', | |
| 125 | + extract: { | |
| 126 | + code: '3xtcr', | |
| 127 | + isTree: false, | |
| 128 | + appName: 'LT-表单', | |
| 129 | + type: 'form', | |
| 130 | + }, | |
| 131 | + }, | |
| 132 | + { | |
| 133 | + name: '基础表单', | |
| 134 | + code: 'oOY4njEfrHx7PlSlFRf', | |
| 135 | + extract: { | |
| 136 | + code: 'fd3eb', | |
| 137 | + isTree: false, | |
| 138 | + appName: 'LT-表单', | |
| 139 | + type: 'form', | |
| 140 | + }, | |
| 141 | + }, | |
| 142 | + { | |
| 143 | + name: '关联记录', | |
| 144 | + code: 'HaIdxngReF8WtKclakp', | |
| 145 | + extract: { | |
| 146 | + code: 'qbroi', | |
| 147 | + isTree: false, | |
| 148 | + appName: 'LT-表单', | |
| 149 | + type: 'form', | |
| 150 | + }, | |
| 151 | + }, | |
| 152 | + { | |
| 153 | + name: '筛选', | |
| 154 | + code: 'amWz1TlerTCrysLhKdD', | |
| 155 | + extract: { | |
| 156 | + code: 'ionr7', | |
| 157 | + isTree: false, | |
| 158 | + appName: 'LT-表单', | |
| 159 | + type: 'form', | |
| 160 | + }, | |
| 161 | + }, | |
| 162 | + { | |
| 163 | + name: '子表', | |
| 164 | + code: 'JV5IeD1Xc4MtwWdbPhB', | |
| 165 | + extract: { | |
| 166 | + code: 'x4lh4', | |
| 167 | + isTree: false, | |
| 168 | + appName: 'LT-表单', | |
| 169 | + type: 'form', | |
| 170 | + }, | |
| 171 | + }, | |
| 172 | + { | |
| 173 | + name: '附件图片', | |
| 174 | + code: 'jCfTNFw7tjERB5jnnWv', | |
| 175 | + extract: { | |
| 176 | + code: 'pqqko', | |
| 177 | + isTree: false, | |
| 178 | + appName: 'LT-表单', | |
| 179 | + type: 'form', | |
| 180 | + }, | |
| 181 | + }, | |
| 182 | + { | |
| 183 | + name: '日期时间', | |
| 184 | + code: 'WruqGjaxMj0jLsZ6Ufr', | |
| 185 | + extract: { | |
| 186 | + code: 'z15we', | |
| 187 | + isTree: false, | |
| 188 | + appName: 'LT-表单', | |
| 189 | + type: 'form', | |
| 190 | + }, | |
| 191 | + }, | |
| 192 | + { | |
| 193 | + name: '选人员部门', | |
| 194 | + code: 'wqsubyh5kJFsxXuHYyQ', | |
| 195 | + extract: { | |
| 196 | + code: '0h42r', | |
| 197 | + isTree: false, | |
| 198 | + appName: 'LT-表单', | |
| 199 | + type: 'form', | |
| 200 | + }, | |
| 201 | + }, | |
| 202 | + { | |
| 203 | + name: '数值', | |
| 204 | + code: 'HEsh8KhnUToggsWuboT', | |
| 205 | + extract: { | |
| 206 | + code: 'bb8ev', | |
| 207 | + isTree: false, | |
| 208 | + appName: 'LT-表单', | |
| 209 | + type: 'form', | |
| 210 | + }, | |
| 211 | + }, | |
| 212 | + { | |
| 213 | + name: '多字段', | |
| 214 | + code: 'deTV0Jjc1prqYZTERfN', | |
| 215 | + extract: { | |
| 216 | + code: 'hxaxj', | |
| 217 | + isTree: false, | |
| 218 | + appName: 'LT-表单', | |
| 219 | + type: 'form', | |
| 220 | + }, | |
| 221 | + }, | |
| 222 | +]; | ... | ... |
| ... | ... | @@ -12,6 +12,14 @@ |
| 12 | 12 | flex-direction: row-reverse; |
| 13 | 13 | flex-wrap: nowrap; |
| 14 | 14 | justify-content: space-between; |
| 15 | + align-items: flex-end; | |
| 16 | + | |
| 17 | + .header-title { | |
| 18 | + overflow:hidden; | |
| 19 | + white-space: nowrap; | |
| 20 | + text-overflow: ellipsis; | |
| 21 | + -o-text-overflow:ellipsis; | |
| 22 | + } | |
| 15 | 23 | } |
| 16 | 24 | |
| 17 | 25 | .tree-wrapper { |
| ... | ... | @@ -36,10 +44,10 @@ |
| 36 | 44 | } |
| 37 | 45 | |
| 38 | 46 | .border-none |
| 39 | - .ant-select-focused:not(.ant-select-disabled).ant-select:not( | |
| 47 | +.ant-select-focused:not(.ant-select-disabled).ant-select:not( | |
| 40 | 48 | .ant-select-customize-input |
| 41 | 49 | ) |
| 42 | - .ant-select-selector { | |
| 50 | +.ant-select-selector { | |
| 43 | 51 | border: none; |
| 44 | 52 | box-shadow: none; |
| 45 | 53 | } |
| ... | ... | @@ -61,24 +69,48 @@ |
| 61 | 69 | align-items: center; |
| 62 | 70 | margin-left: 10px; |
| 63 | 71 | |
| 64 | - .title-btn-del { | |
| 65 | - display: none; | |
| 66 | - color: #666; | |
| 72 | + .ant-btn.ant-btn-icon-only, | |
| 73 | + .ant-btn.ant-btn-icon-only { | |
| 74 | + font-size: 16px; | |
| 75 | + color: @N7; | |
| 67 | 76 | |
| 68 | 77 | &:hover { |
| 69 | - color: @E3; | |
| 78 | + color: @B8; | |
| 70 | 79 | opacity: 1; |
| 80 | + | |
| 81 | + .anticon { | |
| 82 | + color: @B8; | |
| 83 | + | |
| 84 | + &.title-btn-del-btn { | |
| 85 | + color: @E3; | |
| 86 | + } | |
| 87 | + } | |
| 88 | + } | |
| 89 | + | |
| 90 | + &:disabled, | |
| 91 | + &.ant-btn-disabled { | |
| 92 | + color: @N5; | |
| 93 | + | |
| 94 | + &:hover { | |
| 95 | + color: @N5; | |
| 96 | + | |
| 97 | + .anticon { | |
| 98 | + color: @N5; | |
| 99 | + | |
| 100 | + &.title-btn-del-btn { | |
| 101 | + color: @N5; | |
| 102 | + } | |
| 103 | + } | |
| 104 | + } | |
| 71 | 105 | } |
| 72 | 106 | } |
| 73 | 107 | |
| 74 | - .title-btn { | |
| 108 | + .title-btn-del { | |
| 75 | 109 | display: none; |
| 76 | - color: #666; | |
| 110 | + } | |
| 77 | 111 | |
| 78 | - &:hover { | |
| 79 | - color: #91d5ff; | |
| 80 | - opacity: 1; | |
| 81 | - } | |
| 112 | + .title-btn { | |
| 113 | + display: none; | |
| 82 | 114 | } |
| 83 | 115 | |
| 84 | 116 | .select-tree { |
| ... | ... | @@ -100,6 +132,10 @@ |
| 100 | 132 | margin-bottom: 2px; |
| 101 | 133 | overflow: hidden; |
| 102 | 134 | text-overflow: ellipsis; |
| 135 | + | |
| 136 | + .ant-input-affix-wrapper { | |
| 137 | + border-color: @N4; | |
| 138 | + } | |
| 103 | 139 | } |
| 104 | 140 | |
| 105 | 141 | .opt-left-down { |
| ... | ... | @@ -114,6 +150,8 @@ |
| 114 | 150 | margin-bottom: 2px; |
| 115 | 151 | overflow: hidden; |
| 116 | 152 | text-overflow: ellipsis; |
| 153 | + background-color: #fff; | |
| 154 | + border-radius: 4px; | |
| 117 | 155 | } |
| 118 | 156 | |
| 119 | 157 | // .ant-tree-node-content-wrapper :hover .select-tree { |
| ... | ... | @@ -298,3 +336,10 @@ |
| 298 | 336 | padding-top: 0 !important; |
| 299 | 337 | } |
| 300 | 338 | } |
| 339 | + | |
| 340 | +.qx-parameter-setting--search { | |
| 341 | + .anticon { | |
| 342 | + font-size: 16px; | |
| 343 | + color: @N6; | |
| 344 | + } | |
| 345 | +} | ... | ... |
src/qx-parameter-setting/sub-node.svg
0 → 100644
| 1 | +<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" aria-hidden="true" focusable="false"><path fill-rule="evenodd" d="M6.333 5.333a1 1 0 0 0-1 1v3h-.667V2.667h10V1.333H1.333v1.334h2v6.666c0 .737.597 1.334 1.333 1.334h.667v3a1 1 0 0 0 1 1h7.333a1 1 0 0 0 1-1V6.333a1 1 0 0 0-1-1H6.333Zm.333 8V6.667h6.667v6.666H6.666Zm2.667-2.666h-2V9.333h2v-2h1.333v2h2v1.334h-2v2H9.333v-2Z" clip-rule="evenodd"/></svg> | ... | ... |