lu-lowcode-package-form 0.10.38 → 0.10.40
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/index.cjs.js +386 -375
- package/dist/index.es.js +47170 -43816
- package/dist/style.css +1 -1
- package/package.json +1 -1
- package/src/App copy.jsx +2 -2
- package/src/App.jsx +118 -93
- package/src/components/field/base.jsx +0 -3
- package/src/components/field/select/search-select.jsx +2 -2
- package/src/components/field/table/index.jsx +1 -1
- package/src/components/field/table/with-table.jsx +4 -3
- package/src/components/field/upload/upload-image.jsx +2 -3
- package/src/components/form-container/index.jsx +18 -13
package/dist/style.css
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.fabsolute{position:absolute}.frelative{position:relative}.fsticky{position:-webkit-sticky;position:sticky}.fleft-0{left:0}.fright-0{right:0}.ftop-0{top:0}.fz-10{z-index:10}.f-mx-1{margin-left:-.25rem;margin-right:-.25rem}.fmy-2{margin-top:.5rem;margin-bottom:.5rem}.fmt-2{margin-top:.5rem}.fbox-border{box-sizing:border-box}.fflex{display:flex}.fhidden{display:none}.fh-10{height:2.5rem}.fh-11{height:2.75rem}.fh-12{height:3rem}.fh-24{height:6rem}.fh-5{height:1.25rem}.fh-8{height:2rem}.fh-full{height:100%}.fh-screen{height:100vh}.fmax-h-full{max-height:100%}.fmin-h-
|
1
|
+
*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.fabsolute{position:absolute}.frelative{position:relative}.fsticky{position:-webkit-sticky;position:sticky}.fleft-0{left:0}.fright-0{right:0}.ftop-0{top:0}.fz-10{z-index:10}.f-mx-1{margin-left:-.25rem;margin-right:-.25rem}.fmy-2{margin-top:.5rem;margin-bottom:.5rem}.fmt-2{margin-top:.5rem}.fbox-border{box-sizing:border-box}.fflex{display:flex}.fhidden{display:none}.fh-10{height:2.5rem}.fh-11{height:2.75rem}.fh-12{height:3rem}.fh-20{height:5rem}.fh-24{height:6rem}.fh-5{height:1.25rem}.fh-8{height:2rem}.fh-full{height:100%}.fh-screen{height:100vh}.fmax-h-full{max-height:100%}.fmin-h-20{min-height:5rem}.fmin-h-5{min-height:1.25rem}.fw-12{width:3rem}.fw-24{width:6rem}.fw-5{width:1.25rem}.fw-\[1336px\]{width:1336px}.fw-\[960px\]{width:960px}.fw-full{width:100%}.fmin-w-36{min-width:9rem}.fmin-w-full{min-width:100%}.fmax-w-full{max-width:100%}.fflex-1{flex:1 1 0%}.fcursor-not-allowed{cursor:not-allowed}.fcursor-pointer{cursor:pointer}.fflex-col{flex-direction:column}.fflex-wrap{flex-wrap:wrap}.fflex-nowrap{flex-wrap:nowrap}.fitems-center{align-items:center}.fitems-stretch{align-items:stretch}.fjustify-center{justify-content:center}.fjustify-between{justify-content:space-between}.fgap-1{gap:.25rem}.fgap-2{gap:.5rem}.fgap-3{gap:.75rem}.fgap-x-1{column-gap:.25rem}.fgap-y-2{row-gap:.5rem}.foverflow-hidden{overflow:hidden}.foverflow-x-auto{overflow-x:auto}.foverflow-y-auto{overflow-y:auto}.ftext-nowrap{text-wrap:nowrap}.frounded{border-radius:.25rem}.fborder{border-width:1px}.fborder-b{border-bottom-width:1px}.fborder-l-4{border-left-width:4px}.fborder-r{border-right-width:1px}.fborder-dashed{border-style:dashed}.fborder-gray-100{--tw-border-opacity: 1;border-color:rgb(243 244 246 / var(--tw-border-opacity))}.fborder-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.fborder-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.fborder-slate-300{--tw-border-opacity: 1;border-color:rgb(203 213 225 / var(--tw-border-opacity))}.fborder-r-\[\#e9e9e9\]{--tw-border-opacity: 1;border-right-color:rgb(233 233 233 / var(--tw-border-opacity))}.fbg-\[\#fafafa\]{--tw-bg-opacity: 1;background-color:rgb(250 250 250 / var(--tw-bg-opacity))}.fbg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.fbg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.fbg-gray-900{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.fbg-green-300{--tw-bg-opacity: 1;background-color:rgb(134 239 172 / var(--tw-bg-opacity))}.fbg-red-500{--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity))}.fbg-slate-50{--tw-bg-opacity: 1;background-color:rgb(248 250 252 / var(--tw-bg-opacity))}.fbg-transparent{background-color:transparent}.fbg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.fbg-opacity-50{--tw-bg-opacity: .5}.fobject-contain{object-fit:contain}.fp-0{padding:0}.fp-2{padding:.5rem}.fp-4{padding:1rem}.fp-6{padding:1.5rem}.fpx-1{padding-left:.25rem;padding-right:.25rem}.fpx-2{padding-left:.5rem;padding-right:.5rem}.fpy-2{padding-top:.5rem;padding-bottom:.5rem}.fpb-10{padding-bottom:2.5rem}.fpl-2{padding-left:.5rem}.ftext-lg{font-size:1.125rem;line-height:1.75rem}.ftext-sm{font-size:.875rem;line-height:1.25rem}.ftext-xl{font-size:1.25rem;line-height:1.75rem}.ftext-xs{font-size:.75rem;line-height:1rem}.ffont-bold{font-weight:700}.ffont-medium{font-weight:500}.ffont-semibold{font-weight:600}.ftext-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.ftext-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.ftext-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.ftext-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.ftext-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.ftext-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.ftext-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.fopacity-5{opacity:.05}.fshadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:fborder-\[\#3e92f8\]:hover{--tw-border-opacity: 1;border-color:rgb(62 146 248 / var(--tw-border-opacity))}.hover\:ftext-\[\#3e92f8\]:hover{--tw-text-opacity: 1;color:rgb(62 146 248 / var(--tw-text-opacity))}.hover\:ftext-gray-200:hover{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.fgroup:hover .group-hover\:fflex{display:flex}.fgroup:hover .group-hover\:fbg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}/*!
|
2
2
|
* Quill Editor v1.3.7
|
3
3
|
* https://quilljs.com/
|
4
4
|
* Copyright (c) 2014, Jason Chen
|
package/package.json
CHANGED
package/src/App copy.jsx
CHANGED
@@ -601,8 +601,8 @@ function App() {
|
|
601
601
|
<Field.UploadImage label="上传图片" __id="UploadImage" ></Field.UploadImage>
|
602
602
|
|
603
603
|
</FormContainerWrapper>
|
604
|
-
<div
|
605
|
-
<div
|
604
|
+
<div className="fgroup">11111
|
605
|
+
<div className="fbg-red-500 group-hover:fbg-blue-500">
|
606
606
|
Hover over me or my parent!
|
607
607
|
</div>
|
608
608
|
</div>
|
package/src/App.jsx
CHANGED
@@ -103,7 +103,7 @@ function App() {
|
|
103
103
|
}
|
104
104
|
}
|
105
105
|
const setFormFields = () => {
|
106
|
-
formRef?.current?.setFieldsValue({"id":1, "userselect": "1213131","tianchong1":{"label":"选项1","value":"1"}, "remark11": { "label": "选项1", "value": "1", "name": "1111", "table": "[{\"price\":1,\"num\":2, \"remark11\":\"{ label: '选项3', value: '3' }\"},{\"price\":2,\"num\":2},{\"price\":3,\"num\":3},{\"price\":3,\"num\":3}]" }, "table": [{ "product_num1": "123", "product_sum1": "", "node_oclxmzswzti": "", "select2": "", "switch_table": false, "remark11": { "label": "选项2", "value": "2" }, "product_price12": "" }, { "product_num1": "213", "product_sum1": "", "node_oclxmzswzti": "", "select2": "", "switch_table": false, "datetime2": "2024-08-22 11:09:07", "product_price13": 1, "product_price14": 2, "product_price12": "", "remark11": { "label": "选项3", "value": "3" } }], "product_total_price": "0.00", "DeptSelect": ["leaf11"], "PostSelect": ["parent 1-1", "leaf11"], "searchuser": [{ "id": 2, "name": "2222", "label": "2222", "value": 2 }, { "id": 4, "name": "4444", "label": "4444", "value": 4 }], "product_price": "213", "product_num": "21", "product_num_range": [1, 22], "product_sum": "4473", "switch": false, "datetime": "2024-08-25", "datetime2": "2024-08-25", "datetime3": "", "datetime4": "2024-08-22 11:09:04", "remark12": [{ "label": "选项1", "value": "1" }, { "label": "选项2", "value": "2" }] })
|
106
|
+
formRef?.current?.setFieldsValue({ "id": 1, "userselect": "1213131", "tianchong1": { "label": "选项1", "value": "1" }, "remark11": { "label": "选项1", "value": "1", "name": "1111", "table": "[{\"price\":1,\"num\":2, \"remark11\":\"{ label: '选项3', value: '3' }\"},{\"price\":2,\"num\":2},{\"price\":3,\"num\":3},{\"price\":3,\"num\":3}]" }, "table": [{ "product_num1": "123", "product_sum1": "", "node_oclxmzswzti": "", "select2": "", "switch_table": false, "remark11": { "label": "选项2", "value": "2" }, "product_price12": "" }, { "product_num1": "213", "product_sum1": "", "node_oclxmzswzti": "", "select2": "", "switch_table": false, "datetime2": "2024-08-22 11:09:07", "product_price13": 1, "product_price14": 2, "product_price12": "", "remark11": { "label": "选项3", "value": "3" } }], "product_total_price": "0.00", "DeptSelect": ["leaf11"], "PostSelect": ["parent 1-1", "leaf11"], "searchuser": [{ "id": 2, "name": "2222", "label": "2222", "value": 2 }, { "id": 4, "name": "4444", "label": "4444", "value": 4 }], "product_price": "213", "product_num": "21", "product_num_range": [1, 22], "product_sum": "4473", "switch": false, "datetime": "2024-08-25", "datetime2": "2024-08-25", "datetime3": "", "datetime4": "2024-08-22 11:09:04", "remark12": [{ "label": "选项1", "value": "1" }, { "label": "选项2", "value": "2" }] })
|
107
107
|
// formRef?.current?.setFieldsValue({"tianchong1":{"label":"选项1","value":"1"}, })
|
108
108
|
}
|
109
109
|
const handleCols = () => {
|
@@ -117,7 +117,7 @@ function App() {
|
|
117
117
|
return (
|
118
118
|
<div className='fflex fflex-col fitems-center fh-screen '>
|
119
119
|
<div className='fflex fgap-2 fitems-center fjustify-center fw-full'>
|
120
|
-
<Button type="primary" onClick={()=>{
|
120
|
+
<Button type="primary" onClick={() => {
|
121
121
|
setTestCalcHidden(!testCalcHidden)
|
122
122
|
}}>testCalcHidden</Button>
|
123
123
|
<Button type="primary" onClick={validateFields}>validateFields</Button>
|
@@ -178,30 +178,30 @@ function App() {
|
|
178
178
|
|
179
179
|
|
180
180
|
<FormContainerWrapper cols={cols} className="" ref={formRef} >
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
}
|
181
|
+
<Layout.FormRow layout={'1'}>
|
182
|
+
<Show.WithTable label="测试关联子表" __id="withtable1"
|
183
|
+
filterRules={[
|
184
|
+
{
|
185
|
+
"value": {
|
186
|
+
"parent": "",
|
187
|
+
"field_key": "aa2",
|
188
|
+
"group_key": "fieldsValue",
|
189
|
+
"field_name": "当前表单.测试"
|
190
|
+
},
|
191
|
+
"valueType": "variable",
|
192
|
+
"column": {
|
193
|
+
"label": "库存表.所在仓库",
|
194
|
+
"value": "node_ocm009lpxt2",
|
195
|
+
"column_name": "node_ocm009lpxt2",
|
196
|
+
"column_type": ""
|
198
197
|
}
|
199
|
-
|
198
|
+
}
|
199
|
+
]} />
|
200
200
|
</Layout.FormRow>
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
201
|
+
<Field.Number label="测试" __id="aa2" />
|
202
|
+
<Field.Number label="测试" __id="aa3" />
|
203
|
+
<Field.Number label="测试" __id="aa1" isRequired={true} calcHidden={true} />
|
204
|
+
<Field.Number label="测试" __id="aa4" />
|
205
205
|
<Field.UserSelect label="选择用户" __id="userselect" defaultValue={[{ id: 1, username: "十天" }]} />
|
206
206
|
<Layout.FormGroupTitle title={"基本信息"} />
|
207
207
|
<Field.WithSingleSelect
|
@@ -257,70 +257,97 @@ function App() {
|
|
257
257
|
}
|
258
258
|
]} label="测试关联单选" options={[{ label: '选项1', value: '1', name: "1111", table: "[{\"price\":1,\"num\":2},{\"price\":2,\"num\":2},{\"price\":3,\"num\":3},{\"price\":3,\"num\":3}]" }, { label: '选项2', value: '2' }]} __id="remark11" />
|
259
259
|
<Layout.FormRow layout={'1'}>
|
260
|
-
|
260
|
+
<Field.Number label="测试规则" isRequired={true} __id="ceshi_rule1" />
|
261
261
|
</Layout.FormRow>
|
262
|
-
|
262
|
+
|
263
263
|
<Layout.FormRow layout={'1'}>
|
264
264
|
<Field.Table label="子表格" __id="table" >
|
265
|
-
|
266
|
-
<Field.WithSingleSelect
|
267
|
-
isRequired={true} ref={testRef}
|
268
|
-
request={async (params) => {
|
269
|
-
return { code: 0, data: { list: [{ label: '选项1', value: '1', tianchong2: { label: '选项2', value: '2'} ,tcinput1: "1111" , }, { label: '选项2', value: '2' }, { label: '选项3', value: '3' }] } }
|
270
|
-
}}
|
271
|
-
option_label="label"
|
272
|
-
option_value="value"
|
273
|
-
fillRules={[
|
274
|
-
{
|
275
|
-
"id": "636d3924-0298-4e9b-809a-26d4a10d7b19",
|
276
|
-
"type": 0,
|
277
|
-
"source": "tianchong2",
|
278
|
-
"target": "tianchong2",
|
279
|
-
"subRules": [
|
280
|
-
]
|
281
|
-
},
|
282
|
-
{
|
283
|
-
"id": "636d3924-0298-4e9b-809a-26d4a10d7b11",
|
284
|
-
"type": 0,
|
285
|
-
"source": "tcinput1",
|
286
|
-
"target": "tcinput1",
|
287
|
-
"subRules": [
|
288
|
-
]
|
289
|
-
},
|
290
265
|
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
266
|
+
<Field.WithSingleSelect
|
267
|
+
isRequired={true} ref={testRef}
|
268
|
+
request={async (params) => {
|
269
|
+
return { code: 0, data: { list: [{ label: '选项1', value: '1', tianchong2: { label: '选项2', value: '2' }, tcinput1: "1111", }, { label: '选项2', value: '2' }, { label: '选项3', value: '3' }] } }
|
270
|
+
}}
|
271
|
+
option_label="label"
|
272
|
+
option_value="value"
|
273
|
+
fillRules={[
|
274
|
+
{
|
275
|
+
"id": "636d3924-0298-4e9b-809a-26d4a10d7b19",
|
276
|
+
"type": 0,
|
277
|
+
"source": "tianchong2",
|
278
|
+
"target": "tianchong2",
|
279
|
+
"subRules": [
|
280
|
+
]
|
281
|
+
},
|
282
|
+
{
|
283
|
+
"id": "636d3924-0298-4e9b-809a-26d4a10d7b11",
|
284
|
+
"type": 0,
|
285
|
+
"source": "tcinput1",
|
286
|
+
"target": "tcinput1",
|
287
|
+
"subRules": [
|
288
|
+
]
|
289
|
+
},
|
290
|
+
|
291
|
+
]} label="测试填充1" __id="tianchong1" />
|
292
|
+
<Field.WithSingleSelect
|
293
|
+
isRequired={true} ref={testRef}
|
294
|
+
request={async (params) => {
|
295
|
+
if (!params?.value) return { code: 0, data: { list: [{ label: '选项1', value: '1', }] } }
|
296
|
+
await new Promise(resolve => setTimeout(resolve, 200))
|
297
|
+
return { code: 0, data: { list: [{ label: '选项1', value: '1', }, { label: '选项2', value: '2', tcinput1: "8989", tcinput2: "2222" }, { label: '选项3', value: '3' }] } }
|
298
|
+
}}
|
299
|
+
option_label="label"
|
300
|
+
option_value="value"
|
301
|
+
option_search="label"
|
302
|
+
fillRules={[
|
303
|
+
{
|
304
|
+
"id": "636d3924-0298-4e9b-809a-16d4a10d7b29",
|
305
|
+
"type": 0,
|
306
|
+
"source": "tcinput1",
|
307
|
+
"target": "tcinput1",
|
308
|
+
"subRules": [
|
309
|
+
]
|
310
|
+
},
|
311
|
+
{
|
312
|
+
"id": "636d3924-0298-4e9b-809a-26d4a10d7b29",
|
313
|
+
"type": 0,
|
314
|
+
"source": "tcinput2",
|
315
|
+
"target": "tcinput2",
|
316
|
+
"subRules": [
|
317
|
+
]
|
318
|
+
},
|
319
|
+
|
320
|
+
]} label="测试填充2" __id="tianchong2" />
|
321
|
+
<Field.Input label="测试被填充1" __id="tcinput1" />
|
322
|
+
<Field.Input label="测试被填充2" __id="tcinput2" />
|
323
|
+
<Field.Input label="测试被填充计算" __id="tcinput3"
|
324
|
+
withIds={["table.tcinput2"]}
|
325
|
+
withFill={{
|
326
|
+
"value": [
|
327
|
+
{
|
328
|
+
"insert": {
|
329
|
+
"span": true
|
330
|
+
},
|
331
|
+
"attributes": {
|
332
|
+
"id": "table.tcinput2",
|
333
|
+
"color": "blue",
|
334
|
+
"tagKey": "fieldsValue",
|
335
|
+
"content": "当前表单.测试被填充2"
|
336
|
+
}
|
337
|
+
},
|
338
|
+
{
|
339
|
+
"insert": "* 0.5"
|
340
|
+
},
|
341
|
+
{
|
342
|
+
"insert": "\n\n"
|
343
|
+
}
|
344
|
+
],
|
345
|
+
"version": 1719296886283,
|
346
|
+
"withData": [
|
347
|
+
|
318
348
|
]
|
319
|
-
}
|
320
|
-
|
321
|
-
]} label="测试填充2" __id="tianchong2" />
|
322
|
-
<Field.Input label="测试被填充1" __id="tcinput1" />
|
323
|
-
<Field.Input label="测试被填充2" __id="tcinput2" />
|
349
|
+
}}
|
350
|
+
/>
|
324
351
|
|
325
352
|
<Field.Number label="税率(%)" isRequired={true} calcHidden={true} __id="shuilv_table" withIds={[
|
326
353
|
"shuilv"
|
@@ -349,7 +376,6 @@ function App() {
|
|
349
376
|
|
350
377
|
<Field.WithSingleSelect ref={testRef}
|
351
378
|
request={async (params) => {
|
352
|
-
console.log("WithSingleSelect params", params)
|
353
379
|
if (params?.ruleParams?.node_ocm009lpxt2 == 111)
|
354
380
|
return { code: 0, data: { list: [{ label: '选项1', value: '1', product_price11: "1111", product_price12: "2222", product_price1: 111 }, { label: '选项2', value: '2' }, { label: '选项3', value: '3' }] } }
|
355
381
|
else return { code: 0, data: { list: [{ label: '选项1', value: '1', product_price11: "1111", product_price12: "2222", product_price1: 111 }, { label: '选项2', value: '2' },] } }
|
@@ -582,11 +608,10 @@ function App() {
|
|
582
608
|
|
583
609
|
]
|
584
610
|
}} />
|
585
|
-
|
586
|
-
<Field.SingleSelect mode="single"
|
611
|
+
|
612
|
+
<Field.SingleSelect mode="single" option_value={"id"} label="测试单选" __id="select1" options={[{ label: '选项1', value: '1' }, { label: '选项2', value: '2' }]}></Field.SingleSelect>
|
587
613
|
<Field.MultipleSelect mode="multiple" label="测多选" __id="select2" options={[{ label: '选项1', value: '1' }, { label: '选项2', value: '2' }]}></Field.MultipleSelect>
|
588
|
-
<Field.MultipleSelect mode="multiple"
|
589
|
-
console.log("MultipleSelect params", params)
|
614
|
+
<Field.MultipleSelect mode="multiple" option_label={"label"} option_value={"value"} label="测多选2" __id="select2222" request={async (params) => {
|
590
615
|
return { code: 0, data: { list: [{ label: '选项1', value: '1' }, { label: '选项2', value: '2' }] } }
|
591
616
|
}}></Field.MultipleSelect>
|
592
617
|
<Field.TreeSelect label="分组名" __id="title11"></Field.TreeSelect>
|
@@ -599,9 +624,9 @@ function App() {
|
|
599
624
|
}}
|
600
625
|
/>
|
601
626
|
|
602
|
-
|
603
|
-
|
604
|
-
|
627
|
+
<div className=' fh-10 fw-full fbg-green-300' __id="div1111"
|
628
|
+
_componentName="Field.div"
|
629
|
+
withIds={["switch"]}
|
605
630
|
withFunc={(fieldsValue) => {
|
606
631
|
return fieldsValue?.switch ? true : false
|
607
632
|
}}>1111</div>
|
@@ -648,8 +673,8 @@ function App() {
|
|
648
673
|
<Field.UploadImage label="上传图片" __id="UploadImage" ></Field.UploadImage>
|
649
674
|
|
650
675
|
</FormContainerWrapper>
|
651
|
-
<div
|
652
|
-
<div
|
676
|
+
<div className="fgroup">11111
|
677
|
+
<div className="fbg-red-500 group-hover:fbg-blue-500">
|
653
678
|
Hover over me or my parent!
|
654
679
|
</div>
|
655
680
|
</div>
|
@@ -35,9 +35,6 @@ export const BaseWrapper = ({
|
|
35
35
|
}) => {
|
36
36
|
const calcHiddenRef = useRef(false);
|
37
37
|
useEffect(()=>{
|
38
|
-
console.log("typeof initializeFormRender", typeof initializeFormRender)
|
39
|
-
console.log("calcHidden", calcHidden)
|
40
|
-
console.log("calcHiddenRef.current", calcHiddenRef.current)
|
41
38
|
if (calcHiddenRef.current != calcHidden)
|
42
39
|
{
|
43
40
|
typeof initializeFormRender == "function" && initializeFormRender();
|
@@ -12,7 +12,7 @@ const SearchSelect = forwardRef(({ addWrapper = true, form, fieldName, fieldsVal
|
|
12
12
|
useEffect(() => {
|
13
13
|
// console.log("SearchSelect useEffect props", props)
|
14
14
|
if (value) {
|
15
|
-
console.log(`SearchSelect ${fieldName} value`, value)
|
15
|
+
// console.log(`SearchSelect ${fieldName} value`, value)
|
16
16
|
let item = null
|
17
17
|
if (Array.isArray(nOptions) && nOptions.length > 0) {
|
18
18
|
item = nOptions.find(item => item.value == value?.value || item.value == value)
|
@@ -36,7 +36,7 @@ const SearchSelect = forwardRef(({ addWrapper = true, form, fieldName, fieldsVal
|
|
36
36
|
// }, [fieldsValue])
|
37
37
|
|
38
38
|
useEffect(() => {
|
39
|
-
console.log("SearchSelect useEffect requestParams", requestParams)
|
39
|
+
// console.log("SearchSelect useEffect requestParams", requestParams)
|
40
40
|
initData(requestParams)
|
41
41
|
}, [requestParams])
|
42
42
|
// useEffect(()=>{
|
@@ -32,7 +32,7 @@ const TableCol = ({ children, width, hidden, ...props }) => {
|
|
32
32
|
|
33
33
|
const Table = ({ children, onTableAddRow, disabled, readonly, onTableRemoveRow, form, fieldName, initializeFormRender, mode, ...props }) => {
|
34
34
|
useEffect(() => {
|
35
|
-
console.log("Table form reload", form)
|
35
|
+
// console.log("Table form reload", form)
|
36
36
|
}, [form])
|
37
37
|
|
38
38
|
const newidRefs = useRef(React.Children.map(children, () => nanoid()));
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import { useEffect } from "react"
|
2
2
|
import { BaseWrapper } from "../base.jsx"
|
3
3
|
import { useState } from "react"
|
4
|
+
import { Card } from "antd"
|
4
5
|
|
5
6
|
|
6
7
|
const WithTable = ({ customComponent: CustomComponent, form, fieldsValue, ...props }) => {
|
@@ -8,9 +9,9 @@ const WithTable = ({ customComponent: CustomComponent, form, fieldsValue, ...p
|
|
8
9
|
useEffect(()=>{
|
9
10
|
setText(JSON.stringify(fieldsValue))
|
10
11
|
},[fieldsValue])
|
11
|
-
if (!CustomComponent) return <
|
12
|
-
|
13
|
-
|
12
|
+
if (!CustomComponent) return <Card type="inner" title={props?.label ?? "关联子表"}>
|
13
|
+
<div className="fh-20 fw-full fflex fjustify-center fitems-center">子表内容在设计阶段暂不显示</div>
|
14
|
+
</Card>
|
14
15
|
else return <CustomComponent {...props} form={form} fieldsValue={fieldsValue} />
|
15
16
|
}
|
16
17
|
|
@@ -33,7 +33,6 @@ const UploadImage = ({ maxCount, value, multiple, onChange, ...props }) => {
|
|
33
33
|
}, [value]);
|
34
34
|
maxCount = maxCount || 99;
|
35
35
|
multiple = multiple || true;
|
36
|
-
console.log("maxCount",maxCount)
|
37
36
|
const [fileList, setFileList] = React.useState([]);
|
38
37
|
const [previewImage, setPreviewImage] = useState('');
|
39
38
|
const [previewImageIndex, setPreviewImageIndex] = useState(0);
|
@@ -115,7 +114,7 @@ const UploadImage = ({ maxCount, value, multiple, onChange, ...props }) => {
|
|
115
114
|
{file.status == "done" && <EyeOutlined onClick={() => { handlePreview(file, index) }} className="hover:ftext-gray-200" />}
|
116
115
|
<DeleteOutlined onClick={() => { handleDelete(file, index) }} className="hover:ftext-gray-200" />
|
117
116
|
</div>
|
118
|
-
<img src={file.url || file.base64} alt="Example Image"
|
117
|
+
<img src={file.url || file.base64} alt="Example Image" className="fmax-w-full fmax-h-full fobject-contain " />
|
119
118
|
</div>
|
120
119
|
</>
|
121
120
|
)
|
@@ -135,7 +134,7 @@ const UploadImage = ({ maxCount, value, multiple, onChange, ...props }) => {
|
|
135
134
|
|
136
135
|
</div>
|
137
136
|
{file.status == "uploading" && <div className=" fw-full fh-full fflex fitems-center fjustify-center fabsolute ftop-0 fleft-0 "><Spin></Spin></div>}
|
138
|
-
<img src={file.url || file.thumbUrl} alt="Example Image"
|
137
|
+
<img src={file.url || file.thumbUrl} alt="Example Image" className="fmax-w-full fmax-h-full fobject-contain " />
|
139
138
|
</div>
|
140
139
|
</>
|
141
140
|
)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import React, { forwardRef, useEffect } from "react";
|
2
2
|
import { Form, Row, Col, message } from "antd";
|
3
3
|
|
4
|
-
import { debounce, isEqual } from 'lodash';
|
4
|
+
import { debounce, isEqual, throttle } from 'lodash';
|
5
5
|
import { evalFormula } from '../../utils/formula'
|
6
6
|
import { nanoid } from 'nanoid';
|
7
7
|
import { eventEmitter } from '../../utils/events'
|
@@ -62,13 +62,24 @@ const FormContainer = forwardRef(({ cols = 1, children, mode = "view" }, ref) =>
|
|
62
62
|
initializeFieldVisibility,
|
63
63
|
}), []);
|
64
64
|
|
65
|
+
// 添加节流后的 initializeFormRender
|
66
|
+
const throttledInitializeFormRender = React.useCallback(
|
67
|
+
throttle(() => {
|
68
|
+
initializeDependencyMap();
|
69
|
+
setFormContent(renderChildren());
|
70
|
+
}, 300),
|
71
|
+
[]
|
72
|
+
);
|
73
|
+
|
65
74
|
useEffect(() => {
|
66
|
-
|
75
|
+
throttledInitializeFormRender();
|
76
|
+
return () => {
|
77
|
+
throttledInitializeFormRender.cancel();
|
78
|
+
};
|
67
79
|
}, [children, cols]);
|
68
80
|
|
69
81
|
const initializeFormRender = () => {
|
70
|
-
|
71
|
-
setFormContent(renderChildren());
|
82
|
+
throttledInitializeFormRender();
|
72
83
|
}
|
73
84
|
|
74
85
|
const lastFormValues = React.useRef(null);
|
@@ -126,7 +137,7 @@ const FormContainer = forwardRef(({ cols = 1, children, mode = "view" }, ref) =>
|
|
126
137
|
...field
|
127
138
|
});
|
128
139
|
});
|
129
|
-
console.log("
|
140
|
+
console.log("dependencyMap.current", dependencyMap.current)
|
130
141
|
initializeFieldVisibility();
|
131
142
|
};
|
132
143
|
|
@@ -224,7 +235,7 @@ const FormContainer = forwardRef(({ cols = 1, children, mode = "view" }, ref) =>
|
|
224
235
|
setValue = current_value[withFillIndex]?.[source]
|
225
236
|
}
|
226
237
|
}
|
227
|
-
changedFields[target] = { name: [target], value: setValue };
|
238
|
+
changedFields[target] = { name: Array.isArray(target) ? target : [target], value: setValue };
|
228
239
|
}
|
229
240
|
if (rule?.type == 1) {
|
230
241
|
form.setFieldValue(target, undefined);
|
@@ -247,7 +258,7 @@ const FormContainer = forwardRef(({ cols = 1, children, mode = "view" }, ref) =>
|
|
247
258
|
changedKeys.forEach(key => {
|
248
259
|
changedFieldsState.current[key] = changedFields[key];
|
249
260
|
})
|
250
|
-
|
261
|
+
|
251
262
|
debounceHandleFieldsChange();
|
252
263
|
}
|
253
264
|
// console.log("idGroups", idGroups)
|
@@ -273,10 +284,6 @@ const FormContainer = forwardRef(({ cols = 1, children, mode = "view" }, ref) =>
|
|
273
284
|
// 处理级联数据源
|
274
285
|
// 处理级联填充
|
275
286
|
const handleFieldsWithFill = async (fieldValues, child, parentIdentifier, componentName) => {
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
287
|
const withFill = child?.component?.props.withFill;
|
281
288
|
const withDataFetch = child?.component?.props.withDataFetch;
|
282
289
|
let withFillIndex = 0
|
@@ -494,7 +501,6 @@ const FormContainer = forwardRef(({ cols = 1, children, mode = "view" }, ref) =>
|
|
494
501
|
hidden={hidden}
|
495
502
|
style={{ margin: 0 }}
|
496
503
|
shouldUpdate={(prevValues, curValues) => {
|
497
|
-
console.log(`componentName:${componentName}; identifier:${identifier};`, props.filterRules)
|
498
504
|
let result = false;
|
499
505
|
if (Array.isArray(props.filterRules) &&
|
500
506
|
props.filterRules.length > 0
|
@@ -513,7 +519,6 @@ const FormContainer = forwardRef(({ cols = 1, children, mode = "view" }, ref) =>
|
|
513
519
|
}
|
514
520
|
}
|
515
521
|
|
516
|
-
console.log(`componentName:${componentName}; identifier:${identifier}; result:`, result)
|
517
522
|
return result;
|
518
523
|
}}
|
519
524
|
>
|