From 14568bc9f9fca53bda193de0ab0ae3cb2a301f9c Mon Sep 17 00:00:00 2001 From: likunming Date: Tue, 13 Aug 2024 11:57:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BC=98=E5=8C=96=E4=BB=A5?= =?UTF-8?q?=E4=B8=8B=E9=97=AE=E9=A2=98=EF=BC=9A=201=E3=80=81dbClickOperati?= =?UTF-8?q?on=E4=BF=AE=E6=94=B9=E4=B8=BA=E9=85=8D=E7=BD=AE=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E7=9A=84name=EF=BC=8C=E8=A7=A6=E5=8F=91=E4=BA=8B?= =?UTF-8?q?=E4=BB=B6=E4=B8=BA=E6=8C=89=E9=92=AE=E7=9A=84click=E3=80=82=202?= =?UTF-8?q?=E3=80=81=E8=A1=A8=E6=A0=BC=E7=AC=AC=E4=B8=80=E5=88=97=E9=80=89?= =?UTF-8?q?=E6=8B=A9=E6=A1=86=E5=85=A8=E9=80=89=E5=8F=AA=E6=9C=89=E5=8B=BE?= =?UTF-8?q?=E9=80=89=E6=9C=AA=E9=80=89=E4=B8=AD=E4=B8=8E=E5=8B=BE=E9=80=89?= =?UTF-8?q?=E5=8D=95=E6=9D=A1=E8=A1=8C=E4=B8=BA=E4=B8=8D=E4=B8=80=E8=87=B4?= =?UTF-8?q?=E3=80=82=203=E3=80=81=E6=8F=90=E4=BE=9B=E8=A1=A8=E6=A0=BC?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=A8=A1=E5=BC=8F=EF=BC=8C=E5=8F=8C=E5=87=BB?= =?UTF-8?q?=E6=88=96=E8=80=85=E7=82=B9=E5=87=BB=E6=8C=89=E9=92=AE=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=9C=A8=E8=A1=A8=E6=A0=BC=E4=B8=8A=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../platform/components/dialog/WDialog.vue | 14 +- .../components/form/elements/WCheckbox.vue | 18 +- .../components/form/elements/WCodeMirror.vue | 5 + .../components/form/elements/WColorInput.vue | 8 + .../form/elements/WColorInputPalette.vue | 8 + .../components/form/elements/WCron.vue | 8 + .../components/form/elements/WDate.vue | 8 + .../components/form/elements/WFile.vue | 8 + .../components/form/elements/WIcon.vue | 8 + .../components/form/elements/WNumber.vue | 8 + .../components/form/elements/WPassword.vue | 8 + .../components/form/elements/WPosition.vue | 8 + .../components/form/elements/WSelect.vue | 8 + .../form/elements/WSelectUserText.vue | 8 + .../components/form/elements/WText.vue | 8 + .../components/form/elements/WTextBtn.vue | 8 + .../components/form/elements/WTextarea.vue | 8 + .../components/form/elements/WTreeSelect.vue | 8 + .../src/platform/components/grid/GridBody.vue | 351 +++ .../platform/components/grid/GridConfig.vue | 44 +- .../components/grid/GridEditToolbar.vue | 324 +++ .../platform/components/grid/GridEditor.vue | 227 ++ .../platform/components/grid/GridHeader.vue | 539 ++++ .../components/grid/GridPagination.vue | 73 + .../src/platform/components/grid/GridTd.vue | 77 + .../src/platform/components/grid/GridTop.vue | 654 +++++ .../src/platform/components/grid/GridView.vue | 100 + .../platform/components/grid/TreeGridRow.vue | 235 +- .../src/platform/components/grid/WGrid.vue | 2446 ++--------------- .../platform/components/grid/WTreeGrid.vue | 39 - .../src/platform/components/grid/css/grid.css | 645 +++++ .../src/platform/components/grid/ts/grid.ts | 59 + .../src/platform/components/index.ts | 12 +- .../platform/components/toolbar/WToolbar.vue | 4 + .../src/platform/components/utils/commUtil.ts | 71 +- .../components/utils/componentComm.ts | 334 --- .../src/platform/components/utils/index.ts | 12 +- .../src/platform/index.ts | 12 +- .../src/views/likm/Grid.vue | 54 +- .../src/views/likm/GridForamt.vue | 18 + .../src/views/likm/QuasarGrid.vue | 803 +----- .../src/views/likm/TreeGrid.vue | 32 +- .../views/testcase/math/MathEditorForm.vue | 178 -- 43 files changed, 3763 insertions(+), 3737 deletions(-) create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridEditToolbar.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridEditor.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridHeader.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridPagination.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridTd.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridTop.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/GridView.vue delete mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/WTreeGrid.vue create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/css/grid.css create mode 100644 io.sc.platform.core.frontend/src/platform/components/grid/ts/grid.ts delete mode 100644 io.sc.platform.core.frontend/src/platform/components/utils/componentComm.ts create mode 100644 io.sc.platform.core.frontend/src/views/likm/GridForamt.vue delete mode 100644 io.sc.platform.core.frontend/template-project/src/views/testcase/math/MathEditorForm.vue diff --git a/io.sc.platform.core.frontend/src/platform/components/dialog/WDialog.vue b/io.sc.platform.core.frontend/src/platform/components/dialog/WDialog.vue index 55c10827..f287c700 100644 --- a/io.sc.platform.core.frontend/src/platform/components/dialog/WDialog.vue +++ b/io.sc.platform.core.frontend/src/platform/components/dialog/WDialog.vue @@ -56,7 +56,7 @@ diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCheckbox.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCheckbox.vue index ba6768fa..c528a8ec 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCheckbox.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCheckbox.vue @@ -1,13 +1,6 @@ @@ -15,7 +8,6 @@ import { computed, useAttrs, ref, watch } from 'vue'; const attrs = useAttrs(); -const rules = attrs.rules; const props = defineProps({ onChange: { type: Function, @@ -48,14 +40,6 @@ watch( }, ); -const rulesComputed = computed(() => { - let result = rules || []; - if (!showIfComputed.value) { - result = []; - } - return result; -}); - const showIfComputed = computed(() => { return props.showIf({ value: checkboxValue.value, diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue index fd77a94d..8e5a11cd 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCodeMirror.vue @@ -376,9 +376,14 @@ const buttonClick = (button) => { } }; +const validate = () => { + return fieldRef.value.validate(); +}; + defineExpose({ getValue, setValue, configure, + validate, }); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInput.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInput.vue index 66cdb284..28ddcaf5 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInput.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInput.vue @@ -194,4 +194,12 @@ const restoreDefaultValue = () => { colorValueRef.value = restoreValue; emit('update:modelValue', restoreValue, props.form); }; + +const validate = () => { + return colorRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInputPalette.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInputPalette.vue index dd0b0dfd..39116327 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInputPalette.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WColorInputPalette.vue @@ -429,4 +429,12 @@ const restoreDefaultValue = () => { colorValueRef.value = restoreValue; emit('update:modelValue', restoreValue, props.form); }; + +const validate = () => { + return colorRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCron.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCron.vue index d1a5b19f..72d6c819 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WCron.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WCron.vue @@ -207,4 +207,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return cronRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WDate.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WDate.vue index d2018336..ec406ab0 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WDate.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WDate.vue @@ -150,4 +150,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return dateRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WFile.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WFile.vue index 7d918b3f..b0362b50 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WFile.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WFile.vue @@ -134,4 +134,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return fileRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WIcon.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WIcon.vue index bcd1d397..ffe2be8c 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WIcon.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WIcon.vue @@ -267,4 +267,12 @@ const show = () => { searchRef.value = ''; document.getElementById(valueRef.value)?.scrollIntoView(true); }; + +const validate = () => { + return iconRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WNumber.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WNumber.vue index 1c95b2c2..01a43d56 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WNumber.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WNumber.vue @@ -133,4 +133,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return numberRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WPassword.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WPassword.vue index b7e95bbd..7ace38b2 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WPassword.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WPassword.vue @@ -132,4 +132,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return pwdRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WPosition.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WPosition.vue index 855dc008..82a8e639 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WPosition.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WPosition.vue @@ -195,4 +195,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return positionRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelect.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelect.vue index 7036f486..fa6db36b 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelect.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelect.vue @@ -133,4 +133,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return selectRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelectUserText.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelectUserText.vue index b33f4452..3f93fea4 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelectUserText.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WSelectUserText.vue @@ -88,4 +88,12 @@ const readonlyIfComputed = computed(() => { const disableIfComputed = computed(() => { return props.disableIf(props.form); }); + +const validate = () => { + return textRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WText.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WText.vue index 10284350..f06ef7cb 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WText.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WText.vue @@ -131,4 +131,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return textRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextBtn.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextBtn.vue index 33f743ae..8c68b5d0 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextBtn.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextBtn.vue @@ -144,4 +144,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return textBtnRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextarea.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextarea.vue index 57400260..6a6c42e5 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextarea.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WTextarea.vue @@ -131,4 +131,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return textareaRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/form/elements/WTreeSelect.vue b/io.sc.platform.core.frontend/src/platform/components/form/elements/WTreeSelect.vue index 1007172e..1393eeeb 100644 --- a/io.sc.platform.core.frontend/src/platform/components/form/elements/WTreeSelect.vue +++ b/io.sc.platform.core.frontend/src/platform/components/form/elements/WTreeSelect.vue @@ -143,4 +143,12 @@ const changeValue = (value) => { form: props.form, }); }; + +const validate = () => { + return selectRef.value.validate(); +}; + +defineExpose({ + validate, +}); diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue new file mode 100644 index 00000000..8d6b2fe6 --- /dev/null +++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridBody.vue @@ -0,0 +1,351 @@ + + + + diff --git a/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue b/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue index 40edd513..ad238a2f 100644 --- a/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue +++ b/io.sc.platform.core.frontend/src/platform/components/grid/GridConfig.vue @@ -77,7 +77,7 @@ -